def -(other)
      case other
      when Numeric
        Scalar.new(@value - other)
      when Vector, Matrix