import numpy
import types
import mosek

def _():
  import types

  class Enum:
    @staticmethod
    def __inst(c,name):
      o = c()
      o.name  = name
      o.value = len(c.__members__)
      c.__members__.append(o)
      setattr(c, name, o)

    @classmethod
    def fromInt(c,value):
      return c.members[value]

    @staticmethod
    def new(name,membernames):
      members = []
      c = type(name, (Enum,),{ '__members__' : members })
      for n in membernames:
        Enum.__inst(c,n)
      return c
    @classmethod
    def members(c):
      return iter(c.__members__)

    def __str__(self):
      return self.__class__.__name__ + "." + self.name
    def __repr__(self):
      return self.__class__.__name__ + "." + self.name
  return Enum

class _monty:
  Enum = _()
  @staticmethod
  def deduceShape(l,dim):
    def _deduceShape(l,dim):
      if dim > 1:
        shplst = [ _deduceShape(i,dim-1) for i in l ]
        if all([shplst[0] == i for i in shplst ]):
          shplst[0].append(len(l))
          return shplst[0]
        else:
          raise TypeError("Irregular array shape")
      else:
        return [len(dim)]
    return tuple(reversed(_deduceShape(l,dim)))
  @staticmethod
  def checkShape(l,dim):
    def _checkShape(l,dim):
      if dim > 1:
        shplst = [ _checkShape(i,dim-1) for i in l ]
        if all([shplst[0] == i for i in shplst ]):
          pass
        else:
          raise TypeError("Irregular array shape")
        return len(l)
      else:
        try:
          return len(l)
        except TypeError:
          raise TypeError("Wrong or irregular array shape")
    _checkShape(l,dim)
    return dim
  @staticmethod
  def initJaggedArray(data, nd):
    dims = []
    d = data
    for i in range(nd):
      dims.append(len(d))
      d = d[0]

    res = numpy.zeros(dims,dtype=object)
    key = tuple([ slice(d) for d in dims ])
    try:
      res.__setitem__(key, data)
    except ValueError: # weird numpypy bug
      if   len(key) == 1:
        for i in range(0,dims[0]): res[i] = data[i]
      elif len(key) == 2:
        for i in range(0,dims[0]):
          for j in range(0,dims[1]):
            res[i,j] = data[i][j]
      elif len(key) == 3:
        for i in range(0,dims[0]):
          for j in range(0,dims[1]):
            for k in range(0,dims[2]):
              res[i,j,k] = data[i][j][k]
      else:
        assert 0 # Because hopefully we will get a real fix in numpypy before this case is hi
    return res

  @staticmethod
  def makeJaggedArray(src,ndims,dtype):
    if src is None:
      return None
    elif len(ndims) == 1:
      if ndims[0] == 1:
        r = numpy.zeros((len(src),),dtype=dtype)
        r[:] = src
      else:
        d = _monty.deduceDims(src,ndims[0])
        r = numpy.zeros(d,dtype=dtype)
        r.__setitem__(tuple([slice(None)]*ndims[0]),src) # basically: r[:,...,:] = src
      return r
    elif ndims[0] == 1:
      r = numpy.zeros((len(src),),dtype=numpy.dtype(object))
      # Note: This is a bit tricky to do reliably with numpy as it
      # tends to think we are dealing with multidimensional arrays and
      # explode
      for i,s in enumerate(src):
        r[i] = _monty.makeJaggedArray(s,ndims[1:],dtype)

      #r[:] = [ _monty.makeJaggedArray(s,ndims[1:],dtype) for s in src ]
      return r
    else:
      d = _monty.deduceDims(src,ndims[0])
      def _(src,nd):
        if nd == 0:
          return _monty.makeJaggedArray(src)
        else:
          return [ _(s,nd-1) for s in src ]

      r = numpy.zeros(d,dtype=numpy.dtype(object))
      r.__setitem__(tuple([slice(None)]*ndims[0]),_(src,ndims[0])) # basically: r[:,...,:] = convert(src)
      return r

  @staticmethod
  def copyArray(src,dst,dim):
    if dim == 1:
      src[:] = dst[:]
    else:
      for i in range(len(src)):
        _monty.copyArray(src[i],dst[i],dim-1)
  @staticmethod
  def arg_match_sloppy_array(v,elmmatch,dim,l=None):
    if dim == 0:
      elmmatch(v)
    elif dim == 1:
      if l is not None:
        if l != len(v): return False
      elif len(v) == 0: return True
      for e in v:
        if not elmmatch(e): return False
      return True
    elif isinstance(v,list) or isinstance(v,numpy.ndarray):
      if l is not None:
        if l != len(v): return False
      elif len(v) == 0: return True
      elif not (isinstance(v[0],list) or isinstance(v[0],numpy.ndarray)): return False

      top_len = len(v[0])
      for e in v:
        if not _monty.arg_match_sloppy_array(e,elmmatch,dim-1,top_len): return False
      return True
    else:
      return False

del _

mosek_fusion_RelationKey=_monty.Enum.new('RelationKey',['EqualsTo','LessThan','GreaterThan','IsFree','InRange'])
mosek_fusion_PSDKey=_monty.Enum.new('PSDKey',['IsSymPSD','IsTrilPSD'])
mosek_fusion_QConeKey=_monty.Enum.new('QConeKey',['InQCone','InRotatedQCone','InPExpCone','InPPowCone','InDExpCone','InDPowCone','InPGeoMeanCone','InDGeoMeanCone','Positive','Negative','Unbounded','Zero','InPSDCone','InSVecPSDCone'])
mosek_fusion_ObjectiveSense=_monty.Enum.new('ObjectiveSense',['Undefined','Minimize','Maximize'])
mosek_fusion_SolutionStatus=_monty.Enum.new('SolutionStatus',['Undefined','Unknown','Optimal','Feasible','Certificate','IllposedCert'])
mosek_fusion_AccSolutionStatus=_monty.Enum.new('AccSolutionStatus',['Anything','Optimal','Feasible','Certificate'])
mosek_fusion_ProblemStatus=_monty.Enum.new('ProblemStatus',['Unknown','PrimalAndDualFeasible','PrimalFeasible','DualFeasible','PrimalInfeasible','DualInfeasible','PrimalAndDualInfeasible','IllPosed','PrimalInfeasibleOrUnbounded'])
mosek_fusion_SolverStatus=_monty.Enum.new('SolverStatus',['OK','Error','LostRace'])
mosek_fusion_SolutionType=_monty.Enum.new('SolutionType',['Default','Basic','Interior','Integer'])
mosek_fusion_StatusKey=_monty.Enum.new('StatusKey',['Unknown','Basic','SuperBasic','OnBound','Infinity'])
mosek_fusion_DJCDomainType=_monty.Enum.new('DJCDomainType',['EqualTo','LessThan','GreaterThan','IsFree','InRange','InQCone','InRotatedQCone','InPExpCone','InPPowCone','InDExpCone','InDPowCone','InOneNormCone','InInfNormCone','InPGeoMeanCone','InDGeoMeanCone','InPSDCone'])
def __mk_mosek_fusion_ExprDomain():
 class ExprDomain:
  def toDJCTerm(self,*args):
    if False: pass
    elif mosek_fusion_ExprDomain._match_toDJCTerm_(*args): 
      return self._toDJCTerm_(*args)
    elif mosek_fusion_ExprDomain._match_alt_toDJCTerm_(*args): 
      return self._toDJCTerm_alt_(*args)
    else:
      raise ValueError('Invalid argument list toDJCTerm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDomain.toDJCTerm()')
  def __repr__(self): return 'mosek.fusion.ExprDomain'
  @staticmethod
  def _match_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  def _toDJCTerm_alt_(self,):
    return self._toDJCTerm_()
  def _toDJCTerm_(self,):
   pass
 return ExprDomain
mosek_fusion_ExprDomain=__mk_mosek_fusion_ExprDomain()
del __mk_mosek_fusion_ExprDomain
def __mk_mosek_fusion_Expression():
 class Expression:
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_Expression._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.getSize()')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_Expression._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_Expression._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_Expression._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.index(int32)\n\tmosek.fusion.Expression.index(array(int32,ndim=1))')
  def getDim(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_getDim_I(*args): 
      return self._getDim_I(*args)
    elif mosek_fusion_Expression._match_alt_getDim_I(*args): 
      return self._getDim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getDim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.getDim(int32)')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_Expression._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_Expression._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_Expression._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.pick(array(int32,ndim=1))\n\tmosek.fusion.Expression.pick(array(int32,ndim=2))')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_Expression._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_Expression._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_Expression._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.slice(int32,int32)\n\tmosek.fusion.Expression.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_Expression._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.getShape()')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_Expression._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_Expression._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.getND()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_Expression._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_Expression._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expression.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.Expression: '+self._toString_()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   pass
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   pass
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   pass
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   pass
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   pass
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   pass
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   pass
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   pass
  @staticmethod
  def _match_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getDim_alt_I(self,_t__0):
    return self._getDim_I(numpy.int32(__0))
  def _getDim_I(self,_0):
   pass
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   pass
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   pass
 return Expression
mosek_fusion_Expression=__mk_mosek_fusion_Expression()
del __mk_mosek_fusion_Expression
def __mk_mosek_fusion_Variable():
 class Variable(mosek_fusion_Expression):
  def index(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_Variable._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_Variable._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_Variable._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    elif mosek_fusion_Variable._match_index_II(*args): 
      return self._index_II(*args)
    elif mosek_fusion_Variable._match_alt_index_II(*args): 
      return self._index_alt_II(*args)
    elif mosek_fusion_Variable._match_index_III(*args): 
      return self._index_III(*args)
    elif mosek_fusion_Variable._match_alt_index_III(*args): 
      return self._index_alt_III(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.index(int32)\n\tmosek.fusion.Variable.index(array(int32,ndim=1))\n\tmosek.fusion.Variable.index(int32,int32)\n\tmosek.fusion.Variable.index(int32,int32,int32)')
  def setLevel(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_setLevel__3D(*args): 
      return self._setLevel__3D(*args)
    elif mosek_fusion_Variable._match_alt_setLevel__3D(*args): 
      return self._setLevel_alt__3D(*args)
    else:
      raise ValueError('Invalid argument list setLevel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.setLevel(array(double,ndim=1))')
  def getModel(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_getModel_(*args): 
      return self._getModel_(*args)
    elif mosek_fusion_Variable._match_alt_getModel_(*args): 
      return self._getModel_alt_(*args)
    else:
      raise ValueError('Invalid argument list getModel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.getModel()')
  def makeInteger(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_makeInteger_(*args): 
      return self._makeInteger_(*args)
    elif mosek_fusion_Variable._match_alt_makeInteger_(*args): 
      return self._makeInteger_alt_(*args)
    else:
      raise ValueError('Invalid argument list makeInteger('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.makeInteger()')
  def dual(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_dual_(*args): 
      return self._dual_(*args)
    elif mosek_fusion_Variable._match_alt_dual_(*args): 
      return self._dual_alt_(*args)
    else:
      raise ValueError('Invalid argument list dual('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.dual()')
  def antidiag(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_antidiag_(*args): 
      return self._antidiag_(*args)
    elif mosek_fusion_Variable._match_alt_antidiag_(*args): 
      return self._antidiag_alt_(*args)
    elif mosek_fusion_Variable._match_antidiag_I(*args): 
      return self._antidiag_I(*args)
    elif mosek_fusion_Variable._match_alt_antidiag_I(*args): 
      return self._antidiag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list antidiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.antidiag()\n\tmosek.fusion.Variable.antidiag(int32)')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_Variable._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.getShape()')
  def fromTril(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_fromTril_I(*args): 
      return self._fromTril_I(*args)
    elif mosek_fusion_Variable._match_alt_fromTril_I(*args): 
      return self._fromTril_alt_I(*args)
    else:
      raise ValueError('Invalid argument list fromTril('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.fromTril(int32)')
  def tril(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_tril_(*args): 
      return self._tril_(*args)
    elif mosek_fusion_Variable._match_alt_tril_(*args): 
      return self._tril_alt_(*args)
    else:
      raise ValueError('Invalid argument list tril('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.tril()')
  def make_continuous(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_make_1continuous_(*args): 
      return self._make_1continuous_(*args)
    elif mosek_fusion_Variable._match_alt_make_1continuous_(*args): 
      return self._make_1continuous_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_continuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.make_continuous()')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_Variable._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.getND()')
  def diag(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_diag_(*args): 
      return self._diag_(*args)
    elif mosek_fusion_Variable._match_alt_diag_(*args): 
      return self._diag_alt_(*args)
    elif mosek_fusion_Variable._match_diag_I(*args): 
      return self._diag_I(*args)
    elif mosek_fusion_Variable._match_alt_diag_I(*args): 
      return self._diag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list diag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.diag()\n\tmosek.fusion.Variable.diag(int32)')
  def make_integer(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_make_1integer_(*args): 
      return self._make_1integer_(*args)
    elif mosek_fusion_Variable._match_alt_make_1integer_(*args): 
      return self._make_1integer_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_integer('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.make_integer()')
  def makeContinuous(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_makeContinuous_(*args): 
      return self._makeContinuous_(*args)
    elif mosek_fusion_Variable._match_alt_makeContinuous_(*args): 
      return self._makeContinuous_alt_(*args)
    else:
      raise ValueError('Invalid argument list makeContinuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.makeContinuous()')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_Variable._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.getSize()')
  def level(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_level_(*args): 
      return self._level_(*args)
    elif mosek_fusion_Variable._match_alt_level_(*args): 
      return self._level_alt_(*args)
    else:
      raise ValueError('Invalid argument list level('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.level()')
  def set_values(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_set_1values__3DZ(*args): 
      return self._set_1values__3DZ(*args)
    elif mosek_fusion_Variable._match_alt_set_1values__3DZ(*args): 
      return self._set_1values_alt__3DZ(*args)
    else:
      raise ValueError('Invalid argument list set_values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.set_values(array(double,ndim=1),bool)')
  def reshape(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_reshape__3I(*args): 
      return self._reshape__3I(*args)
    elif mosek_fusion_Variable._match_alt_reshape__3I(*args): 
      return self._reshape_alt__3I(*args)
    elif mosek_fusion_Variable._match_reshape_I(*args): 
      return self._reshape_I(*args)
    elif mosek_fusion_Variable._match_alt_reshape_I(*args): 
      return self._reshape_alt_I(*args)
    elif mosek_fusion_Variable._match_reshape_II(*args): 
      return self._reshape_II(*args)
    elif mosek_fusion_Variable._match_alt_reshape_II(*args): 
      return self._reshape_alt_II(*args)
    elif mosek_fusion_Variable._match_reshape_III(*args): 
      return self._reshape_III(*args)
    elif mosek_fusion_Variable._match_alt_reshape_III(*args): 
      return self._reshape_alt_III(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.reshape(array(int32,ndim=1))\n\tmosek.fusion.Variable.reshape(int32)\n\tmosek.fusion.Variable.reshape(int32,int32)\n\tmosek.fusion.Variable.reshape(int32,int32,int32)')
  def remove(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_remove_(*args): 
      return self._remove_(*args)
    elif mosek_fusion_Variable._match_alt_remove_(*args): 
      return self._remove_alt_(*args)
    else:
      raise ValueError('Invalid argument list remove('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.remove()')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_Variable._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_Variable._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_Variable._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    elif mosek_fusion_Variable._match_pick__3I_3I(*args): 
      return self._pick__3I_3I(*args)
    elif mosek_fusion_Variable._match_alt_pick__3I_3I(*args): 
      return self._pick_alt__3I_3I(*args)
    elif mosek_fusion_Variable._match_pick__3I_3I_3I(*args): 
      return self._pick__3I_3I_3I(*args)
    elif mosek_fusion_Variable._match_alt_pick__3I_3I_3I(*args): 
      return self._pick_alt__3I_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.pick(array(int32,ndim=1))\n\tmosek.fusion.Variable.pick(array(int32,ndim=2))\n\tmosek.fusion.Variable.pick(array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Variable.pick(array(int32,ndim=1),array(int32,ndim=1),array(int32,ndim=1))')
  def inst(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_inst_I_3J(*args): 
      return self._inst_I_3J(*args)
    elif mosek_fusion_Variable._match_alt_inst_I_3J(*args): 
      return self._inst_alt_I_3J(*args)
    elif mosek_fusion_Variable._match_inst_I_3JI_3J(*args): 
      return self._inst_I_3JI_3J(*args)
    elif mosek_fusion_Variable._match_alt_inst_I_3JI_3J(*args): 
      return self._inst_alt_I_3JI_3J(*args)
    else:
      raise ValueError('Invalid argument list inst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.inst(int32,array(int64,ndim=1))\n\tmosek.fusion.Variable.inst(int32,array(int64,ndim=1),int32,array(int64,ndim=1))')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_Variable._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_Variable._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_Variable._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.slice(int32,int32)\n\tmosek.fusion.Variable.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_Variable._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.transpose()')
  def asExpr(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_asExpr_(*args): 
      return self._asExpr_(*args)
    elif mosek_fusion_Variable._match_alt_asExpr_(*args): 
      return self._asExpr_alt_(*args)
    else:
      raise ValueError('Invalid argument list asExpr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.asExpr()')
  def numInst(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_numInst_(*args): 
      return self._numInst_(*args)
    elif mosek_fusion_Variable._match_alt_numInst_(*args): 
      return self._numInst_alt_(*args)
    else:
      raise ValueError('Invalid argument list numInst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.numInst()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_Variable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.toString()')
  def values(self,*args):
    if False: pass
    elif mosek_fusion_Variable._match_values_I_3DZ(*args): 
      return self._values_I_3DZ(*args)
    elif mosek_fusion_Variable._match_alt_values_I_3DZ(*args): 
      return self._values_alt_I_3DZ(*args)
    else:
      raise ValueError('Invalid argument list values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Variable.values(int32,array(double,ndim=1),bool)')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.Variable: '+self._toString_()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   pass
  @staticmethod
  def _match_numInst_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numInst_(*args):
    if len(args) != 0: return False
    return True
  def _numInst_alt_(self,):
    return self._numInst_()
  def _numInst_(self,):
   pass
  @staticmethod
  def _match_inst_I_3JI_3J(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1) and __arg_match_I__(_2) and __arg_match__3J__(_3))
  @staticmethod
  def _match_alt_inst_I_3JI_3J(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match__3J__(_3))
  def _inst_alt_I_3JI_3J(self,_t__0,_t__1,_t__2,_t__3):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3JI_3J(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3JI_3J(self,_0,_1,_2,_3):
   pass
  @staticmethod
  def _match_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1))
  @staticmethod
  def _match_alt_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1))
  def _inst_alt_I_3J(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3J(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3J(self,_0,_1):
   pass
  @staticmethod
  def _match_remove_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_remove_(*args):
    if len(args) != 0: return False
    return True
  def _remove_alt_(self,):
    return self._remove_()
  def _remove_(self,):
   pass
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   pass
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   pass
  @staticmethod
  def _match_getModel_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getModel_(*args):
    if len(args) != 0: return False
    return True
  def _getModel_alt_(self,):
    return self._getModel_()
  def _getModel_(self,):
   pass
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   pass
  @staticmethod
  def _match_setLevel__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_setLevel__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  def _setLevel_alt__3D(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setLevel__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setLevel__3D(self,_0):
   pass
  @staticmethod
  def _match_fromTril_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_fromTril_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _fromTril_alt_I(self,_t__0):
    return self._fromTril_I(numpy.int32(__0))
  def _fromTril_I(self,_0):
   pass
  @staticmethod
  def _match_tril_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_tril_(*args):
    if len(args) != 0: return False
    return True
  def _tril_alt_(self,):
    return self._tril_()
  def _tril_(self,):
   pass
  @staticmethod
  def _match_reshape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_reshape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _reshape_alt_III(self,_t__0,_t__1,_t__2):
    return self._reshape_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _reshape_III(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_reshape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_reshape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _reshape_alt_II(self,_t__0,_t__1):
    return self._reshape_II(numpy.int32(__0),numpy.int32(__1))
  def _reshape_II(self,_0,_1):
   pass
  @staticmethod
  def _match_reshape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_reshape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _reshape_alt_I(self,_t__0):
    return self._reshape_I(numpy.int32(__0))
  def _reshape_I(self,_0):
   pass
  @staticmethod
  def _match_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _reshape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._reshape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _reshape__3I(self,_0):
   pass
  @staticmethod
  def _match_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Z__(_1))
  @staticmethod
  def _match_alt_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Z__(_1))
  def _set_1values_alt__3DZ(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = self._set_1values__3DZ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _set_1values__3DZ(self,_0,_1):
   pass
  @staticmethod
  def _match_dual_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dual_(*args):
    if len(args) != 0: return False
    return True
  def _dual_alt_(self,):
    return self._dual_()
  def _dual_(self,):
   pass
  @staticmethod
  def _match_level_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_level_(*args):
    if len(args) != 0: return False
    return True
  def _level_alt_(self,):
    return self._level_()
  def _level_(self,):
   pass
  @staticmethod
  def _match_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3D__(_1) and __arg_match_Z__(_2))
  @staticmethod
  def _match_alt_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match_Z__(_2))
  def _values_alt_I_3DZ(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = self._values_I_3DZ(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _values_I_3DZ(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  def _make_1continuous_alt_(self,):
    return self._make_1continuous_()
  def _make_1continuous_(self,):
   pass
  @staticmethod
  def _match_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  def _make_1integer_alt_(self,):
    return self._make_1integer_()
  def _make_1integer_(self,):
   pass
  @staticmethod
  def _match_makeContinuous_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_makeContinuous_(*args):
    if len(args) != 0: return False
    return True
  def _makeContinuous_alt_(self,):
    return self._makeContinuous_()
  def _makeContinuous_(self,):
   pass
  @staticmethod
  def _match_makeInteger_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_makeInteger_(*args):
    if len(args) != 0: return False
    return True
  def _makeInteger_alt_(self,):
    return self._makeInteger_()
  def _makeInteger_(self,):
   pass
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   pass
  @staticmethod
  def _match_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2))
  def _pick_alt__3I_3I_3I(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I_3I(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _pick_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I(self,_0,_1):
   pass
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   pass
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   pass
  @staticmethod
  def _match_antidiag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_antidiag_(*args):
    if len(args) != 0: return False
    return True
  def _antidiag_alt_(self,):
    return self._antidiag_()
  def _antidiag_(self,):
   pass
  @staticmethod
  def _match_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _antidiag_alt_I(self,_t__0):
    return self._antidiag_I(numpy.int32(__0))
  def _antidiag_I(self,_0):
   pass
  @staticmethod
  def _match_diag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_diag_(*args):
    if len(args) != 0: return False
    return True
  def _diag_alt_(self,):
    return self._diag_()
  def _diag_(self,):
   pass
  @staticmethod
  def _match_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _diag_alt_I(self,_t__0):
    return self._diag_I(numpy.int32(__0))
  def _diag_I(self,_0):
   pass
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   pass
  @staticmethod
  def _match_index_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_index_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _index_alt_III(self,_t__0,_t__1,_t__2):
    return self._index_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _index_III(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_index_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_index_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _index_alt_II(self,_t__0,_t__1):
    return self._index_II(numpy.int32(__0),numpy.int32(__1))
  def _index_II(self,_0,_1):
   pass
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   pass
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   pass
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   pass
  @staticmethod
  def _match_asExpr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_asExpr_(*args):
    if len(args) != 0: return False
    return True
  def _asExpr_alt_(self,):
    return self._asExpr_()
  def _asExpr_(self,):
   pass
 return Variable
mosek_fusion_Variable=__mk_mosek_fusion_Variable()
del __mk_mosek_fusion_Variable
def __mk_mosek_fusion_Parameter():
 class Parameter(mosek_fusion_Expression):
  def getSp(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getSp__3JI(*args): 
      return self._getSp__3JI(*args)
    elif mosek_fusion_Parameter._match_alt_getSp__3JI(*args): 
      return self._getSp_alt__3JI(*args)
    else:
      raise ValueError('Invalid argument list getSp('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getSp(array(int64,ndim=1),int32)')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_Parameter._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getShape()')
  def isSparse(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_isSparse_(*args): 
      return self._isSparse_(*args)
    elif mosek_fusion_Parameter._match_alt_isSparse_(*args): 
      return self._isSparse_alt_(*args)
    else:
      raise ValueError('Invalid argument list isSparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.isSparse()')
  def getNumNonzero(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getNumNonzero_(*args): 
      return self._getNumNonzero_(*args)
    elif mosek_fusion_Parameter._match_alt_getNumNonzero_(*args): 
      return self._getNumNonzero_alt_(*args)
    else:
      raise ValueError('Invalid argument list getNumNonzero('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getNumNonzero()')
  def clone(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_clone_Lmosek_4fusion_4Model_2(*args): 
      return self._clone_Lmosek_4fusion_4Model_2(*args)
    elif mosek_fusion_Parameter._match_alt_clone_Lmosek_4fusion_4Model_2(*args): 
      return self._clone_alt_Lmosek_4fusion_4Model_2(*args)
    else:
      raise ValueError('Invalid argument list clone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.clone(mosek.fusion.Model)')
  def getDim(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getDim_I(*args): 
      return self._getDim_I(*args)
    elif mosek_fusion_Parameter._match_alt_getDim_I(*args): 
      return self._getDim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getDim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getDim(int32)')
  def reshape(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_reshape__3I(*args): 
      return self._reshape__3I(*args)
    elif mosek_fusion_Parameter._match_alt_reshape__3I(*args): 
      return self._reshape_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.reshape(array(int32,ndim=1))')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_Parameter._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getSize()')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_Parameter._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_Parameter._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_Parameter._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.pick(array(int32,ndim=1))\n\tmosek.fusion.Parameter.pick(array(int32,ndim=2))')
  def setValue(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_setValue_D(*args): 
      return self._setValue_D(*args)
    elif mosek_fusion_Parameter._match_alt_setValue_D(*args): 
      return self._setValue_alt_D(*args)
    elif mosek_fusion_Parameter._match_setValue__3D(*args): 
      return self._setValue__3D(*args)
    elif mosek_fusion_Parameter._match_alt_setValue__3D(*args): 
      return self._setValue_alt__3D(*args)
    elif mosek_fusion_Parameter._match_setValue__3_5D(*args): 
      return self._setValue__3_5D(*args)
    elif mosek_fusion_Parameter._match_alt_setValue__3_5D(*args): 
      return self._setValue_alt__3_5D(*args)
    else:
      raise ValueError('Invalid argument list setValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.setValue(double)\n\tmosek.fusion.Parameter.setValue(array(double,ndim=1))\n\tmosek.fusion.Parameter.setValue(array(double,ndim=2))')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_Parameter._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getND()')
  def getAllIndexes(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getAllIndexes__3II(*args): 
      return self._getAllIndexes__3II(*args)
    elif mosek_fusion_Parameter._match_alt_getAllIndexes__3II(*args): 
      return self._getAllIndexes_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list getAllIndexes('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getAllIndexes(array(int32,ndim=1),int32)')
  def getModel(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getModel_(*args): 
      return self._getModel_(*args)
    elif mosek_fusion_Parameter._match_alt_getModel_(*args): 
      return self._getModel_alt_(*args)
    else:
      raise ValueError('Invalid argument list getModel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getModel()')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_Parameter._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_Parameter._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_Parameter._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.slice(int32,int32)\n\tmosek.fusion.Parameter.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def getValue(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getValue_(*args): 
      return self._getValue_(*args)
    elif mosek_fusion_Parameter._match_alt_getValue_(*args): 
      return self._getValue_alt_(*args)
    else:
      raise ValueError('Invalid argument list getValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getValue()')
  def getIndex(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_getIndex_I(*args): 
      return self._getIndex_I(*args)
    elif mosek_fusion_Parameter._match_alt_getIndex_I(*args): 
      return self._getIndex_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getIndex('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.getIndex(int32)')
  def asExpr(self,*args):
    if False: pass
    elif mosek_fusion_Parameter._match_asExpr_(*args): 
      return self._asExpr_(*args)
    elif mosek_fusion_Parameter._match_alt_asExpr_(*args): 
      return self._asExpr_alt_(*args)
    else:
      raise ValueError('Invalid argument list asExpr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameter.asExpr()')
  def __repr__(self): return 'mosek.fusion.Parameter'
  @staticmethod
  def _match_clone_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(_0))
  @staticmethod
  def _match_alt_clone_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(_0))
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   pass
  @staticmethod
  def _match_getModel_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getModel_(*args):
    if len(args) != 0: return False
    return True
  def _getModel_alt_(self,):
    return self._getModel_()
  def _getModel_(self,):
   pass
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   pass
  @staticmethod
  def _match_getAllIndexes__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_getAllIndexes__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  def _getAllIndexes_alt__3II(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = self._getAllIndexes__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getAllIndexes__3II(self,_0,_1):
   pass
  @staticmethod
  def _match_getIndex_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getIndex_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getIndex_alt_I(self,_t__0):
    return self._getIndex_I(numpy.int32(__0))
  def _getIndex_I(self,_0):
   pass
  @staticmethod
  def _match_getSp__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_getSp__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_I__(_1))
  def _getSp_alt__3JI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int32(_t__1)
   _1_res = self._getSp__3JI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getSp__3JI(self,_0,_1):
   pass
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   pass
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   pass
  @staticmethod
  def _match_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getDim_alt_I(self,_t__0):
    return self._getDim_I(numpy.int32(__0))
  def _getDim_I(self,_0):
   pass
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   pass
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   pass
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   pass
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   pass
  @staticmethod
  def _match_isSparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isSparse_(*args):
    if len(args) != 0: return False
    return True
  def _isSparse_alt_(self,):
    return self._isSparse_()
  def _isSparse_(self,):
   pass
  @staticmethod
  def _match_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _reshape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._reshape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _reshape__3I(self,_0):
   pass
  @staticmethod
  def _match_getNumNonzero_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getNumNonzero_(*args):
    if len(args) != 0: return False
    return True
  def _getNumNonzero_alt_(self,):
    return self._getNumNonzero_()
  def _getNumNonzero_(self,):
   pass
  @staticmethod
  def _match_asExpr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_asExpr_(*args):
    if len(args) != 0: return False
    return True
  def _asExpr_alt_(self,):
    return self._asExpr_()
  def _asExpr_(self,):
   pass
  @staticmethod
  def _match_getValue_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getValue_(*args):
    if len(args) != 0: return False
    return True
  def _getValue_alt_(self,):
    return self._getValue_()
  def _getValue_(self,):
   pass
  @staticmethod
  def _match_setValue__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_setValue__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  def _setValue_alt__3_5D(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = self._setValue__3_5D(_0)
   return _1_res
  def _setValue__3_5D(self,_0):
   pass
  @staticmethod
  def _match_setValue__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_setValue__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  def _setValue_alt__3D(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setValue__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setValue__3D(self,_0):
   pass
  @staticmethod
  def _match_setValue_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_setValue_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  def _setValue_alt_D(self,_t__0):
    return self._setValue_D(numpy.float64(__0))
  def _setValue_D(self,_0):
   pass
 return Parameter
mosek_fusion_Parameter=__mk_mosek_fusion_Parameter()
del __mk_mosek_fusion_Parameter
def __mk_mosek_fusion_FusionException():
 class FusionException(Exception):
  __slots__ = ['_FusionException__msg']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.FusionException.ctor(string)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_FusionException._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_FusionException._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.FusionException.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.FusionException: '+self._toString_()
  @staticmethod
  def _ctor_S(msg_):
    o = FusionException.__new__(FusionException)
    o._ctor_init_S(msg_)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg_, = args
    return (__arg_match_S__(msg_))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg_, = args
    return (__arg_alt_match_S__(msg_))
  def _ctor_alt_init_S(self,msg_):
    self._ctor_init_S(msg_)
  def _ctor_init_S(self,msg_):
   Exception.__init__(self,msg_)
   self.__msg = msg_
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (self.__msg)
 return FusionException
mosek_fusion_FusionException=__mk_mosek_fusion_FusionException()
del __mk_mosek_fusion_FusionException
def __mk_mosek_fusion_SolutionError():
 class SolutionError(mosek_fusion_FusionException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.SolutionError.ctor()\n\tmosek.fusion.SolutionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.SolutionError'
  @staticmethod
  def _ctor_():
    o = SolutionError.__new__(SolutionError)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_FusionException._ctor_init_S(self,"Solution is invalid or undefined")
  @staticmethod
  def _ctor_S(msg):
    o = SolutionError.__new__(SolutionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionException._ctor_init_S(self,msg)
 return SolutionError
mosek_fusion_SolutionError=__mk_mosek_fusion_SolutionError()
del __mk_mosek_fusion_SolutionError
def __mk_mosek_fusion_UnimplementedError():
 class UnimplementedError(Exception):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.UnimplementedError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.UnimplementedError'
  @staticmethod
  def _ctor_S(msg):
    o = UnimplementedError.__new__(UnimplementedError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   Exception.__init__(self,msg)
 return UnimplementedError
mosek_fusion_UnimplementedError=__mk_mosek_fusion_UnimplementedError()
del __mk_mosek_fusion_UnimplementedError
def __mk_mosek_fusion_FatalError():
 class FatalError(Exception):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.FatalError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.FatalError'
  @staticmethod
  def _ctor_S(msg):
    o = FatalError.__new__(FatalError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   Exception.__init__(self,msg)
 return FatalError
mosek_fusion_FatalError=__mk_mosek_fusion_FatalError()
del __mk_mosek_fusion_FatalError
def __mk_mosek_fusion_UnexpectedError():
 class UnexpectedError(Exception):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4FusionException_2(*args): 
      self._ctor_init_Lmosek_4fusion_4FusionException_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4FusionException_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4FusionException_2(*args)
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.UnexpectedError.ctor(mosek.fusion.FusionException)\n\tmosek.fusion.UnexpectedError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.UnexpectedError'
  @staticmethod
  def _ctor_Lmosek_4fusion_4FusionException_2(e):
    o = UnexpectedError.__new__(UnexpectedError)
    o._ctor_init_Lmosek_4fusion_4FusionException_2(e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4FusionException_2(*args):
    if len(args) != 1: return False
    e, = args
    return (__arg_match_Lmosek_4fusion_4FusionException_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4FusionException_2(*args):
    if len(args) != 1: return False
    e, = args
    return (__arg_alt_match_Lmosek_4fusion_4FusionException_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4FusionException_2(self,e):
    self._ctor_init_Lmosek_4fusion_4FusionException_2(e)
  def _ctor_init_Lmosek_4fusion_4FusionException_2(self,e):
   Exception.__init__(self,e.toString())
  @staticmethod
  def _ctor_S(msg):
    o = UnexpectedError.__new__(UnexpectedError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   Exception.__init__(self,msg)
 return UnexpectedError
mosek_fusion_UnexpectedError=__mk_mosek_fusion_UnexpectedError()
del __mk_mosek_fusion_UnexpectedError
def __mk_mosek_fusion_FusionRuntimeException():
 class FusionRuntimeException(Exception):
  __slots__ = ['_FusionRuntimeException__msg']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.FusionRuntimeException.ctor(string)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_FusionRuntimeException._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_FusionRuntimeException._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.FusionRuntimeException.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.FusionRuntimeException: '+self._toString_()
  @staticmethod
  def _ctor_S(msg_):
    o = FusionRuntimeException.__new__(FusionRuntimeException)
    o._ctor_init_S(msg_)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg_, = args
    return (__arg_match_S__(msg_))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg_, = args
    return (__arg_alt_match_S__(msg_))
  def _ctor_alt_init_S(self,msg_):
    self._ctor_init_S(msg_)
  def _ctor_init_S(self,msg_):
   Exception.__init__(self,msg_)
   self.__msg = msg_
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (self.__msg)
 return FusionRuntimeException
mosek_fusion_FusionRuntimeException=__mk_mosek_fusion_FusionRuntimeException()
del __mk_mosek_fusion_FusionRuntimeException
def __mk_mosek_fusion_SparseFormatError():
 class SparseFormatError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.SparseFormatError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.SparseFormatError'
  @staticmethod
  def _ctor_S(msg):
    o = SparseFormatError.__new__(SparseFormatError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return SparseFormatError
mosek_fusion_SparseFormatError=__mk_mosek_fusion_SparseFormatError()
del __mk_mosek_fusion_SparseFormatError
def __mk_mosek_fusion_SliceError():
 class SliceError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.SliceError.ctor()\n\tmosek.fusion.SliceError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.SliceError'
  @staticmethod
  def _ctor_():
    o = SliceError.__new__(SliceError)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,"Invalid slice range")
  @staticmethod
  def _ctor_S(msg):
    o = SliceError.__new__(SliceError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return SliceError
mosek_fusion_SliceError=__mk_mosek_fusion_SliceError()
del __mk_mosek_fusion_SliceError
def __mk_mosek_fusion_UpdateError():
 class UpdateError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.UpdateError.ctor()\n\tmosek.fusion.UpdateError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.UpdateError'
  @staticmethod
  def _ctor_():
    o = UpdateError.__new__(UpdateError)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,"Cannot update parameterized item")
  @staticmethod
  def _ctor_S(msg):
    o = UpdateError.__new__(UpdateError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return UpdateError
mosek_fusion_UpdateError=__mk_mosek_fusion_UpdateError()
del __mk_mosek_fusion_UpdateError
def __mk_mosek_fusion_SetDefinitionError():
 class SetDefinitionError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.SetDefinitionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.SetDefinitionError'
  @staticmethod
  def _ctor_S(msg):
    o = SetDefinitionError.__new__(SetDefinitionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return SetDefinitionError
mosek_fusion_SetDefinitionError=__mk_mosek_fusion_SetDefinitionError()
del __mk_mosek_fusion_SetDefinitionError
def __mk_mosek_fusion_OptimizeError():
 class OptimizeError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.OptimizeError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.OptimizeError'
  @staticmethod
  def _ctor_S(msg):
    o = OptimizeError.__new__(OptimizeError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return OptimizeError
mosek_fusion_OptimizeError=__mk_mosek_fusion_OptimizeError()
del __mk_mosek_fusion_OptimizeError
def __mk_mosek_fusion_NameError():
 class NameError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.NameError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.NameError'
  @staticmethod
  def _ctor_S(msg):
    o = NameError.__new__(NameError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return NameError
mosek_fusion_NameError=__mk_mosek_fusion_NameError()
del __mk_mosek_fusion_NameError
def __mk_mosek_fusion_DeletionError():
 class DeletionError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.DeletionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.DeletionError'
  @staticmethod
  def _ctor_S(msg):
    o = DeletionError.__new__(DeletionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return DeletionError
mosek_fusion_DeletionError=__mk_mosek_fusion_DeletionError()
del __mk_mosek_fusion_DeletionError
def __mk_mosek_fusion_ModelError():
 class ModelError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ModelError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.ModelError'
  @staticmethod
  def _ctor_S(msg):
    o = ModelError.__new__(ModelError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return ModelError
mosek_fusion_ModelError=__mk_mosek_fusion_ModelError()
del __mk_mosek_fusion_ModelError
def __mk_mosek_fusion_MatrixError():
 class MatrixError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.MatrixError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.MatrixError'
  @staticmethod
  def _ctor_S(msg):
    o = MatrixError.__new__(MatrixError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return MatrixError
mosek_fusion_MatrixError=__mk_mosek_fusion_MatrixError()
del __mk_mosek_fusion_MatrixError
def __mk_mosek_fusion_DimensionError():
 class DimensionError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.DimensionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.DimensionError'
  @staticmethod
  def _ctor_S(msg):
    o = DimensionError.__new__(DimensionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return DimensionError
mosek_fusion_DimensionError=__mk_mosek_fusion_DimensionError()
del __mk_mosek_fusion_DimensionError
def __mk_mosek_fusion_LengthError():
 class LengthError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.LengthError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.LengthError'
  @staticmethod
  def _ctor_S(msg):
    o = LengthError.__new__(LengthError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return LengthError
mosek_fusion_LengthError=__mk_mosek_fusion_LengthError()
del __mk_mosek_fusion_LengthError
def __mk_mosek_fusion_RangeError():
 class RangeError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.RangeError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.RangeError'
  @staticmethod
  def _ctor_S(msg):
    o = RangeError.__new__(RangeError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return RangeError
mosek_fusion_RangeError=__mk_mosek_fusion_RangeError()
del __mk_mosek_fusion_RangeError
def __mk_mosek_fusion_IndexError():
 class IndexError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.IndexError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.IndexError'
  @staticmethod
  def _ctor_S(msg):
    o = IndexError.__new__(IndexError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return IndexError
mosek_fusion_IndexError=__mk_mosek_fusion_IndexError()
del __mk_mosek_fusion_IndexError
def __mk_mosek_fusion_DomainError():
 class DomainError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.DomainError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.DomainError'
  @staticmethod
  def _ctor_S(msg):
    o = DomainError.__new__(DomainError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return DomainError
mosek_fusion_DomainError=__mk_mosek_fusion_DomainError()
del __mk_mosek_fusion_DomainError
def __mk_mosek_fusion_ValueConversionError():
 class ValueConversionError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ValueConversionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.ValueConversionError'
  @staticmethod
  def _ctor_S(msg):
    o = ValueConversionError.__new__(ValueConversionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return ValueConversionError
mosek_fusion_ValueConversionError=__mk_mosek_fusion_ValueConversionError()
del __mk_mosek_fusion_ValueConversionError
def __mk_mosek_fusion_ParameterError():
 class ParameterError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ParameterError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.ParameterError'
  @staticmethod
  def _ctor_S(msg):
    o = ParameterError.__new__(ParameterError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return ParameterError
mosek_fusion_ParameterError=__mk_mosek_fusion_ParameterError()
del __mk_mosek_fusion_ParameterError
def __mk_mosek_fusion_ExpressionError():
 class ExpressionError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExpressionError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.ExpressionError'
  @staticmethod
  def _ctor_S(msg):
    o = ExpressionError.__new__(ExpressionError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return ExpressionError
mosek_fusion_ExpressionError=__mk_mosek_fusion_ExpressionError()
del __mk_mosek_fusion_ExpressionError
def __mk_mosek_fusion_IOError():
 class IOError(mosek_fusion_FusionRuntimeException):
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.IOError.ctor(string)')
  def __repr__(self): return 'mosek.fusion.IOError'
  @staticmethod
  def _ctor_S(msg):
    o = IOError.__new__(IOError)
    o._ctor_init_S(msg)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_match_S__(msg))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    msg, = args
    return (__arg_alt_match_S__(msg))
  def _ctor_alt_init_S(self,msg):
    self._ctor_init_S(msg)
  def _ctor_init_S(self,msg):
   mosek_fusion_FusionRuntimeException._ctor_init_S(self,msg)
 return IOError
mosek_fusion_IOError=__mk_mosek_fusion_IOError()
del __mk_mosek_fusion_IOError
def __mk_mosek_fusion_Disjunction():
 class Disjunction(object):
  __slots__ = ['_Disjunction__id']
  def __repr__(self): return 'mosek.fusion.Disjunction'
  @staticmethod
  def _ctor_J(id):
    o = Disjunction.__new__(Disjunction)
    o._ctor_init_J(id)
    return o
  @staticmethod
  def __match_ctor_J(*args):
    if len(args) != 1: return False
    id, = args
    return (__arg_match_J__(id))
  @staticmethod
  def __match_alt_ctor_J(*args):
    if len(args) != 1: return False
    id, = args
    return (__arg_alt_match_J__(id))
  def _ctor_alt_init_J(self,id):
    self._ctor_init_J(numpy.int64(id))
  def _ctor_init_J(self,id):
   (self.__id) = id
 return Disjunction
mosek_fusion_Disjunction=__mk_mosek_fusion_Disjunction()
del __mk_mosek_fusion_Disjunction
def __mk_mosek_fusion_DisjunctionTerms():
 class DisjunctionTerms(object):
  __slots__ = ['_terms']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3Lmosek_4fusion_4Term_2(*args): 
      self._ctor_init__3Lmosek_4fusion_4Term_2(*args)
    elif self.__match_alt_ctor__3Lmosek_4fusion_4Term_2(*args):
      self._ctor_alt_init__3Lmosek_4fusion_4Term_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4ExprRangeDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4ExprLinearDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args): 
      self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args): 
      self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args): 
      self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.DisjunctionTerms.ctor(array(mosek.fusion.Term,ndim=1))\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.ExprRangeDomain)\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.ExprLinearDomain)\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.DisjunctionTerms,array(mosek.fusion.Term,ndim=1))\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.DisjunctionTerms,mosek.fusion.Term)\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.DisjunctionTerms,mosek.fusion.ExprRangeDomain)\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.DisjunctionTerms,mosek.fusion.ExprLinearDomain)\n\tmosek.fusion.DisjunctionTerms.ctor(mosek.fusion.DisjunctionTerms,mosek.fusion.DisjunctionTerms)')
  def __repr__(self): return 'mosek.fusion.DisjunctionTerms'
  @staticmethod
  def _ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(terms1,term):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(terms1,term)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 2: return False
    terms1,term, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(term))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 2: return False
    terms1,term, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(term))
  def _ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(self,terms1,term):
    self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(terms1,term)
  def _ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprRangeDomain_2(self,terms1,term):
   mosek_fusion_DisjunctionTerms._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(self,terms1,mosek.fusion.DJC._term_Lmosek_4fusion_4ExprRangeDomain_2(term))
  @staticmethod
  def _ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(terms1,term):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(terms1,term)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 2: return False
    terms1,term, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(term))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 2: return False
    terms1,term, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(term))
  def _ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(self,terms1,term):
    self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(terms1,term)
  def _ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4ExprLinearDomain_2(self,terms1,term):
   mosek_fusion_DisjunctionTerms._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(self,terms1,mosek.fusion.DJC._term_Lmosek_4fusion_4ExprLinearDomain_2(term))
  @staticmethod
  def _ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(terms1,term2):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(terms1,term2)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 2: return False
    terms1,term2, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(term2))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 2: return False
    terms1,term2, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(terms1) and __arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(term2))
  def _ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(self,terms1,term2):
    self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(terms1,term2)
  def _ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4DisjunctionTerms_2(self,terms1,term2):
   mosek_fusion_DisjunctionTerms._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(self,terms1,(term2._terms))
  @staticmethod
  def _ctor_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(term1,term2):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(term1,term2)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    term1,term2, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(term1) and __arg_match__3Lmosek_4fusion_4Term_2__(term2))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    term1,term2, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(term1) and __arg_alt_match__3Lmosek_4fusion_4Term_2__(term2))
  def _ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(self,term1,term2):
    self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(term1,numpy.array(term2,dtype=numpy.dtype(object)))
  def _ctor_init_Lmosek_4fusion_4DisjunctionTerms_2_3Lmosek_4fusion_4Term_2(self,term1,term2):
   _0=int(((term1._terms)).shape[0])
   self._terms = numpy.zeros(((int(((term1._terms)).shape[0]) + int((term2).shape[0])),), dtype=numpy.dtype(object))
   _1=0
   while (_1 < int(((term1._terms)).shape[0])):
    self._terms[_1] = (term1._terms)[_1]
    _1 += 1
   _2=0
   while (_2 < int((term2).shape[0])):
    self._terms[(_2 + _0)] = term2[_2]
    _2 += 1
  @staticmethod
  def _ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(term1,term2):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(term1,term2)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    term1,term2, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(term1) and __arg_match_Lmosek_4fusion_4Term_2__(term2))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    term1,term2, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(term1) and __arg_alt_match_Lmosek_4fusion_4Term_2__(term2))
  def _ctor_alt_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(self,term1,term2):
    self._ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(term1,term2)
  def _ctor_init_Lmosek_4fusion_4DisjunctionTerms_2Lmosek_4fusion_4Term_2(self,term1,term2):
   self._terms = numpy.zeros(((int(((term1._terms)).shape[0]) + 1),), dtype=numpy.dtype(object))
   _0=0
   while (_0 < int(((term1._terms)).shape[0])):
    self._terms[_0] = (term1._terms)[_0]
    _0 += 1
   self._terms[int(((term1._terms)).shape[0])] = term2
  @staticmethod
  def _ctor__3Lmosek_4fusion_4Term_2(terms):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init__3Lmosek_4fusion_4Term_2(terms)
    return o
  @staticmethod
  def __match_ctor__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    terms, = args
    return (__arg_match__3Lmosek_4fusion_4Term_2__(terms))
  @staticmethod
  def __match_alt_ctor__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    terms, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Term_2__(terms))
  def _ctor_alt_init__3Lmosek_4fusion_4Term_2(self,terms):
    self._ctor_init__3Lmosek_4fusion_4Term_2(numpy.array(terms,dtype=numpy.dtype(object)))
  def _ctor_init__3Lmosek_4fusion_4Term_2(self,terms):
   (self._terms) = numpy.array([terms[_0] for _0 in range(0,int((terms).shape[0]))], dtype=numpy.dtype(object))
  @staticmethod
  def _ctor_Lmosek_4fusion_4ExprRangeDomain_2(term):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4ExprRangeDomain_2(term)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    term, = args
    return (__arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(term))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    term, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(term))
  def _ctor_alt_init_Lmosek_4fusion_4ExprRangeDomain_2(self,term):
    self._ctor_init_Lmosek_4fusion_4ExprRangeDomain_2(term)
  def _ctor_init_Lmosek_4fusion_4ExprRangeDomain_2(self,term):
   self._terms = numpy.array([mosek.fusion.DJC._term_Lmosek_4fusion_4ExprRangeDomain_2(term)], dtype=numpy.dtype(object))
  @staticmethod
  def _ctor_Lmosek_4fusion_4ExprLinearDomain_2(term):
    o = DisjunctionTerms.__new__(DisjunctionTerms)
    o._ctor_init_Lmosek_4fusion_4ExprLinearDomain_2(term)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    term, = args
    return (__arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(term))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    term, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(term))
  def _ctor_alt_init_Lmosek_4fusion_4ExprLinearDomain_2(self,term):
    self._ctor_init_Lmosek_4fusion_4ExprLinearDomain_2(term)
  def _ctor_init_Lmosek_4fusion_4ExprLinearDomain_2(self,term):
   self._terms = numpy.array([mosek.fusion.DJC._term_Lmosek_4fusion_4ExprLinearDomain_2(term)], dtype=numpy.dtype(object))
 return DisjunctionTerms
mosek_fusion_DisjunctionTerms=__mk_mosek_fusion_DisjunctionTerms()
del __mk_mosek_fusion_DisjunctionTerms
def __mk_mosek_fusion_Term():
 class Term(mosek_fusion_ExprDomain,object):
  __slots__ = ['_domains','_exprs']
  def toDJCTerm(self,*args):
    if False: pass
    elif mosek_fusion_Term._match_toDJCTerm_(*args): 
      return self._toDJCTerm_(*args)
    elif mosek_fusion_Term._match_alt_toDJCTerm_(*args): 
      return self._toDJCTerm_alt_(*args)
    else:
      raise ValueError('Invalid argument list toDJCTerm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Term.toDJCTerm()')
  def size(self,*args):
    if False: pass
    elif mosek_fusion_Term._match_size_(*args): 
      return self._size_(*args)
    elif mosek_fusion_Term._match_alt_size_(*args): 
      return self._size_alt_(*args)
    else:
      raise ValueError('Invalid argument list size('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Term.size()')
  def __repr__(self): return 'mosek.fusion.Term'
  @staticmethod
  def _ctor__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(elist,dlist):
    o = Term.__new__(Term)
    o._ctor_init__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(elist,dlist)
    return o
  @staticmethod
  def __match_ctor__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    elist,dlist, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(elist) and __arg_match__3Lmosek_4fusion_4DJCDomain_2__(dlist))
  @staticmethod
  def __match_alt_ctor__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    elist,dlist, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(elist) and __arg_alt_match__3Lmosek_4fusion_4DJCDomain_2__(dlist))
  def _ctor_alt_init__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(self,elist,dlist):
    self._ctor_init__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(numpy.array(elist,dtype=numpy.dtype(object)),numpy.array(dlist,dtype=numpy.dtype(object)))
  def _ctor_init__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(self,elist,dlist):
   _0=int((elist).shape[0])
   self._exprs = numpy.ndarray((_0,), dtype=numpy.dtype(object))
   self._domains = numpy.ndarray((_0,), dtype=numpy.dtype(object))
   for _1 in range(0,_0):
    self._exprs[_1] = elist[_1]
    self._domains[_1] = dlist[_1]
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d):
    o = Term.__new__(Term)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    e,d, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e) and __arg_match_Lmosek_4fusion_4DJCDomain_2__(d))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    e,d, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e) and __arg_alt_match_Lmosek_4fusion_4DJCDomain_2__(d))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(self,e,d):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(self,e,d):
   self._exprs = numpy.array([e], dtype=numpy.dtype(object))
   self._domains = numpy.array([d], dtype=numpy.dtype(object))
  @staticmethod
  def _ctor__3Lmosek_4fusion_4SimpleTerm_2(t):
    o = Term.__new__(Term)
    o._ctor_init__3Lmosek_4fusion_4SimpleTerm_2(t)
    return o
  @staticmethod
  def __match_ctor__3Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    t, = args
    return (__arg_match__3Lmosek_4fusion_4SimpleTerm_2__(t))
  @staticmethod
  def __match_alt_ctor__3Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    t, = args
    return (__arg_alt_match__3Lmosek_4fusion_4SimpleTerm_2__(t))
  def _ctor_alt_init__3Lmosek_4fusion_4SimpleTerm_2(self,t):
    self._ctor_init__3Lmosek_4fusion_4SimpleTerm_2(numpy.array(t,dtype=numpy.dtype(object)))
  def _ctor_init__3Lmosek_4fusion_4SimpleTerm_2(self,t):
   _0=int((t).shape[0])
   self._exprs = numpy.ndarray((_0,), dtype=numpy.dtype(object))
   self._domains = numpy.ndarray((_0,), dtype=numpy.dtype(object))
   for _1 in range(0,_0):
    self._exprs[_1] = (t[_1]._exprs)[0]
    self._domains[_1] = (t[_1]._domains)[0]
  def _numaccterms_alt_(self,):
    return self._numaccterms_()
  def _numaccterms_(self,):
   _0=0
   for _1 in range(0,int((self._domains).shape[0])):
    _0 += self._domains[_1]._numaccterms_()
   return numpy.int32(_0)
  def _numaccrows_alt_(self,):
    return self._numaccrows_()
  def _numaccrows_(self,):
   _0=0
   for _1 in range(0,int((self._domains).shape[0])):
    _0 += self._domains[_1]._numaccrows_()
   return numpy.int32(_0)
  def _num_alt_(self,):
    return self._num_()
  def _num_(self,):
   return numpy.int32(int((self._domains).shape[0]))
  @staticmethod
  def _match_size_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_size_(*args):
    if len(args) != 0: return False
    return True
  def _size_alt_(self,):
    return self._size_()
  def _size_(self,):
   _0=0
   for _1 in range(0,int((self._domains).shape[0])):
    _0 += self._domains[_1].size()
   return numpy.int32(_0)
  @staticmethod
  def _match_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  def _toDJCTerm_alt_(self,):
    return self._toDJCTerm_()
  def _toDJCTerm_(self,):
   return (self)
 return Term
mosek_fusion_Term=__mk_mosek_fusion_Term()
del __mk_mosek_fusion_Term
def __mk_mosek_fusion_SimpleTerm():
 class SimpleTerm(mosek_fusion_Term):
  def __repr__(self): return 'mosek.fusion.SimpleTerm'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d):
    o = SimpleTerm.__new__(SimpleTerm)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    e,d, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e) and __arg_match_Lmosek_4fusion_4DJCDomain_2__(d))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(*args):
    if len(args) != 2: return False
    e,d, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e) and __arg_alt_match_Lmosek_4fusion_4DJCDomain_2__(d))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(self,e,d):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(e,d)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(self,e,d):
   mosek_fusion_Term._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(self,e,d)
 return SimpleTerm
mosek_fusion_SimpleTerm=__mk_mosek_fusion_SimpleTerm()
del __mk_mosek_fusion_SimpleTerm
def __mk_mosek_fusion_DJCDomain():
 class DJCDomain(object):
  __slots__ = ['dom','conedim','shape','par','b']
  def size(self,*args):
    if False: pass
    elif mosek_fusion_DJCDomain._match_size_(*args): 
      return self._size_(*args)
    elif mosek_fusion_DJCDomain._match_alt_size_(*args): 
      return self._size_alt_(*args)
    else:
      raise ValueError('Invalid argument list size('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DJCDomain.size()')
  def __repr__(self): return 'mosek.fusion.DJCDomain'
  @staticmethod
  def _ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(b_,par_,shape_,dom_):
    o = DJCDomain.__new__(DJCDomain)
    o._ctor_init__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(b_,par_,shape_,dom_)
    return o
  @staticmethod
  def __match_ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(*args):
    if len(args) != 4: return False
    b_,par_,shape_,dom_, = args
    return (__arg_match__3D__(b_) and __arg_match__3D__(par_) and __arg_match__3I__(shape_) and __arg_match_Emosek_4fusion_4DJCDomainType_2__(dom_))
  @staticmethod
  def __match_alt_ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(*args):
    if len(args) != 4: return False
    b_,par_,shape_,dom_, = args
    return (__arg_alt_match__3D__(b_) and __arg_alt_match__3D__(par_) and __arg_alt_match__3I__(shape_) and __arg_alt_match_Emosek_4fusion_4DJCDomainType_2__(dom_))
  def _ctor_alt_init__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(self,b_,par_,shape_,dom_):
    self._ctor_init__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(numpy.array(b_,dtype=numpy.dtype(numpy.float64)),numpy.array(par_,dtype=numpy.dtype(numpy.float64)),numpy.array(shape_,dtype=numpy.dtype(numpy.int32)),dom_)
  def _ctor_init__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(self,b_,par_,shape_,dom_):
   self.b = b_
   self.par = par_
   self.shape = shape_
   self.dom = dom_
   self.conedim = (int((shape_).shape[0]) - 1)
  @staticmethod
  def _ctor__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(b_,par_,shape_,conedim_,dom_):
    o = DJCDomain.__new__(DJCDomain)
    o._ctor_init__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(b_,par_,shape_,conedim_,dom_)
    return o
  @staticmethod
  def __match_ctor__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(*args):
    if len(args) != 5: return False
    b_,par_,shape_,conedim_,dom_, = args
    return (__arg_match__3D__(b_) and __arg_match__3D__(par_) and __arg_match__3I__(shape_) and __arg_match_I__(conedim_) and __arg_match_Emosek_4fusion_4DJCDomainType_2__(dom_))
  @staticmethod
  def __match_alt_ctor__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(*args):
    if len(args) != 5: return False
    b_,par_,shape_,conedim_,dom_, = args
    return (__arg_alt_match__3D__(b_) and __arg_alt_match__3D__(par_) and __arg_alt_match__3I__(shape_) and __arg_alt_match_I__(conedim_) and __arg_alt_match_Emosek_4fusion_4DJCDomainType_2__(dom_))
  def _ctor_alt_init__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(self,b_,par_,shape_,conedim_,dom_):
    self._ctor_init__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(numpy.array(b_,dtype=numpy.dtype(numpy.float64)),numpy.array(par_,dtype=numpy.dtype(numpy.float64)),numpy.array(shape_,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim_),dom_)
  def _ctor_init__3D_3D_3IIEmosek_4fusion_4DJCDomainType_2(self,b_,par_,shape_,conedim_,dom_):
   self.b = b_
   self.par = par_
   self.shape = shape_
   self.dom = dom_
   self.conedim = conedim_
  def _numaccterms_alt_(self,):
    return self._numaccterms_()
  def _numaccterms_(self,):
   if (self.dom==mosek.fusion.DJCDomainType.InRange):
    return numpy.int32(2)
   else:
    return numpy.int32(1)
  def _numaccrows_alt_(self,):
    return self._numaccrows_()
  def _numaccrows_(self,):
   if (self.dom==mosek.fusion.DJCDomainType.InRange):
    return numpy.int32((self.size() * 2))
   else:
    return numpy.int32(self.size())
  @staticmethod
  def _match_size_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_size_(*args):
    if len(args) != 0: return False
    return True
  def _size_alt_(self,):
    return self._size_()
  def _size_(self,):
   _0=1
   for _1 in range(0,int((self.shape).shape[0])):
    _0 *= self.shape[_1]
   return numpy.int32(_0)
 return DJCDomain
mosek_fusion_DJCDomain=__mk_mosek_fusion_DJCDomain()
del __mk_mosek_fusion_DJCDomain
def __mk_mosek_fusion_DJC():
 class DJC(object):
  @staticmethod
  def ANDFromTerms(*args):
    if False: pass
    elif mosek_fusion_DJC._match_ANDFromTerms__3Lmosek_4fusion_4Term_2(*args): 
      return mosek_fusion_DJC._ANDFromTerms__3Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_DJC._match_alt_ANDFromTerms__3Lmosek_4fusion_4Term_2(*args): 
      return mosek_fusion_DJC._ANDFromTerms_alt__3Lmosek_4fusion_4Term_2(*args)
    else:
      raise ValueError('Invalid argument list ANDFromTerms('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DJC.ANDFromTerms(array(mosek.fusion.Term,ndim=1))')
  @staticmethod
  def AND(*args):
    if False: pass
    elif mosek_fusion_DJC._match_AND__3Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND__3Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_alt_AND__3Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_alt__3Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_AND__3Lmosek_4fusion_4ExprDomain_2(*args): 
      return mosek_fusion_DJC._AND__3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_AND__3Lmosek_4fusion_4ExprDomain_2(*args): 
      return mosek_fusion_DJC._AND_alt__3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_DJC._match_AND_Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_alt_AND_Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_alt_Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_alt_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_alt_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args)
    elif mosek_fusion_DJC._match_alt_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args): 
      return mosek_fusion_DJC._AND_alt_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args)
    else:
      raise ValueError('Invalid argument list AND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DJC.AND(array(mosek.fusion.SimpleTerm,ndim=1))\n\tmosek.fusion.DJC.AND(array(mosek.fusion.ExprDomain,ndim=1))\n\tmosek.fusion.DJC.AND(mosek.fusion.SimpleTerm)\n\tmosek.fusion.DJC.AND(mosek.fusion.SimpleTerm,mosek.fusion.SimpleTerm)\n\tmosek.fusion.DJC.AND(mosek.fusion.SimpleTerm,mosek.fusion.SimpleTerm,mosek.fusion.SimpleTerm)')
  @staticmethod
  def term(*args):
    if False: pass
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_DJC._match_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_DJC._match_alt_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_DJC._term_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    else:
      raise ValueError('Invalid argument list term('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DJC.term(mosek.fusion.ExprRangeDomain)\n\tmosek.fusion.DJC.term(mosek.fusion.ExprLinearDomain)\n\tmosek.fusion.DJC.term(mosek.fusion.Variable,mosek.fusion.RangeDomain)\n\tmosek.fusion.DJC.term(mosek.fusion.Expression,mosek.fusion.RangeDomain)\n\tmosek.fusion.DJC.term(mosek.fusion.Variable,mosek.fusion.LinearDomain)\n\tmosek.fusion.DJC.term(mosek.fusion.Expression,mosek.fusion.LinearDomain)')
  def __repr__(self): return 'mosek.fusion.DJC'
  @staticmethod
  def _match_ANDFromTerms__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Term_2__(_0))
  @staticmethod
  def _match_alt_ANDFromTerms__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Term_2__(_0))
  @staticmethod
  def _ANDFromTerms_alt__3Lmosek_4fusion_4Term_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_DJC._ANDFromTerms__3Lmosek_4fusion_4Term_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _ANDFromTerms__3Lmosek_4fusion_4Term_2(_0):
   _1=0
   for _2 in range(0,int((_0).shape[0])):
    _1 += _0[_2]._num_()
   _3=numpy.ndarray((_1,), dtype=numpy.dtype(object))
   _4=numpy.ndarray((_1,), dtype=numpy.dtype(object))
   _1 = 0
   for _5 in range(0,int((_0).shape[0])):
    for _6 in range(0,_0[_5]._num_()):
     _3[_1] = (_0[_5]._exprs)[_6]
     _4[_1] = (_0[_5]._domains)[_6]
     _1 += 1
   return (mosek_fusion_Term._ctor__3Lmosek_4fusion_4Expression_2_3Lmosek_4fusion_4DJCDomain_2(_3,_4))
  @staticmethod
  def _match_AND__3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4ExprDomain_2__(_0))
  @staticmethod
  def _match_alt_AND__3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4ExprDomain_2__(_0))
  @staticmethod
  def _AND_alt__3Lmosek_4fusion_4ExprDomain_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_DJC._AND__3Lmosek_4fusion_4ExprDomain_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _AND__3Lmosek_4fusion_4ExprDomain_2(_0):
   return (mosek.fusion.DJC._ANDFromTerms__3Lmosek_4fusion_4Term_2(numpy.array([_0[_1].toDJCTerm() for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4SimpleTerm_2__(_0) and __arg_match_Lmosek_4fusion_4SimpleTerm_2__(_1) and __arg_match_Lmosek_4fusion_4SimpleTerm_2__(_2))
  @staticmethod
  def _match_alt_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_0) and __arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_1) and __arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_2))
  @staticmethod
  def _AND_alt_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_t__0,_t__1,_t__2):
    return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_0,_1,_2)
  @staticmethod
  def _AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_0,_1,_2):
   return (mosek.fusion.DJC._AND__3Lmosek_4fusion_4SimpleTerm_2(numpy.array([_0,_1,_2], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4SimpleTerm_2__(_0) and __arg_match_Lmosek_4fusion_4SimpleTerm_2__(_1))
  @staticmethod
  def _match_alt_AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_0) and __arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_1))
  @staticmethod
  def _AND_alt_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_t__0,_t__1):
    return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_0,_1)
  @staticmethod
  def _AND_Lmosek_4fusion_4SimpleTerm_2Lmosek_4fusion_4SimpleTerm_2(_0,_1):
   return (mosek.fusion.DJC._AND__3Lmosek_4fusion_4SimpleTerm_2(numpy.array([_0,_1], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_AND_Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4SimpleTerm_2__(_0))
  @staticmethod
  def _match_alt_AND_Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(_0))
  @staticmethod
  def _AND_alt_Lmosek_4fusion_4SimpleTerm_2(_t__0):
    return mosek_fusion_DJC._AND_Lmosek_4fusion_4SimpleTerm_2(_0)
  @staticmethod
  def _AND_Lmosek_4fusion_4SimpleTerm_2(_0):
   return (mosek.fusion.DJC._AND__3Lmosek_4fusion_4SimpleTerm_2(numpy.array([_0], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_AND__3Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4SimpleTerm_2__(_0))
  @staticmethod
  def _match_alt_AND__3Lmosek_4fusion_4SimpleTerm_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4SimpleTerm_2__(_0))
  @staticmethod
  def _AND_alt__3Lmosek_4fusion_4SimpleTerm_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_DJC._AND__3Lmosek_4fusion_4SimpleTerm_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _AND__3Lmosek_4fusion_4SimpleTerm_2(_0):
   return (mosek_fusion_Term._ctor__3Lmosek_4fusion_4SimpleTerm_2(_0))
  @staticmethod
  def _match_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_t__0,_t__1):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1)
  @staticmethod
  def _term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1):
   if ((_1._sparsity) is not None):
    raise mosek_fusion_DomainError._ctor_S("Sparse domain is not acceptable in disjunctive constraints")
   if (_1._cardinal_flag):
    raise mosek_fusion_DomainError._ctor_S("Integer domain is not acceptable in disjunctive constraints")
   _2=(_1._lb)
   _3=(_1._ub)
   _4=_0.getShape()
   _5=_0.getSize()
   _6=(_1._shape)
   if (_6 is None):
    _6 = _4
   else:
    if (int((_6).shape[0])!=int((_4).shape[0])):
     raise mosek_fusion_DomainError._ctor_S("Mismatching shapes")
    else:
     for _9 in range(0,int((_6).shape[0])):
      if (_6[_9]!=_4[_9]):
       raise mosek_fusion_DomainError._ctor_S("Mismatching shapes")
   if (_1._scalable):
    _7 = numpy.array([_2[0] for _10 in range(0,_5)], dtype=numpy.dtype(numpy.float64))
    _8 = numpy.array([_3[0] for _11 in range(0,_5)], dtype=numpy.dtype(numpy.float64))
   else:
    _7 = _2
    _8 = _3
   return (mosek_fusion_SimpleTerm._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(_0,mosek_fusion_DJCDomain._ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(_7,_8,_6,mosek.fusion.DJCDomainType.InRange)))
  @staticmethod
  def _match_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(_t__0,_t__1):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(_0,_1)
  @staticmethod
  def _term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4RangeDomain_2(_0,_1):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0.asExpr(),_1))
  @staticmethod
  def _match_term_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(_0))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(_0))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4ExprRangeDomain_2(_t__0):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4ExprRangeDomain_2(_0)
  @staticmethod
  def _term_Lmosek_4fusion_4ExprRangeDomain_2(_0):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2((_0.expr),(_0.dom)))
  @staticmethod
  def _match_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_t__0,_t__1):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1)
  @staticmethod
  def _term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1):
   if ((_1._sparsity) is not None):
    raise mosek_fusion_DomainError._ctor_S("Sparse domain is not acceptable in disjunctive constraints")
   if (_1._cardinal_flag):
    raise mosek_fusion_DomainError._ctor_S("Integer domain is not acceptable in disjunctive constraints")
   _2=(_1._bnd)
   _3=_0.getShape()
   _4=_0.getSize()
   _5=(_1._shape)
   if (_5 is None):
    _5 = _3
   else:
    if (int((_5).shape[0])!=int((_3).shape[0])):
     raise mosek_fusion_DomainError._ctor_S("Mismatching shapes")
    else:
     for _7 in range(0,int((_5).shape[0])):
      if (_5[_7]!=_3[_7]):
       raise mosek_fusion_DomainError._ctor_S("Mismatching shapes")
   if ((_1._bnd) is None):
    _6 = numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   elif (_1._scalable): # bld/docker-win/final/default/src/fusion/Disjunction.mbi:64:16-28
    _6 = numpy.array([_2[0] for _8 in range(0,_4)], dtype=numpy.dtype(numpy.float64))
   elif (_1._empty): # bld/docker-win/final/default/src/fusion/Disjunction.mbi:65:16-25
    _6 = numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   else:
    _6 = _2
   if ((_1._key)==mosek.fusion.RelationKey.EqualsTo):
    return (mosek_fusion_SimpleTerm._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(_0,mosek_fusion_DJCDomain._ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(_6,None,_5,mosek.fusion.DJCDomainType.EqualTo)))
   elif ((_1._key)==mosek.fusion.RelationKey.LessThan): # bld/docker-win/final/default/src/fusion/Disjunction.mbi:69:16-47
    return (mosek_fusion_SimpleTerm._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(_0,mosek_fusion_DJCDomain._ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(_6,None,_5,mosek.fusion.DJCDomainType.LessThan)))
   elif ((_1._key)==mosek.fusion.RelationKey.GreaterThan): # bld/docker-win/final/default/src/fusion/Disjunction.mbi:70:16-50
    return (mosek_fusion_SimpleTerm._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(_0,mosek_fusion_DJCDomain._ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(_6,None,_5,mosek.fusion.DJCDomainType.GreaterThan)))
   elif ((_1._key)==mosek.fusion.RelationKey.IsFree): # bld/docker-win/final/default/src/fusion/Disjunction.mbi:71:16-45
    return (mosek_fusion_SimpleTerm._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4DJCDomain_2(_0,mosek_fusion_DJCDomain._ctor__3D_3D_3IEmosek_4fusion_4DJCDomainType_2(_6,None,_5,mosek.fusion.DJCDomainType.IsFree)))
   else:
    raise mosek_fusion_UnexpectedError._ctor_S("Invalid linear domain")
  @staticmethod
  def _match_term_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(_0))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(_0))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4ExprLinearDomain_2(_t__0):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4ExprLinearDomain_2(_0)
  @staticmethod
  def _term_Lmosek_4fusion_4ExprLinearDomain_2(_0):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2((_0.expr),(_0.dom)))
  @staticmethod
  def _match_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _term_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(_t__0,_t__1):
    return mosek_fusion_DJC._term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(_0,_1)
  @staticmethod
  def _term_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4LinearDomain_2(_0,_1):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0.asExpr(),_1))
 return DJC
mosek_fusion_DJC=__mk_mosek_fusion_DJC()
del __mk_mosek_fusion_DJC
def __mk_mosek_fusion_BaseModel():
  import threading
  import mosek
  import mosek.fusion
  import numpy
  
  class BaseModel(object):
    _lock = threading.Lock()
    _global_env = None
    _global_env_counter = 0
  
    @classmethod
    def _globalEnv(self):
      self._lock.acquire()
      try:
        if BaseModel._global_env is None:
          try:
            env = mosek.Env(globalenv=True)
            BaseModel._global_env = env
            BaseModel._global_env_counter += 1
          except mosek.Exception as e:
            raise UnexpectedError(e)
        return BaseModel._global_env
      finally:
        self._lock.release()
  
    @classmethod
    def _env_1putlicensecode__3I(self,code):
      self._globalEnv().putlicensecode(code)
  
    @classmethod
    def _env_1putlicensepath_S(self,path):
      self._globalEnv().putlicensepath(path)
  
    @classmethod
    def _env_1putlicensewait_Z(self,yn):
      if yn:
        self._globalEnv().putlicensewait(1)
      else:
        self._globalEnv().putlicensewait(0)
  
    @classmethod
    def _env_1getversion_(self):
      return ".".join([str(_) for _ in mosek.Env.getversion()])
  
    def __callback(self,callbackkey,dinf,iinf,liinf):
      if self.__user_cb is not None:
        try:
          if self.__user_cb(callbackkey,dinf,iinf,liinf):
            self.__break = True
        except:
          self.__break = True
      if self.__user_pgs is not None:
        try:
          if self.__user_pgs(callbackkey):
            self.__break = True
        except:
          self.__break = True
      return 1 if self.__break else 0
  
    def _ctor_init_SS(self,name,licfile):
      env = self._globalEnv()
      self.__modelname = name
      self.__break = False
      task = mosek.Task(self._global_env, 0, 0);
      self.__user_cb = None
      self.__user_pgs = None
      finished = False
      try:
        task.putintparam(mosek.iparam.log_expand,0);
        task.putintparam(mosek.iparam.remove_unused_solutions,1);
        self.__task = task
        if name is not None:
          task.puttaskname(name)
  
        self._synched = mosek_fusion_SolutionStatus.Optimal;
  
        self._sol_itr = None
        self._sol_bas = None
        self._sol_itg = None
  
        self.__objname = None
  
        # handler for log output.
        def loghandler(text):
          if self.__logwriter is not None:
            self.__logwriter.write(text)
            self.__logwriter.flush()
        self.__loghandler = loghandler
        self.__logwriter = None
  
        task.set_Stream(mosek.streamtype.log,loghandler)
        task.set_InfoCallback(self.__callback)
        finished = True
      finally:
        if not finished:
          self.__task.__del__()
          self.__task = None
          BaseModel._global_env_counter -= 1
  
    def _ctor_init_Lmosek_4fusion_4BaseModel_2(self,m):
      env = self._globalEnv()
      self.__modelname = m.__modelname
      self.__break = False
      self.__user_cb = None
      self.__user_pgs = None
      task = mosek.Task(m.__task)
      finished = False
      try:
        self.__task = task
        self._synched = m._synched
  
        self._sol_itr = m._sol_itr._clone_() if m._sol_itr is not None else None
        self._sol_bas = m._sol_bas._clone_() if m._sol_bas is not None else None
        self._sol_itg = m._sol_itg._clone_() if m._sol_itg is not None else None
  
        self.__objname = m.__objname
  
        # handler for log output.
        def loghandler(text):
          if self.__logwriter is not None:
            self.__logwriter.write(text)
            self.__logwriter.flush()
        self.__loghandler = loghandler
        self.__logwriter = None
  
        task.set_Stream(mosek.streamtype.log,loghandler)
        task.set_InfoCallback(self.__callback)
        finished = True
      finally:
        if not finished:
          self.__task.__del__()
          self.__task = None
          BaseModel._global_env_counter -= 1
  
    def __del__(self):
        lock = self._lock
        if hasattr(self,'_BaseModel__task'):
          lock.acquire()
          try:
            task = self.__task
            BaseModel._global_env_counter -= 1
            task.__del__()
  
            for a in self.__class__.__slots__ + ['_sol_itr','_sol_bas','_sol_itg',
                                                 '_BaseModel__user_cb','_BaseModel__user_pgs','_BaseModel__loghandler','_BaseModel__logwriter','_BaseModel__task']:
              try: delattr(self,a)
              except AttributeError: pass
          finally:
            lock.release()
  
    def __enter__(self):
      return self
    def __exit__(self,exc_type,exc_val,exc_tb):
      self.__del__()
    def _dispose_(self):
      self.__del__()
  
    def _task_1setDataCallbackHandler_LSystem_4DataCallbackHandler_2(self,handler):
      self.__user_cb = handler
    def _task_1setCallbackHandler_LSystem_4CallbackHandler_2(self,handler):
      self.__user_pgs = handler
  
    def _task_1setLogHandler_LSystem_4StreamWriter_2(self,handler):
      """
      Set the object to handle log output from the solver.
  
      The handler object must have a write method accepting a string.
      """
      self.__logwriter = handler
  
    def _task_1put_1param_SS(self,name,value):
      self.__task.putnastrparam(name,value)
    def _task_1put_1param_SD(self,name,value):
      self.__task.putnadouparam(name,value)
    def _task_1put_1param_SI(self,name,value):
      self.__task.putnaintparam(name,value)
  
    def _task_1get_1dinf_S(self,name):
      key = mosek_fusion_SolverInfo._getdouinf(name)
      if key is None:
        raise NameError("Invalid double info name '%s'" % name)
      else:
        return self.__task.getdouinf(key)
  
    def _task_1get_1iinf_S(self,name):
      key = mosek_fusion_SolverInfo._getintinf(name)
      if key is None:
        raise NameError("Invalid integer info name '%s'" % name)
      else:
        return self.__task.getintinf(key)
  
    def _task_1get_1liinf_S(self,name):
      key = mosek_fusion_SolverInfo._getlintinf(name)
      if key is None:
        raise NameError("Invalid long integer info name '%s'" % name)
      else:
        return self.__task.getlintinf(key)
  
    def _numVariables_ (self):
      return len(self.__vars)
    def _numConstraints_ (self):
      return len(self.__cons)
  
    @staticmethod
    def __convert_names(names):
      namelist = None
      if names is not None:
        namelist = []
        namedaxisidxs = []
        for axisi,nl in enumerate(names):
          if nl is not None:
            namelist.extend(nl)
            namedaxisidxs.append(axisi)
      else:
        namelist = None
        namedaxisidxs = None
  
      return namedaxisidxs,namelist
    def _task_1format_1djc_1names__3JS_3I_3_3S(self,sub,fmt,dims,names):
      namedaxisidxs,namelist = self.__convert_names(names)
      self.__task.generatedjcnames(sub,fmt,dims,None,namedaxisidxs,namelist)
    def _task_1format_1acc_1names__3JS_3I_3_3S(self,sub,fmt,dims,names):
      namedaxisidxs,namelist = self.__convert_names(names)
      self.__task.generateaccnames(sub,fmt,dims,None,namedaxisidxs,namelist)
    def _task_1format_1var_1names__3IS_3I_3J_3_3S(self,subj,fmt,dims,sp,names):
      namedaxisidxs,namelist = self.__convert_names(names)
      self.__task.generatevarnames(subj,fmt,dims,sp,namedaxisidxs,namelist)
    def _task_1format_1barvar_1names__3IS_3I_3_3S(self,subj,fmt,dims,names):
      namedaxisidxs,namelist = self.__convert_names(names)
      self.__task.generatebarvarnames(subj,fmt,dims,None,namedaxisidxs,namelist)
    def _task_1format_1con_1names__3IS_3I_3J_3_3S(self,subj,fmt,dims,sp,names):
      namedaxisidxs,namelist = self.__convert_names(names)
      self.__task.generateconnames(subj,fmt,dims,sp,namedaxisidxs,namelist)
  
    def _task_1con_1name_IS(self,idx,name): self.__task.putconname(idx,name)
    def _task_1var_1name_IS(self,idx, name): self.__task.putvarname(idx,name)
    def _task_1acc_1name_JS(self,idx, name): self.__task.putaccname(idx,name)
    def _task_1djc_1name_JS(self,idx, name): self.__task.putdjcname(idx,name)
    def _task_1barvar_1name_IS(self,idx, name): self.__task.putbarvarname(idx,name)
  
    def _task_1numcon_(self):
      return self.__task.getnumcon()
    def _task_1numvar_(self):
      return self.__task.getnumvar()
    def _task_1numacc_(self):
      return self.__task.getnumacc()
    def _task_1numafe_(self):
      return self.__task.getnumafe()
    def _task_1numdjc_(self):
      return self.__task.getnumdjc()
  
    def __task_putvarboundlist(self,idxs,bl,bu,bk):
      num = len(idxs)
      if bl is None: bl = numpy.zeros(num,numpy.float64)
      if bu is None: bu = numpy.zeros(num,numpy.float64)
  
      bka = [bk] * num
      self.__task.putvarboundlist(idxs,bka,bl,bu)
  
    def __task_putconboundlist(self,idxs,bl,bu,bk):
      num = len(idxs)
      if bl is None: bl = numpy.zeros(num,numpy.float64)
      if bu is None: bu = numpy.zeros(num,numpy.float64)
  
      bka = [bk] * num
      self.__task.putconboundlist(idxs,bka,bl,bu)
  
    def _task_1con_1putboundlist_1fx__3I_3D(self,idxs, rhs):
      self.__task_putconboundlist( idxs, rhs, rhs, mosek.boundkey.fx);
  
    def _task_1con_1putboundlist_1lo__3I_3D(self,idxs, rhs):
      self.__task_putconboundlist( idxs, rhs, rhs, mosek.boundkey.lo);
  
    def _task_1con_1putboundlist_1up__3I_3D(self,idxs, rhs):
      self.__task_putconboundlist( idxs, rhs, rhs, mosek.boundkey.up);
  
    def _task_1con_1putboundlist_1ra__3I_3D_3D(self,idxs, lb, ub):
      self.__task_putconboundlist( idxs, lb, ub, mosek.boundkey.ra);
  
    def _task_1con_1putboundlist_1fr__3I(self,idxs):
      self.__task_putconboundlist( idxs, None, None, mosek.boundkey.fr);
  
  
    def _task_1var_1putboundlist_1fx__3I_3D(self,idxs, rhs):
      self.__task_putvarboundlist( idxs, rhs, rhs, mosek.boundkey.fx);
  
    def _task_1var_1putboundlist_1lo__3I_3D(self,idxs, rhs):
      self.__task_putvarboundlist( idxs, rhs, rhs, mosek.boundkey.lo);
  
    def _task_1var_1putboundlist_1up__3I_3D(self,idxs, rhs):
      self.__task_putvarboundlist( idxs, rhs, rhs, mosek.boundkey.up);
  
    def _task_1var_1putboundlist_1ra__3I_3D_3D(self,idxs, lb, ub):
      self.__task_putvarboundlist( idxs, lb, ub, mosek.boundkey.ra);
  
    def _task_1var_1putboundlist_1fr__3I(self,idxs):
      self.__task_putvarboundlist( idxs, None, None, mosek.boundkey.fr);
  
    def _task_1var_1putintlist__3I(self,idxs):
      self.__task.putvartypelist(idxs,[mosek.variabletype.type_int] * len(idxs))
    def _task_1var_1putcontlist__3I(self,idxs):
      self.__task.putvartypelist(idxs,[mosek.variabletype.type_cont] * len(idxs))
  
  
    def _task_1task_1optimize_ (self):
      try:
        self.__task.optimize()
        if self.__logwriter is not None:
          self.__task.solutionsummary(streamtype.log)
      except mosek.Error as e:
        raise OptimizeError("Error occurred while optimizing")
  
    def __task_appendvars(self,num):
      idx = self.__task.getnumvar()
      self.__task.appendvars(num)
      return idx
  
    def __task_appendcons(self,num):
      idx = self.__task.getnumcon()
      self.__task.appendcons(num)
      return idx
  
    def _task_1append_1var_I(self,num):
      return self.__task_appendvars(num)
  
    def _task_1append_1con_I(self,num):
      return self.__task_appendcons(num)
  
    # def _task_1append_1zerocones_I(self, numcone):
    #   self.__task.appendconesseq([mosek.conetype.zero for i in range(numcone)], numpy.zeros(numcone),numpy.zeros(numcone,int), 0)
  
    # def _task_1clear_1cones__3I(self, idxs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.zero, 0.0, 0,[])
  
    # def _task_1put_1zerocones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.zero, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1quadcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.quad, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1rquadcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.rquad, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1pexpcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.pexp, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1ppowcones__3III_3I_3D(self, idxs, conesize, numcone, membs, alpha):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.ppow, alpha[i], membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1dexpcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.dexp, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1dpowcones__3III_3I_3D(self, idxs, conesize, numcone, membs, alpha):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.dpow, alpha[i], membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1onenormcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.onenrm, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1infnormcones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.infnrm, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1pgeomeancones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.pgeomean, 0.0, membs[i*conesize:(i+1)*conesize])
  
    # def _task_1put_1dgeomeancones__3III_3I(self, idxs, conesize, numcone, membs):
    #   for i,k in enumerate(idxs):
    #     self.__task.putcone(k,mosek.conetype.dgeomean, 0.0, membs[i*conesize:(i+1)*conesize])
  
    def _task_1putarowlist__3I_3J_3I_3D(self,sub, ptrb, subj, cof):
      num   = len(sub)
      self.__task.putarowlist(sub, ptrb[:-1], ptrb[1:], subj, cof);
  
    def _task_1cleararowlist__3I(self,sub):
      num  = len(sub)
      ptr = numpy.zeros(num,dtype=numpy.int64)
      self.__task.putarowlist(sub, ptr, ptr, numpy.zeros(0,dtype=numpy.int32), numpy.zeros(0,dtype=numpy.float64))
  
      # This is probably awfully slow
      nnz   = self.__task.getnumbaranz()
      if nnz > 0:
        idxij = numpy.zeros(nnz,dtype=numpy.int64)
        self.__task.getbarasparsity(idxij)
        sub = set(sub)
        for idx in idxij:
          i,j = self.__task.getbaraidxij(idx)
          if i in sub:
            self.__task.putbaraij(i,j,[],[])
  
    def _task_1clearacollist__3I(self,sub):
      num  = len(sub)
      ptr = numpy.zeros(num,dtype=numpy.int64)
      self.__task.putacollist(sub, ptr, ptr, numpy.zeros(0,dtype=numpy.int32), numpy.zeros(0,dtype=numpy.float64))
  
    def _task_1putaijlist__3I_3I_3DJ(self,subi,subj,cof,num):
      self.__task.putaijlist(subi[:num],subj[:num],cof[:num])
  
    def _task_1putobjectivename_S(self,name):
      self.__task.putobjname("" if name is None else name)
  
    def _task_1putobjective_Z_3I_3DD(self,maximize,subj,cof,cfix):
      c = numpy.zeros(self.__task.getnumvar(),numpy.float64)
      idxs = numpy.arange(0,len(c),dtype=numpy.int32)
      for i in range(len(subj)):
        c[subj[i]] += cof[i]
      self.__task.putclist(idxs,c)
      self.__task.putcfix(cfix)
      self.__task.putobjsense(mosek.objsense.maximize if maximize else mosek.objsense.minimize)
  
    def _task_1putclist__3I_3D(self,subj,cof):
      self.__task.putclist(subj,cof)
  
  
    def _task_1appendsymmatlist__3I_3J_3I_3I_3D(self,dim,nz,subi,subj,cof):
      r = numpy.zeros(len(dim),numpy.int64)
      #print(dim,nz,"totalnz = {}, len(subi) = {},len(subj) = {}, subi = {}".format(sum(nz),len(subi),len(subj),subi))
      self.__task.appendsparsesymmatlist(dim,nz,subi,subj,cof,r)
      return r
  
    def _task_1putbarc__3I_3I_3I_3D(self,subj,subk,subl,val):
      #rint("putbarc: ",subj,subk,subl,val)
      self.__task.putbarcblocktriplet(subj,subk,subl,val)
      #self.__task.writedata("intermediate1.ptf")
  
    def _task_1putbaraijlist__3I_3I_3J(self,subi,subj,matidx):
      alpha = numpy.ones(len(subi),numpy.float64)
      ptr = numpy.arange(0,len(subi)+1,dtype=numpy.int64)
      self.__task.putbaraijlist(subi,subj,ptr[:-1],ptr[1:],matidx,alpha)
  
    def _task_1putbararowlist__3I_3J_3I_3J(self,subi,ptr,subj,matidx):
      alpha = numpy.ones(len(subj),numpy.float64)
      nummat = numpy.ones(len(subj),numpy.int64)
      self.__task.putbararowlist(subi,ptr[:-1],ptr[1:],subj,nummat,matidx,alpha)
  
  
    def _task_1barvardim_I(self,index):
      return self.__task.getdimbarvarj(index)
  
    def _task_1numbarvar_(self):
      return self.__task.getnumbarvar()
  
  
    def _task_1append_1barvar_II(self,size, num):
      res = self.__task.getnumbarvar()
      self.__task.appendbarvars([size] * num)
      return res
  
    def _task_1setnumvar_I(self,num):
      numvar = self.__task.getnumvar()
      if numvar > num:
        self.__task.removevars(range(num,numvar))
  
  
    def _task_1putxx_1slice_Emosek_4fusion_4SolutionType_2II_3D(self,whichsol,first,last,xx):
      if   whichsol == mosek_fusion_SolutionType.Interior:
        self.__task.putxxslice(mosek.soltype.itr, first,last,xx)
      elif whichsol == mosek_fusion_SolutionType.Integer:
        self.__task.putxxslice(mosek.soltype.itg, first,last,xx)
      elif whichsol == mosek_fusion_SolutionType.Basic:
        self.__task.putxxslice(mosek.soltype.bas, first,last,xx)
  
    def _task_1cleanup_IIII(self,inumvar,inumcon,inumcone,inumbarvar):
      numvar  = self.__task.getnumvar()
      numcon  = self.__task.getnumcon()
      numcone = self.__task.getnumcone()
      numbarvar = self.__task.getnumbarvar()
  
      if inumcone < numcone:
        self.__task.removecones(range(inumcone,numcone))
  
      if inumvar < numvar:
        n = numvar-inumvar
        vals = numpy.zeros((n,), numpy.float64)
        bk   = [ mosek.boundkey.fx for i in range(n) ]
        self.__task.putvarboundslice(inumvar,numvar,bk, vals, vals)
  
      if (inumcon < numcon):
        idxs = range(inumcon,numcon)
        self.__task.removecons(idxs)
  
      if (inumbarvar < numbarvar):
        self.__task.removebarvars(range(inumbarvar,numbarvar))
  
    def _task_1append_1afes_J(self,num):
      first = self.__task.getnumafe()
      self.__task.appendafes(num)
      return first
  
  
    def _task_1clearafelist__3J(self,idxs):
      self.__task.emptyafefrowlist(idxs)
      self.__task.emptyafebarfrowlist(idxs)
      self.__task.putafeglist(idxs,numpy.zeros(len(idxs),dtype=numpy.float64))
  
    def _task_1putafeflist__3J_3I_3I_3D_3D(self,idxs,ptr,subj,cof,g):
      lptr = numpy.array(ptr[:-1],dtype=numpy.int64)
      rownz = numpy.array([ptr[i+1]-ptr[i] for i in range(len(ptr)-1)],dtype=numpy.int32)
      self.__task.putafefrowlist(idxs,rownz,lptr, subj,cof)
      self.__task.putafeglist(idxs,g)
  
    # def _task_1putafebarfrowlist__3I_3J_3I_3J (self,idxs,ptr,barsubj,symmatidx):
    #     num = len(barsubj)
    #     afeidxlist = numpy.array([ idxs[i] for i in range(len(idxs)) for j in range(ptr[i],ptr[i+1]) ],dtype=numpy.int64)
    #     numtermslist = numpy.ones(num,numpy.int64)
    #     ptrtermslist = numpy.arange(num,numpy.int64)
    #     termweights = numpy.ones(num,numpy.float64)
    #     self.__task.putafebarfentrylist(afeidxlist,barsubj,numtermslist,ptrtermslist,symmatidx,termweights)
  
    def _task_1putafefijlist__3I_3I_3D (self,idxs,subj,cof):
      self.__task.putafefentrylist(numpy.array(idxs,dtype=numpy.int64),subj,cof)
    def _task_putafefglist__3I_3D(self,idxs,g):
      self.__task.putafeglist(idxs,g)
  
    def _task_1append_1accs_JI_3J_3D(self,domidx,numcone,afeidxs,g):
      domidxs = numpy.array([domidx for i in range(numcone)],dtype=numpy.int64)
      self.__task.appendaccs(domidxs,afeidxs,g)
  
    def _task_1putacclist__3J_3J_3J_3D(self,accidxs,domidxs,afeidxs,g):
      self.__task.putacclist(accidxs,domidxs,afeidxs,g)
  
  
  
    @staticmethod
    def __convertSolutionStatus(soltype,sol,status,prosta):
      pd = {
          mosek.solsta.optimal :                    mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.integer_optimal :            mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.prim_and_dual_feas :         mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_feas :                  mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.dual_feas :                  mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.prim_infeas_cer :            mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.dual_infeas_cer :            mosek_fusion_SolutionStatus.Certificate,
          mosek.solsta.prim_illposed_cer :          mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.dual_illposed_cer :          mosek_fusion_SolutionStatus.IllposedCert,
      }
  
      dd = {
          mosek.solsta.optimal :                    mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.integer_optimal :            mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.prim_and_dual_feas :         mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_feas :                  mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.dual_feas :                  mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_infeas_cer :            mosek_fusion_SolutionStatus.Certificate,
          mosek.solsta.dual_infeas_cer :            mosek_fusion_SolutionStatus.Unknown,
          mosek.solsta.prim_illposed_cer :          mosek_fusion_SolutionStatus.IllposedCert,
          mosek.solsta.dual_illposed_cer :          mosek_fusion_SolutionStatus.Unknown,
      }
  
      psd = {
          mosek.prosta.unknown  :                   mosek_fusion_ProblemStatus.Unknown,
          mosek.prosta.prim_and_dual_feas :         mosek_fusion_ProblemStatus.PrimalAndDualFeasible,
          mosek.prosta.prim_feas :                  mosek_fusion_ProblemStatus.PrimalFeasible,
          mosek.prosta.dual_feas :                  mosek_fusion_ProblemStatus.DualFeasible,
          mosek.prosta.prim_infeas :                mosek_fusion_ProblemStatus.PrimalInfeasible,
          mosek.prosta.dual_infeas :                mosek_fusion_ProblemStatus.DualInfeasible,
          mosek.prosta.prim_and_dual_infeas :       mosek_fusion_ProblemStatus.PrimalAndDualInfeasible,
          mosek.prosta.ill_posed :                  mosek_fusion_ProblemStatus.IllPosed,
          mosek.prosta.prim_infeas_or_unbounded :   mosek_fusion_ProblemStatus.PrimalInfeasibleOrUnbounded,
        }
  
      try: sol.pstatus = pd[status]
      except KeyError: sol.pstatus = mosek_fusion_SolutionStatus.Unknown
  
      try: sol.dstatus = dd[status]
      except KeyError: sol.dstatus = mosek_fusion_SolutionStatus.Unknown
  
      try: sol.probstatus = psd[prosta]
      except KeyError: sol.probstatus = mosek_fusion_SolutionStatus.Unknown
  
  
    @staticmethod
    def _matchargs_task_1write_S(self,*args):
        return True
    def _task_1write_S(self,filename):
        self.__task.putintparam(mosek.iparam.opf_write_solutions, 1)
        #self.__task.putintparam(mosek.iparam.write_ignore_incompatible_items, 1)
        self.__task.writedata(filename)
  
    def _task_1write_1stream_SLSystem_4DataStream_2(self,ext,stream):
        exts = {
          'mps' : mosek.dataformat.mps,
          'cbf' : mosek.dataformat.cb,
          'ptf' : mosek.dataformat.ptf,
          'opf' : mosek.dataformat.op,
          'lp'  : mosek.dataformat.lp,
          'jtask'  : mosek.dataformat.json_task,
          'task'  : mosek.dataformat.task,
        }
        ct = {
          'gz' : mosek.compresstype.gzip,
          'zst' : mosek.compresstype.zstd,
        }
  
        fmt = mosek.dataformat.mps
        comptype = mosek.compresstype.none
        parts = ext.split('.')
        if len(parts) > 0: fmt = parts[0]
        if len(parts) > 1: comptype = parts[1]
  
        try:
          self.__task.putintparam(mosek.iparam.opf_write_solutions, 1)
          self.__task.writedatastream(exts.get(fmt,mosek.dataformat.mps), ct.get(comptype,mosek.compresstype.none), stream)
        except mosek.Error as e:
          raise mosek.fusion.UnexpectedError(e.msg)
  
    def _task_1write(self,filename):
      return self._writeProblem_S(filename)
  
    def _task_1get_(self):
      return self.__task
  
    def _task_1break_1solve_(self):
      self.__break = True
  
    def _task_1putoptserver_1host_S(self, addr):
      self.__task.putoptserverhost(addr)
  
    def _task_1analyze_1problem_I(self, detail):
      try:
        self.__task.putintparam(mosek.iparam.log_ana_pro, detail)
        self.__task.analyzeproblem(mosek.streamtype.log)
      except mosek.Error as e:
        raise mosek.fusion.UnexpectedError(e.msg)
  
    def _report_1solution__Lmosek_4fusion_4SolutionType_Emosek_4fusion_4ProblemStatus_Emosek_4fusion_4SolutionStatus_Lmosek_4fusion_4SolutionStatus_DDIIIIIZZ(
        self,
        soltype,
        prosta,
        psolsta,
        dsolsta,
        pobj,
        dobj,
        numvar,
        numcon,
        numbarelm,
        numacc,
        numaccelm,
        hasprimal,
        hasdual):
      assert False
    def _report_1solution_1get_1xx__3D  (self,v): self.__task.getxxslice(  self.__cursol,0,len(v),v)
    def _report_1solution_1get_1slx__3D (self,v): self.__task.getslxslice( self.__cursol,0,len(v),v)
    def _report_1solution_1get_1sux__3D (self,v): self.__task.getsuxslice( self.__cursol,0,len(v),v)
    def _report_1solution_1get_1xc__3D  (self,v): self.__task.getxcslice(  self.__cursol,0,len(v),v)
    def _report_1solution_1get_1slc__3D (self,v): self.__task.getslcslice( self.__cursol,0,len(v),v)
    def _report_1solution_1get_1suc__3D (self,v): self.__task.getsucslice( self.__cursol,0,len(v),v)
    def _report_1solution_1get_1barx__3D(self,v): self.__task.getbarxslice(self.__cursol,0,self.__task.getnumbarvar(),len(v),v)
    def _report_1solution_1get_1bars__3D(self,v): self.__task.getbarsslice(self.__cursol,0,self.__task.getnumbarvar(),len(v),v)
    def _report_1solution_1get_1accx__3D(self,v): self.__task.evaluateaccs(self.__cursol,v)
    def _report_1solution_1get_1accy__3D(self,v):
      ptr = 0
      numacc = self.__task.getnumacc()
      for i in range(numacc):
        accn   = self.__task.getaccn(i)
        data = numpy.zeros(accn,numpy.float64)
        self.__task.getaccdoty(self.__cursol,i,data);
        v[ptr:ptr+accn] = data
        ptr += accn
  
    def _report_1solution_1get_1accptr__3I(self,v):
      ptr = 0
      numacc = self.__task.getnumacc()
      for i in range(numacc):
        v[i] = ptr;
        ptr += self.__task.getaccn(i)
  
    #def __report_task_solution(self,mosek.soltype st, int numvar, int numcon, int numbarelm, long numacc, long numaccelm) {
    def __report_task_solution(self,st,numvar,numcon,numbarelm,numacc,numaccelm):
      pd = {
          mosek.solsta.optimal :                    mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.integer_optimal :            mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.prim_and_dual_feas :         mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_feas :                  mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.dual_feas :                  mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.prim_infeas_cer :            mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.dual_infeas_cer :            mosek_fusion_SolutionStatus.Certificate,
          mosek.solsta.prim_illposed_cer :          mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.dual_illposed_cer :          mosek_fusion_SolutionStatus.IllposedCert,
          mosek.solsta.unknown :                    mosek_fusion_SolutionStatus.Unknown,
      }
  
      dd = {
          mosek.solsta.optimal :                    mosek_fusion_SolutionStatus.Optimal,
          mosek.solsta.integer_optimal :            mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.prim_and_dual_feas :         mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_feas :                  mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.dual_feas :                  mosek_fusion_SolutionStatus.Feasible,
          mosek.solsta.prim_infeas_cer :            mosek_fusion_SolutionStatus.Certificate,
          mosek.solsta.dual_infeas_cer :            mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.prim_illposed_cer :          mosek_fusion_SolutionStatus.IllposedCert,
          mosek.solsta.dual_illposed_cer :          mosek_fusion_SolutionStatus.Undefined,
          mosek.solsta.unknown :                    mosek_fusion_SolutionStatus.Unknown,
      }
  
      psd = {
          mosek.prosta.unknown  :                   mosek_fusion_ProblemStatus.Unknown,
          mosek.prosta.prim_and_dual_feas :         mosek_fusion_ProblemStatus.PrimalAndDualFeasible,
          mosek.prosta.prim_feas :                  mosek_fusion_ProblemStatus.PrimalFeasible,
          mosek.prosta.dual_feas :                  mosek_fusion_ProblemStatus.DualFeasible,
          mosek.prosta.prim_infeas :                mosek_fusion_ProblemStatus.PrimalInfeasible,
          mosek.prosta.dual_infeas :                mosek_fusion_ProblemStatus.DualInfeasible,
          mosek.prosta.prim_and_dual_infeas :       mosek_fusion_ProblemStatus.PrimalAndDualInfeasible,
          mosek.prosta.ill_posed :                  mosek_fusion_ProblemStatus.IllPosed,
          mosek.prosta.prim_infeas_or_unbounded :   mosek_fusion_ProblemStatus.PrimalInfeasibleOrUnbounded,
        }
  
  
      solsta = self.__task.getsolsta(st)
      prosta = self.__task.getprosta(st)
  
      psolsta = pd[solsta]
      dsolsta = dd[solsta]
  
      # Special unconditional cases for integer solution:
      if st == mosek.soltype.itg:
        dsolsta = mosek_fusion_SolutionStatus.Undefined
        if prosta == mosek.prosta.prim_infeas:
          psolsta = mosek_fusion_SolutionStatus.Undefined
  
      hasprimal = psolsta != mosek_fusion_SolutionStatus.Undefined
      hasdual   = dsolsta != mosek_fusion_SolutionStatus.Undefined
  
      pobj   = self.__task.getprimalobj(st) if hasprimal else 0.0
      dobj   = self.__task.getdualobj(st) if hasdual else 0.0
  
      ps = psd[prosta]
  
      if   st == mosek.soltype.bas: soltp = mosek_fusion_SolutionType.Basic
      elif st == mosek.soltype.itr: soltp = mosek_fusion_SolutionType.Interior
      elif st == mosek.soltype.itg: soltp = mosek_fusion_SolutionType.Integer
  
      self.__cursol = st
      self._report_1solution_Emosek_4fusion_4SolutionType_2Emosek_4fusion_4ProblemStatus_2Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4SolutionStatus_2DDIIIIIZZ(
        soltp,ps,psolsta,dsolsta,pobj,dobj,numvar,numcon,numbarelm,numacc,numaccelm,hasprimal,hasdual)
  
  
  
  
    @classmethod
    def _env_1solve_1batch_ZDI_3Lmosek_4fusion_4Model_2(self,israce,timelimit,numthreads,models):
      n = len(models)
      tasks = [_m.getTask() for _m in models]
      res = [mosek.rescode.err_unknown] * n
      trm = [mosek.rescode.err_unknown] * n
      ok = False
      try:
        BaseModel._globalEnv().optimizebatch(israce,          # israce
                                             timelimit,       # timelimit
                                             numthreads,      # numthread
                                             tasks,
                                             trm,
                                             res)
        ok = True
      except mosek.Error as e:
        raise mosek_fusion_OptimizeError(str(e))
      finally:
        if not ok: # means exception, post-solve won't be called
          for _m in models:
            _m._sol_itr = None
            _m._sol_bas = None
            _m._sol_itg = None
  
      return [mosek_fusion_SolverStatus.Error if res[i]!=mosek.rescode.ok else mosek_fusion_SolverStatus.LostRace if trm[i]==mosek.rescode.trm_lost_race else mosek_fusion_SolverStatus.OK for i in range(n)]
  
    @staticmethod
    def _matchargs_task_1solve_(self,*args):
      return True
    def _task_1solve_ZSS(self, remote, server, port):
      task = self.__task
      ok = False
      try:
        trmcode = mosek.rescode.ok
        try:
          self.__break = False
          if remote:
            trmcode = task.optimizermt(server, port)
          else:
            trmcode = task.optimize()
          task.solutionsummary(mosek.streamtype.log)
          ok = True
        except mosek.Error as e:
          raise mosek_fusion_OptimizeError(str(e))
      finally:
        if not ok: # means exception, post-solve won't be called
          self._sol_itr = None
          self._sol_bas = None
          self._sol_itg = None
  
    def _task_1post_1solve_(self):
      task = self.__task  
      numcon  = task.getnumcon()
      numvar  = task.getnumvar()
      numbarvar = task.getnumbarvar()
      barvarveclen = 0
      for j in range(numbarvar):
        barxjdim = task.getdimbarvarj(j)
        barvarveclen += barxjdim * (1+barxjdim)/2
      barvarveclen = numpy.int32(barvarveclen)
      numacc = task.getnumacc();
      numaccelm = task.getaccntot();
  
      sol_bas_def = 0 != task.solutiondef(mosek.soltype.bas)
      sol_itr_def = 0 != task.solutiondef(mosek.soltype.itr)
      sol_itg_def = 0 != task.solutiondef(mosek.soltype.itg)
  
      self._clear_1solutions_();
      if sol_itr_def:
        self.__report_task_solution(mosek.soltype.itr, numvar, numcon, barvarveclen,numacc,numaccelm)
      if sol_bas_def:
        self.__report_task_solution(mosek.soltype.bas, numvar, numcon, barvarveclen,numacc,numaccelm)
      if sol_itg_def:
        self.__report_task_solution(mosek.soltype.itg, numvar, numcon, barvarveclen,numacc,numaccelm)
  
  
    @staticmethod
    def _env_1syeig_I_3D_3D(n,a,w): BaseModel._globalEnv().syeig(n,a,w)
    @staticmethod
    def _env_1syevd_I_3D_3D(n,a,w): BaseModel._globalEnv().syevd(n,a,w)
    #@staticmethod
    #def _env_1potrf_I_3D(n,a):      BaseModel._globalEnv().potrf(n,a)
  
  
  
    def _task_1putafefrow_J_3I_3D(self,idx,subj,cof): self.__task.putafefrow(idx,subj,cof)
  
    def _task_1clearaferowlist__3I(self,idxs):
      subj = numpy.zeros(0,dtype=numpy.int32)
      val  = numpy.zeros(0,dtype=numpy.float64)
  
      for i in range(len(idxs)):
          self.__task.putafefrow(idxs[i],subj,val)
          self.__task.putafeg(idxs[i],0.0)
      raise  UnexpectedError("Not implemented: clearbarfrowlist");
  
    def _task_1putafefrowlist__3I_3I_3I_3D_3D(self,idxs,ptr,subj,cof,g):
      for i in range(len(idxs)):
          self.__task.putafefrow(idxs[i],subj[ptr[i]:ptr[i+1]],cof[ptr[i]:ptr[i+1]])
          self.__task.putafeg(idxs[i],g[i])
  
    def _task_1putafebarfrowlist__3I_3I_3I_3J (self,idxs,ptr,barsubj,symmatidx):
      num = len(barsubj);
      #print('ptr = ',ptr)
      #print('idxs = ',idxs)
      #print('barsubj = ',barsubj)
      afeidxlist   = numpy.array([idxs[i] for i in range(len(idxs)) for j in range(ptr[i],ptr[i+1])],dtype=numpy.int64)
      numtermslist = numpy.ones(num,dtype=numpy.int64)
      ptrtermslist = numpy.arange(num,dtype=numpy.int64)
      termweights  = numpy.ones(num,dtype=numpy.float64)
      #print('afeidxlist   = ',afeidxlist  )
      #print('numtermslist = ',numtermslist)
      #print('ptrtermslist = ',ptrtermslist)
      #print('termweights  = ',termweights )
  
      #print(idxs,afeidxlist,barsubj,numtermslist,ptrtermslist,symmatidx,termweights)
      #print(len(idxs),len(afeidxlist),len(barsubj),len(numtermslist),len(ptrtermslist),len(symmatidx),len(termweights))
      self.__task.putafebarfentrylist(afeidxlist,barsubj,numtermslist,ptrtermslist,symmatidx,termweights)
  
    #def _task_1putafefijlist__3I_3I_3D(self,idxs,subj,cof):
    #  raise UnexpectedError("Not implemented: putafefijlist")
  
    def _task_1putafefglist__3I_3D (self,idxs,g):
      for i,v in zip(idxs,g):
        self.__task.putafeg(i,v)
  
    def _task_1append_1accs_II_3I_3D_3I(self,domidx,numcone,afeidxs,g,accidxs):
      domidxs = numpy.array([domidx]*numcone,dtype=numpy.int32)
      lafeidxs = numpy.array(afeidxs,dtype=numpy.int64)
      firstacc = self.__task.getnumacc()
  
      for i in range(numcone):
        accidxs[i] = firstacc + i
      self.__task.appendaccs(domidxs,lafeidxs,g)
  
    def _task_1putafefrow_I_3I_3D (self,idx,subj,cof):
      self.__task.putafefrow(idx, subj, cof)
  
    def _task_1append_1domain_1quad_I     (self, conesize): return self.__task.appendquadraticconedomain(conesize)
    def _task_1append_1domain_1rquad_I    (self, conesize): return self.__task.appendrquadraticconedomain(conesize)
    def _task_1append_1domain_1pexp_      (self): return self.__task.appendprimalexpconedomain()
    def _task_1append_1domain_1dexp_      (self): return self.__task.appenddualexpconedomain()
    def _task_1append_1domain_1ppow_I_3D  (self, conesize, alpha): return self.__task.appendprimalpowerconedomain(conesize,alpha)
    def _task_1append_1domain_1dpow_I_3D  (self, conesize, alpha): return self.__task.appenddualpowerconedomain(conesize,alpha)
    #def _task_1append_1domain_1onenorm_I  (self, conesize): return self.__task.appendonenormconedomain(conesize)
    #def _task_1append_1domain_1infnorm_I  (self, conesize): return self.__task.appendinfnormconedomain(conesize)
    def _task_1append_1domain_1pgeomean_I (self, conesize): return self.__task.appendprimalgeomeanconedomain(conesize)
    def _task_1append_1domain_1dgeomean_I (self, conesize): return self.__task.appenddualgeomeanconedomain(conesize)
    def _task_1append_1domain_1rpos_I     (self, conesize): return self.__task.appendrplusdomain(conesize)
    def _task_1append_1domain_1rneg_I     (self, conesize): return self.__task.appendrminusdomain(conesize)
    def _task_1append_1domain_1r_I        (self, conesize): return self.__task.appendrdomain(conesize)
    def _task_1append_1domain_1rzero_I    (self, conesize): return self.__task.appendrzerodomain(conesize)
    def _task_1append_1domain_1svec_1psd_I(self, conesize): return self.__task.appendsvecpsdconedomain(conesize)
    def _task_1append_1domain_1empty_     (self): return self.__task.appendrdomain(0)
    def __task_append_1afes(self,num):
      idx = self.__task.getnumafe()
      self.__task.appendafes(num)
      return idx
  
    def __task_appenddjcs(self,num):
      idx = self.__task.getnumdjc()
      self.__task.appenddjcs(num)
      return idx
  
    def _task_1append_1djc_J(self,num):
      return self.__task_appenddjcs(num)
  
    def _task_1putdjcslice_JJ_3J_3J_3J_3J_3D(self,first,last,numterm,termsizes,domidxlist,afeidxlist,b):
      return self.__task.putdjcslice(first,last,domidxlist,afeidxlist,b,termsizes,numterm)
  return BaseModel
mosek_fusion_BaseModel=__mk_mosek_fusion_BaseModel()
def __mk_mosek_fusion_Model():
 class Model(mosek_fusion_BaseModel):
  __slots__ = ['_Model__xs','_Model__ws','_Model__rs','_Model__sol_itg','_Model__sol_bas','_Model__sol_itr','_Model__con_map','_Model__acons','_Model__cons','_Model__task_numaferow','_Model__param_value','_Model__param_num','_Model__par_map','_Model__numparameter','_Model__parameters','_Model__initsol_xx_flag','_Model__initsol_xx','_Model__var_map','_Model__barvars','_Model__vars','_Model__bfixidx','_Model__barvar_block_elm_j','_Model__barvar_block_elm_i','_Model__barvar_block_elm_barj','_Model__barvar_block_elm_ptr','_Model__barvar_block_dim','_Model__barvar_block_ptr','_Model__barvar_dim','_Model__barvar_num','_Model__var_elm_acc_ofs','_Model__var_elm_acc_idx','_Model__var_block_acc_id','_Model__var_block_map','_Model__acon_elm_afe','_Model__acon_elm_ofs','_Model__acon_elm_scale','_Model__acon_elm_accid','_Model__acon_afe','_Model__acon_acc','_Model__acon_block_map','_Model__acc_block_map','_Model__obj_blocks','_Model__afe_blocks','_Model__con_blocks','_Model__num_task_acc','_Model__num_task_afe','_Model__num_task_con','_Model__solutionptr','_Model__acceptable_sol','_Model__model_name']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_S(*args): 
      self._ctor_init_S(*args)
    elif self.__match_alt_ctor_S(*args):
      self._ctor_alt_init_S(*args)
    elif self.__match_ctor_I(*args): 
      self._ctor_init_I(*args)
    elif self.__match_alt_ctor_I(*args):
      self._ctor_alt_init_I(*args)
    elif self.__match_ctor_SI(*args): 
      self._ctor_init_SI(*args)
    elif self.__match_alt_ctor_SI(*args):
      self._ctor_alt_init_SI(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.Model.ctor()\n\tmosek.fusion.Model.ctor(string)\n\tmosek.fusion.Model.ctor(int32)\n\tmosek.fusion.Model.ctor(string,int32)')
  def flushSolutions(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_flushSolutions_(*args): 
      return self._flushSolutions_(*args)
    elif mosek_fusion_Model._match_alt_flushSolutions_(*args): 
      return self._flushSolutions_alt_(*args)
    else:
      raise ValueError('Invalid argument list flushSolutions('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.flushSolutions()')
  def selectedSolution(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_selectedSolution_Emosek_4fusion_4SolutionType_2(*args): 
      return self._selectedSolution_Emosek_4fusion_4SolutionType_2(*args)
    elif mosek_fusion_Model._match_alt_selectedSolution_Emosek_4fusion_4SolutionType_2(*args): 
      return self._selectedSolution_alt_Emosek_4fusion_4SolutionType_2(*args)
    else:
      raise ValueError('Invalid argument list selectedSolution('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.selectedSolution(mosek.fusion.SolutionType)')
  @staticmethod
  def putlicensewait(*args):
    if False: pass
    elif mosek_fusion_Model._match_putlicensewait_Z(*args): 
      return mosek_fusion_Model._putlicensewait_Z(*args)
    elif mosek_fusion_Model._match_alt_putlicensewait_Z(*args): 
      return mosek_fusion_Model._putlicensewait_alt_Z(*args)
    else:
      raise ValueError('Invalid argument list putlicensewait('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.putlicensewait(bool)')
  def getParameter(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getParameter_S(*args): 
      return self._getParameter_S(*args)
    elif mosek_fusion_Model._match_alt_getParameter_S(*args): 
      return self._getParameter_alt_S(*args)
    else:
      raise ValueError('Invalid argument list getParameter('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getParameter(string)')
  @staticmethod
  def putlicensepath(*args):
    if False: pass
    elif mosek_fusion_Model._match_putlicensepath_S(*args): 
      return mosek_fusion_Model._putlicensepath_S(*args)
    elif mosek_fusion_Model._match_alt_putlicensepath_S(*args): 
      return mosek_fusion_Model._putlicensepath_alt_S(*args)
    else:
      raise ValueError('Invalid argument list putlicensepath('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.putlicensepath(string)')
  def writeTaskStream(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_writeTaskStream_SLSystem_4DataStream_2(*args): 
      return self._writeTaskStream_SLSystem_4DataStream_2(*args)
    elif mosek_fusion_Model._match_alt_writeTaskStream_SLSystem_4DataStream_2(*args): 
      return self._writeTaskStream_alt_SLSystem_4DataStream_2(*args)
    else:
      raise ValueError('Invalid argument list writeTaskStream('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.writeTaskStream(string,System.DataStream)')
  def setDataCallbackHandler(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_setDataCallbackHandler_LSystem_4DataCallbackHandler_2(*args): 
      return self._setDataCallbackHandler_LSystem_4DataCallbackHandler_2(*args)
    elif mosek_fusion_Model._match_alt_setDataCallbackHandler_LSystem_4DataCallbackHandler_2(*args): 
      return self._setDataCallbackHandler_alt_LSystem_4DataCallbackHandler_2(*args)
    else:
      raise ValueError('Invalid argument list setDataCallbackHandler('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.setDataCallbackHandler(System.DataCallbackHandler)')
  def optserverHost(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_optserverHost_S(*args): 
      return self._optserverHost_S(*args)
    elif mosek_fusion_Model._match_alt_optserverHost_S(*args): 
      return self._optserverHost_alt_S(*args)
    else:
      raise ValueError('Invalid argument list optserverHost('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.optserverHost(string)')
  @staticmethod
  def putlicensecode(*args):
    if False: pass
    elif mosek_fusion_Model._match_putlicensecode__3I(*args): 
      return mosek_fusion_Model._putlicensecode__3I(*args)
    elif mosek_fusion_Model._match_alt_putlicensecode__3I(*args): 
      return mosek_fusion_Model._putlicensecode_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list putlicensecode('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.putlicensecode(array(int32,ndim=1))')
  def getVariable(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getVariable_S(*args): 
      return self._getVariable_S(*args)
    elif mosek_fusion_Model._match_alt_getVariable_S(*args): 
      return self._getVariable_alt_S(*args)
    elif mosek_fusion_Model._match_getVariable_I(*args): 
      return self._getVariable_I(*args)
    elif mosek_fusion_Model._match_alt_getVariable_I(*args): 
      return self._getVariable_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getVariable('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getVariable(string)\n\tmosek.fusion.Model.getVariable(int32)')
  def flushParameters(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_flushParameters_(*args): 
      return self._flushParameters_(*args)
    elif mosek_fusion_Model._match_alt_flushParameters_(*args): 
      return self._flushParameters_alt_(*args)
    else:
      raise ValueError('Invalid argument list flushParameters('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.flushParameters()')
  def disjunction(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_disjunction_Lmosek_4fusion_4DisjunctionTerms_2(*args): 
      return self._disjunction_Lmosek_4fusion_4DisjunctionTerms_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_Lmosek_4fusion_4DisjunctionTerms_2(*args): 
      return self._disjunction_alt_Lmosek_4fusion_4DisjunctionTerms_2(*args)
    elif mosek_fusion_Model._match_disjunction__3Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction__3Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction__3Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt__3Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_alt_Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_disjunction__3Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction__3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction__3Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_alt__3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_SLmosek_4fusion_4Term_2(*args): 
      return self._disjunction_SLmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_SLmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_SLmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_SLmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_SLmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_SLmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_alt_SLmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_disjunction_S_3Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_S_3Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_S_3Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_S_3Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_S_3Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_S_3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_S_3Lmosek_4fusion_4ExprDomain_2(*args): 
      return self._disjunction_alt_S_3Lmosek_4fusion_4ExprDomain_2(*args)
    elif mosek_fusion_Model._match_disjunction_SLmosek_4fusion_4DisjunctionTerms_2(*args): 
      return self._disjunction_SLmosek_4fusion_4DisjunctionTerms_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_SLmosek_4fusion_4DisjunctionTerms_2(*args): 
      return self._disjunction_alt_SLmosek_4fusion_4DisjunctionTerms_2(*args)
    elif mosek_fusion_Model._match_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    elif mosek_fusion_Model._match_alt_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args): 
      return self._disjunction_alt_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args)
    else:
      raise ValueError('Invalid argument list disjunction('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.disjunction(mosek.fusion.DisjunctionTerms)\n\tmosek.fusion.Model.disjunction(array(mosek.fusion.Term,ndim=1))\n\tmosek.fusion.Model.disjunction(mosek.fusion.Term)\n\tmosek.fusion.Model.disjunction(mosek.fusion.ExprDomain)\n\tmosek.fusion.Model.disjunction(array(mosek.fusion.ExprDomain,ndim=1))\n\tmosek.fusion.Model.disjunction(mosek.fusion.Term,mosek.fusion.Term)\n\tmosek.fusion.Model.disjunction(string,mosek.fusion.Term)\n\tmosek.fusion.Model.disjunction(string,mosek.fusion.ExprDomain)\n\tmosek.fusion.Model.disjunction(string,array(mosek.fusion.Term,ndim=1))\n\tmosek.fusion.Model.disjunction(string,array(mosek.fusion.ExprDomain,ndim=1))\n\tmosek.fusion.Model.disjunction(string,mosek.fusion.DisjunctionTerms)\n\tmosek.fusion.Model.disjunction(string,mosek.fusion.Term,mosek.fusion.Term)\n\tmosek.fusion.Model.disjunction(mosek.fusion.Term,mosek.fusion.Term,mosek.fusion.Term)\n\tmosek.fusion.Model.disjunction(string,mosek.fusion.Term,mosek.fusion.Term,mosek.fusion.Term)')
  def parameter(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_parameter_(*args): 
      return self._parameter_(*args)
    elif mosek_fusion_Model._match_alt_parameter_(*args): 
      return self._parameter_alt_(*args)
    elif mosek_fusion_Model._match_parameter_S(*args): 
      return self._parameter_S(*args)
    elif mosek_fusion_Model._match_alt_parameter_S(*args): 
      return self._parameter_alt_S(*args)
    elif mosek_fusion_Model._match_parameter_I(*args): 
      return self._parameter_I(*args)
    elif mosek_fusion_Model._match_alt_parameter_I(*args): 
      return self._parameter_alt_I(*args)
    elif mosek_fusion_Model._match_parameter__3I(*args): 
      return self._parameter__3I(*args)
    elif mosek_fusion_Model._match_alt_parameter__3I(*args): 
      return self._parameter_alt__3I(*args)
    elif mosek_fusion_Model._match_parameter_SI(*args): 
      return self._parameter_SI(*args)
    elif mosek_fusion_Model._match_alt_parameter_SI(*args): 
      return self._parameter_alt_SI(*args)
    elif mosek_fusion_Model._match_parameter__3I_3J(*args): 
      return self._parameter__3I_3J(*args)
    elif mosek_fusion_Model._match_alt_parameter__3I_3J(*args): 
      return self._parameter_alt__3I_3J(*args)
    elif mosek_fusion_Model._match_parameter_II(*args): 
      return self._parameter_II(*args)
    elif mosek_fusion_Model._match_alt_parameter_II(*args): 
      return self._parameter_alt_II(*args)
    elif mosek_fusion_Model._match_parameter__3I_3_5I(*args): 
      return self._parameter__3I_3_5I(*args)
    elif mosek_fusion_Model._match_alt_parameter__3I_3_5I(*args): 
      return self._parameter_alt__3I_3_5I(*args)
    elif mosek_fusion_Model._match_parameter_S_3I(*args): 
      return self._parameter_S_3I(*args)
    elif mosek_fusion_Model._match_alt_parameter_S_3I(*args): 
      return self._parameter_alt_S_3I(*args)
    elif mosek_fusion_Model._match_parameter_S_3I_3J(*args): 
      return self._parameter_S_3I_3J(*args)
    elif mosek_fusion_Model._match_alt_parameter_S_3I_3J(*args): 
      return self._parameter_alt_S_3I_3J(*args)
    elif mosek_fusion_Model._match_parameter_III(*args): 
      return self._parameter_III(*args)
    elif mosek_fusion_Model._match_alt_parameter_III(*args): 
      return self._parameter_alt_III(*args)
    elif mosek_fusion_Model._match_parameter_S_3I_3_5I(*args): 
      return self._parameter_S_3I_3_5I(*args)
    elif mosek_fusion_Model._match_alt_parameter_S_3I_3_5I(*args): 
      return self._parameter_alt_S_3I_3_5I(*args)
    elif mosek_fusion_Model._match_parameter_SII(*args): 
      return self._parameter_SII(*args)
    elif mosek_fusion_Model._match_alt_parameter_SII(*args): 
      return self._parameter_alt_SII(*args)
    elif mosek_fusion_Model._match_parameter_SIII(*args): 
      return self._parameter_SIII(*args)
    elif mosek_fusion_Model._match_alt_parameter_SIII(*args): 
      return self._parameter_alt_SIII(*args)
    else:
      raise ValueError('Invalid argument list parameter('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.parameter()\n\tmosek.fusion.Model.parameter(string)\n\tmosek.fusion.Model.parameter(int32)\n\tmosek.fusion.Model.parameter(array(int32,ndim=1))\n\tmosek.fusion.Model.parameter(string,int32)\n\tmosek.fusion.Model.parameter(array(int32,ndim=1),array(int64,ndim=1))\n\tmosek.fusion.Model.parameter(int32,int32)\n\tmosek.fusion.Model.parameter(array(int32,ndim=1),array(int32,ndim=2))\n\tmosek.fusion.Model.parameter(string,array(int32,ndim=1))\n\tmosek.fusion.Model.parameter(string,array(int32,ndim=1),array(int64,ndim=1))\n\tmosek.fusion.Model.parameter(int32,int32,int32)\n\tmosek.fusion.Model.parameter(string,array(int32,ndim=1),array(int32,ndim=2))\n\tmosek.fusion.Model.parameter(string,int32,int32)\n\tmosek.fusion.Model.parameter(string,int32,int32,int32)')
  def dualObjValue(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_dualObjValue_(*args): 
      return self._dualObjValue_(*args)
    elif mosek_fusion_Model._match_alt_dualObjValue_(*args): 
      return self._dualObjValue_alt_(*args)
    else:
      raise ValueError('Invalid argument list dualObjValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.dualObjValue()')
  def flushNames(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_flushNames_(*args): 
      return self._flushNames_(*args)
    elif mosek_fusion_Model._match_alt_flushNames_(*args): 
      return self._flushNames_alt_(*args)
    else:
      raise ValueError('Invalid argument list flushNames('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.flushNames()')
  def primalObjValue(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_primalObjValue_(*args): 
      return self._primalObjValue_(*args)
    elif mosek_fusion_Model._match_alt_primalObjValue_(*args): 
      return self._primalObjValue_alt_(*args)
    else:
      raise ValueError('Invalid argument list primalObjValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.primalObjValue()')
  def setSolverParam(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_setSolverParam_SS(*args): 
      return self._setSolverParam_SS(*args)
    elif mosek_fusion_Model._match_alt_setSolverParam_SS(*args): 
      return self._setSolverParam_alt_SS(*args)
    elif mosek_fusion_Model._match_setSolverParam_SI(*args): 
      return self._setSolverParam_SI(*args)
    elif mosek_fusion_Model._match_alt_setSolverParam_SI(*args): 
      return self._setSolverParam_alt_SI(*args)
    elif mosek_fusion_Model._match_setSolverParam_SD(*args): 
      return self._setSolverParam_SD(*args)
    elif mosek_fusion_Model._match_alt_setSolverParam_SD(*args): 
      return self._setSolverParam_alt_SD(*args)
    else:
      raise ValueError('Invalid argument list setSolverParam('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.setSolverParam(string,string)\n\tmosek.fusion.Model.setSolverParam(string,int32)\n\tmosek.fusion.Model.setSolverParam(string,double)')
  def getName(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getName_(*args): 
      return self._getName_(*args)
    elif mosek_fusion_Model._match_alt_getName_(*args): 
      return self._getName_alt_(*args)
    else:
      raise ValueError('Invalid argument list getName('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getName()')
  def setLogHandler(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_setLogHandler_LSystem_4StreamWriter_2(*args): 
      return self._setLogHandler_LSystem_4StreamWriter_2(*args)
    elif mosek_fusion_Model._match_alt_setLogHandler_LSystem_4StreamWriter_2(*args): 
      return self._setLogHandler_alt_LSystem_4StreamWriter_2(*args)
    else:
      raise ValueError('Invalid argument list setLogHandler('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.setLogHandler(System.StreamWriter)')
  @staticmethod
  def getVersion(*args):
    if False: pass
    elif mosek_fusion_Model._match_getVersion_(*args): 
      return mosek_fusion_Model._getVersion_(*args)
    elif mosek_fusion_Model._match_alt_getVersion_(*args): 
      return mosek_fusion_Model._getVersion_alt_(*args)
    else:
      raise ValueError('Invalid argument list getVersion('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getVersion()')
  def variable(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_variable_(*args): 
      return self._variable_(*args)
    elif mosek_fusion_Model._match_alt_variable_(*args): 
      return self._variable_alt_(*args)
    elif mosek_fusion_Model._match_variable_Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt_Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S(*args): 
      return self._variable_S(*args)
    elif mosek_fusion_Model._match_alt_variable_S(*args): 
      return self._variable_alt_S(*args)
    elif mosek_fusion_Model._match_variable_Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_I(*args): 
      return self._variable_I(*args)
    elif mosek_fusion_Model._match_alt_variable_I(*args): 
      return self._variable_alt_I(*args)
    elif mosek_fusion_Model._match_variable_Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt_Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable__3I(*args): 
      return self._variable__3I(*args)
    elif mosek_fusion_Model._match_alt_variable__3I(*args): 
      return self._variable_alt__3I(*args)
    elif mosek_fusion_Model._match_variable_Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SLmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_SLmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SLmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt_SLmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SLmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_SLmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SLmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_SLmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable__3ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable__3ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable__3ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt__3ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable__3ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable__3ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable__3ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt__3ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SI(*args): 
      return self._variable_SI(*args)
    elif mosek_fusion_Model._match_alt_variable_SI(*args): 
      return self._variable_alt_SI(*args)
    elif mosek_fusion_Model._match_variable__3ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable__3ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable__3ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt__3ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt_ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S_3I(*args): 
      return self._variable_S_3I(*args)
    elif mosek_fusion_Model._match_alt_variable_S_3I(*args): 
      return self._variable_alt_S_3I(*args)
    elif mosek_fusion_Model._match_variable_ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt_ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt_ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SLmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_SLmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SLmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt_SLmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SLmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_SLmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SLmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt_SLmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_ILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_ILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_ILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_ILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S_3ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_S_3ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_S_3ILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt_S_3ILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S_3ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_S_3ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_S_3ILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt_S_3ILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_SILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt_SILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_IILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_IILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_IILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_IILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S_3ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_S_3ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_S_3ILmosek_4fusion_4ConeDomain_2(*args): 
      return self._variable_alt_S_3ILmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_S_3ILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_S_3ILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_S_3ILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_S_3ILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_SILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SILmosek_4fusion_4RangeDomain_2(*args): 
      return self._variable_alt_SILmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_SILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_SILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_SILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SILmosek_4fusion_4LinearDomain_2(*args): 
      return self._variable_alt_SILmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_variable_SIILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_SIILmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_variable_SIILmosek_4fusion_4PSDDomain_2(*args): 
      return self._variable_alt_SIILmosek_4fusion_4PSDDomain_2(*args)
    else:
      raise ValueError('Invalid argument list variable('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.variable()\n\tmosek.fusion.Model.variable(mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(string)\n\tmosek.fusion.Model.variable(mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(int32)\n\tmosek.fusion.Model.variable(mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(array(int32,ndim=1))\n\tmosek.fusion.Model.variable(mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(string,mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(string,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(array(int32,ndim=1),mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(array(int32,ndim=1),mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(string,int32)\n\tmosek.fusion.Model.variable(array(int32,ndim=1),mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(int32,mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(string,array(int32,ndim=1))\n\tmosek.fusion.Model.variable(int32,mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(int32,mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(string,mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(string,mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(int32,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(string,array(int32,ndim=1),mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(string,array(int32,ndim=1),mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(string,int32,mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(int32,int32,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(string,array(int32,ndim=1),mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.variable(string,array(int32,ndim=1),mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(string,int32,mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.variable(string,int32,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.variable(string,int32,mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.variable(string,int32,int32,mosek.fusion.PSDDomain)')
  def getDualSolutionStatus(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getDualSolutionStatus_(*args): 
      return self._getDualSolutionStatus_(*args)
    elif mosek_fusion_Model._match_alt_getDualSolutionStatus_(*args): 
      return self._getDualSolutionStatus_alt_(*args)
    elif mosek_fusion_Model._match_getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(*args)
    elif mosek_fusion_Model._match_alt_getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getDualSolutionStatus_alt_Emosek_4fusion_4SolutionType_2(*args)
    else:
      raise ValueError('Invalid argument list getDualSolutionStatus('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getDualSolutionStatus()\n\tmosek.fusion.Model.getDualSolutionStatus(mosek.fusion.SolutionType)')
  def objective(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_objective_D(*args): 
      return self._objective_D(*args)
    elif mosek_fusion_Model._match_alt_objective_D(*args): 
      return self._objective_alt_D(*args)
    elif mosek_fusion_Model._match_objective_SD(*args): 
      return self._objective_SD(*args)
    elif mosek_fusion_Model._match_alt_objective_SD(*args): 
      return self._objective_alt_SD(*args)
    elif mosek_fusion_Model._match_objective_Emosek_4fusion_4ObjectiveSense_2D(*args): 
      return self._objective_Emosek_4fusion_4ObjectiveSense_2D(*args)
    elif mosek_fusion_Model._match_alt_objective_Emosek_4fusion_4ObjectiveSense_2D(*args): 
      return self._objective_alt_Emosek_4fusion_4ObjectiveSense_2D(*args)
    elif mosek_fusion_Model._match_objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args): 
      return self._objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Model._match_alt_objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args): 
      return self._objective_alt_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Model._match_objective_SEmosek_4fusion_4ObjectiveSense_2D(*args): 
      return self._objective_SEmosek_4fusion_4ObjectiveSense_2D(*args)
    elif mosek_fusion_Model._match_alt_objective_SEmosek_4fusion_4ObjectiveSense_2D(*args): 
      return self._objective_alt_SEmosek_4fusion_4ObjectiveSense_2D(*args)
    elif mosek_fusion_Model._match_objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args): 
      return self._objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Model._match_alt_objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args): 
      return self._objective_alt_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list objective('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.objective(double)\n\tmosek.fusion.Model.objective(string,double)\n\tmosek.fusion.Model.objective(mosek.fusion.ObjectiveSense,double)\n\tmosek.fusion.Model.objective(mosek.fusion.ObjectiveSense,mosek.fusion.Expression)\n\tmosek.fusion.Model.objective(string,mosek.fusion.ObjectiveSense,double)\n\tmosek.fusion.Model.objective(string,mosek.fusion.ObjectiveSense,mosek.fusion.Expression)')
  def hasVariable(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_hasVariable_S(*args): 
      return self._hasVariable_S(*args)
    elif mosek_fusion_Model._match_alt_hasVariable_S(*args): 
      return self._hasVariable_alt_S(*args)
    else:
      raise ValueError('Invalid argument list hasVariable('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.hasVariable(string)')
  def getConstraintDuals(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getConstraintDuals_Z_3I_3DI(*args): 
      return self._getConstraintDuals_Z_3I_3DI(*args)
    elif mosek_fusion_Model._match_alt_getConstraintDuals_Z_3I_3DI(*args): 
      return self._getConstraintDuals_alt_Z_3I_3DI(*args)
    else:
      raise ValueError('Invalid argument list getConstraintDuals('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getConstraintDuals(bool,array(int32,ndim=1),array(double,ndim=1),int32)')
  def solve(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_solve_(*args): 
      return self._solve_(*args)
    elif mosek_fusion_Model._match_alt_solve_(*args): 
      return self._solve_alt_(*args)
    elif mosek_fusion_Model._match_solve_SS(*args): 
      return self._solve_SS(*args)
    elif mosek_fusion_Model._match_alt_solve_SS(*args): 
      return self._solve_alt_SS(*args)
    else:
      raise ValueError('Invalid argument list solve('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.solve()\n\tmosek.fusion.Model.solve(string,string)')
  def setCallbackHandler(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_setCallbackHandler_LSystem_4CallbackHandler_2(*args): 
      return self._setCallbackHandler_LSystem_4CallbackHandler_2(*args)
    elif mosek_fusion_Model._match_alt_setCallbackHandler_LSystem_4CallbackHandler_2(*args): 
      return self._setCallbackHandler_alt_LSystem_4CallbackHandler_2(*args)
    else:
      raise ValueError('Invalid argument list setCallbackHandler('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.setCallbackHandler(System.CallbackHandler)')
  def writeTask(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_writeTask_S(*args): 
      return self._writeTask_S(*args)
    elif mosek_fusion_Model._match_alt_writeTask_S(*args): 
      return self._writeTask_alt_S(*args)
    else:
      raise ValueError('Invalid argument list writeTask('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.writeTask(string)')
  def setVariableValues(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_setVariableValues_Z_3J_3D(*args): 
      return self._setVariableValues_Z_3J_3D(*args)
    elif mosek_fusion_Model._match_alt_setVariableValues_Z_3J_3D(*args): 
      return self._setVariableValues_alt_Z_3J_3D(*args)
    else:
      raise ValueError('Invalid argument list setVariableValues('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.setVariableValues(bool,array(int64,ndim=1),array(double,ndim=1))')
  def dispose(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_dispose_(*args): 
      return self._dispose_(*args)
    elif mosek_fusion_Model._match_alt_dispose_(*args): 
      return self._dispose_alt_(*args)
    else:
      raise ValueError('Invalid argument list dispose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.dispose()')
  def getPrimalSolutionStatus(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getPrimalSolutionStatus_(*args): 
      return self._getPrimalSolutionStatus_(*args)
    elif mosek_fusion_Model._match_alt_getPrimalSolutionStatus_(*args): 
      return self._getPrimalSolutionStatus_alt_(*args)
    elif mosek_fusion_Model._match_getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(*args)
    elif mosek_fusion_Model._match_alt_getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getPrimalSolutionStatus_alt_Emosek_4fusion_4SolutionType_2(*args)
    else:
      raise ValueError('Invalid argument list getPrimalSolutionStatus('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getPrimalSolutionStatus()\n\tmosek.fusion.Model.getPrimalSolutionStatus(mosek.fusion.SolutionType)')
  def updateObjective(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args): 
      return self._updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Model._match_alt_updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args): 
      return self._updateObjective_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list updateObjective('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.updateObjective(mosek.fusion.Expression,mosek.fusion.Variable)')
  def constraint(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4ExprRangeDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4ExprConicDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4ExprConicDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4ExprConicDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4ExprConicDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4ExprPSDDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4ExprPSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4ExprPSDDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4ExprPSDDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4ExprLinearDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4ExprLinearDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4ExprLinearDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4ExprLinearDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4ExprPSDDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4ExprPSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4ExprPSDDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4ExprPSDDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4ExprRangeDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4ExprRangeDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4ExprRangeDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4ExprConicDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4ExprConicDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4ExprConicDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4ExprConicDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    elif mosek_fusion_Model._match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Model._match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args): 
      return self._constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    else:
      raise ValueError('Invalid argument list constraint('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.constraint(mosek.fusion.ExprRangeDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.ExprConicDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.ExprPSDDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.ExprLinearDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.Expression,mosek.fusion.ConeDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.ExprLinearDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.Expression,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.ExprPSDDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.Expression,mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.constraint(mosek.fusion.Expression,mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.ExprRangeDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.ExprConicDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.Expression,mosek.fusion.RangeDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.Expression,mosek.fusion.LinearDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.Expression,mosek.fusion.PSDDomain)\n\tmosek.fusion.Model.constraint(string,mosek.fusion.Expression,mosek.fusion.ConeDomain)')
  def breakSolver(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_breakSolver_(*args): 
      return self._breakSolver_(*args)
    elif mosek_fusion_Model._match_alt_breakSolver_(*args): 
      return self._breakSolver_alt_(*args)
    else:
      raise ValueError('Invalid argument list breakSolver('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.breakSolver()')
  def acceptedSolutionStatus(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(*args)
    elif mosek_fusion_Model._match_alt_acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._acceptedSolutionStatus_alt_Emosek_4fusion_4AccSolutionStatus_2(*args)
    else:
      raise ValueError('Invalid argument list acceptedSolutionStatus('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.acceptedSolutionStatus(mosek.fusion.AccSolutionStatus)')
  def getConstraintValues(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getConstraintValues_Z_3I_3DI(*args): 
      return self._getConstraintValues_Z_3I_3DI(*args)
    elif mosek_fusion_Model._match_alt_getConstraintValues_Z_3I_3DI(*args): 
      return self._getConstraintValues_alt_Z_3I_3DI(*args)
    else:
      raise ValueError('Invalid argument list getConstraintValues('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getConstraintValues(bool,array(int32,ndim=1),array(double,ndim=1),int32)')
  def getProblemStatus(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getProblemStatus_(*args): 
      return self._getProblemStatus_(*args)
    elif mosek_fusion_Model._match_alt_getProblemStatus_(*args): 
      return self._getProblemStatus_alt_(*args)
    elif mosek_fusion_Model._match_getProblemStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getProblemStatus_Emosek_4fusion_4SolutionType_2(*args)
    elif mosek_fusion_Model._match_alt_getProblemStatus_Emosek_4fusion_4SolutionType_2(*args): 
      return self._getProblemStatus_alt_Emosek_4fusion_4SolutionType_2(*args)
    else:
      raise ValueError('Invalid argument list getProblemStatus('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getProblemStatus()\n\tmosek.fusion.Model.getProblemStatus(mosek.fusion.SolutionType)')
  def getAcceptedSolutionStatus(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getAcceptedSolutionStatus_(*args): 
      return self._getAcceptedSolutionStatus_(*args)
    elif mosek_fusion_Model._match_alt_getAcceptedSolutionStatus_(*args): 
      return self._getAcceptedSolutionStatus_alt_(*args)
    else:
      raise ValueError('Invalid argument list getAcceptedSolutionStatus('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getAcceptedSolutionStatus()')
  def getTask(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getTask_(*args): 
      return self._getTask_(*args)
    elif mosek_fusion_Model._match_alt_getTask_(*args): 
      return self._getTask_alt_(*args)
    else:
      raise ValueError('Invalid argument list getTask('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getTask()')
  def getVariableDuals(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getVariableDuals_Z_3J_3DI(*args): 
      return self._getVariableDuals_Z_3J_3DI(*args)
    elif mosek_fusion_Model._match_alt_getVariableDuals_Z_3J_3DI(*args): 
      return self._getVariableDuals_alt_Z_3J_3DI(*args)
    else:
      raise ValueError('Invalid argument list getVariableDuals('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getVariableDuals(bool,array(int64,ndim=1),array(double,ndim=1),int32)')
  def hasParameter(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_hasParameter_S(*args): 
      return self._hasParameter_S(*args)
    elif mosek_fusion_Model._match_alt_hasParameter_S(*args): 
      return self._hasParameter_alt_S(*args)
    else:
      raise ValueError('Invalid argument list hasParameter('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.hasParameter(string)')
  def getVariableValues(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getVariableValues_Z_3J_3DI(*args): 
      return self._getVariableValues_Z_3J_3DI(*args)
    elif mosek_fusion_Model._match_alt_getVariableValues_Z_3J_3DI(*args): 
      return self._getVariableValues_alt_Z_3J_3DI(*args)
    else:
      raise ValueError('Invalid argument list getVariableValues('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getVariableValues(bool,array(int64,ndim=1),array(double,ndim=1),int32)')
  def getConstraint(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getConstraint_S(*args): 
      return self._getConstraint_S(*args)
    elif mosek_fusion_Model._match_alt_getConstraint_S(*args): 
      return self._getConstraint_alt_S(*args)
    elif mosek_fusion_Model._match_getConstraint_I(*args): 
      return self._getConstraint_I(*args)
    elif mosek_fusion_Model._match_alt_getConstraint_I(*args): 
      return self._getConstraint_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getConstraint('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getConstraint(string)\n\tmosek.fusion.Model.getConstraint(int32)')
  def writeTaskNoFlush(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_writeTaskNoFlush_S(*args): 
      return self._writeTaskNoFlush_S(*args)
    elif mosek_fusion_Model._match_alt_writeTaskNoFlush_S(*args): 
      return self._writeTaskNoFlush_alt_S(*args)
    else:
      raise ValueError('Invalid argument list writeTaskNoFlush('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.writeTaskNoFlush(string)')
  def getSolverIntInfo(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getSolverIntInfo_S(*args): 
      return self._getSolverIntInfo_S(*args)
    elif mosek_fusion_Model._match_alt_getSolverIntInfo_S(*args): 
      return self._getSolverIntInfo_alt_S(*args)
    else:
      raise ValueError('Invalid argument list getSolverIntInfo('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getSolverIntInfo(string)')
  def getSolverLIntInfo(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getSolverLIntInfo_S(*args): 
      return self._getSolverLIntInfo_S(*args)
    elif mosek_fusion_Model._match_alt_getSolverLIntInfo_S(*args): 
      return self._getSolverLIntInfo_alt_S(*args)
    else:
      raise ValueError('Invalid argument list getSolverLIntInfo('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getSolverLIntInfo(string)')
  def dataReport(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_dataReport_(*args): 
      return self._dataReport_(*args)
    elif mosek_fusion_Model._match_alt_dataReport_(*args): 
      return self._dataReport_alt_(*args)
    elif mosek_fusion_Model._match_dataReport_I(*args): 
      return self._dataReport_I(*args)
    elif mosek_fusion_Model._match_alt_dataReport_I(*args): 
      return self._dataReport_alt_I(*args)
    else:
      raise ValueError('Invalid argument list dataReport('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.dataReport()\n\tmosek.fusion.Model.dataReport(int32)')
  @staticmethod
  def solveBatch(*args):
    if False: pass
    elif mosek_fusion_Model._match_solveBatch_ZDI_3Lmosek_4fusion_4Model_2(*args): 
      return mosek_fusion_Model._solveBatch_ZDI_3Lmosek_4fusion_4Model_2(*args)
    elif mosek_fusion_Model._match_alt_solveBatch_ZDI_3Lmosek_4fusion_4Model_2(*args): 
      return mosek_fusion_Model._solveBatch_alt_ZDI_3Lmosek_4fusion_4Model_2(*args)
    else:
      raise ValueError('Invalid argument list solveBatch('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.solveBatch(bool,double,int32,array(mosek.fusion.Model,ndim=1))')
  def hasConstraint(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_hasConstraint_S(*args): 
      return self._hasConstraint_S(*args)
    elif mosek_fusion_Model._match_alt_hasConstraint_S(*args): 
      return self._hasConstraint_alt_S(*args)
    else:
      raise ValueError('Invalid argument list hasConstraint('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.hasConstraint(string)')
  def getSolverDoubleInfo(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_getSolverDoubleInfo_S(*args): 
      return self._getSolverDoubleInfo_S(*args)
    elif mosek_fusion_Model._match_alt_getSolverDoubleInfo_S(*args): 
      return self._getSolverDoubleInfo_alt_S(*args)
    else:
      raise ValueError('Invalid argument list getSolverDoubleInfo('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.getSolverDoubleInfo(string)')
  def clone(self,*args):
    if False: pass
    elif mosek_fusion_Model._match_clone_(*args): 
      return self._clone_(*args)
    elif mosek_fusion_Model._match_alt_clone_(*args): 
      return self._clone_alt_(*args)
    else:
      raise ValueError('Invalid argument list clone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Model.clone()')
  def __repr__(self): return 'mosek.fusion.Model'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2(m):
    o = Model.__new__(Model)
    o._ctor_init_Lmosek_4fusion_4Model_2(m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    m, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    m, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2(self,m):
    self._ctor_init_Lmosek_4fusion_4Model_2(m)
  def _ctor_init_Lmosek_4fusion_4Model_2(self,m):
   mosek_fusion_BaseModel._ctor_init_Lmosek_4fusion_4BaseModel_2(self,m)
   _0=self
   self.__model_name = (m.__model_name)
   self.__acceptable_sol = (m.__acceptable_sol)
   self.__solutionptr = (m.__solutionptr)
   self.__sol_itr = ((m.__sol_itr).clone() if (((m.__sol_itr) is not None) ) else None)
   self.__sol_itg = ((m.__sol_itg).clone() if (((m.__sol_itg) is not None) ) else None)
   self.__sol_bas = ((m.__sol_bas).clone() if (((m.__sol_bas) is not None) ) else None)
   self.__num_task_afe = (m.__num_task_afe)
   self.__num_task_con = (m.__num_task_con)
   self.__num_task_acc = (m.__num_task_acc)
   self.__con_blocks = mosek_fusion_RowBlockManager._ctor_Lmosek_4fusion_4RowBlockManager_2((m.__con_blocks))
   self.__afe_blocks = mosek_fusion_RowBlockManager._ctor_Lmosek_4fusion_4RowBlockManager_2((m.__afe_blocks))
   self.__obj_blocks = mosek_fusion_RowBlockManager._ctor_Lmosek_4fusion_4RowBlockManager_2((m.__obj_blocks))
   self.__acc_block_map = mosek_fusion_LinkedBlocks._ctor_Lmosek_4fusion_4LinkedBlocks_2((m.__acc_block_map))
   self.__acon_block_map = mosek_fusion_LinkedBlocks._ctor_Lmosek_4fusion_4LinkedBlocks_2((m.__acon_block_map))
   self.__acon_acc = mosek.fusion.Utils.Tools._arraycopy__3I((m.__acon_acc))
   self.__acon_afe = mosek.fusion.Utils.Tools._arraycopy__3I((m.__acon_afe))
   self.__acon_elm_accid = mosek.fusion.Utils.Tools._arraycopy__3I((m.__acon_elm_accid))
   self.__acon_elm_scale = mosek.fusion.Utils.Tools._arraycopy__3D((m.__acon_elm_scale))
   self.__acon_elm_ofs = mosek.fusion.Utils.Tools._arraycopy__3I((m.__acon_elm_ofs))
   self.__acon_elm_afe = mosek.fusion.Utils.Tools._arraycopy__3I((m.__acon_elm_afe))
   self.__task_numaferow = (m.__task_numaferow)
   self.__var_block_map = mosek_fusion_LinkedBlocks._ctor_Lmosek_4fusion_4LinkedBlocks_2((m.__var_block_map))
   self.__var_block_acc_id = mosek.fusion.Utils.Tools._arraycopy__3I((m.__var_block_acc_id))
   self.__var_elm_acc_idx = mosek.fusion.Utils.Tools._arraycopy__3I((m.__var_elm_acc_idx))
   self.__var_elm_acc_ofs = mosek.fusion.Utils.Tools._arraycopy__3I((m.__var_elm_acc_ofs))
   self.__barvar_num = 0
   self.__barvar_dim = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_dim))
   self.__barvar_block_ptr = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_ptr))
   self.__barvar_block_dim = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_dim))
   self.__barvar_block_elm_ptr = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_elm_ptr))
   self.__barvar_block_elm_barj = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_elm_barj))
   self.__barvar_block_elm_i = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_elm_i))
   self.__barvar_block_elm_j = mosek.fusion.Utils.Tools._arraycopy__3I((m.__barvar_block_elm_j))
   self.__vars = numpy.array([((m.__vars)[_1]._clone_Lmosek_4fusion_4Model_2(_0) if (((m.__vars)[_1] is not None) ) else None) for _1 in range(0,int(((m.__vars)).shape[0]))], dtype=numpy.dtype(object))
   self.__barvars = numpy.array([((m.__barvars)[_2]._clone_Lmosek_4fusion_4Model_2(_0) if (((m.__barvars)[_2] is not None) ) else None) for _2 in range(0,int(((m.__barvars)).shape[0]))], dtype=numpy.dtype(object))
   self.__var_map = (m.__var_map)._clone_()
   self.__cons = numpy.array([((m.__cons)[_3]._clone_Lmosek_4fusion_4Model_2(_0) if (((m.__cons)[_3] is not None) ) else None) for _3 in range(0,int(((m.__cons)).shape[0]))], dtype=numpy.dtype(object))
   self.__acons = numpy.array([((m.__acons)[_4]._clone_Lmosek_4fusion_4Model_2(_0) if (((m.__acons)[_4] is not None) ) else None) for _4 in range(0,int(((m.__acons)).shape[0]))], dtype=numpy.dtype(object))
   self.__con_map = (m.__con_map)._clone_()
   self.__numparameter = (m.__numparameter)
   self.__parameters = (None if (((m.__parameters) is None) ) else numpy.array([((m.__parameters)[_5].clone(_0) if (((m.__parameters)[_5] is not None) ) else None) for _5 in range(0,int(((m.__parameters)).shape[0]))], dtype=numpy.dtype(object)))
   self.__par_map = (m.__par_map)._clone_()
   self.__param_num = (m.__param_num)
   self.__param_value = (mosek.fusion.Utils.Tools._arraycopy__3D((m.__param_value)) if (((m.__param_value) is not None) ) else None)
   self.__initsol_xx = None
   self.__initsol_xx_flag = None
   self.__bfixidx = (m.__bfixidx)
   self.__rs = mosek_fusion_WorkStack._ctor_()
   self.__ws = mosek_fusion_WorkStack._ctor_()
   self.__xs = mosek_fusion_WorkStack._ctor_()
  @staticmethod
  def _ctor_SI(name,basesize):
    o = Model.__new__(Model)
    o._ctor_init_SI(name,basesize)
    return o
  @staticmethod
  def __match_ctor_SI(*args):
    if len(args) != 2: return False
    name,basesize, = args
    return (__arg_match_S__(name) and __arg_match_I__(basesize))
  @staticmethod
  def __match_alt_ctor_SI(*args):
    if len(args) != 2: return False
    name,basesize, = args
    return (__arg_alt_match_S__(name) and __arg_alt_match_I__(basesize))
  def _ctor_alt_init_SI(self,name,basesize):
    self._ctor_init_SI(name,numpy.int32(basesize))
  def _ctor_init_SI(self,name,basesize):
   mosek_fusion_BaseModel._ctor_init_SS(self,name,"")
   self.__model_name = name
   self.__acceptable_sol = mosek.fusion.AccSolutionStatus.Optimal
   self.__solutionptr = mosek.fusion.SolutionType.Default
   self.__sol_itr = None
   self.__sol_itg = None
   self.__sol_bas = None
   self.__num_task_afe = 0
   self.__num_task_con = 0
   self.__num_task_acc = 0
   self.__con_blocks = mosek_fusion_RowBlockManager._ctor_()
   self.__afe_blocks = mosek_fusion_RowBlockManager._ctor_()
   self.__obj_blocks = mosek_fusion_RowBlockManager._ctor_()
   self.__acc_block_map = mosek_fusion_LinkedBlocks._ctor_()
   self.__acon_block_map = mosek_fusion_LinkedBlocks._ctor_()
   self.__task_numaferow = 0
   self.__acon_acc = numpy.zeros((self.__acon_block_map.block_capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__acon_afe = numpy.zeros((self.__acon_block_map.block_capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__acon_elm_accid = numpy.zeros((self.__acon_block_map.capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__acon_elm_scale = numpy.array([1.0 for _0 in range(0,self.__acon_block_map.capacity())], dtype=numpy.dtype(numpy.float64))
   self.__acon_elm_ofs = numpy.zeros((self.__acon_block_map.capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__acon_elm_afe = numpy.zeros((self.__acon_block_map.capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__var_block_map = mosek_fusion_LinkedBlocks._ctor_()
   self.__var_block_acc_id = numpy.zeros((self.__var_block_map.block_capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__var_elm_acc_idx = numpy.zeros((self.__var_block_map.capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__var_elm_acc_ofs = numpy.zeros((self.__var_block_map.capacity(),), dtype=numpy.dtype(numpy.int32))
   self.__barvar_num = 0
   self.__barvar_dim = numpy.zeros((basesize,), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_ptr = numpy.zeros(((basesize + 1),), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_dim = numpy.zeros((basesize,), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_elm_ptr = numpy.zeros(((basesize + 1),), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_elm_barj = numpy.zeros((basesize,), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_elm_i = numpy.zeros((basesize,), dtype=numpy.dtype(numpy.int32))
   self.__barvar_block_elm_j = numpy.zeros((basesize,), dtype=numpy.dtype(numpy.int32))
   self.__vars = numpy.array([None for _1 in range(0,(basesize * 8))], dtype=numpy.dtype(object))
   self.__barvars = numpy.array([None for _2 in range(0,basesize)], dtype=numpy.dtype(object))
   self.__var_map = mosek.fusion.Utils.StringIntMap()
   self.__initsol_xx = None
   self.__initsol_xx_flag = None
   self.__cons = numpy.array([None for _3 in range(0,(basesize * 8))], dtype=numpy.dtype(object))
   self.__acons = numpy.array([None for _4 in range(0,(basesize * 8))], dtype=numpy.dtype(object))
   self.__con_map = mosek.fusion.Utils.StringIntMap()
   self.__numparameter = 0
   self.__parameters = None
   self.__par_map = mosek.fusion.Utils.StringIntMap()
   self.__param_num = 0
   self.__param_value = None
   _5=numpy.zeros((1,), dtype=numpy.dtype(numpy.int32))
   _6=self.__linearvar_1alloc_I_3I(1,_5)
   self.__bfixidx = _5[0]
   self._task_1var_1putboundlist_1fx__3I_3D(numpy.array([self.__bfixidx], dtype=numpy.dtype(numpy.int32)),numpy.array([1.0], dtype=numpy.dtype(numpy.float64)))
   self._task_1var_1name_IS(self.__bfixidx,"1.0")
   self._task_1append_1domain_1empty_()
   self.__rs = mosek_fusion_WorkStack._ctor_()
   self.__ws = mosek_fusion_WorkStack._ctor_()
   self.__xs = mosek_fusion_WorkStack._ctor_()
  @staticmethod
  def _ctor_I(basesize):
    o = Model.__new__(Model)
    o._ctor_init_I(basesize)
    return o
  @staticmethod
  def __match_ctor_I(*args):
    if len(args) != 1: return False
    basesize, = args
    return (__arg_match_I__(basesize))
  @staticmethod
  def __match_alt_ctor_I(*args):
    if len(args) != 1: return False
    basesize, = args
    return (__arg_alt_match_I__(basesize))
  def _ctor_alt_init_I(self,basesize):
    self._ctor_init_I(numpy.int32(basesize))
  def _ctor_init_I(self,basesize):
   mosek_fusion_Model._ctor_init_SI(self,"",basesize)
  @staticmethod
  def _ctor_S(name):
    o = Model.__new__(Model)
    o._ctor_init_S(name)
    return o
  @staticmethod
  def __match_ctor_S(*args):
    if len(args) != 1: return False
    name, = args
    return (__arg_match_S__(name))
  @staticmethod
  def __match_alt_ctor_S(*args):
    if len(args) != 1: return False
    name, = args
    return (__arg_alt_match_S__(name))
  def _ctor_alt_init_S(self,name):
    self._ctor_init_S(name)
  def _ctor_init_S(self,name):
   mosek_fusion_Model._ctor_init_SI(self,name,128)
  @staticmethod
  def _ctor_():
    o = Model.__new__(Model)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_Model._ctor_init_S(self,"")
  @staticmethod
  def _match_disjunction_S_3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match__3Lmosek_4fusion_4Term_2__(_1))
  @staticmethod
  def _match_alt_disjunction_S_3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3Lmosek_4fusion_4Term_2__(_1))
  def _disjunction_alt_S_3Lmosek_4fusion_4Term_2(self,_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = self._disjunction_S_3Lmosek_4fusion_4Term_2(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _disjunction_S_3Lmosek_4fusion_4Term_2(self,_0,_1):
   _2=int((_1).shape[0])
   _3=0
   _4=0
   _5=0
   _6=0
   for _7 in range(0,_2):
    _3 += _1[_7].size()
    _4 += _1[_7]._num_()
    _6 += _1[_7]._numaccrows_()
    _5 += _1[_7]._numaccterms_()
   _8=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _9=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _10=numpy.zeros((_6,), dtype=numpy.dtype(numpy.float64))
   _11=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int64))
   _12=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
   _13=self.__afe_1allocate__3I(_8)
   _14=0
   _15=0
   _16=0
   _17=0
   for _18 in range(0,_2):
    for _19 in range(0,_1[_18]._num_()):
     _20=(_1[_18]._domains)[_19]
     _21=mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2((_1[_18]._exprs)[_19])))
     _21.eval(self.__rs,self.__ws,self.__xs)
     self.__rs.pop_expr()
     _22=(self.__rs.i32)
     _23=(self.__rs.i64)
     _24=(self.__rs.f64)
     _25=(self.__rs.nd)
     _26=(self.__rs.shape_base)
     _27=(self.__rs.nelem)
     _28=(self.__rs.nnz)
     _29=(self.__rs.ncodeatom)
     _30=(self.__rs.hassp)
     _31=(self.__rs.ptr_base)
     _32=(self.__rs.nidxs_base)
     _33=(self.__rs.cof_base)
     _34=(self.__rs.code_base)
     _35=(self.__rs.codeptr_base)
     _36=(self.__rs.cconst_base)
     _37=numpy.array([_22[(_26 + _38)] for _38 in range(0,_25)], dtype=numpy.dtype(numpy.int32))
     self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(_8,_17,self.__rs,_27,_28,_31,_32,_33)
     if ((_20.dom)==mosek.fusion.DJCDomainType.InRange):
      _39=(_20.b)
      _40=(_20.par)
      for _41 in range(0,_27):
       _9[(_16 + _41)] = _8[(_17 + _41)]
       _9[((_16 + _27) + _41)] = _8[(_17 + _41)]
       _10[(_16 + _41)] = _39[_41]
       _10[((_16 + _27) + _41)] = _40[_41]
      _11[_15] = self._task_1append_1domain_1rpos_I(_27)
      _11[(_15 + 1)] = self._task_1append_1domain_1rneg_I(_27)
      _12[_18] += 2
      _15 += 2
      _16 += (_27 * 2)
     elif (((_20.dom)==mosek.fusion.DJCDomainType.EqualTo) or (((_20.dom)==mosek.fusion.DJCDomainType.LessThan) or (((_20.dom)==mosek.fusion.DJCDomainType.GreaterThan) or ((_20.dom)==mosek.fusion.DJCDomainType.IsFree)))): # bld/docker-win/final/default/src/fusion/Model.mbi:5053:20-5056:51
      _42=(_20.b)
      for _43 in range(0,_27):
       _9[(_16 + _43)] = _8[(_17 + _43)]
       _10[(_16 + _43)] = _42[_43]
      if ((_20.dom)==mosek.fusion.DJCDomainType.EqualTo):
       _11[_15] = self._task_1append_1domain_1rzero_I(_27)
      elif ((_20.dom)==mosek.fusion.DJCDomainType.LessThan): # bld/docker-win/final/default/src/fusion/Model.mbi:5066:22-55
       _11[_15] = self._task_1append_1domain_1rneg_I(_27)
      elif ((_20.dom)==mosek.fusion.DJCDomainType.GreaterThan): # bld/docker-win/final/default/src/fusion/Model.mbi:5068:22-58
       _11[_15] = self._task_1append_1domain_1rpos_I(_27)
      else:
       _11[_15] = self._task_1append_1domain_1r_I(_27)
      _12[_18] += 1
      _15 += 1
      _16 += _27
     else:
      raise mosek_fusion_UnexpectedError._ctor_S("Not implemented: Non-linear conic DJC constraints")
     if (_29 > 0):
      self.__afe_blocks.replace_row_code(self.__rs,numpy.array([_8[(_17 + _44)] for _44 in range(0,_27)], dtype=numpy.dtype(numpy.int32)),_31,_32,_35,_34,_36)
     _17 += _27
     _14 += 1
   _45=self._task_1append_1djc_J(1)
   self._task_1putdjcslice_JJ_3J_3J_3J_3J_3D(_45,(_45 + 1),numpy.array([numpy.int64(_2)], dtype=numpy.dtype(numpy.int64)),_12,_11,numpy.array([_9[_46] for _46 in range(0,int((_9).shape[0]))], dtype=numpy.dtype(numpy.int64)),_10)
   if (int(len(_0)) > 0):
    self._task_1djc_1name_JS(_45,mosek.fusion.Utils.StringBuffer()._a_S(_0)._a_S("[")._a_S("]")._toString_())
   return (mosek_fusion_Disjunction._ctor_J(_45))
  @staticmethod
  def _match_disjunction__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Term_2__(_0))
  @staticmethod
  def _match_alt_disjunction__3Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Term_2__(_0))
  def _disjunction_alt__3Lmosek_4fusion_4Term_2(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = self._disjunction__3Lmosek_4fusion_4Term_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _disjunction__3Lmosek_4fusion_4Term_2(self,_0):
   return (self.disjunction("",_0))
  @staticmethod
  def _match_disjunction_Lmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(_0))
  @staticmethod
  def _match_alt_disjunction_Lmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(_0))
  def _disjunction_alt_Lmosek_4fusion_4DisjunctionTerms_2(self,_t__0):
    return self._disjunction_Lmosek_4fusion_4DisjunctionTerms_2(_0)
  def _disjunction_Lmosek_4fusion_4DisjunctionTerms_2(self,_0):
   return (self.disjunction((_0._terms)))
  @staticmethod
  def _match_disjunction_SLmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(_1))
  @staticmethod
  def _match_alt_disjunction_SLmosek_4fusion_4DisjunctionTerms_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(_1))
  def _disjunction_alt_SLmosek_4fusion_4DisjunctionTerms_2(self,_t__0,_t__1):
    return self._disjunction_SLmosek_4fusion_4DisjunctionTerms_2(_0,_1)
  def _disjunction_SLmosek_4fusion_4DisjunctionTerms_2(self,_0,_1):
   return (self.disjunction(_0,(_1._terms)))
  @staticmethod
  def _match_disjunction_S_3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match__3Lmosek_4fusion_4ExprDomain_2__(_1))
  @staticmethod
  def _match_alt_disjunction_S_3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3Lmosek_4fusion_4ExprDomain_2__(_1))
  def _disjunction_alt_S_3Lmosek_4fusion_4ExprDomain_2(self,_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = self._disjunction_S_3Lmosek_4fusion_4ExprDomain_2(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _disjunction_S_3Lmosek_4fusion_4ExprDomain_2(self,_0,_1):
   return (self.disjunction(_0,numpy.array([_1[_2].toDJCTerm() for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction__3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4ExprDomain_2__(_0))
  @staticmethod
  def _match_alt_disjunction__3Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4ExprDomain_2__(_0))
  def _disjunction_alt__3Lmosek_4fusion_4ExprDomain_2(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = self._disjunction__3Lmosek_4fusion_4ExprDomain_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _disjunction__3Lmosek_4fusion_4ExprDomain_2(self,_0):
   return (self.disjunction("",numpy.array([_0[_1].toDJCTerm() for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_SLmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ExprDomain_2__(_1))
  @staticmethod
  def _match_alt_disjunction_SLmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ExprDomain_2__(_1))
  def _disjunction_alt_SLmosek_4fusion_4ExprDomain_2(self,_t__0,_t__1):
    return self._disjunction_SLmosek_4fusion_4ExprDomain_2(_0,_1)
  def _disjunction_SLmosek_4fusion_4ExprDomain_2(self,_0,_1):
   return (self.disjunction(_0,numpy.array([_1.toDJCTerm()], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprDomain_2__(_0))
  @staticmethod
  def _match_alt_disjunction_Lmosek_4fusion_4ExprDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprDomain_2__(_0))
  def _disjunction_alt_Lmosek_4fusion_4ExprDomain_2(self,_t__0):
    return self._disjunction_Lmosek_4fusion_4ExprDomain_2(_0)
  def _disjunction_Lmosek_4fusion_4ExprDomain_2(self,_0):
   return (self.disjunction("",numpy.array([_0.toDJCTerm()], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Term_2__(_0) and __arg_match_Lmosek_4fusion_4Term_2__(_1) and __arg_match_Lmosek_4fusion_4Term_2__(_2))
  @staticmethod
  def _match_alt_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Term_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_2))
  def _disjunction_alt_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_t__0,_t__1,_t__2):
    return self._disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(_0,_1,_2)
  def _disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_0,_1,_2):
   return (self.disjunction("",numpy.array([_0,_1,_2], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Term_2__(_0) and __arg_match_Lmosek_4fusion_4Term_2__(_1))
  @staticmethod
  def _match_alt_disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Term_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_1))
  def _disjunction_alt_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_t__0,_t__1):
    return self._disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(_0,_1)
  def _disjunction_Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_0,_1):
   return (self.disjunction("",numpy.array([_0,_1], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Term_2__(_0))
  @staticmethod
  def _match_alt_disjunction_Lmosek_4fusion_4Term_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Term_2__(_0))
  def _disjunction_alt_Lmosek_4fusion_4Term_2(self,_t__0):
    return self._disjunction_Lmosek_4fusion_4Term_2(_0)
  def _disjunction_Lmosek_4fusion_4Term_2(self,_0):
   return (self.disjunction("",numpy.array([_0], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Term_2__(_1) and __arg_match_Lmosek_4fusion_4Term_2__(_2) and __arg_match_Lmosek_4fusion_4Term_2__(_3))
  @staticmethod
  def _match_alt_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_2) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_3))
  def _disjunction_alt_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_t__0,_t__1,_t__2,_t__3):
    return self._disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(_0,_1,_2,_3)
  def _disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_0,_1,_2,_3):
   return (self.disjunction(_0,numpy.array([_1,_2,_3], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Term_2__(_1) and __arg_match_Lmosek_4fusion_4Term_2__(_2))
  @staticmethod
  def _match_alt_disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_2))
  def _disjunction_alt_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_t__0,_t__1,_t__2):
    return self._disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(_0,_1,_2)
  def _disjunction_SLmosek_4fusion_4Term_2Lmosek_4fusion_4Term_2(self,_0,_1,_2):
   return (self.disjunction(_0,numpy.array([_1,_2], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_disjunction_SLmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Term_2__(_1))
  @staticmethod
  def _match_alt_disjunction_SLmosek_4fusion_4Term_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Term_2__(_1))
  def _disjunction_alt_SLmosek_4fusion_4Term_2(self,_t__0,_t__1):
    return self._disjunction_SLmosek_4fusion_4Term_2(_0,_1)
  def _disjunction_SLmosek_4fusion_4Term_2(self,_0,_1):
   return (self.disjunction(_0,numpy.array([_1], dtype=numpy.dtype(object))))
  def _formstConstr_alt_Lmosek_4fusion_4Utils_4StringBuffer_2_3I_3I(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = self._formstConstr_Lmosek_4fusion_4Utils_4StringBuffer_2_3I_3I(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _formstConstr_Lmosek_4fusion_4Utils_4StringBuffer_2_3I_3I(self,_0,_1,_2):
   return (_0)
  def __acon_1release_alt_I(self,_t__0):
    return self.__acon_1release_I(numpy.int32(__0))
  def __acon_1release_I(self,_0):
   _1=self.__acon_block_map.blocksize(_0)
   if (_1 >= 0):
    _2=self.__acc_block_map.blocksize(self.__acon_acc[_0])
    _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _4=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    self.__acc_block_map.get(self.__acon_acc[_0],_3,0)
    self.__acc_block_map.free(self.__acon_acc[_0])
    self.__afe_blocks.get(self.__acon_afe[_0],_4,0)
    self.__afe_1release_I(self.__acon_afe[_0])
    self.__acon_block_map.free(_0)
    self._task_1clearafelist__3J(numpy.array([_4[_5] for _5 in range(0,_1)], dtype=numpy.dtype(numpy.int64)))
    self._task_1putacclist__3J_3J_3J_3D(numpy.array([_3[_6] for _6 in range(0,_2)], dtype=numpy.dtype(numpy.int64)),numpy.array([0 for _7 in range(0,_2)], dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.float64)))
  def __acon_1allocate_alt_JII_3D_3I_3I(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int64(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.float64))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__acon_1allocate_JII_3D_3I_3I(_0,_1,_2,_3,_4,_5)
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __acon_1allocate_JII_3D_3I_3I(self,_0,_1,_2,_3,_4,_5):
   _6=(_2 * _1)
   _7=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _8=self.__acon_block_map.alloc(_6)
   _9=self.__acc_block_map.alloc(_2)
   _10=self.__afe_1allocate__3I(_4)
   self.__acon_block_map.get(_8,_7,0)
   self.__acc_block_map.get(_9,_5,0)
   _11=self.__acon_block_map.block_capacity()
   _12=self.__acon_block_map.capacity()
   if (_11 > int((self.__acon_acc).shape[0])):
    _13=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int32))
    _14=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__acon_acc,0,_13,0,int((self.__acon_acc).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__acon_afe,0,_14,0,int((self.__acon_afe).shape[0]))
    self.__acon_acc = _13
    self.__acon_afe = _14
   self.__acon_acc[_8] = _9
   self.__acon_afe[_8] = _10
   if (_8 >= int((self.__acons).shape[0])):
    _15=numpy.array([None for _16 in range(0,(int((self.__acons).shape[0]) * 2))], dtype=numpy.dtype(object))
    for _17 in range(0,int((self.__acons).shape[0])):
     _15[_17] = self.__acons[_17]
    self.__acons = _15
   if (_12 > int((self.__acon_elm_accid).shape[0])):
    _18=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _19=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    _20=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _21=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__acon_elm_accid,0,_18,0,int((self.__acon_elm_accid).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.__acon_elm_scale,0,_19,0,int((self.__acon_elm_scale).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__acon_elm_ofs,0,_20,0,int((self.__acon_elm_ofs).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__acon_elm_afe,0,_21,0,int((self.__acon_elm_afe).shape[0]))
    self.__acon_elm_accid = _18
    self.__acon_elm_ofs = _20
    self.__acon_elm_afe = _21
    self.__acon_elm_scale = _19
   _22=0
   for _23 in range(0,int((_5).shape[0])):
    if (_5[_23] > _22):
     _22 = _5[_23]
   _22 += 1
   _24=self._task_1numacc_()
   if (_24 < _22):
    self._task_1append_1accs_JI_3J_3D(0,(_22 - _24),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.float64)))
   self._task_1putacclist__3J_3J_3J_3D(numpy.array([_5[_25] for _25 in range(0,int((_5).shape[0]))], dtype=numpy.dtype(numpy.int64)),numpy.array([_0 for _26 in range(0,int((_5).shape[0]))], dtype=numpy.dtype(numpy.int64)),numpy.array([_4[_27] for _27 in range(0,int((_4).shape[0]))], dtype=numpy.dtype(numpy.int64)),_3)
   _28=0
   for _29 in range(0,_2):
    for _30 in range(0,_1):
     self.__acon_elm_accid[_7[_28]] = _5[_29]
     self.__acon_elm_ofs[_7[_28]] = _30
     self.__acon_elm_afe[_7[_28]] = _4[_28]
     self.__acon_elm_scale[_7[_28]] = 1.0
     _28 += 1
   return numpy.int32(_8)
  def __afe_1release_alt_I(self,_t__0):
    return self.__afe_1release_I(numpy.int32(__0))
  def __afe_1release_I(self,_0):
   _1=numpy.zeros((self.__afe_blocks.blocksize(_0),), dtype=numpy.dtype(numpy.int32))
   self.__afe_blocks.release(_0,_1)
   self._task_1clearafelist__3J(numpy.array([_1[_2] for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int64)))
  def __afe_1allocate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__afe_1allocate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __afe_1allocate__3I(self,_0):
   _1=self.__afe_blocks.allocate(_0)
   if (int((_0).shape[0]) > 0):
    _2=self._task_1numafe_()
    _3=_0[0]
    for _4 in range(1,int((_0).shape[0])):
     if (_0[_4] > _3):
      _3 = _0[_4]
    if ((_3 + 1) > _2):
     _5=((_3 + 1) - _2)
     self._task_1append_1afes_J(_5)
     self.__task_numaferow += _5
   return numpy.int32(_1)
  def __con_1release_alt_I(self,_t__0):
    return self.__con_1release_I(numpy.int32(__0))
  def __con_1release_I(self,_0):
   _1=self.__con_blocks.blocksize(_0)
   if (_1 >= 0):
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    self.__con_blocks.release(_0,_2)
    self.__cons[_0] = None
    self._task_1con_1putboundlist_1fr__3I(_2)
  def __con_1allocate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__con_1allocate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __con_1allocate__3I(self,_0):
   _1=self.__con_blocks.allocate(_0)
   if (int((_0).shape[0]) > 0):
    _2=_0[0]
    for _3 in range(1,int((_0).shape[0])):
     if (_0[_3] > _2):
      _2 = _0[_3]
    if ((_2 + 1) > self.__num_task_con):
     _4=((_2 + 1) - self.__num_task_con)
     self._task_1append_1con_I(_4)
     self.__num_task_con += _4
   if (_1 >= int((self.__cons).shape[0])):
    _5=numpy.array([None for _6 in range(0,(int((self.__cons).shape[0]) * 2))], dtype=numpy.dtype(object))
    for _7 in range(0,int((self.__cons).shape[0])):
     _5[_7] = self.__cons[_7]
    self.__cons = _5
   return numpy.int32(_1)
  def __barvar_1alloc_alt_II_3I_3J(self,_t__0,_t__1,_t__2,_t__3):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int64))
   _1_res = self.__barvar_1alloc_II_3I_3J(_0,_1,_2,_3)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __barvar_1alloc_II_3I_3J(self,_0,_1,_2,_3):
   _4=self.__barvar_num
   self.__barvar_num += 1
   _5=((_0 * (_0 + 1)) // 2)
   _6=(_5 * _1)
   _7=self.__barvar_block_ptr[_4]
   _8=int((self.__barvar_block_dim).shape[0])
   _9=self.__barvar_block_elm_ptr[_4]
   _10=int((self.__barvar_block_elm_barj).shape[0])
   if (_8 < (_7 + 1)):
    _11=numpy.zeros(((int((self.__barvar_block_dim).shape[0]) * 2),), dtype=numpy.dtype(numpy.int32))
    _12=numpy.zeros((((int((self.__barvar_block_dim).shape[0]) * 2) + 1),), dtype=numpy.dtype(numpy.int32))
    _13=numpy.zeros((((int((self.__barvar_block_dim).shape[0]) * 2) + 1),), dtype=numpy.dtype(numpy.int32))
    _14=numpy.array([None for _15 in range(0,((int((self.__barvar_block_dim).shape[0]) * 2) + 1))], dtype=numpy.dtype(object))
    for _16 in range(0,int((self.__barvars).shape[0])):
     _14[_16] = self.__barvars[_16]
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_dim,0,_11,0,int((self.__barvar_block_dim).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_ptr,0,_12,0,int((self.__barvar_block_ptr).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_elm_ptr,0,_13,0,int((self.__barvar_block_elm_ptr).shape[0]))
    self.__barvar_block_dim = _11
    self.__barvar_block_ptr = _12
    self.__barvar_block_elm_ptr = _13
    self.__barvars = _14
   if (_10 < (_9 + _6)):
    _17=((_10 + _6) - _9)
    if (_17 < _10):
     _17 = _10
    _18=(_10 + _17)
    _19=numpy.zeros((_18,), dtype=numpy.dtype(numpy.int32))
    _20=numpy.zeros((_18,), dtype=numpy.dtype(numpy.int32))
    _21=numpy.zeros((_18,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_elm_barj,0,_19,0,int((self.__barvar_block_elm_barj).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_elm_i,0,_20,0,int((self.__barvar_block_elm_i).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_block_elm_j,0,_21,0,int((self.__barvar_block_elm_j).shape[0]))
    self.__barvar_block_elm_barj = _19
    self.__barvar_block_elm_i = _20
    self.__barvar_block_elm_j = _21
   _22=self._task_1numbarvar_()
   for _23 in range(0,_1):
    _2[_23] = (_22 + _23)
   if ((_22 + _1) >= int((self.__barvar_dim).shape[0])):
    _24=((_22 + _1) - int((self.__barvar_dim).shape[0]))
    if (_24 < int((self.__barvar_dim).shape[0])):
     _24 = int((self.__barvar_dim).shape[0])
    _25=(_24 + int((self.__barvar_dim).shape[0]))
    _26=numpy.zeros((_25,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__barvar_dim,0,_26,0,int((self.__barvar_dim).shape[0]))
    self.__barvar_dim = _26
   self.__barvar_block_dim[_4] = _0
   self.__barvar_block_ptr[(_4 + 1)] = (self.__barvar_block_ptr[_4] + _1)
   self.__barvar_block_elm_ptr[(_4 + 1)] = (self.__barvar_block_elm_ptr[_4] + _6)
   _27=0
   _28=self.__barvar_block_elm_ptr[_4]
   for _29 in range(0,_1):
    for _30 in range(0,_0):
     for _31 in range(_30,_0):
      self.__barvar_block_elm_barj[(_28 + _27)] = (_22 + _29)
      self.__barvar_block_elm_i[(_28 + _27)] = _31
      self.__barvar_block_elm_j[(_28 + _27)] = _30
      _3[_27] = (_28 + _27)
      _27 += 1
   for _32 in range(0,_1):
    self.__barvar_dim[(_22 + _32)] = _0
   _33=self._task_1append_1barvar_II(_0,_1)
   return numpy.int32(_4)
  def __conicvar_1alloc_alt_JII_3I_3I(self,_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.int64(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__conicvar_1alloc_JII_3I_3I(_0,_1,_2,_3,_4)
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __conicvar_1alloc_JII_3I_3I(self,_0,_1,_2,_3,_4):
   _5=(_1 * _2)
   _6=self.__linearvar_1alloc_I_3I(_5,_4)
   _7=numpy.zeros((_5,), dtype=numpy.dtype(numpy.float64))
   _8=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _9=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _10=self.__acon_1allocate_JII_3D_3I_3I(_0,_1,_2,_7,_9,_3)
   self.__var_block_acc_id[_6] = _10
   for _11 in range(0,_5):
    self.__var_elm_acc_idx[_4[_11]] = _3[(_11 // _1)]
    self.__var_elm_acc_ofs[_4[_11]] = (_11 % _1)
   self._task_1putafeflist__3J_3I_3I_3D_3D(numpy.array([_9[_12] for _12 in range(0,int((_9).shape[0]))], dtype=numpy.dtype(numpy.int64)),numpy.array([_13 for _13 in range(0,(_5 + 1))], dtype=numpy.dtype(numpy.int32)),_4,numpy.array([1.0 for _14 in range(0,_5)], dtype=numpy.dtype(numpy.float64)),numpy.array([0.0 for _15 in range(0,_5)], dtype=numpy.dtype(numpy.float64)))
   return numpy.int32(_6)
  def __linearvar_1alloc_alt_I_3I(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__linearvar_1alloc_I_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __linearvar_1alloc_I_3I(self,_0,_1):
   _2=self.__var_block_map.alloc(_0)
   _3=(self.__var_block_map.maxidx(_2) + 1)
   _4=self.__var_block_map.capacity()
   _5=self.__var_block_map.block_capacity()
   self.__var_block_map.get(_2,_1,0)
   if (self._task_1numvar_() < _3):
    self._task_1append_1var_I((_3 - self._task_1numvar_()))
   if (_2 >= int((self.__vars).shape[0])):
    _6=numpy.array([None for _7 in range(0,(int((self.__vars).shape[0]) * 2))], dtype=numpy.dtype(object))
    for _8 in range(0,int((self.__vars).shape[0])):
     _6[_8] = self.__vars[_8]
    self.__vars = _6
   if (_5 > int((self.__var_block_acc_id).shape[0])):
    _9=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__var_block_acc_id,0,_9,0,int((self.__var_block_acc_id).shape[0]))
    self.__var_block_acc_id = _9
   if (_4 > int((self.__var_elm_acc_idx).shape[0])):
    _10=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__var_elm_acc_idx,0,_10,0,int((self.__var_elm_acc_idx).shape[0]))
    self.__var_elm_acc_idx = _10
    _11=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__var_elm_acc_ofs,0,_11,0,int((self.__var_elm_acc_ofs).shape[0]))
    self.__var_elm_acc_ofs = _11
   self.__var_block_acc_id[_2] = (- 1)
   for _12 in range(0,_0):
    self.__var_elm_acc_idx[_1[_12]] = (- 1)
   return numpy.int32(_2)
  def _make_1continuous_alt__3J(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1_res = self._make_1continuous__3J(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _make_1continuous__3J(self,_0):
   _1=0
   for _2 in range(0,int((_0).shape[0])):
    if (_0[_2] > 0):
     _1 += 1
   _3=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
   _4=0
   for _5 in range(0,int((_0).shape[0])):
    if (_0[_5] > 0):
     _3[_4] = numpy.int32(_0[_5])
     _4 += 1
   self._task_1var_1putcontlist__3I(_3)
  def _make_1integer_alt__3J(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1_res = self._make_1integer__3J(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _make_1integer__3J(self,_0):
   _1=0
   for _2 in range(0,int((_0).shape[0])):
    if (_0[_2] > 0):
     _1 += 1
   _3=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
   _4=0
   for _5 in range(0,int((_0).shape[0])):
    if (_0[_5] > 0):
     _3[_4] = numpy.int32(_0[_5])
     _4 += 1
   self._task_1var_1putintlist__3I(_3)
  @staticmethod
  def _match_putlicensewait_Z(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Z__(_0))
  @staticmethod
  def _match_alt_putlicensewait_Z(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Z__(_0))
  @staticmethod
  def _putlicensewait_alt_Z(_t__0):
    return mosek_fusion_Model._putlicensewait_Z(_0)
  @staticmethod
  def _putlicensewait_Z(_0):
   mosek.fusion.BaseModel._env_1putlicensewait_Z(_0)
  @staticmethod
  def _match_putlicensepath_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_putlicensepath_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  @staticmethod
  def _putlicensepath_alt_S(_t__0):
    return mosek_fusion_Model._putlicensepath_S(_0)
  @staticmethod
  def _putlicensepath_S(_0):
   mosek.fusion.BaseModel._env_1putlicensepath_S(_0)
  @staticmethod
  def _match_putlicensecode__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_putlicensecode__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _putlicensecode_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Model._putlicensecode__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _putlicensecode__3I(_0):
   mosek.fusion.BaseModel._env_1putlicensecode__3I(_0)
  @staticmethod
  def _match_dispose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dispose_(*args):
    if len(args) != 0: return False
    return True
  def _dispose_alt_(self,):
    return self._dispose_()
  def _dispose_(self,):
   for _0 in range(0,int((self.__vars).shape[0])):
    self.__vars[_0] = None
   for _1 in range(0,int((self.__cons).shape[0])):
    self.__cons[_1] = None
   for _2 in range(0,int((self.__acons).shape[0])):
    self.__acons[_2] = None
   for _3 in range(0,int((self.__barvars).shape[0])):
    self.__barvars[_3] = None
   if (self.__parameters is not None):
    for _4 in range(0,int((self.__parameters).shape[0])):
     self.__parameters[_4] = None
   mosek_fusion_BaseModel._dispose_(self)
  @staticmethod
  def _match_getTask_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getTask_(*args):
    if len(args) != 0: return False
    return True
  def _getTask_alt_(self,):
    return self._getTask_()
  def _getTask_(self,):
   return (self._task_1get_())
  @staticmethod
  def _match_getConstraintDuals_Z_3I_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Z__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_getConstraintDuals_Z_3I_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match_I__(_3))
  def _getConstraintDuals_alt_Z_3I_3DI(self,_t__0,_t__1,_t__2,_t__3):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.int32(_t__3)
   _1_res = self._getConstraintDuals_Z_3I_3DI(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getConstraintDuals_Z_3I_3DI(self,_0,_1,_2,_3):
   _4=int((_1).shape[0])
   _5=self._getSolution_1slc_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
   _6=self._getSolution_1suc_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
   for _7 in range(0,_4):
    if (_1[_7] >= 0):
     if _0:
      _2[(_3 + _7)] = _5[_1[_7]]
     else:
      _2[(_3 + _7)] = (- _6[_1[_7]])
    else:
     raise mosek_fusion_SolutionError._ctor_S("Requested invalid solution item")
  @staticmethod
  def _match_getConstraintValues_Z_3I_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Z__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_getConstraintValues_Z_3I_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match_I__(_3))
  def _getConstraintValues_alt_Z_3I_3DI(self,_t__0,_t__1,_t__2,_t__3):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.int32(_t__3)
   _1_res = self._getConstraintValues_Z_3I_3DI(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getConstraintValues_Z_3I_3DI(self,_0,_1,_2,_3):
   _4=int((_1).shape[0])
   if _0:
    _5=self._getSolution_1xc_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _6=self._getSolution_1accx_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _7=self._getSolution_1accptr_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    for _8 in range(0,_4):
     if (_1[_8] >= 0):
      _2[(_3 + _8)] = _5[_1[_8]]
     else:
      _9=(- (1 + _1[_8]))
      _2[(_3 + _8)] = (_6[(_7[self.__acon_elm_accid[_9]] + self.__acon_elm_ofs[_9])] * self.__acon_elm_scale[_9])
   else:
    _10=self._getSolution_1y_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _11=self._getSolution_1accy_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _12=self._getSolution_1accptr_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    for _13 in range(0,_4):
     if (_1[_13] >= 0):
      _2[(_3 + _13)] = _10[_1[_13]]
     else:
      _14=(- (1 + _1[_13]))
      _2[(_3 + _13)] = (_11[(_12[self.__acon_elm_accid[_14]] + self.__acon_elm_ofs[_14])] * self.__acon_elm_scale[_14])
  @staticmethod
  def _match_getVariableDuals_Z_3J_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Z__(_0) and __arg_match__3J__(_1) and __arg_match__3D__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_getVariableDuals_Z_3J_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match_I__(_3))
  def _getVariableDuals_alt_Z_3J_3DI(self,_t__0,_t__1,_t__2,_t__3):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.int32(_t__3)
   _1_res = self._getVariableDuals_Z_3J_3DI(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getVariableDuals_Z_3J_3DI(self,_0,_1,_2,_3):
   _4=int((_1).shape[0])
   if _0:
    _5=self._getSolution_1slx_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    for _6 in range(0,_4):
     if (_1[_6] > 0):
      _2[(_3 + _6)] = _5[_1[_6]]
     else:
      _2[(_3 + _6)] = 0
   else:
    _7=self._getSolution_1sux_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    for _8 in range(0,_4):
     if (_1[_8] > 0):
      _2[(_3 + _8)] = (- _7[_1[_8]])
     else:
      _2[(_3 + _8)] = 0
  @staticmethod
  def _match_getVariableValues_Z_3J_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Z__(_0) and __arg_match__3J__(_1) and __arg_match__3D__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_getVariableValues_Z_3J_3DI(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match_I__(_3))
  def _getVariableValues_alt_Z_3J_3DI(self,_t__0,_t__1,_t__2,_t__3):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.int32(_t__3)
   _1_res = self._getVariableValues_Z_3J_3DI(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getVariableValues_Z_3J_3DI(self,_0,_1,_2,_3):
   _4=int((_1).shape[0])
   self.__barvar_num = self._task_1numbarvar_()
   if _0:
    _5=self._getSolution_1xx_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _6=(self._getSolution_1barx_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default) if ((self.__barvar_num > 0) ) else None)
    for _7 in range(0,_4):
     if (_1[_7] > 0):
      _2[(_3 + _7)] = _5[_1[_7]]
     elif (_1[_7] < 0): # bld/docker-win/final/default/src/fusion/Model.mbi:4340:20-37
      _8=(- (_1[_7] + 1))
      _2[(_3 + _7)] = _6[_8]
     else:
      _2[(_3 + _7)] = 0
   else:
    _9=self._getSolution_1yx_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _10=(self._getSolution_1bars_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default) if ((self.__barvar_num > 0) ) else None)
    _11=self._getSolution_1accy_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    _12=self._getSolution_1accptr_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Default)
    for _13 in range(0,_4):
     if (_1[_13] < 0):
      _14=(- (_1[_13] + 1))
      _2[(_3 + _13)] = _10[_14]
     elif (_1[_13]==0): # bld/docker-win/final/default/src/fusion/Model.mbi:4359:20-38
      _2[(_3 + _13)] = 0
     elif (self.__var_elm_acc_idx[_1[_13]] >= 0): # bld/docker-win/final/default/src/fusion/Model.mbi:4361:20-55
      _2[(_3 + _13)] = _11[(_12[self.__var_elm_acc_idx[_1[_13]]] + self.__var_elm_acc_ofs[_1[_13]])]
     else:
      _2[(_3 + _13)] = _9[_1[_13]]
  @staticmethod
  def _match_setVariableValues_Z_3J_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Z__(_0) and __arg_match__3J__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_setVariableValues_Z_3J_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3D__(_2))
  def _setVariableValues_alt_Z_3J_3D(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setVariableValues_Z_3J_3D(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setVariableValues_Z_3J_3D(self,_0,_1,_2):
   if _0:
    _3=0
    for _4 in range(0,int((_1).shape[0])):
     if (_1[_4] >= 0):
      _3 += 1
    _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
    _7=0
    for _8 in range(0,int((_1).shape[0])):
     if (_1[_8] >= 0):
      _5[_7] = numpy.int32(_1[_8])
      _6[_7] = _2[_8]
      _7 += 1
    self._setSolution_1xx__3I_3D(_5,_6)
   else:
    pass
  @staticmethod
  def _match_flushNames_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_flushNames_(*args):
    if len(args) != 0: return False
    return True
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   for _0 in range(0,int((self.__vars).shape[0])):
    if (self.__vars[_0] is not None):
     self.__vars[_0]._flushNames_()
   for _1 in range(0,int((self.__barvars).shape[0])):
    if (self.__barvars[_1] is not None):
     self.__barvars[_1]._flushNames_()
   for _2 in range(0,int((self.__cons).shape[0])):
    if (self.__cons[_2] is not None):
     self.__cons[_2]._flushNames_()
   for _3 in range(0,int((self.__acons).shape[0])):
    if (self.__acons[_3] is not None):
     self.__acons[_3]._flushNames_()
  @staticmethod
  def _match_writeTaskNoFlush_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_writeTaskNoFlush_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _writeTaskNoFlush_alt_S(self,_t__0):
    return self._writeTaskNoFlush_S(_0)
  def _writeTaskNoFlush_S(self,_0):
   self.flushNames()
   self._task_1write_S(_0)
  @staticmethod
  def _match_writeTaskStream_SLSystem_4DataStream_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_LSystem_4DataStream_2__(_1))
  @staticmethod
  def _match_alt_writeTaskStream_SLSystem_4DataStream_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_LSystem_4DataStream_2__(_1))
  def _writeTaskStream_alt_SLSystem_4DataStream_2(self,_t__0,_t__1):
    return self._writeTaskStream_SLSystem_4DataStream_2(_0,_1)
  def _writeTaskStream_SLSystem_4DataStream_2(self,_0,_1):
   self.flushNames()
   self.__flush_1parameters_()
   self._task_1write_1stream_SLSystem_4DataStream_2(_0,_1)
  @staticmethod
  def _match_dataReport_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dataReport_(*args):
    if len(args) != 0: return False
    return True
  def _dataReport_alt_(self,):
    return self._dataReport_()
  def _dataReport_(self,):
   self.dataReport(10)
  @staticmethod
  def _match_dataReport_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_dataReport_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _dataReport_alt_I(self,_t__0):
    return self._dataReport_I(numpy.int32(__0))
  def _dataReport_I(self,_0):
   self.__flush_1parameters_()
   self._task_1analyze_1problem_I(_0)
  @staticmethod
  def _match_writeTask_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_writeTask_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _writeTask_alt_S(self,_t__0):
    return self._writeTask_S(_0)
  def _writeTask_S(self,_0):
   self.flushNames()
   self.__flush_1parameters_()
   self._task_1write_S(_0)
  @staticmethod
  def _match_getSolverLIntInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getSolverLIntInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getSolverLIntInfo_alt_S(self,_t__0):
    return self._getSolverLIntInfo_S(_0)
  def _getSolverLIntInfo_S(self,_0):
   return numpy.int64(self._task_1get_1liinf_S(_0))
  @staticmethod
  def _match_getSolverIntInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getSolverIntInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getSolverIntInfo_alt_S(self,_t__0):
    return self._getSolverIntInfo_S(_0)
  def _getSolverIntInfo_S(self,_0):
   return numpy.int32(self._task_1get_1iinf_S(_0))
  @staticmethod
  def _match_getSolverDoubleInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getSolverDoubleInfo_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getSolverDoubleInfo_alt_S(self,_t__0):
    return self._getSolverDoubleInfo_S(_0)
  def _getSolverDoubleInfo_S(self,_0):
   return numpy.float64(self._task_1get_1dinf_S(_0))
  @staticmethod
  def _match_setCallbackHandler_LSystem_4CallbackHandler_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_LSystem_4CallbackHandler_2__(_0))
  @staticmethod
  def _match_alt_setCallbackHandler_LSystem_4CallbackHandler_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_LSystem_4CallbackHandler_2__(_0))
  def _setCallbackHandler_alt_LSystem_4CallbackHandler_2(self,_t__0):
    return self._setCallbackHandler_LSystem_4CallbackHandler_2(_0)
  def _setCallbackHandler_LSystem_4CallbackHandler_2(self,_0):
   self._task_1setCallbackHandler_LSystem_4CallbackHandler_2(_0)
  @staticmethod
  def _match_setDataCallbackHandler_LSystem_4DataCallbackHandler_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_LSystem_4DataCallbackHandler_2__(_0))
  @staticmethod
  def _match_alt_setDataCallbackHandler_LSystem_4DataCallbackHandler_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_LSystem_4DataCallbackHandler_2__(_0))
  def _setDataCallbackHandler_alt_LSystem_4DataCallbackHandler_2(self,_t__0):
    return self._setDataCallbackHandler_LSystem_4DataCallbackHandler_2(_0)
  def _setDataCallbackHandler_LSystem_4DataCallbackHandler_2(self,_0):
   self._task_1setDataCallbackHandler_LSystem_4DataCallbackHandler_2(_0)
  @staticmethod
  def _match_setLogHandler_LSystem_4StreamWriter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_LSystem_4StreamWriter_2__(_0))
  @staticmethod
  def _match_alt_setLogHandler_LSystem_4StreamWriter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_LSystem_4StreamWriter_2__(_0))
  def _setLogHandler_alt_LSystem_4StreamWriter_2(self,_t__0):
    return self._setLogHandler_LSystem_4StreamWriter_2(_0)
  def _setLogHandler_LSystem_4StreamWriter_2(self,_0):
   self._task_1setLogHandler_LSystem_4StreamWriter_2(_0)
  @staticmethod
  def _match_setSolverParam_SD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_setSolverParam_SD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_D__(_1))
  def _setSolverParam_alt_SD(self,_t__0,_t__1):
    return self._setSolverParam_SD(_0,numpy.float64(__1))
  def _setSolverParam_SD(self,_0,_1):
   mosek.fusion.Parameters._setParameter_Lmosek_4fusion_4Model_2SD(self,_0,_1)
  @staticmethod
  def _match_setSolverParam_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_setSolverParam_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1))
  def _setSolverParam_alt_SI(self,_t__0,_t__1):
    return self._setSolverParam_SI(_0,numpy.int32(__1))
  def _setSolverParam_SI(self,_0,_1):
   mosek.fusion.Parameters._setParameter_Lmosek_4fusion_4Model_2SI(self,_0,_1)
  @staticmethod
  def _match_setSolverParam_SS(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_S__(_1))
  @staticmethod
  def _match_alt_setSolverParam_SS(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_S__(_1))
  def _setSolverParam_alt_SS(self,_t__0,_t__1):
    return self._setSolverParam_SS(_0,_1)
  def _setSolverParam_SS(self,_0,_1):
   mosek.fusion.Parameters._setParameter_Lmosek_4fusion_4Model_2SS(self,_0,_1)
  @staticmethod
  def _match_breakSolver_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_breakSolver_(*args):
    if len(args) != 0: return False
    return True
  def _breakSolver_alt_(self,):
    return self._breakSolver_()
  def _breakSolver_(self,):
   self._task_1break_1solve_()
  @staticmethod
  def _match_optserverHost_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_optserverHost_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _optserverHost_alt_S(self,_t__0):
    return self._optserverHost_S(_0)
  def _optserverHost_S(self,_0):
   self._task_1putoptserver_1host_S(_0)
  def _report_1solution_alt_Emosek_4fusion_4SolutionType_2Emosek_4fusion_4ProblemStatus_2Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4SolutionStatus_2DDIIIIIZZ(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8,_t__9,_t__10,_t__11,_t__12):
    return self._report_1solution_Emosek_4fusion_4SolutionType_2Emosek_4fusion_4ProblemStatus_2Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4SolutionStatus_2DDIIIIIZZ(__0,__1,__2,__3,numpy.float64(__4),numpy.float64(__5),numpy.int32(__6),numpy.int32(__7),numpy.int32(__8),numpy.int32(__9),numpy.int32(__10),_11,_12)
  def _report_1solution_Emosek_4fusion_4SolutionType_2Emosek_4fusion_4ProblemStatus_2Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4SolutionStatus_2DDIIIIIZZ(self,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12):
   if (_0==mosek.fusion.SolutionType.Interior):
    _13 = self.__sol_itr
   elif (_0==mosek.fusion.SolutionType.Basic): # bld/docker-win/final/default/src/fusion/Model.mbi:3988:16-45
    _13 = self.__sol_bas
   elif (_0==mosek.fusion.SolutionType.Integer): # bld/docker-win/final/default/src/fusion/Model.mbi:3989:16-47
    _13 = self.__sol_itg
   else:
    _13 = None
   if (_13 is None):
    _13 = mosek_fusion_SolutionStruct._ctor_IIIII(_6,_7,_8,_9,_10)
   else:
    _13.resize(_6,_7,_8,_9,_10)
   (_13.pobj) = _4
   (_13.dobj) = _5
   (_13.pstatus) = _2
   (_13.dstatus) = _3
   (_13.probstatus) = _1
   if (_6 > 0):
    if _11:
     self._report_1solution_1get_1xx__3D((_13.xx))
    if _12:
     self._report_1solution_1get_1slx__3D((_13.slx))
     self._report_1solution_1get_1sux__3D((_13.sux))
     _14=(_13.yx)
     _15=(_13.slx)
     _16=(_13.sux)
     for _17 in range(0,_6):
      _14[_17] = (_15[_17] - _16[_17])
   if (_7 > 0):
    if _11:
     self._report_1solution_1get_1xc__3D((_13.xc))
    if _12:
     self._report_1solution_1get_1slc__3D((_13.slc))
     self._report_1solution_1get_1suc__3D((_13.suc))
     _18=(_13.y)
     _19=(_13.slc)
     _20=(_13.suc)
     for _21 in range(0,_7):
      _18[_21] = (_19[_21] - _20[_21])
   if (_8 > 0):
    if _11:
     self._report_1solution_1get_1barx__3D((_13.barx))
    if _12:
     self._report_1solution_1get_1bars__3D((_13.bars))
   if (self._task_1numacc_() > 0):
    self._report_1solution_1get_1accptr__3I((_13.accptr))
    if _11:
     self._report_1solution_1get_1accx__3D((_13.accx))
    if _12:
     self._report_1solution_1get_1accy__3D((_13.accy))
   if (_0==mosek.fusion.SolutionType.Interior):
    self.__sol_itr = _13
   elif (_0==mosek.fusion.SolutionType.Basic): # bld/docker-win/final/default/src/fusion/Model.mbi:4045:16-45
    self.__sol_bas = _13
   elif (_0==mosek.fusion.SolutionType.Integer): # bld/docker-win/final/default/src/fusion/Model.mbi:4046:16-47
    self.__sol_itg = _13
  def _clear_1solutions_alt_(self,):
    return self._clear_1solutions_()
  def _clear_1solutions_(self,):
   self.__sol_itr = None
   self.__sol_itg = None
   self.__sol_bas = None
  @staticmethod
  def _match_solveBatch_ZDI_3Lmosek_4fusion_4Model_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Z__(_0) and __arg_match_D__(_1) and __arg_match_I__(_2) and __arg_match__3Lmosek_4fusion_4Model_2__(_3))
  @staticmethod
  def _match_alt_solveBatch_ZDI_3Lmosek_4fusion_4Model_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Z__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match__3Lmosek_4fusion_4Model_2__(_3))
  @staticmethod
  def _solveBatch_alt_ZDI_3Lmosek_4fusion_4Model_2(_t__0,_t__1,_t__2,_t__3):
   _0=_t__0
   _1=numpy.float64(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Model._solveBatch_ZDI_3Lmosek_4fusion_4Model_2(_0,_1,_2,_3)
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _solveBatch_ZDI_3Lmosek_4fusion_4Model_2(_0,_1,_2,_3):
   _4=int((_3).shape[0])
   for _5 in range(0,_4):
    if (_3[_5] is None):
     raise mosek_fusion_OptimizeError._ctor_S("One of the models is a null object")
   for _6 in range(0,_4):
    _3[_6].flushSolutions()
    _3[_6].__flush_1parameters_()
   _7=mosek.fusion.BaseModel._env_1solve_1batch_ZDI_3Lmosek_4fusion_4Model_2(_0,_1,_2,_3)
   for _8 in range(0,_4):
    _3[_8]._task_1post_1solve_()
   return (_7)
  @staticmethod
  def _match_solve_SS(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_S__(_1))
  @staticmethod
  def _match_alt_solve_SS(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_S__(_1))
  def _solve_alt_SS(self,_t__0,_t__1):
    return self._solve_SS(_0,_1)
  def _solve_SS(self,_0,_1):
   self.flushSolutions()
   self.__flush_1parameters_()
   self._task_1solve_ZSS(True,_0,_1)
   self._task_1post_1solve_()
  @staticmethod
  def _match_solve_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_solve_(*args):
    if len(args) != 0: return False
    return True
  def _solve_alt_(self,):
    return self._solve_()
  def _solve_(self,):
   self.flushSolutions()
   self.__flush_1parameters_()
   self._task_1solve_ZSS(False,"","")
   self._task_1post_1solve_()
  def __flush_1parameters_alt_(self,):
    return self.__flush_1parameters_()
  def __flush_1parameters_(self,):
   _0=self.__con_blocks.num_parameterized()
   _1=self.__afe_blocks.num_parameterized()
   _2=self.__obj_blocks.num_parameterized()
   if (_0 > 0):
    _3=numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
    _4=numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
    _5=numpy.zeros((_0,), dtype=numpy.dtype(numpy.float64))
    self.__con_blocks.evaluate(self.__xs,self.__param_value,_3,_4,_5)
    self._task_1putaijlist__3I_3I_3DJ(_3,_4,_5,_0)
   if (_1 > 0):
    _6=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    _7=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    _8=numpy.zeros((_1,), dtype=numpy.dtype(numpy.float64))
    self.__afe_blocks.evaluate(self.__xs,self.__param_value,_6,_7,_8)
    self._task_1putafefijlist__3I_3I_3D(_6,_7,_8)
   if (_2 > 0):
    _9=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _10=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _11=numpy.zeros((_2,), dtype=numpy.dtype(numpy.float64))
    self.__obj_blocks.evaluate(self.__xs,self.__param_value,_9,_10,_11)
    self._task_1putclist__3I_3D(_10,_11)
  @staticmethod
  def _match_flushParameters_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_flushParameters_(*args):
    if len(args) != 0: return False
    return True
  def _flushParameters_alt_(self,):
    return self._flushParameters_()
  def _flushParameters_(self,):
   self.__flush_1parameters_()
  def __evaluate_1parameterized_alt_Lmosek_4fusion_4WorkStack_2I_3I_3I_3J_3I_3I_3I_3D_3I_3D(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8,_t__9,_t__10):
   _0=_t__0
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int64))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int32))
   _6=numpy.array(_t__6,dtype=numpy.dtype(numpy.int32))
   _7=numpy.array(_t__7,dtype=numpy.dtype(numpy.int32))
   _8=numpy.array(_t__8,dtype=numpy.dtype(numpy.float64))
   _9=numpy.array(_t__9,dtype=numpy.dtype(numpy.int32))
   _10=numpy.array(_t__10,dtype=numpy.dtype(numpy.float64))
   _1_res = self.__evaluate_1parameterized_Lmosek_4fusion_4WorkStack_2I_3I_3I_3J_3I_3I_3I_3D_3I_3D(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__6[:] = _6
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__7[:] = _7
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__8[:] = _8
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__9[:] = _9
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__10[:] = _10
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __evaluate_1parameterized_Lmosek_4fusion_4WorkStack_2I_3I_3I_3J_3I_3I_3I_3D_3I_3D(self,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10):
   _11=_0.allocf64(int((_7).shape[0]))
   _12=0
   _13=(_0.f64)
   _14=0
   for _15 in range(0,_1):
    _16=_5[_15]
    for _17 in range(_2[_15],_3[_15]):
     for _18 in range(0,_6[_17]):
      if (_7[_16]==0):
       pass
      else:
       if (_7[_16]==1):
        _13[(_11 + _12)] = self.__param_value[numpy.int32(_8[_16])]
        _12 += 1
       else:
        if (_7[_16]==2):
         _13[(_11 + _12)] = _8[_16]
         _12 += 1
        else:
         if (_7[_16]==3):
          _13[((_11 + _12) - 2)] += _13[((_11 + _12) - 1)]
          _12 -= 1
         else:
          if (_7[_16]==4):
           _13[((_11 + _12) - 1)] = (- _13[((_11 + _12) - 1)])
          else:
           if (_7[_16]==5):
            _13[((_11 + _12) - 2)] *= _13[((_11 + _12) - 1)]
            _12 -= 1
           else:
            if (_7[_16]==6):
             _13[((_11 + _12) - 1)] = (1.0 / _13[((_11 + _12) - 1)])
            else:
             if (_7[_16]==8):
              _19=0.0
              for _20 in range(0,numpy.int32(_8[_16])):
               _19 += _13[((_11 + _12) - 1)]
               _12 -= 1
              _13[(_11 + _12)] = _19
              _12 += 1
             else:
              pass
      _16 += 1
     _9[_14] = numpy.int32(_4[_17])
     _10[_14] = _13[_11]
     _12 = 0
     _14 += 1
   _0.popf64(int((_7).shape[0]))
  @staticmethod
  def _match_flushSolutions_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_flushSolutions_(*args):
    if len(args) != 0: return False
    return True
  def _flushSolutions_alt_(self,):
    return self._flushSolutions_()
  def _flushSolutions_(self,):
   self.__flush_1initsol_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Interior)
   self.__flush_1initsol_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Integer)
   self.__flush_1initsol_Emosek_4fusion_4SolutionType_2(mosek.fusion.SolutionType.Basic)
  def __flush_1initsol_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self.__flush_1initsol_Emosek_4fusion_4SolutionType_2(__0)
  def __flush_1initsol_Emosek_4fusion_4SolutionType_2(self,_0):
   if (self.__initsol_xx is not None):
    _1=self._task_1numvar_()
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.float64))
    try:
     _3=self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,True)
     if ((_3.xx) is not None):
      mosek.fusion.Utils.Tools._arraycopy__3DI_3DII((_3.xx),0,_2,0,(int(((_3.xx)).shape[0]) if ((int(((_3.xx)).shape[0]) <= _1) ) else _1))
    except mosek_fusion_SolutionError as _4:
     pass
    _5=(int((self.__initsol_xx).shape[0]) if ((int((self.__initsol_xx).shape[0]) <= _1) ) else _1)
    for _6 in range(0,_5):
     if self.__initsol_xx_flag[_6]:
      _2[_6] = self.__initsol_xx[_6]
    _2[self.__bfixidx] = 1.0
    self._task_1putxx_1slice_Emosek_4fusion_4SolutionType_2II_3D(_0,0,_1,_2)
  @staticmethod
  def _match_getDualSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getDualSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  def _getDualSolutionStatus_alt_(self,):
    return self._getDualSolutionStatus_()
  def _getDualSolutionStatus_(self,):
   return (self.getDualSolutionStatus(self.__solutionptr))
  @staticmethod
  def _match_getProblemStatus_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getProblemStatus_(*args):
    if len(args) != 0: return False
    return True
  def _getProblemStatus_alt_(self,):
    return self._getProblemStatus_()
  def _getProblemStatus_(self,):
   return (self.getProblemStatus(self.__solutionptr))
  @staticmethod
  def _match_getPrimalSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getPrimalSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  def _getPrimalSolutionStatus_alt_(self,):
    return self._getPrimalSolutionStatus_()
  def _getPrimalSolutionStatus_(self,):
   return (self._getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(self.__solutionptr))
  @staticmethod
  def _match_dualObjValue_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dualObjValue_(*args):
    if len(args) != 0: return False
    return True
  def _dualObjValue_alt_(self,):
    return self._dualObjValue_()
  def _dualObjValue_(self,):
   return numpy.float64((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(mosek.fusion.SolutionType.Default,False).dobj))
  @staticmethod
  def _match_primalObjValue_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_primalObjValue_(*args):
    if len(args) != 0: return False
    return True
  def _primalObjValue_alt_(self,):
    return self._primalObjValue_()
  def _primalObjValue_(self,):
   return numpy.float64((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(mosek.fusion.SolutionType.Default,True).pobj))
  def _get_1sol_1cache_alt_Emosek_4fusion_4SolutionType_2ZZ(self,_t__0,_t__1,_t__2):
    return self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2ZZ(__0,_1,_2)
  def _get_1sol_1cache_Emosek_4fusion_4SolutionType_2ZZ(self,_0,_1,_2):
   _3=None
   _4=_0
   if (_4==mosek.fusion.SolutionType.Default):
    _4 = self.__solutionptr
   if (_4==mosek.fusion.SolutionType.Default):
    if (self.__sol_itg is not None):
     _3 = self.__sol_itg
    elif (self.__sol_bas is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:3646:18-33
     _3 = self.__sol_bas
    else:
     _3 = self.__sol_itr
   elif (_4==mosek.fusion.SolutionType.Interior): # bld/docker-win/final/default/src/fusion/Model.mbi:3649:16-46
    _3 = self.__sol_itr
   elif (_4==mosek.fusion.SolutionType.Basic): # bld/docker-win/final/default/src/fusion/Model.mbi:3650:16-43
    _3 = self.__sol_bas
   elif (_4==mosek.fusion.SolutionType.Integer): # bld/docker-win/final/default/src/fusion/Model.mbi:3651:16-45
    _3 = self.__sol_itg
   if (_3 is None):
    raise mosek_fusion_SolutionError._ctor_S("Solution not available")
   else:
    if (_2 or ((_1 and _3.isPrimalAcceptable(self.__acceptable_sol)) or ((not _1) and _3.isDualAcceptable(self.__acceptable_sol)))):
     return (_3)
    elif ((_3 is self.__sol_itg) and (not _1)): # bld/docker-win/final/default/src/fusion/Model.mbi:3665:18-49
     raise mosek_fusion_SolutionError._ctor_S("Dual solution does not exists for mixed-integer problems.")
    else:
     _5=mosek.fusion.Utils.StringBuffer()
     _6=(_3.pstatus)
     _7=(_3.probstatus)
     if (not _1):
      _6 = (_3.dstatus)
     _5._a_S("Solution status is ")
     if (_6==mosek.fusion.SolutionStatus.Undefined):
      _5._a_S("Undefined")
     elif (_6==mosek.fusion.SolutionStatus.Unknown): # bld/docker-win/final/default/src/fusion/Model.mbi:3676:20-52
      _5._a_S("Unknown")
     elif (_6==mosek.fusion.SolutionStatus.Optimal): # bld/docker-win/final/default/src/fusion/Model.mbi:3677:20-52
      _5._a_S("Optimal")
     elif (_6==mosek.fusion.SolutionStatus.Feasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3678:20-53
      _5._a_S("Feasible")
     elif (_6==mosek.fusion.SolutionStatus.Certificate): # bld/docker-win/final/default/src/fusion/Model.mbi:3679:20-56
      _5._a_S("Certificate")
     elif (_6==mosek.fusion.SolutionStatus.IllposedCert): # bld/docker-win/final/default/src/fusion/Model.mbi:3680:20-57
      _5._a_S("IllposedCert")
     _5._a_S(" but ")
     if (self.__acceptable_sol==mosek.fusion.AccSolutionStatus.Anything):
      _5._a_S("Anything")
     elif (self.__acceptable_sol==mosek.fusion.AccSolutionStatus.Optimal): # bld/docker-win/final/default/src/fusion/Model.mbi:3683:20-63
      _5._a_S("Optimal")
     elif (self.__acceptable_sol==mosek.fusion.AccSolutionStatus.Feasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3684:20-64
      _5._a_S("at least Feasible")
     elif (self.__acceptable_sol==mosek.fusion.AccSolutionStatus.Certificate): # bld/docker-win/final/default/src/fusion/Model.mbi:3685:20-67
      _5._a_S("Certificate")
     _5._a_S(" is expected. Reason: Accessing ")
     if (_3 is self.__sol_itr):
      _5._a_S("interior-point solution")
     elif (_3 is self.__sol_bas): # bld/docker-win/final/default/src/fusion/Model.mbi:3688:20-34
      _5._a_S("basic solution")
     elif (_3 is self.__sol_itg): # bld/docker-win/final/default/src/fusion/Model.mbi:3689:20-34
      _5._a_S("integer solution")
     _5._a_S(" whose problem status is ")
     if (_7==mosek.fusion.ProblemStatus.Unknown):
      _5._a_S("Unknown")
     elif (_7==mosek.fusion.ProblemStatus.PrimalAndDualFeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3692:20-66
      _5._a_S("PrimalAndDualFeasible")
     elif (_7==mosek.fusion.ProblemStatus.PrimalFeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3693:20-59
      _5._a_S("PrimalFeasible")
     elif (_7==mosek.fusion.ProblemStatus.DualFeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3694:20-57
      _5._a_S("DualFeasible")
     elif (_7==mosek.fusion.ProblemStatus.PrimalInfeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3695:20-61
      _5._a_S("PrimalInfeasible")
     elif (_7==mosek.fusion.ProblemStatus.DualInfeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3696:20-59
      _5._a_S("DualInfeasible")
     elif (_7==mosek.fusion.ProblemStatus.PrimalAndDualInfeasible): # bld/docker-win/final/default/src/fusion/Model.mbi:3697:20-68
      _5._a_S("PrimalAndDualInfeasible")
     elif (_7==mosek.fusion.ProblemStatus.IllPosed): # bld/docker-win/final/default/src/fusion/Model.mbi:3698:20-53
      _5._a_S("IllPosed")
     elif (_7==mosek.fusion.ProblemStatus.PrimalInfeasibleOrUnbounded): # bld/docker-win/final/default/src/fusion/Model.mbi:3699:20-72
      _5._a_S("PrimalInfeasibleOrUnbounded")
     _5._a_S(".")
     raise mosek_fusion_SolutionError._ctor_S(_5._toString_())
  def _get_1sol_1cache_alt_Emosek_4fusion_4SolutionType_2Z(self,_t__0,_t__1):
    return self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(__0,_1)
  def _get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(self,_0,_1):
   return (self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2ZZ(_0,_1,False))
  def _setSolution_1xx_alt__3I_3D(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setSolution_1xx__3I_3D(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setSolution_1xx__3I_3D(self,_0,_1):
   self._ensure_1initsol_1xx_()
   for _2 in range(0,int((_0).shape[0])):
    self.__initsol_xx[_0[_2]] = _1[_2]
    self.__initsol_xx_flag[_0[_2]] = True
  def _ensure_1initsol_1xx_alt_(self,):
    return self._ensure_1initsol_1xx_()
  def _ensure_1initsol_1xx_(self,):
   _0=self._task_1numvar_()
   if (self.__initsol_xx is None):
    self.__initsol_xx = numpy.zeros((_0,), dtype=numpy.dtype(numpy.float64))
    self.__initsol_xx_flag = numpy.array([False for _1 in range(0,_0)], dtype=numpy.dtype(bool))
   elif (int((self.__initsol_xx).shape[0]) < _0): # bld/docker-win/final/default/src/fusion/Model.mbi:3601:16-47
    _2=self.__initsol_xx
    _3=self.__initsol_xx_flag
    self.__initsol_xx = numpy.zeros((_0,), dtype=numpy.dtype(numpy.float64))
    self.__initsol_xx_flag = numpy.zeros((_0,), dtype=numpy.dtype(bool))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_2,0,self.__initsol_xx,0,int((_2).shape[0]))
    for _4 in range(0,int((_2).shape[0])):
     self.__initsol_xx_flag[_4] = _3[_4]
  def _getSolution_1accptr_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1accptr_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1accptr_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2ZZ(_0,True,True).accptr))
  def _getSolution_1accy_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1accy_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1accy_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).accy))
  def _getSolution_1accx_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1accx_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1accx_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,True).accx))
  def _getSolution_1bars_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1bars_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1bars_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).bars))
  def _getSolution_1barx_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1barx_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1barx_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,True).barx))
  def _getSolution_1y_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1y_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1y_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).y))
  def _getSolution_1xc_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1xc_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1xc_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,True).xc))
  def _getSolution_1suc_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1suc_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1suc_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).suc))
  def _getSolution_1slc_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1slc_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1slc_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).slc))
  def _getSolution_1sux_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1sux_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1sux_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).sux))
  def _getSolution_1slx_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1slx_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1slx_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).slx))
  def _getSolution_1yx_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1yx_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1yx_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,False).yx))
  def _getSolution_1xx_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getSolution_1xx_Emosek_4fusion_4SolutionType_2(__0)
  def _getSolution_1xx_Emosek_4fusion_4SolutionType_2(self,_0):
   return ((self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2Z(_0,True).xx))
  @staticmethod
  def _match_selectedSolution_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4SolutionType_2__(_0))
  @staticmethod
  def _match_alt_selectedSolution_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4SolutionType_2__(_0))
  def _selectedSolution_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._selectedSolution_Emosek_4fusion_4SolutionType_2(__0)
  def _selectedSolution_Emosek_4fusion_4SolutionType_2(self,_0):
   self.__solutionptr = _0
  @staticmethod
  def _match_getAcceptedSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getAcceptedSolutionStatus_(*args):
    if len(args) != 0: return False
    return True
  def _getAcceptedSolutionStatus_alt_(self,):
    return self._getAcceptedSolutionStatus_()
  def _getAcceptedSolutionStatus_(self,):
   return (self.__acceptable_sol)
  @staticmethod
  def _match_acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  @staticmethod
  def _match_alt_acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  def _acceptedSolutionStatus_alt_Emosek_4fusion_4AccSolutionStatus_2(self,_t__0):
    return self._acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(__0)
  def _acceptedSolutionStatus_Emosek_4fusion_4AccSolutionStatus_2(self,_0):
   self.__acceptable_sol = _0
  @staticmethod
  def _match_getProblemStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4SolutionType_2__(_0))
  @staticmethod
  def _match_alt_getProblemStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4SolutionType_2__(_0))
  def _getProblemStatus_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getProblemStatus_Emosek_4fusion_4SolutionType_2(__0)
  def _getProblemStatus_Emosek_4fusion_4SolutionType_2(self,_0):
   _1=None
   if (_0==mosek.fusion.SolutionType.Default):
    if (self.__sol_itg is not None):
     _1 = self.__sol_itg
    elif (self.__sol_bas is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:3472:18-33
     _1 = self.__sol_bas
    else:
     _1 = self.__sol_itr
   elif (_0==mosek.fusion.SolutionType.Interior): # bld/docker-win/final/default/src/fusion/Model.mbi:3475:16-46
    _1 = self.__sol_itr
   elif (_0==mosek.fusion.SolutionType.Basic): # bld/docker-win/final/default/src/fusion/Model.mbi:3476:16-43
    _1 = self.__sol_bas
   elif (_0==mosek.fusion.SolutionType.Integer): # bld/docker-win/final/default/src/fusion/Model.mbi:3477:16-45
    _1 = self.__sol_itg
   if (_1 is None):
    return (mosek.fusion.ProblemStatus.Unknown)
   else:
    return ((_1.probstatus))
  @staticmethod
  def _match_getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4SolutionType_2__(_0))
  @staticmethod
  def _match_alt_getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4SolutionType_2__(_0))
  def _getDualSolutionStatus_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(__0)
  def _getDualSolutionStatus_Emosek_4fusion_4SolutionType_2(self,_0):
   return (self._getSolutionStatus_Emosek_4fusion_4SolutionType_2Z(_0,False))
  @staticmethod
  def _match_getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4SolutionType_2__(_0))
  @staticmethod
  def _match_alt_getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4SolutionType_2__(_0))
  def _getPrimalSolutionStatus_alt_Emosek_4fusion_4SolutionType_2(self,_t__0):
    return self._getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(__0)
  def _getPrimalSolutionStatus_Emosek_4fusion_4SolutionType_2(self,_0):
   return (self._getSolutionStatus_Emosek_4fusion_4SolutionType_2Z(_0,True))
  def _getSolutionStatus_alt_Emosek_4fusion_4SolutionType_2Z(self,_t__0,_t__1):
    return self._getSolutionStatus_Emosek_4fusion_4SolutionType_2Z(__0,_1)
  def _getSolutionStatus_Emosek_4fusion_4SolutionType_2Z(self,_0,_1):
   try:
    _2=self._get_1sol_1cache_Emosek_4fusion_4SolutionType_2ZZ(_0,_1,True)
    if _1:
     return ((_2.pstatus))
    else:
     return ((_2.dstatus))
   except mosek_fusion_SolutionError as _3:
    return (mosek.fusion.SolutionStatus.Undefined)
  def _update_alt__3ILmosek_4fusion_4Expression_2(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _1_res = self._update__3ILmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _update__3ILmosek_4fusion_4Expression_2(self,_0,_1):
   mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_1))).eval(self.__ws,self.__rs,self.__xs)
   self.__ws.pop_expr()
   _2=(self.__ws.nd)
   _3=(self.__ws.shape_base)
   _4=(self.__ws.nelem)
   _5=(self.__ws.nnz)
   _6=(self.__ws.hassp)
   _7=(self.__ws.ncodeatom)
   _8=(self.__ws.ptr_base)
   _9=(self.__ws.sp_base)
   _10=(self.__ws.nidxs_base)
   _11=(self.__ws.cof_base)
   _12=(self.__ws.code_base)
   _13=(self.__ws.codeptr_base)
   _14=(self.__ws.cconst_base)
   _15=(self.__ws.i32)
   _16=(self.__ws.i64)
   _17=(self.__ws.f64)
   _18=0
   for _19 in range(0,_4):
    if (_0[_19] >= 0):
     _18 += 1
   _20=(_4 - _18)
   if (_18==_4):
    self.__putarows__3ILmosek_4fusion_4WorkStack_2IIIII(_0,self.__ws,_4,_5,_8,_10,_11)
    if (_7 > 0):
     self.__con_blocks.replace_row_code(self.__rs,_0,_8,_10,_13,_12,_14)
    else:
     self.__con_blocks.clear_row_code(_0)
   elif (_20==_4): # bld/docker-win/final/default/src/fusion/Model.mbi:3330:16-35
    self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(numpy.array([(- (1 + _0[_21])) for _21 in range(0,_4)], dtype=numpy.dtype(numpy.int32)),0,self.__ws,_4,_5,_8,_10,_11)
    if (_7 > 0):
     self.__afe_blocks.replace_row_code(self.__rs,numpy.array([(- (1 + _0[_22])) for _22 in range(0,_4)], dtype=numpy.dtype(numpy.int32)),_8,_10,_13,_12,_14)
    else:
     self.__afe_blocks.clear_row_code(numpy.array([(- (1 + _0[_23])) for _23 in range(0,_4)], dtype=numpy.dtype(numpy.int32)))
   else:
    _24=0
    _25=0
    _26=0
    _27=0
    for _28 in range(0,_4):
     if (_0[_28] >= 0):
      _27 += (_15[((_8 + _28) + 1)] - _15[(_8 + _28)])
     else:
      _26 += (_15[((_8 + _28) + 1)] - _15[(_8 + _28)])
    _29=self.__xs.alloci32(_18)
    _30=self.__xs.alloci32(_20)
    _31=self.__xs.alloci32((_18 + 1))
    _32=self.__xs.alloci32((_20 + 1))
    _33=self.__xs.alloci64(_27)
    _34=self.__xs.alloci64(_26)
    _35=self.__xs.allocf64(_27)
    _36=self.__xs.allocf64(_26)
    _37=(self.__xs.f64)
    _38=(self.__xs.i64)
    _39=(self.__xs.i32)
    _39[_31] = 0
    _39[_32] = 0
    _40=0
    _41=0
    _42=0
    _43=0
    for _44 in range(0,_4):
     _45=_15[(_8 + _44)]
     _46=_15[((_8 + _44) + 1)]
     if (_0[_44] >= 0):
      mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_16,(_10 + _45),_38,(_33 + _43),(_46 - _45))
      mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_17,(_11 + _45),_37,(_35 + _43),(_46 - _45))
      _43 += (_46 - _45)
      _39[(_29 + _41)] = _0[_44]
      _39[((_31 + _41) + 1)] = _43
      _41 += 1
     else:
      mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_16,(_10 + _45),_38,(_34 + _42),(_46 - _45))
      mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_17,(_11 + _45),_37,(_36 + _42),(_46 - _45))
      _42 += (_46 - _45)
      _39[(_30 + _40)] = (- (1 + _0[_44]))
      _39[((_32 + _40) + 1)] = _42
      _40 += 1
    self.__putarows__3ILmosek_4fusion_4WorkStack_2IIIII(numpy.array([_39[(_29 + _47)] for _47 in range(0,_18)], dtype=numpy.dtype(numpy.int32)),self.__xs,_18,_27,_31,_33,_35)
    self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(_39,_30,self.__xs,_20,_26,_32,_34,_36)
    if (_7 > 0):
     for _48 in range(0,_4):
      if (_0[_48] >= 0):
       _25 += (_15[(_13 + _15[((_8 + _48) + 1)])] - _15[(_13 + _15[(_8 + _48)])])
      else:
       _24 += (_15[(_13 + _15[((_8 + _48) + 1)])] - _15[(_13 + _15[(_8 + _48)])])
     _49=self.__xs.alloci32((_27 + 1))
     _50=self.__xs.alloci32((_26 + 1))
     _51=self.__xs.alloci32(_25)
     _52=self.__xs.alloci32(_24)
     _53=self.__xs.allocf64(_25)
     _54=self.__xs.allocf64(_24)
     _39[_49] = 0
     _39[_50] = 0
     _55=0
     _56=0
     _57=0
     _58=0
     for _59 in range(0,_4):
      _60=_15[(_8 + _59)]
      _61=_15[((_8 + _59) + 1)]
      if (_0[_59] >= 0):
       mosek.fusion.Utils.Tools._arraycopy__3II_3III(_15,(_12 + _15[(_13 + _60)]),_39,(_51 + _56),(_15[(_13 + _61)] - _15[(_13 + _60)]))
       mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_17,(_14 + _15[(_13 + _60)]),_37,(_53 + _56),(_15[(_13 + _61)] - _15[(_13 + _60)]))
       for _62 in range(_60,_61):
        _56 += (_15[((_13 + _62) + 1)] - _15[(_13 + _62)])
        _39[((_49 + _58) + 1)] = _56
        _58 += 1
      else:
       mosek.fusion.Utils.Tools._arraycopy__3II_3III(_15,(_12 + _15[(_13 + _60)]),_39,(_52 + _55),(_15[(_13 + _61)] - _15[(_13 + _60)]))
       mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_17,(_14 + _15[(_13 + _60)]),_37,(_54 + _55),(_15[(_13 + _61)] - _15[(_13 + _60)]))
       for _63 in range(_60,_61):
        _55 += (_15[((_13 + _63) + 1)] - _15[(_13 + _63)])
        _39[((_50 + _42) + 1)] = _55
        _42 += 1
     self.__con_blocks.replace_row_code(self.__xs,numpy.array([_39[(_29 + _64)] for _64 in range(0,_18)], dtype=numpy.dtype(numpy.int32)),_31,_33,_49,_51,_53)
     self.__afe_blocks.replace_row_code(self.__xs,numpy.array([numpy.int32(_38[(_30 + _65)]) for _65 in range(0,_20)], dtype=numpy.dtype(numpy.int32)),_32,_34,_50,_52,_54)
    else:
     self.__con_blocks.clear_row_code(numpy.array([_39[(_29 + _66)] for _66 in range(0,_18)], dtype=numpy.dtype(numpy.int32)))
     self.__afe_blocks.clear_row_code(numpy.array([numpy.int32(_38[(_30 + _67)]) for _67 in range(0,_20)], dtype=numpy.dtype(numpy.int32)))
   self.__xs.clear()
  def _update_alt__3ILmosek_4fusion_4Expression_2_3I(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = self._update__3ILmosek_4fusion_4Expression_2_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _update__3ILmosek_4fusion_4Expression_2_3I(self,_0,_1,_2):
   for _3 in range(0,int((_0).shape[0])):
    if ((_0[_3] >= 0) and self.__con_blocks.row_is_parameterized(_3)):
     raise mosek_fusion_UpdateError._ctor_S("Cannot update parameterized constraint")
    elif ((_0[_3] < 0) and self.__con_blocks.row_is_parameterized((- (_3 + 1)))): # bld/docker-win/final/default/src/fusion/Model.mbi:3087:18-77
     raise mosek_fusion_UpdateError._ctor_S("Cannot update parameterized constraint")
   mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_1)).eval(self.__ws,self.__rs,self.__xs)
   self.__ws.pop_expr()
   _4=(self.__ws.nd)
   _5=(self.__ws.nelem)
   _6=(self.__ws.nnz)
   _7=(self.__ws.hassp)
   _8=(self.__ws.ncodeatom)
   _9=(self.__ws.shape_base)
   _10=(self.__ws.ptr_base)
   _11=(self.__ws.sp_base)
   _12=(self.__ws.nidxs_base)
   _13=(self.__ws.cof_base)
   _14=(self.__ws.code_base)
   _15=(self.__ws.codeptr_base)
   _16=(self.__ws.cconst_base)
   _17=(self.__ws.i32)
   _18=(self.__ws.i64)
   _19=(self.__ws.f64)
   _20=0
   for _21 in range(0,_5):
    if (_0[_21] >= 0):
     _20 += 1
   _22=(_5 - _20)
   if ((_20==_5) or (_22==_5)):
    _23=(int((_0).shape[0]) * int((_2).shape[0]))
    _24=numpy.zeros((_23,), dtype=numpy.dtype(numpy.float64))
    _25=0
    for _26 in range(0,_5):
     _27=_17[(_10 + _26)]
     _28=_17[((_10 + _26) + 1)]
     _29=_27
     _30=0
     while ((_30 < int((_2).shape[0])) and (_29 < _28)):
      if (_2[_30] < _18[(_12 + _29)]):
       _30 += 1
      elif (_2[_30] > _18[(_12 + _29)]): # bld/docker-win/final/default/src/fusion/Model.mbi:3128:22-53
       _29 += 1
      else:
       _24[(_25 + _30)] = _19[(_13 + _29)]
       _30 += 1
       _29 += 1
     _25 += int((_2).shape[0])
    _31=numpy.array([_2[_33] for _32 in range(0,_5) for _33 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.int32))
    if (_20==_5):
     _34=numpy.array([_0[_35] for _35 in range(0,_5) for _36 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.int32))
     self._task_1putaijlist__3I_3I_3DJ(_34,_31,_24,_25)
     if (_8 > 0):
      self.__con_blocks.replace_row_code(self.__rs,_0,_10,_12,_15,_14,_16)
    else:
     _37=numpy.array([(- (_0[_38] + 1)) for _38 in range(0,_5) for _39 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.int32))
     self._task_1putafefijlist__3I_3I_3D(_37,_31,_24)
     if (_8 > 0):
      self.__afe_blocks.replace_row_code(self.__rs,numpy.array([(- (1 + _0[_40])) for _40 in range(0,_5)], dtype=numpy.dtype(numpy.int32)),_10,_12,_15,_14,_16)
   else:
    _41=(_22 * int((_2).shape[0]))
    _42=(_20 * int((_2).shape[0]))
    _43=numpy.zeros((_42,), dtype=numpy.dtype(numpy.float64))
    _44=numpy.zeros((_41,), dtype=numpy.dtype(numpy.float64))
    _45=numpy.array([_2[_47] for _46 in range(0,_20) for _47 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.int32))
    _48=numpy.array([_2[_50] for _49 in range(0,_22) for _50 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.int32))
    _51=numpy.zeros((_20,), dtype=numpy.dtype(numpy.int32))
    _52=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
    _53=0
    _54=0
    _55=0
    _56=0
    _57=0
    _58=0
    for _59 in range(0,_5):
     _60=_17[(_10 + _59)]
     _61=_17[((_10 + _59) + 1)]
     _62=_60
     _63=0
     if (_0[_59] >= 0):
      while ((_63 < int((_2).shape[0])) and (_62 < _61)):
       if (_2[_63] < _18[(_12 + _62)]):
        _63 += 1
       elif (_2[_63] > _18[(_12 + _62)]): # bld/docker-win/final/default/src/fusion/Model.mbi:3170:24-55
        _62 += 1
       else:
        _43[(_58 + _63)] = _19[(_13 + _62)]
        _63 += 1
        _62 += 1
      for _64 in range(0,int((_2).shape[0])):
       _51[(_58 + _64)] = _0[_59]
      _58 += int((_2).shape[0])
     else:
      while ((_63 < int((_2).shape[0])) and (_62 < _61)):
       if (_2[_63] < _18[(_12 + _62)]):
        _63 += 1
       elif (_2[_63] > _18[(_12 + _62)]): # bld/docker-win/final/default/src/fusion/Model.mbi:3182:24-55
        _62 += 1
       else:
        _44[(_57 + _63)] = _19[(_13 + _62)]
        _63 += 1
        _62 += 1
      for _65 in range(0,int((_2).shape[0])):
       _52[(_57 + _65)] = (- (1 + _0[_59]))
      _57 += int((_2).shape[0])
    self._task_1putaijlist__3I_3I_3DJ(_51,_45,_43,_58)
    self._task_1putafefijlist__3I_3I_3D(_52,_48,_44)
    if (_8 > 0):
     for _66 in range(0,_5):
      if (_0[_66] >= 0):
       _58 += (_17[((_10 + _66) + 1)] - _17[(_10 + _66)])
      else:
       _57 += (_17[((_10 + _66) + 1)] - _17[(_10 + _66)])
     _67=numpy.zeros((_20,), dtype=numpy.dtype(numpy.int32))
     _68=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
     _69=self.__xs.alloci32((_20 + 1))
     _70=self.__xs.alloci32((_22 + 1))
     _71=self.__xs.alloci64(_58)
     _72=self.__xs.alloci64(_57)
     _73=(self.__xs.f64)
     _74=(self.__xs.i64)
     _75=(self.__xs.i32)
     _75[_69] = 0
     _75[_70] = 0
     _76=0
     _77=0
     _78=0
     _79=0
     for _80 in range(0,_5):
      _81=_17[(_10 + _80)]
      _82=_17[((_10 + _80) + 1)]
      if (_0[_80] >= 0):
       _79 += (_82 - _81)
       _67[_77] = _0[_80]
       _75[((_69 + _77) + 1)] = _79
       _77 += 1
      else:
       _78 += (_82 - _81)
       _68[_76] = (- (1 + _0[_80]))
       _75[((_70 + _76) + 1)] = _78
       _76 += 1
     for _83 in range(0,_5):
      if (_0[_83] >= 0):
       _56 += (_17[(_15 + _17[((_10 + _83) + 1)])] - _17[(_15 + _17[(_10 + _83)])])
      else:
       _55 += (_17[(_15 + _17[((_10 + _83) + 1)])] - _17[(_15 + _17[(_10 + _83)])])
     _84=self.__xs.alloci32((_58 + 1))
     _85=self.__xs.alloci32((_57 + 1))
     _86=self.__xs.alloci32(_56)
     _87=self.__xs.alloci32(_55)
     _88=self.__xs.allocf64(_56)
     _89=self.__xs.allocf64(_55)
     _75[_84] = 0
     _75[_85] = 0
     _90=0
     _91=0
     _92=0
     _93=0
     for _94 in range(0,_5):
      _95=_17[(_10 + _94)]
      _96=_17[((_10 + _94) + 1)]
      if (_0[_94] >= 0):
       mosek.fusion.Utils.Tools._arraycopy__3II_3III(_17,(_14 + _17[(_15 + _95)]),_75,(_86 + _91),(_17[(_15 + _96)] - _17[(_15 + _95)]))
       mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_19,(_16 + _17[(_15 + _95)]),_73,(_88 + _91),(_17[(_15 + _96)] - _17[(_15 + _95)]))
       for _97 in range(_95,_96):
        _91 += (_17[((_15 + _97) + 1)] - _17[(_15 + _97)])
        _75[((_84 + _93) + 1)] = _91
        _93 += 1
      else:
       mosek.fusion.Utils.Tools._arraycopy__3II_3III(_17,(_14 + _17[(_15 + _95)]),_75,(_87 + _90),(_17[(_15 + _96)] - _17[(_15 + _95)]))
       mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_19,(_16 + _17[(_15 + _95)]),_73,(_89 + _90),(_17[(_15 + _96)] - _17[(_15 + _95)]))
       for _98 in range(_95,_96):
        _90 += (_17[((_15 + _98) + 1)] - _17[(_15 + _98)])
        _75[((_85 + _78) + 1)] = _90
        _78 += 1
     self.__con_blocks.replace_row_code(self.__xs,_67,_69,_71,_84,_86,_88)
     self.__afe_blocks.replace_row_code(self.__xs,_68,_70,_72,_85,_87,_89)
    else:
     _99=numpy.zeros((_20,), dtype=numpy.dtype(numpy.int32))
     _100=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
     _101=0
     _102=0
     for _103 in range(0,_5):
      if (_0[_103] >= 0):
       _99[_102] = _0[_103]
       _102 += 1
      else:
       _100[_101] = (- (1 + _0[_103]))
       _101 += 1
     self.__con_blocks.clear_row_code(_99)
     self.__afe_blocks.clear_row_code(_100)
   self.__xs.clear()
  @staticmethod
  def _match_updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  def _updateObjective_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(self,_t__0,_t__1):
    return self._updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(_0,_1)
  def _updateObjective_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(self,_0,_1):
   if (_0.getSize()!=1):
    raise mosek_fusion_DimensionError._ctor_S("Invalid expression size for objective")
   if ((self.__obj_blocks.code_used) > 0):
    raise mosek_fusion_UpdateError._ctor_S("Cannot update parameterized constraint")
   _2=_1.numInst()
   _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
   if (_2 < _1.getSize()):
    _4=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    _1.inst(0,_4,0,_3)
   else:
    _1.inst(0,_3)
   for _5 in range(0,_2):
    if (_3[_5] < 0):
     raise mosek_fusion_UpdateError._ctor_S("Updating semidefinite terms is currently not possible")
   _6=True
   for _7 in range(0,(_2 - 1)):
    _6 = (_6 and (_3[_7] < _3[(_7 - 1)]))
   _8=None
   if _6:
    _8 = numpy.array([numpy.int32(_3[_9]) for _9 in range(0,_2)], dtype=numpy.dtype(numpy.int32))
   else:
    _10=numpy.array([_11 for _11 in range((- 1),_2)], dtype=numpy.dtype(numpy.int64))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_10,_3,None,0,_2)
    _8 = numpy.array([numpy.int32(_3[_10[_12]]) for _12 in range(0,_2)], dtype=numpy.dtype(numpy.int32))
   _13=int((_8).shape[0])
   _14=numpy.zeros((_13,), dtype=numpy.dtype(numpy.float64))
   _15=_8
   mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_0)).eval(self.__ws,self.__rs,self.__xs)
   self.__ws.pop_expr()
   pass
   _16=(self.__ws.nd)
   _17=(self.__ws.nelem)
   _18=(self.__ws.nnz)
   _19=(self.__ws.hassp)
   _20=(self.__ws.ncodeatom)
   _21=(self.__ws.shape_base)
   _22=(self.__ws.ptr_base)
   _23=(self.__ws.sp_base)
   _24=(self.__ws.nidxs_base)
   _25=(self.__ws.cof_base)
   _26=(self.__ws.code_base)
   _27=(self.__ws.codeptr_base)
   _28=(self.__ws.cconst_base)
   pass
   if (_20 > 0):
    raise mosek_fusion_UpdateError._ctor_S("Cannot update parameterized objective")
   _29=(self.__ws.i32)
   _30=(self.__ws.i64)
   _31=(self.__ws.f64)
   _32=0
   for _33 in range(0,_17):
    _34=_29[(_22 + _33)]
    _35=_29[((_22 + _33) + 1)]
    _36=_34
    _37=0
    while ((_37 < int((_8).shape[0])) and (_36 < _35)):
     if (_8[_37] < _30[(_24 + _36)]):
      _37 += 1
     elif (_8[_37] > _30[(_24 + _36)]): # bld/docker-win/final/default/src/fusion/Model.mbi:3064:20-51
      _36 += 1
     else:
      _14[(_32 + _37)] = _31[(_25 + _36)]
      _37 += 1
      _36 += 1
    _32 += int((_8).shape[0])
   self._task_1putclist__3I_3D(_15,_14)
   if (_20 > 0):
    self.__obj_blocks.replace_row_code(self.__rs,numpy.array([0], dtype=numpy.dtype(numpy.int32)),_22,_24,_27,_26,_28)
  def __parameter_1unchecked_alt_S_3I_3J(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = self.__parameter_1unchecked_S_3I_3J(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __parameter_1unchecked_S_3I_3J(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self.__par_map._hasItem_S(_0)):
    raise mosek_fusion_NameError._ctor_S("Duplicate parameter name")
   _3=mosek.fusion.Set._size__3I(_1)
   _4=(int((_2).shape[0]) if ((_2 is not None) ) else numpy.int32(_3))
   if (self.__param_value is None):
    self.__param_value = numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   else:
    if ((self.__param_num + _4) > int((self.__param_value).shape[0])):
     _5=self.__param_value
     _6=((2 * int((_5).shape[0])) if (((2 * int((_5).shape[0])) > (int((_5).shape[0]) + _4)) ) else (int((_5).shape[0]) + _4))
     self.__param_value = numpy.zeros((_6,), dtype=numpy.dtype(numpy.float64))
     if (self.__param_num > 0):
      mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_5,0,self.__param_value,0,self.__param_num)
   _7=mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self,_1,_2,numpy.array([(self.__param_num + _8) for _8 in range(0,numpy.int32(_4))], dtype=numpy.dtype(numpy.int32)))
   self.__param_num += _4
   if (int(len(_0)) > 0):
    if ((self.__parameters is None) or (self.__numparameter==int((self.__parameters).shape[0]))):
     _9=self.__parameters
     self.__parameters = numpy.array([None for _10 in range(0,((self.__numparameter * 2) + 64))], dtype=numpy.dtype(object))
     for _11 in range(0,self.__numparameter):
      self.__parameters[_11] = _9[_11]
    self.__parameters[self.__numparameter] = _7
    self.__par_map._setItem_SI(_0,self.__numparameter)
    self.__numparameter += 1
   return (_7)
  def __parameter_1_alt_S_3I_3J(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = self.__parameter_1_S_3I_3J(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __parameter_1_S_3I_3J(self,_0,_1,_2):
   _3=True
   _4=int((_1).shape[0])
   if ((_2 is not None) and (int((_2).shape[0]) > 0)):
    _5=(_2[(int((_2).shape[0]) - 1)] < mosek.fusion.Set._size__3I(_1))
    for _6 in range(1,int((_2).shape[0])):
     _5 = (_5 and (_2[(_6 - 1)] < _2[_6]))
    if (not _5):
     raise mosek_fusion_IndexError._ctor_S("Unordered sparsity pattern")
   return (self.__parameter_1unchecked_S_3I_3J(_0,_1,_2))
  def __parameter_1_alt_S_3I_3_5I(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,ndmin=_monty.checkShape(_t__2,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self.__parameter_1_S_3I_3_5I(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __parameter_1_S_3I_3_5I(self,_0,_1,_2):
   _3=int((_2).shape[0])
   _4=int((_2).shape[1])
   if (int((_1).shape[0])!=_4):
    raise mosek_fusion_LengthError._ctor_S("Invalid sparsity")
   if (_2 is None):
    return (self.__parameter_1unchecked_S_3I_3J(_0,_1,None))
   else:
    _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
    _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
    _6[(_4 - 1)] = 1
    for _7 in range(1,_4):
     _6[((_4 - 1) - _7)] = (_6[(_4 - _7)] * _1[(_4 - _7)])
    for _8 in range(0,_3):
     _5[_8] = 0
     for _9 in range(0,_4):
      _5[_8] += (_2[_8,_9] * _6[_9])
    return (self.__parameter_1_S_3I_3J(_0,_1,_5))
  @staticmethod
  def _match_parameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_parameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _parameter_alt_S(self,_t__0):
    return self._parameter_S(_0)
  def _parameter_S(self,_0):
   _1=None
   return (self.__parameter_1_S_3I_3J(_0,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_parameter_SIII(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_parameter_SIII(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3))
  def _parameter_alt_SIII(self,_t__0,_t__1,_t__2,_t__3):
    return self._parameter_SIII(_0,numpy.int32(__1),numpy.int32(__2),numpy.int32(__3))
  def _parameter_SIII(self,_0,_1,_2,_3):
   _4=None
   return (self.__parameter_1_S_3I_3J(_0,numpy.array([_1,_2,_3], dtype=numpy.dtype(numpy.int32)),_4))
  @staticmethod
  def _match_parameter_SII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_parameter_SII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _parameter_alt_SII(self,_t__0,_t__1,_t__2):
    return self._parameter_SII(_0,numpy.int32(__1),numpy.int32(__2))
  def _parameter_SII(self,_0,_1,_2):
   _3=None
   return (self.__parameter_1_S_3I_3J(_0,numpy.array([_1,_2], dtype=numpy.dtype(numpy.int32)),_3))
  @staticmethod
  def _match_parameter_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_parameter_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1))
  def _parameter_alt_SI(self,_t__0,_t__1):
    return self._parameter_SI(_0,numpy.int32(__1))
  def _parameter_SI(self,_0,_1):
   _2=None
   return (self.__parameter_1_S_3I_3J(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_parameter_S_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_parameter_S_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1))
  def _parameter_alt_S_3I(self,_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._parameter_S_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter_S_3I(self,_0,_1):
   _2=None
   return (self.__parameter_1_S_3I_3J(_0,_1,_2))
  @staticmethod
  def _match_parameter_S_3I_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match__3J__(_2))
  @staticmethod
  def _match_alt_parameter_S_3I_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3J__(_2))
  def _parameter_alt_S_3I_3J(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = self._parameter_S_3I_3J(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter_S_3I_3J(self,_0,_1,_2):
   return (self.__parameter_1_S_3I_3J(_0,_1,_2))
  @staticmethod
  def _match_parameter_S_3I_3_5I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match__3_5I__(_2))
  @staticmethod
  def _match_alt_parameter_S_3I_3_5I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3_5I__(_2))
  def _parameter_alt_S_3I_3_5I(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,ndmin=_monty.checkShape(_t__2,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._parameter_S_3I_3_5I(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter_S_3I_3_5I(self,_0,_1,_2):
   return (self.__parameter_1_S_3I_3_5I(_0,_1,_2))
  @staticmethod
  def _match_parameter_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_parameter_(*args):
    if len(args) != 0: return False
    return True
  def _parameter_alt_(self,):
    return self._parameter_()
  def _parameter_(self,):
   _0=None
   return (self.__parameter_1_S_3I_3J("",numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),_0))
  @staticmethod
  def _match_parameter_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_parameter_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _parameter_alt_III(self,_t__0,_t__1,_t__2):
    return self._parameter_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _parameter_III(self,_0,_1,_2):
   _3=None
   return (self.__parameter_1_S_3I_3J("",numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32)),_3))
  @staticmethod
  def _match_parameter_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_parameter_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _parameter_alt_II(self,_t__0,_t__1):
    return self._parameter_II(numpy.int32(__0),numpy.int32(__1))
  def _parameter_II(self,_0,_1):
   _2=None
   return (self.__parameter_1_S_3I_3J("",numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_parameter_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_parameter_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _parameter_alt_I(self,_t__0):
    return self._parameter_I(numpy.int32(__0))
  def _parameter_I(self,_0):
   _1=None
   return (self.__parameter_1_S_3I_3J("",numpy.array([_0], dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_parameter__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_parameter__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _parameter_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._parameter__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter__3I(self,_0):
   _1=None
   return (self.__parameter_1_S_3I_3J("",_0,_1))
  @staticmethod
  def _match_parameter__3I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3J__(_1))
  @staticmethod
  def _match_alt_parameter__3I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3J__(_1))
  def _parameter_alt__3I_3J(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _1_res = self._parameter__3I_3J(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter__3I_3J(self,_0,_1):
   return (self.__parameter_1_S_3I_3J("",_0,_1))
  @staticmethod
  def _match_parameter__3I_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3_5I__(_1))
  @staticmethod
  def _match_alt_parameter__3I_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3_5I__(_1))
  def _parameter_alt__3I_3_5I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._parameter__3I_3_5I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _parameter__3I_3_5I(self,_0,_1):
   return (self.__parameter_1_S_3I_3_5I("",_0,_1))
  def __objective_1_alt_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_t__0,_t__1,_t__2):
    return self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(_0,__1,_2)
  def __objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_0,_1,_2):
   self._task_1putobjectivename_S(_0)
   _3=mosek_fusion_WorkStack._ctor_()
   _4=mosek_fusion_WorkStack._ctor_()
   _5=mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_2)))
   _5.eval(_3,_4,self.__xs)
   _3.pop_expr()
   _6=(_3.i32)
   _7=(_3.i64)
   _8=(_3.f64)
   _9=(_3.nd)
   _10=(_3.nelem)
   _11=(_3.nnz)
   _12=(_3.hassp)
   _13=(_3.ncodeatom)
   _14=(_3.ptr_base)
   _15=(_3.shape_base)
   _16=(_3.nidxs_base)
   _17=(_3.cof_base)
   _18=(_3.code_base)
   _19=(_3.codeptr_base)
   _20=(_3.cconst_base)
   _21=1
   for _22 in range(0,_9):
    _9 *= _6[(_15 + _22)]
   if (_21!=1):
    raise mosek_fusion_LengthError._ctor_S("Invalid expression size for objective")
   if (_10!=1):
    raise mosek_fusion_LengthError._ctor_S("Invalid expression for objective")
   _23=0
   _24=0
   for _25 in range(0,_11):
    if (_7[(_16 + _25)] < 0):
     _24 += 1
    elif (_7[(_16 + _25)] >= 0): # bld/docker-win/final/default/src/fusion/Model.mbi:2840:18-41
     _23 += 1
   _26=numpy.zeros((_23,), dtype=numpy.dtype(numpy.int32))
   _27=numpy.zeros((_23,), dtype=numpy.dtype(numpy.float64))
   _28=0
   for _29 in range(0,_11):
    if (_7[(_16 + _29)] >= 0):
     _26[_28] = numpy.int32(_7[(_16 + _29)])
     _27[_28] = _8[(_17 + _29)]
     _28 += 1
   self._task_1putobjective_Z_3I_3DD((_1==mosek.fusion.ObjectiveSense.Maximize),_26,_27,0.0)
   if (_24 > 0):
    _30=numpy.zeros((_24,), dtype=numpy.dtype(numpy.int32))
    _31=numpy.zeros((_24,), dtype=numpy.dtype(numpy.int32))
    _32=numpy.zeros((_24,), dtype=numpy.dtype(numpy.int32))
    _33=numpy.zeros((_24,), dtype=numpy.dtype(numpy.float64))
    for _34 in range(0,_24):
     _35=(- (_7[(_16 + _34)] + 1))
     _30[_34] = self.__barvar_block_elm_barj[_35]
     _31[_34] = self.__barvar_block_elm_i[_35]
     _32[_34] = self.__barvar_block_elm_j[_35]
     _33[_34] = (_8[(_17 + _34)] if ((_31[_34]==_32[_34]) ) else (0.5 * _8[(_17 + _34)]))
    self._task_1putbarc__3I_3I_3I_3D(_30,_31,_32,_33)
   if (_13 > 0):
    self.__obj_blocks.replace_row_code(_3,numpy.array([0], dtype=numpy.dtype(numpy.int32)),_14,_16,_19,_18,_20)
  @staticmethod
  def _match_objective_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_objective_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  def _objective_alt_D(self,_t__0):
    return self._objective_D(numpy.float64(__0))
  def _objective_D(self,_0):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2("",mosek.fusion.ObjectiveSense.Minimize,mosek.fusion.Expr._constTerm_D(_0))
  @staticmethod
  def _match_objective_Emosek_4fusion_4ObjectiveSense_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Emosek_4fusion_4ObjectiveSense_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_objective_Emosek_4fusion_4ObjectiveSense_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Emosek_4fusion_4ObjectiveSense_2__(_0) and __arg_alt_match_D__(_1))
  def _objective_alt_Emosek_4fusion_4ObjectiveSense_2D(self,_t__0,_t__1):
    return self._objective_Emosek_4fusion_4ObjectiveSense_2D(__0,numpy.float64(__1))
  def _objective_Emosek_4fusion_4ObjectiveSense_2D(self,_0,_1):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2("",_0,mosek.fusion.Expr._constTerm_D(_1))
  @staticmethod
  def _match_objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Emosek_4fusion_4ObjectiveSense_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Emosek_4fusion_4ObjectiveSense_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  def _objective_alt_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_t__0,_t__1):
    return self._objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(__0,_1)
  def _objective_Emosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_0,_1):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2("",_0,_1)
  @staticmethod
  def _match_objective_SD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_objective_SD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_D__(_1))
  def _objective_alt_SD(self,_t__0,_t__1):
    return self._objective_SD(_0,numpy.float64(__1))
  def _objective_SD(self,_0,_1):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(_0,mosek.fusion.ObjectiveSense.Minimize,mosek.fusion.Expr._constTerm_D(_1))
  @staticmethod
  def _match_objective_SEmosek_4fusion_4ObjectiveSense_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Emosek_4fusion_4ObjectiveSense_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_objective_SEmosek_4fusion_4ObjectiveSense_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Emosek_4fusion_4ObjectiveSense_2__(_1) and __arg_alt_match_D__(_2))
  def _objective_alt_SEmosek_4fusion_4ObjectiveSense_2D(self,_t__0,_t__1,_t__2):
    return self._objective_SEmosek_4fusion_4ObjectiveSense_2D(_0,__1,numpy.float64(__2))
  def _objective_SEmosek_4fusion_4ObjectiveSense_2D(self,_0,_1,_2):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(_0,_1,mosek.fusion.Expr._constTerm_D(_2))
  @staticmethod
  def _match_objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Emosek_4fusion_4ObjectiveSense_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Emosek_4fusion_4ObjectiveSense_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  def _objective_alt_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_t__0,_t__1,_t__2):
    return self._objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(_0,__1,_2)
  def _objective_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(self,_0,_1,_2):
   self.__objective_1_SEmosek_4fusion_4ObjectiveSense_2Lmosek_4fusion_4Expression_2(_0,_1,_2)
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(_0))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(_0))
  def _constraint_alt_Lmosek_4fusion_4ExprRangeDomain_2(self,_t__0):
    return self._constraint_Lmosek_4fusion_4ExprRangeDomain_2(_0)
  def _constraint_Lmosek_4fusion_4ExprRangeDomain_2(self,_0):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2("",(_0.expr),(_0.dom)))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4ExprRangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(_1))
  def _constraint_alt_SLmosek_4fusion_4ExprRangeDomain_2(self,_t__0,_t__1):
    return self._constraint_SLmosek_4fusion_4ExprRangeDomain_2(_0,_1)
  def _constraint_SLmosek_4fusion_4ExprRangeDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,(_1.expr),(_1.dom)))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  def _constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1):
    return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1)
  def _constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2("",_0,_1))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  def _constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1,_t__2):
    return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1,_2)
  def _constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_0,_1,_2):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1,_2))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4ExprConicDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprConicDomain_2__(_0))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4ExprConicDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprConicDomain_2__(_0))
  def _constraint_alt_Lmosek_4fusion_4ExprConicDomain_2(self,_t__0):
    return self._constraint_Lmosek_4fusion_4ExprConicDomain_2(_0)
  def _constraint_Lmosek_4fusion_4ExprConicDomain_2(self,_0):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2("",(_0.expr),(_0.dom)))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4ExprConicDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ExprConicDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4ExprConicDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ExprConicDomain_2__(_1))
  def _constraint_alt_SLmosek_4fusion_4ExprConicDomain_2(self,_t__0,_t__1):
    return self._constraint_SLmosek_4fusion_4ExprConicDomain_2(_0,_1)
  def _constraint_SLmosek_4fusion_4ExprConicDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(_0,(_1.expr),(_1.dom)))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  def _constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1):
    return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(_0,_1)
  def _constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2("",_0,_1))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  def _constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1,_t__2):
    return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(_0,_1,_2)
  def _constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_0,_1,_2):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(_0,_1,_2))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(_0))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(_0))
  def _constraint_alt_Lmosek_4fusion_4ExprLinearDomain_2(self,_t__0):
    return self._constraint_Lmosek_4fusion_4ExprLinearDomain_2(_0)
  def _constraint_Lmosek_4fusion_4ExprLinearDomain_2(self,_0):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2("",(_0.expr),(_0.dom)))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4ExprLinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(_1))
  def _constraint_alt_SLmosek_4fusion_4ExprLinearDomain_2(self,_t__0,_t__1):
    return self._constraint_SLmosek_4fusion_4ExprLinearDomain_2(_0,_1)
  def _constraint_SLmosek_4fusion_4ExprLinearDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,(_1.expr),(_1.dom)))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  def _constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1):
    return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1)
  def _constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2("",_0,_1))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  def _constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1,_t__2):
    return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1,_2)
  def _constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_0,_1,_2):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1,_2))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4ExprPSDDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ExprPSDDomain_2__(_0))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4ExprPSDDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ExprPSDDomain_2__(_0))
  def _constraint_alt_Lmosek_4fusion_4ExprPSDDomain_2(self,_t__0):
    return self._constraint_Lmosek_4fusion_4ExprPSDDomain_2(_0)
  def _constraint_Lmosek_4fusion_4ExprPSDDomain_2(self,_0):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2("",(_0.expr),(_0.dom)))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4ExprPSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ExprPSDDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4ExprPSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ExprPSDDomain_2__(_1))
  def _constraint_alt_SLmosek_4fusion_4ExprPSDDomain_2(self,_t__0,_t__1):
    return self._constraint_SLmosek_4fusion_4ExprPSDDomain_2(_0,_1)
  def _constraint_SLmosek_4fusion_4ExprPSDDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(_0,(_1.expr),(_1.dom)))
  @staticmethod
  def _match_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  @staticmethod
  def _match_alt_constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  def _constraint_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1):
    return self._constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(_0,_1)
  def _constraint_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_0,_1):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2("",_0,_1))
  @staticmethod
  def _match_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  @staticmethod
  def _match_alt_constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  def _constraint_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
    return self._constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(_0,_1,_2)
  def _constraint_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   return (self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(_0,_1,_2))
  @staticmethod
  def _match_variable_Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4PSDDomain_2__(_0))
  @staticmethod
  def _match_alt_variable_Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_0))
  def _variable_alt_Lmosek_4fusion_4PSDDomain_2(self,_t__0):
    return self._variable_Lmosek_4fusion_4PSDDomain_2(_0)
  def _variable_Lmosek_4fusion_4PSDDomain_2(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2("",(_0._shape),_0))
  @staticmethod
  def _match_variable_IILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_IILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  def _variable_alt_IILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
    return self._variable_IILmosek_4fusion_4PSDDomain_2(numpy.int32(__0),numpy.int32(__1),_2)
  def _variable_IILmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2("",numpy.array([_1,_0,_0], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_variable_ILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_ILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  def _variable_alt_ILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1):
    return self._variable_ILmosek_4fusion_4PSDDomain_2(numpy.int32(__0),_1)
  def _variable_ILmosek_4fusion_4PSDDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2("",numpy.array([_0,_0], dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_variable_SLmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_SLmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_1))
  def _variable_alt_SLmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1):
    return self._variable_SLmosek_4fusion_4PSDDomain_2(_0,_1)
  def _variable_SLmosek_4fusion_4PSDDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2(_0,None,_1))
  @staticmethod
  def _match_variable_SIILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_3))
  @staticmethod
  def _match_alt_variable_SIILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_3))
  def _variable_alt_SIILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2,_t__3):
    return self._variable_SIILmosek_4fusion_4PSDDomain_2(_0,numpy.int32(__1),numpy.int32(__2),_3)
  def _variable_SIILmosek_4fusion_4PSDDomain_2(self,_0,_1,_2,_3):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2(_0,numpy.array([_2,_1,_1], dtype=numpy.dtype(numpy.int32)),_3))
  @staticmethod
  def _match_variable_SILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_SILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  def _variable_alt_SILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
    return self._variable_SILmosek_4fusion_4PSDDomain_2(_0,numpy.int32(__1),_2)
  def _variable_SILmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2(_0,numpy.array([_1,_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_variable_S_3ILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_S_3ILmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(_2))
  def _variable_alt_S_3ILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self._variable_S_3ILmosek_4fusion_4PSDDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable_S_3ILmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2(_0,_1,_2))
  @staticmethod
  def _match_variable_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ConeDomain_2__(_0))
  @staticmethod
  def _match_alt_variable_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_0))
  def _variable_alt_Lmosek_4fusion_4ConeDomain_2(self,_t__0):
    return self._variable_Lmosek_4fusion_4ConeDomain_2(_0)
  def _variable_Lmosek_4fusion_4ConeDomain_2(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2("",None,_0))
  @staticmethod
  def _match_variable_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  @staticmethod
  def _match_alt_variable_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  def _variable_alt_Lmosek_4fusion_4RangeDomain_2(self,_t__0):
    return self._variable_Lmosek_4fusion_4RangeDomain_2(_0)
  def _variable_Lmosek_4fusion_4RangeDomain_2(self,_0):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2("",None,_0))
  @staticmethod
  def _match_variable_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  @staticmethod
  def _match_alt_variable_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  def _variable_alt_Lmosek_4fusion_4LinearDomain_2(self,_t__0):
    return self._variable_Lmosek_4fusion_4LinearDomain_2(_0)
  def _variable_Lmosek_4fusion_4LinearDomain_2(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",None,_0))
  @staticmethod
  def _match_variable__3ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable__3ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  def _variable_alt__3ILmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _1_res = self._variable__3ILmosek_4fusion_4ConeDomain_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable__3ILmosek_4fusion_4ConeDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2("",_0,_1))
  @staticmethod
  def _match_variable__3ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable__3ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  def _variable_alt__3ILmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _1_res = self._variable__3ILmosek_4fusion_4RangeDomain_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable__3ILmosek_4fusion_4RangeDomain_2(self,_0,_1):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2("",_0,_1))
  @staticmethod
  def _match_variable__3ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_variable__3ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  def _variable_alt__3ILmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _1_res = self._variable__3ILmosek_4fusion_4LinearDomain_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable__3ILmosek_4fusion_4LinearDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",_0,_1))
  @staticmethod
  def _match_variable__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_variable__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _variable_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._variable__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable__3I(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",_0,mosek.fusion.Domain._unbounded_()))
  @staticmethod
  def _match_variable_ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  def _variable_alt_ILmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1):
    return self._variable_ILmosek_4fusion_4ConeDomain_2(numpy.int32(__0),_1)
  def _variable_ILmosek_4fusion_4ConeDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2("",numpy.array([_0], dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_variable_ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  def _variable_alt_ILmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1):
    return self._variable_ILmosek_4fusion_4RangeDomain_2(numpy.int32(__0),_1)
  def _variable_ILmosek_4fusion_4RangeDomain_2(self,_0,_1):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2("",numpy.array([_0], dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_variable_ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  def _variable_alt_ILmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1):
    return self._variable_ILmosek_4fusion_4LinearDomain_2(numpy.int32(__0),_1)
  def _variable_ILmosek_4fusion_4LinearDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",numpy.array([_0], dtype=numpy.dtype(numpy.int32)),_1))
  @staticmethod
  def _match_variable_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_variable_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _variable_alt_I(self,_t__0):
    return self._variable_I(numpy.int32(__0))
  def _variable_I(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",numpy.array([_0], dtype=numpy.dtype(numpy.int32)),mosek.fusion.Domain._unbounded_()))
  @staticmethod
  def _match_variable_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_variable_(*args):
    if len(args) != 0: return False
    return True
  def _variable_alt_(self,):
    return self._variable_()
  def _variable_(self,):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2("",numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),mosek.fusion.Domain._unbounded_()))
  @staticmethod
  def _match_variable_SLmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_SLmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_1))
  def _variable_alt_SLmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1):
    return self._variable_SLmosek_4fusion_4ConeDomain_2(_0,_1)
  def _variable_SLmosek_4fusion_4ConeDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2(_0,None,_1))
  @staticmethod
  def _match_variable_SLmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_SLmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_1))
  def _variable_alt_SLmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1):
    return self._variable_SLmosek_4fusion_4RangeDomain_2(_0,_1)
  def _variable_SLmosek_4fusion_4RangeDomain_2(self,_0,_1):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2(_0,None,_1))
  @staticmethod
  def _match_variable_SLmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  @staticmethod
  def _match_alt_variable_SLmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_1))
  def _variable_alt_SLmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1):
    return self._variable_SLmosek_4fusion_4LinearDomain_2(_0,_1)
  def _variable_SLmosek_4fusion_4LinearDomain_2(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,None,_1))
  @staticmethod
  def _match_variable_S_3ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_S_3ILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  def _variable_alt_S_3ILmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self._variable_S_3ILmosek_4fusion_4ConeDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable_S_3ILmosek_4fusion_4ConeDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2(_0,_1,_2))
  @staticmethod
  def _match_variable_S_3ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_S_3ILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  def _variable_alt_S_3ILmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self._variable_S_3ILmosek_4fusion_4RangeDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable_S_3ILmosek_4fusion_4RangeDomain_2(self,_0,_1,_2):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2(_0,_1,_2))
  @staticmethod
  def _match_variable_S_3ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_S_3ILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  def _variable_alt_S_3ILmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self._variable_S_3ILmosek_4fusion_4LinearDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable_S_3ILmosek_4fusion_4LinearDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,_1,_2))
  @staticmethod
  def _match_variable_S_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_variable_S_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match__3I__(_1))
  def _variable_alt_S_3I(self,_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._variable_S_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _variable_S_3I(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,_1,mosek.fusion.Domain._unbounded_()))
  @staticmethod
  def _match_variable_SILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_SILmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_2))
  def _variable_alt_SILmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1,_t__2):
    return self._variable_SILmosek_4fusion_4ConeDomain_2(_0,numpy.int32(__1),_2)
  def _variable_SILmosek_4fusion_4ConeDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_variable_SILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_SILmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_2))
  def _variable_alt_SILmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1,_t__2):
    return self._variable_SILmosek_4fusion_4RangeDomain_2(_0,numpy.int32(__1),_2)
  def _variable_SILmosek_4fusion_4RangeDomain_2(self,_0,_1,_2):
   return (self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_variable_SILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  @staticmethod
  def _match_alt_variable_SILmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_2))
  def _variable_alt_SILmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1,_t__2):
    return self._variable_SILmosek_4fusion_4LinearDomain_2(_0,numpy.int32(__1),_2)
  def _variable_SILmosek_4fusion_4LinearDomain_2(self,_0,_1,_2):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32)),_2))
  @staticmethod
  def _match_variable_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_variable_SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_S__(_0) and __arg_alt_match_I__(_1))
  def _variable_alt_SI(self,_t__0,_t__1):
    return self._variable_SI(_0,numpy.int32(__1))
  def _variable_SI(self,_0,_1):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32)),mosek.fusion.Domain._unbounded_()))
  @staticmethod
  def _match_variable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_variable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _variable_alt_S(self,_t__0):
    return self._variable_S(_0)
  def _variable_S(self,_0):
   return (self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),mosek.fusion.Domain._unbounded_()))
  def _removeConstraintBlock_alt_I(self,_t__0):
    return self._removeConstraintBlock_I(numpy.int32(__0))
  def _removeConstraintBlock_I(self,_0):
   if (_0 >= 0):
    self.__con_1release_I(_0)
   else:
    self.__acon_1release_I((- (1 + _0)))
  def _removeVariableBlock_alt_J(self,_t__0):
    return self._removeVariableBlock_J(numpy.int64(__0))
  def _removeVariableBlock_J(self,_0):
   if (self.__con_blocks.is_parameterized() or self.__afe_blocks.is_parameterized()):
    raise mosek_fusion_DeletionError._ctor_S("Cannot remove variables in parameterized model")
   if (_0 < 0):
    raise mosek_fusion_DeletionError._ctor_S("PSD variables cannot be removed")
   else:
    _1=numpy.int32(_0)
    _2=self.__var_block_map.blocksize(_1)
    _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    self.__var_block_map.get(_1,_3,0)
    self.__var_block_map.free(_1)
    _4=self.__var_block_acc_id[_1]
    if (_4 >= 0):
     self._removeConstraintBlock_I(_4)
    self._task_1var_1putboundlist_1fr__3I(_3)
    self._task_1clearacollist__3I(_3)
  def __ranged_1variable_alt_S_3ILmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self.__ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __ranged_1variable_S_3ILmosek_4fusion_4RangeDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasVariable_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate variable name '")._a_S(_0)._a_S("'")._toString_())
   _3=_2._finalize_1and_1validate__3I(_1)
   _4=(_3._shape)
   _5=int((_4).shape[0])
   _6=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   if (_5 > 0):
    _6[(_5 - 1)] = 1
    for _7 in range(1,_5):
     _6[((_5 - _7) - 1)] = (_6[(_5 - _7)] * _4[(_5 - _7)])
   _8=1
   for _9 in range(0,int((_4).shape[0])):
    _8 *= _4[_9]
   _10=None
   _11=None
   _12=None
   _13=None
   _14=None
   _15=None
   if ((int(len(_0)) > 0) and ((_3._indexnames) is not None)):
    _16=mosek.fusion.Utils.StringBuffer()
    _17=mosek.fusion.Utils.StringBuffer()
    _18=0
    _19=0
    _20=0
    if (int(((_3._indexnames)).shape[0])!=_5):
     raise mosek_fusion_DomainError._ctor_S("Invalid index name definition")
    for _21 in range(0,int(((_3._indexnames)).shape[0])):
     if ((_3._indexnames)[_21] is not None):
      if (_4[_21]!=int(((_3._indexnames)[_21]).shape[0])):
       raise mosek_fusion_DomainError._ctor_S("Invalid index name definition")
      _20 += _4[_21]
    _11 = numpy.zeros(((_20 + 1),), dtype=numpy.dtype(numpy.int64))
    _10 = numpy.array([(- 1) for _22 in range(0,_5)], dtype=numpy.dtype(numpy.int32))
    for _23 in range(0,int(((_3._indexnames)).shape[0])):
     if ((_3._indexnames)[_23] is not None):
      _10[_23] = _18
      for _24 in range(0,_4[_23]):
       _16._a_S((_3._indexnames)[_23][_24])
       _18 += 1
       _19 += int(len((_3._indexnames)[_23][_24]))
       _11[_18] = _19
    _12 = _16
    _15 = _17
   _25=None
   _26=None
   if (_3._empty):
    _25 = numpy.zeros((0,), dtype=numpy.dtype(numpy.int64))
   elif ((_3._sparsity) is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:2507:16-36
    if (int(((_3._sparsity)).shape[1])!=_5):
     raise mosek_fusion_SparseFormatError._ctor_S("Sparsity pattern is not correct")
    _27=int(((_3._sparsity)).shape[0])
    _25 = numpy.zeros((_27,), dtype=numpy.dtype(numpy.int64))
    _28=False
    _29=(_3._sparsity)
    for _30 in range(0,_27):
     for _31 in range(0,int((_29).shape[1])):
      _28 = (_28 or ((_29[_30,_31] < 0) or (_29[_30,_31] >= _4[_31])))
     if (not _28):
      _32=0
      for _33 in range(0,int((_29).shape[1])):
       _32 += (_6[_33] * _29[_30,_33])
      _25[_30] = _32
    if _28:
     raise mosek_fusion_SparseFormatError._ctor_S("Sparsity pattern is out of bounds")
    _34=(_3._sparsity)
    _35=0
    for _36 in range(0,_5):
     if (_35 < _4[_36]):
      _35 = _4[_36]
    _37=numpy.zeros((_27,), dtype=numpy.dtype(numpy.int32))
    for _38 in range(0,_27):
     _37[_38] = _38
    _39=numpy.zeros((_27,), dtype=numpy.dtype(numpy.int32))
    _40=numpy.zeros(((_35 + 1),), dtype=numpy.dtype(numpy.int32))
    for _41 in range(0,_5):
     _42=((_5 - _41) - 1)
     for _43 in range(0,(_4[_42] + 1)):
      _40[_43] = 0
     for _44 in range(0,_27):
      _40[(_34[_44,_42] + 1)] += 1
     for _45 in range(0,_4[_42]):
      _40[(_45 + 1)] += _40[_45]
     for _46 in range(0,_27):
      _47=_37[_46]
      _39[_40[_34[_47,_42]]] = _47
      _40[_34[_47,_42]] += 1
     _48=_37
     _37 = _39
     _39 = _48
    for _49 in range(0,_27):
     _50=_37[_49]
     _51=0
     for _52 in range(0,_5):
      _51 += (_6[_52] * _34[_50,_52])
     _25[_49] = _51
   _53=(int((_25).shape[0]) if ((_25 is not None) ) else _8)
   _54=numpy.zeros((_53,), dtype=numpy.dtype(numpy.int32))
   _55=self.__linearvar_1alloc_I_3I(_53,_54)
   if (int(len(_0)) > 0):
    self.__var_map._setItem_SI(_0,_55)
    _56=mosek.fusion.Utils.StringBuffer()
    _56._a_S(_0)._a_S("[")
    if (_5 > 0):
     _56._a_S("%0")
     for _57 in range(1,_5):
      _56._a_S(",%")._a_I(_57)
    _56._a_S("]")
    if ((_3._indexnames) is not None):
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_54,_56._toString_(),_4,_25,(_3._indexnames))
    else:
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_54,_56._toString_(),_4,_25,None)
   if (_3._scalable):
    _58 = numpy.array([(_3._lb)[0] for _60 in range(0,_53)], dtype=numpy.dtype(numpy.float64))
    _59 = numpy.array([(_3._ub)[0] for _61 in range(0,_53)], dtype=numpy.dtype(numpy.float64))
   else:
    _58 = (_3._lb)
    _59 = (_3._ub)
   self._task_1var_1putboundlist_1ra__3I_3D_3D(_54,_58,_59)
   _62=mosek_fusion_RangedVariable._ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,_0,_55,_4,_25,_54)
   if (_3._cardinal_flag):
    self._task_1var_1putintlist__3I(_54)
   self.__vars[_55] = _62
   return (_62)
  def __variable_1_alt_S_3ILmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self.__variable_1_S_3ILmosek_4fusion_4ConeDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __variable_1_S_3ILmosek_4fusion_4ConeDomain_2(self,_0,_1,_2):
   _3=_2._finalize_1and_1validate__3I(_1)
   if ((int(len(_0)) > 0) and self._hasVariable_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate variable name '")._a_S(_0)._a_S("'")._toString_())
   _4=(_3._shape)
   _5=int((_4).shape[0])
   _6=_3._getAxis_()
   _7=_4[_6]
   _8=1
   _9=1
   _10=1
   for _11 in range(0,_5):
    _10 *= _4[_11]
   for _12 in range(0,_6):
    _9 *= _4[_12]
   for _13 in range((_6 + 1),_5):
    _8 *= _4[_13]
   _14=(_9 * _8)
   if ((_3._key)==mosek.fusion.QConeKey.InQCone):
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for quadratic cone")._toString_())
    _15 = self._task_1append_1domain_1quad_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.InRotatedQCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2302:16-50
    if (_7 < 3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for rotated quadratic cone")._toString_())
    _15 = self._task_1append_1domain_1rquad_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.InPExpCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2306:16-46
    if (_7!=3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for exponential cone")._toString_())
    _15 = self._task_1append_1domain_1pexp_()
   elif ((_3._key)==mosek.fusion.QConeKey.InPPowCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2310:16-46
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for power cone")._toString_())
    _15 = self._task_1append_1domain_1ppow_I_3D(_7,(_3._alpha))
   elif ((_3._key)==mosek.fusion.QConeKey.InDExpCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2314:16-46
    if (_7!=3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for dual exponential cone")._toString_())
    _15 = self._task_1append_1domain_1dexp_()
   elif ((_3._key)==mosek.fusion.QConeKey.InDPowCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2318:16-46
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for dual power cone")._toString_())
    _15 = self._task_1append_1domain_1dpow_I_3D(_7,(_3._alpha))
   elif ((_3._key)==mosek.fusion.QConeKey.InPGeoMeanCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2330:16-50
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for primal geometric mean cone")._toString_())
    _15 = self._task_1append_1domain_1pgeomean_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.InDGeoMeanCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2334:16-50
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for dual geometric mean cone")._toString_())
    _15 = self._task_1append_1domain_1dgeomean_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.Positive): # bld/docker-win/final/default/src/fusion/Model.mbi:2338:16-44
    _15 = self._task_1append_1domain_1rpos_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.InSVecPSDCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2341:16-49
    _16=numpy.int32(((mosek.fusion.Utils.Tools._sqrt_D((1 + (8 * _7))) - 1) / 2))
    if (((_16 * (_16 + 1)) // 2)!=_7):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for vector positive semidefinite cone")._toString_())
    _15 = self._task_1append_1domain_1svec_1psd_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.Negative): # bld/docker-win/final/default/src/fusion/Model.mbi:2347:16-44
    _15 = self._task_1append_1domain_1rneg_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.Unbounded): # bld/docker-win/final/default/src/fusion/Model.mbi:2349:16-45
    _15 = self._task_1append_1domain_1r_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.Zero): # bld/docker-win/final/default/src/fusion/Model.mbi:2351:16-40
    _15 = self._task_1append_1domain_1rzero_I(_7)
   elif ((_3._key)==mosek.fusion.QConeKey.InPSDCone): # bld/docker-win/final/default/src/fusion/Model.mbi:2353:16-45
    if (_7 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for positive semidefinite cone")._toString_())
    else:
     _17=numpy.int32(((mosek.fusion.Utils.Tools._sqrt_D((1 + (8 * _7))) - 1) / 2))
     if (((_17 * (_17 + 1)) // 2)!=_7):
      raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_7)._a_S(") for positive semidefinite cone")._toString_())
    _15 = self._task_1append_1domain_1svec_1psd_I(_7)
   else:
    raise mosek_fusion_UnexpectedError._ctor_S("Internal error: Invalid cone type")
   _18=numpy.zeros(((_14 * _7),), dtype=numpy.dtype(numpy.int32))
   _19=numpy.zeros((_14,), dtype=numpy.dtype(numpy.int32))
   _20=self.__conicvar_1alloc_JII_3I_3I(_15,_7,_14,_19,_18)
   self._task_1var_1putboundlist_1fr__3I(_18)
   if (_3._int_flag):
    self._task_1var_1putintlist__3I(_18)
   _21=_18
   if (_6 < (int((_4).shape[0]) - 1)):
    _21 = numpy.zeros((int((_18).shape[0]),), dtype=numpy.dtype(numpy.int32))
    _22=0
    for _23 in range(0,_9):
     for _24 in range(0,_8):
      for _25 in range(0,_7):
       _21[_22] = _18[((((_23 * _7) + _25) * _8) + _24)]
       _22 += 1
   _26=mosek_fusion_ConicVariable._ctor_Lmosek_4fusion_4Model_2SI_3I_3I(self,_0,_20,_4,_18)
   self.__vars[_20] = _26
   if (int(len(_0)) > 0):
    _27=mosek.fusion.Utils.StringBuffer()
    _27._a_S(_0)._a_S("[")
    if (_5 > 0):
     _27._a_S("%0")
     for _28 in range(1,_5):
      _27._a_S(",%")._a_I(_28)
    _27._a_S("]")
    if ((_3._indexnames) is not None):
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_21,_27._toString_(),_4,None,(_3._indexnames))
    else:
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_21,_27._toString_(),_4,None,None)
    _29=numpy.zeros((_14,), dtype=numpy.dtype(numpy.int32))
    self.__acc_block_map.get(self.__var_block_acc_id[_20],_29,0)
    _30=numpy.zeros(((int((_4).shape[0]) - 1),), dtype=numpy.dtype(numpy.int32))
    for _31 in range(0,_6):
     _30[_31] = _4[_31]
    for _32 in range((_6 + 1),_5):
     _30[(_32 - 1)] = _4[_32]
    _33=mosek.fusion.Utils.StringBuffer()
    _33._a_S(_0)._a_S("[")
    if ((_5 - 1) > 0):
     _33._a_S("%0")
     for _34 in range(1,_5):
      _33._a_S(",%")._a_I(_34)
    _33._a_S("]")
    if ((_3._indexnames) is not None):
     _35=numpy.ndarray(((_5 - 1),), dtype=numpy.dtype(object))
     for _36 in range(0,_6):
      _35[_36] = (_3._indexnames)[_36]
     for _37 in range((_6 + 1),_5):
      _35[(_37 - 1)] = (_3._indexnames)[_37]
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([numpy.int64(_29[_38]) for _38 in range(0,_14)], dtype=numpy.dtype(numpy.int64)),_33._toString_(),_30,_35)
    else:
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([numpy.int64(_29[_39]) for _39 in range(0,_14)], dtype=numpy.dtype(numpy.int64)),_33._toString_(),_30,None)
    self.__var_map._setItem_SI(_0,_20)
   return (_26)
  def __variable_1_alt_S_3ILmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self.__variable_1_S_3ILmosek_4fusion_4LinearDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __variable_1_S_3ILmosek_4fusion_4LinearDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasVariable_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate variable name '")._a_S(_0)._a_S("'")._toString_())
   _3=_2._finalize_1and_1validate__3I(_1)
   _4=(_3._shape)
   _5=int((_4).shape[0])
   _6=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   if (_5 > 0):
    _6[(_5 - 1)] = 1
    for _7 in range(1,_5):
     _6[((_5 - _7) - 1)] = (_6[(_5 - _7)] * _4[(_5 - _7)])
   _8=1
   for _9 in range(0,int((_4).shape[0])):
    _8 *= _4[_9]
   _10=None
   _11=None
   _12=None
   _13=None
   _14=None
   _15=None
   if ((int(len(_0)) > 0) and ((_3._indexnames) is not None)):
    _16=mosek.fusion.Utils.StringBuffer()
    _17=mosek.fusion.Utils.StringBuffer()
    _18=0
    _19=0
    _20=0
    if (int(((_3._indexnames)).shape[0])!=_5):
     raise mosek_fusion_DomainError._ctor_S("Invalid index name definition")
    for _21 in range(0,int(((_3._indexnames)).shape[0])):
     if ((_3._indexnames)[_21] is not None):
      if (_4[_21]!=int(((_3._indexnames)[_21]).shape[0])):
       raise mosek_fusion_DomainError._ctor_S("Invalid index name definition")
      _20 += _4[_21]
    _11 = numpy.zeros(((_20 + 1),), dtype=numpy.dtype(numpy.int64))
    _10 = numpy.array([(- 1) for _22 in range(0,_5)], dtype=numpy.dtype(numpy.int32))
    for _23 in range(0,int(((_3._indexnames)).shape[0])):
     if ((_3._indexnames)[_23] is not None):
      _10[_23] = _18
      for _24 in range(0,_4[_23]):
       _16._a_S((_3._indexnames)[_23][_24])
       _18 += 1
       _19 += int(len((_3._indexnames)[_23][_24]))
       _11[_18] = _19
    _12 = _16
    _15 = _17
   _25=None
   _26=None
   if (_3._empty):
    _25 = numpy.zeros((0,), dtype=numpy.dtype(numpy.int64))
   elif ((_3._sparsity) is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:2072:16-36
    if (int(((_3._sparsity)).shape[1])!=_5):
     raise mosek_fusion_SparseFormatError._ctor_S("Sparsity pattern is not correct")
    _27=int(((_3._sparsity)).shape[0])
    _25 = numpy.zeros((_27,), dtype=numpy.dtype(numpy.int64))
    _28=False
    _29=(_3._sparsity)
    for _30 in range(0,_27):
     for _31 in range(0,int((_29).shape[1])):
      _28 = (_28 or ((_29[_30,_31] < 0) or (_29[_30,_31] >= _4[_31])))
     if (not _28):
      _32=0
      for _33 in range(0,int((_29).shape[1])):
       _32 += (_6[_33] * _29[_30,_33])
      _25[_30] = _32
    if _28:
     raise mosek_fusion_SparseFormatError._ctor_S("Sparsity pattern is out of bounds")
    _34=(_3._sparsity)
    _35=0
    for _36 in range(0,_5):
     if (_35 < _4[_36]):
      _35 = _4[_36]
    _37=numpy.zeros((_27,), dtype=numpy.dtype(numpy.int32))
    for _38 in range(0,_27):
     _37[_38] = _38
    _39=numpy.zeros((_27,), dtype=numpy.dtype(numpy.int32))
    _40=numpy.zeros(((_35 + 1),), dtype=numpy.dtype(numpy.int32))
    for _41 in range(0,_5):
     _42=((_5 - _41) - 1)
     for _43 in range(0,(_4[_42] + 1)):
      _40[_43] = 0
     for _44 in range(0,_27):
      _40[(_34[_44,_42] + 1)] += 1
     for _45 in range(0,_4[_42]):
      _40[(_45 + 1)] += _40[_45]
     for _46 in range(0,_27):
      _47=_37[_46]
      _39[_40[_34[_47,_42]]] = _47
      _40[_34[_47,_42]] += 1
     _48=_37
     _37 = _39
     _39 = _48
    for _49 in range(0,_27):
     _50=_37[_49]
     _51=0
     for _52 in range(0,_5):
      _51 += (_6[_52] * _34[_50,_52])
     _25[_49] = _51
   _53=(int((_25).shape[0]) if ((_25 is not None) ) else _8)
   _54=numpy.zeros((_53,), dtype=numpy.dtype(numpy.float64))
   if ((_3._bnd) is not None):
    if (int(((_3._bnd)).shape[0])==1):
     for _55 in range(0,_53):
      _54[_55] = (_3._bnd)[0]
    elif (int(((_3._bnd)).shape[0])==_53): # bld/docker-win/final/default/src/fusion/Model.mbi:2131:18-43
     mosek.fusion.Utils.Tools._arraycopy__3DI_3DII((_3._bnd),0,_54,0,_53)
    else:
     raise mosek_fusion_DimensionError._ctor_S("Invalid right hand side shape in domain")
   _56=numpy.zeros((_53,), dtype=numpy.dtype(numpy.int32))
   _57=self.__linearvar_1alloc_I_3I(_53,_56)
   if ((_3._key)==mosek.fusion.RelationKey.IsFree):
    self._task_1var_1putboundlist_1fr__3I(_56)
   if ((_3._key)==mosek.fusion.RelationKey.LessThan):
    self._task_1var_1putboundlist_1up__3I_3D(_56,_54)
   elif ((_3._key)==mosek.fusion.RelationKey.GreaterThan): # bld/docker-win/final/default/src/fusion/Model.mbi:2149:17-51
    self._task_1var_1putboundlist_1lo__3I_3D(_56,_54)
   elif ((_3._key)==mosek.fusion.RelationKey.EqualsTo): # bld/docker-win/final/default/src/fusion/Model.mbi:2153:17-48
    self._task_1var_1putboundlist_1fx__3I_3D(_56,_54)
   _58=mosek_fusion_LinearVariable._ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,_0,_57,_4,_25,_56)
   self.__vars[_57] = _58
   if (int(len(_0)) > 0):
    _59=mosek.fusion.Utils.StringBuffer()
    _59._a_S(_0)._a_S("[")
    if (_5 > 0):
     _59._a_S("%0")
     for _60 in range(1,_5):
      _59._a_S(",%")._a_I(_60)
    _59._a_S("]")
    if ((_3._indexnames) is not None):
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_56,_59._toString_(),_4,_25,(_3._indexnames))
    else:
     self._task_1format_1var_1names__3IS_3I_3J_3_3S(_56,_59._toString_(),_4,_25,None)
    self.__var_map._setItem_SI(_0,_57)
   if (_3._cardinal_flag):
    self._task_1var_1putintlist__3I(_56)
   return (_58)
  def __variable_1_alt_S_3ILmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=_t__2
   _1_res = self.__variable_1_S_3ILmosek_4fusion_4PSDDomain_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __variable_1_S_3ILmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasVariable_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate variable name '")._a_S(_0)._a_S("'")._toString_())
   _3=_2._finalize_1and_1validate__3I(_1)
   _4=(_3._shape)
   _5=(_3._conedim1)
   _6=(_3._conedim2)
   _7=int((_4).shape[0])
   _8=_4[_5]
   if (_5 > _6):
    _9=_5
    _5 = _6
    _6 = _9
   if ((_5==_6) or ((_5 < 0) or (_6 >= _7))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid cone order dimensions for semidefinite variables")
   if (_4[_5]!=_4[_6]):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching shape in cone order dimensions")
   _10=1
   for _11 in range(0,_5):
    _10 *= _4[_11]
   for _12 in range((_5 + 1),_6):
    _10 *= _4[_12]
   for _13 in range((_6 + 1),_7):
    _10 *= _4[_13]
   _14=(((_10 * _8) * (_8 + 1)) // 2)
   _15=numpy.zeros((_14,), dtype=numpy.dtype(numpy.int64))
   _16=numpy.zeros((_10,), dtype=numpy.dtype(numpy.int32))
   _17=self.__barvar_1alloc_II_3I_3J(_8,_10,_16,_15)
   _18=mosek_fusion_PSDVariable._ctor_Lmosek_4fusion_4Model_2SI_3III_3I_3J(self,_0,_17,_4,(_3._conedim1),(_3._conedim2),_16,_15)
   if (int(len(_0)) > 0):
    _19=numpy.zeros(((_7 - 2),), dtype=numpy.dtype(numpy.int32))
    _20=(_5 if ((_5 < _6) ) else _6)
    _21=(_6 if ((_5 < _6) ) else _5)
    for _22 in range(0,_20):
     _19[_22] = _4[_22]
    for _23 in range((_20 + 1),_21):
     _19[(_23 - 1)] = _4[_23]
    for _24 in range((_21 + 1),_7):
     _19[(_24 - 2)] = _4[_24]
    _25=mosek.fusion.Utils.StringBuffer()
    _25._a_S(_0)._a_S("[")
    if ((_7 - 2) > 0):
     _25._a_S("%0")
     for _26 in range(1,(_7 - 2)):
      _25._a_S(",%")._a_I(_26)
    _25._a_S("]")
    if ((_3._indexnames) is not None):
     _27=numpy.ndarray(((_7 - 2),), dtype=numpy.dtype(object))
     for _28 in range(0,_20):
      _27[_28] = (_3._indexnames)[_28]
     for _29 in range((_20 + 1),_21):
      _27[(_29 - 1)] = (_3._indexnames)[_29]
     for _30 in range((_21 + 1),_7):
      _27[(_30 - 2)] = (_3._indexnames)[_30]
     self._task_1format_1barvar_1names__3IS_3I_3_3S(_16,_25._toString_(),_19,_27)
    else:
     self._task_1format_1barvar_1names__3IS_3I_3_3S(_16,_25._toString_(),_19,None)
   self.__barvars[_17] = _18
   if (int(len(_0)) > 0):
    self.__var_map._setItem_SI(_0,(- (_17 + 1)))
   return (_18)
  def __putfrows_alt__3IILmosek_4fusion_4WorkStack_2IIIII(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=_t__2
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _6=numpy.int32(_t__6)
   _7=numpy.int32(_t__7)
   _1_res = self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(_0,_1,_2,_3,_4,_5,_6,_7)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(self,_0,_1,_2,_3,_4,_5,_6,_7):
   _8=(_2.i32)
   _9=(_2.i64)
   _10=(_2.f64)
   _11=0
   _12=0
   _13=0
   for _14 in range(0,_3):
    _15=_8[(_5 + _14)]
    _16=_8[((_5 + _14) + 1)]
    _17=_15
    while ((_17 < _16) and (_9[(_6 + _17)] < 0)):
     _18=self.__barvar_block_elm_barj[(- (_9[(_6 + _17)] + 1))]
     _19=_17
     _17 += 1
     while ((_17 < _16) and ((_9[(_6 + _17)] < 0) and (_18==self.__barvar_block_elm_barj[(- (_9[(_6 + _17)] + 1))]))):
      _17 += 1
     _12 += 1
    _13 += (_17 - _15)
    while ((_17 < _16) and (_9[(_6 + _17)]==0)):
     _17 += 1
    _11 += (_16 - _17)
   if (_3 > (int((_0).shape[0]) - _1)):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: Mismatching sizes")
   _20=_3
   _21=numpy.zeros(((_20 + 1),), dtype=numpy.dtype(numpy.int32))
   _22=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int32))
   _23=numpy.zeros((_11,), dtype=numpy.dtype(numpy.float64))
   _24=numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
   _25=0
   for _26 in range(0,_3):
    _27=0
    for _28 in range(_8[(_5 + _26)],_8[((_5 + _26) + 1)]):
     if (_9[(_6 + _28)]==0):
      _24[_26] += _10[(_7 + _28)]
     elif (_9[(_6 + _28)] > 0): # bld/docker-win/final/default/src/fusion/Model.mbi:1741:23-45
      _22[(_25 + _27)] = numpy.int32(_9[(_6 + _28)])
      _23[(_25 + _27)] = _10[(_7 + _28)]
      _27 += 1
    _21[(_26 + 1)] = (_21[_26] + _27)
    _25 += _27
   self._task_1putafeflist__3J_3I_3I_3D_3D(numpy.array([_0[(_29 + _1)] for _29 in range(0,_3)], dtype=numpy.dtype(numpy.int64)),_21,_22,_23,_24)
   if (_12 > 0):
    _30=_0
    _31=numpy.zeros(((_20 + 1),), dtype=numpy.dtype(numpy.int32))
    _32=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _33=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _34=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int64))
    _35=numpy.array([(- 1) for _36 in range(0,_13)], dtype=numpy.dtype(numpy.int32))
    _37=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int32))
    _38=numpy.zeros((_13,), dtype=numpy.dtype(numpy.float64))
    _39=0
    _40=0
    for _41 in range(0,_20):
     _42=_8[(_5 + _41)]
     _43=_8[((_5 + _41) + 1)]
     while ((_42 < _43) and (_9[(_6 + _42)] < 0)):
      _44=_42
      _45=self.__barvar_block_elm_barj[(- (_9[(_6 + _42)] + 1))]
      while ((_42 < _43) and ((_9[(_6 + _42)] < 0) and (self.__barvar_block_elm_barj[(- (_9[(_6 + _42)] + 1))]==_45))):
       _35[_40] = self.__barvar_block_elm_i[(- (_9[(_6 + _42)] + 1))]
       _37[_40] = self.__barvar_block_elm_j[(- (_9[(_6 + _42)] + 1))]
       if (_35[_40]==_37[_40]):
        _38[_40] = _10[(_7 + _42)]
       else:
        _38[_40] = (0.5 * _10[(_7 + _42)])
       _40 += 1
       _42 += 1
      _32[_39] = _45
      _33[_39] = self.__barvar_dim[_45]
      _34[_39] = (_42 - _44)
      _39 += 1
     _42 = _43
     _31[(_41 + 1)] = _39
    _46=self._task_1appendsymmatlist__3I_3J_3I_3I_3D(_33,_34,_35,_37,_38)
    self._task_1putafebarfrowlist__3I_3I_3I_3J(_30,_31,_32,_46)
  def __putarows_alt__3ILmosek_4fusion_4WorkStack_2IIIII(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=_t__1
   _2=numpy.int32(_t__2)
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _6=numpy.int32(_t__6)
   _1_res = self.__putarows__3ILmosek_4fusion_4WorkStack_2IIIII(_0,_1,_2,_3,_4,_5,_6)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __putarows__3ILmosek_4fusion_4WorkStack_2IIIII(self,_0,_1,_2,_3,_4,_5,_6):
   _7=(_1.i32)
   _8=(_1.i64)
   _9=(_1.f64)
   _10=0
   _11=0
   _12=0
   for _13 in range(0,_2):
    _14=_7[(_4 + _13)]
    _15=_7[((_4 + _13) + 1)]
    _16=_14
    while ((_16 < _15) and (_8[(_5 + _16)] < 0)):
     _17=self.__barvar_block_elm_barj[(- (_8[(_5 + _16)] + 1))]
     _18=_16
     _16 += 1
     while ((_16 < _15) and ((_8[(_5 + _16)] < 0) and (_17==self.__barvar_block_elm_barj[(- (_8[(_5 + _16)] + 1))]))):
      _16 += 1
     _11 += 1
    _12 += (_16 - _14)
    _10 += (_15 - _16)
   _10 += _2
   _19=int((_0).shape[0])
   _20=numpy.zeros(((_19 + 1),), dtype=numpy.dtype(numpy.int64))
   _21=numpy.zeros((_10,), dtype=numpy.dtype(numpy.int32))
   _22=numpy.zeros((_10,), dtype=numpy.dtype(numpy.float64))
   _23=0
   for _24 in range(0,_2):
    _25=0
    for _26 in range(_7[(_4 + _24)],_7[((_4 + _24) + 1)]):
     if (_8[(_5 + _26)] >= 0):
      _21[(_23 + _25)] = numpy.int32(_8[(_5 + _26)])
      _22[(_23 + _25)] = _9[(_6 + _26)]
      _25 += 1
    _20[(_24 + 1)] = (_20[_24] + _25)
    _23 += _25
   self._task_1putarowlist__3I_3J_3I_3D(_0,_20,_21,_22)
   if (_11 > 0):
    _27=_0
    _28=numpy.zeros(((_19 + 1),), dtype=numpy.dtype(numpy.int64))
    _29=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int32))
    _30=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int32))
    _31=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int64))
    _32=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _33=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int32))
    _34=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    _35=0
    _36=0
    for _37 in range(0,_19):
     _38=_7[(_4 + _37)]
     _39=_7[((_4 + _37) + 1)]
     while ((_38 < _39) and (_8[(_5 + _38)] < 0)):
      _40=_38
      _41=self.__barvar_block_elm_barj[(- (_8[(_5 + _38)] + 1))]
      while ((_38 < _39) and ((_8[(_5 + _38)] < 0) and (self.__barvar_block_elm_barj[(- (_8[(_5 + _38)] + 1))]==_41))):
       _32[_36] = self.__barvar_block_elm_i[(- (_8[(_5 + _38)] + 1))]
       _33[_36] = self.__barvar_block_elm_j[(- (_8[(_5 + _38)] + 1))]
       if (_32[_36]==_33[_36]):
        _34[_36] = _9[(_6 + _38)]
       else:
        _34[_36] = (0.5 * _9[(_6 + _38)])
       _36 += 1
       _38 += 1
      _29[_35] = _41
      _30[_35] = self.__barvar_dim[_41]
      _31[_35] = (_38 - _40)
      _35 += 1
     _38 = _39
     _28[(_37 + 1)] = _35
    _42=self._task_1appendsymmatlist__3I_3J_3I_3I_3D(_30,_31,_32,_33,_34)
    self._task_1putbararowlist__3I_3J_3I_3J(_27,_28,_29,_42)
  def __constraint_1_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_t__0,_t__1,_t__2):
    return self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(_0,_1,_2)
  def __constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasConstraint_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate constraint name '")._a_S(_0)._a_S("'")._toString_())
   if (_2._cardinal_flag):
    raise mosek_fusion_DomainError._ctor_S("Integer domain not allowed in a constraint")
   _3=mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_1)))
   _3.eval(self.__rs,self.__ws,self.__xs)
   self.__rs.pop_expr()
   _4=(self.__rs.i32)
   _5=(self.__rs.i64)
   _6=(self.__rs.f64)
   _7=(self.__rs.nd)
   _8=(self.__rs.shape_base)
   _9=(self.__rs.nelem)
   _10=(self.__rs.nnz)
   _11=(self.__rs.ncodeatom)
   _12=(self.__rs.hassp)
   _13=(self.__rs.ptr_base)
   _14=(self.__rs.nidxs_base)
   _15=(self.__rs.cof_base)
   _16=(self.__rs.codeptr_base)
   _17=(self.__rs.code_base)
   _18=(self.__rs.cconst_base)
   _19=numpy.array([_4[(_8 + _20)] for _20 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
   _21=_2._finalize_1and_1validate__3I(_19)
   if ((_21._shape) is not None):
    if (int(((_21._shape)).shape[0])!=_7):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching expression and domain")
    else:
     for _22 in range(0,_7):
      if ((_21._shape)[_22]!=_4[(_8 + _22)]):
       raise mosek_fusion_DimensionError._ctor_S("Mismatching expression and domain")
   _23=1
   for _24 in range(0,_7):
    _23 *= _4[(_8 + _24)]
   _25=numpy.zeros((_23,), dtype=numpy.dtype(numpy.int32))
   _26=self.__con_1allocate__3I(_25)
   self.__putarows__3ILmosek_4fusion_4WorkStack_2IIIII(_25,self.__rs,_9,_10,_13,_14,_15)
   self.__xs.clear()
   _27=numpy.zeros((_23,), dtype=numpy.dtype(numpy.float64))
   _28=numpy.zeros((_23,), dtype=numpy.dtype(numpy.float64))
   _29=(_21._lb)
   _30=(_21._ub)
   _31=(_21._empty)
   _32=(_21._scalable)
   _33=(_21._sparsity)
   if _32:
    for _34 in range(0,_23):
     _27[_34] = _29[0]
     _28[_34] = _30[0]
   elif _31: # bld/docker-win/final/default/src/fusion/Model.mbi:1522:18-26
    pass
   elif (_33 is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:1524:18-30
    _35=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int32))
    _35[(_7 - 1)] = 1
    for _36 in range(1,_7):
     _35[((_7 - _36) - 1)] = (_35[(_7 - _36)] * _4[((_8 + _7) - _36)])
    for _37 in range(0,int((_29).shape[0])):
     _38=0
     for _39 in range(0,_7):
      _38 += (_35[_39] * _33[_37,_39])
     _27[_38] = _29[_37]
     _28[_38] = _30[_37]
   else:
    for _40 in range(0,_23):
     _27[_40] = _29[_40]
     _28[_40] = _30[_40]
   self._task_1con_1putboundlist_1ra__3I_3D_3D(_25,_27,_28)
   if (_11 > 0):
    self.__con_blocks.replace_row_code(self.__rs,_25,_13,_14,_16,_17,_18)
   if (int(len(_0)) > 0):
    _41=mosek.fusion.Utils.StringBuffer()
    _41._a_S(_0)._a_S("[")
    if (int((_19).shape[0]) > 0):
     _41._a_S("%0")
    for _42 in range(1,int((_19).shape[0])):
     _41._a_S(",%")._a_I(_42)
    _41._a_S("]")
    if ((_21._indexnames) is not None):
     self._task_1format_1con_1names__3IS_3I_3J_3_3S(_25,_41._toString_(),_19,None,(_21._indexnames))
    else:
     self._task_1format_1con_1names__3IS_3I_3J_3_3S(_25,_41._toString_(),_19,None,None)
   _43=mosek_fusion_RangedConstraint._ctor_Lmosek_4fusion_4Model_2S_3I_3II(self,_0,numpy.array([_4[(_8 + _44)] for _44 in range(0,_7)], dtype=numpy.dtype(numpy.int32)),_25,_26)
   self.__cons[_26] = _43
   if (int(len(_0)) > 0):
    self.__con_map._setItem_SI(_0,_26)
   return (_43)
  def __constraint_1_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_t__0,_t__1,_t__2):
    return self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(_0,_1,_2)
  def __constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,_0,_1,_2):
   _3=_1.getShape()
   _4=_2._finalize_1and_1validate__3I(_3)
   _5=((_4._conedim1) < (_4._conedim2))
   _6=((_4._conedim2) if (((_4._conedim1) < (_4._conedim2)) ) else (_4._conedim1))
   _7=((_4._conedim1) if (((_4._conedim1) < (_4._conedim2)) ) else (_4._conedim2))
   _8=mosek_fusion_ExprDenseTril._ctor_IILmosek_4fusion_4Expression_2(_7,_6,mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprScaleVecPSD._ctor_IILmosek_4fusion_4BaseExpression_2(_7,_6,mosek_fusion_ExprDenseTril._ctor_IILmosek_4fusion_4Expression_2(_7,_6,(mosek_fusion_ExprSymmetrize._ctor_IILmosek_4fusion_4Expression_2(_7,_6,_1) if (((_4._key)==mosek.fusion.PSDKey.IsSymPSD) ) else _1))))))
   _8.eval(self.__rs,self.__ws,self.__xs)
   _9=(self.__rs.i32)
   _10=(self.__rs.i64)
   _11=(self.__rs.f64)
   _12=(self.__rs.nd)
   _13=(self.__rs.nelem)
   _14=(self.__rs.nnz)
   _15=(self.__rs.hassp)
   _16=(self.__rs.ncodeatom)
   _17=(self.__rs.shape_base)
   _18=(self.__rs.ptr_base)
   _19=(self.__rs.nidxs_base)
   _20=(self.__rs.sp_base)
   _21=(self.__rs.cof_base)
   _22=(self.__rs.codeptr_base)
   _23=(self.__rs.code_base)
   _24=(self.__rs.cconst_base)
   _25=_3[_6]
   _26=((_25 * (_25 + 1)) // 2)
   _27=1
   for _28 in range(0,_12):
    if ((_28!=_7) and (_28!=_6)):
     _27 *= _3[_28]
   _29=self._task_1append_1domain_1svec_1psd_I(_26)
   _30=(_26 * _27)
   _31=numpy.zeros((_30,), dtype=numpy.dtype(numpy.int32))
   _32=numpy.zeros((_27,), dtype=numpy.dtype(numpy.int32))
   _33=numpy.zeros((_30,), dtype=numpy.dtype(numpy.int32))
   _34=numpy.zeros((_30,), dtype=numpy.dtype(numpy.float64))
   _35=self.__acon_1allocate_JII_3D_3I_3I(_29,_26,_27,_34,_31,_32)
   _36=numpy.zeros((_30,), dtype=numpy.dtype(numpy.int32))
   self.__acon_block_map.get(_35,_36,0)
   _37=1
   _38=_3[_6]
   _39=1
   _40=_3[_7]
   _41=1
   for _42 in range(0,_7):
    _41 *= _3[_42]
   for _43 in range((_7 + 1),_6):
    _39 *= _3[_43]
   for _44 in range((_6 + 1),_12):
    _37 *= _3[_44]
   _45=0
   _46=(1.0 / mosek.fusion.Utils.Tools._sqrt_D(2))
   for _47 in range(0,((_41 * _39) * _37)):
    for _48 in range(0,_40):
     _45 += 1
     for _49 in range((_48 + 1),_38):
      self.__acon_elm_scale[_36[_45]] = _46
      _45 += 1
   _50=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int32))
   _51=0
   if _5:
    for _52 in range(0,_41):
     for _53 in range(0,_38):
      for _54 in range(0,_39):
       for _55 in range(_53,_40):
        for _56 in range(0,_37):
         _57=((((_52 * _39) * _37) + (_54 * _37)) + _56)
         _58=(((_55 * (_55 + 1)) // 2) + _53)
         _50[((_57 * _26) + _58)] = _31[_51]
         _51 += 1
   else:
    for _59 in range(0,_41):
     for _60 in range(0,_38):
      for _61 in range(0,_39):
       for _62 in range(0,(_60 + 1)):
        for _63 in range(0,_37):
         _64=((((_59 * _39) * _37) + (_61 * _37)) + _63)
         _65=(((_62 * (((2 * _40) - _62) - 1)) // 2) + _60)
         _50[((_64 * _26) + _65)] = _31[_51]
         _51 += 1
   self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(_50,0,self.__rs,_13,_14,_18,_19,_21)
   if (_16 > 0):
    self.__afe_blocks.replace_row_code(self.__rs,_50,_18,_19,_22,_23,_24)
   _66=numpy.zeros((((_27 * _40) * _40),), dtype=numpy.dtype(numpy.int32))
   _67=0
   if _5:
    for _68 in range(0,_41):
     for _69 in range(0,_40):
      for _70 in range(0,_39):
       for _71 in range(0,_38):
        for _72 in range(0,_37):
         _73=((((_68 * _39) * _37) + (_70 * _37)) + _72)
         _74=((((_71 * (((2 * _40) - _71) - 1)) // 2) + _69) if ((_69 >= _71) ) else (((_69 * (((2 * _40) - _69) - 1)) // 2) + _71))
         _66[_67] = _31[((_73 * _26) + _74)]
         _67 += 1
   else:
    for _75 in range(0,_41):
     for _76 in range(0,_40):
      for _77 in range(0,_39):
       for _78 in range(0,_38):
        for _79 in range(0,_37):
         _80=((((_75 * _39) * _37) + (_77 * _37)) + _79)
         _81=((((_78 * (((2 * _40) - _78) - 1)) // 2) + _76) if ((_76 >= _78) ) else (((_76 * (((2 * _40) - _76) - 1)) // 2) + _78))
         _66[_67] = _31[((_80 * _26) + _81)]
         _67 += 1
   if (int(len(_0)) > 0):
    _82=numpy.zeros(((int((_3).shape[0]) - 2),), dtype=numpy.dtype(numpy.int32))
    for _83 in range(0,_7):
     _82[_83] = _3[_83]
    for _84 in range((_7 + 1),_6):
     _82[(_84 - 1)] = _3[_84]
    for _85 in range((_6 + 1),_12):
     _82[(_85 - 2)] = _3[_85]
    _86=mosek.fusion.Utils.StringBuffer()
    _86._a_S(_0)._a_S("[")
    if (_12 > 2):
     _86._a_S("%0")
     for _87 in range(1,(_12 - 2)):
      _86._a_S(",%")._a_I(_87)
    _86._a_S("]")
    if ((_4._indexnames) is not None):
     _88=(_4._indexnames)
     _89=numpy.ndarray(((_12 - 2),), dtype=numpy.dtype(object))
     for _90 in range(0,_7):
      _89[_90] = _88[_90]
     for _91 in range((_7 + 1),_6):
      _89[(_91 - 1)] = _88[_91]
     for _92 in range((_6 + 1),_12):
      _89[(_92 - 2)] = _88[_92]
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([_32[_93] for _93 in range(0,int((_32).shape[0]))], dtype=numpy.dtype(numpy.int64)),_86._toString_(),_82,_89)
    else:
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([_32[_94] for _94 in range(0,int((_32).shape[0]))], dtype=numpy.dtype(numpy.int64)),_86._toString_(),_82,None)
   _95=mosek_fusion_ConicConstraint._ctor_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(self,_0,None,_3,_35,_66,None)
   self.__acons[_35] = _95
   if (int(len(_0)) > 0):
    self.__con_map._setItem_SI(_0,(- (1 + _35)))
   return (_95)
  def __constraint_1_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_t__0,_t__1,_t__2):
    return self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(_0,_1,_2)
  def __constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasConstraint_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate constraint name '")._a_S(_0)._a_S("'")._toString_())
   if ((int(len(_0)) > 0) and self._hasConstraint_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate constraint name '")._a_S(_0)._a_S("'")._toString_())
   if (_2._int_flag):
    raise mosek_fusion_DomainError._ctor_S("Integer domain not allowed in a constraint")
   _3=mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_1)))
   _3.eval(self.__rs,self.__ws,self.__xs)
   self.__rs.pop_expr()
   _4=(self.__rs.i32)
   _5=(self.__rs.i64)
   _6=(self.__rs.f64)
   _7=(self.__rs.nd)
   _8=(self.__rs.shape_base)
   _9=(self.__rs.nelem)
   _10=(self.__rs.nnz)
   _11=(self.__rs.ncodeatom)
   _12=(self.__rs.hassp)
   _13=(self.__rs.ptr_base)
   _14=(self.__rs.nidxs_base)
   _15=(self.__rs.cof_base)
   _16=(self.__rs.code_base)
   _17=(self.__rs.codeptr_base)
   _18=(self.__rs.cconst_base)
   _19=numpy.array([_4[(_8 + _20)] for _20 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
   _21=_2._finalize_1and_1validate__3I(_19)
   _22=(_21._getAxis_() if (_21._axisIsSet_() ) else (_7 - 1))
   _23=_19[_22]
   _24=1
   _25=1
   _26=1
   for _27 in range(0,_7):
    _26 *= _19[_27]
   for _28 in range(0,_22):
    _25 *= _19[_28]
   for _29 in range((_22 + 1),_7):
    _24 *= _19[_29]
   _30=(_25 * _24)
   if ((_21._key)==mosek.fusion.QConeKey.InQCone):
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for quadratic cone")._toString_())
    _31 = self._task_1append_1domain_1quad_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.InRotatedQCone): # bld/docker-win/final/default/src/fusion/Model.mbi:903:16-50
    if (_23 < 3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for rotated quadratic cone")._toString_())
    _31 = self._task_1append_1domain_1rquad_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.InPExpCone): # bld/docker-win/final/default/src/fusion/Model.mbi:907:16-46
    if (_23!=3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for exponential cone")._toString_())
    _31 = self._task_1append_1domain_1pexp_()
   elif ((_21._key)==mosek.fusion.QConeKey.InPPowCone): # bld/docker-win/final/default/src/fusion/Model.mbi:911:16-46
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for power cone")._toString_())
    if (int(((_21._alpha)).shape[0]) < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Power cone requires at least two parameters")._toString_())
    _31 = self._task_1append_1domain_1ppow_I_3D(_23,(_21._alpha))
   elif ((_21._key)==mosek.fusion.QConeKey.InDExpCone): # bld/docker-win/final/default/src/fusion/Model.mbi:916:16-46
    if (_23!=3):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for dual exponential cone")._toString_())
    _31 = self._task_1append_1domain_1dexp_()
   elif ((_21._key)==mosek.fusion.QConeKey.InDPowCone): # bld/docker-win/final/default/src/fusion/Model.mbi:920:16-46
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for dual power cone")._toString_())
    if (int(((_21._alpha)).shape[0]) < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Power cone requires at least two parameters")._toString_())
    _31 = self._task_1append_1domain_1dpow_I_3D(_23,(_21._alpha))
   elif ((_21._key)==mosek.fusion.QConeKey.InPGeoMeanCone): # bld/docker-win/final/default/src/fusion/Model.mbi:933:16-50
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for primal geometric mean cone")._toString_())
    _31 = self._task_1append_1domain_1pgeomean_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.InDGeoMeanCone): # bld/docker-win/final/default/src/fusion/Model.mbi:937:16-50
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for dual geometric mean cone")._toString_())
    _31 = self._task_1append_1domain_1dgeomean_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.InSVecPSDCone): # bld/docker-win/final/default/src/fusion/Model.mbi:941:16-49
    _32=numpy.int32(((mosek.fusion.Utils.Tools._sqrt_D((1 + (8 * _23))) - 1) / 2))
    if (((_32 * (_32 + 1)) // 2)!=_23):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for vector positive semidefinite cone")._toString_())
    _31 = self._task_1append_1domain_1svec_1psd_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.Positive): # bld/docker-win/final/default/src/fusion/Model.mbi:947:16-44
    _31 = self._task_1append_1domain_1rpos_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.Negative): # bld/docker-win/final/default/src/fusion/Model.mbi:950:16-44
    _31 = self._task_1append_1domain_1rneg_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.Unbounded): # bld/docker-win/final/default/src/fusion/Model.mbi:952:16-45
    _31 = self._task_1append_1domain_1r_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.Zero): # bld/docker-win/final/default/src/fusion/Model.mbi:954:16-40
    _31 = self._task_1append_1domain_1rzero_I(_23)
   elif ((_21._key)==mosek.fusion.QConeKey.InPSDCone): # bld/docker-win/final/default/src/fusion/Model.mbi:956:16-45
    if (_23 < 2):
     raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for positive semidefinite cone")._toString_())
    else:
     _33=numpy.int32(((mosek.fusion.Utils.Tools._sqrt_D((1 + (8 * _23))) - 1) / 2))
     if (((_33 * (_33 + 1)) // 2)!=_23):
      raise mosek_fusion_DimensionError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Invalid size (")._a_I(_23)._a_S(") for positive semidefinite cone")._toString_())
    _31 = self._task_1append_1domain_1svec_1psd_I(_23)
   else:
    raise mosek_fusion_UnexpectedError._ctor_S("Internal error: Invalid cone type")
   _34=numpy.zeros((_26,), dtype=numpy.dtype(numpy.float64))
   _35=numpy.zeros((_26,), dtype=numpy.dtype(numpy.int32))
   _36=numpy.zeros((_30,), dtype=numpy.dtype(numpy.int32))
   _37=self.__acon_1allocate_JII_3D_3I_3I(_31,_23,_30,_34,_35,_36)
   _38=numpy.zeros((_26,), dtype=numpy.dtype(numpy.int32))
   _39=0
   _40=(_21._domofs)
   for _41 in range(0,_25):
    for _42 in range(0,_24):
     for _43 in range(0,_23):
      _38[((((_41 * _24) * _23) + (_43 * _24)) + _42)] = _39
      _39 += 1
   if (_40 is not None):
    for _44 in range(0,_26):
     _34[_38[_44]] = _40[_44]
   _45=numpy.array([_35[_38[_46]] for _46 in range(0,_26)], dtype=numpy.dtype(numpy.int32))
   self.__putfrows__3IILmosek_4fusion_4WorkStack_2IIIII(_45,0,self.__rs,_9,_10,_13,_14,_15)
   if (_11 > 0):
    self.__afe_blocks.replace_row_code(self.__rs,_45,_13,_14,_17,_16,_18)
   if (int(len(_0)) > 0):
    _47=numpy.zeros(((int((_19).shape[0]) - 1),), dtype=numpy.dtype(numpy.int32))
    for _48 in range(0,_22):
     _47[_48] = _19[_48]
    for _49 in range((_22 + 1),_7):
     _47[(_49 - 1)] = _19[_49]
    _50=mosek.fusion.Utils.StringBuffer()
    _50._a_S(_0)._a_S("[")
    if (_7 > 1):
     _50._a_S("%0")
     for _51 in range(1,(_7 - 1)):
      _50._a_S(",%")._a_I(_51)
    _50._a_S("]")
    if ((_21._indexnames) is not None):
     _52=(_21._indexnames)
     _53=numpy.ndarray(((_7 - 1),), dtype=numpy.dtype(object))
     for _54 in range(0,_22):
      _53[_54] = _52[_54]
     for _55 in range((_22 + 1),_7):
      _53[(_55 - 1)] = _52[_55]
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([_36[_56] for _56 in range(0,int((_36).shape[0]))], dtype=numpy.dtype(numpy.int64)),_50._toString_(),_47,_53)
    else:
     self._task_1format_1acc_1names__3JS_3I_3_3S(numpy.array([_36[_57] for _57 in range(0,int((_36).shape[0]))], dtype=numpy.dtype(numpy.int64)),_50._toString_(),_47,None)
   _58=mosek_fusion_ConicConstraint._ctor_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(self,_0,_21,_19,_37,_35,(_21._indexnames))
   self.__acons[_37] = _58
   if (int(len(_0)) > 0):
    self.__con_map._setItem_SI(_0,(- (_37 + 1)))
   return (_58)
  def __constraint_1_alt_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_t__0,_t__1,_t__2):
    return self.__constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(_0,_1,_2)
  def __constraint_1_SLmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,_0,_1,_2):
   if ((int(len(_0)) > 0) and self._hasConstraint_S(_0)):
    raise mosek_fusion_NameError._ctor_S(mosek.fusion.Utils.StringBuffer()._a_S("Duplicate constraint name '")._a_S(_0)._a_S("'")._toString_())
   if (_2._cardinal_flag):
    raise mosek_fusion_DomainError._ctor_S("Integer domain not allowed in a constraint")
   _3=mosek_fusion_ExprDense._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprOptimizeCode._ctor_Lmosek_4fusion_4Expression_2(mosek_fusion_ExprCompress._ctor_Lmosek_4fusion_4Expression_2(_1)))
   _3.eval(self.__rs,self.__ws,self.__xs)
   self.__rs.pop_expr()
   _4=(self.__rs.i32)
   _5=(self.__rs.i64)
   _6=(self.__rs.f64)
   _7=(self.__rs.nd)
   _8=(self.__rs.nelem)
   _9=(self.__rs.nnz)
   _10=(self.__rs.hassp)
   _11=(self.__rs.ncodeatom)
   _12=(self.__rs.shape_base)
   _13=(self.__rs.ptr_base)
   _14=(self.__rs.nidxs_base)
   _15=(self.__rs.cof_base)
   _16=(self.__rs.codeptr_base)
   _17=(self.__rs.code_base)
   _18=(self.__rs.cconst_base)
   _19=numpy.array([_4[(_12 + _20)] for _20 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
   _21=_2._finalize_1and_1validate__3I(_19)
   _22=(_21._domsize)
   _23=(_21._indexnames)
   _25=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _26=self.__con_1allocate__3I(_25)
   self.__putarows__3ILmosek_4fusion_4WorkStack_2IIIII(_25,self.__rs,_8,_9,_13,_14,_15)
   _27=(_21._sparsity)
   _28=(_21._empty)
   _29=(_21._bnd)
   _30=(_21._scalable)
   if (_29 is None):
    _24 = numpy.zeros((int((_25).shape[0]),), dtype=numpy.dtype(numpy.float64))
   elif _30: # bld/docker-win/final/default/src/fusion/Model.mbi:760:20-31
    _24 = numpy.array([_29[0] for _31 in range(0,int((_25).shape[0]))], dtype=numpy.dtype(numpy.float64))
   elif (_27 is not None): # bld/docker-win/final/default/src/fusion/Model.mbi:762:20-33
    _32=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int32))
    _32[(_7 - 1)] = 1
    for _33 in range(1,_7):
     _32[((_7 - _33) - 1)] = (_32[(_7 - _33)] * _19[(_7 - _33)])
    _24 = numpy.zeros((int((_25).shape[0]),), dtype=numpy.dtype(numpy.float64))
    for _34 in range(0,int((_27).shape[0])):
     _35=0
     for _36 in range(0,_7):
      _35 += (_32[_36] * _27[_34,_36])
     _24[_35] = _29[_34]
   elif _28: # bld/docker-win/final/default/src/fusion/Model.mbi:771:20-28
    _24 = numpy.zeros((int((_25).shape[0]),), dtype=numpy.dtype(numpy.float64))
   else:
    _24 = numpy.array([_29[_37] for _37 in range(0,int((_25).shape[0]))], dtype=numpy.dtype(numpy.float64))
   if ((_21._key)==mosek.fusion.RelationKey.IsFree):
    self._task_1con_1putboundlist_1fr__3I(_25)
   if ((_21._key)==mosek.fusion.RelationKey.LessThan):
    self._task_1con_1putboundlist_1up__3I_3D(_25,_24)
   elif ((_21._key)==mosek.fusion.RelationKey.GreaterThan): # bld/docker-win/final/default/src/fusion/Model.mbi:794:17-51
    self._task_1con_1putboundlist_1lo__3I_3D(_25,_24)
   elif ((_21._key)==mosek.fusion.RelationKey.EqualsTo): # bld/docker-win/final/default/src/fusion/Model.mbi:798:17-48
    self._task_1con_1putboundlist_1fx__3I_3D(_25,_24)
   if (_11 > 0):
    self.__con_blocks.replace_row_code(self.__rs,_25,_13,_14,_16,_17,_18)
   if (int(len(_0)) > 0):
    _38=mosek.fusion.Utils.StringBuffer()
    _38._a_S(_0)._a_S("[")
    if (int((_19).shape[0]) > 0):
     _38._a_S("%0")
    for _39 in range(1,int((_19).shape[0])):
     _38._a_S(",%")._a_I(_39)
    _38._a_S("]")
    if ((_21._indexnames) is not None):
     self._task_1format_1con_1names__3IS_3I_3J_3_3S(_25,_38._toString_(),_19,None,(_21._indexnames))
    else:
     self._task_1format_1con_1names__3IS_3I_3J_3_3S(_25,_38._toString_(),_19,None,None)
   _40=mosek_fusion_LinearConstraint._ctor_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(self,_0,_26,_19,_25,_23)
   self.__cons[_26] = _40
   if (int(len(_0)) > 0):
    self.__con_map._setItem_SI(_0,_26)
   return (_40)
  @staticmethod
  def _match_getVersion_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getVersion_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _getVersion_alt_():
    return mosek_fusion_Model._getVersion_()
  @staticmethod
  def _getVersion_():
   return (mosek.fusion.BaseModel._env_1getversion_())
  @staticmethod
  def _match_hasParameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_hasParameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _hasParameter_alt_S(self,_t__0):
    return self._hasParameter_S(_0)
  def _hasParameter_S(self,_0):
   return (self.__par_map._hasItem_S(_0))
  @staticmethod
  def _match_hasConstraint_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_hasConstraint_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _hasConstraint_alt_S(self,_t__0):
    return self._hasConstraint_S(_0)
  def _hasConstraint_S(self,_0):
   return (self.__con_map._hasItem_S(_0))
  @staticmethod
  def _match_hasVariable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_hasVariable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _hasVariable_alt_S(self,_t__0):
    return self._hasVariable_S(_0)
  def _hasVariable_S(self,_0):
   return (self.__var_map._hasItem_S(_0))
  @staticmethod
  def _match_getParameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getParameter_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getParameter_alt_S(self,_t__0):
    return self._getParameter_S(_0)
  def _getParameter_S(self,_0):
   return ((self.__parameters[self.__par_map._getItem_S(_0)] if (self.__par_map._hasItem_S(_0) ) else None))
  @staticmethod
  def _match_getConstraint_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getConstraint_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getConstraint_alt_I(self,_t__0):
    return self._getConstraint_I(numpy.int32(__0))
  def _getConstraint_I(self,_0):
   if (_0 >= 0):
    _1 = self.__cons[_0]
   else:
    _1 = self.__acons[(- (1 + _0))]
   return (_1)
  @staticmethod
  def _match_getConstraint_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getConstraint_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getConstraint_alt_S(self,_t__0):
    return self._getConstraint_S(_0)
  def _getConstraint_S(self,_0):
   _1=None
   if self.__con_map._hasItem_S(_0):
    _2=self.__con_map._getItem_S(_0)
    if (_2 >= 0):
     _1 = self.__cons[_2]
    else:
     _1 = self.__acons[(- (1 + _2))]
   return (_1)
  @staticmethod
  def _match_getVariable_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getVariable_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getVariable_alt_I(self,_t__0):
    return self._getVariable_I(numpy.int32(__0))
  def _getVariable_I(self,_0):
   return (self.__vars[_0])
  @staticmethod
  def _match_getVariable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_S__(_0))
  @staticmethod
  def _match_alt_getVariable_S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_S__(_0))
  def _getVariable_alt_S(self,_t__0):
    return self._getVariable_S(_0)
  def _getVariable_S(self,_0):
   if self.__var_map._hasItem_S(_0):
    _1=self.__var_map._getItem_S(_0)
    if (_1 < 0):
     return (self.__barvars[(- (_1 + 1))])
    else:
     return (self.__vars[_1])
   else:
    return (None)
  @staticmethod
  def _match_getName_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getName_(*args):
    if len(args) != 0: return False
    return True
  def _getName_alt_(self,):
    return self._getName_()
  def _getName_(self,):
   return (self.__model_name)
  def _getParameterValue_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._getParameterValue__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getParameterValue__3I(self,_0):
   _1=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.float64))
   for _2 in range(0,int((_0).shape[0])):
    _1[_2] = self.__param_value[_0[_2]]
   return (_1)
  def _setParameterValue_alt__3I_3D(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setParameterValue__3I_3D(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setParameterValue__3I_3D(self,_0,_1):
   for _2 in range(0,int((_0).shape[0])):
    self.__param_value[_0[_2]] = _1[_2]
  @staticmethod
  def _match_clone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_clone_(*args):
    if len(args) != 0: return False
    return True
  def _clone_alt_(self,):
    return self._clone_()
  def _clone_(self,):
   return (mosek_fusion_Model._ctor_Lmosek_4fusion_4Model_2(self))
 return Model
mosek_fusion_Model=__mk_mosek_fusion_Model()
del __mk_mosek_fusion_Model
def __mk_mosek_fusion_Debug():
  import sys
  class Debug:
    @staticmethod
    def _o_(): return Debug()
    def p(self,v):
      sys.stdout.write(str(v))
      return self
    _p_S = p
    _p_I = p
    _p_J = p
    _p_D = p
    _p_Z = p
  
    def p_array (self,v):
      if v is None:
          sys.stdout.write('None')
      else:
          sys.stdout.write('[ %s ]' % ','.join([str(i) for i in v]))
      return self
  
    _p__3I = p_array
    _p__3J = p_array
    _p__3D = p_array
  
    def _lf_(self):
      sys.stdout.write("\n")
      return self
  return Debug
mosek_fusion_Debug=__mk_mosek_fusion_Debug()
def __mk_mosek_fusion_Sort():
 class Sort(object):
  @staticmethod
  def argbucketsort(*args):
    if False: pass
    elif mosek_fusion_Sort._match_argbucketsort__3J_3IJJII(*args): 
      return mosek_fusion_Sort._argbucketsort__3J_3IJJII(*args)
    elif mosek_fusion_Sort._match_alt_argbucketsort__3J_3IJJII(*args): 
      return mosek_fusion_Sort._argbucketsort_alt__3J_3IJJII(*args)
    elif mosek_fusion_Sort._match_argbucketsort__3J_3JJJJJ(*args): 
      return mosek_fusion_Sort._argbucketsort__3J_3JJJJJ(*args)
    elif mosek_fusion_Sort._match_alt_argbucketsort__3J_3JJJJJ(*args): 
      return mosek_fusion_Sort._argbucketsort_alt__3J_3JJJJJ(*args)
    else:
      raise ValueError('Invalid argument list argbucketsort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Sort.argbucketsort(array(int64,ndim=1),array(int32,ndim=1),int64,int64,int32,int32)\n\tmosek.fusion.Sort.argbucketsort(array(int64,ndim=1),array(int64,ndim=1),int64,int64,int64,int64)')
  @staticmethod
  def issorted(*args):
    if False: pass
    elif mosek_fusion_Sort._match_issorted__3J_3IJJZ(*args): 
      return mosek_fusion_Sort._issorted__3J_3IJJZ(*args)
    elif mosek_fusion_Sort._match_alt_issorted__3J_3IJJZ(*args): 
      return mosek_fusion_Sort._issorted_alt__3J_3IJJZ(*args)
    elif mosek_fusion_Sort._match_issorted__3J_3JJJZ(*args): 
      return mosek_fusion_Sort._issorted__3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_alt_issorted__3J_3JJJZ(*args): 
      return mosek_fusion_Sort._issorted_alt__3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_issorted__3J_3I_3IJJZ(*args): 
      return mosek_fusion_Sort._issorted__3J_3I_3IJJZ(*args)
    elif mosek_fusion_Sort._match_alt_issorted__3J_3I_3IJJZ(*args): 
      return mosek_fusion_Sort._issorted_alt__3J_3I_3IJJZ(*args)
    elif mosek_fusion_Sort._match_issorted__3J_3J_3JJJZ(*args): 
      return mosek_fusion_Sort._issorted__3J_3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_alt_issorted__3J_3J_3JJJZ(*args): 
      return mosek_fusion_Sort._issorted_alt__3J_3J_3JJJZ(*args)
    else:
      raise ValueError('Invalid argument list issorted('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Sort.issorted(array(int64,ndim=1),array(int32,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.issorted(array(int64,ndim=1),array(int64,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.issorted(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.issorted(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1),int64,int64,bool)')
  @staticmethod
  def getminmax(*args):
    if False: pass
    elif mosek_fusion_Sort._match_getminmax__3J_3I_3IJJ_3I(*args): 
      return mosek_fusion_Sort._getminmax__3J_3I_3IJJ_3I(*args)
    elif mosek_fusion_Sort._match_alt_getminmax__3J_3I_3IJJ_3I(*args): 
      return mosek_fusion_Sort._getminmax_alt__3J_3I_3IJJ_3I(*args)
    elif mosek_fusion_Sort._match_getminmax__3J_3J_3JJJ_3J(*args): 
      return mosek_fusion_Sort._getminmax__3J_3J_3JJJ_3J(*args)
    elif mosek_fusion_Sort._match_alt_getminmax__3J_3J_3JJJ_3J(*args): 
      return mosek_fusion_Sort._getminmax_alt__3J_3J_3JJJ_3J(*args)
    else:
      raise ValueError('Invalid argument list getminmax('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Sort.getminmax(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1),int64,int64,array(int32,ndim=1))\n\tmosek.fusion.Sort.getminmax(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1),int64,int64,array(int64,ndim=1))')
  @staticmethod
  def argTransposeSort(*args):
    if False: pass
    elif mosek_fusion_Sort._match_argTransposeSort__3J_3JIII_3J(*args): 
      return mosek_fusion_Sort._argTransposeSort__3J_3JIII_3J(*args)
    elif mosek_fusion_Sort._match_alt_argTransposeSort__3J_3JIII_3J(*args): 
      return mosek_fusion_Sort._argTransposeSort_alt__3J_3JIII_3J(*args)
    else:
      raise ValueError('Invalid argument list argTransposeSort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Sort.argTransposeSort(array(int64,ndim=1),array(int64,ndim=1),int32,int32,int32,array(int64,ndim=1))')
  @staticmethod
  def argsort(*args):
    if False: pass
    elif mosek_fusion_Sort._match_argsort__3J_3J(*args): 
      return mosek_fusion_Sort._argsort__3J_3J(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3J(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3J(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3I(*args): 
      return mosek_fusion_Sort._argsort__3J_3I(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3I(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3I(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3I_3I(*args): 
      return mosek_fusion_Sort._argsort__3J_3I_3I(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3I_3I(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3I_3I(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3J_3J(*args): 
      return mosek_fusion_Sort._argsort__3J_3J_3J(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3J_3J(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3J_3J(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3JJJ(*args): 
      return mosek_fusion_Sort._argsort__3J_3JJJ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3JJJ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3JJJ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3IJJ(*args): 
      return mosek_fusion_Sort._argsort__3J_3IJJ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3IJJ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3IJJ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3JJJZ(*args): 
      return mosek_fusion_Sort._argsort__3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3JJJZ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3I_3IJJ(*args): 
      return mosek_fusion_Sort._argsort__3J_3I_3IJJ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3I_3IJJ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3I_3IJJ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3J_3JJJ(*args): 
      return mosek_fusion_Sort._argsort__3J_3J_3JJJ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3J_3JJJ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3J_3JJJ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3IJJZ(*args): 
      return mosek_fusion_Sort._argsort__3J_3IJJZ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3IJJZ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3IJJZ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3I_3IJJZ(*args): 
      return mosek_fusion_Sort._argsort__3J_3I_3IJJZ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3I_3IJJZ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3I_3IJJZ(*args)
    elif mosek_fusion_Sort._match_argsort__3J_3J_3JJJZ(*args): 
      return mosek_fusion_Sort._argsort__3J_3J_3JJJZ(*args)
    elif mosek_fusion_Sort._match_alt_argsort__3J_3J_3JJJZ(*args): 
      return mosek_fusion_Sort._argsort_alt__3J_3J_3JJJZ(*args)
    else:
      raise ValueError('Invalid argument list argsort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1))\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1))\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1),int64,int64)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1),int64,int64)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1),int64,int64)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1),int64,int64)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1),int64,int64,bool)\n\tmosek.fusion.Sort.argsort(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1),int64,int64,bool)')
  def __repr__(self): return 'mosek.fusion.Sort'
  @staticmethod
  def _match_argTransposeSort__3J_3JIII_3J(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3) and __arg_match_I__(_4) and __arg_match__3J__(_5))
  @staticmethod
  def _match_alt_argTransposeSort__3J_3JIII_3J(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match_I__(_4) and __arg_alt_match__3J__(_5))
  @staticmethod
  def _argTransposeSort_alt__3J_3JIII_3J(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int32(_t__2)
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_Sort._argTransposeSort__3J_3JIII_3J(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argTransposeSort__3J_3JIII_3J(_0,_1,_2,_3,_4,_5):
   for _6 in range(0,((_2 * _4) + 1)):
    _1[_6] = 0
   for _7 in range(0,int((_5).shape[0])):
    _1[((((_5[_0[_7]] // (_3 * _4)) * _4) + (_5[_0[_7]] % _4)) + 1)] += 1
   for _8 in range(0,(_2 * _4)):
    _1[(_8 + 1)] = (_1[(_8 + 1)] + _1[_8])
   _9=numpy.array([_0[_10] for _10 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int64))
   for _11 in range(0,int((_5).shape[0])):
    _12=(((_5[_9[_11]] // (_3 * _4)) * _4) + (_5[_9[_11]] % _4))
    _0[_1[_12]] = _9[_11]
    _1[_12] += 1
  @staticmethod
  def _match_argsort__3J_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1))
  @staticmethod
  def _match_alt_argsort__3J_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1))
  @staticmethod
  def _argsort_alt__3J_3J(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_Sort._argsort__3J_3J(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3J(_0,_1):
   mosek.fusion.Sort._argsort__3J_3JJJZ(_0,_1,0,int((_0).shape[0]),False)
  @staticmethod
  def _match_argsort__3J_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_argsort__3J_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _argsort_alt__3J_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Sort._argsort__3J_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3I(_0,_1):
   mosek.fusion.Sort._argsort__3J_3IJJZ(_0,_1,0,int((_0).shape[0]),False)
  @staticmethod
  def _match_argsort__3J_3J_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2))
  @staticmethod
  def _match_alt_argsort__3J_3J_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2))
  @staticmethod
  def _argsort_alt__3J_3J_3J(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_Sort._argsort__3J_3J_3J(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3J_3J(_0,_1,_2):
   mosek.fusion.Sort._argsort__3J_3J_3JJJZ(_0,_1,_2,0,int((_0).shape[0]),False)
  @staticmethod
  def _match_argsort__3J_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_argsort__3J_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _argsort_alt__3J_3I_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Sort._argsort__3J_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3I_3I(_0,_1,_2):
   mosek.fusion.Sort._argsort__3J_3I_3IJJZ(_0,_1,_2,0,int((_0).shape[0]),False)
  @staticmethod
  def _match_argsort__3J_3JJJ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3))
  @staticmethod
  def _match_alt_argsort__3J_3JJJ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3))
  @staticmethod
  def _argsort_alt__3J_3JJJ(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _1_res = mosek_fusion_Sort._argsort__3J_3JJJ(_0,_1,_2,_3)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3JJJ(_0,_1,_2,_3):
   mosek.fusion.Sort._argsort__3J_3JJJZ(_0,_1,_2,_3,False)
  @staticmethod
  def _match_argsort__3J_3IJJ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3))
  @staticmethod
  def _match_alt_argsort__3J_3IJJ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3))
  @staticmethod
  def _argsort_alt__3J_3IJJ(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _1_res = mosek_fusion_Sort._argsort__3J_3IJJ(_0,_1,_2,_3)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3IJJ(_0,_1,_2,_3):
   mosek.fusion.Sort._argsort__3J_3IJJZ(_0,_1,_2,_3,False)
  @staticmethod
  def _match_argsort__3J_3J_3JJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4))
  @staticmethod
  def _match_alt_argsort__3J_3J_3JJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4))
  @staticmethod
  def _argsort_alt__3J_3J_3JJJ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _1_res = mosek_fusion_Sort._argsort__3J_3J_3JJJ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3J_3JJJ(_0,_1,_2,_3,_4):
   mosek.fusion.Sort._argsort__3J_3J_3JJJZ(_0,_1,_2,_3,_4,False)
  @staticmethod
  def _match_argsort__3J_3I_3IJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4))
  @staticmethod
  def _match_alt_argsort__3J_3I_3IJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4))
  @staticmethod
  def _argsort_alt__3J_3I_3IJJ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _1_res = mosek_fusion_Sort._argsort__3J_3I_3IJJ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3I_3IJJ(_0,_1,_2,_3,_4):
   mosek.fusion.Sort._argsort__3J_3I_3IJJZ(_0,_1,_2,_3,_4,False)
  @staticmethod
  def _match_argsort__3J_3JJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_Z__(_4))
  @staticmethod
  def _match_alt_argsort__3J_3JJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_Z__(_4))
  @staticmethod
  def _argsort_alt__3J_3JJJZ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=_t__4
   _1_res = mosek_fusion_Sort._argsort__3J_3JJJZ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3JJJZ(_0,_1,_2,_3,_4):
   if ((not _4) or ((_3 - _2) < 16)):
    mosek.fusion.Utils.Tools._argsort__3J_3JJJ(_0,_1,_2,_3)
   elif (not mosek.fusion.Sort._issorted__3J_3JJJZ(_0,_1,_2,_3,_4)): # bld/docker-win/final/default/src/fusion/Sort.mbi:160:16-56
    _5=numpy.zeros((4,), dtype=numpy.dtype(numpy.int64))
    _6=2
    mosek.fusion.Sort._getminmax__3J_3J_3JJJ_3J(_0,_1,None,_2,_3,_5)
    if ((_5[1] - _5[0]) < (_6 * (_3 - _2))):
     mosek.fusion.Sort._argbucketsort__3J_3JJJJJ(_0,_1,_2,_3,_5[0],_5[1])
    else:
     mosek.fusion.Utils.Tools._argsort__3J_3JJJ(_0,_1,_2,_3)
  @staticmethod
  def _match_argsort__3J_3IJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_Z__(_4))
  @staticmethod
  def _match_alt_argsort__3J_3IJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_Z__(_4))
  @staticmethod
  def _argsort_alt__3J_3IJJZ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=_t__4
   _1_res = mosek_fusion_Sort._argsort__3J_3IJJZ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3IJJZ(_0,_1,_2,_3,_4):
   if ((not _4) or ((_3 - _2) < 16)):
    mosek.fusion.Utils.Tools._argsort__3J_3IJJ(_0,_1,_2,_3)
   elif (not mosek.fusion.Sort._issorted__3J_3IJJZ(_0,_1,_2,_3,_4)): # bld/docker-win/final/default/src/fusion/Sort.mbi:141:16-56
    _5=numpy.zeros((4,), dtype=numpy.dtype(numpy.int32))
    _6=2
    mosek.fusion.Sort._getminmax__3J_3I_3IJJ_3I(_0,_1,None,_2,_3,_5)
    if ((_5[1] - _5[0]) < (_6 * (_3 - _2))):
     mosek.fusion.Sort._argbucketsort__3J_3IJJII(_0,_1,_2,_3,_5[0],_5[1])
    else:
     mosek.fusion.Utils.Tools._argsort__3J_3IJJ(_0,_1,_2,_3)
  @staticmethod
  def _match_argsort__3J_3J_3JJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match_Z__(_5))
  @staticmethod
  def _match_alt_argsort__3J_3J_3JJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match_Z__(_5))
  @staticmethod
  def _argsort_alt__3J_3J_3JJJZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=_t__5
   _1_res = mosek_fusion_Sort._argsort__3J_3J_3JJJZ(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3J_3JJJZ(_0,_1,_2,_3,_4,_5):
   if ((not _5) or ((_4 - _3) < 16)):
    mosek.fusion.Utils.Tools._argsort__3J_3J_3JJJ(_0,_1,_2,_3,_4)
   elif (not mosek.fusion.Sort._issorted__3J_3J_3JJJZ(_0,_1,_2,_3,_4,_5)): # bld/docker-win/final/default/src/fusion/Sort.mbi:120:16-62
    _6=numpy.zeros((4,), dtype=numpy.dtype(numpy.int64))
    _7=2
    mosek.fusion.Sort._getminmax__3J_3J_3JJJ_3J(_0,_1,_2,_3,_4,_6)
    if (((_6[1] - _6[0]) < (_7 * (_4 - _3))) and ((_6[3] - _6[2]) < (_7 * (_4 - _3)))):
     mosek.fusion.Sort._argbucketsort__3J_3JJJJJ(_0,_2,_3,_4,_6[2],_6[3])
     mosek.fusion.Sort._argbucketsort__3J_3JJJJJ(_0,_1,_3,_4,_6[0],_6[1])
    else:
     mosek.fusion.Utils.Tools._argsort__3J_3J_3JJJ(_0,_1,_2,_3,_4)
  @staticmethod
  def _match_argsort__3J_3I_3IJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match_Z__(_5))
  @staticmethod
  def _match_alt_argsort__3J_3I_3IJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match_Z__(_5))
  @staticmethod
  def _argsort_alt__3J_3I_3IJJZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=_t__5
   _1_res = mosek_fusion_Sort._argsort__3J_3I_3IJJZ(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argsort__3J_3I_3IJJZ(_0,_1,_2,_3,_4,_5):
   if ((not _5) or ((_4 - _3) < 16)):
    mosek.fusion.Utils.Tools._argsort__3J_3I_3IJJ(_0,_1,_2,_3,_4)
   elif (not mosek.fusion.Sort._issorted__3J_3I_3IJJZ(_0,_1,_2,_3,_4,_5)): # bld/docker-win/final/default/src/fusion/Sort.mbi:99:16-62
    _6=numpy.zeros((4,), dtype=numpy.dtype(numpy.int32))
    _7=2
    mosek.fusion.Sort._getminmax__3J_3I_3IJJ_3I(_0,_1,_2,_3,_4,_6)
    if (((_6[1] - _6[0]) < (_7 * (_4 - _3))) and ((_6[3] - _6[2]) < (_7 * (_4 - _3)))):
     mosek.fusion.Sort._argbucketsort__3J_3IJJII(_0,_2,_3,_4,_6[2],_6[3])
     mosek.fusion.Sort._argbucketsort__3J_3IJJII(_0,_1,_3,_4,_6[0],_6[1])
    else:
     mosek.fusion.Utils.Tools._argsort__3J_3I_3IJJ(_0,_1,_2,_3,_4)
  @staticmethod
  def _match_argbucketsort__3J_3JJJJJ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match_J__(_5))
  @staticmethod
  def _match_alt_argbucketsort__3J_3JJJJJ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match_J__(_5))
  @staticmethod
  def _argbucketsort_alt__3J_3JJJJJ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=numpy.int64(_t__5)
   _1_res = mosek_fusion_Sort._argbucketsort__3J_3JJJJJ(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argbucketsort__3J_3JJJJJ(_0,_1,_2,_3,_4,_5):
   mosek.fusion.Utils.Tools._bucketsort__3JJJ_3JJJ(_0,_2,_3,_1,_4,_5)
  @staticmethod
  def _match_argbucketsort__3J_3IJJII(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_I__(_4) and __arg_match_I__(_5))
  @staticmethod
  def _match_alt_argbucketsort__3J_3IJJII(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_I__(_4) and __arg_alt_match_I__(_5))
  @staticmethod
  def _argbucketsort_alt__3J_3IJJII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _1_res = mosek_fusion_Sort._argbucketsort__3J_3IJJII(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argbucketsort__3J_3IJJII(_0,_1,_2,_3,_4,_5):
   mosek.fusion.Utils.Tools._bucketsort__3JJJ_3III(_0,_2,_3,_1,_4,_5)
  @staticmethod
  def _match_getminmax__3J_3J_3JJJ_3J(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match__3J__(_5))
  @staticmethod
  def _match_alt_getminmax__3J_3J_3JJJ_3J(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match__3J__(_5))
  @staticmethod
  def _getminmax_alt__3J_3J_3JJJ_3J(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_Sort._getminmax__3J_3J_3JJJ_3J(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _getminmax__3J_3J_3JJJ_3J(_0,_1,_2,_3,_4,_5):
   _5[0] = _1[_0[_3]]
   _5[1] = _1[_0[_3]]
   for _6 in range((_3 + 1),_4):
    if (_5[0] > _1[_0[_6]]):
     _5[0] = _1[_0[_6]]
    if (_5[1] < _1[_0[_6]]):
     _5[1] = _1[_0[_6]]
   if (_2 is not None):
    _5[2] = _2[_0[_3]]
    _5[3] = _2[_0[_3]]
    for _7 in range((_3 + 1),_4):
     if (_5[2] > _2[_0[_7]]):
      _5[2] = _2[_0[_7]]
     if (_5[3] < _2[_0[_7]]):
      _5[3] = _2[_0[_7]]
  @staticmethod
  def _match_getminmax__3J_3I_3IJJ_3I(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match__3I__(_5))
  @staticmethod
  def _match_alt_getminmax__3J_3I_3IJJ_3I(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match__3I__(_5))
  @staticmethod
  def _getminmax_alt__3J_3I_3IJJ_3I(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Sort._getminmax__3J_3I_3IJJ_3I(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _getminmax__3J_3I_3IJJ_3I(_0,_1,_2,_3,_4,_5):
   _5[0] = _1[_0[_3]]
   _5[1] = _1[_0[_3]]
   for _6 in range((_3 + 1),_4):
    if (_5[0] > _1[_0[_6]]):
     _5[0] = _1[_0[_6]]
    if (_5[1] < _1[_0[_6]]):
     _5[1] = _1[_0[_6]]
   if (_2 is not None):
    _5[2] = _2[_0[_3]]
    _5[3] = _2[_0[_3]]
    for _7 in range((_3 + 1),_4):
     if (_5[2] > _2[_0[_7]]):
      _5[2] = _2[_0[_7]]
     if (_5[3] < _2[_0[_7]]):
      _5[3] = _2[_0[_7]]
  @staticmethod
  def _match_issorted__3J_3JJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_Z__(_4))
  @staticmethod
  def _match_alt_issorted__3J_3JJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_Z__(_4))
  @staticmethod
  def _issorted_alt__3J_3JJJZ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=_t__4
   _1_res = mosek_fusion_Sort._issorted__3J_3JJJZ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _issorted__3J_3JJJZ(_0,_1,_2,_3,_4):
   for _5 in range(_2,(_3 - 1)):
    if (_1[_0[_5]] > _1[_0[(_5 + 1)]]):
     return (False)
   return (True)
  @staticmethod
  def _match_issorted__3J_3IJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match_J__(_2) and __arg_match_J__(_3) and __arg_match_Z__(_4))
  @staticmethod
  def _match_alt_issorted__3J_3IJJZ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_Z__(_4))
  @staticmethod
  def _issorted_alt__3J_3IJJZ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int64(_t__2)
   _3=numpy.int64(_t__3)
   _4=_t__4
   _1_res = mosek_fusion_Sort._issorted__3J_3IJJZ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _issorted__3J_3IJJZ(_0,_1,_2,_3,_4):
   for _5 in range(_2,(_3 - 1)):
    if (_1[_0[_5]] > _1[_0[(_5 + 1)]]):
     return (False)
   return (True)
  @staticmethod
  def _match_issorted__3J_3J_3JJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match_Z__(_5))
  @staticmethod
  def _match_alt_issorted__3J_3J_3JJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match_Z__(_5))
  @staticmethod
  def _issorted_alt__3J_3J_3JJJZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=_t__5
   _1_res = mosek_fusion_Sort._issorted__3J_3J_3JJJZ(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _issorted__3J_3J_3JJJZ(_0,_1,_2,_3,_4,_5):
   for _6 in range(_3,(_4 - 1)):
    if ((_1[_0[_6]] > _1[_0[(_6 + 1)]]) or ((_1[_0[(_6 + 1)]]==_1[_0[_6]]) and (_2[_0[_6]] > _2[_0[(_6 + 1)]]))):
     return (False)
   return (True)
  @staticmethod
  def _match_issorted__3J_3I_3IJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4) and __arg_match_Z__(_5))
  @staticmethod
  def _match_alt_issorted__3J_3I_3IJJZ(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4) and __arg_alt_match_Z__(_5))
  @staticmethod
  def _issorted_alt__3J_3I_3IJJZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _5=_t__5
   _1_res = mosek_fusion_Sort._issorted__3J_3I_3IJJZ(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _issorted__3J_3I_3IJJZ(_0,_1,_2,_3,_4,_5):
   for _6 in range(_3,(_4 - 1)):
    if ((_1[_0[_6]] > _1[_0[(_6 + 1)]]) or ((_1[_0[_6]]==_1[_0[(_6 + 1)]]) and (_2[_0[_6]] > _2[_0[(_6 + 1)]]))):
     return (False)
   return (True)
 return Sort
mosek_fusion_Sort=__mk_mosek_fusion_Sort()
del __mk_mosek_fusion_Sort
def __mk_mosek_fusion_IndexCounter():
 class IndexCounter(object):
  __slots__ = ['_IndexCounter__start','_IndexCounter__dims','_IndexCounter__strides','_IndexCounter__st','_IndexCounter__ii','_IndexCounter__n']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3I(*args): 
      self._ctor_init__3I(*args)
    elif self.__match_alt_ctor__3I(*args):
      self._ctor_alt_init__3I(*args)
    elif self.__match_ctor_J_3I_3I(*args): 
      self._ctor_init_J_3I_3I(*args)
    elif self.__match_alt_ctor_J_3I_3I(*args):
      self._ctor_alt_init_J_3I_3I(*args)
    elif self.__match_ctor_J_3I_3J(*args): 
      self._ctor_init_J_3I_3J(*args)
    elif self.__match_alt_ctor_J_3I_3J(*args):
      self._ctor_alt_init_J_3I_3J(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.IndexCounter.ctor(array(int32,ndim=1))\n\tmosek.fusion.IndexCounter.ctor(int64,array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.IndexCounter.ctor(int64,array(int32,ndim=1),array(int64,ndim=1))')
  def getIndex(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_getIndex_(*args): 
      return self._getIndex_(*args)
    elif mosek_fusion_IndexCounter._match_alt_getIndex_(*args): 
      return self._getIndex_alt_(*args)
    else:
      raise ValueError('Invalid argument list getIndex('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.getIndex()')
  def inc(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_inc_(*args): 
      return self._inc_(*args)
    elif mosek_fusion_IndexCounter._match_alt_inc_(*args): 
      return self._inc_alt_(*args)
    else:
      raise ValueError('Invalid argument list inc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.inc()')
  def next(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_next_(*args): 
      return self._next_(*args)
    elif mosek_fusion_IndexCounter._match_alt_next_(*args): 
      return self._next_alt_(*args)
    else:
      raise ValueError('Invalid argument list next('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.next()')
  def reset(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_reset_(*args): 
      return self._reset_(*args)
    elif mosek_fusion_IndexCounter._match_alt_reset_(*args): 
      return self._reset_alt_(*args)
    else:
      raise ValueError('Invalid argument list reset('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.reset()')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_get_(*args): 
      return self._get_(*args)
    elif mosek_fusion_IndexCounter._match_alt_get_(*args): 
      return self._get_alt_(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.get()')
  def atEnd(self,*args):
    if False: pass
    elif mosek_fusion_IndexCounter._match_atEnd_(*args): 
      return self._atEnd_(*args)
    elif mosek_fusion_IndexCounter._match_alt_atEnd_(*args): 
      return self._atEnd_alt_(*args)
    else:
      raise ValueError('Invalid argument list atEnd('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.IndexCounter.atEnd()')
  def __repr__(self): return 'mosek.fusion.IndexCounter'
  @staticmethod
  def _ctor__3I(shape):
    o = IndexCounter.__new__(IndexCounter)
    o._ctor_init__3I(shape)
    return o
  @staticmethod
  def __match_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_match__3I__(shape))
  @staticmethod
  def __match_alt_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_alt_match__3I__(shape))
  def _ctor_alt_init__3I(self,shape):
    self._ctor_init__3I(numpy.array(shape,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init__3I(self,shape):
   self.__n = int((shape).shape[0])
   self.__ii = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int32))
   self.__st = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int64))
   self.__start = 0
   self.__strides = mosek.fusion.Set._strides__3I(shape)
   self.__dims = numpy.array([shape[_0] for _0 in range(0,int((shape).shape[0]))], dtype=numpy.dtype(numpy.int32))
  @staticmethod
  def _ctor_J_3I_3I(start_,dims_,shape):
    o = IndexCounter.__new__(IndexCounter)
    o._ctor_init_J_3I_3I(start_,dims_,shape)
    return o
  @staticmethod
  def __match_ctor_J_3I_3I(*args):
    if len(args) != 3: return False
    start_,dims_,shape, = args
    return (__arg_match_J__(start_) and __arg_match__3I__(dims_) and __arg_match__3I__(shape))
  @staticmethod
  def __match_alt_ctor_J_3I_3I(*args):
    if len(args) != 3: return False
    start_,dims_,shape, = args
    return (__arg_alt_match_J__(start_) and __arg_alt_match__3I__(dims_) and __arg_alt_match__3I__(shape))
  def _ctor_alt_init_J_3I_3I(self,start_,dims_,shape):
    self._ctor_init_J_3I_3I(numpy.int64(start_),numpy.array(dims_,dtype=numpy.dtype(numpy.int32)),numpy.array(shape,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_J_3I_3I(self,start_,dims_,shape):
   _0=int((shape).shape[0])
   self.__n = int((dims_).shape[0])
   self.__ii = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int32))
   self.__st = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int64))
   for _1 in range(0,self.__n):
    self.__st[_1] = start_
   self.__strides = mosek.fusion.Set._strides__3I(shape)
   self.__dims = dims_
   self.__start = start_
  @staticmethod
  def _ctor_J_3I_3J(start_,dims_,strides_):
    o = IndexCounter.__new__(IndexCounter)
    o._ctor_init_J_3I_3J(start_,dims_,strides_)
    return o
  @staticmethod
  def __match_ctor_J_3I_3J(*args):
    if len(args) != 3: return False
    start_,dims_,strides_, = args
    return (__arg_match_J__(start_) and __arg_match__3I__(dims_) and __arg_match__3J__(strides_))
  @staticmethod
  def __match_alt_ctor_J_3I_3J(*args):
    if len(args) != 3: return False
    start_,dims_,strides_, = args
    return (__arg_alt_match_J__(start_) and __arg_alt_match__3I__(dims_) and __arg_alt_match__3J__(strides_))
  def _ctor_alt_init_J_3I_3J(self,start_,dims_,strides_):
    self._ctor_init_J_3I_3J(numpy.int64(start_),numpy.array(dims_,dtype=numpy.dtype(numpy.int32)),numpy.array(strides_,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_J_3I_3J(self,start_,dims_,strides_):
   self.__n = int((dims_).shape[0])
   self.__ii = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int32))
   self.__st = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int64))
   for _0 in range(0,self.__n):
    self.__st[_0] = start_
   self.__strides = strides_
   self.__dims = dims_
   self.__start = start_
  @staticmethod
  def _match_atEnd_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_atEnd_(*args):
    if len(args) != 0: return False
    return True
  def _atEnd_alt_(self,):
    return self._atEnd_()
  def _atEnd_(self,):
   return ((self.__ii[(self.__n - 1)] >= self.__dims[(self.__n - 1)]))
  @staticmethod
  def _match_getIndex_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getIndex_(*args):
    if len(args) != 0: return False
    return True
  def _getIndex_alt_(self,):
    return self._getIndex_()
  def _getIndex_(self,):
   return (self.__ii)
  @staticmethod
  def _match_next_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_next_(*args):
    if len(args) != 0: return False
    return True
  def _next_alt_(self,):
    return self._next_()
  def _next_(self,):
   _0=self.get()
   self.inc()
   return numpy.int64(_0)
  @staticmethod
  def _match_get_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_get_(*args):
    if len(args) != 0: return False
    return True
  def _get_alt_(self,):
    return self._get_()
  def _get_(self,):
   return numpy.int64(self.__st[0])
  @staticmethod
  def _match_inc_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inc_(*args):
    if len(args) != 0: return False
    return True
  def _inc_alt_(self,):
    return self._inc_()
  def _inc_(self,):
   self.__ii[0] += 1
   self.__st[0] = (self.__st[0] + self.__strides[(self.__n - 1)])
   _0 = 0
   while ((_0 < (self.__n - 1)) and (self.__ii[_0]==self.__dims[((self.__n - _0) - 1)])):
    self.__ii[_0] = 0
    self.__ii[(_0 + 1)] += 1
    self.__st[(_0 + 1)] = (self.__st[(_0 + 1)] + self.__strides[((self.__n - _0) - 2)])
    _0 += 1
   for _1 in range(0,_0):
    self.__st[_1] = self.__st[_0]
  @staticmethod
  def _match_reset_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_reset_(*args):
    if len(args) != 0: return False
    return True
  def _reset_alt_(self,):
    return self._reset_()
  def _reset_(self,):
   self.__st = numpy.zeros((self.__n,), dtype=numpy.dtype(numpy.int64))
   for _0 in range(0,self.__n):
    self.__st[_0] = self.__start
 return IndexCounter
mosek_fusion_IndexCounter=__mk_mosek_fusion_IndexCounter()
del __mk_mosek_fusion_IndexCounter
def __mk_mosek_fusion_CommonTools():
 class CommonTools(object):
  @staticmethod
  def resize(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_resize__3DI(*args): 
      return mosek_fusion_CommonTools._resize__3DI(*args)
    elif mosek_fusion_CommonTools._match_alt_resize__3DI(*args): 
      return mosek_fusion_CommonTools._resize_alt__3DI(*args)
    elif mosek_fusion_CommonTools._match_resize__3II(*args): 
      return mosek_fusion_CommonTools._resize__3II(*args)
    elif mosek_fusion_CommonTools._match_alt_resize__3II(*args): 
      return mosek_fusion_CommonTools._resize_alt__3II(*args)
    elif mosek_fusion_CommonTools._match_resize__3JI(*args): 
      return mosek_fusion_CommonTools._resize__3JI(*args)
    elif mosek_fusion_CommonTools._match_alt_resize__3JI(*args): 
      return mosek_fusion_CommonTools._resize_alt__3JI(*args)
    else:
      raise ValueError('Invalid argument list resize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.resize(array(double,ndim=1),int32)\n\tmosek.fusion.CommonTools.resize(array(int32,ndim=1),int32)\n\tmosek.fusion.CommonTools.resize(array(int64,ndim=1),int32)')
  @staticmethod
  def transposeTriplets(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(*args): 
      return mosek_fusion_CommonTools._transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(*args)
    elif mosek_fusion_CommonTools._match_alt_transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(*args): 
      return mosek_fusion_CommonTools._transposeTriplets_alt__3I_3I_3D_3_3I_3_3I_3_3DJII(*args)
    elif mosek_fusion_CommonTools._match_transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(*args): 
      return mosek_fusion_CommonTools._transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(*args)
    elif mosek_fusion_CommonTools._match_alt_transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(*args): 
      return mosek_fusion_CommonTools._transposeTriplets_alt__3I_3I_3D_3_3J_3_3J_3_3DJII(*args)
    else:
      raise ValueError('Invalid argument list transposeTriplets('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.transposeTriplets(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),array(array(int32,ndim=1),ndim=1),array(array(int32,ndim=1),ndim=1),array(array(double,ndim=1),ndim=1),int64,int32,int32)\n\tmosek.fusion.CommonTools.transposeTriplets(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),array(array(int64,ndim=1),ndim=1),array(array(int64,ndim=1),ndim=1),array(array(double,ndim=1),ndim=1),int64,int32,int32)')
  @staticmethod
  def argQsort(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_argQsort__3J_3I_3IJJ(*args): 
      return mosek_fusion_CommonTools._argQsort__3J_3I_3IJJ(*args)
    elif mosek_fusion_CommonTools._match_alt_argQsort__3J_3I_3IJJ(*args): 
      return mosek_fusion_CommonTools._argQsort_alt__3J_3I_3IJJ(*args)
    elif mosek_fusion_CommonTools._match_argQsort__3J_3J_3JJJ(*args): 
      return mosek_fusion_CommonTools._argQsort__3J_3J_3JJJ(*args)
    elif mosek_fusion_CommonTools._match_alt_argQsort__3J_3J_3JJJ(*args): 
      return mosek_fusion_CommonTools._argQsort_alt__3J_3J_3JJJ(*args)
    else:
      raise ValueError('Invalid argument list argQsort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.argQsort(array(int64,ndim=1),array(int32,ndim=1),array(int32,ndim=1),int64,int64)\n\tmosek.fusion.CommonTools.argQsort(array(int64,ndim=1),array(int64,ndim=1),array(int64,ndim=1),int64,int64)')
  @staticmethod
  def binarySearchR(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_binarySearchR__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearchR__3JJ(*args)
    elif mosek_fusion_CommonTools._match_alt_binarySearchR__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearchR_alt__3JJ(*args)
    else:
      raise ValueError('Invalid argument list binarySearchR('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.binarySearchR(array(int64,ndim=1),int64)')
  @staticmethod
  def ndIncr(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_ndIncr__3I_3I_3I(*args): 
      return mosek_fusion_CommonTools._ndIncr__3I_3I_3I(*args)
    elif mosek_fusion_CommonTools._match_alt_ndIncr__3I_3I_3I(*args): 
      return mosek_fusion_CommonTools._ndIncr_alt__3I_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list ndIncr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.ndIncr(array(int32,ndim=1),array(int32,ndim=1),array(int32,ndim=1))')
  @staticmethod
  def binarySearchL(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_binarySearchL__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearchL__3JJ(*args)
    elif mosek_fusion_CommonTools._match_alt_binarySearchL__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearchL_alt__3JJ(*args)
    else:
      raise ValueError('Invalid argument list binarySearchL('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.binarySearchL(array(int64,ndim=1),int64)')
  @staticmethod
  def argMSort(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_argMSort__3I_3I(*args): 
      return mosek_fusion_CommonTools._argMSort__3I_3I(*args)
    elif mosek_fusion_CommonTools._match_alt_argMSort__3I_3I(*args): 
      return mosek_fusion_CommonTools._argMSort_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list argMSort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.argMSort(array(int32,ndim=1),array(int32,ndim=1))')
  @staticmethod
  def binarySearch(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_binarySearch__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearch__3JJ(*args)
    elif mosek_fusion_CommonTools._match_alt_binarySearch__3JJ(*args): 
      return mosek_fusion_CommonTools._binarySearch_alt__3JJ(*args)
    elif mosek_fusion_CommonTools._match_binarySearch__3II(*args): 
      return mosek_fusion_CommonTools._binarySearch__3II(*args)
    elif mosek_fusion_CommonTools._match_alt_binarySearch__3II(*args): 
      return mosek_fusion_CommonTools._binarySearch_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list binarySearch('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.binarySearch(array(int64,ndim=1),int64)\n\tmosek.fusion.CommonTools.binarySearch(array(int32,ndim=1),int32)')
  @staticmethod
  def tripletSort(*args):
    if False: pass
    elif mosek_fusion_CommonTools._match_tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(*args): 
      return mosek_fusion_CommonTools._tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(*args)
    elif mosek_fusion_CommonTools._match_alt_tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(*args): 
      return mosek_fusion_CommonTools._tripletSort_alt__3I_3I_3D_3_3I_3_3I_3_3DJII(*args)
    else:
      raise ValueError('Invalid argument list tripletSort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.CommonTools.tripletSort(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),array(array(int32,ndim=1),ndim=1),array(array(int32,ndim=1),ndim=1),array(array(double,ndim=1),ndim=1),int64,int32,int32)')
  def __repr__(self): return 'mosek.fusion.CommonTools'
  @staticmethod
  def _match_resize__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_resize__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _resize_alt__3JI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_CommonTools._resize__3JI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _resize__3JI(_0,_1):
   if (_1==int((_0).shape[0])):
    return (_0)
   else:
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int64))
    if (_1 > int((_0).shape[0])):
     mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_0,0,_2,0,int((_0).shape[0]))
    else:
     mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_0,0,_2,0,_1)
    return (_2)
  @staticmethod
  def _match_resize__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_resize__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _resize_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_CommonTools._resize__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _resize__3II(_0,_1):
   if (_1==int((_0).shape[0])):
    return (_0)
   else:
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    if (_1 > int((_0).shape[0])):
     mosek.fusion.Utils.Tools._arraycopy__3II_3III(_0,0,_2,0,int((_0).shape[0]))
    else:
     mosek.fusion.Utils.Tools._arraycopy__3II_3III(_0,0,_2,0,_1)
    return (_2)
  @staticmethod
  def _match_resize__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_resize__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _resize_alt__3DI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_CommonTools._resize__3DI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _resize__3DI(_0,_1):
   if (_1==int((_0).shape[0])):
    return (_0)
   else:
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.float64))
    if (_1 > int((_0).shape[0])):
     mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_0,0,_2,0,int((_0).shape[0]))
    else:
     mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_0,0,_2,0,_1)
    return (_2)
  @staticmethod
  def _match_binarySearch__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_binarySearch__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _binarySearch_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_CommonTools._binarySearch__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _binarySearch__3II(_0,_1):
   _2=0
   _3=int((_0).shape[0])
   if (_0[_2]==_1):
    return numpy.int32(_2)
   elif (_0[(_3 - 1)]==_1): # bld/docker-win/final/default/src/fusion/CommonUtil.mbi:396:16-38
    return numpy.int32((_3 - 1))
   while (_2 < (_3 - 1)):
    _4=((_3 - _2) // 2)
    if (_1 < _0[_4]):
     _2 = (_4 + 1)
    elif (_1 > _0[_4]): # bld/docker-win/final/default/src/fusion/CommonUtil.mbi:401:18-36
     _3 = _4
    else:
     return numpy.int32(_4)
   return numpy.int32((- 1))
  @staticmethod
  def _match_binarySearch__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_J__(_1))
  @staticmethod
  def _match_alt_binarySearch__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_J__(_1))
  @staticmethod
  def _binarySearch_alt__3JJ(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int64(_t__1)
   _1_res = mosek_fusion_CommonTools._binarySearch__3JJ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _binarySearch__3JJ(_0,_1):
   _2=mosek.fusion.CommonTools._binarySearchL__3JJ(_0,_1)
   if ((_2 < int((_0).shape[0])) and (_0[_2]==_1)):
    return numpy.int32(_2)
   else:
    return numpy.int32((- 1))
  @staticmethod
  def _match_binarySearchR__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_J__(_1))
  @staticmethod
  def _match_alt_binarySearchR__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_J__(_1))
  @staticmethod
  def _binarySearchR_alt__3JJ(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int64(_t__1)
   _1_res = mosek_fusion_CommonTools._binarySearchR__3JJ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _binarySearchR__3JJ(_0,_1):
   _2=0
   _3=int((_0).shape[0])
   if (_0[_2] > _1):
    return numpy.int32(_2)
   while (_2 < (_3 - 1)):
    _4=((_3 + _2) // 2)
    if (_1 >= _0[_4]):
     _2 = _4
    else:
     _3 = _4
   return numpy.int32(_3)
  @staticmethod
  def _match_binarySearchL__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_J__(_1))
  @staticmethod
  def _match_alt_binarySearchL__3JJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_J__(_1))
  @staticmethod
  def _binarySearchL_alt__3JJ(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int64(_t__1)
   _1_res = mosek_fusion_CommonTools._binarySearchL__3JJ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _binarySearchL__3JJ(_0,_1):
   _2=0
   _3=int((_0).shape[0])
   if (_1 <= _0[_2]):
    return numpy.int32(_2)
   while (_2 < (_3 - 1)):
    _4=((_3 + _2) // 2)
    if (_0[_4] < _1):
     _2 = _4
    else:
     _3 = _4
   return numpy.int32(_3)
  @staticmethod
  def _match_ndIncr__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_ndIncr__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _ndIncr_alt__3I_3I_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_CommonTools._ndIncr__3I_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _ndIncr__3I_3I_3I(_0,_1,_2):
   _3=(int((_0).shape[0]) - 1)
   _0[_3] += 1
   while ((_3 > 0) and (_0[_3] >= _2[_3])):
    _0[_3] = _1[_3]
    _0[(_3 - 1)] += 1
  @staticmethod
  def _match_transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match__3_3J__(_3) and __arg_match__3_3J__(_4) and __arg_match__3_3D__(_5) and __arg_match_J__(_6) and __arg_match_I__(_7) and __arg_match_I__(_8))
  @staticmethod
  def _match_alt_transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match__3_3J__(_3) and __arg_alt_match__3_3J__(_4) and __arg_alt_match__3_3D__(_5) and __arg_alt_match_J__(_6) and __arg_alt_match_I__(_7) and __arg_alt_match_I__(_8))
  @staticmethod
  def _transposeTriplets_alt__3I_3I_3D_3_3J_3_3J_3_3DJII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=_monty.makeJaggedArray(_t__3,(1,1),numpy.dtype(numpy.int64))
   _4=_monty.makeJaggedArray(_t__4,(1,1),numpy.dtype(numpy.int64))
   _5=_monty.makeJaggedArray(_t__5,(1,1),numpy.dtype(numpy.float64))
   _6=numpy.int64(_t__6)
   _7=numpy.int32(_t__7)
   _8=numpy.int32(_t__8)
   _1_res = mosek_fusion_CommonTools._transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _transposeTriplets__3I_3I_3D_3_3J_3_3J_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8):
   _9=numpy.zeros(((_7 + 2),), dtype=numpy.dtype(numpy.int64))
   _10=numpy.zeros(((_8 + 2),), dtype=numpy.dtype(numpy.int64))
   _11=0
   while (_11 < _6):
    _10[(_1[_11] + 2)] = (_10[(_1[_11] + 2)] + 1)
    _9[(_0[_11] + 2)] = (_9[(_0[_11] + 2)] + 1)
    _11 += 1
   _12=1
   while (_12 < _7):
    _9[(_12 + 1)] = (_9[(_12 + 1)] + _9[_12])
    _12 += 1
   _13=1
   while (_13 < _8):
    _10[(_13 + 1)] = (_10[(_13 + 1)] + _10[_13])
    _13 += 1
   _14=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
   _15=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
   _16=numpy.zeros((_6,), dtype=numpy.dtype(numpy.float64))
   for _17 in range(0,_7):
    _18=_9[_17]
    while (_18 < _9[(_17 + 1)]):
     _19=_1[_18]
     _20=_10[_19]
     _14[_20] = _17
     _15[_20] = _19
     _16[_20] = _2[_18]
     _10[_19] = (_20 + 1)
     _18 += 1
   _3[0] = _15
   _4[0] = _14
   _5[0] = _16
  @staticmethod
  def _match_transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match__3_3I__(_3) and __arg_match__3_3I__(_4) and __arg_match__3_3D__(_5) and __arg_match_J__(_6) and __arg_match_I__(_7) and __arg_match_I__(_8))
  @staticmethod
  def _match_alt_transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match__3_3I__(_3) and __arg_alt_match__3_3I__(_4) and __arg_alt_match__3_3D__(_5) and __arg_alt_match_J__(_6) and __arg_alt_match_I__(_7) and __arg_alt_match_I__(_8))
  @staticmethod
  def _transposeTriplets_alt__3I_3I_3D_3_3I_3_3I_3_3DJII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=_monty.makeJaggedArray(_t__3,(1,1),numpy.dtype(numpy.int32))
   _4=_monty.makeJaggedArray(_t__4,(1,1),numpy.dtype(numpy.int32))
   _5=_monty.makeJaggedArray(_t__5,(1,1),numpy.dtype(numpy.float64))
   _6=numpy.int64(_t__6)
   _7=numpy.int32(_t__7)
   _8=numpy.int32(_t__8)
   _1_res = mosek_fusion_CommonTools._transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _transposeTriplets__3I_3I_3D_3_3I_3_3I_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8):
   _9=numpy.zeros(((_7 + 2),), dtype=numpy.dtype(numpy.int64))
   _10=numpy.zeros(((_8 + 2),), dtype=numpy.dtype(numpy.int64))
   _11=0
   while (_11 < _6):
    _10[(_1[_11] + 2)] = (_10[(_1[_11] + 2)] + 1)
    _9[(_0[_11] + 2)] = (_9[(_0[_11] + 2)] + 1)
    _11 += 1
   _12=1
   while (_12 < _7):
    _9[(_12 + 1)] = (_9[(_12 + 1)] + _9[_12])
    _12 += 1
   _13=1
   while (_13 < _8):
    _10[(_13 + 1)] = (_10[(_13 + 1)] + _10[_13])
    _13 += 1
   _14=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _15=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _16=numpy.zeros((_6,), dtype=numpy.dtype(numpy.float64))
   _17=0
   while (_17 < _7):
    for _18 in range(_9[_17],_9[(_17 + 1)]):
     _19=_1[_18]
     _20=_10[_19]
     _14[_20] = _17
     _15[_20] = _19
     _16[_20] = _2[_18]
     _10[_19] = (_20 + 1)
    _17 += 1
   _3[0] = _15
   _4[0] = _14
   _5[0] = _16
  @staticmethod
  def _match_tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match__3_3I__(_3) and __arg_match__3_3I__(_4) and __arg_match__3_3D__(_5) and __arg_match_J__(_6) and __arg_match_I__(_7) and __arg_match_I__(_8))
  @staticmethod
  def _match_alt_tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(*args):
    if len(args) != 9: return False
    _0,_1,_2,_3,_4,_5,_6,_7,_8, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match__3_3I__(_3) and __arg_alt_match__3_3I__(_4) and __arg_alt_match__3_3D__(_5) and __arg_alt_match_J__(_6) and __arg_alt_match_I__(_7) and __arg_alt_match_I__(_8))
  @staticmethod
  def _tripletSort_alt__3I_3I_3D_3_3I_3_3I_3_3DJII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=_monty.makeJaggedArray(_t__3,(1,1),numpy.dtype(numpy.int32))
   _4=_monty.makeJaggedArray(_t__4,(1,1),numpy.dtype(numpy.int32))
   _5=_monty.makeJaggedArray(_t__5,(1,1),numpy.dtype(numpy.float64))
   _6=numpy.int64(_t__6)
   _7=numpy.int32(_t__7)
   _8=numpy.int32(_t__8)
   _1_res = mosek_fusion_CommonTools._tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(_0,_1,_2,_3,_4,_5,_6,_7,_8):
   _9=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _10=numpy.zeros(((_8 + 2),), dtype=numpy.dtype(numpy.int64))
   for _11 in range(0,_6):
    _10[(_1[_11] + 2)] = (_10[(_1[_11] + 2)] + 1)
   for _12 in range(1,_8):
    _10[(_12 + 1)] = (_10[(_12 + 1)] + _10[_12])
   for _13 in range(0,numpy.int32(_6)):
    _14=_1[_13]
    _9[_10[(_14 + 1)]] = _13
    _10[(_14 + 1)] = (_10[(_14 + 1)] + 1)
   _15=numpy.zeros(((_7 + 2),), dtype=numpy.dtype(numpy.int64))
   _16=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
   _17=0
   while (_17 < _6):
    _15[(_0[_17] + 2)] = (_15[(_0[_17] + 2)] + 1)
    _17 += 1
   _18=1
   while (_18 < _7):
    _15[(_18 + 1)] = (_15[(_18 + 1)] + _15[_18])
    _18 += 1
   _19=0
   while (_19 < _8):
    _20=_10[_19]
    while (_20 < _10[(_19 + 1)]):
     _21=_0[_9[_20]]
     _16[_15[(_21 + 1)]] = _9[_20]
     _15[(_21 + 1)] = (_15[(_21 + 1)] + 1)
     _20 += 1
    _19 += 1
   _22=1
   _23=_0[_16[0]]
   _24=_1[_16[0]]
   _25=1
   while (_25 < _6):
    _26=_16[_25]
    if ((_23!=_0[_26]) or (_24!=_1[_26])):
     _23 = _0[_26]
     _24 = _1[_26]
     _22 += 1
    _25 += 1
   _27=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _28=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _29=numpy.zeros((_22,), dtype=numpy.dtype(numpy.float64))
   _30=_16[0]
   _27[0] = _0[_30]
   _28[0] = _1[_30]
   _29[0] = _2[_30]
   _31=1
   for _32 in range(1,_6):
    _33=_16[_32]
    if ((_27[(_31 - 1)]==_0[_33]) and (_28[(_31 - 1)]==_1[_33])):
     _29[(_31 - 1)] = (_29[(_31 - 1)] + _2[_33])
    else:
     _27[_31] = _0[_33]
     _28[_31] = _1[_33]
     _29[_31] = _2[_33]
     _31 += 1
   _3[0] = _27
   _4[0] = _28
   _5[0] = _29
  @staticmethod
  def _match_argMSort__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_argMSort__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _argMSort_alt__3I_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_CommonTools._argMSort__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argMSort__3I_3I(_0,_1):
   _2=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
   _3=False
   _4=1
   while (_4 < int((_0).shape[0])):
    _3 = (not _3)
    for _5 in range(0,int((_0).shape[0]),(_4 * 2)):
     if _3:
      mosek.fusion.CommonTools.__mergeInto__3I_3I_3IIII(_0,_2,_1,_5,(_5 + _4),(_5 + (2 * _4)))
     else:
      mosek.fusion.CommonTools.__mergeInto__3I_3I_3IIII(_2,_0,_1,_5,(_5 + _4),(_5 + (2 * _4)))
    _4 *= 2
   if _3:
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(_2,0,_0,0,int((_0).shape[0]))
  @staticmethod
  def __mergeInto_alt__3I_3I_3IIII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _1_res = mosek_fusion_CommonTools.__mergeInto__3I_3I_3IIII(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __mergeInto__3I_3I_3IIII(_0,_1,_2,_3,_4,_5):
   _6=(int((_0).shape[0]) if ((_5 > int((_0).shape[0])) ) else _5)
   _7=(_6 if ((_4 > _6) ) else _4)
   if (_7==_6):
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(_0,_3,_1,_3,(_7 - _3))
   else:
    _8=_3
    _9=_7
    _10 = _3
    while ((_8 < _7) and (_9 < _6)):
     if (_2[_0[_8]] < _2[_0[_9]]):
      _1[_10] = _0[_8]
      _8 += 1
     else:
      _1[_10] = _0[_9]
      _9 += 1
     _10 += 1
    while (_8 < _7):
     _1[_10] = _0[_8]
     _8 += 1
     _10 += 1
    while (_9 < _6):
     _1[_10] = _0[_9]
     _9 += 1
     _10 += 1
  @staticmethod
  def _match_argQsort__3J_3J_3JJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4))
  @staticmethod
  def _match_alt_argQsort__3J_3J_3JJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4))
  @staticmethod
  def _argQsort_alt__3J_3J_3JJJ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _1_res = mosek_fusion_CommonTools._argQsort__3J_3J_3JJJ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argQsort__3J_3J_3JJJ(_0,_1,_2,_3,_4):
   if (_2 is None):
    mosek.fusion.Utils.Tools._argsort__3J_3JJJ(_0,_1,_3,_4)
   else:
    mosek.fusion.Utils.Tools._argsort__3J_3J_3JJJ(_0,_1,_2,_3,_4)
  @staticmethod
  def _match_argQsort__3J_3I_3IJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match__3J__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2) and __arg_match_J__(_3) and __arg_match_J__(_4))
  @staticmethod
  def _match_alt_argQsort__3J_3I_3IJJ(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_J__(_3) and __arg_alt_match_J__(_4))
  @staticmethod
  def _argQsort_alt__3J_3I_3IJJ(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int64(_t__3)
   _4=numpy.int64(_t__4)
   _1_res = mosek_fusion_CommonTools._argQsort__3J_3I_3IJJ(_0,_1,_2,_3,_4)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _argQsort__3J_3I_3IJJ(_0,_1,_2,_3,_4):
   if (_2 is None):
    mosek.fusion.Utils.Tools._argsort__3J_3IJJ(_0,_1,_3,_4)
   else:
    mosek.fusion.Utils.Tools._argsort__3J_3I_3IJJ(_0,_1,_2,_3,_4)
 return CommonTools
mosek_fusion_CommonTools=__mk_mosek_fusion_CommonTools()
del __mk_mosek_fusion_CommonTools
def __mk_mosek_fusion_SolutionStruct():
 class SolutionStruct(object):
  __slots__ = ['accy','accx','accptr','yx','sux','slx','bars','barx','y','suc','slc','xx','xc','dobj','pobj','probstatus','dstatus','pstatus','sol_numbarvar','sol_numaccelm','sol_numacc','sol_numvar','sol_numcon']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4SolutionStruct_2(*args): 
      self._ctor_init_Lmosek_4fusion_4SolutionStruct_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4SolutionStruct_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4SolutionStruct_2(*args)
    elif self.__match_ctor_IIIII(*args): 
      self._ctor_init_IIIII(*args)
    elif self.__match_alt_ctor_IIIII(*args):
      self._ctor_alt_init_IIIII(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.SolutionStruct.ctor(mosek.fusion.SolutionStruct)\n\tmosek.fusion.SolutionStruct.ctor(int32,int32,int32,int32,int32)')
  def resize(self,*args):
    if False: pass
    elif mosek_fusion_SolutionStruct._match_resize_IIIII(*args): 
      return self._resize_IIIII(*args)
    elif mosek_fusion_SolutionStruct._match_alt_resize_IIIII(*args): 
      return self._resize_alt_IIIII(*args)
    else:
      raise ValueError('Invalid argument list resize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SolutionStruct.resize(int32,int32,int32,int32,int32)')
  def clone(self,*args):
    if False: pass
    elif mosek_fusion_SolutionStruct._match_clone_(*args): 
      return self._clone_(*args)
    elif mosek_fusion_SolutionStruct._match_alt_clone_(*args): 
      return self._clone_alt_(*args)
    else:
      raise ValueError('Invalid argument list clone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SolutionStruct.clone()')
  def isPrimalAcceptable(self,*args):
    if False: pass
    elif mosek_fusion_SolutionStruct._match_isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args)
    elif mosek_fusion_SolutionStruct._match_alt_isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._isPrimalAcceptable_alt_Emosek_4fusion_4AccSolutionStatus_2(*args)
    else:
      raise ValueError('Invalid argument list isPrimalAcceptable('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SolutionStruct.isPrimalAcceptable(mosek.fusion.AccSolutionStatus)')
  def isDualAcceptable(self,*args):
    if False: pass
    elif mosek_fusion_SolutionStruct._match_isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args)
    elif mosek_fusion_SolutionStruct._match_alt_isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args): 
      return self._isDualAcceptable_alt_Emosek_4fusion_4AccSolutionStatus_2(*args)
    else:
      raise ValueError('Invalid argument list isDualAcceptable('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SolutionStruct.isDualAcceptable(mosek.fusion.AccSolutionStatus)')
  def __repr__(self): return 'mosek.fusion.SolutionStruct'
  @staticmethod
  def _ctor_IIIII(numvar,numcon,numbarvar,numacc,numaccelm):
    o = SolutionStruct.__new__(SolutionStruct)
    o._ctor_init_IIIII(numvar,numcon,numbarvar,numacc,numaccelm)
    return o
  @staticmethod
  def __match_ctor_IIIII(*args):
    if len(args) != 5: return False
    numvar,numcon,numbarvar,numacc,numaccelm, = args
    return (__arg_match_I__(numvar) and __arg_match_I__(numcon) and __arg_match_I__(numbarvar) and __arg_match_I__(numacc) and __arg_match_I__(numaccelm))
  @staticmethod
  def __match_alt_ctor_IIIII(*args):
    if len(args) != 5: return False
    numvar,numcon,numbarvar,numacc,numaccelm, = args
    return (__arg_alt_match_I__(numvar) and __arg_alt_match_I__(numcon) and __arg_alt_match_I__(numbarvar) and __arg_alt_match_I__(numacc) and __arg_alt_match_I__(numaccelm))
  def _ctor_alt_init_IIIII(self,numvar,numcon,numbarvar,numacc,numaccelm):
    self._ctor_init_IIIII(numpy.int32(numvar),numpy.int32(numcon),numpy.int32(numbarvar),numpy.int32(numacc),numpy.int32(numaccelm))
  def _ctor_init_IIIII(self,numvar,numcon,numbarvar,numacc,numaccelm):
   self.pobj = 0.0
   self.dobj = 0.0
   self.pstatus = mosek.fusion.SolutionStatus.Unknown
   self.dstatus = mosek.fusion.SolutionStatus.Unknown
   self.probstatus = mosek.fusion.ProblemStatus.Unknown
   self.sol_numvar = numvar
   self.sol_numcon = numcon
   self.sol_numbarvar = numbarvar
   self.sol_numacc = numacc
   self.sol_numaccelm = numaccelm
   self.slx = None
   self.sux = None
   self.xx = None
   self.yx = None
   self.slc = None
   self.suc = None
   self.y = None
   self.xc = None
   self.barx = None
   self.bars = None
   self.accx = None
   self.accy = None
   self.accptr = None
   if (numvar > 0):
    self.slx = numpy.zeros((numvar,), dtype=numpy.dtype(numpy.float64))
    self.sux = numpy.zeros((numvar,), dtype=numpy.dtype(numpy.float64))
    self.xx = numpy.zeros((numvar,), dtype=numpy.dtype(numpy.float64))
    self.yx = numpy.zeros((numvar,), dtype=numpy.dtype(numpy.float64))
   if (numbarvar > 0):
    self.barx = numpy.zeros((numbarvar,), dtype=numpy.dtype(numpy.float64))
    self.bars = numpy.zeros((numbarvar,), dtype=numpy.dtype(numpy.float64))
   if (numcon > 0):
    self.slc = numpy.zeros((numcon,), dtype=numpy.dtype(numpy.float64))
    self.suc = numpy.zeros((numcon,), dtype=numpy.dtype(numpy.float64))
    self.y = numpy.zeros((numcon,), dtype=numpy.dtype(numpy.float64))
    self.xc = numpy.zeros((numcon,), dtype=numpy.dtype(numpy.float64))
   if (numacc > 0):
    self.accx = numpy.zeros((numaccelm,), dtype=numpy.dtype(numpy.float64))
    self.accy = numpy.zeros((numaccelm,), dtype=numpy.dtype(numpy.float64))
    self.accptr = numpy.zeros(((numacc + 1),), dtype=numpy.dtype(numpy.int32))
  @staticmethod
  def _ctor_Lmosek_4fusion_4SolutionStruct_2(that):
    o = SolutionStruct.__new__(SolutionStruct)
    o._ctor_init_Lmosek_4fusion_4SolutionStruct_2(that)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4SolutionStruct_2(*args):
    if len(args) != 1: return False
    that, = args
    return (__arg_match_Lmosek_4fusion_4SolutionStruct_2__(that))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4SolutionStruct_2(*args):
    if len(args) != 1: return False
    that, = args
    return (__arg_alt_match_Lmosek_4fusion_4SolutionStruct_2__(that))
  def _ctor_alt_init_Lmosek_4fusion_4SolutionStruct_2(self,that):
    self._ctor_init_Lmosek_4fusion_4SolutionStruct_2(that)
  def _ctor_init_Lmosek_4fusion_4SolutionStruct_2(self,that):
   self.sol_numcon = (that.sol_numcon)
   self.sol_numvar = (that.sol_numvar)
   self.sol_numbarvar = (that.sol_numbarvar)
   self.sol_numacc = (that.sol_numacc)
   self.sol_numaccelm = (that.sol_numaccelm)
   self.pstatus = (that.pstatus)
   self.dstatus = (that.dstatus)
   self.probstatus = (that.probstatus)
   self.pobj = (that.pobj)
   self.dobj = (that.dobj)
   self.xc = (mosek.fusion.Utils.Tools._arraycopy__3D((that.xc)) if (((that.xc) is not None) ) else None)
   self.xx = (mosek.fusion.Utils.Tools._arraycopy__3D((that.xx)) if (((that.xx) is not None) ) else None)
   self.yx = (mosek.fusion.Utils.Tools._arraycopy__3D((that.yx)) if (((that.yx) is not None) ) else None)
   self.slc = (mosek.fusion.Utils.Tools._arraycopy__3D((that.slc)) if (((that.slc) is not None) ) else None)
   self.suc = (mosek.fusion.Utils.Tools._arraycopy__3D((that.suc)) if (((that.suc) is not None) ) else None)
   self.y = (mosek.fusion.Utils.Tools._arraycopy__3D((that.y)) if (((that.y) is not None) ) else None)
   self.barx = (mosek.fusion.Utils.Tools._arraycopy__3D((that.barx)) if (((that.barx) is not None) ) else None)
   self.bars = (mosek.fusion.Utils.Tools._arraycopy__3D((that.bars)) if (((that.bars) is not None) ) else None)
   self.slx = (mosek.fusion.Utils.Tools._arraycopy__3D((that.slx)) if (((that.slx) is not None) ) else None)
   self.sux = (mosek.fusion.Utils.Tools._arraycopy__3D((that.sux)) if (((that.sux) is not None) ) else None)
   self.accptr = (mosek.fusion.Utils.Tools._arraycopy__3I((that.accptr)) if (((that.accptr) is not None) ) else None)
   self.accx = (mosek.fusion.Utils.Tools._arraycopy__3D((that.accx)) if (((that.accx) is not None) ) else None)
   self.accy = (mosek.fusion.Utils.Tools._arraycopy__3D((that.accy)) if (((that.accy) is not None) ) else None)
  @staticmethod
  def _match_clone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_clone_(*args):
    if len(args) != 0: return False
    return True
  def _clone_alt_(self,):
    return self._clone_()
  def _clone_(self,):
   return (mosek_fusion_SolutionStruct._ctor_Lmosek_4fusion_4SolutionStruct_2(self))
  @staticmethod
  def _match_resize_IIIII(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3) and __arg_match_I__(_4))
  @staticmethod
  def _match_alt_resize_IIIII(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match_I__(_4))
  def _resize_alt_IIIII(self,_t__0,_t__1,_t__2,_t__3,_t__4):
    return self._resize_IIIII(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2),numpy.int32(__3),numpy.int32(__4))
  def _resize_IIIII(self,_0,_1,_2,_3,_4):
   if (_3 <= 0):
    self.sol_numacc = 0
   elif (_3 <= (int((self.accptr).shape[0]) - 1)): # bld/docker-win/final/default/src/fusion/Model.mbi:5599:16-39
    self.sol_numacc = _3
   else:
    _5=((int((self.accptr).shape[0]) - 1) * 2)
    if (_5 < _3):
     _5 = _3
    _6=numpy.zeros(((_5 + 1),), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.accptr,0,_6,0,(_3 + 1))
    self.accptr = _6
    self.sol_numacc = _3
   if (_4 <= 0):
    self.sol_numaccelm = 0
   elif (_4 > int((self.accx).shape[0])): # bld/docker-win/final/default/src/fusion/Model.mbi:5613:16-37
    self.sol_numaccelm = _4
   else:
    _7=(int((self.accx).shape[0]) * 2)
    if (_7 < _4):
     _7 = _4
    _8=numpy.zeros((_7,), dtype=numpy.dtype(numpy.float64))
    _9=numpy.zeros((_7,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.accx,0,_8,0,_4)
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.accy,0,_9,0,_4)
    self.accx = _8
    self.accy = _9
    self.sol_numaccelm = _4
   if (_2 < 0):
    pass
   elif (_2 <= self.sol_numbarvar): # bld/docker-win/final/default/src/fusion/Model.mbi:5630:18-44
    self.sol_numbarvar = _2
   elif (_2 <= int((self.barx).shape[0])): # bld/docker-win/final/default/src/fusion/Model.mbi:5633:18-40
    pass
   else:
    if ((self.sol_numbarvar * 2) > (_2 + 100)):
     _10 = (self.sol_numbarvar * 2)
    else:
     _10 = (_2 + 100)
    self.barx = mosek.fusion.CommonTools._resize__3DI(self.barx,_10)
    self.bars = mosek.fusion.CommonTools._resize__3DI(self.bars,_10)
    self.sol_numbarvar = _10
   if (_0 < 0):
    pass
   elif (_0 <= self.sol_numvar): # bld/docker-win/final/default/src/fusion/Model.mbi:5651:18-38
    self.sol_numvar = _0
   elif (_0 <= int((self.xx).shape[0])): # bld/docker-win/final/default/src/fusion/Model.mbi:5656:18-35
    for _11 in range(self.sol_numvar,_0):
     self.slx[_11] = 0.0
     self.sux[_11] = 0.0
     self.xx[_11] = 0.0
     self.yx[_11] = 0.0
    self.sol_numvar = _0
   else:
    if ((self.sol_numvar * 2) > (_0 + 100)):
     _12 = (self.sol_numvar * 2)
    else:
     _12 = (_0 + 100)
    _13=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.slx,0,_13,0,int((self.slx).shape[0]))
    self.slx = _13
    _14=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.sux,0,_14,0,int((self.sux).shape[0]))
    self.sux = _14
    _15=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.xx,0,_15,0,int((self.xx).shape[0]))
    self.xx = _15
    _16=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.yx,0,_16,0,int((self.yx).shape[0]))
    self.yx = _16
    _17=self.sol_numvar
    while (_17 < _0):
     self.slx[_17] = 0.0
     self.sux[_17] = 0.0
     self.xx[_17] = 0.0
     _17 += 1
    self.sol_numvar = _0
   if (_1 < 0):
    pass
   elif (_1 <= self.sol_numcon): # bld/docker-win/final/default/src/fusion/Model.mbi:5706:18-38
    self.sol_numcon = _1
   elif (_1 <= int((self.xx).shape[0])): # bld/docker-win/final/default/src/fusion/Model.mbi:5711:18-35
    for _18 in range(self.sol_numcon,_1):
     self.slc[_18] = 0.0
     self.suc[_18] = 0.0
     self.xc[_18] = 0.0
     self.y[_18] = 0.0
    self.sol_numcon = _1
   else:
    if ((self.sol_numcon * 2) > (_1 + 100)):
     _19 = (self.sol_numcon * 2)
    else:
     _19 = (_1 + 100)
    _20=numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.slc,0,_20,0,int((self.slc).shape[0]))
    self.slc = _20
    _21=numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.suc,0,_21,0,int((self.suc).shape[0]))
    self.suc = _21
    _22=numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.xc,0,_22,0,int((self.xc).shape[0]))
    self.xc = _22
    _23=numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.y,0,_23,0,int((self.y).shape[0]))
    self.y = _23
    for _24 in range(self.sol_numcon,_1):
     self.slc[_24] = 0.0
     self.suc[_24] = 0.0
     self.xc[_24] = 0.0
     self.y[_24] = 0.0
    self.sol_numcon = _1
  @staticmethod
  def _match_isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  @staticmethod
  def _match_alt_isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  def _isDualAcceptable_alt_Emosek_4fusion_4AccSolutionStatus_2(self,_t__0):
    return self._isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(__0)
  def _isDualAcceptable_Emosek_4fusion_4AccSolutionStatus_2(self,_0):
   return (self.__isAcceptable_Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4AccSolutionStatus_2(self.dstatus,_0))
  @staticmethod
  def _match_isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  @staticmethod
  def _match_alt_isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Emosek_4fusion_4AccSolutionStatus_2__(_0))
  def _isPrimalAcceptable_alt_Emosek_4fusion_4AccSolutionStatus_2(self,_t__0):
    return self._isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(__0)
  def _isPrimalAcceptable_Emosek_4fusion_4AccSolutionStatus_2(self,_0):
   return (self.__isAcceptable_Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4AccSolutionStatus_2(self.pstatus,_0))
  def __isAcceptable_alt_Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4AccSolutionStatus_2(self,_t__0,_t__1):
    return self.__isAcceptable_Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4AccSolutionStatus_2(__0,__1)
  def __isAcceptable_Emosek_4fusion_4SolutionStatus_2Emosek_4fusion_4AccSolutionStatus_2(self,_0,_1):
   if (_1==mosek.fusion.AccSolutionStatus.Anything):
    return (True)
   elif (_1==mosek.fusion.AccSolutionStatus.Optimal): # bld/docker-win/final/default/src/fusion/Model.mbi:5561:16-52
    return ((_0==mosek.fusion.SolutionStatus.Optimal))
   elif (_1==mosek.fusion.AccSolutionStatus.Feasible): # bld/docker-win/final/default/src/fusion/Model.mbi:5565:16-53
    return (((_0==mosek.fusion.SolutionStatus.Optimal) or (_0==mosek.fusion.SolutionStatus.Feasible)))
   elif (_1==mosek.fusion.AccSolutionStatus.Certificate): # bld/docker-win/final/default/src/fusion/Model.mbi:5571:16-56
    return ((_0==mosek.fusion.SolutionStatus.Certificate))
   return (False)
 return SolutionStruct
mosek_fusion_SolutionStruct=__mk_mosek_fusion_SolutionStruct()
del __mk_mosek_fusion_SolutionStruct
def __mk_mosek_fusion_RowBlockManager():
 class RowBlockManager(object):
  __slots__ = ['varidx_used','code_used','cconst','code','first_free_codeitem','param_code_sizes','param_varidx','first_free_entry','row_code_ptr','row_param_ptre','row_param_ptrb','blocks']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_Lmosek_4fusion_4RowBlockManager_2(*args): 
      self._ctor_init_Lmosek_4fusion_4RowBlockManager_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4RowBlockManager_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4RowBlockManager_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.RowBlockManager.ctor()\n\tmosek.fusion.RowBlockManager.ctor(mosek.fusion.RowBlockManager)')
  def blocksize(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_blocksize_I(*args): 
      return self._blocksize_I(*args)
    elif mosek_fusion_RowBlockManager._match_alt_blocksize_I(*args): 
      return self._blocksize_alt_I(*args)
    else:
      raise ValueError('Invalid argument list blocksize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.blocksize(int32)')
  def num_parameterized(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_num_1parameterized_(*args): 
      return self._num_1parameterized_(*args)
    elif mosek_fusion_RowBlockManager._match_alt_num_1parameterized_(*args): 
      return self._num_1parameterized_alt_(*args)
    else:
      raise ValueError('Invalid argument list num_parameterized('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.num_parameterized()')
  def release(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_release_I_3I(*args): 
      return self._release_I_3I(*args)
    elif mosek_fusion_RowBlockManager._match_alt_release_I_3I(*args): 
      return self._release_alt_I_3I(*args)
    else:
      raise ValueError('Invalid argument list release('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.release(int32,array(int32,ndim=1))')
  def block_capacity(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_block_1capacity_(*args): 
      return self._block_1capacity_(*args)
    elif mosek_fusion_RowBlockManager._match_alt_block_1capacity_(*args): 
      return self._block_1capacity_alt_(*args)
    else:
      raise ValueError('Invalid argument list block_capacity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.block_capacity()')
  def is_parameterized(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_is_1parameterized_(*args): 
      return self._is_1parameterized_(*args)
    elif mosek_fusion_RowBlockManager._match_alt_is_1parameterized_(*args): 
      return self._is_1parameterized_alt_(*args)
    else:
      raise ValueError('Invalid argument list is_parameterized('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.is_parameterized()')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_get_I_3II(*args): 
      return self._get_I_3II(*args)
    elif mosek_fusion_RowBlockManager._match_alt_get_I_3II(*args): 
      return self._get_alt_I_3II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.get(int32,array(int32,ndim=1),int32)')
  def row_is_parameterized(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_row_1is_1parameterized_I(*args): 
      return self._row_1is_1parameterized_I(*args)
    elif mosek_fusion_RowBlockManager._match_alt_row_1is_1parameterized_I(*args): 
      return self._row_1is_1parameterized_alt_I(*args)
    else:
      raise ValueError('Invalid argument list row_is_parameterized('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.row_is_parameterized(int32)')
  def clear_row_code(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_clear_1row_1code__3I(*args): 
      return self._clear_1row_1code__3I(*args)
    elif mosek_fusion_RowBlockManager._match_alt_clear_1row_1code__3I(*args): 
      return self._clear_1row_1code_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list clear_row_code('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.clear_row_code(array(int32,ndim=1))')
  def capacity(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_capacity_(*args): 
      return self._capacity_(*args)
    elif mosek_fusion_RowBlockManager._match_alt_capacity_(*args): 
      return self._capacity_alt_(*args)
    else:
      raise ValueError('Invalid argument list capacity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.capacity()')
  def evaluate(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args): 
      return self._evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args)
    elif mosek_fusion_RowBlockManager._match_alt_evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args): 
      return self._evaluate_alt_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list evaluate('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.evaluate(mosek.fusion.WorkStack,array(double,ndim=1),array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))')
  def replace_row_code(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args): 
      return self._replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args)
    elif mosek_fusion_RowBlockManager._match_alt_replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args): 
      return self._replace_1row_1code_alt_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args)
    else:
      raise ValueError('Invalid argument list replace_row_code('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.replace_row_code(mosek.fusion.WorkStack,array(int32,ndim=1),int32,int32,int32,int32,int32)')
  def allocate(self,*args):
    if False: pass
    elif mosek_fusion_RowBlockManager._match_allocate__3I(*args): 
      return self._allocate__3I(*args)
    elif mosek_fusion_RowBlockManager._match_alt_allocate__3I(*args): 
      return self._allocate_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list allocate('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RowBlockManager.allocate(array(int32,ndim=1))')
  def __repr__(self): return 'mosek.fusion.RowBlockManager'
  @staticmethod
  def _ctor_Lmosek_4fusion_4RowBlockManager_2(that):
    o = RowBlockManager.__new__(RowBlockManager)
    o._ctor_init_Lmosek_4fusion_4RowBlockManager_2(that)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4RowBlockManager_2(*args):
    if len(args) != 1: return False
    that, = args
    return (__arg_match_Lmosek_4fusion_4RowBlockManager_2__(that))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4RowBlockManager_2(*args):
    if len(args) != 1: return False
    that, = args
    return (__arg_alt_match_Lmosek_4fusion_4RowBlockManager_2__(that))
  def _ctor_alt_init_Lmosek_4fusion_4RowBlockManager_2(self,that):
    self._ctor_init_Lmosek_4fusion_4RowBlockManager_2(that)
  def _ctor_init_Lmosek_4fusion_4RowBlockManager_2(self,that):
   self.blocks = mosek_fusion_LinkedBlocks._ctor_Lmosek_4fusion_4LinkedBlocks_2((that.blocks))
   self.row_param_ptrb = (mosek.fusion.Utils.Tools._arraycopy__3I((that.row_param_ptrb)) if (((that.row_param_ptrb) is not None) ) else None)
   self.row_param_ptre = (mosek.fusion.Utils.Tools._arraycopy__3I((that.row_param_ptre)) if (((that.row_param_ptre) is not None) ) else None)
   self.row_code_ptr = (mosek.fusion.Utils.Tools._arraycopy__3I((that.row_code_ptr)) if (((that.row_code_ptr) is not None) ) else None)
   self.first_free_entry = (that.first_free_entry)
   self.param_varidx = (mosek.fusion.Utils.Tools._arraycopy__3J((that.param_varidx)) if (((that.param_varidx) is not None) ) else None)
   self.param_code_sizes = (mosek.fusion.Utils.Tools._arraycopy__3I((that.param_code_sizes)) if (((that.param_code_sizes) is not None) ) else None)
   self.first_free_codeitem = (that.first_free_codeitem)
   self.code = (mosek.fusion.Utils.Tools._arraycopy__3I((that.code)) if (((that.code) is not None) ) else None)
   self.cconst = (mosek.fusion.Utils.Tools._arraycopy__3D((that.cconst)) if (((that.cconst) is not None) ) else None)
   self.code_used = (that.code_used)
   self.varidx_used = (that.varidx_used)
  @staticmethod
  def _ctor_():
    o = RowBlockManager.__new__(RowBlockManager)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   self.blocks = mosek_fusion_LinkedBlocks._ctor_()
   self.row_param_ptrb = None
   self.row_param_ptre = None
   self.row_code_ptr = None
   self.first_free_entry = 0
   self.param_varidx = None
   self.param_code_sizes = None
   self.first_free_codeitem = 0
   self.code = None
   self.cconst = None
   self.code_used = 0
   self.varidx_used = 0
  @staticmethod
  def _match_num_1parameterized_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_num_1parameterized_(*args):
    if len(args) != 0: return False
    return True
  def _num_1parameterized_alt_(self,):
    return self._num_1parameterized_()
  def _num_1parameterized_(self,):
   return numpy.int32(self.varidx_used)
  @staticmethod
  def _match_is_1parameterized_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_is_1parameterized_(*args):
    if len(args) != 0: return False
    return True
  def _is_1parameterized_alt_(self,):
    return self._is_1parameterized_()
  def _is_1parameterized_(self,):
   return ((self.code_used > 0))
  @staticmethod
  def _match_blocksize_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_blocksize_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _blocksize_alt_I(self,_t__0):
    return self._blocksize_I(numpy.int32(__0))
  def _blocksize_I(self,_0):
   return numpy.int32(self.blocks.blocksize(_0))
  @staticmethod
  def _match_block_1capacity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_block_1capacity_(*args):
    if len(args) != 0: return False
    return True
  def _block_1capacity_alt_(self,):
    return self._block_1capacity_()
  def _block_1capacity_(self,):
   return numpy.int32(self.blocks.block_capacity())
  @staticmethod
  def _match_capacity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_capacity_(*args):
    if len(args) != 0: return False
    return True
  def _capacity_alt_(self,):
    return self._capacity_()
  def _capacity_(self,):
   return numpy.int32(self.blocks.capacity())
  @staticmethod
  def _match_get_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_get_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_I__(_2))
  def _get_alt_I_3II(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _1_res = self._get_I_3II(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _get_I_3II(self,_0,_1,_2):
   self.blocks.get(_0,_1,_2)
  @staticmethod
  def _match_evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match__3D__(_1) and __arg_match__3I__(_2) and __arg_match__3I__(_3) and __arg_match__3D__(_4))
  @staticmethod
  def _match_alt_evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match__3I__(_3) and __arg_alt_match__3D__(_4))
  def _evaluate_alt_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(self,_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _1_res = self._evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(_0,_1,_2,_3,_4)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _evaluate_Lmosek_4fusion_4WorkStack_2_3D_3I_3I_3D(self,_0,_1,_2,_3,_4):
   _5=_0.allocf64(self.code_used)
   _6=0
   _7=(_0.f64)
   _8=0
   for _9 in range(0,int((self.row_param_ptrb).shape[0])):
    if (self.row_param_ptrb[_9] < self.row_param_ptre[_9]):
     _10=self.row_code_ptr[_9]
     for _11 in range(self.row_param_ptrb[_9],self.row_param_ptre[_9]):
      for _12 in range(0,self.param_code_sizes[_11]):
       if (self.code[_10]==0):
        pass
       else:
        if (self.code[_10]==1):
         _7[(_5 + _6)] = _1[numpy.int32(self.cconst[_10])]
         _6 += 1
        else:
         if (self.code[_10]==2):
          _7[(_5 + _6)] = self.cconst[_10]
          _6 += 1
         else:
          if (self.code[_10]==3):
           _7[((_5 + _6) - 2)] += _7[((_5 + _6) - 1)]
           _6 -= 1
          else:
           if (self.code[_10]==4):
            _7[((_5 + _6) - 1)] = (- _7[((_5 + _6) - 1)])
           else:
            if (self.code[_10]==5):
             _7[((_5 + _6) - 2)] *= _7[((_5 + _6) - 1)]
             _6 -= 1
            else:
             if (self.code[_10]==6):
              _7[((_5 + _6) - 1)] = (1.0 / _7[((_5 + _6) - 1)])
             else:
              if (self.code[_10]==8):
               _13=0.0
               for _14 in range(0,numpy.int32(self.cconst[_10])):
                _13 += _7[((_5 + _6) - 1)]
                _6 -= 1
               _7[(_5 + _6)] = _13
               _6 += 1
              else:
               pass
       _10 += 1
      _2[_8] = _9
      _3[_8] = numpy.int32(self.param_varidx[_11])
      _4[_8] = _7[_5]
      _6 = 0
      _8 += 1
   _0.popf64(self.code_used)
  @staticmethod
  def _match_replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match__3I__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3) and __arg_match_I__(_4) and __arg_match_I__(_5) and __arg_match_I__(_6))
  @staticmethod
  def _match_alt_replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match_I__(_4) and __arg_alt_match_I__(_5) and __arg_alt_match_I__(_6))
  def _replace_1row_1code_alt_Lmosek_4fusion_4WorkStack_2_3IIIIII(self,_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _6=numpy.int32(_t__6)
   _1_res = self._replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(_0,_1,_2,_3,_4,_5,_6)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _replace_1row_1code_Lmosek_4fusion_4WorkStack_2_3IIIIII(self,_0,_1,_2,_3,_4,_5,_6):
   _7=int((_1).shape[0])
   _8=(_0.i32)
   _9=(_0.i64)
   _10=(_0.f64)
   _11=True
   _12=0
   _13=0
   for _14 in range(0,_7):
    for _15 in range(_8[(_2 + _14)],_8[((_2 + _14) + 1)]):
     if (((_8[((_4 + _15) + 1)] - _8[(_4 + _15)])==1) and ((_8[(_5 + _8[(_4 + _15)])]==10) or (_8[(_5 + _8[(_4 + _15)])]==2))):
      pass
     else:
      _13 += 1
      _12 += (_8[((_4 + _15) + 1)] - _8[(_4 + _15)])
   self.clear_row_code(_1)
   self.__ensure_1code_1cap_II(_13,_12)
   self.code_used += _12
   self.varidx_used += _13
   if (self.first_free_codeitem > (self.code_used * 2)):
    self.__compress_()
   for _16 in range(0,_7):
    _17=_1[_16]
    _18=0
    _19=0
    for _20 in range(_8[(_2 + _16)],_8[((_2 + _16) + 1)]):
     if (((_8[((_4 + _20) + 1)] - _8[(_4 + _20)])==1) and ((_8[(_5 + _8[(_4 + _20)])]==10) or (_8[(_5 + _8[(_4 + _20)])]==2))):
      pass
     else:
      _18 += 1
      _19 += (_8[((_4 + _20) + 1)] - _8[(_4 + _20)])
    _21=_1[_16]
    _22=(self.row_param_ptre[_21] - self.row_param_ptrb[_21])
    if (_18 > 0):
     self.row_param_ptrb[_17] = self.first_free_entry
     self.row_param_ptre[_17] = (self.first_free_entry + _18)
     self.row_code_ptr[_17] = self.first_free_codeitem
     self.first_free_entry += _18
     self.first_free_codeitem += _19
   for _23 in range(0,_7):
    _24=_1[_23]
    _25=self.row_code_ptr[_24]
    _26=self.row_param_ptrb[_24]
    for _27 in range(_8[(_2 + _23)],_8[((_2 + _23) + 1)]):
     if (((_8[((_4 + _27) + 1)] - _8[(_4 + _27)])==1) and ((_8[(_5 + _8[(_4 + _27)])]==10) or (_8[(_5 + _8[(_4 + _27)])]==2))):
      pass
     else:
      for _28 in range(_8[(_4 + _27)],_8[((_4 + _27) + 1)]):
       self.code[_25] = _8[(_5 + _28)]
       self.cconst[_25] = _10[(_6 + _28)]
       _25 += 1
      self.param_code_sizes[_26] = (_8[((_4 + _27) + 1)] - _8[(_4 + _27)])
      self.param_varidx[_26] = _9[(_3 + _27)]
      _11 = (_11 and (_9[(_3 + _27)] >= 0))
      _26 += 1
   if (not _11):
    raise mosek_fusion_ParameterError._ctor_S("Expression contains parameterized SDP non-zero")
  @staticmethod
  def _match_clear_1row_1code__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_clear_1row_1code__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _clear_1row_1code_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._clear_1row_1code__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _clear_1row_1code__3I(self,_0):
   if (self.row_param_ptrb is not None):
    for _1 in range(0,int((_0).shape[0])):
     for _2 in range(self.row_param_ptrb[_0[_1]],self.row_param_ptre[_0[_1]]):
      self.code_used -= self.param_code_sizes[_2]
     self.varidx_used -= (self.row_param_ptre[_0[_1]] - self.row_param_ptrb[_0[_1]])
     self.row_param_ptrb[_0[_1]] = 0
     self.row_param_ptre[_0[_1]] = 0
  def __compress_alt_(self,):
    return self.__compress_()
  def __compress_(self,):
   _0=numpy.zeros((self.code_used,), dtype=numpy.dtype(numpy.int32))
   _1=numpy.zeros((self.code_used,), dtype=numpy.dtype(numpy.float64))
   _2=numpy.zeros((self.first_free_entry,), dtype=numpy.dtype(numpy.int64))
   _3=numpy.zeros((self.first_free_entry,), dtype=numpy.dtype(numpy.int32))
   _4=0
   _5=0
   for _6 in range(0,int((self.row_param_ptrb).shape[0])):
    _7=0
    _8=(self.row_param_ptre[_6] - self.row_param_ptrb[_6])
    mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.param_varidx,self.row_param_ptrb[_6],_2,_4,_8)
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.param_code_sizes,self.row_param_ptrb[_6],_3,_4,_8)
    for _9 in range(self.row_param_ptrb[_6],self.row_param_ptre[_6]):
     _7 += self.param_code_sizes[_9]
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.code,self.row_code_ptr[_6],_0,_5,_7)
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.cconst,self.row_code_ptr[_6],_1,_5,_7)
    self.row_param_ptrb[_6] = _4
    self.row_param_ptre[_6] = (_4 + _8)
    self.row_code_ptr[_6] = _5
    _5 += _7
    _4 += _8
   mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_2,0,self.param_varidx,0,_4)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(_3,0,self.param_code_sizes,0,_4)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(_0,0,self.code,0,_5)
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_1,0,self.cconst,0,_5)
   self.first_free_codeitem = _5
   self.first_free_entry = _4
  def __ensure_1code_1cap_alt_II(self,_t__0,_t__1):
    return self.__ensure_1code_1cap_II(numpy.int32(__0),numpy.int32(__1))
  def __ensure_1code_1cap_II(self,_0,_1):
   if (self.row_code_ptr is None):
    _2=128
    while (_2 < _0):
     _2 *= 2
    _3=128
    while (_3 < _1):
     _3 *= 2
    self.row_param_ptrb = numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    self.row_param_ptre = numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    self.row_code_ptr = numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    self.param_varidx = numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    self.param_code_sizes = numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    self.code = numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    self.cconst = numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
   else:
    if (_0 > (int((self.param_varidx).shape[0]) - self.first_free_entry)):
     _4=int((self.param_varidx).shape[0])
     while ((_4 - self.first_free_entry) < _0):
      _4 *= 2
     _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
     _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
     _7=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
     mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.param_varidx,0,_6,0,self.first_free_entry)
     mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.param_code_sizes,0,_7,0,self.first_free_entry)
     self.param_varidx = _6
     self.param_code_sizes = _7
    if (_1 > (int((self.code).shape[0]) - self.first_free_codeitem)):
     _8=int((self.code).shape[0])
     while (_1 > (_8 - self.first_free_codeitem)):
      _8 *= 2
     _9=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int32))
     mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.code,0,_9,0,self.first_free_codeitem)
     _10=numpy.zeros((_8,), dtype=numpy.dtype(numpy.float64))
     mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.cconst,0,_10,0,self.first_free_codeitem)
     self.code = _9
     self.cconst = _10
  @staticmethod
  def _match_release_I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_release_I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1))
  def _release_alt_I_3I(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._release_I_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _release_I_3I(self,_0,_1):
   _2=self.blocks.blocksize(_0)
   self.blocks.get(_0,_1,0)
   self.blocks.free(_0)
   if (self.row_code_ptr is not None):
    for _3 in range(0,_2):
     _4=_1[_3]
     self.code_used -= (self.row_param_ptre[_4] - self.row_param_ptrb[_4])
     self.row_param_ptre[_4] = 0
     self.row_param_ptrb[_4] = 0
  @staticmethod
  def _match_allocate__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_allocate__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _allocate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._allocate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _allocate__3I(self,_0):
   _1=int((_0).shape[0])
   _2=self.blocks.alloc(_1)
   self.blocks.get(_2,_0,0)
   if ((self.row_code_ptr is not None) and (self.blocks.capacity() > int((self.row_param_ptrb).shape[0]))):
    _3=numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.row_param_ptrb,0,_3,0,int((self.row_param_ptrb).shape[0]))
    _4=numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.row_param_ptre,0,_4,0,int((self.row_param_ptre).shape[0]))
    _5=numpy.zeros((self.blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.row_code_ptr,0,_5,0,int((self.row_code_ptr).shape[0]))
    self.row_param_ptrb = _3
    self.row_param_ptre = _4
    self.row_code_ptr = _5
   return numpy.int32(_2)
  @staticmethod
  def _match_row_1is_1parameterized_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_row_1is_1parameterized_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _row_1is_1parameterized_alt_I(self,_t__0):
    return self._row_1is_1parameterized_I(numpy.int32(__0))
  def _row_1is_1parameterized_I(self,_0):
   return (((self.row_param_ptrb is not None) and (self.row_param_ptrb[_0] < self.row_param_ptre[_0])))
 return RowBlockManager
mosek_fusion_RowBlockManager=__mk_mosek_fusion_RowBlockManager()
del __mk_mosek_fusion_RowBlockManager
def __mk_mosek_fusion_BaseVariable():
 class BaseVariable(mosek_fusion_Variable,object):
  __slots__ = ['_BaseVariable__sparsity','_BaseVariable__basevar_nativeidxs','_BaseVariable__model','_BaseVariable__shape']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args): 
      self._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3J_3J(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.BaseVariable.ctor(mosek.fusion.Model,array(int32,ndim=1),array(int64,ndim=1),array(int64,ndim=1))')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_BaseVariable._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.transpose()')
  def diag(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_diag_(*args): 
      return self._diag_(*args)
    elif mosek_fusion_BaseVariable._match_alt_diag_(*args): 
      return self._diag_alt_(*args)
    elif mosek_fusion_BaseVariable._match_diag_I(*args): 
      return self._diag_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_diag_I(*args): 
      return self._diag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list diag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.diag()\n\tmosek.fusion.BaseVariable.diag(int32)')
  def makeInteger(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_makeInteger_(*args): 
      return self._makeInteger_(*args)
    elif mosek_fusion_BaseVariable._match_alt_makeInteger_(*args): 
      return self._makeInteger_alt_(*args)
    else:
      raise ValueError('Invalid argument list makeInteger('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.makeInteger()')
  def getModel(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_getModel_(*args): 
      return self._getModel_(*args)
    elif mosek_fusion_BaseVariable._match_alt_getModel_(*args): 
      return self._getModel_alt_(*args)
    else:
      raise ValueError('Invalid argument list getModel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.getModel()')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_BaseVariable._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.getSize()')
  def make_continuous(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_make_1continuous_(*args): 
      return self._make_1continuous_(*args)
    elif mosek_fusion_BaseVariable._match_alt_make_1continuous_(*args): 
      return self._make_1continuous_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_continuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.make_continuous()')
  def makeContinuous(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_makeContinuous_(*args): 
      return self._makeContinuous_(*args)
    elif mosek_fusion_BaseVariable._match_alt_makeContinuous_(*args): 
      return self._makeContinuous_alt_(*args)
    else:
      raise ValueError('Invalid argument list makeContinuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.makeContinuous()')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_BaseVariable._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.getShape()')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_BaseVariable._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    elif mosek_fusion_BaseVariable._match_index_II(*args): 
      return self._index_II(*args)
    elif mosek_fusion_BaseVariable._match_alt_index_II(*args): 
      return self._index_alt_II(*args)
    elif mosek_fusion_BaseVariable._match_index_III(*args): 
      return self._index_III(*args)
    elif mosek_fusion_BaseVariable._match_alt_index_III(*args): 
      return self._index_alt_III(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.index(int32)\n\tmosek.fusion.BaseVariable.index(array(int32,ndim=1))\n\tmosek.fusion.BaseVariable.index(int32,int32)\n\tmosek.fusion.BaseVariable.index(int32,int32,int32)')
  def reshape(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_reshape__3I(*args): 
      return self._reshape__3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_reshape__3I(*args): 
      return self._reshape_alt__3I(*args)
    elif mosek_fusion_BaseVariable._match_reshape_I(*args): 
      return self._reshape_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_reshape_I(*args): 
      return self._reshape_alt_I(*args)
    elif mosek_fusion_BaseVariable._match_reshape_II(*args): 
      return self._reshape_II(*args)
    elif mosek_fusion_BaseVariable._match_alt_reshape_II(*args): 
      return self._reshape_alt_II(*args)
    elif mosek_fusion_BaseVariable._match_reshape_III(*args): 
      return self._reshape_III(*args)
    elif mosek_fusion_BaseVariable._match_alt_reshape_III(*args): 
      return self._reshape_alt_III(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.reshape(array(int32,ndim=1))\n\tmosek.fusion.BaseVariable.reshape(int32)\n\tmosek.fusion.BaseVariable.reshape(int32,int32)\n\tmosek.fusion.BaseVariable.reshape(int32,int32,int32)')
  def getDim(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_getDim_I(*args): 
      return self._getDim_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_getDim_I(*args): 
      return self._getDim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getDim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.getDim(int32)')
  def level(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_level_(*args): 
      return self._level_(*args)
    elif mosek_fusion_BaseVariable._match_alt_level_(*args): 
      return self._level_alt_(*args)
    else:
      raise ValueError('Invalid argument list level('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.level()')
  def remove(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_remove_(*args): 
      return self._remove_(*args)
    elif mosek_fusion_BaseVariable._match_alt_remove_(*args): 
      return self._remove_alt_(*args)
    else:
      raise ValueError('Invalid argument list remove('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.remove()')
  def inst(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_inst_I_3J(*args): 
      return self._inst_I_3J(*args)
    elif mosek_fusion_BaseVariable._match_alt_inst_I_3J(*args): 
      return self._inst_alt_I_3J(*args)
    elif mosek_fusion_BaseVariable._match_inst_I_3JI_3J(*args): 
      return self._inst_I_3JI_3J(*args)
    elif mosek_fusion_BaseVariable._match_alt_inst_I_3JI_3J(*args): 
      return self._inst_alt_I_3JI_3J(*args)
    else:
      raise ValueError('Invalid argument list inst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.inst(int32,array(int64,ndim=1))\n\tmosek.fusion.BaseVariable.inst(int32,array(int64,ndim=1),int32,array(int64,ndim=1))')
  def values(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_values_I_3DZ(*args): 
      return self._values_I_3DZ(*args)
    elif mosek_fusion_BaseVariable._match_alt_values_I_3DZ(*args): 
      return self._values_alt_I_3DZ(*args)
    else:
      raise ValueError('Invalid argument list values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.values(int32,array(double,ndim=1),bool)')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_BaseVariable._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_BaseVariable._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.slice(int32,int32)\n\tmosek.fusion.BaseVariable.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def set_values(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_set_1values__3DZ(*args): 
      return self._set_1values__3DZ(*args)
    elif mosek_fusion_BaseVariable._match_alt_set_1values__3DZ(*args): 
      return self._set_1values_alt__3DZ(*args)
    else:
      raise ValueError('Invalid argument list set_values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.set_values(array(double,ndim=1),bool)')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_BaseVariable._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_BaseVariable._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    elif mosek_fusion_BaseVariable._match_pick__3I_3I(*args): 
      return self._pick__3I_3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_pick__3I_3I(*args): 
      return self._pick_alt__3I_3I(*args)
    elif mosek_fusion_BaseVariable._match_pick__3I_3I_3I(*args): 
      return self._pick__3I_3I_3I(*args)
    elif mosek_fusion_BaseVariable._match_alt_pick__3I_3I_3I(*args): 
      return self._pick_alt__3I_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.pick(array(int32,ndim=1))\n\tmosek.fusion.BaseVariable.pick(array(int32,ndim=2))\n\tmosek.fusion.BaseVariable.pick(array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.BaseVariable.pick(array(int32,ndim=1),array(int32,ndim=1),array(int32,ndim=1))')
  def antidiag(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_antidiag_(*args): 
      return self._antidiag_(*args)
    elif mosek_fusion_BaseVariable._match_alt_antidiag_(*args): 
      return self._antidiag_alt_(*args)
    elif mosek_fusion_BaseVariable._match_antidiag_I(*args): 
      return self._antidiag_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_antidiag_I(*args): 
      return self._antidiag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list antidiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.antidiag()\n\tmosek.fusion.BaseVariable.antidiag(int32)')
  def setLevel(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_setLevel__3D(*args): 
      return self._setLevel__3D(*args)
    elif mosek_fusion_BaseVariable._match_alt_setLevel__3D(*args): 
      return self._setLevel_alt__3D(*args)
    else:
      raise ValueError('Invalid argument list setLevel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.setLevel(array(double,ndim=1))')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_BaseVariable._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.getND()')
  def tril(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_tril_(*args): 
      return self._tril_(*args)
    elif mosek_fusion_BaseVariable._match_alt_tril_(*args): 
      return self._tril_alt_(*args)
    elif mosek_fusion_BaseVariable._match_tril_II(*args): 
      return self._tril_II(*args)
    elif mosek_fusion_BaseVariable._match_alt_tril_II(*args): 
      return self._tril_alt_II(*args)
    else:
      raise ValueError('Invalid argument list tril('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.tril()\n\tmosek.fusion.BaseVariable.tril(int32,int32)')
  def fromTril(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_fromTril_I(*args): 
      return self._fromTril_I(*args)
    elif mosek_fusion_BaseVariable._match_alt_fromTril_I(*args): 
      return self._fromTril_alt_I(*args)
    elif mosek_fusion_BaseVariable._match_fromTril_II(*args): 
      return self._fromTril_II(*args)
    elif mosek_fusion_BaseVariable._match_alt_fromTril_II(*args): 
      return self._fromTril_alt_II(*args)
    else:
      raise ValueError('Invalid argument list fromTril('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.fromTril(int32)\n\tmosek.fusion.BaseVariable.fromTril(int32,int32)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_BaseVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.toString()')
  def asExpr(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_asExpr_(*args): 
      return self._asExpr_(*args)
    elif mosek_fusion_BaseVariable._match_alt_asExpr_(*args): 
      return self._asExpr_alt_(*args)
    else:
      raise ValueError('Invalid argument list asExpr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.asExpr()')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_BaseVariable._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def make_integer(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_make_1integer_(*args): 
      return self._make_1integer_(*args)
    elif mosek_fusion_BaseVariable._match_alt_make_1integer_(*args): 
      return self._make_1integer_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_integer('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.make_integer()')
  def numInst(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_numInst_(*args): 
      return self._numInst_(*args)
    elif mosek_fusion_BaseVariable._match_alt_numInst_(*args): 
      return self._numInst_alt_(*args)
    else:
      raise ValueError('Invalid argument list numInst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.numInst()')
  def dual(self,*args):
    if False: pass
    elif mosek_fusion_BaseVariable._match_dual_(*args): 
      return self._dual_(*args)
    elif mosek_fusion_BaseVariable._match_alt_dual_(*args): 
      return self._dual_alt_(*args)
    else:
      raise ValueError('Invalid argument list dual('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseVariable.dual()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.BaseVariable: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = BaseVariable.__new__(BaseVariable)
    o._ctor_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4BaseVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4BaseVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   self.__model = m
   self.__shape = (v.__shape)
   self.__sparsity = (v.__sparsity)
   self.__basevar_nativeidxs = (v.__basevar_nativeidxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(m,shape,sparsity,basevar_nativeidxs):
    o = BaseVariable.__new__(BaseVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(m,shape,sparsity,basevar_nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args):
    if len(args) != 4: return False
    m,shape,sparsity,basevar_nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(m) and __arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3J__(basevar_nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args):
    if len(args) != 4: return False
    m,shape,sparsity,basevar_nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(m) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3J__(basevar_nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,basevar_nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(m,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(basevar_nativeidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,basevar_nativeidxs):
   self.__model = m
   (self.__shape) = shape
   (self.__sparsity) = sparsity
   (self.__basevar_nativeidxs) = basevar_nativeidxs
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("Variable((")
   if (int((self.__shape).shape[0]) > 0):
    _0._a_I(self.__shape[0])
    for _1 in range(1,int((self.__shape).shape[0])):
     _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S("))")
   return (_0._toString_())
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=int((self.__basevar_nativeidxs).shape[0])
   _4=_3
   _5=int((self.__shape).shape[0])
   _6=(self.__sparsity is not None)
   _0.alloc_expr(_5,_4,_3,_6)
   _7=(_0.ptr_base)
   _8=(_0.nidxs_base)
   _9=(_0.sp_base)
   _10=(_0.cof_base)
   _11=(_0.shape_base)
   _12=(_0.i32)
   _13=(_0.i64)
   _14=(_0.f64)
   for _15 in range(0,_5):
    _12[(_11 + _15)] = self.__shape[_15]
   for _16 in range(0,(_3 + 1)):
    _12[(_7 + _16)] = _16
   for _17 in range(0,_3):
    _13[(_8 + _17)] = self.__basevar_nativeidxs[_17]
   if _6:
    for _18 in range(0,_3):
     _13[(_9 + _18)] = self.__sparsity[_18]
   for _19 in range(0,_3):
    _14[(_10 + _19)] = 1.0
  @staticmethod
  def _match_remove_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_remove_(*args):
    if len(args) != 0: return False
    return True
  def _remove_alt_(self,):
    return self._remove_()
  def _remove_(self,):
   raise mosek_fusion_DeletionError._ctor_S("Only original variables can be removed")
  @staticmethod
  def _match_fromTril_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_fromTril_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _fromTril_alt_II(self,_t__0,_t__1):
    return self._fromTril_II(numpy.int32(__0),numpy.int32(__1))
  def _fromTril_II(self,_0,_1):
   if ((_0 < 0) or (_0 >= int((self.__shape).shape[0]))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid dimension")
   elif (self.__shape[_0]!=((_1 * (_1 + 1)) // 2)): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:846:16-40
    raise mosek_fusion_DimensionError._ctor_S("Invalid shape for operation")
   _2=1
   for _3 in range(0,_0):
    _2 *= self.__shape[_3]
   _4=self.__shape[_0]
   _5=1
   for _6 in range((_0 + 1),int((self.__shape).shape[0])):
    _5 *= self.__shape[_6]
   _7=numpy.zeros(((int((self.__shape).shape[0]) + 1),), dtype=numpy.dtype(numpy.int32))
   for _8 in range(0,_0):
    _7[_8] = self.__shape[_8]
   _7[_0] = _1
   _7[(_0 + 1)] = _1
   for _9 in range((_0 + 1),int((self.__shape).shape[0])):
    _7[(_9 + 1)] = self.__shape[_9]
   if (self.__sparsity is None):
    _10=numpy.zeros(((((_2 * _1) * _1) * _5),), dtype=numpy.dtype(numpy.int64))
    _11=0
    for _12 in range(0,_2):
     for _13 in range(0,_1):
      for _14 in range(0,_1):
       for _15 in range(0,_5):
        if (_13 >= _14):
         _10[_11] = self.__basevar_nativeidxs[((((_12 * _4) * _5) + ((((_13 * (_13 + 1)) // 2) + _14) * _5)) + _15)]
        else:
         _10[_11] = self.__basevar_nativeidxs[((((_12 * _4) * _5) + ((((_14 * (_14 + 1)) // 2) + _13) * _5)) + _15)]
        _11 += 1
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_7,None,_10))
   else:
    _16=0
    for _17 in range(0,int((self.__sparsity).shape[0])):
     _18=((self.__sparsity[_17] // _5) % _4)
     _19=numpy.int32((((- 1) + mosek.fusion.Utils.Tools._sqrt_D(((1 + (2 * _18)) * (1 + (2 * _18))))) / 4))
     _20=(self.__sparsity[_17] - ((_19 * (_19 + 1)) // 2))
     if (_19==_20):
      _16 += 1
     else:
      _16 += 2
    _21=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    _22=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    _23=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    for _24 in range(0,_16):
     _23[_24] = _24
    _25=0
    for _26 in range(0,int((self.__sparsity).shape[0])):
     _27=(self.__sparsity[_26] // (_4 * _5))
     _28=((self.__sparsity[_26] // _5) % _4)
     _29=(self.__sparsity[_26] % _5)
     _30=numpy.int32((((- 1) + mosek.fusion.Utils.Tools._sqrt_D(((1 + (2 * _28)) * (1 + (2 * _28))))) / 4))
     _31=(self.__sparsity[_26] - ((_30 * (_30 + 1)) // 2))
     if (_30==_31):
      _21[_25] = self.__basevar_nativeidxs[_26]
      _22[_25] = (((((_27 * _1) * _1) * _5) + (((_30 * _1) + _31) * _5)) + _29)
      _25 += 1
     else:
      _21[_25] = self.__basevar_nativeidxs[_26]
      _21[(_25 + 1)] = self.__basevar_nativeidxs[_26]
      _22[_25] = (((((_27 * _1) * _1) * _5) + (((_30 * _1) + _31) * _5)) + _29)
      _22[(_25 + 1)] = (((((_27 * _1) * _1) * _5) + (((_31 * _1) + _30) * _5)) + _29)
      _25 += 2
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_23,_21,None,0,_16)
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_7,numpy.array([_22[_23[_32]] for _32 in range(0,_16)], dtype=numpy.dtype(numpy.int64)),numpy.array([_21[_23[_33]] for _33 in range(0,_16)], dtype=numpy.dtype(numpy.int64))))
  @staticmethod
  def _match_fromTril_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_fromTril_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _fromTril_alt_I(self,_t__0):
    return self._fromTril_I(numpy.int32(__0))
  def _fromTril_I(self,_0):
   return (self.fromTril(0,_0))
  @staticmethod
  def _match_tril_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_tril_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _tril_alt_II(self,_t__0,_t__1):
    return self._tril_II(numpy.int32(__0),numpy.int32(__1))
  def _tril_II(self,_0,_1):
   if ((_0 < 0) or ((_0 >= _1) or (_1 >= int((self.__shape).shape[0])))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid dimension specification")
   else:
    if (self.__shape[_0]!=self.__shape[_1]):
     raise mosek_fusion_DimensionError._ctor_S("Operation only valid for square variables")
   _2=numpy.zeros(((int((self.__shape).shape[0]) - 1),), dtype=numpy.dtype(numpy.int32))
   for _3 in range(0,_0):
    _2[_3] = self.__shape[_3]
   _2[_0] = ((self.__shape[_0] * (self.__shape[_0] + 1)) // 2)
   for _4 in range((_0 + 1),_1):
    _2[_4] = self.__shape[_4]
   for _5 in range((_1 + 1),int((self.__shape).shape[0])):
    _2[(_5 - 1)] = self.__shape[_5]
   if (self.__sparsity is None):
    _6=1
    for _7 in range(0,_0):
     _6 *= self.__shape[_7]
    _8=self.__shape[_0]
    _9=1
    for _10 in range((_0 + 1),_1):
     _9 *= self.__shape[_10]
    _11=self.__shape[_1]
    _12=1
    for _13 in range((_1 + 1),int((self.__shape).shape[0])):
     _12 *= self.__shape[_13]
    _14=numpy.zeros(((((((_6 * _9) * _12) * _8) * (_8 + 1)) // 2),), dtype=numpy.dtype(numpy.int64))
    _15=0
    for _16 in range(0,_6):
     for _17 in range(0,_8):
      for _18 in range(0,(_17 + 1)):
       for _19 in range(0,_9):
        for _20 in range(0,_12):
         _14[_15] = self.__basevar_nativeidxs[(_20 + (_12 * (_18 + (_11 * (_19 + (_9 * (_17 + (_8 * _16))))))))]
         _15 += 1
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_2,None,_14))
   else:
    _21=1
    for _22 in range(0,_0):
     _21 *= self.__shape[_22]
    _23=self.__shape[_0]
    _24=1
    for _25 in range((_0 + 1),_1):
     _24 *= self.__shape[_25]
    _26=self.__shape[_1]
    _27=1
    for _28 in range((_1 + 1),int((self.__shape).shape[0])):
     _27 *= self.__shape[_28]
    _29=1
    _30=_27
    _31=(_30 * _26)
    _32=(_31 * _24)
    _33=(_32 * _23)
    _34=0
    for _35 in range(0,int((self.__sparsity).shape[0])):
     if (((self.__sparsity[_35] // _32) % _23) >= ((self.__sparsity[_35] // _30) % _26)):
      _34 += 1
    _36=1
    _37=_27
    _38=(_37 * _24)
    _39=(((_38 * _23) * (_23 + 1)) // 2)
    _40=numpy.zeros((_34,), dtype=numpy.dtype(numpy.int64))
    _41=numpy.zeros((_34,), dtype=numpy.dtype(numpy.int64))
    _42=numpy.zeros((_34,), dtype=numpy.dtype(numpy.int64))
    _43=0
    for _44 in range(0,int((self.__sparsity).shape[0])):
     if (((self.__sparsity[_44] // _32) % _23) >= ((self.__sparsity[_44] // _30) % _26)):
      _45=(self.__sparsity[_44] // _33)
      _46=((self.__sparsity[_44] // _32) % _23)
      _47=((self.__sparsity[_44] // _31) % _24)
      _48=((self.__sparsity[_44] // _30) % _26)
      _49=((self.__sparsity[_44] // _29) % _27)
      _41[_43] = self.__basevar_nativeidxs[_44]
      _42[_43] = ((((_39 * _45) + (_38 * (((_46 * (_46 + 1)) // 2) + _48))) + (_37 * _47)) + (_36 * _49))
      _43 += 1
    for _50 in range(0,_34):
     _40[_50] = _50
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_40,_41,None,0,_34)
    _51=numpy.zeros((_34,), dtype=numpy.dtype(numpy.int64))
    _52=numpy.zeros((_34,), dtype=numpy.dtype(numpy.int64))
    for _53 in range(0,_34):
     _51[_53] = _41[_40[_53]]
    for _54 in range(0,_34):
     _52[_54] = _42[_40[_54]]
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_2,_52,_51))
  @staticmethod
  def _match_tril_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_tril_(*args):
    if len(args) != 0: return False
    return True
  def _tril_alt_(self,):
    return self._tril_()
  def _tril_(self,):
   return (self.tril(0,1))
  @staticmethod
  def _match_reshape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_reshape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _reshape_alt_III(self,_t__0,_t__1,_t__2):
    return self._reshape_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _reshape_III(self,_0,_1,_2):
   return (self.reshape(numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_reshape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_reshape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _reshape_alt_II(self,_t__0,_t__1):
    return self._reshape_II(numpy.int32(__0),numpy.int32(__1))
  def _reshape_II(self,_0,_1):
   return (self.reshape(numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_reshape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_reshape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _reshape_alt_I(self,_t__0):
    return self._reshape_I(numpy.int32(__0))
  def _reshape_I(self,_0):
   return (self.reshape(numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _reshape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._reshape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _reshape__3I(self,_0):
   _1=1
   for _2 in range(0,int((_0).shape[0])):
    if (_0[_2] < 0):
     raise mosek_fusion_DimensionError._ctor_S("Invalid shape")
    _1 *= _0[_2]
   if (_1!=self.getSize()):
    raise mosek_fusion_LengthError._ctor_S("Shape size does not match variable size")
   return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([_0[_3] for _3 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32)),self.__sparsity,self.__basevar_nativeidxs))
  @staticmethod
  def _match_setLevel__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_setLevel__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  def _setLevel_alt__3D(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setLevel__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setLevel__3D(self,_0):
   if (self.__sparsity is None):
    if (int((_0).shape[0])!=int((self.__basevar_nativeidxs).shape[0])):
     raise mosek_fusion_LengthError._ctor_S("Invalid length of solution values vector")
    self.__model.setVariableValues(True,self.__basevar_nativeidxs,_0)
   else:
    if (int((_0).shape[0])!=self.getSize()):
     raise mosek_fusion_LengthError._ctor_S("Invalid length of solution values vector")
    _1=numpy.array([_0[self.__sparsity[_2]] for _2 in range(0,int((self.__basevar_nativeidxs).shape[0]))], dtype=numpy.dtype(numpy.float64))
    self.__model.setVariableValues(True,self.__basevar_nativeidxs,_1)
  @staticmethod
  def _match_getModel_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getModel_(*args):
    if len(args) != 0: return False
    return True
  def _getModel_alt_(self,):
    return self._getModel_()
  def _getModel_(self,):
   return (self.__model)
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   return numpy.int32(int((self.__shape).shape[0]))
  @staticmethod
  def _match_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getDim_alt_I(self,_t__0):
    return self._getDim_I(numpy.int32(__0))
  def _getDim_I(self,_0):
   return numpy.int32(self.__shape[_0])
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   return (mosek.fusion.Utils.Tools._arraycopy__3I(self.__shape))
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   _0=1
   for _1 in range(0,int((self.__shape).shape[0])):
    _0 *= self.__shape[_1]
   return numpy.int64(_0)
  @staticmethod
  def _match_dual_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dual_(*args):
    if len(args) != 0: return False
    return True
  def _dual_alt_(self,):
    return self._dual_()
  def _dual_(self,):
   _0=numpy.zeros((int((self.__basevar_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.float64))
   self.__model.getVariableValues(False,self.__basevar_nativeidxs,_0,0)
   if (self.__sparsity is not None):
    _1=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.float64))
    for _2 in range(0,int((self.__basevar_nativeidxs).shape[0])):
     _1[self.__sparsity[_2]] = _0[_2]
    _0 = _1
   return (_0)
  @staticmethod
  def _match_level_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_level_(*args):
    if len(args) != 0: return False
    return True
  def _level_alt_(self,):
    return self._level_()
  def _level_(self,):
   _0=numpy.zeros((int((self.__basevar_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.float64))
   self.__model.getVariableValues(True,self.__basevar_nativeidxs,_0,0)
   if (self.__sparsity is not None):
    _1=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.float64))
    for _2 in range(0,int((self.__basevar_nativeidxs).shape[0])):
     _1[self.__sparsity[_2]] = _0[_2]
    _0 = _1
   return (_0)
  @staticmethod
  def _match_makeContinuous_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_makeContinuous_(*args):
    if len(args) != 0: return False
    return True
  def _makeContinuous_alt_(self,):
    return self._makeContinuous_()
  def _makeContinuous_(self,):
   self.make_continuous()
  @staticmethod
  def _match_makeInteger_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_makeInteger_(*args):
    if len(args) != 0: return False
    return True
  def _makeInteger_alt_(self,):
    return self._makeInteger_()
  def _makeInteger_(self,):
   self.make_integer()
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   if (int((self.__shape).shape[0])==1):
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([1,self.__shape[0]], dtype=numpy.dtype(numpy.int32)),self.__sparsity,self.__basevar_nativeidxs))
   elif (int((self.__shape).shape[0]) > 2): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:635:16-30
    raise mosek_fusion_DimensionError._ctor_S("Invalid shape for operation")
   else:
    _0=numpy.zeros((int((self.__basevar_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.int64))
    _1=(None if ((self.__sparsity is None) ) else numpy.zeros((int((self.__basevar_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.int64)))
    if (self.__sparsity is None):
     _2=0
     for _3 in range(0,self.__shape[1]):
      for _4 in range(0,self.__shape[0]):
       _0[_2] = self.__basevar_nativeidxs[((_4 * self.__shape[1]) + _3)]
       _2 += 1
    else:
     _5=numpy.zeros(((self.__shape[1] + 1),), dtype=numpy.dtype(numpy.int32))
     _6=self.__shape[0]
     _7=self.__shape[1]
     for _8 in range(0,int((self.__sparsity).shape[0])):
      _5[((self.__sparsity[_8] % _7) + 1)] += 1
     for _9 in range(0,_7):
      _5[(_9 + 1)] += _5[_9]
     for _10 in range(0,int((self.__sparsity).shape[0])):
      _11=(self.__sparsity[_10] % _7)
      _0[_5[_11]] = self.__basevar_nativeidxs[_10]
      _1[_5[_11]] = ((self.__sparsity[_10] // _7) + ((self.__sparsity[_10] % _7) * _6))
      _5[_11] += 1
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([self.__shape[1],self.__shape[0]], dtype=numpy.dtype(numpy.int32)),_1,_0))
  @staticmethod
  def _match_index_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_index_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _index_alt_III(self,_t__0,_t__1,_t__2):
    return self._index_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _index_III(self,_0,_1,_2):
   return (self.index(numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_index_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _index_alt_II(self,_t__0,_t__1):
    return self._index_II(numpy.int32(__0),numpy.int32(__1))
  def _index_II(self,_0,_1):
   return (self.index(numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   _1=numpy.zeros((1,int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
   for _2 in range(0,int((_0).shape[0])):
    _1[0,_2] = _0[_2]
   return (self.pick(_1).reshape(numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   return (self.pick(numpy.array([_0], dtype=numpy.dtype(numpy.int32))).reshape(numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2))
  def _pick_alt__3I_3I_3I(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I_3I(self,_0,_1,_2):
   if (int((self.__shape).shape[0])!=3):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   if ((int((_0).shape[0])!=int((_1).shape[0])) or (int((_0).shape[0])!=int((_2).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching argument lengths")
   _3=numpy.zeros((int((_0).shape[0]),3,), dtype=numpy.dtype(numpy.int32))
   for _4 in range(0,int((_0).shape[0])):
    _3[_4,0] = _0[_4]
    _3[_4,1] = _1[_4]
    _3[_4,2] = _2[_4]
   return (self.pick(_3))
  @staticmethod
  def _match_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _pick_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I(self,_0,_1):
   if ((int((self.__shape).shape[0])!=2) or (int((_0).shape[0])!=int((_1).shape[0]))):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _2=numpy.zeros((int((_0).shape[0]),2,), dtype=numpy.dtype(numpy.int32))
   for _3 in range(0,int((_0).shape[0])):
    _2[_3,0] = _0[_3]
    _2[_3,1] = _1[_3]
   return (self.pick(_2))
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   if (int((self.__shape).shape[0])!=int((_0).shape[1])):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _1=False
   for _2 in range(0,int((_0).shape[0])):
    for _3 in range(0,int((_0).shape[1])):
     if ((_0[_2,_3] < 0) or (_0[_2,_3] >= self.__shape[_3])):
      _1 = True
   if _1:
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _4=int((self.__shape).shape[0])
   _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
   _5[(_4 - 1)] = 1
   for _6 in range(1,_4):
    _5[((_4 - _6) - 1)] = (_5[(_4 - _6)] * self.__shape[(_4 - _6)])
   _7=numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))
   _9=None
   if (self.__sparsity is None):
    _8 = numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int64))
    for _10 in range(0,int((_0).shape[0])):
     _11=0
     for _12 in range(0,_4):
      _11 += (_5[_12] * _0[_10,_12])
     _8[_10] = self.__basevar_nativeidxs[_11]
   else:
    _13=0
    for _14 in range(0,int((_0).shape[0])):
     _15=0
     for _16 in range(0,_4):
      _15 += (_5[_16] * _0[_14,_16])
     if (mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_15) >= 0):
      _13 += 1
    _8 = numpy.zeros((_13,), dtype=numpy.dtype(numpy.int64))
    _9 = numpy.zeros((_13,), dtype=numpy.dtype(numpy.int64))
    _17=0
    for _18 in range(0,int((_0).shape[0])):
     _19=0
     for _20 in range(0,_4):
      _19 += (_5[_20] * _0[_18,_20])
     _21=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_19)
     if (_21 >= 0):
      _8[_17] = self.__basevar_nativeidxs[_21]
      _9[_17] = _18
      _17 += 1
    if (_13==int((_0).shape[0])):
     _9 = None
   return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_7,_9,_8))
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _1=False
   for _2 in range(0,int((_0).shape[0])):
    if ((_0[_2] < 0) or (_0[_2] >= self.__shape[0])):
     _1 = True
   if _1:
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _4=None
   if (self.__sparsity is None):
    _3 = numpy.array([self.__basevar_nativeidxs[_0[_5]] for _5 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int64))
   else:
    _6=0
    for _7 in range(0,int((_0).shape[0])):
     if (mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_0[_7]) >= 0):
      _6 += 1
    _3 = numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
    _4 = numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
    _8=0
    for _9 in range(0,int((_0).shape[0])):
     _10=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_0[_9])
     if (_10 >= 0):
      _4[_8] = _9
      _3[_8] = self.__basevar_nativeidxs[_10]
      _8 += 1
    if (_6==int((_0).shape[0])):
     _4 = None
   return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32)),_4,_3))
  @staticmethod
  def _match_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _antidiag_alt_I(self,_t__0):
    return self._antidiag_I(numpy.int32(__0))
  def _antidiag_I(self,_0):
   if (int((self.__shape).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("antidiag() only works on two-dimensional objects")
   elif ((_0 >= self.__shape[1]) or ((- _0) >= self.__shape[2])): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:450:16-55
    raise mosek_fusion_IndexError._ctor_S("Diagonal index out of bounds")
   if (_0 >= 0):
    return (self.__general_1diag__3I_3II(numpy.array([0,((self.__shape[1] - 1) - _0)], dtype=numpy.dtype(numpy.int32)),numpy.array([1,(- 1)], dtype=numpy.dtype(numpy.int32)),(self.__shape[0] if ((self.__shape[0] < (self.__shape[1] - _0)) ) else (self.__shape[1] - _0))))
   else:
    return (self.__general_1diag__3I_3II(numpy.array([(- _0),(self.__shape[1] - 1)], dtype=numpy.dtype(numpy.int32)),numpy.array([1,(- 1)], dtype=numpy.dtype(numpy.int32)),(self.__shape[1] if ((self.__shape[1] < (self.__shape[0] + _0)) ) else (self.__shape[0] + _0))))
  @staticmethod
  def _match_antidiag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_antidiag_(*args):
    if len(args) != 0: return False
    return True
  def _antidiag_alt_(self,):
    return self._antidiag_()
  def _antidiag_(self,):
   if (int((self.__shape).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("antidiag() only works on two-dimensional objects")
   return (self.__general_1diag__3I_3II(numpy.array([0,(self.__shape[1] - 1)], dtype=numpy.dtype(numpy.int32)),numpy.array([1,(- 1)], dtype=numpy.dtype(numpy.int32)),(self.__shape[0] if ((self.__shape[0] < self.__shape[1]) ) else self.__shape[1])))
  @staticmethod
  def _match_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _diag_alt_I(self,_t__0):
    return self._diag_I(numpy.int32(__0))
  def _diag_I(self,_0):
   if (int((self.__shape).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("diag() only works on two-dimensional objects")
   elif ((_0 >= self.__shape[1]) or ((- _0) >= self.__shape[2])): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:429:16-55
    raise mosek_fusion_IndexError._ctor_S("Diagonal index out of bounds")
   if (_0 >= 0):
    return (self.__general_1diag__3I_3II(numpy.array([0,_0], dtype=numpy.dtype(numpy.int32)),numpy.array([1,1], dtype=numpy.dtype(numpy.int32)),(self.__shape[0] if ((self.__shape[0] < (self.__shape[1] - _0)) ) else (self.__shape[1] - _0))))
   else:
    return (self.__general_1diag__3I_3II(numpy.array([(- _0),0], dtype=numpy.dtype(numpy.int32)),numpy.array([1,1], dtype=numpy.dtype(numpy.int32)),(self.__shape[1] if ((self.__shape[1] < (self.__shape[0] + _0)) ) else (self.__shape[0] + _0))))
  @staticmethod
  def _match_diag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_diag_(*args):
    if len(args) != 0: return False
    return True
  def _diag_alt_(self,):
    return self._diag_()
  def _diag_(self,):
   if (int((self.__shape).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("diag() only works on two-dimensional objects")
   return (self.__general_1diag__3I_3II(numpy.array([0,0], dtype=numpy.dtype(numpy.int32)),numpy.array([1,1], dtype=numpy.dtype(numpy.int32)),(self.__shape[0] if ((self.__shape[0] < self.__shape[1]) ) else self.__shape[1])))
  def __general_1diag_alt__3I_3II(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _1_res = self.__general_1diag__3I_3II(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __general_1diag__3I_3II(self,_0,_1,_2):
   _3=int((self.__shape).shape[0])
   if ((_3!=int((_0).shape[0])) or (_3!=int((_1).shape[0]))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid start or step definition")
   for _4 in range(0,_3):
    if ((_0[_4] < 0) or (_0[_4] >= self.__shape[_4])):
     raise mosek_fusion_LengthError._ctor_S("Start element is out of bounds")
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _5[(_3 - 1)] = 1
   for _6 in range(1,_3):
    _5[((_3 - _6) - 1)] = (_5[(_3 - _6)] * self.__shape[(_3 - _6)])
   _7=0
   for _8 in range(0,int((_1).shape[0])):
    _7 += (_0[_8] * _5[_8])
   _9=0
   for _10 in range(0,int((_1).shape[0])):
    _9 += (_1[_10] * _5[_10])
   if (self.__sparsity is None):
    _11=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    for _12 in range(0,_2):
     _11[_12] = self.__basevar_nativeidxs[(_7 + (_9 * _12))]
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([_2], dtype=numpy.dtype(numpy.int32)),None,_11))
   else:
    _13=0
    for _14 in range(0,_2):
     _15=(_7 + (_9 * _14))
     _16=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_15)
     if (_16 >= 0):
      _13 += 1
    _17=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int64))
    _18=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int64))
    _19=0
    for _20 in range(0,_2):
     _17[_20] = self.__basevar_nativeidxs[(_7 + (_9 * _20))]
     _21=(_7 + (_9 * _20))
     _22=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sparsity,_21)
     if (_22 >= 0):
      _18[_19] = _20
      _17[_19] = self.__basevar_nativeidxs[_22]
      _19 += 1
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([_2], dtype=numpy.dtype(numpy.int32)),_18,_17))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   if (int((_0).shape[0])!=int((_1).shape[0])):
    raise mosek_fusion_SliceError._ctor_S("Invalid slice")
   elif (int((_0).shape[0])!=int((self.__shape).shape[0])): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:265:16-40
    raise mosek_fusion_DimensionError._ctor_S("Variable shape and slice do not match")
   else:
    for _2 in range(0,int((self.__shape).shape[0])):
     if ((_0[_2] < 0) or (_1[_2] > self.__shape[_2])):
      raise mosek_fusion_IndexError._ctor_S("Slice is out of bounds")
     elif (_0[_2] > _1[_2]): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:271:20-38
      raise mosek_fusion_SliceError._ctor_S("Invalid slice")
    _3=int((self.__shape).shape[0])
    _4=numpy.array([(_1[_5] - _0[_5]) for _5 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
    _6=1
    for _7 in range(0,_3):
     _6 *= (_1[_7] - _0[_7])
    if (_6==0):
     return (mosek_fusion_NilVariable._ctor_())
    elif (self.__sparsity is not None): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:280:18-34
     _8=0
     _9=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
     for _10 in range(0,int((self.__sparsity).shape[0])):
      _11=self.__sparsity[_10]
      for _12 in range(1,_3):
       _9[(_3 - _12)] = numpy.int32((_11 % self.__shape[(_3 - _12)]))
       _11 /= self.__shape[(_3 - _12)]
      _9[0] = numpy.int32(_11)
      _13=0
      while ((_9[_13] >= _0[_13]) and (_9[_13] < _1[_13])):
       _13 += 1
      if (_13==_3):
       _8 += 1
     _14=0
     _15=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
     _16=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
     for _17 in range(0,int((self.__sparsity).shape[0])):
      _18=self.__sparsity[_17]
      for _19 in range(1,_3):
       _9[(_3 - _19)] = numpy.int32((_18 % self.__shape[(_3 - _19)]))
       _18 /= self.__shape[(_3 - _19)]
      _9[0] = numpy.int32(_18)
      _20=0
      while ((_9[_20] >= _0[_20]) and (_9[_20] < _1[_20])):
       _20 += 1
      if (_20==_3):
       _15[_14] = self.__basevar_nativeidxs[_17]
       _21=0
       for _22 in range(0,_3):
        _21 = ((_21 * _4[_22]) + (_9[_22] - _0[_22]))
       _16[_14] = _21
       _14 += 1
     return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_4,_16,_15))
    else:
     _23=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
     _24=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
     _24[(_3 - 1)] = 1
     for _25 in range(1,_3):
      _24[((_3 - _25) - 1)] = (_24[(_3 - _25)] * self.__shape[(_3 - _25)])
     _26=0
     for _27 in range(0,_3):
      _26 += (_0[_27] * _24[_27])
     _28=numpy.array([_26 for _29 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
     _30=numpy.array([_0[_31] for _31 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
     for _32 in range(0,_6):
      _23[_32] = self.__basevar_nativeidxs[_28[(_3 - 1)]]
      _30[(_3 - 1)] += 1
      _28[(_3 - 1)] += _24[(_3 - 1)]
      if (_30[(_3 - 1)] >= _1[(_3 - 1)]):
       _33=(_3 - 1)
       while ((_33 > 0) and (_30[_33] >= _1[_33])):
        _30[_33] = _0[_33]
        _30[(_33 - 1)] += 1
        _28[(_33 - 1)] += _24[(_33 - 1)]
        _33 -= 1
       for _34 in range((_33 + 1),_3):
        _28[_34] = _28[_33]
     return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),_4,None,_23))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_DimensionError._ctor_S("Variable shape and slice do not match")
   if ((_0==0) and (_1==self.__shape[0])):
    return (self)
   elif ((_0 < 0) or (_1 > self.__shape[0])): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:234:16-44
    raise mosek_fusion_IndexError._ctor_S("Slice is out of bounds")
   elif (_0 > _1): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:236:16-28
    raise mosek_fusion_SliceError._ctor_S("Invalid slice")
   elif (_0==_1): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:238:16-29
    return (mosek_fusion_NilVariable._ctor_())
   elif (self.__sparsity is not None): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:240:16-32
    _2=(_1 - _0)
    _3=0
    _4=mosek.fusion.CommonTools._binarySearchL__3JJ(self.__sparsity,_0)
    _5=mosek.fusion.CommonTools._binarySearchL__3JJ(self.__sparsity,_1)
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([_2], dtype=numpy.dtype(numpy.int32)),numpy.array([(self.__sparsity[_6] - _0) for _6 in range(_4,_5)], dtype=numpy.dtype(numpy.int64)),numpy.array([self.__basevar_nativeidxs[_7] for _7 in range(_4,_5)], dtype=numpy.dtype(numpy.int64))))
   else:
    _8=(_1 - _0)
    _9=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.__basevar_nativeidxs,_0,_9,0,_8)
    return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(self.getModel(),numpy.array([_8], dtype=numpy.dtype(numpy.int32)),None,_9))
  @staticmethod
  def _match_asExpr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_asExpr_(*args):
    if len(args) != 0: return False
    return True
  def _asExpr_alt_(self,):
    return self._asExpr_()
  def _asExpr_(self,):
   return (mosek_fusion_ExprFromVar._ctor_Lmosek_4fusion_4Variable_2(self))
  @staticmethod
  def _match_inst_I_3JI_3J(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1) and __arg_match_I__(_2) and __arg_match__3J__(_3))
  @staticmethod
  def _match_alt_inst_I_3JI_3J(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match__3J__(_3))
  def _inst_alt_I_3JI_3J(self,_t__0,_t__1,_t__2,_t__3):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3JI_3J(_0,_1,_2,_3)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3JI_3J(self,_0,_1,_2,_3):
   _4=(self.__basevar_nativeidxs)
   _5=(self.__sparsity)
   if (_5 is None):
    for _6 in range(0,int((_4).shape[0])):
     _1[(_6 + _0)] = _6
     _3[(_6 + _2)] = _4[_6]
   else:
    for _7 in range(0,int(((self.__sparsity)).shape[0])):
     _1[(_0 + _7)] = _5[_7]
     _3[(_7 + _2)] = _4[_7]
   return numpy.int32(int(((self.__basevar_nativeidxs)).shape[0]))
  @staticmethod
  def _match_numInst_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numInst_(*args):
    if len(args) != 0: return False
    return True
  def _numInst_alt_(self,):
    return self._numInst_()
  def _numInst_(self,):
   return numpy.int32(int((self.__basevar_nativeidxs).shape[0]))
  @staticmethod
  def _match_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1))
  @staticmethod
  def _match_alt_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1))
  def _inst_alt_I_3J(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3J(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3J(self,_0,_1):
   if (self.__sparsity is None):
    for _2 in range(0,int((self.__basevar_nativeidxs).shape[0])):
     _1[(_0 + _2)] = self.__basevar_nativeidxs[_2]
   else:
    _3=self.getShape()
    _4=1
    for _5 in range(0,int((_3).shape[0])):
     _4 *= _3[_5]
    for _6 in range(0,_4):
     _1[(_0 + _6)] = 0
    for _7 in range(0,int((self.__sparsity).shape[0])):
     _1[(_0 + self.__sparsity[_7])] = self.__basevar_nativeidxs[_7]
  @staticmethod
  def _match_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Z__(_1))
  @staticmethod
  def _match_alt_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Z__(_1))
  def _set_1values_alt__3DZ(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = self._set_1values__3DZ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _set_1values__3DZ(self,_0,_1):
   if (self.__sparsity is None):
    self.getModel().setVariableValues(_1,self.__basevar_nativeidxs,_0)
   else:
    _2=1
    for _3 in range(0,int((self.__shape).shape[0])):
     _2 *= self.__shape[_3]
    _4=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    for _5 in range(0,int((self.__basevar_nativeidxs).shape[0])):
     _4[self.__sparsity[_5]] = self.__basevar_nativeidxs[_5]
    self.getModel().setVariableValues(_1,_4,_0)
  def _dual_1lu_alt_I_3DZ(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = self._dual_1lu_I_3DZ(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _dual_1lu_I_3DZ(self,_0,_1,_2):
   if (self.__sparsity is None):
    self.__model.getVariableDuals(_2,self.__basevar_nativeidxs,_1,_0)
   else:
    _3=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.int64))
    for _4 in range(0,int((self.__sparsity).shape[0])):
     _3[self.__sparsity[_4]] = self.__basevar_nativeidxs[_4]
    self.__model.getVariableDuals(_2,_3,_1,_0)
  @staticmethod
  def _match_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3D__(_1) and __arg_match_Z__(_2))
  @staticmethod
  def _match_alt_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match_Z__(_2))
  def _values_alt_I_3DZ(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = self._values_I_3DZ(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _values_I_3DZ(self,_0,_1,_2):
   if (self.__sparsity is None):
    self.__model.getVariableValues(_2,self.__basevar_nativeidxs,_1,_0)
   else:
    _3=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.int64))
    for _4 in range(0,int((self.__sparsity).shape[0])):
     _3[self.__sparsity[_4]] = self.__basevar_nativeidxs[_4]
    self.__model.getVariableValues(_2,_3,_1,_0)
  @staticmethod
  def _match_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  def _make_1continuous_alt_(self,):
    return self._make_1continuous_()
  def _make_1continuous_(self,):
   self.getModel()._make_1continuous__3J(self.__basevar_nativeidxs)
  @staticmethod
  def _match_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  def _make_1integer_alt_(self,):
    return self._make_1integer_()
  def _make_1integer_(self,):
   self.getModel()._make_1integer__3J(self.__basevar_nativeidxs)
 return BaseVariable
mosek_fusion_BaseVariable=__mk_mosek_fusion_BaseVariable()
del __mk_mosek_fusion_BaseVariable
def __mk_mosek_fusion_SliceVariable():
 class SliceVariable(mosek_fusion_BaseVariable):
  __slots__ = ['_SliceVariable__shape','_SliceVariable__sparsity','_SliceVariable__nativeidxs']
  def __repr__(self): return 'mosek.fusion.SliceVariable'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(m,shape,sparsity,nativeidxs):
    o = SliceVariable.__new__(SliceVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(m,shape,sparsity,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args):
    if len(args) != 4: return False
    m,shape,sparsity,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(m) and __arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3J__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(*args):
    if len(args) != 4: return False
    m,shape,sparsity,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(m) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3J__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(m,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,nativeidxs):
   mosek_fusion_BaseVariable._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,nativeidxs)
   (self.__nativeidxs) = nativeidxs
   (self.__sparsity) = sparsity
   (self.__shape) = shape
  @staticmethod
  def _ctor_Lmosek_4fusion_4SliceVariable_2(v):
    o = SliceVariable.__new__(SliceVariable)
    o._ctor_init_Lmosek_4fusion_4SliceVariable_2(v)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4SliceVariable_2(*args):
    if len(args) != 1: return False
    v, = args
    return (__arg_match_Lmosek_4fusion_4SliceVariable_2__(v))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4SliceVariable_2(*args):
    if len(args) != 1: return False
    v, = args
    return (__arg_alt_match_Lmosek_4fusion_4SliceVariable_2__(v))
  def _ctor_alt_init_Lmosek_4fusion_4SliceVariable_2(self,v):
    self._ctor_init_Lmosek_4fusion_4SliceVariable_2(v)
  def _ctor_init_Lmosek_4fusion_4SliceVariable_2(self,v):
   mosek_fusion_BaseVariable._ctor_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(self,v,v.getModel())
   (self.__nativeidxs) = (v.__nativeidxs)
   (self.__sparsity) = (v.__sparsity)
   (self.__shape) = (v.__shape)
 return SliceVariable
mosek_fusion_SliceVariable=__mk_mosek_fusion_SliceVariable()
del __mk_mosek_fusion_SliceVariable
def __mk_mosek_fusion_BoundInterfaceVariable():
 class BoundInterfaceVariable(mosek_fusion_SliceVariable):
  __slots__ = ['_BoundInterfaceVariable__islower']
  def diag(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_diag_(*args): 
      return self._diag_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_diag_(*args): 
      return self._diag_alt_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_diag_I(*args): 
      return self._diag_I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_diag_I(*args): 
      return self._diag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list diag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.diag()\n\tmosek.fusion.BoundInterfaceVariable.diag(int32)')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.transpose()')
  def dual(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_dual_(*args): 
      return self._dual_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_dual_(*args): 
      return self._dual_alt_(*args)
    else:
      raise ValueError('Invalid argument list dual('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.dual()')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.slice(int32,int32)\n\tmosek.fusion.BoundInterfaceVariable.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def antidiag(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_antidiag_(*args): 
      return self._antidiag_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_antidiag_(*args): 
      return self._antidiag_alt_(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_antidiag_I(*args): 
      return self._antidiag_I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_antidiag_I(*args): 
      return self._antidiag_alt_I(*args)
    else:
      raise ValueError('Invalid argument list antidiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.antidiag()\n\tmosek.fusion.BoundInterfaceVariable.antidiag(int32)')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceVariable._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_pick__3I_3I(*args): 
      return self._pick__3I_3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_pick__3I_3I(*args): 
      return self._pick_alt__3I_3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_pick__3I_3I_3I(*args): 
      return self._pick__3I_3I_3I(*args)
    elif mosek_fusion_BoundInterfaceVariable._match_alt_pick__3I_3I_3I(*args): 
      return self._pick_alt__3I_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceVariable.pick(array(int32,ndim=1))\n\tmosek.fusion.BoundInterfaceVariable.pick(array(int32,ndim=2))\n\tmosek.fusion.BoundInterfaceVariable.pick(array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.BoundInterfaceVariable.pick(array(int32,ndim=1),array(int32,ndim=1),array(int32,ndim=1))')
  def __repr__(self): return 'mosek.fusion.BoundInterfaceVariable'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(m,shape,sparsity,nativeidxs,islower):
    o = BoundInterfaceVariable.__new__(BoundInterfaceVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3JZ(m,shape,sparsity,nativeidxs,islower)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(*args):
    if len(args) != 5: return False
    m,shape,sparsity,nativeidxs,islower, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(m) and __arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3J__(nativeidxs) and __arg_match_Z__(islower))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(*args):
    if len(args) != 5: return False
    m,shape,sparsity,nativeidxs,islower, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(m) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3J__(nativeidxs) and __arg_alt_match_Z__(islower))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3J_3JZ(self,m,shape,sparsity,nativeidxs,islower):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3JZ(m,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int64)),islower)
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3JZ(self,m,shape,sparsity,nativeidxs,islower):
   mosek_fusion_SliceVariable._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,m,shape,sparsity,nativeidxs)
   (self.__islower) = islower
  @staticmethod
  def _ctor_Lmosek_4fusion_4SliceVariable_2Z(v,islower):
    o = BoundInterfaceVariable.__new__(BoundInterfaceVariable)
    o._ctor_init_Lmosek_4fusion_4SliceVariable_2Z(v,islower)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4SliceVariable_2Z(*args):
    if len(args) != 2: return False
    v,islower, = args
    return (__arg_match_Lmosek_4fusion_4SliceVariable_2__(v) and __arg_match_Z__(islower))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4SliceVariable_2Z(*args):
    if len(args) != 2: return False
    v,islower, = args
    return (__arg_alt_match_Lmosek_4fusion_4SliceVariable_2__(v) and __arg_alt_match_Z__(islower))
  def _ctor_alt_init_Lmosek_4fusion_4SliceVariable_2Z(self,v,islower):
    self._ctor_init_Lmosek_4fusion_4SliceVariable_2Z(v,islower)
  def _ctor_init_Lmosek_4fusion_4SliceVariable_2Z(self,v,islower):
   mosek_fusion_SliceVariable._ctor_init_Lmosek_4fusion_4SliceVariable_2(self,v)
   (self.__islower) = islower
  @staticmethod
  def _match_dual_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dual_(*args):
    if len(args) != 0: return False
    return True
  def _dual_alt_(self,):
    return self._dual_()
  def _dual_(self,):
   _0=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.float64))
   self._dual_1lu_I_3DZ(0,_0,self.__islower)
   return (_0)
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._transpose_(self)))
  @staticmethod
  def _match_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_pick__3I_3I_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3I__(_2))
  def _pick_alt__3I_3I_3I(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I_3I(self,_0,_1,_2):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._pick__3I_3I_3I(self,_0,_1,_2)))
  @staticmethod
  def _match_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_pick__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _pick_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I_3I(self,_0,_1):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._pick__3I_3I(self,_0,_1)))
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._pick__3_5I(self,_0)))
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._pick__3I(self,_0)))
  @staticmethod
  def _match_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_antidiag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _antidiag_alt_I(self,_t__0):
    return self._antidiag_I(numpy.int32(__0))
  def _antidiag_I(self,_0):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._antidiag_I(self,_0)))
  @staticmethod
  def _match_antidiag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_antidiag_(*args):
    if len(args) != 0: return False
    return True
  def _antidiag_alt_(self,):
    return self._antidiag_()
  def _antidiag_(self,):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._antidiag_(self)))
  @staticmethod
  def _match_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_diag_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _diag_alt_I(self,_t__0):
    return self._diag_I(numpy.int32(__0))
  def _diag_I(self,_0):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._diag_I(self,_0)))
  @staticmethod
  def _match_diag_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_diag_(*args):
    if len(args) != 0: return False
    return True
  def _diag_alt_(self,):
    return self._diag_()
  def _diag_(self,):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._diag_(self)))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._slice__3I_3I(self,_0,_1)))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   return (self.__from_1_Lmosek_4fusion_4Variable_2(mosek_fusion_BaseVariable._slice_II(self,_0,_1)))
  def __from_1_alt_Lmosek_4fusion_4Variable_2(self,_t__0):
    return self.__from_1_Lmosek_4fusion_4Variable_2(_0)
  def __from_1_Lmosek_4fusion_4Variable_2(self,_0):
   _1=self.getShape()
   _2=_0.numInst()
   _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
   _4=None
   if (_0.getSize()==_2):
    _0.inst(0,_3)
   else:
    _4 = numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    _0.inst(0,_4,0,_3)
   return (mosek_fusion_BoundInterfaceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(_0.getModel(),_1,_4,_3,self.__islower))
 return BoundInterfaceVariable
mosek_fusion_BoundInterfaceVariable=__mk_mosek_fusion_BoundInterfaceVariable()
del __mk_mosek_fusion_BoundInterfaceVariable
def __mk_mosek_fusion_ModelVariable():
 class ModelVariable(mosek_fusion_BaseVariable):
  __slots__ = ['_ModelVariable__sparsity','_ModelVariable__shape','_ModelVariable__modelvar_nativeidxs','_ModelVariable__varid','_ModelVariable__name']
  def elementName(self,*args):
    if False: pass
    elif mosek_fusion_ModelVariable._match_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    elif mosek_fusion_ModelVariable._match_alt_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementName_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    else:
      raise ValueError('Invalid argument list elementName('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ModelVariable.elementName(int64,mosek.fusion.Utils.StringBuffer)')
  def remove(self,*args):
    if False: pass
    elif mosek_fusion_ModelVariable._match_remove_(*args): 
      return self._remove_(*args)
    elif mosek_fusion_ModelVariable._match_alt_remove_(*args): 
      return self._remove_alt_(*args)
    else:
      raise ValueError('Invalid argument list remove('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ModelVariable.remove()')
  def __repr__(self): return 'mosek.fusion.ModelVariable'
  @staticmethod
  def _ctor_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = ModelVariable.__new__(ModelVariable)
    o._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4ModelVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4ModelVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_BaseVariable._ctor_init_Lmosek_4fusion_4BaseVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   self.__name = (v.__name)
   self.__varid = (v.__varid)
   self.__modelvar_nativeidxs = (v.__modelvar_nativeidxs)
   self.__shape = (v.__shape)
   self.__sparsity = (v.__sparsity)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(model,name,shape,varid,sparsity,modelvar_nativeidxs):
    o = ModelVariable.__new__(ModelVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(model,name,shape,varid,sparsity,modelvar_nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(*args):
    if len(args) != 6: return False
    model,name,shape,varid,sparsity,modelvar_nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match__3I__(shape) and __arg_match_J__(varid) and __arg_match__3J__(sparsity) and __arg_match__3J__(modelvar_nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(*args):
    if len(args) != 6: return False
    model,name,shape,varid,sparsity,modelvar_nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match__3I__(shape) and __arg_alt_match_J__(varid) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3J__(modelvar_nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,sparsity,modelvar_nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(model,name,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int64(varid),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(modelvar_nativeidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,sparsity,modelvar_nativeidxs):
   mosek_fusion_BaseVariable._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,model,shape,sparsity,modelvar_nativeidxs)
   (self.__name) = name
   (self.__varid) = varid
   (self.__shape) = shape
   (self.__sparsity) = sparsity
   (self.__modelvar_nativeidxs) = modelvar_nativeidxs
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  @staticmethod
  def _match_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_J__(_0) and __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  @staticmethod
  def _match_alt_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_J__(_0) and __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  def _elementName_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   _1._a_S(("_" if ((int(len(self.__name))==0) ) else self.__name))._a_S("[")._a_S(mosek.fusion.Set._indexToString__3IJ(self.__shape,_0))._a_S("]")
  @staticmethod
  def _match_remove_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_remove_(*args):
    if len(args) != 0: return False
    return True
  def _remove_alt_(self,):
    return self._remove_()
  def _remove_(self,):
   self.getModel()._removeVariableBlock_J(self.__varid)
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   pass
 return ModelVariable
mosek_fusion_ModelVariable=__mk_mosek_fusion_ModelVariable()
del __mk_mosek_fusion_ModelVariable
def __mk_mosek_fusion_RangedVariable():
 class RangedVariable(mosek_fusion_ModelVariable):
  __slots__ = ['_RangedVariable__shape','_RangedVariable__name','_RangedVariable__names_flushed','_RangedVariable__nativeidxs','_RangedVariable__sparsity']
  def elementDesc(self,*args):
    if False: pass
    elif mosek_fusion_RangedVariable._match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    elif mosek_fusion_RangedVariable._match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    else:
      raise ValueError('Invalid argument list elementDesc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangedVariable.elementDesc(int64,mosek.fusion.Utils.StringBuffer)')
  def upperBoundVar(self,*args):
    if False: pass
    elif mosek_fusion_RangedVariable._match_upperBoundVar_(*args): 
      return self._upperBoundVar_(*args)
    elif mosek_fusion_RangedVariable._match_alt_upperBoundVar_(*args): 
      return self._upperBoundVar_alt_(*args)
    else:
      raise ValueError('Invalid argument list upperBoundVar('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangedVariable.upperBoundVar()')
  def lowerBoundVar(self,*args):
    if False: pass
    elif mosek_fusion_RangedVariable._match_lowerBoundVar_(*args): 
      return self._lowerBoundVar_(*args)
    elif mosek_fusion_RangedVariable._match_alt_lowerBoundVar_(*args): 
      return self._lowerBoundVar_alt_(*args)
    else:
      raise ValueError('Invalid argument list lowerBoundVar('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangedVariable.lowerBoundVar()')
  def __repr__(self): return 'mosek.fusion.RangedVariable'
  @staticmethod
  def _ctor_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = RangedVariable.__new__(RangedVariable)
    o._ctor_init_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4RangedVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangedVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   self.__name = (v.__name)
   self.__nativeidxs = (v.__nativeidxs)
   self.__sparsity = (v.__sparsity)
   self.__names_flushed = (v.__names_flushed)
   self.__shape = (v.__shape)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,varid,shape,sparsity,nativeidxs):
    o = RangedVariable.__new__(RangedVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,varid,shape,sparsity,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(*args):
    if len(args) != 6: return False
    model,name,varid,shape,sparsity,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_J__(varid) and __arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3I__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(*args):
    if len(args) != 6: return False
    model,name,varid,shape,sparsity,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_J__(varid) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3I__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,model,name,varid,shape,sparsity,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,numpy.int64(varid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,model,name,varid,shape,sparsity,nativeidxs):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,sparsity,mosek.fusion.RangedVariable.__globalNativeIndexes__3I(nativeidxs))
   (self.__nativeidxs) = nativeidxs
   (self.__sparsity) = sparsity
   (self.__name) = name
   (self.__shape) = shape
   self.__names_flushed = False
  @staticmethod
  def _match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_J__(_0) and __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  @staticmethod
  def _match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_J__(_0) and __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  def _elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   self.elementName(_0,_1)
   _1._a_S(" : in range")
   return (_1)
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  def _dual_1u_alt_I_3D(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = self._dual_1u_I_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _dual_1u_I_3D(self,_0,_1):
   self._dual_1lu_I_3DZ(_0,_1,False)
  def _dual_1l_alt_I_3D(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = self._dual_1l_I_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _dual_1l_I_3D(self,_0,_1):
   self._dual_1lu_I_3DZ(_0,_1,True)
  @staticmethod
  def _match_upperBoundVar_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_upperBoundVar_(*args):
    if len(args) != 0: return False
    return True
  def _upperBoundVar_alt_(self,):
    return self._upperBoundVar_()
  def _upperBoundVar_(self,):
   return (mosek_fusion_BoundInterfaceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(self.getModel(),self.__shape,self.__sparsity,numpy.array([self.__nativeidxs[_0] for _0 in range(0,int((self.__nativeidxs).shape[0]))], dtype=numpy.dtype(numpy.int64)),False))
  @staticmethod
  def _match_lowerBoundVar_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_lowerBoundVar_(*args):
    if len(args) != 0: return False
    return True
  def _lowerBoundVar_alt_(self,):
    return self._lowerBoundVar_()
  def _lowerBoundVar_(self,):
   return (mosek_fusion_BoundInterfaceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3JZ(self.getModel(),self.__shape,self.__sparsity,numpy.array([self.__nativeidxs[_0] for _0 in range(0,int((self.__nativeidxs).shape[0]))], dtype=numpy.dtype(numpy.int64)),True))
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_RangedVariable._ctor_Lmosek_4fusion_4RangedVariable_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __globalNativeIndexes_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_RangedVariable.__globalNativeIndexes__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __globalNativeIndexes__3I(_0):
   _1=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int64))
   for _2 in range(0,int((_0).shape[0])):
    _1[_2] = _0[_2]
   return (_1)
 return RangedVariable
mosek_fusion_RangedVariable=__mk_mosek_fusion_RangedVariable()
del __mk_mosek_fusion_RangedVariable
def __mk_mosek_fusion_LinearPSDVariable():
 class LinearPSDVariable(mosek_fusion_ModelVariable):
  __slots__ = ['_LinearPSDVariable__shape','_LinearPSDVariable__name','_LinearPSDVariable__varid','_LinearPSDVariable__nativeidxs','_LinearPSDVariable__conedim']
  def make_continuous(self,*args):
    if False: pass
    elif mosek_fusion_LinearPSDVariable._match_make_1continuous_(*args): 
      return self._make_1continuous_(*args)
    elif mosek_fusion_LinearPSDVariable._match_alt_make_1continuous_(*args): 
      return self._make_1continuous_alt_(*args)
    elif mosek_fusion_LinearPSDVariable._match_make_1continuous__3J(*args): 
      return self._make_1continuous__3J(*args)
    elif mosek_fusion_LinearPSDVariable._match_alt_make_1continuous__3J(*args): 
      return self._make_1continuous_alt__3J(*args)
    else:
      raise ValueError('Invalid argument list make_continuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearPSDVariable.make_continuous()\n\tmosek.fusion.LinearPSDVariable.make_continuous(array(int64,ndim=1))')
  def make_integer(self,*args):
    if False: pass
    elif mosek_fusion_LinearPSDVariable._match_make_1integer_(*args): 
      return self._make_1integer_(*args)
    elif mosek_fusion_LinearPSDVariable._match_alt_make_1integer_(*args): 
      return self._make_1integer_alt_(*args)
    elif mosek_fusion_LinearPSDVariable._match_make_1integer__3J(*args): 
      return self._make_1integer__3J(*args)
    elif mosek_fusion_LinearPSDVariable._match_alt_make_1integer__3J(*args): 
      return self._make_1integer_alt__3J(*args)
    else:
      raise ValueError('Invalid argument list make_integer('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearPSDVariable.make_integer()\n\tmosek.fusion.LinearPSDVariable.make_integer(array(int64,ndim=1))')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_LinearPSDVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_LinearPSDVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearPSDVariable.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.LinearPSDVariable: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = LinearPSDVariable.__new__(LinearPSDVariable)
    o._ctor_init_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4LinearPSDVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearPSDVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   (self.__conedim) = (v.__conedim)
   (self.__varid) = (v.__varid)
   (self.__name) = (v.__name)
   (self.__shape) = (v.__shape)
   (self.__nativeidxs) = (v.__nativeidxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3II_3J(model,name,varid,shape,conedim,nativeidxs):
    o = LinearPSDVariable.__new__(LinearPSDVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3II_3J(model,name,varid,shape,conedim,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3II_3J(*args):
    if len(args) != 6: return False
    model,name,varid,shape,conedim,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(varid) and __arg_match__3I__(shape) and __arg_match_I__(conedim) and __arg_match__3J__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3II_3J(*args):
    if len(args) != 6: return False
    model,name,varid,shape,conedim,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(varid) and __arg_alt_match__3I__(shape) and __arg_alt_match_I__(conedim) and __arg_alt_match__3J__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3II_3J(self,model,name,varid,shape,conedim,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3II_3J(model,name,numpy.int32(varid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3II_3J(self,model,name,varid,shape,conedim,nativeidxs):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,None,mosek.fusion.LinearPSDVariable.__globalNativeIndexes__3J(nativeidxs))
   (self.__name) = name
   (self.__conedim) = conedim
   (self.__varid) = varid
   (self.__shape) = shape
   (self.__nativeidxs) = nativeidxs
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("PSDVariable(")
   if (int(len(self.__name)) > 0):
    _0._a_S("'")._a_S(self.__name)._a_S("',")
   _0._a_I(self.__shape[0])
   for _1 in range(1,int((self.__shape).shape[0])):
    _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S(")")
   return (_0._toString_())
  @staticmethod
  def _match_make_1continuous__3J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3J__(_0))
  @staticmethod
  def _match_alt_make_1continuous__3J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3J__(_0))
  def _make_1continuous_alt__3J(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1_res = self._make_1continuous__3J(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _make_1continuous__3J(self,_0):
   pass
  @staticmethod
  def _match_make_1integer__3J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3J__(_0))
  @staticmethod
  def _match_alt_make_1integer__3J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3J__(_0))
  def _make_1integer_alt__3J(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1_res = self._make_1integer__3J(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _make_1integer__3J(self,_0):
   raise mosek_fusion_UnimplementedError._ctor_S("Cannot make PSDVariable elements integer")
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_LinearPSDVariable._ctor_Lmosek_4fusion_4LinearPSDVariable_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __globalNativeIndexes_alt__3J(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_LinearPSDVariable.__globalNativeIndexes__3J(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __globalNativeIndexes__3J(_0):
   return (numpy.array([(- (_0[_1] + 1)) for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int64)))
 return LinearPSDVariable
mosek_fusion_LinearPSDVariable=__mk_mosek_fusion_LinearPSDVariable()
del __mk_mosek_fusion_LinearPSDVariable
def __mk_mosek_fusion_PSDVariable():
 class PSDVariable(mosek_fusion_ModelVariable):
  __slots__ = ['_PSDVariable__model','_PSDVariable__names_flushed','_PSDVariable__barvaridxs','_PSDVariable__conedim2','_PSDVariable__conedim1','_PSDVariable__shape','_PSDVariable__name','_PSDVariable__nativeidxs','_PSDVariable__varid']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_PSDVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_PSDVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.PSDVariable.toString()')
  def elementDesc(self,*args):
    if False: pass
    elif mosek_fusion_PSDVariable._match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    elif mosek_fusion_PSDVariable._match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    else:
      raise ValueError('Invalid argument list elementDesc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.PSDVariable.elementDesc(int64,mosek.fusion.Utils.StringBuffer)')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.PSDVariable: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = PSDVariable.__new__(PSDVariable)
    o._ctor_init_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4PSDVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4PSDVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   self.__varid = (v.__varid)
   self.__nativeidxs = (v.__nativeidxs)
   self.__name = (v.__name)
   self.__shape = (v.__shape)
   self.__conedim1 = (v.__conedim1)
   self.__conedim2 = (v.__conedim2)
   self.__names_flushed = False
   self.__model = m
   self.__barvaridxs = (v.__barvaridxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3III_3I_3J(model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs):
    o = PSDVariable.__new__(PSDVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3III_3I_3J(model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3III_3I_3J(*args):
    if len(args) != 8: return False
    model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(varid) and __arg_match__3I__(shape) and __arg_match_I__(conedim1) and __arg_match_I__(conedim2) and __arg_match__3I__(barvaridxs) and __arg_match__3J__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3III_3I_3J(*args):
    if len(args) != 8: return False
    model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(varid) and __arg_alt_match__3I__(shape) and __arg_alt_match_I__(conedim1) and __arg_alt_match_I__(conedim2) and __arg_alt_match__3I__(barvaridxs) and __arg_alt_match__3J__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3III_3I_3J(self,model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3III_3I_3J(model,name,numpy.int32(varid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim1),numpy.int32(conedim2),numpy.array(barvaridxs,dtype=numpy.dtype(numpy.int32)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3III_3I_3J(self,model,name,varid,shape,conedim1,conedim2,barvaridxs,nativeidxs):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,None,mosek.fusion.PSDVariable.__fullnativeidxs__3III_3J(shape,conedim1,conedim2,nativeidxs))
   (self.__varid) = varid
   (self.__nativeidxs) = nativeidxs
   (self.__name) = name
   (self.__shape) = shape
   (self.__conedim1) = conedim1
   (self.__conedim2) = conedim2
   self.__names_flushed = False
   (self.__model) = model
   (self.__barvaridxs) = barvaridxs
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("PSDVariable(")
   if (int(len(self.__name)) > 0):
    _0._a_S("'")._a_S(self.__name)._a_S("',")
   _0._a_I(self.__shape[0])
   for _1 in range(1,int((self.__shape).shape[0])):
    _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S(")")
   return (_0._toString_())
  @staticmethod
  def _match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_J__(_0) and __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  @staticmethod
  def _match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_J__(_0) and __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  def _elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   self.elementName(_0,_1)
   _1._a_S(" : element in positive semidefinite cone")
   return (_1)
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_PSDVariable._ctor_Lmosek_4fusion_4PSDVariable_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __fullnativeidxs_alt__3III_3J(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_PSDVariable.__fullnativeidxs__3III_3J(_0,_1,_2,_3)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __fullnativeidxs__3III_3J(_0,_1,_2,_3):
   _4=int((_0).shape[0])
   _5=(_1 < _2)
   _6=(_1 if (_5 ) else _2)
   _7=(_1 if ((not _5) ) else _2)
   _8=1
   for _9 in range(0,_6):
    _8 *= _0[_9]
   _10=_0[_6]
   _11=1
   for _12 in range((_6 + 1),_7):
    _11 *= _0[_12]
   _13=_0[_7]
   _14=1
   for _15 in range((_7 + 1),_4):
    _14 *= _0[_15]
   _16=((((_8 * _10) * _11) * _13) * _14)
   _17=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
   _18=_14
   _19=(_18 * _13)
   _20=(_19 * _11)
   _21=(_20 * _20)
   _22=0
   for _23 in range(0,_8):
    for _24 in range(0,_13):
     for _25 in range(0,_11):
      for _26 in range(_24,_10):
       for _27 in range(0,_14):
        _17[(((((_23 * _21) + (_26 * _20)) + (_25 * _19)) + (_24 * _18)) + _27)] = (- (_3[_22] + 1))
        _17[(((((_23 * _21) + (_24 * _20)) + (_25 * _19)) + (_26 * _18)) + _27)] = (- (_3[_22] + 1))
        _22 += 1
   return (_17)
 return PSDVariable
mosek_fusion_PSDVariable=__mk_mosek_fusion_PSDVariable()
del __mk_mosek_fusion_PSDVariable
def __mk_mosek_fusion_LinearVariable():
 class LinearVariable(mosek_fusion_ModelVariable):
  __slots__ = ['_LinearVariable__shape','_LinearVariable__sparsity','_LinearVariable__nativeidxs','_LinearVariable__names_flushed','_LinearVariable__name']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_LinearVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_LinearVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearVariable.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.LinearVariable: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = LinearVariable.__new__(LinearVariable)
    o._ctor_init_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4LinearVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   self.__names_flushed = (v.__names_flushed)
   self.__nativeidxs = (v.__nativeidxs)
   self.__sparsity = (v.__sparsity)
   self.__shape = (v.__shape)
   self.__name = (v.__name)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,varid,shape,sparsity,nativeidxs):
    o = LinearVariable.__new__(LinearVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,varid,shape,sparsity,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(*args):
    if len(args) != 6: return False
    model,name,varid,shape,sparsity,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_J__(varid) and __arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3I__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(*args):
    if len(args) != 6: return False
    model,name,varid,shape,sparsity,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_J__(varid) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3I__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,model,name,varid,shape,sparsity,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(model,name,numpy.int64(varid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2SJ_3I_3J_3I(self,model,name,varid,shape,sparsity,nativeidxs):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,sparsity,mosek.fusion.LinearVariable.__globalNativeIndexes__3I(nativeidxs))
   self.__names_flushed = False
   (self.__name) = name
   (self.__nativeidxs) = nativeidxs
   (self.__sparsity) = sparsity
   (self.__shape) = shape
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("LinearVariable((")
   if (int((self.__shape).shape[0]) > 0):
    _0._a_I(self.__shape[0])
    for _1 in range(1,int((self.__shape).shape[0])):
     _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S(")")
   if (self.__sparsity is not None):
    _0._a_S(",sparse")
   _0._a_S(")")
   return (_0._toString_())
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_LinearVariable._ctor_Lmosek_4fusion_4LinearVariable_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __globalNativeIndexes_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_LinearVariable.__globalNativeIndexes__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __globalNativeIndexes__3I(_0):
   _1=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int64))
   for _2 in range(0,int((_0).shape[0])):
    _1[_2] = _0[_2]
   return (_1)
 return LinearVariable
mosek_fusion_LinearVariable=__mk_mosek_fusion_LinearVariable()
del __mk_mosek_fusion_LinearVariable
def __mk_mosek_fusion_ConicVariable():
 class ConicVariable(mosek_fusion_ModelVariable):
  __slots__ = ['_ConicVariable__nativeidxs','_ConicVariable__shape','_ConicVariable__name','_ConicVariable__names_flushed','_ConicVariable__varid']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ConicVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ConicVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConicVariable.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ConicVariable: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(v,m):
    o = ConicVariable.__new__(ConicVariable)
    o._ctor_init_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(v,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_match_Lmosek_4fusion_4ConicVariable_2__(v) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    v,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConicVariable_2__(v) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(self,v,m):
    self._ctor_init_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(v,m)
  def _ctor_init_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(self,v,m):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4ModelVariable_2Lmosek_4fusion_4Model_2(self,v,m)
   self.__names_flushed = (v.__names_flushed)
   self.__shape = (v.__shape)
   self.__nativeidxs = (v.__nativeidxs)
   self.__shape = (v.__shape)
   self.__varid = (v.__varid)
   self.__name = (v.__name)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3I_3I(model,name,varid,shape,nativeidxs):
    o = ConicVariable.__new__(ConicVariable)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I(model,name,varid,shape,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3I_3I(*args):
    if len(args) != 5: return False
    model,name,varid,shape,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(varid) and __arg_match__3I__(shape) and __arg_match__3I__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3I_3I(*args):
    if len(args) != 5: return False
    model,name,varid,shape,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(varid) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3I_3I(self,model,name,varid,shape,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I(model,name,numpy.int32(varid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I(self,model,name,varid,shape,nativeidxs):
   mosek_fusion_ModelVariable._ctor_init_Lmosek_4fusion_4Model_2S_3IJ_3J_3J(self,model,name,shape,varid,None,mosek.fusion.ConicVariable.__globalNativeIndexes__3I(nativeidxs))
   (self.__name) = name
   (self.__names_flushed) = False
   (self.__varid) = varid
   (self.__shape) = shape
   (self.__nativeidxs) = nativeidxs
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("ConicVariable( ")
   if (int(len(self.__name)) > 0):
    _0._a_S("'")._a_S(self.__name)._a_S("',")
   _0._a_S("(")
   _0._a_I(self.__shape[0])
   for _1 in range(1,int((self.__shape).shape[0])):
    _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S(") )")
   return (_0._toString_())
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_ConicVariable._ctor_Lmosek_4fusion_4ConicVariable_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __globalNativeIndexes_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ConicVariable.__globalNativeIndexes__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __globalNativeIndexes__3I(_0):
   _1=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int64))
   for _2 in range(0,int((_0).shape[0])):
    _1[_2] = _0[_2]
   return (_1)
 return ConicVariable
mosek_fusion_ConicVariable=__mk_mosek_fusion_ConicVariable()
del __mk_mosek_fusion_ConicVariable
def __mk_mosek_fusion_NilVariable():
 class NilVariable(mosek_fusion_BaseVariable):
  __slots__ = ['_NilVariable__shape']
  def make_integer(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_make_1integer_(*args): 
      return self._make_1integer_(*args)
    elif mosek_fusion_NilVariable._match_alt_make_1integer_(*args): 
      return self._make_1integer_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_integer('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.make_integer()')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_NilVariable._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_NilVariable._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_NilVariable._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.slice(int32,int32)\n\tmosek.fusion.NilVariable.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_NilVariable._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.toString()')
  def inst(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_inst_I_3J(*args): 
      return self._inst_I_3J(*args)
    elif mosek_fusion_NilVariable._match_alt_inst_I_3J(*args): 
      return self._inst_alt_I_3J(*args)
    elif mosek_fusion_NilVariable._match_inst_I_3J_3J(*args): 
      return self._inst_I_3J_3J(*args)
    elif mosek_fusion_NilVariable._match_alt_inst_I_3J_3J(*args): 
      return self._inst_alt_I_3J_3J(*args)
    elif mosek_fusion_NilVariable._match_inst_I_3JI_3J(*args): 
      return self._inst_I_3JI_3J(*args)
    elif mosek_fusion_NilVariable._match_alt_inst_I_3JI_3J(*args): 
      return self._inst_alt_I_3JI_3J(*args)
    else:
      raise ValueError('Invalid argument list inst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.inst(int32,array(int64,ndim=1))\n\tmosek.fusion.NilVariable.inst(int32,array(int64,ndim=1),array(int64,ndim=1))\n\tmosek.fusion.NilVariable.inst(int32,array(int64,ndim=1),int32,array(int64,ndim=1))')
  def elementName(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    elif mosek_fusion_NilVariable._match_alt_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementName_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    else:
      raise ValueError('Invalid argument list elementName('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.elementName(int64,mosek.fusion.Utils.StringBuffer)')
  def numInst(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_numInst_(*args): 
      return self._numInst_(*args)
    elif mosek_fusion_NilVariable._match_alt_numInst_(*args): 
      return self._numInst_alt_(*args)
    else:
      raise ValueError('Invalid argument list numInst('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.numInst()')
  def make_continuous(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_make_1continuous_(*args): 
      return self._make_1continuous_(*args)
    elif mosek_fusion_NilVariable._match_alt_make_1continuous_(*args): 
      return self._make_1continuous_alt_(*args)
    else:
      raise ValueError('Invalid argument list make_continuous('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.make_continuous()')
  def elementDesc(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    elif mosek_fusion_NilVariable._match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args): 
      return self._elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(*args)
    else:
      raise ValueError('Invalid argument list elementDesc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.elementDesc(int64,mosek.fusion.Utils.StringBuffer)')
  def values(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_values_I_3DZ(*args): 
      return self._values_I_3DZ(*args)
    elif mosek_fusion_NilVariable._match_alt_values_I_3DZ(*args): 
      return self._values_alt_I_3DZ(*args)
    else:
      raise ValueError('Invalid argument list values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.values(int32,array(double,ndim=1),bool)')
  def set_values(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_set_1values__3DZ(*args): 
      return self._set_1values__3DZ(*args)
    elif mosek_fusion_NilVariable._match_alt_set_1values__3DZ(*args): 
      return self._set_1values_alt__3DZ(*args)
    else:
      raise ValueError('Invalid argument list set_values('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.set_values(array(double,ndim=1),bool)')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_NilVariable._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_NilVariable._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_NilVariable._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_NilVariable._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    elif mosek_fusion_NilVariable._match_index_II(*args): 
      return self._index_II(*args)
    elif mosek_fusion_NilVariable._match_alt_index_II(*args): 
      return self._index_alt_II(*args)
    elif mosek_fusion_NilVariable._match_index_III(*args): 
      return self._index_III(*args)
    elif mosek_fusion_NilVariable._match_alt_index_III(*args): 
      return self._index_alt_III(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NilVariable.index(int32)\n\tmosek.fusion.NilVariable.index(array(int32,ndim=1))\n\tmosek.fusion.NilVariable.index(int32,int32)\n\tmosek.fusion.NilVariable.index(int32,int32,int32)')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.NilVariable: '+self._toString_()
  @staticmethod
  def _ctor__3I(shape):
    o = NilVariable.__new__(NilVariable)
    o._ctor_init__3I(shape)
    return o
  @staticmethod
  def __match_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_match__3I__(shape))
  @staticmethod
  def __match_alt_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_alt_match__3I__(shape))
  def _ctor_alt_init__3I(self,shape):
    self._ctor_init__3I(numpy.array(shape,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init__3I(self,shape):
   mosek_fusion_BaseVariable._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3J(self,None,mosek.fusion.Utils.Tools._arraycopy__3I(shape),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)))
   (self.__shape) = numpy.array([shape[_0] for _0 in range(0,int((shape).shape[0]))], dtype=numpy.dtype(numpy.int32))
  @staticmethod
  def _ctor_():
    o = NilVariable.__new__(NilVariable)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_NilVariable._ctor_init__3I(self,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  @staticmethod
  def _match_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_J__(_0) and __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  @staticmethod
  def _match_alt_elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_J__(_0) and __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  def _elementDesc_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _elementDesc_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   return (_1)
  @staticmethod
  def _match_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_J__(_0) and __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  @staticmethod
  def _match_alt_elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_J__(_0) and __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(_1))
  def _elementName_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _elementName_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   pass
  @staticmethod
  def _match_numInst_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numInst_(*args):
    if len(args) != 0: return False
    return True
  def _numInst_alt_(self,):
    return self._numInst_()
  def _numInst_(self,):
   return numpy.int32(0)
  @staticmethod
  def _match_inst_I_3J_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1) and __arg_match__3J__(_2))
  @staticmethod
  def _match_alt_inst_I_3J_3J(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3J__(_2))
  def _inst_alt_I_3J_3J(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3J_3J(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3J_3J(self,_0,_1,_2):
   return numpy.int32(0)
  @staticmethod
  def _match_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1))
  @staticmethod
  def _match_alt_inst_I_3J(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1))
  def _inst_alt_I_3J(self,_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _1_res = self._inst_I_3J(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _inst_I_3J(self,_0,_1):
   pass
  @staticmethod
  def _match_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Z__(_1))
  @staticmethod
  def _match_alt_set_1values__3DZ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Z__(_1))
  def _set_1values_alt__3DZ(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = self._set_1values__3DZ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _set_1values__3DZ(self,_0,_1):
   pass
  @staticmethod
  def _match_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3D__(_1) and __arg_match_Z__(_2))
  @staticmethod
  def _match_alt_values_I_3DZ(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match_Z__(_2))
  def _values_alt_I_3DZ(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = self._values_I_3DZ(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _values_I_3DZ(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1continuous_(*args):
    if len(args) != 0: return False
    return True
  def _make_1continuous_alt_(self,):
    return self._make_1continuous_()
  def _make_1continuous_(self,):
   pass
  @staticmethod
  def _match_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_make_1integer_(*args):
    if len(args) != 0: return False
    return True
  def _make_1integer_alt_(self,):
    return self._make_1integer_()
  def _make_1integer_(self,):
   pass
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("NilVariable")
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   return (mosek_fusion_NilVariable._ctor__3I(numpy.array([1 for _1 in range(0,int((self.__shape).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   return (mosek_fusion_NilVariable._ctor__3I(numpy.array([1 for _1 in range(0,int((self.__shape).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   if ((int((self.__shape).shape[0])!=int((_0).shape[0])) or (int((self.__shape).shape[0])!=int((_1).shape[0]))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching slice shape")
   for _2 in range(0,int((_0).shape[0])):
    if ((_1[_2] > _0[_2]) or ((_0[_2] < 0) or (_1[_2] >= self.__shape[_2]))):
     raise mosek_fusion_SliceError._ctor_S("Slice is out of bounds")
   return (mosek_fusion_NilVariable._ctor__3I(numpy.array([(_1[_3] - _0[_3]) for _3 in range(0,int((self.__shape).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   if ((_1 > _0) or ((_0 < 0) or (_1 > self.__shape[0]))):
    raise mosek_fusion_SliceError._ctor_S("Slice is out of bounds")
   elif (int((self.__shape).shape[0])!=1): # bld/docker-win/final/default/src/fusion/BaseVariable.monty:1020:16-31
    raise mosek_fusion_DimensionError._ctor_S("Mismatching slice shape")
   else:
    return (mosek_fusion_NilVariable._ctor__3I(numpy.array([(_1 - _0)], dtype=numpy.dtype(numpy.int32))))
 return NilVariable
mosek_fusion_NilVariable=__mk_mosek_fusion_NilVariable()
del __mk_mosek_fusion_NilVariable
def __mk_mosek_fusion_Var():
 class Var(object):
  @staticmethod
  def flatten(*args):
    if False: pass
    elif mosek_fusion_Var._match_flatten_Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._flatten_Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_flatten_Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._flatten_alt_Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list flatten('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.flatten(mosek.fusion.Variable)')
  @staticmethod
  def vstack(*args):
    if False: pass
    elif mosek_fusion_Var._match_vstack__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_vstack__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack_alt__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._vstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list vstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.vstack(array(mosek.fusion.Variable,ndim=1))\n\tmosek.fusion.Var.vstack(mosek.fusion.Variable,mosek.fusion.Variable)\n\tmosek.fusion.Var.vstack(mosek.fusion.Variable,mosek.fusion.Variable,mosek.fusion.Variable)')
  @staticmethod
  def empty(*args):
    if False: pass
    elif mosek_fusion_Var._match_empty__3I(*args): 
      return mosek_fusion_Var._empty__3I(*args)
    elif mosek_fusion_Var._match_alt_empty__3I(*args): 
      return mosek_fusion_Var._empty_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list empty('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.empty(array(int32,ndim=1))')
  @staticmethod
  def promote(*args):
    if False: pass
    elif mosek_fusion_Var._match_promote_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._promote_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_promote_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._promote_alt_Lmosek_4fusion_4Variable_2I(*args)
    else:
      raise ValueError('Invalid argument list promote('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.promote(mosek.fusion.Variable,int32)')
  @staticmethod
  def stack(*args):
    if False: pass
    elif mosek_fusion_Var._match_stack__3_3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack__3_3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_stack__3_3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_alt__3_3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_stack__3Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack__3Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_stack__3Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack_alt__3Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_stack_I_3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_I_3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_stack_I_3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_alt_I_3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_alt_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._stack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._stack_alt_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list stack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.stack(array(array(mosek.fusion.Variable,ndim=1),ndim=1))\n\tmosek.fusion.Var.stack(array(mosek.fusion.Variable,ndim=1),int32)\n\tmosek.fusion.Var.stack(int32,array(mosek.fusion.Variable,ndim=1))\n\tmosek.fusion.Var.stack(mosek.fusion.Variable,mosek.fusion.Variable,int32)\n\tmosek.fusion.Var.stack(int32,mosek.fusion.Variable,mosek.fusion.Variable)\n\tmosek.fusion.Var.stack(mosek.fusion.Variable,mosek.fusion.Variable,mosek.fusion.Variable,int32)\n\tmosek.fusion.Var.stack(int32,mosek.fusion.Variable,mosek.fusion.Variable,mosek.fusion.Variable)')
  @staticmethod
  def reshape(*args):
    if False: pass
    elif mosek_fusion_Var._match_reshape_Lmosek_4fusion_4Variable_2_3I(*args): 
      return mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2_3I(*args)
    elif mosek_fusion_Var._match_alt_reshape_Lmosek_4fusion_4Variable_2_3I(*args): 
      return mosek_fusion_Var._reshape_alt_Lmosek_4fusion_4Variable_2_3I(*args)
    elif mosek_fusion_Var._match_reshape_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_reshape_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._reshape_alt_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_reshape_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2II(*args)
    elif mosek_fusion_Var._match_alt_reshape_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Var._reshape_alt_Lmosek_4fusion_4Variable_2II(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.reshape(mosek.fusion.Variable,array(int32,ndim=1))\n\tmosek.fusion.Var.reshape(mosek.fusion.Variable,int32)\n\tmosek.fusion.Var.reshape(mosek.fusion.Variable,int32,int32)')
  @staticmethod
  def vrepeat(*args):
    if False: pass
    elif mosek_fusion_Var._match_vrepeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._vrepeat_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_vrepeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._vrepeat_alt_Lmosek_4fusion_4Variable_2I(*args)
    else:
      raise ValueError('Invalid argument list vrepeat('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.vrepeat(mosek.fusion.Variable,int32)')
  @staticmethod
  def compress(*args):
    if False: pass
    elif mosek_fusion_Var._match_compress_Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._compress_Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_compress_Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._compress_alt_Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list compress('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.compress(mosek.fusion.Variable)')
  @staticmethod
  def hstack(*args):
    if False: pass
    elif mosek_fusion_Var._match_hstack__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_hstack__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack_alt__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Var._match_alt_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Var._hstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list hstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.hstack(array(mosek.fusion.Variable,ndim=1))\n\tmosek.fusion.Var.hstack(mosek.fusion.Variable,mosek.fusion.Variable)\n\tmosek.fusion.Var.hstack(mosek.fusion.Variable,mosek.fusion.Variable,mosek.fusion.Variable)')
  @staticmethod
  def hrepeat(*args):
    if False: pass
    elif mosek_fusion_Var._match_hrepeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._hrepeat_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_hrepeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._hrepeat_alt_Lmosek_4fusion_4Variable_2I(*args)
    else:
      raise ValueError('Invalid argument list hrepeat('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.hrepeat(mosek.fusion.Variable,int32)')
  @staticmethod
  def repeat(*args):
    if False: pass
    elif mosek_fusion_Var._match_repeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._repeat_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_alt_repeat_Lmosek_4fusion_4Variable_2I(*args): 
      return mosek_fusion_Var._repeat_alt_Lmosek_4fusion_4Variable_2I(*args)
    elif mosek_fusion_Var._match_repeat_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Var._repeat_Lmosek_4fusion_4Variable_2II(*args)
    elif mosek_fusion_Var._match_alt_repeat_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Var._repeat_alt_Lmosek_4fusion_4Variable_2II(*args)
    else:
      raise ValueError('Invalid argument list repeat('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Var.repeat(mosek.fusion.Variable,int32)\n\tmosek.fusion.Var.repeat(mosek.fusion.Variable,int32,int32)')
  def __repr__(self): return 'mosek.fusion.Var'
  @staticmethod
  def _match_empty__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_empty__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _empty_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Var._empty__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _empty__3I(_0):
   for _1 in range(0,int((_0).shape[0])):
    if (_0[_1] < 0):
     raise mosek_fusion_DimensionError._ctor_S("Invalid shape")
   return (mosek_fusion_NilVariable._ctor__3I(_0))
  @staticmethod
  def _match_compress_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_compress_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _compress_alt_Lmosek_4fusion_4Variable_2(_t__0):
    return mosek_fusion_Var._compress_Lmosek_4fusion_4Variable_2(_0)
  @staticmethod
  def _compress_Lmosek_4fusion_4Variable_2(_0):
   _1=_0.getShape()
   _2=int((_1).shape[0])
   _3=0
   for _4 in range(0,_2):
    if (_1[_4]!=1):
     _3 += 1
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _6=0
   for _7 in range(0,_2):
    if (_1[_7]!=1):
     _5[_6] = _1[_7]
     _6 += 1
   return (mosek.fusion.Var._reshape_Lmosek_4fusion_4Variable_2_3I(_0,_5))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
    return mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2I(_0,numpy.int32(__1))
  @staticmethod
  def _reshape_Lmosek_4fusion_4Variable_2I(_0,_1):
   return (mosek.fusion.Var._reshape_Lmosek_4fusion_4Variable_2_3I(_0,numpy.array([_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Variable_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _reshape_Lmosek_4fusion_4Variable_2II(_0,_1,_2):
   return (mosek.fusion.Var._reshape_Lmosek_4fusion_4Variable_2_3I(_0,numpy.array([_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_flatten_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_flatten_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _flatten_alt_Lmosek_4fusion_4Variable_2(_t__0):
    return mosek_fusion_Var._flatten_Lmosek_4fusion_4Variable_2(_0)
  @staticmethod
  def _flatten_Lmosek_4fusion_4Variable_2(_0):
   return (mosek.fusion.Var._reshape_Lmosek_4fusion_4Variable_2_3I(_0,numpy.array([numpy.int32(mosek.fusion.Set._size__3I(_0.getShape()))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Variable_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Variable_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Variable_2_3I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Var._reshape_Lmosek_4fusion_4Variable_2_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _reshape_Lmosek_4fusion_4Variable_2_3I(_0,_1):
   return (_0.reshape(_1))
  @staticmethod
  def _index_1permute_1_alt_Lmosek_4fusion_4Variable_2_3I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Var._index_1permute_1_Lmosek_4fusion_4Variable_2_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _index_1permute_1_Lmosek_4fusion_4Variable_2_3I(_0,_1):
   _4=_0.getShape()
   _5=int((_4).shape[0])
   _6=1
   for _7 in range(0,_5):
    _6 *= _4[_7]
   _8=_0.numInst()
   _9=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int64))
   _9[(_5 - 1)] = 1
   for _10 in range(1,_5):
    _9[((_5 - _10) - 1)] = (_9[(_5 - _10)] * _4[_1[(_5 - _10)]])
   if (_8 < _6):
    _2 = numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    _3 = numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    _0.inst(0,_2,0,_3)
   else:
    _2 = None
    _3 = numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    _0.inst(0,_3)
   if (_2 is None):
    _11=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    _12=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
    for _13 in range(0,_8):
     _14=_13
     for _15 in range(0,_5):
      _12[((_5 - _13) - 1)] = (_14 % _4[((_5 - _13) - 1)])
      _14 /= _4[((_5 - _13) - 1)]
     _16=0
     for _17 in range(0,_5):
      _16 += numpy.int32((_12[_1[_17]] * _9[_17]))
     _11[_16] = _3[_13]
    _3 = _11
   else:
    _18=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
    _19=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
    for _20 in range(0,_8):
     _21=_20
     for _22 in range(0,_5):
      _19[((_5 - _20) - 1)] = (_21 % _4[((_5 - _20) - 1)])
      _21 /= _4[((_5 - _20) - 1)]
     _23=0
     for _24 in range(0,_5):
      _23 += numpy.int32((_19[_1[_24]] * _9[_24]))
     _18[_20] = _23
    _25=numpy.array([_26 for _26 in range(0,_8)], dtype=numpy.dtype(numpy.int64))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_25,_18,None,0,_8)
    _2 = numpy.array([_2[_25[_27]] for _27 in range(0,_8)], dtype=numpy.dtype(numpy.int64))
    _3 = numpy.array([_3[_25[_28]] for _28 in range(0,_8)], dtype=numpy.dtype(numpy.int64))
   return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_0.getModel(),numpy.array([_4[_1[_29]] for _29 in range(0,_5)], dtype=numpy.dtype(numpy.int32)),_2,_3))
  @staticmethod
  def _match_hrepeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_hrepeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _hrepeat_alt_Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
    return mosek_fusion_Var._hrepeat_Lmosek_4fusion_4Variable_2I(_0,numpy.int32(__1))
  @staticmethod
  def _hrepeat_Lmosek_4fusion_4Variable_2I(_0,_1):
   return (mosek.fusion.Var.__drepeat_Lmosek_4fusion_4Variable_2II(_0,1,_1))
  @staticmethod
  def _match_vrepeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_vrepeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _vrepeat_alt_Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
    return mosek_fusion_Var._vrepeat_Lmosek_4fusion_4Variable_2I(_0,numpy.int32(__1))
  @staticmethod
  def _vrepeat_Lmosek_4fusion_4Variable_2I(_0,_1):
   return (mosek.fusion.Var.__drepeat_Lmosek_4fusion_4Variable_2II(_0,0,_1))
  @staticmethod
  def _match_repeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_repeat_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _repeat_alt_Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
    return mosek_fusion_Var._repeat_Lmosek_4fusion_4Variable_2I(_0,numpy.int32(__1))
  @staticmethod
  def _repeat_Lmosek_4fusion_4Variable_2I(_0,_1):
   return (mosek.fusion.Var.__drepeat_Lmosek_4fusion_4Variable_2II(_0,0,_1))
  @staticmethod
  def _match_repeat_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_repeat_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _repeat_alt_Lmosek_4fusion_4Variable_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._repeat_Lmosek_4fusion_4Variable_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _repeat_Lmosek_4fusion_4Variable_2II(_0,_1,_2):
   return (mosek.fusion.Var.__drepeat_Lmosek_4fusion_4Variable_2II(_0,_1,_2))
  @staticmethod
  def __drepeat_alt_Lmosek_4fusion_4Variable_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Var.__drepeat_Lmosek_4fusion_4Variable_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def __drepeat_Lmosek_4fusion_4Variable_2II(_0,_1,_2):
   if (_2 < 0):
    raise mosek_fusion_LengthError._ctor_S("Cannot repeat less than 0 times")
   elif (_2==0): # bld/docker-win/final/default/src/fusion/Var.monty:479:16-22
    return (mosek_fusion_NilVariable._ctor_())
   elif (_2==1): # bld/docker-win/final/default/src/fusion/Var.monty:481:16-22
    return (_0)
   else:
    _3=_0.getModel()
    _4=_0.getShape()
    _5=int((_4).shape[0])
    if ((_1 < 0) or (_1 > _5)):
     raise mosek_fusion_DimensionError._ctor_S("Invalid stacking dimension")
    _6=mosek.fusion.Set._size__3I(_4)
    _7=_0.numInst()
    _8=(_7 * _2)
    _9=1
    for _10 in range(0,_1):
     _9 *= _4[_10]
    _11=(_4[_1] if ((_1 < _5) ) else 1)
    _12=(_11 * _2)
    _13=1
    for _14 in range((_1 + 1),_5):
     _13 *= _4[_14]
    _15=(_5 if ((_1 < _5) ) else (_1 + 1))
    _16=numpy.zeros((_15,), dtype=numpy.dtype(numpy.int32))
    for _17 in range(0,_5):
     _16[_17] = _4[_17]
    for _18 in range(_5,_15):
     _16[_18] = 1
    _16[_1] = _12
    if (_7 < _6):
     _19=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int64))
     _20=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int64))
     _21=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
     _22=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int64))
     _0.inst(0,_20,0,_19)
     _23=(_12 * _13)
     _24=(_11 * _13)
     _25=_13
     if (_1==0):
      _26=0
      for _27 in range(0,_2):
       for _28 in range(0,_7):
        _22[_26] = (_20[_28] + (_27 * _6))
        _21[_26] = _19[_28]
        _26 += 1
      return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_3,_16,_22,_21))
     elif (_1 >= _5): # bld/docker-win/final/default/src/fusion/Var.monty:528:22-31
      _29=0
      for _30 in range(0,_7):
       for _31 in range(0,_2):
        _22[_29] = ((_20[_30] * _2) + _31)
        _21[_29] = _19[_30]
        _29 += 1
      return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_3,_16,_22,_21))
     else:
      _32=0
      for _33 in range(0,_7):
       _34=(_20[_33] // _24)
       _35=((_20[_33] // _25) % _11)
       _36=(_20[_33] % _13)
       for _37 in range(0,_2):
        _22[_32] = (((_34 * _23) + ((_35 + (_11 * _37)) * _13)) + _36)
        _21[_32] = _19[_33]
        _32 += 1
      _38=1
      for _39 in range(0,_15):
       if (_38 < _16[_39]):
        _38 = _16[_39]
      _40=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int32))
      _41=numpy.zeros((_8,), dtype=numpy.dtype(numpy.int32))
      _42=numpy.zeros(((_38 + 1),), dtype=numpy.dtype(numpy.int32))
      _43=numpy.zeros((_15,), dtype=numpy.dtype(numpy.int64))
      _43[(_15 - 1)] = 1
      for _44 in range(1,_15):
       _43[((_15 - _44) - 1)] = (_43[(_15 - _44)] * _16[(_15 - _44)])
      for _45 in range(0,_8):
       _40[_45] = _45
      for _46 in range(0,_15):
       _47=((_15 - _46) - 1)
       for _48 in range(0,(_16[_47] + 1)):
        _42[_48] = 0
       for _49 in range(0,_8):
        _42[(((_22[_49] // _43[_47]) % _16[_47]) + 1)] += 1
       for _50 in range(0,_16[_47]):
        _42[(_50 + 1)] += _42[_50]
       for _51 in range(0,_8):
        _52=_40[_51]
        _53=((_22[_52] // _43[_47]) % _16[_47])
        _41[_42[_53]] = _52
        _42[_53] += 1
       _54=_40
       _40 = _41
       _41 = _54
      return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_3,_16,numpy.array([_22[_40[_55]] for _55 in range(0,_8)], dtype=numpy.dtype(numpy.int64)),numpy.array([_21[_40[_56]] for _56 in range(0,_8)], dtype=numpy.dtype(numpy.int64))))
    else:
     _57=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int64))
     _58=numpy.zeros(((_7 * _2),), dtype=numpy.dtype(numpy.int64))
     _0.inst(0,_57)
     _59=(_12 * _13)
     _60=_13
     _61=0
     for _62 in range(0,_9):
      for _63 in range(0,_11):
       for _64 in range(0,_13):
        for _65 in range(0,_2):
         _58[(((_62 * _59) + ((_63 + (_65 * _11)) * _60)) + _64)] = _57[_61]
        _61 += 1
     return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_3,_16,None,_58))
  @staticmethod
  def _match_stack__3_3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_stack__3_3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _stack_alt__3_3Lmosek_4fusion_4Variable_2(_t__0):
   _0=_monty.makeJaggedArray(_t__0,(1,1),numpy.dtype(object))
   _1_res = mosek_fusion_Var._stack__3_3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack__3_3Lmosek_4fusion_4Variable_2(_0):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(_0[_1],1) for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1):
    return mosek_fusion_Var._vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_vstack__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _vstack_alt__3Lmosek_4fusion_4Variable_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Var._vstack__3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _vstack__3Lmosek_4fusion_4Variable_2(_0):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(_0,0))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1):
    return mosek_fusion_Var._hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_hstack__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _hstack_alt__3Lmosek_4fusion_4Variable_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Var._hstack__3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _hstack__3Lmosek_4fusion_4Variable_2(_0):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(_0,1))
  @staticmethod
  def _match_stack__3Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_stack__3Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _stack_alt__3Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Var._stack__3Lmosek_4fusion_4Variable_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack__3Lmosek_4fusion_4Variable_2I(_0,_1):
   return (mosek.fusion.Var._stack_I_3Lmosek_4fusion_4Variable_2(_1,_0))
  @staticmethod
  def _match_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Lmosek_4fusion_4Variable_2__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_2) and __arg_alt_match_I__(_3))
  @staticmethod
  def _stack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Var._stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_0,_1,_2,numpy.int32(__3))
  @staticmethod
  def _stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_0,_1,_2,_3):
   return (mosek.fusion.Var._stack_I_3Lmosek_4fusion_4Variable_2(_3,numpy.array([_0,_1,_2], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _stack_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_0,_1,numpy.int32(__2))
  @staticmethod
  def _stack_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2I(_0,_1,_2):
   return (mosek.fusion.Var._stack_I_3Lmosek_4fusion_4Variable_2(_2,numpy.array([_0,_1], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_stack_I_3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_stack_I_3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _stack_alt_I_3Lmosek_4fusion_4Variable_2(_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Var._stack_I_3Lmosek_4fusion_4Variable_2(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack_I_3Lmosek_4fusion_4Variable_2(_0,_1):
   _2=_0
   for _3 in range(0,int((_1).shape[0])):
    if (_2 < _1[_3].getND()):
     _2 = _1[_3].getND()
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(_1,_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Lmosek_4fusion_4Variable_2__(_2) and __arg_match_Lmosek_4fusion_4Variable_2__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_2) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Var._stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(numpy.int32(__0),_1,_2,_3)
  @staticmethod
  def _stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2,_3):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_1,_2,_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_2))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Var._stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(numpy.int32(__0),_1,_2)
  @staticmethod
  def _stack_ILmosek_4fusion_4Variable_2Lmosek_4fusion_4Variable_2(_0,_1,_2):
   return (mosek.fusion.Var._dstack__3Lmosek_4fusion_4Variable_2I(numpy.array([_1,_2], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_promote_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_promote_Lmosek_4fusion_4Variable_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _promote_alt_Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
    return mosek_fusion_Var._promote_Lmosek_4fusion_4Variable_2I(_0,numpy.int32(__1))
  @staticmethod
  def _promote_Lmosek_4fusion_4Variable_2I(_0,_1):
   if (_1 > _0.getND()):
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    _3=_0.getShape()
    for _4 in range(0,int((_3).shape[0])):
     _2[_4] = _3[_4]
    for _5 in range(int((_3).shape[0]),_1):
     _2[_5] = 1
    return (_0.reshape(_2))
   else:
    return (_0)
  @staticmethod
  def _dstack_alt__3Lmosek_4fusion_4Variable_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Var._dstack__3Lmosek_4fusion_4Variable_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dstack__3Lmosek_4fusion_4Variable_2I(_0,_1):
   if (_1 < 0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid stacking dimension")
   _2=None
   for _3 in range(0,int((_0).shape[0])):
    if (_2 is None):
     _2 = _0[_3].getModel()
    elif ((_0[_3].getModel() is not None) and (_0[_3].getModel() is not _2)): # bld/docker-win/final/default/src/fusion/Var.monty:162:20-69
     _4=mosek.fusion.Utils.StringBuffer()
     _5=(_2._getName_() if ((int(len(_2._getName_())) > 0) ) else "?")
     _6=(_0[_3].getModel()._getName_() if ((int(len(_0[_3].getModel()._getName_())) > 0) ) else "?")
     _4._a_S("Variables belong to different models: '")._a_S(_5)._a_S("' and '")._a_S(_6)._a_S("'")
     raise mosek_fusion_ModelError._ctor_S(_4._toString_())
   if (int((_0).shape[0])==0):
    return (mosek_fusion_NilVariable._ctor_())
   elif (int((_0).shape[0])==1): # bld/docker-win/final/default/src/fusion/Var.monty:174:16-27
    return (_0[0])
   else:
    _7=int((_0).shape[0])
    _8=numpy.array([_0[_9].numInst() for _9 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
    _10=_monty.initJaggedArray([_0[_11].getShape() for _11 in range(0,_7)], 1)
    _12=numpy.array([int((_10[_13]).shape[0]) for _13 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
    _14=_10[0]
    _15=_12[0]
    _16=0
    for _17 in range(0,_7):
     _16 += _8[_17]
    _18=(_1 + 1)
    for _19 in range(0,_7):
     if (_18 < _12[_19]):
      _18 = _12[_19]
    _20=numpy.zeros((_18,), dtype=numpy.dtype(numpy.int32))
    for _21 in range(0,_15):
     _20[_21] = _14[_21]
    for _22 in range(_15,_18):
     _20[_22] = 1
    _20[_1] = 0
    for _23 in range(0,_7):
     _20[_1] += (_10[_23][_1] if ((int((_10[_23]).shape[0]) > _1) ) else 1)
    for _24 in range(0,_7):
     for _25 in range(0,int((_10[_24]).shape[0])):
      if ((_25!=_1) and (_10[_24][_25]!=_20[_25])):
       raise mosek_fusion_DimensionError._ctor_S("Variable dimensions do not match")
     for _26 in range(int((_10[_24]).shape[0]),_18):
      if ((_26!=_1) and (1!=_20[_26])):
       raise mosek_fusion_DimensionError._ctor_S("Variable dimensions do not match")
    _27=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    _28=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    _29=numpy.array([(_10[_30][_1] if ((_1 < int((_10[_30]).shape[0])) ) else 1) for _30 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))
    _31=1
    for _32 in range(0,_1):
     _31 *= (_14[_32] if ((_32 < int((_14).shape[0])) ) else 1)
    _33=0
    for _34 in range(0,_7):
     _33 += _29[_34]
    _35=1
    for _36 in range((_1 + 1),int((_14).shape[0])):
     _35 *= _14[_36]
    if (_31==1):
     _37=0
     _38=0
     for _39 in range(0,_7):
      _0[_39].inst(_37,_28,_37,_27)
      for _40 in range(0,_8[_39]):
       _28[_37] += _38
       _37 += 1
      _38 += mosek.fusion.Set._size__3I(_10[_39])
     return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_2,_20,(_28 if ((_16 < ((_31 * _33) * _35)) ) else None),_27))
    else:
     _41=0
     for _42 in range(0,_7):
      _41 += _0[_42].inst(_41,_28,_41,_27)
     _43=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int32))
     _44=numpy.zeros((_16,), dtype=numpy.dtype(numpy.int32))
     _45=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int32))
     for _46 in range(0,(_7 - 1)):
      _45[(_46 + 1)] = (_45[_46] + _29[_46])
     for _47 in range(0,_16):
      _43[_47] = _47
     _48=0
     for _49 in range(0,_7):
      for _50 in range(0,_8[_49]):
       _51=(_28[_48] // (_29[_49] * _35))
       _52=((_28[_48] // _35) % _29[_49])
       _53=(_28[_48] % _35)
       _28[_48] = (((((_51 * _33) + _52) + _45[_49]) * _35) + _53)
       _48 += 1
     _54=1
     for _55 in range(0,_18):
      _54 = (_20[_55] if ((_54 < _20[_55]) ) else _54)
     _56=numpy.zeros((_18,), dtype=numpy.dtype(numpy.int64))
     _56[(_18 - 1)] = 1
     for _57 in range(1,_18):
      _56[((_18 - _57) - 1)] = (_56[(_18 - _57)] * _20[(_18 - _57)])
     _58=numpy.zeros(((_54 + 1),), dtype=numpy.dtype(numpy.int32))
     for _59 in range(0,_18):
      _60=((_18 - _59) - 1)
      for _61 in range(0,(_20[_60] + 1)):
       _58[_61] = 0
      for _62 in range(0,_16):
       _58[(((_28[_62] // _56[_60]) % _20[_60]) + 1)] += 1
      for _63 in range(0,_20[_60]):
       _58[(_63 + 1)] += _58[_63]
      for _64 in range(0,_16):
       _65=_43[_64]
       _66=((_28[_65] // _56[_60]) % _20[_60])
       _44[_58[_66]] = _65
       _58[_66] += 1
      _67=_43
      _43 = _44
      _44 = _67
     return (mosek_fusion_SliceVariable._ctor_Lmosek_4fusion_4Model_2_3I_3J_3J(_2,_20,(numpy.array([_28[_43[_68]] for _68 in range(0,_16)], dtype=numpy.dtype(numpy.int64)) if ((_16 < ((_31 * _33) * _35)) ) else None),numpy.array([_27[_43[_69]] for _69 in range(0,_16)], dtype=numpy.dtype(numpy.int64))))
 return Var
mosek_fusion_Var=__mk_mosek_fusion_Var()
del __mk_mosek_fusion_Var
def __mk_mosek_fusion_Constraint():
 class Constraint(object):
  __slots__ = ['_Constraint__con_nativeidxs','_Constraint__shape','_Constraint__model']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args)
    elif self.__match_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args): 
      self._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.Constraint.ctor(mosek.fusion.Constraint,mosek.fusion.Model)\n\tmosek.fusion.Constraint.ctor(mosek.fusion.Model,array(int32,ndim=1),array(int32,ndim=1))')
  def size(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_size_(*args): 
      return self._size_(*args)
    elif mosek_fusion_Constraint._match_alt_size_(*args): 
      return self._size_alt_(*args)
    else:
      raise ValueError('Invalid argument list size('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.size()')
  def getModel(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_getModel_(*args): 
      return self._getModel_(*args)
    elif mosek_fusion_Constraint._match_alt_getModel_(*args): 
      return self._getModel_alt_(*args)
    else:
      raise ValueError('Invalid argument list getModel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.getModel()')
  def get_model(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_get_1model_(*args): 
      return self._get_1model_(*args)
    elif mosek_fusion_Constraint._match_alt_get_1model_(*args): 
      return self._get_1model_alt_(*args)
    else:
      raise ValueError('Invalid argument list get_model('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.get_model()')
  @staticmethod
  def vstack(*args):
    if False: pass
    elif mosek_fusion_Constraint._match_vstack__3Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack__3Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_vstack__3Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack_alt__3Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._vstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    else:
      raise ValueError('Invalid argument list vstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.vstack(array(mosek.fusion.Constraint,ndim=1))\n\tmosek.fusion.Constraint.vstack(mosek.fusion.Constraint,mosek.fusion.Constraint)\n\tmosek.fusion.Constraint.vstack(mosek.fusion.Constraint,mosek.fusion.Constraint,mosek.fusion.Constraint)')
  def update(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_update_Lmosek_4fusion_4Expression_2(*args): 
      return self._update_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Constraint._match_alt_update_Lmosek_4fusion_4Expression_2(*args): 
      return self._update_alt_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Constraint._match_update__3D(*args): 
      return self._update__3D(*args)
    elif mosek_fusion_Constraint._match_alt_update__3D(*args): 
      return self._update_alt__3D(*args)
    elif mosek_fusion_Constraint._match_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args): 
      return self._update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Constraint._match_alt_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args): 
      return self._update_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Constraint._match_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args): 
      return self._update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args)
    elif mosek_fusion_Constraint._match_alt_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args): 
      return self._update_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args)
    else:
      raise ValueError('Invalid argument list update('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.update(mosek.fusion.Expression)\n\tmosek.fusion.Constraint.update(array(double,ndim=1))\n\tmosek.fusion.Constraint.update(mosek.fusion.Expression,mosek.fusion.Variable)\n\tmosek.fusion.Constraint.update(mosek.fusion.Expression,mosek.fusion.Variable,bool)')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_Constraint._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.getShape()')
  def level(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_level_(*args): 
      return self._level_(*args)
    elif mosek_fusion_Constraint._match_alt_level_(*args): 
      return self._level_alt_(*args)
    else:
      raise ValueError('Invalid argument list level('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.level()')
  def remove(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_remove_(*args): 
      return self._remove_(*args)
    elif mosek_fusion_Constraint._match_alt_remove_(*args): 
      return self._remove_alt_(*args)
    else:
      raise ValueError('Invalid argument list remove('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.remove()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_Constraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.toString()')
  @staticmethod
  def hstack(*args):
    if False: pass
    elif mosek_fusion_Constraint._match_hstack__3Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack__3Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_hstack__3Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack_alt__3Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    elif mosek_fusion_Constraint._match_alt_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args): 
      return mosek_fusion_Constraint._hstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args)
    else:
      raise ValueError('Invalid argument list hstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.hstack(array(mosek.fusion.Constraint,ndim=1))\n\tmosek.fusion.Constraint.hstack(mosek.fusion.Constraint,mosek.fusion.Constraint)\n\tmosek.fusion.Constraint.hstack(mosek.fusion.Constraint,mosek.fusion.Constraint,mosek.fusion.Constraint)')
  def dual(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_dual_(*args): 
      return self._dual_(*args)
    elif mosek_fusion_Constraint._match_alt_dual_(*args): 
      return self._dual_alt_(*args)
    else:
      raise ValueError('Invalid argument list dual('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.dual()')
  def get_nd(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_get_1nd_(*args): 
      return self._get_1nd_(*args)
    elif mosek_fusion_Constraint._match_alt_get_1nd_(*args): 
      return self._get_1nd_alt_(*args)
    else:
      raise ValueError('Invalid argument list get_nd('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.get_nd()')
  @staticmethod
  def stack(*args):
    if False: pass
    elif mosek_fusion_Constraint._match_stack__3Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack__3Lmosek_4fusion_4Constraint_2I(*args)
    elif mosek_fusion_Constraint._match_alt_stack__3Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack_alt__3Lmosek_4fusion_4Constraint_2I(*args)
    elif mosek_fusion_Constraint._match_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args)
    elif mosek_fusion_Constraint._match_alt_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args)
    elif mosek_fusion_Constraint._match_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args)
    elif mosek_fusion_Constraint._match_alt_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args): 
      return mosek_fusion_Constraint._stack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args)
    else:
      raise ValueError('Invalid argument list stack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.stack(array(mosek.fusion.Constraint,ndim=1),int32)\n\tmosek.fusion.Constraint.stack(mosek.fusion.Constraint,mosek.fusion.Constraint,int32)\n\tmosek.fusion.Constraint.stack(mosek.fusion.Constraint,mosek.fusion.Constraint,mosek.fusion.Constraint,int32)')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_Constraint._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.getND()')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_Constraint._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.getSize()')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_Constraint._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_Constraint._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_Constraint._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.index(int32)\n\tmosek.fusion.Constraint.index(array(int32,ndim=1))')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_Constraint._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_Constraint._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_Constraint._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_Constraint._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Constraint.slice(int32,int32)\n\tmosek.fusion.Constraint.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.Constraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(c,m):
    o = Constraint.__new__(Constraint)
    o._ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(self,c,m):
   self.__model = m
   self.__shape = (c.__shape)
   self.__con_nativeidxs = (c.__con_nativeidxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3I(model,shape,con_nativeidxs):
    o = Constraint.__new__(Constraint)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(model,shape,con_nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args):
    if len(args) != 3: return False
    model,shape,con_nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match__3I__(shape) and __arg_match__3I__(con_nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args):
    if len(args) != 3: return False
    model,shape,con_nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(con_nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,con_nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(model,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(con_nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,con_nativeidxs):
   (self.__model) = model
   (self.__shape) = shape
   (self.__con_nativeidxs) = con_nativeidxs
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   raise mosek_fusion_UnimplementedError._ctor_S("Constraint.toString")
  def _toStringArray_alt__3JJ_3S(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int64(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(object))
   _1_res = self._toStringArray__3JJ_3S(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _toStringArray__3JJ_3S(self,_0,_1,_2):
   pass
  def _dual_1lu_alt_I_3DZ(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = self._dual_1lu_I_3DZ(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _dual_1lu_I_3DZ(self,_0,_1,_2):
   self.__model.getConstraintDuals(_2,self.__con_nativeidxs,_1,_0)
  @staticmethod
  def _match_dual_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dual_(*args):
    if len(args) != 0: return False
    return True
  def _dual_alt_(self,):
    return self._dual_()
  def _dual_(self,):
   _0=numpy.zeros((int((self.__con_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.float64))
   self.__values_ZI_3D(False,0,_0)
   return (_0)
  @staticmethod
  def _match_level_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_level_(*args):
    if len(args) != 0: return False
    return True
  def _level_alt_(self,):
    return self._level_()
  def _level_(self,):
   _0=numpy.zeros((int((self.__con_nativeidxs).shape[0]),), dtype=numpy.dtype(numpy.float64))
   self.__values_ZI_3D(True,0,_0)
   return (_0)
  def __values_alt_ZI_3D(self,_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = self.__values_ZI_3D(_0,_1,_2)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __values_ZI_3D(self,_0,_1,_2):
   self.__model.getConstraintValues(_0,self.__con_nativeidxs,_2,_1)
  @staticmethod
  def _match_remove_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_remove_(*args):
    if len(args) != 0: return False
    return True
  def _remove_alt_(self,):
    return self._remove_()
  def _remove_(self,):
   raise mosek_fusion_DeletionError._ctor_S("Only original constraints can be removed")
  @staticmethod
  def _match_update__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_update__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  def _update_alt__3D(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = self._update__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _update__3D(self,_0):
   self.update(mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2_3I(mosek.fusion.Expr._constTerm__3D(_0),self.getShape()),mosek_fusion_NilVariable._ctor_(),True)
  @staticmethod
  def _match_update_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_update_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  def _update_alt_Lmosek_4fusion_4Expression_2(self,_t__0):
    return self._update_Lmosek_4fusion_4Expression_2(_0)
  def _update_Lmosek_4fusion_4Expression_2(self,_0):
   _1=_0.getShape()
   if (int((self.__shape).shape[0]) < int((_1).shape[0])):
    raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   for _2 in range(0,int((_1).shape[0])):
    if (_1[_2]!=self.__shape[_2]):
     raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   for _3 in range(int((_1).shape[0]),int((self.__shape).shape[0])):
    if (self.__shape[_3]!=1):
     raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   self.__model._update__3ILmosek_4fusion_4Expression_2(self.__con_nativeidxs,_0)
  @staticmethod
  def _match_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_match_Z__(_2))
  @staticmethod
  def _match_alt_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1) and __arg_alt_match_Z__(_2))
  def _update_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(self,_t__0,_t__1,_t__2):
    return self._update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(_0,_1,_2)
  def _update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2Z(self,_0,_1,_2):
   _3=self.getND()
   _4=_0.getShape()
   if (_3 < int((_4).shape[0])):
    raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   for _5 in range(0,int((_4).shape[0])):
    if (_4[_5]!=self.__shape[_5]):
     raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   for _6 in range(int((_4).shape[0]),int((self.__shape).shape[0])):
    if (self.__shape[_6]!=1):
     raise mosek_fusion_DimensionError._ctor_S("Expression shape does not match constraint")
   _7=_1.numInst()
   _8=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int64))
   if (_7 < _1.getSize()):
    _9=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int64))
    _1.inst(0,_9,0,_8)
   else:
    _1.inst(0,_8)
   for _10 in range(0,_7):
    if (_8[_10] < 0):
     raise mosek_fusion_UpdateError._ctor_S("Semidefinite terms cannot be updated")
   _12=True
   for _13 in range(0,(_7 - 1)):
    _12 = (_12 and (_8[_13] < _8[(_13 + 1)]))
   if _12:
    if (not _2):
     _11 = numpy.array([numpy.int32(_8[_14]) for _14 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
    else:
     _11 = numpy.zeros(((_7 + 1),), dtype=numpy.dtype(numpy.int32))
     _11[0] = 0
     for _15 in range(0,_7):
      _11[(1 + _15)] = numpy.int32(_8[_15])
   else:
    _16=numpy.array([_17 for _17 in range(0,_7)], dtype=numpy.dtype(numpy.int64))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_16,_8,None,0,_7)
    _18=1
    for _19 in range(1,_7):
     if (_8[_16[(_19 - 1)]] < _8[_16[_19]]):
      _18 += 1
    if _2:
     _18 += 1
    _11 = numpy.zeros((_18,), dtype=numpy.dtype(numpy.int32))
    _20=0
    if _2:
     _11[0] = 0
     _20 += 1
    _11[_20] = numpy.int32(_8[_16[0]])
    for _21 in range(1,_7):
     if (_8[(_21 - 1)] < _8[_21]):
      _11[_20] = numpy.int32(_8[_16[_21]])
      _20 += 1
   self.__model._update__3ILmosek_4fusion_4Expression_2_3I(self.__con_nativeidxs,_0,_11)
  @staticmethod
  def _match_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  def _update_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(self,_t__0,_t__1):
    return self._update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(_0,_1)
  def _update_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Variable_2(self,_0,_1):
   self.update(_0,_1,False)
  @staticmethod
  def _match_get_1model_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_get_1model_(*args):
    if len(args) != 0: return False
    return True
  def _get_1model_alt_(self,):
    return self._get_1model_()
  def _get_1model_(self,):
   return (self.__model)
  @staticmethod
  def _match_get_1nd_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_get_1nd_(*args):
    if len(args) != 0: return False
    return True
  def _get_1nd_alt_(self,):
    return self._get_1nd_()
  def _get_1nd_(self,):
   return numpy.int32(int((self.__shape).shape[0]))
  @staticmethod
  def _match_size_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_size_(*args):
    if len(args) != 0: return False
    return True
  def _size_alt_(self,):
    return self._size_()
  def _size_(self,):
   _0=1
   for _1 in range(0,int((self.__shape).shape[0])):
    _0 *= self.__shape[_1]
   return numpy.int64(_0)
  @staticmethod
  def _match_stack__3Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_stack__3Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _stack_alt__3Lmosek_4fusion_4Constraint_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Constraint._stack__3Lmosek_4fusion_4Constraint_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack__3Lmosek_4fusion_4Constraint_2I(_0,_1):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(_0,_1))
  @staticmethod
  def _match_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_match_Lmosek_4fusion_4Constraint_2__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_2) and __arg_alt_match_I__(_3))
  @staticmethod
  def _stack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Constraint._stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_0,_1,_2,numpy.int32(__3))
  @staticmethod
  def _stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_0,_1,_2,_3):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),_3))
  @staticmethod
  def _match_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _stack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_t__0,_t__1,_t__2):
    return mosek_fusion_Constraint._stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_0,_1,numpy.int32(__2))
  @staticmethod
  def _stack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2I(_0,_1,_2):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),_2))
  @staticmethod
  def _match_hstack__3Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Constraint_2__(_0))
  @staticmethod
  def _match_alt_hstack__3Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Constraint_2__(_0))
  @staticmethod
  def _hstack_alt__3Lmosek_4fusion_4Constraint_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Constraint._hstack__3Lmosek_4fusion_4Constraint_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _hstack__3Lmosek_4fusion_4Constraint_2(_0):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(_0,1))
  @staticmethod
  def _match_vstack__3Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Constraint_2__(_0))
  @staticmethod
  def _match_alt_vstack__3Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Constraint_2__(_0))
  @staticmethod
  def _vstack_alt__3Lmosek_4fusion_4Constraint_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Constraint._vstack__3Lmosek_4fusion_4Constraint_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _vstack__3Lmosek_4fusion_4Constraint_2(_0):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(_0,0))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_match_Lmosek_4fusion_4Constraint_2__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Constraint._hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1,_2)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1,_2):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_match_Lmosek_4fusion_4Constraint_2__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Constraint._vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1,_2)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1,_2):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_t__0,_t__1):
    return mosek_fusion_Constraint._hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_match_Lmosek_4fusion_4Constraint_2__(_1))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Constraint_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Constraint_2__(_1))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_t__0,_t__1):
    return mosek_fusion_Constraint._vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Constraint_2(_0,_1):
   return (mosek.fusion.Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _dstack_alt__3Lmosek_4fusion_4Constraint_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Constraint._dstack__3Lmosek_4fusion_4Constraint_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dstack__3Lmosek_4fusion_4Constraint_2I(_0,_1):
   _2=None
   for _3 in range(0,int((_0).shape[0])):
    if (_2 is None):
     _2 = _0[_3].getModel()
    elif (((_0[_3].__model) is not None) and ((_0[_3].__model) is not _2)): # bld/docker-win/final/default/src/fusion/Constraint.mbi:285:20-59
     _4=mosek.fusion.Utils.StringBuffer()
     _5=(_2._getName_() if ((int(len(_2._getName_())) > 0) ) else "?")
     _6=(_0[_3].getModel()._getName_() if ((int(len(_0[_3].getModel()._getName_())) > 0) ) else "?")
     _4._a_S("Constraints belong to different models: '")._a_S(_5)._a_S("' and '")._a_S(_6)._a_S("'")
     raise mosek_fusion_ModelError._ctor_S(_4._toString_())
   if (int((_0).shape[0])==0):
    return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(None,numpy.array([0], dtype=numpy.dtype(numpy.int32)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
   elif (int((_0).shape[0])==1): # bld/docker-win/final/default/src/fusion/Constraint.mbi:297:16-27
    return (_0[1])
   else:
    _7=int((_0).shape[0])
    _8=1
    for _9 in range(0,_7):
     _8 = (_0[_9].getND() if ((_0[_9].getND() > _8) ) else _8)
    if (_1==_8):
     _8 += 1
    _10=numpy.zeros((_7,_8,), dtype=numpy.dtype(numpy.int32))
    for _11 in range(0,_7):
     for _12 in range(0,_8):
      _10[_11,_12] = 1
    _13=numpy.array([_0[_14].getSize() for _14 in range(0,_7)], dtype=numpy.dtype(numpy.int32))
    _15=0
    for _16 in range(0,_7):
     _15 += _13[_16]
    for _17 in range(0,_7):
     _18=_0[_17].getShape()
     for _19 in range(0,int((_18).shape[0])):
      _10[_17,_19] = _18[_19]
    if ((_1 < 0) or (_1 > _8)):
     raise mosek_fusion_DimensionError._ctor_S("Invalid stacking dimension")
    for _20 in range(0,_1):
     for _21 in range(1,_7):
      if (_10[0,_20]!=_10[_21,_20]):
       raise mosek_fusion_DimensionError._ctor_S("Constraint dimensions do not match")
    for _22 in range((_1 + 1),_8):
     for _23 in range(1,_7):
      if (_10[0,_22]!=_10[_23,_22]):
       raise mosek_fusion_DimensionError._ctor_S("Constraint dimensions do not match")
    _24=numpy.zeros((_15,), dtype=numpy.dtype(numpy.int32))
    _25=numpy.array([_10[0,_26] for _26 in range(0,_8)], dtype=numpy.dtype(numpy.int32))
    for _27 in range(1,_7):
     _25[_1] += _10[_27,_1]
    _28=int((_25).shape[0])
    _29=numpy.zeros(((int((_0).shape[0]) + 1),), dtype=numpy.dtype(numpy.int64))
    for _30 in range(0,int((_0).shape[0])):
     _29[(_30 + 1)] = (_29[_30] + _10[_30,_1])
    if (_1==0):
     _31=0
     for _32 in range(0,_7):
      _33=int(((_0[_32].__con_nativeidxs)).shape[0])
      mosek.fusion.Utils.Tools._arraycopy__3II_3III((_0[_32].__con_nativeidxs),0,_24,_31,_33)
      _31 += _33
    else:
     _34=_monty.initJaggedArray([(_0[_35].__con_nativeidxs) for _35 in range(0,_7)], 1)
     if (_1 < _8):
      _36=1
      for _37 in range(0,_1):
       _36 *= _25[_37]
      _38=1
      for _39 in range((_1 + 1),_8):
       _38 *= _25[_39]
      _40=0
      for _41 in range(0,_36):
       for _42 in range(0,_7):
        _43=0
        _44=_10[_42,_1]
        for _45 in range(0,_44):
         for _46 in range(0,_38):
          _24[_40] = (_0[_7].__con_nativeidxs)[(((_41 * _38) * _44) + _43)]
          _40 += 1
          _43 += 1
     else:
      _47=1
      for _48 in range(0,_8):
       _47 *= _25[_48]
      _49=0
      for _50 in range(0,_47):
       for _51 in range(0,_7):
        _24[_49] = _34[_51][_50]
        _49 += 1
    return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(_2,_25,_24))
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   if (int((_0).shape[0])!=int((self.__shape).shape[0])):
    raise mosek_fusion_DimensionError._ctor_S("variable shape and slice do not match")
   else:
    for _1 in range(0,int((self.__shape).shape[0])):
     if ((_0[_1] < 0) or (_0[_1] > self.__shape[_1])):
      raise mosek_fusion_IndexError._ctor_S("index is out of bounds")
    _2=int((self.__shape).shape[0])
    _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    _3[(_2 - 1)] = 1
    for _4 in range(1,_2):
     _3[((_2 - _4) - 1)] = (_3[(_2 - _4)] * self.__shape[(_2 - _4)])
    _5=0
    for _6 in range(0,_2):
     _5 += numpy.int32((_3[_6] * _0[_6]))
    return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.array([self.__con_nativeidxs[_5]], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   if ((int((self.__shape).shape[0])==0) and (_0==0)):
    return (self)
   elif (int((self.__shape).shape[0])!=1): # bld/docker-win/final/default/src/fusion/Constraint.mbi:240:16-31
    raise mosek_fusion_DimensionError._ctor_S("Variable shape and slice do not match")
   elif ((_0 < 0) or (_0 > self.__shape[0])): # bld/docker-win/final/default/src/fusion/Constraint.mbi:242:16-41
    raise mosek_fusion_IndexError._ctor_S("Index is out of bounds")
   else:
    return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.array([self.__con_nativeidxs[_0]], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   if (int((_0).shape[0])!=int((_1).shape[0])):
    raise mosek_fusion_SliceError._ctor_S("invalid slice")
   elif (int((_0).shape[0])!=int((self.__shape).shape[0])): # bld/docker-win/final/default/src/fusion/Constraint.mbi:182:16-41
    raise mosek_fusion_DimensionError._ctor_S("variable shape and slice do not match")
   else:
    for _2 in range(0,int((self.__shape).shape[0])):
     if ((_0[_2] < 0) or (_1[_2] > self.__shape[_2])):
      raise mosek_fusion_IndexError._ctor_S("slice is out of bounds")
     elif (_0[_2] > _1[_2]): # bld/docker-win/final/default/src/fusion/Constraint.mbi:188:20-40
      raise mosek_fusion_SliceError._ctor_S("invalid slice")
    _3=int((self.__shape).shape[0])
    _4=numpy.array([(_1[_5] - _0[_5]) for _5 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
    _6=1
    for _7 in range(0,_3):
     _6 *= (_1[_7] - _0[_7])
    if (_6==0):
     return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(self.__model,_4,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
    else:
     _8=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
     _9=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
     _9[(_3 - 1)] = 1
     for _10 in range(1,_3):
      _9[((_3 - _10) - 1)] = (_9[(_3 - _10)] * self.__shape[(_3 - _10)])
     _11=0
     for _12 in range(0,_3):
      _11 += (_0[_12] * _9[_12])
     _13=numpy.array([_11 for _14 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
     _15=numpy.array([_0[_16] for _16 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
     for _17 in range(0,_6):
      _8[_17] = self.__con_nativeidxs[_13[(_3 - 1)]]
      _15[(_3 - 1)] += 1
      _13[(_3 - 1)] += _9[(_3 - 1)]
      if (_15[(_3 - 1)] >= _1[(_3 - 1)]):
       _18=(_3 - 1)
       while ((_18 > 0) and (_15[_18] >= _1[_18])):
        _15[_18] = _0[_18]
        _15[(_18 - 1)] += 1
        _13[(_18 - 1)] += _9[(_18 - 1)]
        _18 -= 1
       for _19 in range((_18 + 1),_3):
        _13[_19] = _13[_18]
     return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(self.getModel(),_4,_8))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_DimensionError._ctor_S("Variable shape and slice do not match")
   if ((_0==0) and (_1==self.__shape[0])):
    return (self)
   elif ((_0 < 0) or (_1 > self.__shape[0])): # bld/docker-win/final/default/src/fusion/Constraint.mbi:171:16-44
    raise mosek_fusion_IndexError._ctor_S("Slice is out of bounds")
   elif (_0 > _1): # bld/docker-win/final/default/src/fusion/Constraint.mbi:173:16-28
    raise mosek_fusion_SliceError._ctor_S("Invalid slice")
   else:
    return (mosek_fusion_SliceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3I(self.__model,numpy.array([(_1 - _0)], dtype=numpy.dtype(numpy.int32)),numpy.array([self.__con_nativeidxs[_2] for _2 in range(_0,_1)], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   return numpy.int32(int((self.__shape).shape[0]))
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   _0=1
   for _1 in range(0,int((self.__shape).shape[0])):
    _0 *= self.__shape[_1]
   return numpy.int32(_0)
  @staticmethod
  def _match_getModel_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getModel_(*args):
    if len(args) != 0: return False
    return True
  def _getModel_alt_(self,):
    return self._getModel_()
  def _getModel_(self,):
   return (self.__model)
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   return (numpy.array([self.__shape[_0] for _0 in range(0,int((self.__shape).shape[0]))], dtype=numpy.dtype(numpy.int32)))
  def _getNativeidxs_alt_(self,):
    return self._getNativeidxs_()
  def _getNativeidxs_(self,):
   return (self.__con_nativeidxs)
 return Constraint
mosek_fusion_Constraint=__mk_mosek_fusion_Constraint()
del __mk_mosek_fusion_Constraint
def __mk_mosek_fusion_SliceConstraint():
 class SliceConstraint(mosek_fusion_Constraint):
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_SliceConstraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_SliceConstraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SliceConstraint.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.SliceConstraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4SliceConstraint_2(c):
    o = SliceConstraint.__new__(SliceConstraint)
    o._ctor_init_Lmosek_4fusion_4SliceConstraint_2(c)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4SliceConstraint_2(*args):
    if len(args) != 1: return False
    c, = args
    return (__arg_match_Lmosek_4fusion_4SliceConstraint_2__(c))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4SliceConstraint_2(*args):
    if len(args) != 1: return False
    c, = args
    return (__arg_alt_match_Lmosek_4fusion_4SliceConstraint_2__(c))
  def _ctor_alt_init_Lmosek_4fusion_4SliceConstraint_2(self,c):
    self._ctor_init_Lmosek_4fusion_4SliceConstraint_2(c)
  def _ctor_init_Lmosek_4fusion_4SliceConstraint_2(self,c):
   mosek_fusion_Constraint._ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(self,c,c.getModel())
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3I(model,shape,nativeidxs):
    o = SliceConstraint.__new__(SliceConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(model,shape,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args):
    if len(args) != 3: return False
    model,shape,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match__3I__(shape) and __arg_match__3I__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3I(*args):
    if len(args) != 3: return False
    model,shape,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(model,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,nativeidxs):
   mosek_fusion_Constraint._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,nativeidxs)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("SliceConstraint()")
   return (_0._toString_())
 return SliceConstraint
mosek_fusion_SliceConstraint=__mk_mosek_fusion_SliceConstraint()
del __mk_mosek_fusion_SliceConstraint
def __mk_mosek_fusion_BoundInterfaceConstraint():
 class BoundInterfaceConstraint(mosek_fusion_SliceConstraint):
  __slots__ = ['_BoundInterfaceConstraint__islower']
  def dual(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceConstraint._match_dual_(*args): 
      return self._dual_(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_alt_dual_(*args): 
      return self._dual_alt_(*args)
    else:
      raise ValueError('Invalid argument list dual('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceConstraint.dual()')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceConstraint._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceConstraint.slice(int32,int32)\n\tmosek.fusion.BoundInterfaceConstraint.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_BoundInterfaceConstraint._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_BoundInterfaceConstraint._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BoundInterfaceConstraint.index(int32)\n\tmosek.fusion.BoundInterfaceConstraint.index(array(int32,ndim=1))')
  def __repr__(self): return 'mosek.fusion.BoundInterfaceConstraint'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3IZ(m,shape,nativeidxs,islower):
    o = BoundInterfaceConstraint.__new__(BoundInterfaceConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3IZ(m,shape,nativeidxs,islower)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3IZ(*args):
    if len(args) != 4: return False
    m,shape,nativeidxs,islower, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(m) and __arg_match__3I__(shape) and __arg_match__3I__(nativeidxs) and __arg_match_Z__(islower))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3IZ(*args):
    if len(args) != 4: return False
    m,shape,nativeidxs,islower, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(m) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nativeidxs) and __arg_alt_match_Z__(islower))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3IZ(self,m,shape,nativeidxs,islower):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3IZ(m,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)),islower)
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3IZ(self,m,shape,nativeidxs,islower):
   mosek_fusion_SliceConstraint._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(self,m,shape,nativeidxs)
   (self.__islower) = islower
  @staticmethod
  def _ctor_Lmosek_4fusion_4SliceConstraint_2Z(c,islower):
    o = BoundInterfaceConstraint.__new__(BoundInterfaceConstraint)
    o._ctor_init_Lmosek_4fusion_4SliceConstraint_2Z(c,islower)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4SliceConstraint_2Z(*args):
    if len(args) != 2: return False
    c,islower, = args
    return (__arg_match_Lmosek_4fusion_4SliceConstraint_2__(c) and __arg_match_Z__(islower))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4SliceConstraint_2Z(*args):
    if len(args) != 2: return False
    c,islower, = args
    return (__arg_alt_match_Lmosek_4fusion_4SliceConstraint_2__(c) and __arg_alt_match_Z__(islower))
  def _ctor_alt_init_Lmosek_4fusion_4SliceConstraint_2Z(self,c,islower):
    self._ctor_init_Lmosek_4fusion_4SliceConstraint_2Z(c,islower)
  def _ctor_init_Lmosek_4fusion_4SliceConstraint_2Z(self,c,islower):
   mosek_fusion_SliceConstraint._ctor_init_Lmosek_4fusion_4SliceConstraint_2(self,c)
   (self.__islower) = islower
  @staticmethod
  def _match_dual_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_dual_(*args):
    if len(args) != 0: return False
    return True
  def _dual_alt_(self,):
    return self._dual_()
  def _dual_(self,):
   _0=numpy.zeros((self.getSize(),), dtype=numpy.dtype(numpy.float64))
   self._dual_1lu_I_3DZ(0,_0,self.__islower)
   return (_0)
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   _2=mosek_fusion_Constraint._slice__3I_3I(self,_0,_1)
   return (self.__from_1_Lmosek_4fusion_4Constraint_2(_2))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   _2=mosek_fusion_Constraint._slice_II(self,_0,_1)
   return (self.__from_1_Lmosek_4fusion_4Constraint_2(_2))
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   _1=mosek_fusion_Constraint._index__3I(self,_0)
   return (self.__from_1_Lmosek_4fusion_4Constraint_2(_1))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   _1=mosek_fusion_Constraint._index_I(self,_0)
   return (self.__from_1_Lmosek_4fusion_4Constraint_2(_1))
  def __from_1_alt_Lmosek_4fusion_4Constraint_2(self,_t__0):
    return self.__from_1_Lmosek_4fusion_4Constraint_2(_0)
  def __from_1_Lmosek_4fusion_4Constraint_2(self,_0):
   _2=_0
   if   isinstance(_2,mosek_fusion_SliceConstraint):
    cc=_2
    return (mosek_fusion_BoundInterfaceConstraint._ctor_Lmosek_4fusion_4SliceConstraint_2Z(cc,self.__islower))
   else:
    cc=_2
    return (None)
 return BoundInterfaceConstraint
mosek_fusion_BoundInterfaceConstraint=__mk_mosek_fusion_BoundInterfaceConstraint()
del __mk_mosek_fusion_BoundInterfaceConstraint
def __mk_mosek_fusion_ModelConstraint():
 class ModelConstraint(mosek_fusion_Constraint):
  __slots__ = ['_ModelConstraint__conid','_ModelConstraint__shape','_ModelConstraint__modelcon_nativeidxs','_ModelConstraint__name']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ModelConstraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ModelConstraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ModelConstraint.toString()')
  def remove(self,*args):
    if False: pass
    elif mosek_fusion_ModelConstraint._match_remove_(*args): 
      return self._remove_(*args)
    elif mosek_fusion_ModelConstraint._match_alt_remove_(*args): 
      return self._remove_alt_(*args)
    else:
      raise ValueError('Invalid argument list remove('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ModelConstraint.remove()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ModelConstraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = ModelConstraint.__new__(ModelConstraint)
    o._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4ModelConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4ModelConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_Constraint._ctor_init_Lmosek_4fusion_4Constraint_2Lmosek_4fusion_4Model_2(self,c,m)
   (self.__conid) = (c.__conid)
   self.__name = (c.__name)
   self.__modelcon_nativeidxs = (c.__modelcon_nativeidxs)
   self.__shape = (c.__shape)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2S_3I_3II(model,name,shape,nidxs,conid):
    o = ModelConstraint.__new__(ModelConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(model,name,shape,nidxs,conid)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2S_3I_3II(*args):
    if len(args) != 5: return False
    model,name,shape,nidxs,conid, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match__3I__(shape) and __arg_match__3I__(nidxs) and __arg_match_I__(conid))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2S_3I_3II(*args):
    if len(args) != 5: return False
    model,name,shape,nidxs,conid, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nidxs) and __arg_alt_match_I__(conid))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nidxs,conid):
    self._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(model,name,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nidxs,dtype=numpy.dtype(numpy.int32)),numpy.int32(conid))
  def _ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nidxs,conid):
   mosek_fusion_Constraint._ctor_init_Lmosek_4fusion_4Model_2_3I_3I(self,model,shape,nidxs)
   (self.__name) = name
   (self.__modelcon_nativeidxs) = nidxs
   (self.__shape) = shape
   (self.__conid) = conid
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("Constraint('")._a_S(self.__name)._a_S("')")
   return (_0._toString_())
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   pass
  @staticmethod
  def _match_remove_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_remove_(*args):
    if len(args) != 0: return False
    return True
  def _remove_alt_(self,):
    return self._remove_()
  def _remove_(self,):
   self.getModel()._removeConstraintBlock_I(self.__conid)
 return ModelConstraint
mosek_fusion_ModelConstraint=__mk_mosek_fusion_ModelConstraint()
del __mk_mosek_fusion_ModelConstraint
def __mk_mosek_fusion_LinearPSDConstraint():
 class LinearPSDConstraint(mosek_fusion_ModelConstraint):
  __slots__ = ['_LinearPSDConstraint__conedim','_LinearPSDConstraint__shape','_LinearPSDConstraint__conid','_LinearPSDConstraint__slackidxs','_LinearPSDConstraint__nativeidxs']
  def __repr__(self): return 'mosek.fusion.LinearPSDConstraint'
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = LinearPSDConstraint.__new__(LinearPSDConstraint)
    o._ctor_init_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4LinearPSDConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearPSDConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m)
   self.__conid = (c.__conid)
   self.__slackidxs = (c.__slackidxs)
   self.__nativeidxs = (c.__nativeidxs)
   self.__conedim = (c.__conedim)
   self.__shape = (c.__shape)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3II_3I_3J(model,name,conid,shape,conedim,nativeidxs,slackidxs):
    o = LinearPSDConstraint.__new__(LinearPSDConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3II_3I_3J(model,name,conid,shape,conedim,nativeidxs,slackidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3II_3I_3J(*args):
    if len(args) != 7: return False
    model,name,conid,shape,conedim,nativeidxs,slackidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(conid) and __arg_match__3I__(shape) and __arg_match_I__(conedim) and __arg_match__3I__(nativeidxs) and __arg_match__3J__(slackidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3II_3I_3J(*args):
    if len(args) != 7: return False
    model,name,conid,shape,conedim,nativeidxs,slackidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(conid) and __arg_alt_match__3I__(shape) and __arg_alt_match_I__(conedim) and __arg_alt_match__3I__(nativeidxs) and __arg_alt_match__3J__(slackidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3II_3I_3J(self,model,name,conid,shape,conedim,nativeidxs,slackidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3II_3I_3J(model,name,numpy.int32(conid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)),numpy.array(slackidxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3II_3I_3J(self,model,name,conid,shape,conedim,nativeidxs,slackidxs):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nativeidxs,conid)
   (self.__conid) = conid
   (self.__slackidxs) = slackidxs
   (self.__nativeidxs) = nativeidxs
   (self.__conedim) = conedim
   (self.__shape) = shape
  def _domainToString_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   _2=mosek.fusion.Set._idxtokey__3IJ(self.__shape,_0)
   _1._a_S(" : element (")._a_I(_2[0])
   for _3 in range(1,int((_2).shape[0])):
    _1._a_S(",")._a_I(_2[_3])
   _1._a_S(") in a positive semi-definite cone of size (")._a_I(self.__shape[0])
   for _4 in range(1,int((_2).shape[0])):
    _1._a_S(",")._a_I(self.__shape[_4])
   _1._a_S(")")
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_LinearPSDConstraint._ctor_Lmosek_4fusion_4LinearPSDConstraint_2Lmosek_4fusion_4Model_2(self,_0))
 return LinearPSDConstraint
mosek_fusion_LinearPSDConstraint=__mk_mosek_fusion_LinearPSDConstraint()
del __mk_mosek_fusion_LinearPSDConstraint
def __mk_mosek_fusion_PSDConstraint():
 class PSDConstraint(mosek_fusion_ModelConstraint):
  __slots__ = ['_PSDConstraint__names_flushed','_PSDConstraint__conedim1','_PSDConstraint__conedim0','_PSDConstraint__shape','_PSDConstraint__name','_PSDConstraint__slackidxs','_PSDConstraint__nativeidxs','_PSDConstraint__conid']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_PSDConstraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_PSDConstraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.PSDConstraint.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.PSDConstraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = PSDConstraint.__new__(PSDConstraint)
    o._ctor_init_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4PSDConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4PSDConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m)
   self.__conid = (c.__conid)
   self.__name = (c.__name)
   self.__shape = (c.__shape)
   self.__slackidxs = (c.__slackidxs)
   self.__nativeidxs = (c.__nativeidxs)
   self.__names_flushed = (c.__names_flushed)
   self.__conedim0 = (c.__conedim0)
   self.__conedim1 = (c.__conedim1)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3III_3J_3I(model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs):
    o = PSDConstraint.__new__(PSDConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3III_3J_3I(model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3III_3J_3I(*args):
    if len(args) != 8: return False
    model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(conid) and __arg_match__3I__(shape) and __arg_match_I__(conedim0) and __arg_match_I__(conedim1) and __arg_match__3J__(slackidxs) and __arg_match__3I__(nativeidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3III_3J_3I(*args):
    if len(args) != 8: return False
    model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(conid) and __arg_alt_match__3I__(shape) and __arg_alt_match_I__(conedim0) and __arg_alt_match_I__(conedim1) and __arg_alt_match__3J__(slackidxs) and __arg_alt_match__3I__(nativeidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3III_3J_3I(self,model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3III_3J_3I(model,name,numpy.int32(conid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim0),numpy.int32(conedim1),numpy.array(slackidxs,dtype=numpy.dtype(numpy.int64)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3III_3J_3I(self,model,name,conid,shape,conedim0,conedim1,slackidxs,nativeidxs):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,mosek.fusion.PSDConstraint.__computenidxs__3III_3I(shape,conedim0,conedim1,nativeidxs),conid)
   (self.__conid) = conid
   (self.__nativeidxs) = nativeidxs
   (self.__slackidxs) = slackidxs
   (self.__name) = name
   (self.__shape) = shape
   (self.__conedim0) = conedim0
   (self.__conedim1) = conedim1
   self.__names_flushed = False
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   raise mosek_fusion_UnimplementedError._ctor_S("PSDConstraint.toString not implemented")
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_PSDConstraint._ctor_Lmosek_4fusion_4PSDConstraint_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def __computenidxs_alt__3III_3I(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_PSDConstraint.__computenidxs__3III_3I(_0,_1,_2,_3)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __computenidxs__3III_3I(_0,_1,_2,_3):
   _4=int((_0).shape[0])
   _5=(_1 < _2)
   _6=(_1 if (_5 ) else _2)
   _7=(_2 if (_5 ) else _1)
   _8=numpy.array([1,1,1,1,1], dtype=numpy.dtype(numpy.int32))
   _9=numpy.zeros((5,), dtype=numpy.dtype(numpy.int32))
   _10=1
   for _11 in range(0,int((_0).shape[0])):
    _10 *= _0[_11]
   for _12 in range(0,_6):
    _8[0] *= _0[_12]
   _8[1] = _0[_6]
   for _13 in range((_6 + 1),_7):
    _8[2] *= _0[_13]
   _8[3] = _0[_7]
   for _14 in range((_7 + 1),_4):
    _8[4] *= _0[_14]
   _9[4] = 1
   for _15 in range(1,5):
    _9[((5 - _15) - 1)] = (_9[(5 - _15)] * _8[(5 - _15)])
   _16=numpy.zeros((_10,), dtype=numpy.dtype(numpy.int32))
   _17=0
   if _5:
    for _18 in range(0,_8[0]):
     for _19 in range(0,_8[1]):
      for _20 in range(0,_8[2]):
       for _21 in range(_19,_8[1]):
        for _22 in range(0,_8[4]):
         _16[(((((_18 * _9[0]) + (_19 * _9[1])) + (_20 * _9[2])) + (_21 * _9[3])) + (_22 * _9[4]))] = _3[_17]
         _16[(((((_18 * _9[0]) + (_21 * _9[1])) + (_20 * _9[2])) + (_19 * _9[3])) + (_22 * _9[4]))] = _3[_17]
         _17 += 1
   else:
    for _23 in range(0,_8[0]):
     for _24 in range(0,_8[1]):
      for _25 in range(0,_8[2]):
       for _26 in range(0,(_24 + 1)):
        for _27 in range(0,_8[4]):
         _16[(((((_23 * _9[0]) + (_24 * _9[1])) + (_25 * _9[2])) + (_26 * _9[3])) + (_27 * _9[4]))] = _3[_17]
         _16[(((((_23 * _9[0]) + (_26 * _9[1])) + (_25 * _9[2])) + (_24 * _9[3])) + (_27 * _9[4]))] = _3[_17]
         _17 += 1
   return (_16)
 return PSDConstraint
mosek_fusion_PSDConstraint=__mk_mosek_fusion_PSDConstraint()
del __mk_mosek_fusion_PSDConstraint
def __mk_mosek_fusion_RangedConstraint():
 class RangedConstraint(mosek_fusion_ModelConstraint):
  __slots__ = ['_RangedConstraint__nativeidxs','_RangedConstraint__shape']
  def upperBoundCon(self,*args):
    if False: pass
    elif mosek_fusion_RangedConstraint._match_upperBoundCon_(*args): 
      return self._upperBoundCon_(*args)
    elif mosek_fusion_RangedConstraint._match_alt_upperBoundCon_(*args): 
      return self._upperBoundCon_alt_(*args)
    else:
      raise ValueError('Invalid argument list upperBoundCon('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangedConstraint.upperBoundCon()')
  def lowerBoundCon(self,*args):
    if False: pass
    elif mosek_fusion_RangedConstraint._match_lowerBoundCon_(*args): 
      return self._lowerBoundCon_(*args)
    elif mosek_fusion_RangedConstraint._match_alt_lowerBoundCon_(*args): 
      return self._lowerBoundCon_alt_(*args)
    else:
      raise ValueError('Invalid argument list lowerBoundCon('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangedConstraint.lowerBoundCon()')
  def __repr__(self): return 'mosek.fusion.RangedConstraint'
  @staticmethod
  def _ctor_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = RangedConstraint.__new__(RangedConstraint)
    o._ctor_init_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4RangedConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangedConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m)
   self.__shape = (c.__shape)
   self.__nativeidxs = (c.__nativeidxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2S_3I_3II(model,name,shape,nativeidxs,conid):
    o = RangedConstraint.__new__(RangedConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(model,name,shape,nativeidxs,conid)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2S_3I_3II(*args):
    if len(args) != 5: return False
    model,name,shape,nativeidxs,conid, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match__3I__(shape) and __arg_match__3I__(nativeidxs) and __arg_match_I__(conid))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2S_3I_3II(*args):
    if len(args) != 5: return False
    model,name,shape,nativeidxs,conid, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nativeidxs) and __arg_alt_match_I__(conid))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nativeidxs,conid):
    self._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(model,name,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)),numpy.int32(conid))
  def _ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nativeidxs,conid):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nativeidxs,conid)
   (self.__shape) = shape
   (self.__nativeidxs) = nativeidxs
  @staticmethod
  def _match_upperBoundCon_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_upperBoundCon_(*args):
    if len(args) != 0: return False
    return True
  def _upperBoundCon_alt_(self,):
    return self._upperBoundCon_()
  def _upperBoundCon_(self,):
   return (mosek_fusion_BoundInterfaceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3IZ(self.getModel(),self.__shape,self.__nativeidxs,False))
  @staticmethod
  def _match_lowerBoundCon_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_lowerBoundCon_(*args):
    if len(args) != 0: return False
    return True
  def _lowerBoundCon_alt_(self,):
    return self._lowerBoundCon_()
  def _lowerBoundCon_(self,):
   return (mosek_fusion_BoundInterfaceConstraint._ctor_Lmosek_4fusion_4Model_2_3I_3IZ(self.getModel(),self.__shape,self.__nativeidxs,True))
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_RangedConstraint._ctor_Lmosek_4fusion_4RangedConstraint_2Lmosek_4fusion_4Model_2(self,_0))
 return RangedConstraint
mosek_fusion_RangedConstraint=__mk_mosek_fusion_RangedConstraint()
del __mk_mosek_fusion_RangedConstraint
def __mk_mosek_fusion_ConicConstraint():
 class ConicConstraint(mosek_fusion_ModelConstraint):
  __slots__ = ['_ConicConstraint__indexnames','_ConicConstraint__nativeidxs','_ConicConstraint__names_flushed','_ConicConstraint__name','_ConicConstraint__shape','_ConicConstraint__dom','_ConicConstraint__conid']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ConicConstraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ConicConstraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConicConstraint.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ConicConstraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = ConicConstraint.__new__(ConicConstraint)
    o._ctor_init_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4ConicConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConicConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m)
   self.__dom = (c.__dom)
   self.__conid = (c.__conid)
   self.__shape = (c.__shape)
   self.__name = (c.__name)
   self.__nativeidxs = (c.__nativeidxs)
   self.__names_flushed = (c.__names_flushed)
   self.__indexnames = (c.__indexnames)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(model,name,dom,shape,conid,nativeidxs,indexnames):
    o = ConicConstraint.__new__(ConicConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(model,name,dom,shape,conid,nativeidxs,indexnames)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(*args):
    if len(args) != 7: return False
    model,name,dom,shape,conid,nativeidxs,indexnames, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(dom) and __arg_match__3I__(shape) and __arg_match_I__(conid) and __arg_match__3I__(nativeidxs) and __arg_match__3_3S__(indexnames))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(*args):
    if len(args) != 7: return False
    model,name,dom,shape,conid,nativeidxs,indexnames, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(dom) and __arg_alt_match__3I__(shape) and __arg_alt_match_I__(conid) and __arg_alt_match__3I__(nativeidxs) and __arg_alt_match__3_3S__(indexnames))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(self,model,name,dom,shape,conid,nativeidxs,indexnames):
    self._ctor_init_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(model,name,dom,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.int32(conid),numpy.array(nativeidxs,dtype=numpy.dtype(numpy.int32)),numpy.array(indexnames,dtype=numpy.dtype(object)))
  def _ctor_init_Lmosek_4fusion_4Model_2SLmosek_4fusion_4ConeDomain_2_3II_3I_3_3S(self,model,name,dom,shape,conid,nativeidxs,indexnames):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,numpy.array([(- (1 + nativeidxs[_0])) for _0 in range(0,int((nativeidxs).shape[0]))], dtype=numpy.dtype(numpy.int32)),(- (1 + conid)))
   (self.__dom) = dom
   (self.__shape) = shape
   (self.__name) = name
   (self.__nativeidxs) = nativeidxs
   (self.__indexnames) = indexnames
   (self.__conid) = conid
   self.__names_flushed = False
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("ConicConstraint('")._a_S(self.__name)._a_S("')")
   return (_0._toString_())
  def _domainToString_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   raise mosek_fusion_UnimplementedError._ctor_S("ConicConstraint.domainToString")
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_ConicConstraint._ctor_Lmosek_4fusion_4ConicConstraint_2Lmosek_4fusion_4Model_2(self,_0))
 return ConicConstraint
mosek_fusion_ConicConstraint=__mk_mosek_fusion_ConicConstraint()
del __mk_mosek_fusion_ConicConstraint
def __mk_mosek_fusion_LinearConstraint():
 class LinearConstraint(mosek_fusion_ModelConstraint):
  __slots__ = ['_LinearConstraint__indexnames','_LinearConstraint__names_flushed','_LinearConstraint__nidxs','_LinearConstraint__name','_LinearConstraint__conid']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_LinearConstraint._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_LinearConstraint._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearConstraint.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.LinearConstraint: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(c,m):
    o = LinearConstraint.__new__(LinearConstraint)
    o._ctor_init_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(c,m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_match_Lmosek_4fusion_4LinearConstraint_2__(c) and __arg_match_Lmosek_4fusion_4Model_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    c,m, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearConstraint_2__(c) and __arg_alt_match_Lmosek_4fusion_4Model_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
    self._ctor_init_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(c,m)
  def _ctor_init_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(self,c,m):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4ModelConstraint_2Lmosek_4fusion_4Model_2(self,c,m)
   self.__conid = (c.__conid)
   self.__name = (c.__name)
   self.__nidxs = mosek.fusion.Utils.Tools._arraycopy__3I((c.__nidxs))
   self.__names_flushed = (c.__names_flushed)
   self.__indexnames = (c.__indexnames)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(model,name,conid,shape,nidxs,indexnames):
    o = LinearConstraint.__new__(LinearConstraint)
    o._ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(model,name,conid,shape,nidxs,indexnames)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(*args):
    if len(args) != 6: return False
    model,name,conid,shape,nidxs,indexnames, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match_S__(name) and __arg_match_I__(conid) and __arg_match__3I__(shape) and __arg_match__3I__(nidxs) and __arg_match__3_3S__(indexnames))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(*args):
    if len(args) != 6: return False
    model,name,conid,shape,nidxs,indexnames, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match_S__(name) and __arg_alt_match_I__(conid) and __arg_alt_match__3I__(shape) and __arg_alt_match__3I__(nidxs) and __arg_alt_match__3_3S__(indexnames))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(self,model,name,conid,shape,nidxs,indexnames):
    self._ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(model,name,numpy.int32(conid),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(nidxs,dtype=numpy.dtype(numpy.int32)),numpy.array(indexnames,dtype=numpy.dtype(object)))
  def _ctor_init_Lmosek_4fusion_4Model_2SI_3I_3I_3_3S(self,model,name,conid,shape,nidxs,indexnames):
   mosek_fusion_ModelConstraint._ctor_init_Lmosek_4fusion_4Model_2S_3I_3II(self,model,name,shape,nidxs,conid)
   (self.__nidxs) = nidxs
   (self.__conid) = conid
   (self.__name) = name
   (self.__names_flushed) = False
   (self.__indexnames) = indexnames
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("LinearConstraint('")._a_S(self.__name)._a_S("')")
   return (_0._toString_())
  def _flushNames_alt_(self,):
    return self._flushNames_()
  def _flushNames_(self,):
   pass
  def _domainToString_alt_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_t__0,_t__1):
    return self._domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(numpy.int64(__0),_1)
  def _domainToString_JLmosek_4fusion_4Utils_4StringBuffer_2(self,_0,_1):
   pass
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_LinearConstraint._ctor_Lmosek_4fusion_4LinearConstraint_2Lmosek_4fusion_4Model_2(self,_0))
 return LinearConstraint
mosek_fusion_LinearConstraint=__mk_mosek_fusion_LinearConstraint()
del __mk_mosek_fusion_LinearConstraint
def __mk_mosek_fusion_Set():
 class Set(object):
  @staticmethod
  def scalar(*args):
    if False: pass
    elif mosek_fusion_Set._match_scalar_(*args): 
      return mosek_fusion_Set._scalar_(*args)
    elif mosek_fusion_Set._match_alt_scalar_(*args): 
      return mosek_fusion_Set._scalar_alt_(*args)
    else:
      raise ValueError('Invalid argument list scalar('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.scalar()')
  @staticmethod
  def indexToKey(*args):
    if False: pass
    elif mosek_fusion_Set._match_indexToKey__3IJ_3I(*args): 
      return mosek_fusion_Set._indexToKey__3IJ_3I(*args)
    elif mosek_fusion_Set._match_alt_indexToKey__3IJ_3I(*args): 
      return mosek_fusion_Set._indexToKey_alt__3IJ_3I(*args)
    else:
      raise ValueError('Invalid argument list indexToKey('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.indexToKey(array(int32,ndim=1),int64,array(int32,ndim=1))')
  @staticmethod
  def indexToString(*args):
    if False: pass
    elif mosek_fusion_Set._match_indexToString__3IJ(*args): 
      return mosek_fusion_Set._indexToString__3IJ(*args)
    elif mosek_fusion_Set._match_alt_indexToString__3IJ(*args): 
      return mosek_fusion_Set._indexToString_alt__3IJ(*args)
    else:
      raise ValueError('Invalid argument list indexToString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.indexToString(array(int32,ndim=1),int64)')
  @staticmethod
  def make(*args):
    if False: pass
    elif mosek_fusion_Set._match_make__3S(*args): 
      return mosek_fusion_Set._make__3S(*args)
    elif mosek_fusion_Set._match_alt_make__3S(*args): 
      return mosek_fusion_Set._make_alt__3S(*args)
    elif mosek_fusion_Set._match_make_I(*args): 
      return mosek_fusion_Set._make_I(*args)
    elif mosek_fusion_Set._match_alt_make_I(*args): 
      return mosek_fusion_Set._make_alt_I(*args)
    elif mosek_fusion_Set._match_make__3I(*args): 
      return mosek_fusion_Set._make__3I(*args)
    elif mosek_fusion_Set._match_alt_make__3I(*args): 
      return mosek_fusion_Set._make_alt__3I(*args)
    elif mosek_fusion_Set._match_make__3I_3I(*args): 
      return mosek_fusion_Set._make__3I_3I(*args)
    elif mosek_fusion_Set._match_alt_make__3I_3I(*args): 
      return mosek_fusion_Set._make_alt__3I_3I(*args)
    elif mosek_fusion_Set._match_make_II(*args): 
      return mosek_fusion_Set._make_II(*args)
    elif mosek_fusion_Set._match_alt_make_II(*args): 
      return mosek_fusion_Set._make_alt_II(*args)
    elif mosek_fusion_Set._match_make_III(*args): 
      return mosek_fusion_Set._make_III(*args)
    elif mosek_fusion_Set._match_alt_make_III(*args): 
      return mosek_fusion_Set._make_alt_III(*args)
    else:
      raise ValueError('Invalid argument list make('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.make(array(string,ndim=1))\n\tmosek.fusion.Set.make(int32)\n\tmosek.fusion.Set.make(array(int32,ndim=1))\n\tmosek.fusion.Set.make(array(int32,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Set.make(int32,int32)\n\tmosek.fusion.Set.make(int32,int32,int32)')
  @staticmethod
  def linearidx(*args):
    if False: pass
    elif mosek_fusion_Set._match_linearidx__3I_3I(*args): 
      return mosek_fusion_Set._linearidx__3I_3I(*args)
    elif mosek_fusion_Set._match_alt_linearidx__3I_3I(*args): 
      return mosek_fusion_Set._linearidx_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list linearidx('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.linearidx(array(int32,ndim=1),array(int32,ndim=1))')
  @staticmethod
  def size(*args):
    if False: pass
    elif mosek_fusion_Set._match_size__3I(*args): 
      return mosek_fusion_Set._size__3I(*args)
    elif mosek_fusion_Set._match_alt_size__3I(*args): 
      return mosek_fusion_Set._size_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list size('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.size(array(int32,ndim=1))')
  @staticmethod
  def strides(*args):
    if False: pass
    elif mosek_fusion_Set._match_strides__3I(*args): 
      return mosek_fusion_Set._strides__3I(*args)
    elif mosek_fusion_Set._match_alt_strides__3I(*args): 
      return mosek_fusion_Set._strides_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list strides('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.strides(array(int32,ndim=1))')
  @staticmethod
  def keyToString(*args):
    if False: pass
    elif mosek_fusion_Set._match_keyToString__3I(*args): 
      return mosek_fusion_Set._keyToString__3I(*args)
    elif mosek_fusion_Set._match_alt_keyToString__3I(*args): 
      return mosek_fusion_Set._keyToString_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list keyToString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.keyToString(array(int32,ndim=1))')
  @staticmethod
  def idxtokey(*args):
    if False: pass
    elif mosek_fusion_Set._match_idxtokey__3IJ(*args): 
      return mosek_fusion_Set._idxtokey__3IJ(*args)
    elif mosek_fusion_Set._match_alt_idxtokey__3IJ(*args): 
      return mosek_fusion_Set._idxtokey_alt__3IJ(*args)
    elif mosek_fusion_Set._match_idxtokey__3IJ_3I(*args): 
      return mosek_fusion_Set._idxtokey__3IJ_3I(*args)
    elif mosek_fusion_Set._match_alt_idxtokey__3IJ_3I(*args): 
      return mosek_fusion_Set._idxtokey_alt__3IJ_3I(*args)
    else:
      raise ValueError('Invalid argument list idxtokey('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.idxtokey(array(int32,ndim=1),int64)\n\tmosek.fusion.Set.idxtokey(array(int32,ndim=1),int64,array(int32,ndim=1))')
  @staticmethod
  def match(*args):
    if False: pass
    elif mosek_fusion_Set._match_match__3I_3I(*args): 
      return mosek_fusion_Set._match__3I_3I(*args)
    elif mosek_fusion_Set._match_alt_match__3I_3I(*args): 
      return mosek_fusion_Set._match_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list match('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Set.match(array(int32,ndim=1),array(int32,ndim=1))')
  def __repr__(self): return 'mosek.fusion.Set'
  @staticmethod
  def _match_size__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_size__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _size_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._size__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _size__3I(_0):
   _1=1
   for _2 in range(0,int((_0).shape[0])):
    _1 *= _0[_2]
   return numpy.int64(_1)
  @staticmethod
  def _match_match__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_match__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _match_alt__3I_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._match__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _match__3I_3I(_0,_1):
   if (int((_0).shape[0])!=int((_1).shape[0])):
    return (False)
   for _2 in range(0,int((_0).shape[0])):
    if (_0[_2]!=_1[_2]):
     return (False)
   return (True)
  @staticmethod
  def _match_linearidx__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_linearidx__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _linearidx_alt__3I_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._linearidx__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _linearidx__3I_3I(_0,_1):
   _2=_1[0]
   for _3 in range(1,int((_1).shape[0])):
    _2 = ((_2 * _0[_3]) + _1[_3])
   return numpy.int64(_2)
  @staticmethod
  def _match_idxtokey__3IJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_J__(_1))
  @staticmethod
  def _match_alt_idxtokey__3IJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_J__(_1))
  @staticmethod
  def _idxtokey_alt__3IJ(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int64(_t__1)
   _1_res = mosek_fusion_Set._idxtokey__3IJ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _idxtokey__3IJ(_0,_1):
   _2=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
   mosek.fusion.Set._idxtokey__3IJ_3I(_0,_1,_2)
   return (_2)
  @staticmethod
  def _match_idxtokey__3IJ_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match_J__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_idxtokey__3IJ_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_J__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _idxtokey_alt__3IJ_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int64(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._idxtokey__3IJ_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _idxtokey__3IJ_3I(_0,_1,_2):
   _3=int((_0).shape[0])
   if (_3 > 0):
    _4=_1
    for _5 in range(0,(_3 - 1)):
     _2[((_3 - _5) - 1)] = numpy.int32((_4 % _0[((_3 - _5) - 1)]))
     _4 /= _0[((_3 - _5) - 1)]
    _2[0] = numpy.int32(_4)
  @staticmethod
  def _match_indexToString__3IJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_J__(_1))
  @staticmethod
  def _match_alt_indexToString__3IJ(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_J__(_1))
  @staticmethod
  def _indexToString_alt__3IJ(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int64(_t__1)
   _1_res = mosek_fusion_Set._indexToString__3IJ(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _indexToString__3IJ(_0,_1):
   _2=int((_0).shape[0])
   _3=mosek.fusion.Utils.StringBuffer()
   if (_2==0):
    return ("0")
   elif (_2==1): # bld/docker-win/final/default/src/fusion/Set.mbi:130:16-23
    return (_3._a_J(_1)._toString_())
   else:
    _4=_1
    _5=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    for _6 in range(1,_2):
     _5[(_2 - _6)] = numpy.int32((_4 % _0[(_2 - _6)]))
     _4 /= _0[(_2 - _6)]
    _5[0] = numpy.int32(_4)
    _3._a_I(_5[0])
    for _7 in range(1,_2):
     _3._a_S(",")._a_I(_5[_7])
    return (_3._toString_())
  @staticmethod
  def _match_keyToString__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_keyToString__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _keyToString_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._keyToString__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _keyToString__3I(_0):
   _1=mosek.fusion.Utils.StringBuffer()
   _1._a_I(_0[0])
   for _2 in range(1,int((_0).shape[0])):
    _1._a_S(",")._a_I(_0[_2])
   return (_1._toString_())
  @staticmethod
  def _match_indexToKey__3IJ_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match_J__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_indexToKey__3IJ_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_J__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _indexToKey_alt__3IJ_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int64(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._indexToKey__3IJ_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _indexToKey__3IJ_3I(_0,_1,_2):
   _3=int((_0).shape[0])
   if (_3==1):
    _2[0] = numpy.int32(_1)
   else:
    _4=_1
    for _5 in range(1,_3):
     _2[(_3 - _5)] = numpy.int32((_4 % _0[(_3 - _5)]))
     _4 /= _0[(_3 - _5)]
    _2[0] = numpy.int32(_4)
  @staticmethod
  def _match_strides__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_strides__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _strides_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._strides__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _strides__3I(_0):
   _1=int((_0).shape[0])
   _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int64))
   _2[(_1 - 1)] = 1
   for _3 in range(1,_1):
    _2[((_1 - _3) - 1)] = (_2[(_1 - _3)] * _0[(_1 - _3)])
   return (_2)
  @staticmethod
  def _match_make__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_make__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _make_alt__3I_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._make__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _make__3I_3I(_0,_1):
   _2=numpy.zeros(((int((_0).shape[0]) + int((_1).shape[0])),), dtype=numpy.dtype(numpy.int32))
   for _3 in range(0,int((_0).shape[0])):
    _2[_3] = _0[_3]
   for _4 in range(0,int((_1).shape[0])):
    _2[(int((_0).shape[0]) + _4)] = _1[_4]
   return (_2)
  @staticmethod
  def _match_make__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_make__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _make_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Set._make__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _make__3I(_0):
   return (numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_make_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_make_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _make_alt_III(_t__0,_t__1,_t__2):
    return mosek_fusion_Set._make_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _make_III(_0,_1,_2):
   return (numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_make_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_make_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _make_alt_II(_t__0,_t__1):
    return mosek_fusion_Set._make_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _make_II(_0,_1):
   return (numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_make_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_make_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _make_alt_I(_t__0):
    return mosek_fusion_Set._make_I(numpy.int32(__0))
  @staticmethod
  def _make_I(_0):
   return (numpy.array([_0], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_scalar_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_scalar_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _scalar_alt_():
    return mosek_fusion_Set._scalar_()
  @staticmethod
  def _scalar_():
   return (numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_make__3S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3S__(_0))
  @staticmethod
  def _match_alt_make__3S(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3S__(_0))
  @staticmethod
  def _make_alt__3S(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Set._make__3S(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _make__3S(_0):
   return (numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32)))
 return Set
mosek_fusion_Set=__mk_mosek_fusion_Set()
del __mk_mosek_fusion_Set
def __mk_mosek_fusion_ConeDomain():
 class ConeDomain(object):
  __slots__ = ['_indexnames','_domsize','_domofs','_alpha','_shape','_int_flag','_axisset','_axisidx','_key']
  def axisIsSet(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_axisIsSet_(*args): 
      return self._axisIsSet_(*args)
    elif mosek_fusion_ConeDomain._match_alt_axisIsSet_(*args): 
      return self._axisIsSet_alt_(*args)
    else:
      raise ValueError('Invalid argument list axisIsSet('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.axisIsSet()')
  def withNamesOnAxis(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis__3SI(*args)
    elif mosek_fusion_ConeDomain._match_alt_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis_alt__3SI(*args)
    else:
      raise ValueError('Invalid argument list withNamesOnAxis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.withNamesOnAxis(array(string,ndim=1),int32)')
  def getAxis(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_getAxis_(*args): 
      return self._getAxis_(*args)
    elif mosek_fusion_ConeDomain._match_alt_getAxis_(*args): 
      return self._getAxis_alt_(*args)
    else:
      raise ValueError('Invalid argument list getAxis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.getAxis()')
  def integral(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_integral_(*args): 
      return self._integral_(*args)
    elif mosek_fusion_ConeDomain._match_alt_integral_(*args): 
      return self._integral_alt_(*args)
    else:
      raise ValueError('Invalid argument list integral('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.integral()')
  def axis(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_axis_I(*args): 
      return self._axis_I(*args)
    elif mosek_fusion_ConeDomain._match_alt_axis_I(*args): 
      return self._axis_alt_I(*args)
    else:
      raise ValueError('Invalid argument list axis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.axis(int32)')
  def withShape(self,*args):
    if False: pass
    elif mosek_fusion_ConeDomain._match_withShape__3I(*args): 
      return self._withShape__3I(*args)
    elif mosek_fusion_ConeDomain._match_alt_withShape__3I(*args): 
      return self._withShape_alt__3I(*args)
    elif mosek_fusion_ConeDomain._match_withShape_I(*args): 
      return self._withShape_I(*args)
    elif mosek_fusion_ConeDomain._match_alt_withShape_I(*args): 
      return self._withShape_alt_I(*args)
    elif mosek_fusion_ConeDomain._match_withShape_II(*args): 
      return self._withShape_II(*args)
    elif mosek_fusion_ConeDomain._match_alt_withShape_II(*args): 
      return self._withShape_alt_II(*args)
    elif mosek_fusion_ConeDomain._match_withShape_III(*args): 
      return self._withShape_III(*args)
    elif mosek_fusion_ConeDomain._match_alt_withShape_III(*args): 
      return self._withShape_alt_III(*args)
    else:
      raise ValueError('Invalid argument list withShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ConeDomain.withShape(array(int32,ndim=1))\n\tmosek.fusion.ConeDomain.withShape(int32)\n\tmosek.fusion.ConeDomain.withShape(int32,int32)\n\tmosek.fusion.ConeDomain.withShape(int32,int32,int32)')
  def __repr__(self): return 'mosek.fusion.ConeDomain'
  @staticmethod
  def _ctor_Emosek_4fusion_4QConeKey_2_3D_3I(k,alpha,d):
    o = ConeDomain.__new__(ConeDomain)
    o._ctor_init_Emosek_4fusion_4QConeKey_2_3D_3I(k,alpha,d)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4QConeKey_2_3D_3I(*args):
    if len(args) != 3: return False
    k,alpha,d, = args
    return (__arg_match_Emosek_4fusion_4QConeKey_2__(k) and __arg_match__3D__(alpha) and __arg_match__3I__(d))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4QConeKey_2_3D_3I(*args):
    if len(args) != 3: return False
    k,alpha,d, = args
    return (__arg_alt_match_Emosek_4fusion_4QConeKey_2__(k) and __arg_alt_match__3D__(alpha) and __arg_alt_match__3I__(d))
  def _ctor_alt_init_Emosek_4fusion_4QConeKey_2_3D_3I(self,k,alpha,d):
    self._ctor_init_Emosek_4fusion_4QConeKey_2_3D_3I(k,numpy.array(alpha,dtype=numpy.dtype(numpy.float64)),numpy.array(d,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Emosek_4fusion_4QConeKey_2_3D_3I(self,k,alpha,d):
   self._shape = (mosek.fusion.Utils.Tools._arraycopy__3I(d) if ((d is not None) ) else None)
   self._domsize = 0
   (self._alpha) = alpha
   self._key = k
   self._axisidx = 0
   self._axisset = False
   self._int_flag = False
   self._domofs = None
   self._indexnames = None
  @staticmethod
  def _ctor_Emosek_4fusion_4QConeKey_2_3I(k,d):
    o = ConeDomain.__new__(ConeDomain)
    o._ctor_init_Emosek_4fusion_4QConeKey_2_3I(k,d)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4QConeKey_2_3I(*args):
    if len(args) != 2: return False
    k,d, = args
    return (__arg_match_Emosek_4fusion_4QConeKey_2__(k) and __arg_match__3I__(d))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4QConeKey_2_3I(*args):
    if len(args) != 2: return False
    k,d, = args
    return (__arg_alt_match_Emosek_4fusion_4QConeKey_2__(k) and __arg_alt_match__3I__(d))
  def _ctor_alt_init_Emosek_4fusion_4QConeKey_2_3I(self,k,d):
    self._ctor_init_Emosek_4fusion_4QConeKey_2_3I(k,numpy.array(d,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Emosek_4fusion_4QConeKey_2_3I(self,k,d):
   mosek_fusion_ConeDomain._ctor_init_Emosek_4fusion_4QConeKey_2_3D_3I(self,k,None,d)
  @staticmethod
  def _ctor_Lmosek_4fusion_4ConeDomain_2(other):
    o = ConeDomain.__new__(ConeDomain)
    o._ctor_init_Lmosek_4fusion_4ConeDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4ConeDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4ConeDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4ConeDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4ConeDomain_2(self,other):
   self._key = (other._key)
   self._axisidx = (other._axisidx)
   self._axisset = (other._axisset)
   self._int_flag = (other._int_flag)
   self._shape = (other._shape)
   self._alpha = (other._alpha)
   self._domofs = (other._domofs)
   self._domsize = (other._domsize)
   self._indexnames = (other._indexnames)
  def _match_1shape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._match_1shape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _match_1shape__3I(self,_0):
   return (((self._shape is None) or mosek.fusion.Set._match__3I_3I(_0,self._shape)))
  @staticmethod
  def _match_integral_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_integral_(*args):
    if len(args) != 0: return False
    return True
  def _integral_alt_(self,):
    return self._integral_()
  def _integral_(self,):
   self._int_flag = True
   return (self)
  @staticmethod
  def _match_axisIsSet_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_axisIsSet_(*args):
    if len(args) != 0: return False
    return True
  def _axisIsSet_alt_(self,):
    return self._axisIsSet_()
  def _axisIsSet_(self,):
   return (self._axisset)
  @staticmethod
  def _match_getAxis_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getAxis_(*args):
    if len(args) != 0: return False
    return True
  def _getAxis_alt_(self,):
    return self._getAxis_()
  def _getAxis_(self,):
   return numpy.int32(self._axisidx)
  @staticmethod
  def _match_axis_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_axis_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _axis_alt_I(self,_t__0):
    return self._axis_I(numpy.int32(__0))
  def _axis_I(self,_0):
   self._axisidx = _0
   self._axisset = True
   return (self)
  @staticmethod
  def _match_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _withShape_alt_III(self,_t__0,_t__1,_t__2):
    return self._withShape_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _withShape_III(self,_0,_1,_2):
   return (self.__withShape_1__3I(numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _withShape_alt_II(self,_t__0,_t__1):
    return self._withShape_II(numpy.int32(__0),numpy.int32(__1))
  def _withShape_II(self,_0,_1):
   return (self.__withShape_1__3I(numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _withShape_alt_I(self,_t__0):
    return self._withShape_I(numpy.int32(__0))
  def _withShape_I(self,_0):
   return (self.__withShape_1__3I(numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _withShape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._withShape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withShape__3I(self,_0):
   return (self.__withShape_1__3I(mosek.fusion.Utils.Tools._arraycopy__3I(_0)))
  def __withShape_1_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__withShape_1__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __withShape_1__3I(self,_0):
   self._shape = _0
   return (self)
  @staticmethod
  def _match_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3S__(_0) and __arg_alt_match_I__(_1))
  def _withNamesOnAxis_alt__3SI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = self._withNamesOnAxis__3SI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withNamesOnAxis__3SI(self,_0,_1):
   if (_0 is None):
    self._indexnames = numpy.zeros(((_1 + 1),), dtype=numpy.dtype(object))
    self._indexnames[_1] = numpy.array([_0[_2] for _2 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   if (int((self._indexnames).shape[0]) < (_1 + 1)):
    _3=numpy.ndarray((_1,), dtype=numpy.dtype(object))
    for _4 in range(0,int((self._indexnames).shape[0])):
     _3[_4] = self._indexnames[_4]
    self._indexnames = _3
   self._indexnames[_1] = numpy.array([_0[_5] for _5 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   return (self)
  def __finalize_1and_1validate_1inplace_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__finalize_1and_1validate_1inplace__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __finalize_1and_1validate_1inplace__3I(self,_0):
   self._domsize = 1
   if (self._shape is None):
    if (_0 is not None):
     self._shape = _0
    else:
     raise mosek_fusion_DimensionError._ctor_S("Missing domain shape")
   elif (_0 is not None): # bld/docker-win/final/default/src/fusion/domain.mbi:1694:16-27
    if (int((_0).shape[0])!=int((self._shape).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
    for _1 in range(0,int((_0).shape[0])):
     if (_0[_1]!=self._shape[_1]):
      raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
   for _2 in range(0,int((self._shape).shape[0])):
    self._domsize *= self._shape[_2]
   if (self._indexnames is not None):
    if (int((self._indexnames).shape[0])!=int((self._shape).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
    for _3 in range(0,int((self._shape).shape[0])):
     if ((self._indexnames[_3] is not None) and (int((self._indexnames[_3]).shape[0])!=self._shape[_3])):
      raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
   if (not self._axisset):
    self._axisset = True
    self._axisidx = (int((self._shape).shape[0]) - 1)
   elif ((self._axisidx < 0) or (self._axisidx >= int((self._shape).shape[0]))): # bld/docker-win/final/default/src/fusion/domain.mbi:1715:16-52
    raise mosek_fusion_DimensionError._ctor_S("Cone axis is invalid")
   if ((self._domofs is not None) and (int((self._domofs).shape[0])!=self._domsize)):
    raise mosek_fusion_DimensionError._ctor_S("Domain offset does not match shape")
  def _finalize_1and_1validate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._finalize_1and_1validate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _finalize_1and_1validate__3I(self,_0):
   _1=mosek_fusion_ConeDomain._ctor_Lmosek_4fusion_4ConeDomain_2(self)
   _1.__finalize_1and_1validate_1inplace__3I(_0)
   return (_1)
 return ConeDomain
mosek_fusion_ConeDomain=__mk_mosek_fusion_ConeDomain()
del __mk_mosek_fusion_ConeDomain
def __mk_mosek_fusion_PSDDomain():
 class PSDDomain(object):
  __slots__ = ['_indexnames','_axisIsSet','_conedim2','_conedim1','_key','_shape']
  def axis(self,*args):
    if False: pass
    elif mosek_fusion_PSDDomain._match_axis_II(*args): 
      return self._axis_II(*args)
    elif mosek_fusion_PSDDomain._match_alt_axis_II(*args): 
      return self._axis_alt_II(*args)
    else:
      raise ValueError('Invalid argument list axis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.PSDDomain.axis(int32,int32)')
  def withNamesOnAxis(self,*args):
    if False: pass
    elif mosek_fusion_PSDDomain._match_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis__3SI(*args)
    elif mosek_fusion_PSDDomain._match_alt_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis_alt__3SI(*args)
    else:
      raise ValueError('Invalid argument list withNamesOnAxis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.PSDDomain.withNamesOnAxis(array(string,ndim=1),int32)')
  def __repr__(self): return 'mosek.fusion.PSDDomain'
  @staticmethod
  def _ctor_Emosek_4fusion_4PSDKey_2_3III(k,shp,conedim1,conedim2):
    o = PSDDomain.__new__(PSDDomain)
    o._ctor_init_Emosek_4fusion_4PSDKey_2_3III(k,shp,conedim1,conedim2)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4PSDKey_2_3III(*args):
    if len(args) != 4: return False
    k,shp,conedim1,conedim2, = args
    return (__arg_match_Emosek_4fusion_4PSDKey_2__(k) and __arg_match__3I__(shp) and __arg_match_I__(conedim1) and __arg_match_I__(conedim2))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4PSDKey_2_3III(*args):
    if len(args) != 4: return False
    k,shp,conedim1,conedim2, = args
    return (__arg_alt_match_Emosek_4fusion_4PSDKey_2__(k) and __arg_alt_match__3I__(shp) and __arg_alt_match_I__(conedim1) and __arg_alt_match_I__(conedim2))
  def _ctor_alt_init_Emosek_4fusion_4PSDKey_2_3III(self,k,shp,conedim1,conedim2):
    self._ctor_init_Emosek_4fusion_4PSDKey_2_3III(k,numpy.array(shp,dtype=numpy.dtype(numpy.int32)),numpy.int32(conedim1),numpy.int32(conedim2))
  def _ctor_init_Emosek_4fusion_4PSDKey_2_3III(self,k,shp,conedim1,conedim2):
   self._axisIsSet = True
   self._shape = shp
   self._key = k
   (self._conedim1) = conedim1
   (self._conedim2) = conedim2
   self._indexnames = None
   _0=int((self._shape).shape[0])
   if ((not ((int((self._shape).shape[0]) > conedim1) and ((int((self._shape).shape[0]) > conedim2) and ((conedim1 >= 0) and ((conedim2 >= 0) and (conedim1!=conedim2)))))) and (self._shape[conedim1]==self._shape[conedim2])):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching shape or cone dimensions")
  @staticmethod
  def _ctor_Emosek_4fusion_4PSDKey_2_3I(k,shp):
    o = PSDDomain.__new__(PSDDomain)
    o._ctor_init_Emosek_4fusion_4PSDKey_2_3I(k,shp)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4PSDKey_2_3I(*args):
    if len(args) != 2: return False
    k,shp, = args
    return (__arg_match_Emosek_4fusion_4PSDKey_2__(k) and __arg_match__3I__(shp))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4PSDKey_2_3I(*args):
    if len(args) != 2: return False
    k,shp, = args
    return (__arg_alt_match_Emosek_4fusion_4PSDKey_2__(k) and __arg_alt_match__3I__(shp))
  def _ctor_alt_init_Emosek_4fusion_4PSDKey_2_3I(self,k,shp):
    self._ctor_init_Emosek_4fusion_4PSDKey_2_3I(k,numpy.array(shp,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Emosek_4fusion_4PSDKey_2_3I(self,k,shp):
   mosek_fusion_PSDDomain._ctor_init_Emosek_4fusion_4PSDKey_2_3III(self,k,shp,(int((shp).shape[0]) - 2),(int((shp).shape[0]) - 1))
  @staticmethod
  def _ctor_Emosek_4fusion_4PSDKey_2(k):
    o = PSDDomain.__new__(PSDDomain)
    o._ctor_init_Emosek_4fusion_4PSDKey_2(k)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4PSDKey_2(*args):
    if len(args) != 1: return False
    k, = args
    return (__arg_match_Emosek_4fusion_4PSDKey_2__(k))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4PSDKey_2(*args):
    if len(args) != 1: return False
    k, = args
    return (__arg_alt_match_Emosek_4fusion_4PSDKey_2__(k))
  def _ctor_alt_init_Emosek_4fusion_4PSDKey_2(self,k):
    self._ctor_init_Emosek_4fusion_4PSDKey_2(k)
  def _ctor_init_Emosek_4fusion_4PSDKey_2(self,k):
   self._shape = None
   self._key = k
   self._conedim1 = 0
   self._conedim2 = 0
   self._axisIsSet = False
   self._indexnames = None
  @staticmethod
  def _ctor_Lmosek_4fusion_4PSDDomain_2(other):
    o = PSDDomain.__new__(PSDDomain)
    o._ctor_init_Lmosek_4fusion_4PSDDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4PSDDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4PSDDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4PSDDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4PSDDomain_2(self,other):
   self._shape = (other._shape)
   self._key = (other._key)
   self._conedim1 = (other._conedim1)
   self._conedim2 = (other._conedim2)
   self._axisIsSet = (other._axisIsSet)
   self._indexnames = (other._indexnames)
  @staticmethod
  def _match_axis_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_axis_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _axis_alt_II(self,_t__0,_t__1):
    return self._axis_II(numpy.int32(__0),numpy.int32(__1))
  def _axis_II(self,_0,_1):
   (self._conedim1) = _0
   (self._conedim2) = _1
   self._axisIsSet = True
   if ((self._shape is None) and (not ((_0 >= 0) and ((_1 >= 0) and (_0!=_1))))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching shape or cone dimensions")
   elif ((self._shape is not None) and ((not ((int((self._shape).shape[0]) > _0) and ((int((self._shape).shape[0]) > _1) and ((_0 >= 0) and ((_1 >= 0) and (_0!=_1)))))) and (self._shape[_0]==self._shape[_1]))): # bld/docker-win/final/default/src/fusion/domain.mbi:1579:17-1585:51
    raise mosek_fusion_DimensionError._ctor_S("Mismatching shape or cone dimensions")
   return (self)
  @staticmethod
  def _match_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3S__(_0) and __arg_alt_match_I__(_1))
  def _withNamesOnAxis_alt__3SI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = self._withNamesOnAxis__3SI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withNamesOnAxis__3SI(self,_0,_1):
   if (self._indexnames is None):
    self._indexnames = _monty.initJaggedArray([None for _2 in range(0,(_1 + 1))], 1)
    self._indexnames[_1] = numpy.array([_0[_3] for _3 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   if (int((self._indexnames).shape[0]) < (_1 + 1)):
    _4=_monty.initJaggedArray([None for _5 in range(0,(_1 + 1))], 1)
    for _6 in range(0,int((self._indexnames).shape[0])):
     _4[_6] = self._indexnames[_6]
    self._indexnames = _4
   self._indexnames[_1] = numpy.array([_0[_7] for _7 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   return (self)
  def __finalize_1and_1validate_1inplace_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__finalize_1and_1validate_1inplace__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __finalize_1and_1validate_1inplace__3I(self,_0):
   if (_0 is not None):
    if (self._shape is None):
     self._shape = _0
    else:
     if (int((_0).shape[0])!=int((self._shape).shape[0])):
      raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
     for _1 in range(0,int((_0).shape[0])):
      if (_0[_1]!=self._shape[_1]):
       raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
   if (int((self._shape).shape[0]) < 2):
    raise mosek_fusion_DimensionError._ctor_S("Positive semidefinite domain must have at least two dimensions")
   if (not self._axisIsSet):
    self._conedim1 = (int((self._shape).shape[0]) - 2)
    self._conedim2 = (int((self._shape).shape[0]) - 1)
   if ((self._conedim1 < 0) or ((self._conedim1 >= int((self._shape).shape[0])) or ((self._conedim2 < 0) or ((self._conedim2 >= int((self._shape).shape[0])) or (self._conedim1==self._conedim2))))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid cone dimension specification")
   if (self._shape[self._conedim1]!=self._shape[self._conedim2]):
    raise mosek_fusion_DimensionError._ctor_S("Cone dimensions must have same size")
   if (self._indexnames is not None):
    if (int((self._indexnames).shape[0])!=int((self._shape).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Index names do not match the domain shape")
    else:
     for _2 in range(0,int((self._shape).shape[0])):
      if ((self._indexnames[_2] is not None) and (int((self._indexnames[_2]).shape[0])!=self._shape[_2])):
       raise mosek_fusion_DimensionError._ctor_S("Index names do not match the domain shape")
  def _finalize_1and_1validate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._finalize_1and_1validate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _finalize_1and_1validate__3I(self,_0):
   _1=mosek_fusion_PSDDomain._ctor_Lmosek_4fusion_4PSDDomain_2(self)
   _1.__finalize_1and_1validate_1inplace__3I(_0)
   return (_1)
 return PSDDomain
mosek_fusion_PSDDomain=__mk_mosek_fusion_PSDDomain()
del __mk_mosek_fusion_PSDDomain
def __mk_mosek_fusion_RangeDomain():
 class RangeDomain(object):
  __slots__ = ['_domsize','_nelements','_indexnames','_cardinal_flag','_scalable','_ub','_lb','_sparsity','_empty','_shape']
  def symmetric(self,*args):
    if False: pass
    elif mosek_fusion_RangeDomain._match_symmetric_(*args): 
      return self._symmetric_(*args)
    elif mosek_fusion_RangeDomain._match_alt_symmetric_(*args): 
      return self._symmetric_alt_(*args)
    else:
      raise ValueError('Invalid argument list symmetric('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangeDomain.symmetric()')
  def withNamesOnAxis(self,*args):
    if False: pass
    elif mosek_fusion_RangeDomain._match_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis__3SI(*args)
    elif mosek_fusion_RangeDomain._match_alt_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis_alt__3SI(*args)
    else:
      raise ValueError('Invalid argument list withNamesOnAxis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangeDomain.withNamesOnAxis(array(string,ndim=1),int32)')
  def integral(self,*args):
    if False: pass
    elif mosek_fusion_RangeDomain._match_integral_(*args): 
      return self._integral_(*args)
    elif mosek_fusion_RangeDomain._match_alt_integral_(*args): 
      return self._integral_alt_(*args)
    else:
      raise ValueError('Invalid argument list integral('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangeDomain.integral()')
  def sparse(self,*args):
    if False: pass
    elif mosek_fusion_RangeDomain._match_sparse_(*args): 
      return self._sparse_(*args)
    elif mosek_fusion_RangeDomain._match_alt_sparse_(*args): 
      return self._sparse_alt_(*args)
    elif mosek_fusion_RangeDomain._match_sparse__3I(*args): 
      return self._sparse__3I(*args)
    elif mosek_fusion_RangeDomain._match_alt_sparse__3I(*args): 
      return self._sparse_alt__3I(*args)
    elif mosek_fusion_RangeDomain._match_sparse__3_5I(*args): 
      return self._sparse__3_5I(*args)
    elif mosek_fusion_RangeDomain._match_alt_sparse__3_5I(*args): 
      return self._sparse_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list sparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangeDomain.sparse()\n\tmosek.fusion.RangeDomain.sparse(array(int32,ndim=1))\n\tmosek.fusion.RangeDomain.sparse(array(int32,ndim=2))')
  def withShape(self,*args):
    if False: pass
    elif mosek_fusion_RangeDomain._match_withShape__3I(*args): 
      return self._withShape__3I(*args)
    elif mosek_fusion_RangeDomain._match_alt_withShape__3I(*args): 
      return self._withShape_alt__3I(*args)
    elif mosek_fusion_RangeDomain._match_withShape_I(*args): 
      return self._withShape_I(*args)
    elif mosek_fusion_RangeDomain._match_alt_withShape_I(*args): 
      return self._withShape_alt_I(*args)
    elif mosek_fusion_RangeDomain._match_withShape_II(*args): 
      return self._withShape_II(*args)
    elif mosek_fusion_RangeDomain._match_alt_withShape_II(*args): 
      return self._withShape_alt_II(*args)
    elif mosek_fusion_RangeDomain._match_withShape_III(*args): 
      return self._withShape_III(*args)
    elif mosek_fusion_RangeDomain._match_alt_withShape_III(*args): 
      return self._withShape_alt_III(*args)
    else:
      raise ValueError('Invalid argument list withShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.RangeDomain.withShape(array(int32,ndim=1))\n\tmosek.fusion.RangeDomain.withShape(int32)\n\tmosek.fusion.RangeDomain.withShape(int32,int32)\n\tmosek.fusion.RangeDomain.withShape(int32,int32,int32)')
  def __repr__(self): return 'mosek.fusion.RangeDomain'
  @staticmethod
  def _ctor_Z_3D_3D_3I(scalable,lb,ub,dims):
    o = RangeDomain.__new__(RangeDomain)
    o._ctor_init_Z_3D_3D_3I(scalable,lb,ub,dims)
    return o
  @staticmethod
  def __match_ctor_Z_3D_3D_3I(*args):
    if len(args) != 4: return False
    scalable,lb,ub,dims, = args
    return (__arg_match_Z__(scalable) and __arg_match__3D__(lb) and __arg_match__3D__(ub) and __arg_match__3I__(dims))
  @staticmethod
  def __match_alt_ctor_Z_3D_3D_3I(*args):
    if len(args) != 4: return False
    scalable,lb,ub,dims, = args
    return (__arg_alt_match_Z__(scalable) and __arg_alt_match__3D__(lb) and __arg_alt_match__3D__(ub) and __arg_alt_match__3I__(dims))
  def _ctor_alt_init_Z_3D_3D_3I(self,scalable,lb,ub,dims):
    self._ctor_init_Z_3D_3D_3I(scalable,numpy.array(lb,dtype=numpy.dtype(numpy.float64)),numpy.array(ub,dtype=numpy.dtype(numpy.float64)),numpy.array(dims,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Z_3D_3D_3I(self,scalable,lb,ub,dims):
   mosek_fusion_RangeDomain._ctor_init_Z_3D_3D_3I_3_5II(self,scalable,lb,ub,dims,None,1)
  @staticmethod
  def _ctor_ZDD_3I(scalable,lb,ub,dims):
    o = RangeDomain.__new__(RangeDomain)
    o._ctor_init_ZDD_3I(scalable,lb,ub,dims)
    return o
  @staticmethod
  def __match_ctor_ZDD_3I(*args):
    if len(args) != 4: return False
    scalable,lb,ub,dims, = args
    return (__arg_match_Z__(scalable) and __arg_match_D__(lb) and __arg_match_D__(ub) and __arg_match__3I__(dims))
  @staticmethod
  def __match_alt_ctor_ZDD_3I(*args):
    if len(args) != 4: return False
    scalable,lb,ub,dims, = args
    return (__arg_alt_match_Z__(scalable) and __arg_alt_match_D__(lb) and __arg_alt_match_D__(ub) and __arg_alt_match__3I__(dims))
  def _ctor_alt_init_ZDD_3I(self,scalable,lb,ub,dims):
    self._ctor_init_ZDD_3I(scalable,numpy.float64(lb),numpy.float64(ub),numpy.array(dims,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_ZDD_3I(self,scalable,lb,ub,dims):
   self._cardinal_flag = False
   self._shape = dims
   self._sparsity = None
   (self._scalable) = scalable
   _0=1
   for _1 in range(0,int((dims).shape[0])):
    _0 *= dims[_1]
   (self._ub) = numpy.array([ub for _2 in range(0,_0)], dtype=numpy.dtype(numpy.float64))
   (self._lb) = numpy.array([lb for _3 in range(0,_0)], dtype=numpy.dtype(numpy.float64))
   (self._empty) = False
   (self._indexnames) = None
   (self._domsize) = 0
   (self._nelements) = 0
  @staticmethod
  def _ctor_Z_3D_3D_3I_3_5I(scalable,lb,ub,dims,sp):
    o = RangeDomain.__new__(RangeDomain)
    o._ctor_init_Z_3D_3D_3I_3_5I(scalable,lb,ub,dims,sp)
    return o
  @staticmethod
  def __match_ctor_Z_3D_3D_3I_3_5I(*args):
    if len(args) != 5: return False
    scalable,lb,ub,dims,sp, = args
    return (__arg_match_Z__(scalable) and __arg_match__3D__(lb) and __arg_match__3D__(ub) and __arg_match__3I__(dims) and __arg_match__3_5I__(sp))
  @staticmethod
  def __match_alt_ctor_Z_3D_3D_3I_3_5I(*args):
    if len(args) != 5: return False
    scalable,lb,ub,dims,sp, = args
    return (__arg_alt_match_Z__(scalable) and __arg_alt_match__3D__(lb) and __arg_alt_match__3D__(ub) and __arg_alt_match__3I__(dims) and __arg_alt_match__3_5I__(sp))
  def _ctor_alt_init_Z_3D_3D_3I_3_5I(self,scalable,lb,ub,dims,sp):
    self._ctor_init_Z_3D_3D_3I_3_5I(scalable,numpy.array(lb,dtype=numpy.dtype(numpy.float64)),numpy.array(ub,dtype=numpy.dtype(numpy.float64)),numpy.array(dims,dtype=numpy.dtype(numpy.int32)),numpy.array(sp,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Z_3D_3D_3I_3_5I(self,scalable,lb,ub,dims,sp):
   mosek_fusion_RangeDomain._ctor_init_Z_3D_3D_3I_3_5II(self,scalable,lb,ub,dims,sp,1)
  @staticmethod
  def _ctor_Z_3D_3D_3I_3_5II(scalable,lb,ub,dims,sp,steal):
    o = RangeDomain.__new__(RangeDomain)
    o._ctor_init_Z_3D_3D_3I_3_5II(scalable,lb,ub,dims,sp,steal)
    return o
  @staticmethod
  def __match_ctor_Z_3D_3D_3I_3_5II(*args):
    if len(args) != 6: return False
    scalable,lb,ub,dims,sp,steal, = args
    return (__arg_match_Z__(scalable) and __arg_match__3D__(lb) and __arg_match__3D__(ub) and __arg_match__3I__(dims) and __arg_match__3_5I__(sp) and __arg_match_I__(steal))
  @staticmethod
  def __match_alt_ctor_Z_3D_3D_3I_3_5II(*args):
    if len(args) != 6: return False
    scalable,lb,ub,dims,sp,steal, = args
    return (__arg_alt_match_Z__(scalable) and __arg_alt_match__3D__(lb) and __arg_alt_match__3D__(ub) and __arg_alt_match__3I__(dims) and __arg_alt_match__3_5I__(sp) and __arg_alt_match_I__(steal))
  def _ctor_alt_init_Z_3D_3D_3I_3_5II(self,scalable,lb,ub,dims,sp,steal):
    self._ctor_init_Z_3D_3D_3I_3_5II(scalable,numpy.array(lb,dtype=numpy.dtype(numpy.float64)),numpy.array(ub,dtype=numpy.dtype(numpy.float64)),numpy.array(dims,dtype=numpy.dtype(numpy.int32)),numpy.array(sp,dtype=numpy.dtype(numpy.int32)),numpy.int32(steal))
  def _ctor_init_Z_3D_3D_3I_3_5II(self,scalable,lb,ub,dims,sp,steal):
   self._cardinal_flag = False
   self._shape = dims
   self._sparsity = None
   (self._scalable) = scalable
   (self._ub) = ub
   (self._lb) = lb
   (self._sparsity) = sp
   (self._empty) = False
   (self._indexnames) = None
   (self._domsize) = 0
   (self._nelements) = 0
  @staticmethod
  def _ctor_Lmosek_4fusion_4RangeDomain_2(other):
    o = RangeDomain.__new__(RangeDomain)
    o._ctor_init_Lmosek_4fusion_4RangeDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4RangeDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4RangeDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4RangeDomain_2(self,other):
   self._cardinal_flag = (other._cardinal_flag)
   self._sparsity = (other._sparsity)
   self._scalable = (other._scalable)
   self._shape = (other._shape)
   self._ub = (other._ub)
   self._lb = (other._lb)
   self._domsize = (other._domsize)
   self._nelements = (other._nelements)
   self._empty = (other._empty)
   self._indexnames = (_monty.initJaggedArray([(other._indexnames)[_0] for _0 in range(0,int(((other._indexnames)).shape[0]))], 1) if (((other._indexnames) is not None) ) else None)
  @staticmethod
  def _match_symmetric_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_symmetric_(*args):
    if len(args) != 0: return False
    return True
  def _symmetric_alt_(self,):
    return self._symmetric_()
  def _symmetric_(self,):
   return (mosek_fusion_SymmetricRangeDomain._ctor_Lmosek_4fusion_4RangeDomain_2(self))
  @staticmethod
  def _match_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _sparse_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3_5I(_0)
   return _1_res
  def _sparse__3_5I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),int((_0).shape[1]),), dtype=numpy.dtype(numpy.int32))
   _1=0
   while (_1 < int((_0).shape[0])):
    _2=0
    while (_2 < int((_0).shape[1])):
     (self._sparsity)[_1,_2] = _0[_1,_2]
     _2 += 1
    _1 += 1
   return (self)
  @staticmethod
  def _match_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _sparse_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _sparse__3I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),1,), dtype=numpy.dtype(numpy.int32))
   for _1 in range(0,int((_0).shape[0])):
    (self._sparsity)[_1,0] = _0[_1]
   return (self)
  @staticmethod
  def _match_sparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_sparse_(*args):
    if len(args) != 0: return False
    return True
  def _sparse_alt_(self,):
    return self._sparse_()
  def _sparse_(self,):
   (self._empty) = True
   (self._sparsity) = None
   return (self)
  @staticmethod
  def _match_integral_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_integral_(*args):
    if len(args) != 0: return False
    return True
  def _integral_alt_(self,):
    return self._integral_()
  def _integral_(self,):
   self._cardinal_flag = True
   return (self)
  @staticmethod
  def _match_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _withShape_alt_III(self,_t__0,_t__1,_t__2):
    return self._withShape_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _withShape_III(self,_0,_1,_2):
   self._shape = numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _withShape_alt_II(self,_t__0,_t__1):
    return self._withShape_II(numpy.int32(__0),numpy.int32(__1))
  def _withShape_II(self,_0,_1):
   self._shape = numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _withShape_alt_I(self,_t__0):
    return self._withShape_I(numpy.int32(__0))
  def _withShape_I(self,_0):
   self._shape = numpy.array([_0], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _withShape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._withShape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withShape__3I(self,_0):
   self._shape = _0
   return (self)
  @staticmethod
  def _match_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3S__(_0) and __arg_alt_match_I__(_1))
  def _withNamesOnAxis_alt__3SI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = self._withNamesOnAxis__3SI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withNamesOnAxis__3SI(self,_0,_1):
   if (self._indexnames is None):
    self._indexnames = _monty.initJaggedArray([None for _2 in range(0,(_1 + 1))], 1)
    self._indexnames[_1] = numpy.array([_0[_3] for _3 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   if (int((self._indexnames).shape[0]) < (_1 + 1)):
    _4=_monty.initJaggedArray([None for _5 in range(0,(_1 + 1))], 1)
    for _6 in range(0,int((self._indexnames).shape[0])):
     _4[_6] = self._indexnames[_6]
    self._indexnames = _4
   self._indexnames[_1] = numpy.array([_0[_7] for _7 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   return (self)
  def _match_1shape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._match_1shape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _match_1shape__3I(self,_0):
   if self._scalable:
    return (True)
   elif (int((self._shape).shape[0])!=int((_0).shape[0])): # bld/docker-win/final/default/src/fusion/domain.mbi:1304:17-39
    return (False)
   else:
    for _1 in range(0,int((self._shape).shape[0])):
     if (self._shape[_1]!=_0[_1]):
      return (False)
   return (True)
  def __finalize_1and_1validate_1inplace_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__finalize_1and_1validate_1inplace__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __finalize_1and_1validate_1inplace__3I(self,_0):
   self._domsize = 1
   if self._scalable:
    if (_0 is not None):
     self._shape = _0
    else:
     self._shape = numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))
    for _1 in range(0,int((self._shape).shape[0])):
     self._domsize *= self._shape[_1]
   else:
    if (_0 is not None):
     if (int((_0).shape[0])!=int((self._shape).shape[0])):
      raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
     for _2 in range(0,int((_0).shape[0])):
      if (_0[_2]!=self._shape[_2]):
       raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
    for _3 in range(0,int((self._shape).shape[0])):
     self._domsize *= self._shape[_3]
   if (self._indexnames is not None):
    if (int((self._indexnames).shape[0])!=int((self._shape).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
    for _4 in range(0,int((self._shape).shape[0])):
     if ((self._indexnames[_4] is not None) and (int((self._indexnames[_4]).shape[0])!=self._shape[_4])):
      raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
   if (self._sparsity is not None):
    self._nelements = int((self._sparsity).shape[0])
    if (int((self._shape).shape[0])!=int((self._sparsity).shape[1])):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching shape and sparsity pattern")
    for _5 in range(0,self._nelements):
     for _6 in range(0,int((self._sparsity).shape[1])):
      if ((self._sparsity[_5,_6] < 0) or (self._sparsity[_5,_6] >= self._shape[_6])):
       raise mosek_fusion_DimensionError._ctor_S("Sparsity pattern entry is out of bounds")
    if ((not self._scalable) and ((self._lb is not None) and (int((self._lb).shape[0])!=self._nelements))):
     raise mosek_fusion_DimensionError._ctor_S("Sparsity pattern does not match bound")
    if ((not self._scalable) and ((self._ub is not None) and (int((self._ub).shape[0])!=self._nelements))):
     raise mosek_fusion_DimensionError._ctor_S("Sparsity pattern does not match bound")
   else:
    self._nelements = self._domsize
    if ((self._lb is not None) and (not self._scalable)):
     if (int((self._lb).shape[0])!=self._nelements):
      raise mosek_fusion_DimensionError._ctor_S("Domain bound does not match shape")
    if ((self._ub is not None) and (not self._scalable)):
     if (int((self._ub).shape[0])!=self._nelements):
      raise mosek_fusion_DimensionError._ctor_S("Domain bound does not match shape")
  def _finalize_1and_1validate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._finalize_1and_1validate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _finalize_1and_1validate__3I(self,_0):
   _1=mosek_fusion_RangeDomain._ctor_Lmosek_4fusion_4RangeDomain_2(self)
   _1.__finalize_1and_1validate_1inplace__3I(_0)
   return (_1)
 return RangeDomain
mosek_fusion_RangeDomain=__mk_mosek_fusion_RangeDomain()
del __mk_mosek_fusion_RangeDomain
def __mk_mosek_fusion_SymmetricRangeDomain():
 class SymmetricRangeDomain(mosek_fusion_RangeDomain):
  __slots__ = ['_dim']
  def __repr__(self): return 'mosek.fusion.SymmetricRangeDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4RangeDomain_2(other):
    o = SymmetricRangeDomain.__new__(SymmetricRangeDomain)
    o._ctor_init_Lmosek_4fusion_4RangeDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4RangeDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4RangeDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4RangeDomain_2(self,other):
   mosek_fusion_RangeDomain._ctor_init_Lmosek_4fusion_4RangeDomain_2(self,other)
   if ((self._shape is not None) and ((int((self._shape).shape[0])!=2) or (self._shape[0]!=self._shape[1]))):
    raise mosek_fusion_DimensionError._ctor_S("Only square domains can be symmetric")
   self._dim = (0 if ((self._shape is None) ) else self._shape[0])
 return SymmetricRangeDomain
mosek_fusion_SymmetricRangeDomain=__mk_mosek_fusion_SymmetricRangeDomain()
del __mk_mosek_fusion_SymmetricRangeDomain
def __mk_mosek_fusion_SymmetricLinearDomain():
 class SymmetricLinearDomain(object):
  __slots__ = ['_sparsity','_cardinal_flag','_key','_shape','_dom','_dim']
  def sparse(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricLinearDomain._match_sparse__3I(*args): 
      return self._sparse__3I(*args)
    elif mosek_fusion_SymmetricLinearDomain._match_alt_sparse__3I(*args): 
      return self._sparse_alt__3I(*args)
    elif mosek_fusion_SymmetricLinearDomain._match_sparse__3_5I(*args): 
      return self._sparse__3_5I(*args)
    elif mosek_fusion_SymmetricLinearDomain._match_alt_sparse__3_5I(*args): 
      return self._sparse_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list sparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricLinearDomain.sparse(array(int32,ndim=1))\n\tmosek.fusion.SymmetricLinearDomain.sparse(array(int32,ndim=2))')
  def integral(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricLinearDomain._match_integral_(*args): 
      return self._integral_(*args)
    elif mosek_fusion_SymmetricLinearDomain._match_alt_integral_(*args): 
      return self._integral_alt_(*args)
    else:
      raise ValueError('Invalid argument list integral('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricLinearDomain.integral()')
  def __repr__(self): return 'mosek.fusion.SymmetricLinearDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearDomain_2(other):
    o = SymmetricLinearDomain.__new__(SymmetricLinearDomain)
    o._ctor_init_Lmosek_4fusion_4LinearDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4LinearDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4LinearDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4LinearDomain_2(self,other):
   self._dom = other
   self._shape = (other._shape)
   self._key = (other._key)
   self._cardinal_flag = (other._cardinal_flag)
   self._sparsity = (other._sparsity)
   if ((self._shape is not None) and ((int((self._shape).shape[0])!=2) or (self._shape[0]!=self._shape[1]))):
    raise mosek_fusion_DimensionError._ctor_S("Only square domains can be symmetric")
   self._dim = (0 if ((self._shape is None) ) else self._shape[0])
  @staticmethod
  def _match_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _sparse_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3_5I(_0)
   return _1_res
  def _sparse__3_5I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),int((_0).shape[1]),), dtype=numpy.dtype(numpy.int32))
   _1=0
   while (_1 < int((_0).shape[0])):
    _2=0
    while (_2 < int((_0).shape[1])):
     (self._sparsity)[_1,_2] = _0[_1,_2]
     _2 += 1
    _1 += 1
   return (self)
  @staticmethod
  def _match_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _sparse_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _sparse__3I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),1,), dtype=numpy.dtype(numpy.int32))
   for _1 in range(0,int((_0).shape[0])):
    (self._sparsity)[_1,0] = _0[_1]
   return (self)
  @staticmethod
  def _match_integral_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_integral_(*args):
    if len(args) != 0: return False
    return True
  def _integral_alt_(self,):
    return self._integral_()
  def _integral_(self,):
   self._cardinal_flag = True
   return (self)
  def _match_1shape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._match_1shape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _match_1shape__3I(self,_0):
   for _1 in range(0,int((_0).shape[0])):
    if (_0[_1]==self._shape[_1]):
     return (False)
   return (True)
 return SymmetricLinearDomain
mosek_fusion_SymmetricLinearDomain=__mk_mosek_fusion_SymmetricLinearDomain()
del __mk_mosek_fusion_SymmetricLinearDomain
def __mk_mosek_fusion_LinearDomain():
 class LinearDomain(object):
  __slots__ = ['_nelements','_domsize','_indexnames','_empty','_scalable','_sparsity','_cardinal_flag','_key','_bnd','_shape']
  def integral(self,*args):
    if False: pass
    elif mosek_fusion_LinearDomain._match_integral_(*args): 
      return self._integral_(*args)
    elif mosek_fusion_LinearDomain._match_alt_integral_(*args): 
      return self._integral_alt_(*args)
    else:
      raise ValueError('Invalid argument list integral('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearDomain.integral()')
  def withNamesOnAxis(self,*args):
    if False: pass
    elif mosek_fusion_LinearDomain._match_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis__3SI(*args)
    elif mosek_fusion_LinearDomain._match_alt_withNamesOnAxis__3SI(*args): 
      return self._withNamesOnAxis_alt__3SI(*args)
    else:
      raise ValueError('Invalid argument list withNamesOnAxis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearDomain.withNamesOnAxis(array(string,ndim=1),int32)')
  def withShape(self,*args):
    if False: pass
    elif mosek_fusion_LinearDomain._match_withShape__3I(*args): 
      return self._withShape__3I(*args)
    elif mosek_fusion_LinearDomain._match_alt_withShape__3I(*args): 
      return self._withShape_alt__3I(*args)
    elif mosek_fusion_LinearDomain._match_withShape_I(*args): 
      return self._withShape_I(*args)
    elif mosek_fusion_LinearDomain._match_alt_withShape_I(*args): 
      return self._withShape_alt_I(*args)
    elif mosek_fusion_LinearDomain._match_withShape_II(*args): 
      return self._withShape_II(*args)
    elif mosek_fusion_LinearDomain._match_alt_withShape_II(*args): 
      return self._withShape_alt_II(*args)
    elif mosek_fusion_LinearDomain._match_withShape_III(*args): 
      return self._withShape_III(*args)
    elif mosek_fusion_LinearDomain._match_alt_withShape_III(*args): 
      return self._withShape_alt_III(*args)
    else:
      raise ValueError('Invalid argument list withShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearDomain.withShape(array(int32,ndim=1))\n\tmosek.fusion.LinearDomain.withShape(int32)\n\tmosek.fusion.LinearDomain.withShape(int32,int32)\n\tmosek.fusion.LinearDomain.withShape(int32,int32,int32)')
  def symmetric(self,*args):
    if False: pass
    elif mosek_fusion_LinearDomain._match_symmetric_(*args): 
      return self._symmetric_(*args)
    elif mosek_fusion_LinearDomain._match_alt_symmetric_(*args): 
      return self._symmetric_alt_(*args)
    else:
      raise ValueError('Invalid argument list symmetric('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearDomain.symmetric()')
  def sparse(self,*args):
    if False: pass
    elif mosek_fusion_LinearDomain._match_sparse_(*args): 
      return self._sparse_(*args)
    elif mosek_fusion_LinearDomain._match_alt_sparse_(*args): 
      return self._sparse_alt_(*args)
    elif mosek_fusion_LinearDomain._match_sparse__3I(*args): 
      return self._sparse__3I(*args)
    elif mosek_fusion_LinearDomain._match_alt_sparse__3I(*args): 
      return self._sparse_alt__3I(*args)
    elif mosek_fusion_LinearDomain._match_sparse__3_5I(*args): 
      return self._sparse__3_5I(*args)
    elif mosek_fusion_LinearDomain._match_alt_sparse__3_5I(*args): 
      return self._sparse_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list sparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinearDomain.sparse()\n\tmosek.fusion.LinearDomain.sparse(array(int32,ndim=1))\n\tmosek.fusion.LinearDomain.sparse(array(int32,ndim=2))')
  def __repr__(self): return 'mosek.fusion.LinearDomain'
  @staticmethod
  def _ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(k,scalable,rhs,dims):
    o = LinearDomain.__new__(LinearDomain)
    o._ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I(k,scalable,rhs,dims)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(*args):
    if len(args) != 4: return False
    k,scalable,rhs,dims, = args
    return (__arg_match_Emosek_4fusion_4RelationKey_2__(k) and __arg_match_Z__(scalable) and __arg_match__3D__(rhs) and __arg_match__3I__(dims))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(*args):
    if len(args) != 4: return False
    k,scalable,rhs,dims, = args
    return (__arg_alt_match_Emosek_4fusion_4RelationKey_2__(k) and __arg_alt_match_Z__(scalable) and __arg_alt_match__3D__(rhs) and __arg_alt_match__3I__(dims))
  def _ctor_alt_init_Emosek_4fusion_4RelationKey_2Z_3D_3I(self,k,scalable,rhs,dims):
    self._ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I(k,scalable,numpy.array(rhs,dtype=numpy.dtype(numpy.float64)),numpy.array(dims,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I(self,k,scalable,rhs,dims):
   mosek_fusion_LinearDomain._ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(self,k,scalable,rhs,dims,None,1)
  @staticmethod
  def _ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(k,scalable,rhs,dims,sp,steal):
    o = LinearDomain.__new__(LinearDomain)
    o._ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(k,scalable,rhs,dims,sp,steal)
    return o
  @staticmethod
  def __match_ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(*args):
    if len(args) != 6: return False
    k,scalable,rhs,dims,sp,steal, = args
    return (__arg_match_Emosek_4fusion_4RelationKey_2__(k) and __arg_match_Z__(scalable) and __arg_match__3D__(rhs) and __arg_match__3I__(dims) and __arg_match__3_5I__(sp) and __arg_match_I__(steal))
  @staticmethod
  def __match_alt_ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(*args):
    if len(args) != 6: return False
    k,scalable,rhs,dims,sp,steal, = args
    return (__arg_alt_match_Emosek_4fusion_4RelationKey_2__(k) and __arg_alt_match_Z__(scalable) and __arg_alt_match__3D__(rhs) and __arg_alt_match__3I__(dims) and __arg_alt_match__3_5I__(sp) and __arg_alt_match_I__(steal))
  def _ctor_alt_init_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(self,k,scalable,rhs,dims,sp,steal):
    self._ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(k,scalable,numpy.array(rhs,dtype=numpy.dtype(numpy.float64)),numpy.array(dims,dtype=numpy.dtype(numpy.int32)),numpy.array(sp,dtype=numpy.dtype(numpy.int32)),numpy.int32(steal))
  def _ctor_init_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(self,k,scalable,rhs,dims,sp,steal):
   (self._scalable) = scalable
   (self._shape) = dims
   (self._key) = k
   (self._bnd) = rhs
   (self._sparsity) = sp
   (self._cardinal_flag) = False
   (self._empty) = False
   self._indexnames = None
   (self._domsize) = 0
   (self._nelements) = 0
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinearDomain_2(other):
    o = LinearDomain.__new__(LinearDomain)
    o._ctor_init_Lmosek_4fusion_4LinearDomain_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4LinearDomain_2(self,other):
    self._ctor_init_Lmosek_4fusion_4LinearDomain_2(other)
  def _ctor_init_Lmosek_4fusion_4LinearDomain_2(self,other):
   self._scalable = (other._scalable)
   self._nelements = (other._nelements)
   self._domsize = (other._domsize)
   self._shape = (other._shape)
   self._key = (other._key)
   self._bnd = (other._bnd)
   self._sparsity = (other._sparsity)
   self._cardinal_flag = (other._cardinal_flag)
   self._empty = (other._empty)
   self._indexnames = (other._indexnames)
  @staticmethod
  def _match_symmetric_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_symmetric_(*args):
    if len(args) != 0: return False
    return True
  def _symmetric_alt_(self,):
    return self._symmetric_()
  def _symmetric_(self,):
   return (mosek_fusion_SymmetricLinearDomain._ctor_Lmosek_4fusion_4LinearDomain_2(self))
  @staticmethod
  def _match_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_sparse__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _sparse_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3_5I(_0)
   return _1_res
  def _sparse__3_5I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),int((_0).shape[1]),), dtype=numpy.dtype(numpy.int32))
   (self._empty) = False
   _1=0
   while (_1 < int((_0).shape[0])):
    _2=0
    while (_2 < int((_0).shape[1])):
     (self._sparsity)[_1,_2] = _0[_1,_2]
     _2 += 1
    _1 += 1
   return (self)
  @staticmethod
  def _match_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_sparse__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _sparse_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._sparse__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _sparse__3I(self,_0):
   (self._sparsity) = numpy.zeros((int((_0).shape[0]),1,), dtype=numpy.dtype(numpy.int32))
   (self._empty) = False
   for _1 in range(0,int((_0).shape[0])):
    (self._sparsity)[_1,0] = _0[_1]
   return (self)
  @staticmethod
  def _match_sparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_sparse_(*args):
    if len(args) != 0: return False
    return True
  def _sparse_alt_(self,):
    return self._sparse_()
  def _sparse_(self,):
   (self._empty) = True
   (self._sparsity) = None
   return (self)
  @staticmethod
  def _match_integral_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_integral_(*args):
    if len(args) != 0: return False
    return True
  def _integral_alt_(self,):
    return self._integral_()
  def _integral_(self,):
   self._cardinal_flag = True
   return (self)
  @staticmethod
  def _match_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_withShape_III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  def _withShape_alt_III(self,_t__0,_t__1,_t__2):
    return self._withShape_III(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2))
  def _withShape_III(self,_0,_1,_2):
   self._shape = numpy.array([_0,_1,_2], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withShape_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _withShape_alt_II(self,_t__0,_t__1):
    return self._withShape_II(numpy.int32(__0),numpy.int32(__1))
  def _withShape_II(self,_0,_1):
   self._shape = numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_withShape_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _withShape_alt_I(self,_t__0):
    return self._withShape_I(numpy.int32(__0))
  def _withShape_I(self,_0):
   self._shape = numpy.array([_0], dtype=numpy.dtype(numpy.int32))
   return (self)
  @staticmethod
  def _match_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_withShape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _withShape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._withShape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withShape__3I(self,_0):
   self._shape = _0
   return (self)
  @staticmethod
  def _match_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3S__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_withNamesOnAxis__3SI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3S__(_0) and __arg_alt_match_I__(_1))
  def _withNamesOnAxis_alt__3SI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = self._withNamesOnAxis__3SI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _withNamesOnAxis__3SI(self,_0,_1):
   if (self._indexnames is None):
    self._indexnames = _monty.initJaggedArray([None for _2 in range(0,(_1 + 1))], 1)
    self._indexnames[_1] = numpy.array([_0[_3] for _3 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   if (int((self._indexnames).shape[0]) < (_1 + 1)):
    _4=_monty.initJaggedArray([None for _5 in range(0,(_1 + 1))], 1)
    for _6 in range(0,int((self._indexnames).shape[0])):
     _4[_6] = self._indexnames[_6]
    self._indexnames = _4
   self._indexnames[_1] = numpy.array([_0[_7] for _7 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   return (self)
  def _match_1shape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._match_1shape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _match_1shape__3I(self,_0):
   if (not self._scalable):
    for _1 in range(0,int((_0).shape[0])):
     if (_0[_1]==self._shape[_1]):
      return (False)
   return (True)
  def __finalize_1and_1validate_1inplace_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__finalize_1and_1validate_1inplace__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __finalize_1and_1validate_1inplace__3I(self,_0):
   if self._scalable:
    if (self._shape is None):
     if ((self._sparsity is not None) and (_0 is None)):
      raise mosek_fusion_DimensionError._ctor_S("Sparse domain requires a fixed shape")
     if (_0 is not None):
      self._shape = _0
     else:
      self._shape = numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))
   else:
    if (_0 is not None):
     if (int((_0).shape[0])!=int((self._shape).shape[0])):
      raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
     for _1 in range(0,int((_0).shape[0])):
      if (_0[_1]!=self._shape[_1]):
       raise mosek_fusion_DimensionError._ctor_S("Conflicting shape definitions")
   if (self._indexnames is not None):
    if (int((self._indexnames).shape[0]) > int((self._shape).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
    for _2 in range(0,int((self._indexnames).shape[0])):
     if ((self._indexnames[_2] is not None) and (int((self._indexnames[_2]).shape[0])!=self._shape[_2])):
      raise mosek_fusion_DimensionError._ctor_S("Index names do not match shape")
    if (int((self._indexnames).shape[0]) < int((self._shape).shape[0])):
     _3=numpy.ndarray((int((self._shape).shape[0]),), dtype=numpy.dtype(object))
     for _4 in range(0,int((self._indexnames).shape[0])):
      _3[_4] = self._indexnames[_4]
     self._indexnames = _3
   self._domsize = 1
   for _5 in range(0,int((self._shape).shape[0])):
    self._domsize *= self._shape[_5]
   if (self._sparsity is not None):
    self._nelements = int((self._sparsity).shape[0])
    if (int((self._shape).shape[0])!=int((self._sparsity).shape[1])):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching shape and sparsity pattern")
    for _6 in range(0,self._nelements):
     for _7 in range(0,int((self._sparsity).shape[1])):
      if ((self._sparsity[_6,_7] < 0) or (self._sparsity[_6,_7] >= self._shape[_7])):
       raise mosek_fusion_DimensionError._ctor_S("Sparsity pattern entry is out of bounds")
    if ((not self._scalable) and ((self._bnd is not None) and (int((self._bnd).shape[0])!=self._nelements))):
     raise mosek_fusion_DimensionError._ctor_S("Sparsity pattern does not match bound")
   else:
    self._nelements = self._domsize
    if ((self._bnd is not None) and (not self._scalable)):
     if (int((self._bnd).shape[0])!=self._nelements):
      raise mosek_fusion_DimensionError._ctor_S("Domain bound does not match shape")
  def _finalize_1and_1validate_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._finalize_1and_1validate__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _finalize_1and_1validate__3I(self,_0):
   _1=mosek_fusion_LinearDomain._ctor_Lmosek_4fusion_4LinearDomain_2(self)
   _1.__finalize_1and_1validate_1inplace__3I(_0)
   return (_1)
 return LinearDomain
mosek_fusion_LinearDomain=__mk_mosek_fusion_LinearDomain()
del __mk_mosek_fusion_LinearDomain
def __mk_mosek_fusion_Domain():
 class Domain(object):
  @staticmethod
  def binary(*args):
    if False: pass
    elif mosek_fusion_Domain._match_binary_(*args): 
      return mosek_fusion_Domain._binary_(*args)
    elif mosek_fusion_Domain._match_alt_binary_(*args): 
      return mosek_fusion_Domain._binary_alt_(*args)
    elif mosek_fusion_Domain._match_binary__3I(*args): 
      return mosek_fusion_Domain._binary__3I(*args)
    elif mosek_fusion_Domain._match_alt_binary__3I(*args): 
      return mosek_fusion_Domain._binary_alt__3I(*args)
    elif mosek_fusion_Domain._match_binary_I(*args): 
      return mosek_fusion_Domain._binary_I(*args)
    elif mosek_fusion_Domain._match_alt_binary_I(*args): 
      return mosek_fusion_Domain._binary_alt_I(*args)
    elif mosek_fusion_Domain._match_binary_II(*args): 
      return mosek_fusion_Domain._binary_II(*args)
    elif mosek_fusion_Domain._match_alt_binary_II(*args): 
      return mosek_fusion_Domain._binary_alt_II(*args)
    else:
      raise ValueError('Invalid argument list binary('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.binary()\n\tmosek.fusion.Domain.binary(array(int32,ndim=1))\n\tmosek.fusion.Domain.binary(int32)\n\tmosek.fusion.Domain.binary(int32,int32)')
  @staticmethod
  def inRange(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inRange__3D_3D(*args): 
      return mosek_fusion_Domain._inRange__3D_3D(*args)
    elif mosek_fusion_Domain._match_alt_inRange__3D_3D(*args): 
      return mosek_fusion_Domain._inRange_alt__3D_3D(*args)
    elif mosek_fusion_Domain._match_inRange__3DD(*args): 
      return mosek_fusion_Domain._inRange__3DD(*args)
    elif mosek_fusion_Domain._match_alt_inRange__3DD(*args): 
      return mosek_fusion_Domain._inRange_alt__3DD(*args)
    elif mosek_fusion_Domain._match_inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_alt_inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._inRange_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_inRange_D_3D(*args): 
      return mosek_fusion_Domain._inRange_D_3D(*args)
    elif mosek_fusion_Domain._match_alt_inRange_D_3D(*args): 
      return mosek_fusion_Domain._inRange_alt_D_3D(*args)
    elif mosek_fusion_Domain._match_inRange__3_5D_3_5D(*args): 
      return mosek_fusion_Domain._inRange__3_5D_3_5D(*args)
    elif mosek_fusion_Domain._match_alt_inRange__3_5D_3_5D(*args): 
      return mosek_fusion_Domain._inRange_alt__3_5D_3_5D(*args)
    elif mosek_fusion_Domain._match_inRange_DD(*args): 
      return mosek_fusion_Domain._inRange_DD(*args)
    elif mosek_fusion_Domain._match_alt_inRange_DD(*args): 
      return mosek_fusion_Domain._inRange_alt_DD(*args)
    elif mosek_fusion_Domain._match_inRange_D_3D_3I(*args): 
      return mosek_fusion_Domain._inRange_D_3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inRange_D_3D_3I(*args): 
      return mosek_fusion_Domain._inRange_alt_D_3D_3I(*args)
    elif mosek_fusion_Domain._match_inRange__3DD_3I(*args): 
      return mosek_fusion_Domain._inRange__3DD_3I(*args)
    elif mosek_fusion_Domain._match_alt_inRange__3DD_3I(*args): 
      return mosek_fusion_Domain._inRange_alt__3DD_3I(*args)
    elif mosek_fusion_Domain._match_inRange__3D_3D_3I(*args): 
      return mosek_fusion_Domain._inRange__3D_3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inRange__3D_3D_3I(*args): 
      return mosek_fusion_Domain._inRange_alt__3D_3D_3I(*args)
    elif mosek_fusion_Domain._match_inRange_DD_3I(*args): 
      return mosek_fusion_Domain._inRange_DD_3I(*args)
    elif mosek_fusion_Domain._match_alt_inRange_DD_3I(*args): 
      return mosek_fusion_Domain._inRange_alt_DD_3I(*args)
    else:
      raise ValueError('Invalid argument list inRange('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inRange(array(double,ndim=1),array(double,ndim=1))\n\tmosek.fusion.Domain.inRange(array(double,ndim=1),double)\n\tmosek.fusion.Domain.inRange(mosek.fusion.Matrix,mosek.fusion.Matrix)\n\tmosek.fusion.Domain.inRange(double,array(double,ndim=1))\n\tmosek.fusion.Domain.inRange(array(double,ndim=2),array(double,ndim=2))\n\tmosek.fusion.Domain.inRange(double,double)\n\tmosek.fusion.Domain.inRange(double,array(double,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Domain.inRange(array(double,ndim=1),double,array(int32,ndim=1))\n\tmosek.fusion.Domain.inRange(array(double,ndim=1),array(double,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Domain.inRange(double,double,array(int32,ndim=1))')
  @staticmethod
  def inDPowerCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inDPowerCone__3D(*args): 
      return mosek_fusion_Domain._inDPowerCone__3D(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone__3D(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt__3D(*args)
    elif mosek_fusion_Domain._match_inDPowerCone_D(*args): 
      return mosek_fusion_Domain._inDPowerCone_D(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone_D(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt_D(*args)
    elif mosek_fusion_Domain._match_inDPowerCone_D_3I(*args): 
      return mosek_fusion_Domain._inDPowerCone_D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone_D_3I(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt_D_3I(*args)
    elif mosek_fusion_Domain._match_inDPowerCone__3DI(*args): 
      return mosek_fusion_Domain._inDPowerCone__3DI(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone__3DI(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt__3DI(*args)
    elif mosek_fusion_Domain._match_inDPowerCone_DI(*args): 
      return mosek_fusion_Domain._inDPowerCone_DI(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone_DI(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt_DI(*args)
    elif mosek_fusion_Domain._match_inDPowerCone__3D_3I(*args): 
      return mosek_fusion_Domain._inDPowerCone__3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inDPowerCone__3D_3I(*args): 
      return mosek_fusion_Domain._inDPowerCone_alt__3D_3I(*args)
    else:
      raise ValueError('Invalid argument list inDPowerCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inDPowerCone(array(double,ndim=1))\n\tmosek.fusion.Domain.inDPowerCone(double)\n\tmosek.fusion.Domain.inDPowerCone(double,array(int32,ndim=1))\n\tmosek.fusion.Domain.inDPowerCone(array(double,ndim=1),int32)\n\tmosek.fusion.Domain.inDPowerCone(double,int32)\n\tmosek.fusion.Domain.inDPowerCone(array(double,ndim=1),array(int32,ndim=1))')
  @staticmethod
  def equalsTo(*args):
    if False: pass
    elif mosek_fusion_Domain._match_equalsTo__3D(*args): 
      return mosek_fusion_Domain._equalsTo__3D(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo__3D(*args): 
      return mosek_fusion_Domain._equalsTo_alt__3D(*args)
    elif mosek_fusion_Domain._match_equalsTo_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._equalsTo_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._equalsTo_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_equalsTo__3_5D(*args): 
      return mosek_fusion_Domain._equalsTo__3_5D(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo__3_5D(*args): 
      return mosek_fusion_Domain._equalsTo_alt__3_5D(*args)
    elif mosek_fusion_Domain._match_equalsTo_D(*args): 
      return mosek_fusion_Domain._equalsTo_D(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo_D(*args): 
      return mosek_fusion_Domain._equalsTo_alt_D(*args)
    elif mosek_fusion_Domain._match_equalsTo_D_3I(*args): 
      return mosek_fusion_Domain._equalsTo_D_3I(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo_D_3I(*args): 
      return mosek_fusion_Domain._equalsTo_alt_D_3I(*args)
    elif mosek_fusion_Domain._match_equalsTo__3D_3I(*args): 
      return mosek_fusion_Domain._equalsTo__3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo__3D_3I(*args): 
      return mosek_fusion_Domain._equalsTo_alt__3D_3I(*args)
    elif mosek_fusion_Domain._match_equalsTo_DI(*args): 
      return mosek_fusion_Domain._equalsTo_DI(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo_DI(*args): 
      return mosek_fusion_Domain._equalsTo_alt_DI(*args)
    elif mosek_fusion_Domain._match_equalsTo_DII(*args): 
      return mosek_fusion_Domain._equalsTo_DII(*args)
    elif mosek_fusion_Domain._match_alt_equalsTo_DII(*args): 
      return mosek_fusion_Domain._equalsTo_alt_DII(*args)
    else:
      raise ValueError('Invalid argument list equalsTo('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.equalsTo(array(double,ndim=1))\n\tmosek.fusion.Domain.equalsTo(mosek.fusion.Matrix)\n\tmosek.fusion.Domain.equalsTo(array(double,ndim=2))\n\tmosek.fusion.Domain.equalsTo(double)\n\tmosek.fusion.Domain.equalsTo(double,array(int32,ndim=1))\n\tmosek.fusion.Domain.equalsTo(array(double,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Domain.equalsTo(double,int32)\n\tmosek.fusion.Domain.equalsTo(double,int32,int32)')
  @staticmethod
  def inPSDCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inPSDCone_(*args): 
      return mosek_fusion_Domain._inPSDCone_(*args)
    elif mosek_fusion_Domain._match_alt_inPSDCone_(*args): 
      return mosek_fusion_Domain._inPSDCone_alt_(*args)
    elif mosek_fusion_Domain._match_inPSDCone_I(*args): 
      return mosek_fusion_Domain._inPSDCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inPSDCone_I(*args): 
      return mosek_fusion_Domain._inPSDCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inPSDCone_II(*args): 
      return mosek_fusion_Domain._inPSDCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inPSDCone_II(*args): 
      return mosek_fusion_Domain._inPSDCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inPSDCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inPSDCone()\n\tmosek.fusion.Domain.inPSDCone(int32)\n\tmosek.fusion.Domain.inPSDCone(int32,int32)')
  @staticmethod
  def inDExpCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inDExpCone_(*args): 
      return mosek_fusion_Domain._inDExpCone_(*args)
    elif mosek_fusion_Domain._match_alt_inDExpCone_(*args): 
      return mosek_fusion_Domain._inDExpCone_alt_(*args)
    elif mosek_fusion_Domain._match_inDExpCone_I(*args): 
      return mosek_fusion_Domain._inDExpCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inDExpCone_I(*args): 
      return mosek_fusion_Domain._inDExpCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inDExpCone__3I(*args): 
      return mosek_fusion_Domain._inDExpCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inDExpCone__3I(*args): 
      return mosek_fusion_Domain._inDExpCone_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list inDExpCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inDExpCone()\n\tmosek.fusion.Domain.inDExpCone(int32)\n\tmosek.fusion.Domain.inDExpCone(array(int32,ndim=1))')
  @staticmethod
  def integral(*args):
    if False: pass
    elif mosek_fusion_Domain._match_integral_Lmosek_4fusion_4ConeDomain_2(*args): 
      return mosek_fusion_Domain._integral_Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Domain._match_alt_integral_Lmosek_4fusion_4ConeDomain_2(*args): 
      return mosek_fusion_Domain._integral_alt_Lmosek_4fusion_4ConeDomain_2(*args)
    elif mosek_fusion_Domain._match_integral_Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_Domain._integral_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Domain._match_alt_integral_Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_Domain._integral_alt_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Domain._match_integral_Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_Domain._integral_Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Domain._match_alt_integral_Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_Domain._integral_alt_Lmosek_4fusion_4RangeDomain_2(*args)
    else:
      raise ValueError('Invalid argument list integral('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.integral(mosek.fusion.ConeDomain)\n\tmosek.fusion.Domain.integral(mosek.fusion.LinearDomain)\n\tmosek.fusion.Domain.integral(mosek.fusion.RangeDomain)')
  @staticmethod
  def inDGeoMeanCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inDGeoMeanCone_(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_(*args)
    elif mosek_fusion_Domain._match_alt_inDGeoMeanCone_(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_alt_(*args)
    elif mosek_fusion_Domain._match_inDGeoMeanCone_I(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inDGeoMeanCone_I(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inDGeoMeanCone__3I(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inDGeoMeanCone__3I(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_alt__3I(*args)
    elif mosek_fusion_Domain._match_inDGeoMeanCone_II(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inDGeoMeanCone_II(*args): 
      return mosek_fusion_Domain._inDGeoMeanCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inDGeoMeanCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inDGeoMeanCone()\n\tmosek.fusion.Domain.inDGeoMeanCone(int32)\n\tmosek.fusion.Domain.inDGeoMeanCone(array(int32,ndim=1))\n\tmosek.fusion.Domain.inDGeoMeanCone(int32,int32)')
  @staticmethod
  def inSVecPSDCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inSVecPSDCone_(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_(*args)
    elif mosek_fusion_Domain._match_alt_inSVecPSDCone_(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_alt_(*args)
    elif mosek_fusion_Domain._match_inSVecPSDCone_I(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inSVecPSDCone_I(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inSVecPSDCone__3I(*args): 
      return mosek_fusion_Domain._inSVecPSDCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inSVecPSDCone__3I(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_alt__3I(*args)
    elif mosek_fusion_Domain._match_inSVecPSDCone_II(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inSVecPSDCone_II(*args): 
      return mosek_fusion_Domain._inSVecPSDCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inSVecPSDCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inSVecPSDCone()\n\tmosek.fusion.Domain.inSVecPSDCone(int32)\n\tmosek.fusion.Domain.inSVecPSDCone(array(int32,ndim=1))\n\tmosek.fusion.Domain.inSVecPSDCone(int32,int32)')
  @staticmethod
  def symmetric(*args):
    if False: pass
    elif mosek_fusion_Domain._match_symmetric_Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_Domain._symmetric_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Domain._match_alt_symmetric_Lmosek_4fusion_4LinearDomain_2(*args): 
      return mosek_fusion_Domain._symmetric_alt_Lmosek_4fusion_4LinearDomain_2(*args)
    elif mosek_fusion_Domain._match_symmetric_Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_Domain._symmetric_Lmosek_4fusion_4RangeDomain_2(*args)
    elif mosek_fusion_Domain._match_alt_symmetric_Lmosek_4fusion_4RangeDomain_2(*args): 
      return mosek_fusion_Domain._symmetric_alt_Lmosek_4fusion_4RangeDomain_2(*args)
    else:
      raise ValueError('Invalid argument list symmetric('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.symmetric(mosek.fusion.LinearDomain)\n\tmosek.fusion.Domain.symmetric(mosek.fusion.RangeDomain)')
  @staticmethod
  def greaterThan(*args):
    if False: pass
    elif mosek_fusion_Domain._match_greaterThan__3D(*args): 
      return mosek_fusion_Domain._greaterThan__3D(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan__3D(*args): 
      return mosek_fusion_Domain._greaterThan_alt__3D(*args)
    elif mosek_fusion_Domain._match_greaterThan_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._greaterThan_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._greaterThan_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_greaterThan__3_5D(*args): 
      return mosek_fusion_Domain._greaterThan__3_5D(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan__3_5D(*args): 
      return mosek_fusion_Domain._greaterThan_alt__3_5D(*args)
    elif mosek_fusion_Domain._match_greaterThan_D(*args): 
      return mosek_fusion_Domain._greaterThan_D(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan_D(*args): 
      return mosek_fusion_Domain._greaterThan_alt_D(*args)
    elif mosek_fusion_Domain._match_greaterThan_D_3I(*args): 
      return mosek_fusion_Domain._greaterThan_D_3I(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan_D_3I(*args): 
      return mosek_fusion_Domain._greaterThan_alt_D_3I(*args)
    elif mosek_fusion_Domain._match_greaterThan__3D_3I(*args): 
      return mosek_fusion_Domain._greaterThan__3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan__3D_3I(*args): 
      return mosek_fusion_Domain._greaterThan_alt__3D_3I(*args)
    elif mosek_fusion_Domain._match_greaterThan_DI(*args): 
      return mosek_fusion_Domain._greaterThan_DI(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan_DI(*args): 
      return mosek_fusion_Domain._greaterThan_alt_DI(*args)
    elif mosek_fusion_Domain._match_greaterThan_DII(*args): 
      return mosek_fusion_Domain._greaterThan_DII(*args)
    elif mosek_fusion_Domain._match_alt_greaterThan_DII(*args): 
      return mosek_fusion_Domain._greaterThan_alt_DII(*args)
    else:
      raise ValueError('Invalid argument list greaterThan('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.greaterThan(array(double,ndim=1))\n\tmosek.fusion.Domain.greaterThan(mosek.fusion.Matrix)\n\tmosek.fusion.Domain.greaterThan(array(double,ndim=2))\n\tmosek.fusion.Domain.greaterThan(double)\n\tmosek.fusion.Domain.greaterThan(double,array(int32,ndim=1))\n\tmosek.fusion.Domain.greaterThan(array(double,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Domain.greaterThan(double,int32)\n\tmosek.fusion.Domain.greaterThan(double,int32,int32)')
  @staticmethod
  def inPExpCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inPExpCone_(*args): 
      return mosek_fusion_Domain._inPExpCone_(*args)
    elif mosek_fusion_Domain._match_alt_inPExpCone_(*args): 
      return mosek_fusion_Domain._inPExpCone_alt_(*args)
    elif mosek_fusion_Domain._match_inPExpCone_I(*args): 
      return mosek_fusion_Domain._inPExpCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inPExpCone_I(*args): 
      return mosek_fusion_Domain._inPExpCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inPExpCone__3I(*args): 
      return mosek_fusion_Domain._inPExpCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inPExpCone__3I(*args): 
      return mosek_fusion_Domain._inPExpCone_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list inPExpCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inPExpCone()\n\tmosek.fusion.Domain.inPExpCone(int32)\n\tmosek.fusion.Domain.inPExpCone(array(int32,ndim=1))')
  @staticmethod
  def isTrilPSD(*args):
    if False: pass
    elif mosek_fusion_Domain._match_isTrilPSD_(*args): 
      return mosek_fusion_Domain._isTrilPSD_(*args)
    elif mosek_fusion_Domain._match_alt_isTrilPSD_(*args): 
      return mosek_fusion_Domain._isTrilPSD_alt_(*args)
    elif mosek_fusion_Domain._match_isTrilPSD_I(*args): 
      return mosek_fusion_Domain._isTrilPSD_I(*args)
    elif mosek_fusion_Domain._match_alt_isTrilPSD_I(*args): 
      return mosek_fusion_Domain._isTrilPSD_alt_I(*args)
    elif mosek_fusion_Domain._match_isTrilPSD_II(*args): 
      return mosek_fusion_Domain._isTrilPSD_II(*args)
    elif mosek_fusion_Domain._match_alt_isTrilPSD_II(*args): 
      return mosek_fusion_Domain._isTrilPSD_alt_II(*args)
    else:
      raise ValueError('Invalid argument list isTrilPSD('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.isTrilPSD()\n\tmosek.fusion.Domain.isTrilPSD(int32)\n\tmosek.fusion.Domain.isTrilPSD(int32,int32)')
  @staticmethod
  def inPPowerCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inPPowerCone__3D(*args): 
      return mosek_fusion_Domain._inPPowerCone__3D(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone__3D(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt__3D(*args)
    elif mosek_fusion_Domain._match_inPPowerCone_D(*args): 
      return mosek_fusion_Domain._inPPowerCone_D(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone_D(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt_D(*args)
    elif mosek_fusion_Domain._match_inPPowerCone_D_3I(*args): 
      return mosek_fusion_Domain._inPPowerCone_D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone_D_3I(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt_D_3I(*args)
    elif mosek_fusion_Domain._match_inPPowerCone__3DI(*args): 
      return mosek_fusion_Domain._inPPowerCone__3DI(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone__3DI(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt__3DI(*args)
    elif mosek_fusion_Domain._match_inPPowerCone_DI(*args): 
      return mosek_fusion_Domain._inPPowerCone_DI(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone_DI(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt_DI(*args)
    elif mosek_fusion_Domain._match_inPPowerCone__3D_3I(*args): 
      return mosek_fusion_Domain._inPPowerCone__3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_inPPowerCone__3D_3I(*args): 
      return mosek_fusion_Domain._inPPowerCone_alt__3D_3I(*args)
    else:
      raise ValueError('Invalid argument list inPPowerCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inPPowerCone(array(double,ndim=1))\n\tmosek.fusion.Domain.inPPowerCone(double)\n\tmosek.fusion.Domain.inPPowerCone(double,array(int32,ndim=1))\n\tmosek.fusion.Domain.inPPowerCone(array(double,ndim=1),int32)\n\tmosek.fusion.Domain.inPPowerCone(double,int32)\n\tmosek.fusion.Domain.inPPowerCone(array(double,ndim=1),array(int32,ndim=1))')
  @staticmethod
  def lessThan(*args):
    if False: pass
    elif mosek_fusion_Domain._match_lessThan__3D(*args): 
      return mosek_fusion_Domain._lessThan__3D(*args)
    elif mosek_fusion_Domain._match_alt_lessThan__3D(*args): 
      return mosek_fusion_Domain._lessThan_alt__3D(*args)
    elif mosek_fusion_Domain._match_lessThan_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._lessThan_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_alt_lessThan_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Domain._lessThan_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Domain._match_lessThan__3_5D(*args): 
      return mosek_fusion_Domain._lessThan__3_5D(*args)
    elif mosek_fusion_Domain._match_alt_lessThan__3_5D(*args): 
      return mosek_fusion_Domain._lessThan_alt__3_5D(*args)
    elif mosek_fusion_Domain._match_lessThan_D(*args): 
      return mosek_fusion_Domain._lessThan_D(*args)
    elif mosek_fusion_Domain._match_alt_lessThan_D(*args): 
      return mosek_fusion_Domain._lessThan_alt_D(*args)
    elif mosek_fusion_Domain._match_lessThan_D_3I(*args): 
      return mosek_fusion_Domain._lessThan_D_3I(*args)
    elif mosek_fusion_Domain._match_alt_lessThan_D_3I(*args): 
      return mosek_fusion_Domain._lessThan_alt_D_3I(*args)
    elif mosek_fusion_Domain._match_lessThan__3D_3I(*args): 
      return mosek_fusion_Domain._lessThan__3D_3I(*args)
    elif mosek_fusion_Domain._match_alt_lessThan__3D_3I(*args): 
      return mosek_fusion_Domain._lessThan_alt__3D_3I(*args)
    elif mosek_fusion_Domain._match_lessThan_DI(*args): 
      return mosek_fusion_Domain._lessThan_DI(*args)
    elif mosek_fusion_Domain._match_alt_lessThan_DI(*args): 
      return mosek_fusion_Domain._lessThan_alt_DI(*args)
    elif mosek_fusion_Domain._match_lessThan_DII(*args): 
      return mosek_fusion_Domain._lessThan_DII(*args)
    elif mosek_fusion_Domain._match_alt_lessThan_DII(*args): 
      return mosek_fusion_Domain._lessThan_alt_DII(*args)
    else:
      raise ValueError('Invalid argument list lessThan('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.lessThan(array(double,ndim=1))\n\tmosek.fusion.Domain.lessThan(mosek.fusion.Matrix)\n\tmosek.fusion.Domain.lessThan(array(double,ndim=2))\n\tmosek.fusion.Domain.lessThan(double)\n\tmosek.fusion.Domain.lessThan(double,array(int32,ndim=1))\n\tmosek.fusion.Domain.lessThan(array(double,ndim=1),array(int32,ndim=1))\n\tmosek.fusion.Domain.lessThan(double,int32)\n\tmosek.fusion.Domain.lessThan(double,int32,int32)')
  @staticmethod
  def unbounded(*args):
    if False: pass
    elif mosek_fusion_Domain._match_unbounded_(*args): 
      return mosek_fusion_Domain._unbounded_(*args)
    elif mosek_fusion_Domain._match_alt_unbounded_(*args): 
      return mosek_fusion_Domain._unbounded_alt_(*args)
    elif mosek_fusion_Domain._match_unbounded_I(*args): 
      return mosek_fusion_Domain._unbounded_I(*args)
    elif mosek_fusion_Domain._match_alt_unbounded_I(*args): 
      return mosek_fusion_Domain._unbounded_alt_I(*args)
    elif mosek_fusion_Domain._match_unbounded__3I(*args): 
      return mosek_fusion_Domain._unbounded__3I(*args)
    elif mosek_fusion_Domain._match_alt_unbounded__3I(*args): 
      return mosek_fusion_Domain._unbounded_alt__3I(*args)
    elif mosek_fusion_Domain._match_unbounded_II(*args): 
      return mosek_fusion_Domain._unbounded_II(*args)
    elif mosek_fusion_Domain._match_alt_unbounded_II(*args): 
      return mosek_fusion_Domain._unbounded_alt_II(*args)
    else:
      raise ValueError('Invalid argument list unbounded('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.unbounded()\n\tmosek.fusion.Domain.unbounded(int32)\n\tmosek.fusion.Domain.unbounded(array(int32,ndim=1))\n\tmosek.fusion.Domain.unbounded(int32,int32)')
  @staticmethod
  def sparse(*args):
    if False: pass
    elif mosek_fusion_Domain._match_sparse_Lmosek_4fusion_4LinearDomain_2_3I(*args): 
      return mosek_fusion_Domain._sparse_Lmosek_4fusion_4LinearDomain_2_3I(*args)
    elif mosek_fusion_Domain._match_alt_sparse_Lmosek_4fusion_4LinearDomain_2_3I(*args): 
      return mosek_fusion_Domain._sparse_alt_Lmosek_4fusion_4LinearDomain_2_3I(*args)
    elif mosek_fusion_Domain._match_sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(*args): 
      return mosek_fusion_Domain._sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(*args)
    elif mosek_fusion_Domain._match_alt_sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(*args): 
      return mosek_fusion_Domain._sparse_alt_Lmosek_4fusion_4LinearDomain_2_3_5I(*args)
    elif mosek_fusion_Domain._match_sparse_Lmosek_4fusion_4RangeDomain_2_3I(*args): 
      return mosek_fusion_Domain._sparse_Lmosek_4fusion_4RangeDomain_2_3I(*args)
    elif mosek_fusion_Domain._match_alt_sparse_Lmosek_4fusion_4RangeDomain_2_3I(*args): 
      return mosek_fusion_Domain._sparse_alt_Lmosek_4fusion_4RangeDomain_2_3I(*args)
    elif mosek_fusion_Domain._match_sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(*args): 
      return mosek_fusion_Domain._sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(*args)
    elif mosek_fusion_Domain._match_alt_sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(*args): 
      return mosek_fusion_Domain._sparse_alt_Lmosek_4fusion_4RangeDomain_2_3_5I(*args)
    else:
      raise ValueError('Invalid argument list sparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.sparse(mosek.fusion.LinearDomain,array(int32,ndim=1))\n\tmosek.fusion.Domain.sparse(mosek.fusion.LinearDomain,array(int32,ndim=2))\n\tmosek.fusion.Domain.sparse(mosek.fusion.RangeDomain,array(int32,ndim=1))\n\tmosek.fusion.Domain.sparse(mosek.fusion.RangeDomain,array(int32,ndim=2))')
  @staticmethod
  def inPGeoMeanCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inPGeoMeanCone_(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_(*args)
    elif mosek_fusion_Domain._match_alt_inPGeoMeanCone_(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_alt_(*args)
    elif mosek_fusion_Domain._match_inPGeoMeanCone_I(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inPGeoMeanCone_I(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inPGeoMeanCone__3I(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inPGeoMeanCone__3I(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_alt__3I(*args)
    elif mosek_fusion_Domain._match_inPGeoMeanCone_II(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inPGeoMeanCone_II(*args): 
      return mosek_fusion_Domain._inPGeoMeanCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inPGeoMeanCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inPGeoMeanCone()\n\tmosek.fusion.Domain.inPGeoMeanCone(int32)\n\tmosek.fusion.Domain.inPGeoMeanCone(array(int32,ndim=1))\n\tmosek.fusion.Domain.inPGeoMeanCone(int32,int32)')
  @staticmethod
  def inRotatedQCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inRotatedQCone_(*args): 
      return mosek_fusion_Domain._inRotatedQCone_(*args)
    elif mosek_fusion_Domain._match_alt_inRotatedQCone_(*args): 
      return mosek_fusion_Domain._inRotatedQCone_alt_(*args)
    elif mosek_fusion_Domain._match_inRotatedQCone_I(*args): 
      return mosek_fusion_Domain._inRotatedQCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inRotatedQCone_I(*args): 
      return mosek_fusion_Domain._inRotatedQCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inRotatedQCone__3I(*args): 
      return mosek_fusion_Domain._inRotatedQCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inRotatedQCone__3I(*args): 
      return mosek_fusion_Domain._inRotatedQCone_alt__3I(*args)
    elif mosek_fusion_Domain._match_inRotatedQCone_II(*args): 
      return mosek_fusion_Domain._inRotatedQCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inRotatedQCone_II(*args): 
      return mosek_fusion_Domain._inRotatedQCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inRotatedQCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inRotatedQCone()\n\tmosek.fusion.Domain.inRotatedQCone(int32)\n\tmosek.fusion.Domain.inRotatedQCone(array(int32,ndim=1))\n\tmosek.fusion.Domain.inRotatedQCone(int32,int32)')
  @staticmethod
  def axis(*args):
    if False: pass
    elif mosek_fusion_Domain._match_axis_Lmosek_4fusion_4ConeDomain_2I(*args): 
      return mosek_fusion_Domain._axis_Lmosek_4fusion_4ConeDomain_2I(*args)
    elif mosek_fusion_Domain._match_alt_axis_Lmosek_4fusion_4ConeDomain_2I(*args): 
      return mosek_fusion_Domain._axis_alt_Lmosek_4fusion_4ConeDomain_2I(*args)
    else:
      raise ValueError('Invalid argument list axis('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.axis(mosek.fusion.ConeDomain,int32)')
  @staticmethod
  def inQCone(*args):
    if False: pass
    elif mosek_fusion_Domain._match_inQCone_(*args): 
      return mosek_fusion_Domain._inQCone_(*args)
    elif mosek_fusion_Domain._match_alt_inQCone_(*args): 
      return mosek_fusion_Domain._inQCone_alt_(*args)
    elif mosek_fusion_Domain._match_inQCone_I(*args): 
      return mosek_fusion_Domain._inQCone_I(*args)
    elif mosek_fusion_Domain._match_alt_inQCone_I(*args): 
      return mosek_fusion_Domain._inQCone_alt_I(*args)
    elif mosek_fusion_Domain._match_inQCone__3I(*args): 
      return mosek_fusion_Domain._inQCone__3I(*args)
    elif mosek_fusion_Domain._match_alt_inQCone__3I(*args): 
      return mosek_fusion_Domain._inQCone_alt__3I(*args)
    elif mosek_fusion_Domain._match_inQCone_II(*args): 
      return mosek_fusion_Domain._inQCone_II(*args)
    elif mosek_fusion_Domain._match_alt_inQCone_II(*args): 
      return mosek_fusion_Domain._inQCone_alt_II(*args)
    else:
      raise ValueError('Invalid argument list inQCone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Domain.inQCone()\n\tmosek.fusion.Domain.inQCone(int32)\n\tmosek.fusion.Domain.inQCone(array(int32,ndim=1))\n\tmosek.fusion.Domain.inQCone(int32,int32)')
  def __repr__(self): return 'mosek.fusion.Domain'
  @staticmethod
  def __dimsize_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain.__dimsize__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __dimsize__3I(_0):
   _1=1
   for _2 in range(0,int((_0).shape[0])):
    _1 *= _0[_2]
   return numpy.int64(_1)
  @staticmethod
  def __mkRangedDomain_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Domain.__mkRangedDomain_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def __mkRangedDomain_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_0,_1):
   if (((_0._dimi)!=(_1._dimi)) or ((_0._dimj)!=(_1._dimj))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions in domain")
   if (_0.isSparse() and _1.isSparse()):
    _2=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _3=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _4=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
    _5=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _7=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
    _0.getDataAsTriplets(_2,_3,_4)
    _1.getDataAsTriplets(_5,_6,_7)
    _8=0
    _9=0
    _10=0
    while ((_10 < int((_2).shape[0])) and (_9 < int((_5).shape[0]))):
     if ((_2[_10] < _5[_9]) or ((_2[_10]==_5[_9]) and (_3[_10] < _6[_9]))):
      _8 += 1
      _10 += 1
     else:
      if ((_2[_10] > _5[_9]) or ((_2[_10]==_5[_9]) and (_3[_10] > _6[_9]))):
       _8 += 1
       _9 += 1
      else:
       _8 += 1
       _10 += 1
       _9 += 1
    _8 += (int((_2).shape[0]) - _10)
    _8 += (int((_5).shape[0]) - _9)
    _11=numpy.zeros((_8,2,), dtype=numpy.dtype(numpy.int32))
    _12=numpy.zeros((_8,), dtype=numpy.dtype(numpy.float64))
    _13=numpy.zeros((_8,), dtype=numpy.dtype(numpy.float64))
    _14=0
    _15=0
    _16=0
    while ((_16 < int((_2).shape[0])) and (_15 < int((_5).shape[0]))):
     if ((_2[_16] < _5[_15]) or ((_2[_16]==_5[_15]) and (_3[_16] < _6[_15]))):
      _11[_14,0] = _2[_16]
      _11[_14,1] = _3[_16]
      _12[_14] = _4[_16]
      _13[_14] = 0.0
      _14 += 1
      _16 += 1
     else:
      if ((_2[_16] > _5[_15]) or ((_2[_16]==_5[_15]) and (_3[_16] > _6[_15]))):
       _11[_14,0] = _5[_15]
       _11[_14,1] = _6[_15]
       _12[_14] = 0.0
       _13[_14] = _7[_15]
       _14 += 1
       _15 += 1
      else:
       _11[_14,0] = _5[_15]
       _11[_14,1] = _6[_15]
       _12[_14] = _4[_15]
       _13[_14] = _7[_15]
       _14 += 1
       _16 += 1
       _15 += 1
    while (_16 < int((_2).shape[0])):
     _11[_14,0] = _2[_16]
     _11[_14,1] = _3[_16]
     _12[_14] = _4[_16]
     _13[_14] = 0.0
     _14 += 1
     _16 += 1
    while (_15 < int((_5).shape[0])):
     _11[_14,0] = _5[_15]
     _11[_14,1] = _6[_15]
     _12[_14] = 0.0
     _13[_14] = _7[_15]
     _14 += 1
     _15 += 1
    return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I_3_5II(False,_12,_13,numpy.array([(_0._dimi),(_0._dimj)], dtype=numpy.dtype(numpy.int32)),_11,1))
   else:
    _17=(_0._dimj)
    _18=(_0._dimi)
    _19=(_18 * _17)
    if _0.isSparse():
     _20 = numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
     _22=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
     _23=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
     _24=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
     _0.getDataAsTriplets(_22,_23,_24)
     for _25 in range(0,int((_22).shape[0])):
      _20[((_22[_25] * _17) + _23[_25])] = _24[_25]
    else:
     _20 = _0.getDataAsArray()
    if _1.isSparse():
     _21 = numpy.zeros((_19,), dtype=numpy.dtype(numpy.float64))
     _26=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
     _27=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
     _28=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
     _1.getDataAsTriplets(_26,_27,_28)
     for _29 in range(0,int((_26).shape[0])):
      _21[((_26[_29] * _17) + _27[_29])] = _28[_29]
    else:
     _21 = _1.getDataAsArray()
    return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I_3_5II(False,_20,_21,numpy.array([(_0._dimi),(_0._dimj)], dtype=numpy.dtype(numpy.int32)),None,1))
  @staticmethod
  def __mkRangedDomain_alt__3_5D_3_5D(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain.__mkRangedDomain__3_5D_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def __mkRangedDomain__3_5D_3_5D(_0,_1):
   if ((int((_0).shape[0])!=int((_1).shape[0])) or (int((_0).shape[1])!=int((_1).shape[1]))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions in domain")
   _2=int((_0).shape[1])
   _3=int((_0).shape[0])
   _4=(_3 * _2)
   _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   _7=0
   for _8 in range(0,_3):
    for _9 in range(0,_2):
     _5[_7] = _0[_8,_9]
     _6[_7] = _1[_8,_9]
     _7 += 1
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I_3_5II(False,_5,_6,numpy.array([_3,_2], dtype=numpy.dtype(numpy.int32)),None,1))
  @staticmethod
  def __mkLinearDomain_alt_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Domain.__mkLinearDomain_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(__0,_1)
  @staticmethod
  def __mkLinearDomain_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(_0,_1):
   if _1.isSparse():
    _2=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _3=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _4=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
    _1.getDataAsTriplets(_2,_3,_4)
    _5=numpy.zeros((int((_2).shape[0]),2,), dtype=numpy.dtype(numpy.int32))
    for _6 in range(0,int((_2).shape[0])):
     _5[_6,0] = _2[_6]
     _5[_6,1] = _3[_6]
    return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(_0,False,_4,numpy.array([(_1._dimi),(_1._dimj)], dtype=numpy.dtype(numpy.int32)),_5,1))
   else:
    return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I_3_5II(_0,False,_1.getDataAsArray(),numpy.array([(_1._dimi),(_1._dimj)], dtype=numpy.dtype(numpy.int32)),None,1))
  @staticmethod
  def __prod_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain.__prod__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __prod__3I(_0):
   _1=1
   for _2 in range(0,int((_0).shape[0])):
    _1 *= _0[_2]
   return numpy.int64(_1)
  @staticmethod
  def __inRange_alt_Z_3D_3D_3_5I_3I(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.array(_t__3,ndmin=_monty.checkShape(_t__3,2),dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain.__inRange_Z_3D_3D_3_5I_3I(_0,_1,_2,_3,_4)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __inRange_Z_3D_3D_3_5I_3I(_0,_1,_2,_3,_4):
   if ((not _0) and (int((_1).shape[0])!=int((_2).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching lengths of upper and lower bounds.")
   if ((_3 is not None) and (int((_3).shape[0])!=int((_1).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching lengths of upper/lower bounds and sparsity.")
   for _5 in range(0,int((_2).shape[0])):
    if (_1[_5] > _2[_5]):
     raise mosek_fusion_DomainError._ctor_S("Invalid range specified")
   if ((_4 is not None) and (mosek.fusion.Domain.__dimsize__3I(_4)!=int((_1).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching dimensions.")
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(_0,_1,_2,_4).sparse(_3))
  @staticmethod
  def _match_symmetric_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  @staticmethod
  def _match_alt_symmetric_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  @staticmethod
  def _symmetric_alt_Lmosek_4fusion_4RangeDomain_2(_t__0):
    return mosek_fusion_Domain._symmetric_Lmosek_4fusion_4RangeDomain_2(_0)
  @staticmethod
  def _symmetric_Lmosek_4fusion_4RangeDomain_2(_0):
   return (_0.symmetric())
  @staticmethod
  def _match_symmetric_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  @staticmethod
  def _match_alt_symmetric_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  @staticmethod
  def _symmetric_alt_Lmosek_4fusion_4LinearDomain_2(_t__0):
    return mosek_fusion_Domain._symmetric_Lmosek_4fusion_4LinearDomain_2(_0)
  @staticmethod
  def _symmetric_Lmosek_4fusion_4LinearDomain_2(_0):
   return (_0.symmetric())
  @staticmethod
  def _match_sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(_0) and __arg_match__3_5I__(_1))
  @staticmethod
  def _match_alt_sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_0) and __arg_alt_match__3_5I__(_1))
  @staticmethod
  def _sparse_alt_Lmosek_4fusion_4RangeDomain_2_3_5I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(_0,_1)
   return _1_res
  @staticmethod
  def _sparse_Lmosek_4fusion_4RangeDomain_2_3_5I(_0,_1):
   return (_0.sparse(_1))
  @staticmethod
  def _match_sparse_Lmosek_4fusion_4RangeDomain_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_sparse_Lmosek_4fusion_4RangeDomain_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _sparse_alt_Lmosek_4fusion_4RangeDomain_2_3I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._sparse_Lmosek_4fusion_4RangeDomain_2_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse_Lmosek_4fusion_4RangeDomain_2_3I(_0,_1):
   return (_0.sparse(_1))
  @staticmethod
  def _match_sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(_0) and __arg_match__3_5I__(_1))
  @staticmethod
  def _match_alt_sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_0) and __arg_alt_match__3_5I__(_1))
  @staticmethod
  def _sparse_alt_Lmosek_4fusion_4LinearDomain_2_3_5I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(_0,_1)
   return _1_res
  @staticmethod
  def _sparse_Lmosek_4fusion_4LinearDomain_2_3_5I(_0,_1):
   return (_0.sparse(_1))
  @staticmethod
  def _match_sparse_Lmosek_4fusion_4LinearDomain_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_sparse_Lmosek_4fusion_4LinearDomain_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _sparse_alt_Lmosek_4fusion_4LinearDomain_2_3I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._sparse_Lmosek_4fusion_4LinearDomain_2_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse_Lmosek_4fusion_4LinearDomain_2_3I(_0,_1):
   return (_0.sparse(_1))
  @staticmethod
  def _match_integral_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  @staticmethod
  def _match_alt_integral_Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(_0))
  @staticmethod
  def _integral_alt_Lmosek_4fusion_4RangeDomain_2(_t__0):
    return mosek_fusion_Domain._integral_Lmosek_4fusion_4RangeDomain_2(_0)
  @staticmethod
  def _integral_Lmosek_4fusion_4RangeDomain_2(_0):
   return (_0.integral())
  @staticmethod
  def _match_integral_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  @staticmethod
  def _match_alt_integral_Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(_0))
  @staticmethod
  def _integral_alt_Lmosek_4fusion_4LinearDomain_2(_t__0):
    return mosek_fusion_Domain._integral_Lmosek_4fusion_4LinearDomain_2(_0)
  @staticmethod
  def _integral_Lmosek_4fusion_4LinearDomain_2(_0):
   return (_0.integral())
  @staticmethod
  def _match_integral_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4ConeDomain_2__(_0))
  @staticmethod
  def _match_alt_integral_Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_0))
  @staticmethod
  def _integral_alt_Lmosek_4fusion_4ConeDomain_2(_t__0):
    return mosek_fusion_Domain._integral_Lmosek_4fusion_4ConeDomain_2(_0)
  @staticmethod
  def _integral_Lmosek_4fusion_4ConeDomain_2(_0):
   return (_0._integral_())
  @staticmethod
  def _match_axis_Lmosek_4fusion_4ConeDomain_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4ConeDomain_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_axis_Lmosek_4fusion_4ConeDomain_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _axis_alt_Lmosek_4fusion_4ConeDomain_2I(_t__0,_t__1):
    return mosek_fusion_Domain._axis_Lmosek_4fusion_4ConeDomain_2I(_0,numpy.int32(__1))
  @staticmethod
  def _axis_Lmosek_4fusion_4ConeDomain_2I(_0,_1):
   return (_0._axis_I(_1))
  @staticmethod
  def _match_inDPowerCone__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_inDPowerCone__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _inDPowerCone_alt__3D_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inDPowerCone__3D_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDPowerCone__3D_3I(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,_0,numpy.array([_1[_2] for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDPowerCone__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inDPowerCone__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inDPowerCone_alt__3DI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Domain._inDPowerCone__3DI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDPowerCone__3DI(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,_0,numpy.array([_1,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDPowerCone__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_inDPowerCone__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _inDPowerCone_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._inDPowerCone__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDPowerCone__3D(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,_0,None))
  @staticmethod
  def _match_inDPowerCone_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_inDPowerCone_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _inDPowerCone_alt_D_3I(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inDPowerCone_D_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDPowerCone_D_3I(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),numpy.array([_1[_2] for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDPowerCone_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inDPowerCone_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inDPowerCone_alt_DI(_t__0,_t__1):
    return mosek_fusion_Domain._inDPowerCone_DI(numpy.float64(__0),numpy.int32(__1))
  @staticmethod
  def _inDPowerCone_DI(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),numpy.array([_1,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDPowerCone_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_inDPowerCone_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _inDPowerCone_alt_D(_t__0):
    return mosek_fusion_Domain._inDPowerCone_D(numpy.float64(__0))
  @staticmethod
  def _inDPowerCone_D(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InDPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_inPPowerCone__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_inPPowerCone__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _inPPowerCone_alt__3D_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inPPowerCone__3D_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPPowerCone__3D_3I(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,_0,numpy.array([_1[_2] for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPPowerCone__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inPPowerCone__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inPPowerCone_alt__3DI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Domain._inPPowerCone__3DI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPPowerCone__3DI(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,_0,numpy.array([_1,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPPowerCone__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_inPPowerCone__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _inPPowerCone_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._inPPowerCone__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPPowerCone__3D(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,_0,None))
  @staticmethod
  def _match_inPPowerCone_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_inPPowerCone_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _inPPowerCone_alt_D_3I(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inPPowerCone_D_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPPowerCone_D_3I(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),numpy.array([_1[_2] for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPPowerCone_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inPPowerCone_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inPPowerCone_alt_DI(_t__0,_t__1):
    return mosek_fusion_Domain._inPPowerCone_DI(numpy.float64(__0),numpy.int32(__1))
  @staticmethod
  def _inPPowerCone_DI(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),numpy.array([_1,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPPowerCone_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_inPPowerCone_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _inPPowerCone_alt_D(_t__0):
    return mosek_fusion_Domain._inPPowerCone_D(numpy.float64(__0))
  @staticmethod
  def _inPPowerCone_D(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3D_3I(mosek.fusion.QConeKey.InPPowCone,numpy.array([_0,(1.0 - _0)], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_inDExpCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inDExpCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inDExpCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inDExpCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDExpCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDExpCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDExpCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inDExpCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inDExpCone_alt_I(_t__0):
    return mosek_fusion_Domain._inDExpCone_I(numpy.int32(__0))
  @staticmethod
  def _inDExpCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDExpCone,numpy.array([_0,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDExpCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inDExpCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inDExpCone_alt_():
    return mosek_fusion_Domain._inDExpCone_()
  @staticmethod
  def _inDExpCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDExpCone,None))
  @staticmethod
  def _match_inPExpCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inPExpCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inPExpCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inPExpCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPExpCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPExpCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPExpCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inPExpCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inPExpCone_alt_I(_t__0):
    return mosek_fusion_Domain._inPExpCone_I(numpy.int32(__0))
  @staticmethod
  def _inPExpCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPExpCone,numpy.array([_0,3], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPExpCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inPExpCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inPExpCone_alt_():
    return mosek_fusion_Domain._inPExpCone_()
  @staticmethod
  def _inPExpCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPExpCone,None))
  @staticmethod
  def _match_inDGeoMeanCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inDGeoMeanCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inDGeoMeanCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inDGeoMeanCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inDGeoMeanCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDGeoMeanCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDGeoMeanCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inDGeoMeanCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inDGeoMeanCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inDGeoMeanCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inDGeoMeanCone_II(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDGeoMeanCone,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDGeoMeanCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inDGeoMeanCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inDGeoMeanCone_alt_I(_t__0):
    return mosek_fusion_Domain._inDGeoMeanCone_I(numpy.int32(__0))
  @staticmethod
  def _inDGeoMeanCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDGeoMeanCone,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inDGeoMeanCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inDGeoMeanCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inDGeoMeanCone_alt_():
    return mosek_fusion_Domain._inDGeoMeanCone_()
  @staticmethod
  def _inDGeoMeanCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InDGeoMeanCone,None))
  @staticmethod
  def _match_inPGeoMeanCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inPGeoMeanCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inPGeoMeanCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inPGeoMeanCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inPGeoMeanCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPGeoMeanCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPGeoMeanCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inPGeoMeanCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inPGeoMeanCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inPGeoMeanCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inPGeoMeanCone_II(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPGeoMeanCone,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPGeoMeanCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inPGeoMeanCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inPGeoMeanCone_alt_I(_t__0):
    return mosek_fusion_Domain._inPGeoMeanCone_I(numpy.int32(__0))
  @staticmethod
  def _inPGeoMeanCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPGeoMeanCone,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPGeoMeanCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inPGeoMeanCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inPGeoMeanCone_alt_():
    return mosek_fusion_Domain._inPGeoMeanCone_()
  @staticmethod
  def _inPGeoMeanCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InPGeoMeanCone,None))
  @staticmethod
  def _match_inRotatedQCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inRotatedQCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inRotatedQCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inRotatedQCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRotatedQCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InRotatedQCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRotatedQCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inRotatedQCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inRotatedQCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inRotatedQCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inRotatedQCone_II(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InRotatedQCone,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRotatedQCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inRotatedQCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inRotatedQCone_alt_I(_t__0):
    return mosek_fusion_Domain._inRotatedQCone_I(numpy.int32(__0))
  @staticmethod
  def _inRotatedQCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InRotatedQCone,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRotatedQCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inRotatedQCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inRotatedQCone_alt_():
    return mosek_fusion_Domain._inRotatedQCone_()
  @staticmethod
  def _inRotatedQCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InRotatedQCone,None))
  @staticmethod
  def _match_inQCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inQCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inQCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inQCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inQCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InQCone,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inQCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inQCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inQCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inQCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inQCone_II(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InQCone,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inQCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inQCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inQCone_alt_I(_t__0):
    return mosek_fusion_Domain._inQCone_I(numpy.int32(__0))
  @staticmethod
  def _inQCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InQCone,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inQCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inQCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inQCone_alt_():
    return mosek_fusion_Domain._inQCone_()
  @staticmethod
  def _inQCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InQCone,None))
  @staticmethod
  def _match_inSVecPSDCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_inSVecPSDCone__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _inSVecPSDCone_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inSVecPSDCone__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inSVecPSDCone__3I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InSVecPSDCone,_0))
  @staticmethod
  def _match_inSVecPSDCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inSVecPSDCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inSVecPSDCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inSVecPSDCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inSVecPSDCone_II(_0,_1):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InSVecPSDCone,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inSVecPSDCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inSVecPSDCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inSVecPSDCone_alt_I(_t__0):
    return mosek_fusion_Domain._inSVecPSDCone_I(numpy.int32(__0))
  @staticmethod
  def _inSVecPSDCone_I(_0):
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InSVecPSDCone,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inSVecPSDCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inSVecPSDCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inSVecPSDCone_alt_():
    return mosek_fusion_Domain._inSVecPSDCone_()
  @staticmethod
  def _inSVecPSDCone_():
   return (mosek_fusion_ConeDomain._ctor_Emosek_4fusion_4QConeKey_2_3I(mosek.fusion.QConeKey.InSVecPSDCone,None))
  @staticmethod
  def _match_isTrilPSD_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_isTrilPSD_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _isTrilPSD_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._isTrilPSD_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _isTrilPSD_II(_0,_1):
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2_3III(mosek.fusion.PSDKey.IsTrilPSD,numpy.array([_1,_0,_0], dtype=numpy.dtype(numpy.int32)),1,2))
  @staticmethod
  def _match_isTrilPSD_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_isTrilPSD_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _isTrilPSD_alt_I(_t__0):
    return mosek_fusion_Domain._isTrilPSD_I(numpy.int32(__0))
  @staticmethod
  def _isTrilPSD_I(_0):
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2_3III(mosek.fusion.PSDKey.IsTrilPSD,numpy.array([_0,_0], dtype=numpy.dtype(numpy.int32)),0,1))
  @staticmethod
  def _match_isTrilPSD_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isTrilPSD_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _isTrilPSD_alt_():
    return mosek_fusion_Domain._isTrilPSD_()
  @staticmethod
  def _isTrilPSD_():
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2(mosek.fusion.PSDKey.IsTrilPSD))
  @staticmethod
  def _match_inPSDCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_inPSDCone_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _inPSDCone_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._inPSDCone_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _inPSDCone_II(_0,_1):
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2_3I(mosek.fusion.PSDKey.IsSymPSD,numpy.array([_1,_0,_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPSDCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_inPSDCone_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _inPSDCone_alt_I(_t__0):
    return mosek_fusion_Domain._inPSDCone_I(numpy.int32(__0))
  @staticmethod
  def _inPSDCone_I(_0):
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2_3I(mosek.fusion.PSDKey.IsSymPSD,numpy.array([_0,_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inPSDCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_inPSDCone_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _inPSDCone_alt_():
    return mosek_fusion_Domain._inPSDCone_()
  @staticmethod
  def _inPSDCone_():
   return (mosek_fusion_PSDDomain._ctor_Emosek_4fusion_4PSDKey_2(mosek.fusion.PSDKey.IsSymPSD))
  @staticmethod
  def _match_binary_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_binary_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _binary_alt_():
    return mosek_fusion_Domain._binary_()
  @staticmethod
  def _binary_():
   return (mosek.fusion.Domain._inRange_DD(0.0,1.0).integral())
  @staticmethod
  def _match_binary__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_binary__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _binary_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._binary__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _binary__3I(_0):
   return (mosek.fusion.Domain._inRange_DD_3I(0.0,1.0,_0).integral())
  @staticmethod
  def _match_binary_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_binary_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _binary_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._binary_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _binary_II(_0,_1):
   return (mosek.fusion.Domain._inRange_DD_3I(0.0,1.0,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))).integral())
  @staticmethod
  def _match_binary_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_binary_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _binary_alt_I(_t__0):
    return mosek_fusion_Domain._binary_I(numpy.int32(__0))
  @staticmethod
  def _binary_I(_0):
   return (mosek.fusion.Domain._inRange_DD_3I(0.0,1.0,numpy.array([_0], dtype=numpy.dtype(numpy.int32))).integral())
  @staticmethod
  def _match_inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _inRange_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Domain._inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _inRange_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Domain.__mkRangedDomain_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Matrix_2(_0,_1))
  @staticmethod
  def _match_inRange__3_5D_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_inRange__3_5D_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _inRange_alt__3_5D_3_5D(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._inRange__3_5D_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _inRange__3_5D_3_5D(_0,_1):
   return (mosek.fusion.Domain.__mkRangedDomain__3_5D_3_5D(_0,_1))
  @staticmethod
  def _match_inRange__3D_3D_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3D__(_0) and __arg_match__3D__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_inRange__3D_3D_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _inRange_alt__3D_3D_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inRange__3D_3D_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange__3D_3D_3I(_0,_1,_2):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,_0,_1,_2))
  @staticmethod
  def _match_inRange__3DD_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3D__(_0) and __arg_match_D__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_inRange__3DD_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _inRange_alt__3DD_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.float64(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inRange__3DD_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange__3DD_3I(_0,_1,_2):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,_0,numpy.array([_1 for _3 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.float64)),_2))
  @staticmethod
  def _match_inRange_D_3D_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match__3D__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_inRange_D_3D_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _inRange_alt_D_3D_3I(_t__0,_t__1,_t__2):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inRange_D_3D_3I(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange_D_3D_3I(_0,_1,_2):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,numpy.array([_0 for _3 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.float64)),_1,_2))
  @staticmethod
  def _match_inRange_DD_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_D__(_1) and __arg_match__3I__(_2))
  @staticmethod
  def _match_alt_inRange_DD_3I(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match__3I__(_2))
  @staticmethod
  def _inRange_alt_DD_3I(_t__0,_t__1,_t__2):
   _0=numpy.float64(_t__0)
   _1=numpy.float64(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._inRange_DD_3I(_0,_1,_2)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange_DD_3I(_0,_1,_2):
   return (mosek_fusion_RangeDomain._ctor_ZDD_3I(False,_0,_1,_2))
  @staticmethod
  def _match_inRange__3D_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_inRange__3D_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _inRange_alt__3D_3D(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._inRange__3D_3D(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange__3D_3D(_0,_1):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,_0,_1,numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRange__3DD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_inRange__3DD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _inRange_alt__3DD(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.float64(_t__1)
   _1_res = mosek_fusion_Domain._inRange__3DD(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange__3DD(_0,_1):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,_0,numpy.array([_1 for _2 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.float64)),numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRange_D_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_inRange_D_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _inRange_alt_D_3D(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._inRange_D_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inRange_D_3D(_0,_1):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(False,numpy.array([_0 for _2 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.float64)),_1,numpy.array([int((_1).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_inRange_DD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_inRange_DD(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _inRange_alt_DD(_t__0,_t__1):
    return mosek_fusion_Domain._inRange_DD(numpy.float64(__0),numpy.float64(__1))
  @staticmethod
  def _inRange_DD(_0,_1):
   return (mosek_fusion_RangeDomain._ctor_Z_3D_3D_3I(True,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),numpy.array([_1], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_greaterThan_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_greaterThan_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _greaterThan_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Domain._greaterThan_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _greaterThan_Lmosek_4fusion_4Matrix_2(_0):
   return (mosek.fusion.Domain.__mkLinearDomain_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(mosek.fusion.RelationKey.GreaterThan,_0))
  @staticmethod
  def _match_greaterThan__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_greaterThan__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _greaterThan_alt__3D_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._greaterThan__3D_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _greaterThan__3D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),_1))
  @staticmethod
  def _match_greaterThan__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_greaterThan__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _greaterThan_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._greaterThan__3_5D(_0)
   return _1_res
  @staticmethod
  def _greaterThan__3_5D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,numpy.array([_0[_1,_2] for _1 in range(0,int((_0).shape[0])) for _2 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64)),numpy.array([int((_0).shape[0]),int((_0).shape[1])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_greaterThan__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_greaterThan__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _greaterThan_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._greaterThan__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _greaterThan__3D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_greaterThan_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_greaterThan_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _greaterThan_alt_D_3I(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._greaterThan_D_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _greaterThan_D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,numpy.array([_0 for _2 in range(0,mosek.fusion.Domain.__prod__3I(_1))], dtype=numpy.dtype(numpy.float64)),_1))
  @staticmethod
  def _match_greaterThan_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_greaterThan_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _greaterThan_alt_DII(_t__0,_t__1,_t__2):
    return mosek_fusion_Domain._greaterThan_DII(numpy.float64(__0),numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _greaterThan_DII(_0,_1,_2):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,numpy.array([_0 for _3 in range(0,(_2 * _1))], dtype=numpy.dtype(numpy.float64)),numpy.array([_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_greaterThan_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_greaterThan_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _greaterThan_alt_DI(_t__0,_t__1):
    return mosek_fusion_Domain._greaterThan_DI(numpy.float64(__0),numpy.int32(__1))
  @staticmethod
  def _greaterThan_DI(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,False,numpy.array([_0 for _2 in range(0,_1)], dtype=numpy.dtype(numpy.float64)),numpy.array([_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_greaterThan_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_greaterThan_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _greaterThan_alt_D(_t__0):
    return mosek_fusion_Domain._greaterThan_D(numpy.float64(__0))
  @staticmethod
  def _greaterThan_D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.GreaterThan,True,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_lessThan_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_lessThan_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _lessThan_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Domain._lessThan_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _lessThan_Lmosek_4fusion_4Matrix_2(_0):
   return (mosek.fusion.Domain.__mkLinearDomain_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(mosek.fusion.RelationKey.LessThan,_0))
  @staticmethod
  def _match_lessThan__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_lessThan__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _lessThan_alt__3D_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._lessThan__3D_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _lessThan__3D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),_1))
  @staticmethod
  def _match_lessThan__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_lessThan__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _lessThan_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._lessThan__3_5D(_0)
   return _1_res
  @staticmethod
  def _lessThan__3_5D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,numpy.array([_0[_1,_2] for _1 in range(0,int((_0).shape[0])) for _2 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64)),numpy.array([int((_0).shape[0]),int((_0).shape[1])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_lessThan__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_lessThan__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _lessThan_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._lessThan__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _lessThan__3D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_lessThan_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_lessThan_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _lessThan_alt_D_3I(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._lessThan_D_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _lessThan_D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),_1))
  @staticmethod
  def _match_lessThan_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_lessThan_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _lessThan_alt_DII(_t__0,_t__1,_t__2):
    return mosek_fusion_Domain._lessThan_DII(numpy.float64(__0),numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _lessThan_DII(_0,_1,_2):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),numpy.array([_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_lessThan_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_lessThan_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _lessThan_alt_DI(_t__0,_t__1):
    return mosek_fusion_Domain._lessThan_DI(numpy.float64(__0),numpy.int32(__1))
  @staticmethod
  def _lessThan_DI(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),numpy.array([_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_lessThan_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_lessThan_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _lessThan_alt_D(_t__0):
    return mosek_fusion_Domain._lessThan_D(numpy.float64(__0))
  @staticmethod
  def _lessThan_D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.LessThan,True,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_equalsTo_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_equalsTo_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _equalsTo_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Domain._equalsTo_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _equalsTo_Lmosek_4fusion_4Matrix_2(_0):
   return (mosek.fusion.Domain.__mkLinearDomain_Emosek_4fusion_4RelationKey_2Lmosek_4fusion_4Matrix_2(mosek.fusion.RelationKey.EqualsTo,_0))
  @staticmethod
  def _match_equalsTo__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_equalsTo__3D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _equalsTo_alt__3D_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._equalsTo__3D_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _equalsTo__3D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),_1))
  @staticmethod
  def _match_equalsTo__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_equalsTo__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _equalsTo_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._equalsTo__3_5D(_0)
   return _1_res
  @staticmethod
  def _equalsTo__3_5D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,numpy.array([_0[_1,_2] for _1 in range(0,int((_0).shape[0])) for _2 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64)),numpy.array([int((_0).shape[0]),int((_0).shape[1])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_equalsTo__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_equalsTo__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _equalsTo_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Domain._equalsTo__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _equalsTo__3D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,mosek.fusion.Utils.Tools._arraycopy__3D(_0),numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_equalsTo_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_equalsTo_D_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _equalsTo_alt_D_3I(_t__0,_t__1):
   _0=numpy.float64(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._equalsTo_D_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _equalsTo_D_3I(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),_1))
  @staticmethod
  def _match_equalsTo_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_equalsTo_DII(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _equalsTo_alt_DII(_t__0,_t__1,_t__2):
    return mosek_fusion_Domain._equalsTo_DII(numpy.float64(__0),numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _equalsTo_DII(_0,_1,_2):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),numpy.array([_1,_2], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_equalsTo_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_equalsTo_DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _equalsTo_alt_DI(_t__0,_t__1):
    return mosek_fusion_Domain._equalsTo_DI(numpy.float64(__0),numpy.int32(__1))
  @staticmethod
  def _equalsTo_DI(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,False,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),numpy.array([_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_equalsTo_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_equalsTo_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _equalsTo_alt_D(_t__0):
    return mosek_fusion_Domain._equalsTo_D(numpy.float64(__0))
  @staticmethod
  def _equalsTo_D(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.EqualsTo,True,numpy.array([_0], dtype=numpy.dtype(numpy.float64)),None))
  @staticmethod
  def _match_unbounded__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_unbounded__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _unbounded_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Domain._unbounded__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _unbounded__3I(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.IsFree,False,None,numpy.array([_0[_1] for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_unbounded_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_unbounded_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _unbounded_alt_II(_t__0,_t__1):
    return mosek_fusion_Domain._unbounded_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _unbounded_II(_0,_1):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.IsFree,False,None,numpy.array([_0,_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_unbounded_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_unbounded_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _unbounded_alt_I(_t__0):
    return mosek_fusion_Domain._unbounded_I(numpy.int32(__0))
  @staticmethod
  def _unbounded_I(_0):
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.IsFree,False,None,numpy.array([_0], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_unbounded_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_unbounded_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _unbounded_alt_():
    return mosek_fusion_Domain._unbounded_()
  @staticmethod
  def _unbounded_():
   return (mosek_fusion_LinearDomain._ctor_Emosek_4fusion_4RelationKey_2Z_3D_3I(mosek.fusion.RelationKey.IsFree,True,None,None))
 return Domain
mosek_fusion_Domain=__mk_mosek_fusion_Domain()
del __mk_mosek_fusion_Domain
def __mk_mosek_fusion_ExprCode():
 class ExprCode(object):
  @staticmethod
  def emit_paramref(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1paramref__3III(*args): 
      return mosek_fusion_ExprCode._emit_1paramref__3III(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1paramref__3III(*args): 
      return mosek_fusion_ExprCode._emit_1paramref_alt__3III(*args)
    else:
      raise ValueError('Invalid argument list emit_paramref('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_paramref(array(int32,ndim=1),int32,int32)')
  @staticmethod
  def emit_add(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1add__3II(*args): 
      return mosek_fusion_ExprCode._emit_1add__3II(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1add__3II(*args): 
      return mosek_fusion_ExprCode._emit_1add_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list emit_add('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_add(array(int32,ndim=1),int32)')
  @staticmethod
  def emit_nop(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1nop__3II(*args): 
      return mosek_fusion_ExprCode._emit_1nop__3II(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1nop__3II(*args): 
      return mosek_fusion_ExprCode._emit_1nop_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list emit_nop('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_nop(array(int32,ndim=1),int32)')
  @staticmethod
  def eval_add_list(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args): 
      return mosek_fusion_ExprCode._eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprCode._match_alt_eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args): 
      return mosek_fusion_ExprCode._eval_1add_1list_alt__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprCode._match_eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args): 
      return mosek_fusion_ExprCode._eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprCode._match_alt_eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args): 
      return mosek_fusion_ExprCode._eval_1add_1list_alt__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval_add_list('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.eval_add_list(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),array(double,ndim=1),array(double,ndim=1),mosek.fusion.WorkStack)\n\tmosek.fusion.ExprCode.eval_add_list(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),int32,array(double,ndim=1),array(double,ndim=1),mosek.fusion.WorkStack)')
  @staticmethod
  def emit_sum(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1sum__3III(*args): 
      return mosek_fusion_ExprCode._emit_1sum__3III(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1sum__3III(*args): 
      return mosek_fusion_ExprCode._emit_1sum_alt__3III(*args)
    else:
      raise ValueError('Invalid argument list emit_sum('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_sum(array(int32,ndim=1),int32,int32)')
  @staticmethod
  def inplace_relocate(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_inplace_1relocate__3IIII(*args): 
      return mosek_fusion_ExprCode._inplace_1relocate__3IIII(*args)
    elif mosek_fusion_ExprCode._match_alt_inplace_1relocate__3IIII(*args): 
      return mosek_fusion_ExprCode._inplace_1relocate_alt__3IIII(*args)
    else:
      raise ValueError('Invalid argument list inplace_relocate('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.inplace_relocate(array(int32,ndim=1),int32,int32,int32)')
  @staticmethod
  def emit_constref(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1constref__3III(*args): 
      return mosek_fusion_ExprCode._emit_1constref__3III(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1constref__3III(*args): 
      return mosek_fusion_ExprCode._emit_1constref_alt__3III(*args)
    else:
      raise ValueError('Invalid argument list emit_constref('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_constref(array(int32,ndim=1),int32,int32)')
  @staticmethod
  def op2str(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_op2str_I(*args): 
      return mosek_fusion_ExprCode._op2str_I(*args)
    elif mosek_fusion_ExprCode._match_alt_op2str_I(*args): 
      return mosek_fusion_ExprCode._op2str_alt_I(*args)
    else:
      raise ValueError('Invalid argument list op2str('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.op2str(int32)')
  @staticmethod
  def emit_mul(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1mul__3II(*args): 
      return mosek_fusion_ExprCode._emit_1mul__3II(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1mul__3II(*args): 
      return mosek_fusion_ExprCode._emit_1mul_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list emit_mul('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_mul(array(int32,ndim=1),int32)')
  @staticmethod
  def emit_inv(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1inv__3II(*args): 
      return mosek_fusion_ExprCode._emit_1inv__3II(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1inv__3II(*args): 
      return mosek_fusion_ExprCode._emit_1inv_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list emit_inv('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_inv(array(int32,ndim=1),int32)')
  @staticmethod
  def emit_neg(*args):
    if False: pass
    elif mosek_fusion_ExprCode._match_emit_1neg__3II(*args): 
      return mosek_fusion_ExprCode._emit_1neg__3II(*args)
    elif mosek_fusion_ExprCode._match_alt_emit_1neg__3II(*args): 
      return mosek_fusion_ExprCode._emit_1neg_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list emit_neg('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCode.emit_neg(array(int32,ndim=1),int32)')
  def __repr__(self): return 'mosek.fusion.ExprCode'
  @staticmethod
  def _match_inplace_1relocate__3IIII(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_inplace_1relocate__3IIII(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3))
  @staticmethod
  def _inplace_1relocate_alt__3IIII(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.int32(_t__3)
   _1_res = mosek_fusion_ExprCode._inplace_1relocate__3IIII(_0,_1,_2,_3)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _inplace_1relocate__3IIII(_0,_1,_2,_3):
   for _4 in range(0,_2,2):
    if (_0[_4]==2):
     _0[(_4 + 1)] += _3
  @staticmethod
  def _match_op2str_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_op2str_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _op2str_alt_I(_t__0):
    return mosek_fusion_ExprCode._op2str_I(numpy.int32(__0))
  @staticmethod
  def _op2str_I(_0):
   if (_0==0):
    return ("NOP")
   elif (_0==1): # bld/docker-win/final/default/src/fusion/Parameter.monty:3200:16-34
    return ("PARAMREF")
   elif (_0==2): # bld/docker-win/final/default/src/fusion/Parameter.monty:3201:16-37
    return ("CONST")
   elif (_0==3): # bld/docker-win/final/default/src/fusion/Parameter.monty:3202:16-32
    return ("ADD")
   elif (_0==4): # bld/docker-win/final/default/src/fusion/Parameter.monty:3203:16-32
    return ("NEG")
   elif (_0==5): # bld/docker-win/final/default/src/fusion/Parameter.monty:3204:16-32
    return ("MUL")
   elif (_0==6): # bld/docker-win/final/default/src/fusion/Parameter.monty:3205:16-32
    return ("INV")
   elif (_0==8): # bld/docker-win/final/default/src/fusion/Parameter.monty:3206:16-32
    return ("SUM")
   else:
    return (mosek.fusion.Utils.StringBuffer()._a_S("?(")._a_I(_0)._a_S(")")._toString_())
  @staticmethod
  def _match_eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match_I__(_3) and __arg_match__3D__(_4) and __arg_match__3D__(_5) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_6))
  @staticmethod
  def _match_alt_eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match__3D__(_4) and __arg_alt_match__3D__(_5) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_6))
  @staticmethod
  def _eval_1add_1list_alt__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.int32(_t__3)
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.float64))
   _6=_t__6
   _1_res = mosek_fusion_ExprCode._eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(_0,_1,_2,_3,_4,_5,_6)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(_0,_1,_2,_3,_4,_5,_6):
   _7=_6.allocf64(int((_0).shape[0]))
   _8=0
   _9=(_6.f64)
   for _10 in range(0,(int((_1).shape[0]) - 1)):
    for _11 in range(_1[_10],_1[(_10 + 1)],2):
     if (_0[_11]==0):
      pass
     elif (_0[_11]==1): # bld/docker-win/final/default/src/fusion/Parameter.monty:3159:20-43
      _9[(_7 + _8)] = _5[_0[(_11 + 1)]]
      _8 += 1
     elif (_0[_11]==2): # bld/docker-win/final/default/src/fusion/Parameter.monty:3164:20-46
      _9[(_7 + _8)] = _2[(_11 // 2)]
      _8 += 1
     elif (_0[_11]==3): # bld/docker-win/final/default/src/fusion/Parameter.monty:3168:20-41
      _9[((_7 + _8) - 2)] = (_9[((_7 + _8) - 1)] + _9[((_7 + _8) - 2)])
      _8 -= 1
     elif (_0[_11]==4): # bld/docker-win/final/default/src/fusion/Parameter.monty:3172:20-41
      _9[((_7 + _8) - 1)] = (- _9[((_7 + _8) - 1)])
     elif (_0[_11]==5): # bld/docker-win/final/default/src/fusion/Parameter.monty:3175:20-41
      _9[((_7 + _8) - 2)] = (_9[((_7 + _8) - 1)] * _9[((_7 + _8) - 2)])
      _8 -= 1
     elif (_0[_11]==6): # bld/docker-win/final/default/src/fusion/Parameter.monty:3179:20-41
      _9[((_7 + _8) - 1)] = (1.0 / _9[((_7 + _8) - 1)])
     elif (_0[_11]==8): # bld/docker-win/final/default/src/fusion/Parameter.monty:3182:20-41
      _12=0.0
      for _13 in range(0,_0[(_11 + 1)]):
       _8 -= 1
       _12 += _9[(_7 + _8)]
      _9[(_7 + _8)] = _12
      _8 += 1
    _4[(_3 + _10)] += _9[((_7 + _8) - 1)]
   _6.clear()
  @staticmethod
  def _match_eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2) and __arg_match__3D__(_3) and __arg_match__3D__(_4) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_5))
  @staticmethod
  def _match_alt_eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 6: return False
    _0,_1,_2,_3,_4,_5, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2) and __arg_alt_match__3D__(_3) and __arg_alt_match__3D__(_4) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_5))
  @staticmethod
  def _eval_1add_1list_alt__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.float64))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprCode._eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _eval_1add_1list__3I_3I_3D_3D_3DLmosek_4fusion_4WorkStack_2(_0,_1,_2,_3,_4,_5):
   mosek.fusion.ExprCode._eval_1add_1list__3I_3I_3DI_3D_3DLmosek_4fusion_4WorkStack_2(_0,_1,_2,0,_3,_4,_5)
  @staticmethod
  def _match_emit_1sum__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_emit_1sum__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _emit_1sum_alt__3III(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _1_res = mosek_fusion_ExprCode._emit_1sum__3III(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1sum__3III(_0,_1,_2):
   _0[_1] = 8
   _0[(_1 + 1)] = _2
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1inv__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_emit_1inv__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _emit_1inv_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprCode._emit_1inv__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1inv__3II(_0,_1):
   _0[_1] = 6
   _0[(_1 + 1)] = 0
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1mul__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_emit_1mul__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _emit_1mul_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprCode._emit_1mul__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1mul__3II(_0,_1):
   _0[_1] = 5
   _0[(_1 + 1)] = 0
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1neg__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_emit_1neg__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _emit_1neg_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprCode._emit_1neg__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1neg__3II(_0,_1):
   _0[_1] = 4
   _0[(_1 + 1)] = 0
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1add__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_emit_1add__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _emit_1add_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprCode._emit_1add__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1add__3II(_0,_1):
   _0[_1] = 3
   _0[(_1 + 1)] = 0
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1constref__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_emit_1constref__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _emit_1constref_alt__3III(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _1_res = mosek_fusion_ExprCode._emit_1constref__3III(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1constref__3III(_0,_1,_2):
   _0[_1] = 2
   _0[(_1 + 1)] = _2
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1paramref__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_emit_1paramref__3III(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _emit_1paramref_alt__3III(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _1_res = mosek_fusion_ExprCode._emit_1paramref__3III(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1paramref__3III(_0,_1,_2):
   _0[_1] = 1
   _0[(_1 + 1)] = _2
   return numpy.int32(2)
  @staticmethod
  def _match_emit_1nop__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_emit_1nop__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _emit_1nop_alt__3II(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprCode._emit_1nop__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _emit_1nop__3II(_0,_1):
   _0[_1] = 0
   _0[(_1 + 1)] = 0
   return numpy.int32(2)
 return ExprCode
mosek_fusion_ExprCode=__mk_mosek_fusion_ExprCode()
del __mk_mosek_fusion_ExprCode
def __mk_mosek_fusion_Param():
 class Param(object):
  @staticmethod
  def hstack(*args):
    if False: pass
    elif mosek_fusion_Param._match_hstack__3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack__3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_hstack__3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack_alt__3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._hstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list hstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Param.hstack(array(mosek.fusion.Parameter,ndim=1))\n\tmosek.fusion.Param.hstack(mosek.fusion.Parameter,mosek.fusion.Parameter)\n\tmosek.fusion.Param.hstack(mosek.fusion.Parameter,mosek.fusion.Parameter,mosek.fusion.Parameter)')
  @staticmethod
  def vstack(*args):
    if False: pass
    elif mosek_fusion_Param._match_vstack__3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack__3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_vstack__3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack_alt__3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._vstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list vstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Param.vstack(array(mosek.fusion.Parameter,ndim=1))\n\tmosek.fusion.Param.vstack(mosek.fusion.Parameter,mosek.fusion.Parameter)\n\tmosek.fusion.Param.vstack(mosek.fusion.Parameter,mosek.fusion.Parameter,mosek.fusion.Parameter)')
  @staticmethod
  def repeat(*args):
    if False: pass
    elif mosek_fusion_Param._match_repeat_Lmosek_4fusion_4Parameter_2II(*args): 
      return mosek_fusion_Param._repeat_Lmosek_4fusion_4Parameter_2II(*args)
    elif mosek_fusion_Param._match_alt_repeat_Lmosek_4fusion_4Parameter_2II(*args): 
      return mosek_fusion_Param._repeat_alt_Lmosek_4fusion_4Parameter_2II(*args)
    else:
      raise ValueError('Invalid argument list repeat('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Param.repeat(mosek.fusion.Parameter,int32,int32)')
  @staticmethod
  def stack(*args):
    if False: pass
    elif mosek_fusion_Param._match_stack__3_3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack__3_3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_stack__3_3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_alt__3_3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_stack_I_3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_I_3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_stack_I_3Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_alt_I_3Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_alt_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Param._match_alt_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Param._stack_alt_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list stack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Param.stack(array(array(mosek.fusion.Parameter,ndim=1),ndim=1))\n\tmosek.fusion.Param.stack(int32,array(mosek.fusion.Parameter,ndim=1))\n\tmosek.fusion.Param.stack(int32,mosek.fusion.Parameter,mosek.fusion.Parameter)\n\tmosek.fusion.Param.stack(int32,mosek.fusion.Parameter,mosek.fusion.Parameter,mosek.fusion.Parameter)')
  def __repr__(self): return 'mosek.fusion.Param'
  @staticmethod
  def _match_repeat_Lmosek_4fusion_4Parameter_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_repeat_Lmosek_4fusion_4Parameter_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _repeat_alt_Lmosek_4fusion_4Parameter_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Param._repeat_Lmosek_4fusion_4Parameter_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _repeat_Lmosek_4fusion_4Parameter_2II(_0,_1,_2):
   return (mosek.fusion.Param._stack_I_3Lmosek_4fusion_4Parameter_2(_2,numpy.array([_0 for _3 in range(0,_1)], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_match_Lmosek_4fusion_4Parameter_2__(_2) and __arg_match_Lmosek_4fusion_4Parameter_2__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_2) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Param._stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(numpy.int32(__0),_1,_2,_3)
  @staticmethod
  def _stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2,_3):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_1,_2,_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Param._stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(numpy.int32(__0),_1,_2)
  @staticmethod
  def _stack_ILmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_1,_2], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_I_3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_stack_I_3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _stack_alt_I_3Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Param._stack_I_3Lmosek_4fusion_4Parameter_2(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack_I_3Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(_1,_0))
  @staticmethod
  def _match_stack__3_3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _match_alt_stack__3_3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _stack_alt__3_3Lmosek_4fusion_4Parameter_2(_t__0):
   _0=_monty.makeJaggedArray(_t__0,(1,1),numpy.dtype(object))
   _1_res = mosek_fusion_Param._stack__3_3Lmosek_4fusion_4Parameter_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack__3_3Lmosek_4fusion_4Parameter_2(_0):
   return (mosek.fusion.Param._vstack__3Lmosek_4fusion_4Parameter_2(numpy.array([mosek.fusion.Param._hstack__3Lmosek_4fusion_4Parameter_2(_0[_1]) for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Param._hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Param._hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack__3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _match_alt_hstack__3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _hstack_alt__3Lmosek_4fusion_4Parameter_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Param._hstack__3Lmosek_4fusion_4Parameter_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _hstack__3Lmosek_4fusion_4Parameter_2(_0):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(_0,1))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Param._vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1,_2):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Param._vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack__3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _match_alt_vstack__3Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Parameter_2__(_0))
  @staticmethod
  def _vstack_alt__3Lmosek_4fusion_4Parameter_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Param._vstack__3Lmosek_4fusion_4Parameter_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _vstack__3Lmosek_4fusion_4Parameter_2(_0):
   return (mosek.fusion.Param._dstack__3Lmosek_4fusion_4Parameter_2I(_0,0))
  @staticmethod
  def _dstack_alt__3Lmosek_4fusion_4Parameter_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Param._dstack__3Lmosek_4fusion_4Parameter_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dstack__3Lmosek_4fusion_4Parameter_2I(_0,_1):
   if (_1 < 0):
    raise mosek_fusion_IndexError._ctor_S("Invalid stacking dimension")
   _2=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
   _3=numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int64))
   _5=_0[0].getND()
   for _6 in range(1,int((_0).shape[0])):
    if (_5 < _0[_6].getND()):
     _5 = _0[_6].getND()
   if (_1 < _5):
    _7=0
    while ((_7 < int((_0).shape[0])) and (_5!=_0[_7].getND())):
     _7 += 1
    _4 = _0[_7].getShape()
    _8=0
    while ((_8 < int((_0).shape[0])) and (_5!=_0[_8].getND())):
     _8 += 1
    _4 = _0[_8].getShape()
   else:
    _4 = numpy.array([1 for _9 in range(0,(_1 + 1))], dtype=numpy.dtype(numpy.int32))
    _10=0
    while ((_10 < int((_0).shape[0])) and (_5!=_0[_10].getND())):
     _10 += 1
    _11=_0[_10].getND()
    _12=_0[_10].getShape()
    for _13 in range(0,_11):
     _4[_13] = _12[_13]
   _5 = int((_4).shape[0])
   _14=0
   _15=False
   for _16 in range(0,int((_0).shape[0])):
    _17=_0[_16].getShape()
    _3[_16] = mosek.fusion.Set._size__3I(_17)
    for _18 in range(0,int((_17).shape[0])):
     _15 = (_15 and ((_18==_1) or (_17[_18]==_4[_18])))
    if (_1 < int((_17).shape[0])):
     _2[_16] = _17[_1]
     _14 += _17[_1]
     for _19 in range(int((_17).shape[0]),_5):
      _15 = (_15 and ((_19==_1) or (_4[_19]==1)))
    else:
     _14 += 1
     _2[_16] = 1
   if _15:
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions for stacking")
   _4[_1] = _14
   _20=numpy.array([_0[_21].getNumNonzero() for _21 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))
   _22=0
   for _23 in range(0,int((_20).shape[0])):
    _22 += _20[_23]
   _24=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int64))
   _25=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _26=1
   for _27 in range(0,_1):
    _26 *= _4[_27]
   _28=_14
   _29=1
   for _30 in range((_1 + 1),_5):
    _29 *= _4[_30]
   _31=0
   _32=0
   for _33 in range(0,int((_0).shape[0])):
    _34=_0[_33].getNumNonzero()
    _0[_33].getSp(_24,_31)
    _0[_33].getAllIndexes(_25,_31)
    if (_1==0):
     for _35 in range(_31,(_31 + _34)):
      _24[_35] += _32
     _32 += _3[_33]
    else:
     for _36 in range(_31,(_31 + _34)):
      _37=(_24[_36] // (_2[_33] * _29))
      _38=((_24[_36] // _29) % _2[_33])
      _39=(_24[_36] % _29)
      _24[_36] = (((_37 * (_14 * _29)) + ((_38 + _32) * _29)) + _39)
     _32 += _2[_33]
    _31 += _34
   _40=_4[0]
   for _41 in range(1,_5):
    if (_40 < _4[_41]):
     _40 = _4[_41]
   _42=numpy.zeros(((_40 + 1),), dtype=numpy.dtype(numpy.int32))
   _43=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _44=numpy.zeros((_22,), dtype=numpy.dtype(numpy.int32))
   _45=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int64))
   _45[(_5 - 1)] = 1
   for _46 in range(1,_5):
    _45[((_5 - _46) - 1)] = (_45[(_5 - _46)] * _4[(_5 - _46)])
   for _47 in range(0,_22):
    _43[_47] = _47
   for _48 in range(0,_5):
    _49=((_5 - _48) - 1)
    for _50 in range(0,(_40 + 1)):
     _42[_50] = 0
    for _51 in range(0,_22):
     _42[(1 + ((_24[_51] // _45[_49]) % _4[_49]))] += 1
    for _52 in range(0,_40):
     _42[(_52 + 1)] += _42[_52]
    for _53 in range(0,_22):
     _54=((_24[_43[_53]] // _45[_49]) % _4[_49])
     _44[_42[_54]] = _43[_53]
     _42[_54] += 1
    _55=_44
    _44 = _43
    _43 = _55
   _56=numpy.array([_24[_43[_57]] for _57 in range(0,_22)], dtype=numpy.dtype(numpy.int64))
   _58=numpy.array([_25[_43[_59]] for _59 in range(0,_22)], dtype=numpy.dtype(numpy.int32))
   return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(_0[0].getModel(),_4,_56,_58))
 return Param
mosek_fusion_Param=__mk_mosek_fusion_Param()
del __mk_mosek_fusion_Param
def __mk_mosek_fusion_ParameterImpl():
 class ParameterImpl(mosek_fusion_Parameter,object):
  __slots__ = ['_ParameterImpl__size','_ParameterImpl__nidxs','_ParameterImpl__sp','_ParameterImpl__shape','_ParameterImpl__model']
  def getModel(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getModel_(*args): 
      return self._getModel_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getModel_(*args): 
      return self._getModel_alt_(*args)
    else:
      raise ValueError('Invalid argument list getModel('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getModel()')
  def asExpr(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_asExpr_(*args): 
      return self._asExpr_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_asExpr_(*args): 
      return self._asExpr_alt_(*args)
    else:
      raise ValueError('Invalid argument list asExpr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.asExpr()')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_ParameterImpl._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.pick(array(int32,ndim=1))\n\tmosek.fusion.ParameterImpl.pick(array(int32,ndim=2))')
  def getAllIndexes(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getAllIndexes__3II(*args): 
      return self._getAllIndexes__3II(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getAllIndexes__3II(*args): 
      return self._getAllIndexes_alt__3II(*args)
    else:
      raise ValueError('Invalid argument list getAllIndexes('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getAllIndexes(array(int32,ndim=1),int32)')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_ParameterImpl._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.index(int32)\n\tmosek.fusion.ParameterImpl.index(array(int32,ndim=1))')
  def getValue(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getValue_(*args): 
      return self._getValue_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getValue_(*args): 
      return self._getValue_alt_(*args)
    else:
      raise ValueError('Invalid argument list getValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getValue()')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_ParameterImpl._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_ParameterImpl._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.slice(int32,int32)\n\tmosek.fusion.ParameterImpl.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def getSp(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getSp__3JI(*args): 
      return self._getSp__3JI(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getSp__3JI(*args): 
      return self._getSp_alt__3JI(*args)
    else:
      raise ValueError('Invalid argument list getSp('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getSp(array(int64,ndim=1),int32)')
  def isSparse(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_isSparse_(*args): 
      return self._isSparse_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_isSparse_(*args): 
      return self._isSparse_alt_(*args)
    else:
      raise ValueError('Invalid argument list isSparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.isSparse()')
  def setValue(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_setValue_D(*args): 
      return self._setValue_D(*args)
    elif mosek_fusion_ParameterImpl._match_alt_setValue_D(*args): 
      return self._setValue_alt_D(*args)
    elif mosek_fusion_ParameterImpl._match_setValue__3D(*args): 
      return self._setValue__3D(*args)
    elif mosek_fusion_ParameterImpl._match_alt_setValue__3D(*args): 
      return self._setValue_alt__3D(*args)
    elif mosek_fusion_ParameterImpl._match_setValue__3_5D(*args): 
      return self._setValue__3_5D(*args)
    elif mosek_fusion_ParameterImpl._match_alt_setValue__3_5D(*args): 
      return self._setValue_alt__3_5D(*args)
    else:
      raise ValueError('Invalid argument list setValue('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.setValue(double)\n\tmosek.fusion.ParameterImpl.setValue(array(double,ndim=1))\n\tmosek.fusion.ParameterImpl.setValue(array(double,ndim=2))')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getND()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.toString()')
  def clone(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_clone_Lmosek_4fusion_4Model_2(*args): 
      return self._clone_Lmosek_4fusion_4Model_2(*args)
    elif mosek_fusion_ParameterImpl._match_alt_clone_Lmosek_4fusion_4Model_2(*args): 
      return self._clone_alt_Lmosek_4fusion_4Model_2(*args)
    else:
      raise ValueError('Invalid argument list clone('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.clone(mosek.fusion.Model)')
  def getNumNonzero(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getNumNonzero_(*args): 
      return self._getNumNonzero_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getNumNonzero_(*args): 
      return self._getNumNonzero_alt_(*args)
    else:
      raise ValueError('Invalid argument list getNumNonzero('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getNumNonzero()')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getShape()')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getSize()')
  def getIndex(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getIndex_I(*args): 
      return self._getIndex_I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getIndex_I(*args): 
      return self._getIndex_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getIndex('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getIndex(int32)')
  def getDim(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_getDim_I(*args): 
      return self._getDim_I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_getDim_I(*args): 
      return self._getDim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getDim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.getDim(int32)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ParameterImpl._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def reshape(self,*args):
    if False: pass
    elif mosek_fusion_ParameterImpl._match_reshape__3I(*args): 
      return self._reshape__3I(*args)
    elif mosek_fusion_ParameterImpl._match_alt_reshape__3I(*args): 
      return self._reshape_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ParameterImpl.reshape(array(int32,ndim=1))')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ParameterImpl: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(other,model):
    o = ParameterImpl.__new__(ParameterImpl)
    o._ctor_init_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(other,model)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    other,model, = args
    return (__arg_match_Lmosek_4fusion_4ParameterImpl_2__(other) and __arg_match_Lmosek_4fusion_4Model_2__(model))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(*args):
    if len(args) != 2: return False
    other,model, = args
    return (__arg_alt_match_Lmosek_4fusion_4ParameterImpl_2__(other) and __arg_alt_match_Lmosek_4fusion_4Model_2__(model))
  def _ctor_alt_init_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(self,other,model):
    self._ctor_init_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(other,model)
  def _ctor_init_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(self,other,model):
   (self.__model) = model
   (self.__shape) = (other.__shape)
   (self.__sp) = (other.__sp)
   (self.__size) = (other.__size)
   (self.__nidxs) = (other.__nidxs)
  @staticmethod
  def _ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(model,shape,sp,nidxs):
    o = ParameterImpl.__new__(ParameterImpl)
    o._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3I(model,shape,sp,nidxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(*args):
    if len(args) != 4: return False
    model,shape,sp,nidxs, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(model) and __arg_match__3I__(shape) and __arg_match__3J__(sp) and __arg_match__3I__(nidxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(*args):
    if len(args) != 4: return False
    model,shape,sp,nidxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(model) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sp) and __arg_alt_match__3I__(nidxs))
  def _ctor_alt_init_Lmosek_4fusion_4Model_2_3I_3J_3I(self,model,shape,sp,nidxs):
    self._ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3I(model,numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sp,dtype=numpy.dtype(numpy.int64)),numpy.array(nidxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Model_2_3I_3J_3I(self,model,shape,sp,nidxs):
   (self.__model) = model
   (self.__shape) = mosek.fusion.Utils.Tools._arraycopy__3I(shape)
   (self.__sp) = sp
   (self.__size) = mosek.fusion.Set._size__3I(shape)
   (self.__nidxs) = mosek.fusion.Utils.Tools._arraycopy__3I(nidxs)
  @staticmethod
  def _match_clone_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(_0))
  @staticmethod
  def _match_alt_clone_Lmosek_4fusion_4Model_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(_0))
  def _clone_alt_Lmosek_4fusion_4Model_2(self,_t__0):
    return self._clone_Lmosek_4fusion_4Model_2(_0)
  def _clone_Lmosek_4fusion_4Model_2(self,_0):
   return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4ParameterImpl_2Lmosek_4fusion_4Model_2(self,_0))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()._a_S("Parameter((")
   if (int((self.__shape).shape[0]) > 0):
    _0._a_I(self.__shape[0])
    for _1 in range(1,int((self.__shape).shape[0])):
     _0._a_S(",")._a_I(self.__shape[_1])
   _0._a_S(")")
   if (self.__sp is not None):
    _0._a_S(",sparse")
   _0._a_S(")")
   return (_0._toString_())
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   if (int((self.__shape).shape[0])!=int((_0).shape[1])):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _1=False
   for _2 in range(0,int((_0).shape[0])):
    for _3 in range(0,int((_0).shape[1])):
     if ((_0[_2,_3] < 0) or (_0[_2,_3] >= self.__shape[_3])):
      _1 = True
   if _1:
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _4=int((self.__shape).shape[0])
   _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
   _5[(_4 - 1)] = 1
   for _6 in range(1,_4):
    _5[((_4 - _6) - 1)] = (_5[(_4 - _6)] * self.__shape[(_4 - _6)])
   _7=numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32))
   _9=None
   if (self.__sp is None):
    _8 = numpy.zeros((int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
    for _10 in range(0,int((_0).shape[0])):
     _11=0
     for _12 in range(0,_4):
      _11 += (_5[_12] * _0[_10,_12])
     _8[_10] = self.__nidxs[_11]
   else:
    _13=0
    for _14 in range(0,int((_0).shape[0])):
     _15=0
     for _16 in range(0,_4):
      _15 += (_5[_16] * _0[_14,_16])
     if (mosek.fusion.CommonTools._binarySearch__3JJ(self.__sp,_15) >= 0):
      _13 += 1
    _8 = numpy.zeros((_13,), dtype=numpy.dtype(numpy.int32))
    _9 = numpy.zeros((_13,), dtype=numpy.dtype(numpy.int64))
    _17=0
    for _18 in range(0,int((_0).shape[0])):
     _19=0
     for _20 in range(0,_4):
      _19 += (_5[_20] * _0[_18,_20])
     _21=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sp,_19)
     if (_21 >= 0):
      _8[_17] = self.__nidxs[_21]
      _9[_17] = _18
      _17 += 1
    if (_13==int((_0).shape[0])):
     _9 = None
   return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,_7,_9,_8))
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _1=False
   for _2 in range(0,int((_0).shape[0])):
    if ((_0[_2] < 0) or (_0[_2] >= self.__shape[0])):
     _1 = True
   if _1:
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _4=None
   if (self.__sp is None):
    _3 = numpy.array([self.__nidxs[_0[_5]] for _5 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32))
   else:
    _6=0
    for _7 in range(0,int((_0).shape[0])):
     if (mosek.fusion.CommonTools._binarySearch__3JJ(self.__sp,_0[_7]) >= 0):
      _6 += 1
    _3 = numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
    _4 = numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
    _8=0
    for _9 in range(0,int((_0).shape[0])):
     _10=mosek.fusion.CommonTools._binarySearch__3JJ(self.__sp,_0[_9])
     if (_10 >= 0):
      _4[_8] = _9
      _3[_8] = self.__nidxs[_10]
      _8 += 1
    if (_6==int((_0).shape[0])):
     _4 = None
   return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32)),_4,_3))
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   if (int((self.__shape).shape[0])!=int((_0).shape[0])):
    raise mosek_fusion_DimensionError._ctor_S("Index has incorrect dimension")
   else:
    for _1 in range(0,int((_0).shape[0])):
     if ((_0[_1] < 0) or (_0[_1] >= self.__shape[_1])):
      raise mosek_fusion_IndexError._ctor_S("Index out of bounds")
   if (self.__sp is None):
    _2=int((_0).shape[0])
    _3=_0[(_2 - 1)]
    for _4 in range(1,_2):
     _3 = ((_3 * self.__shape[(_2 - _4)]) + _0[((_2 - _4) - 1)])
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),None,numpy.array([self.__nidxs[_3]], dtype=numpy.dtype(numpy.int32))))
   else:
    _5=int((_0).shape[0])
    _6=_0[(_5 - 1)]
    for _7 in range(1,_5):
     _6 = ((_6 * self.__shape[(_5 - _7)]) + _0[((_5 - _7) - 1)])
    _8=0
    while ((_8 < int((self.__sp).shape[0])) and (self.__sp[_8] < _6)):
     _8 += 1
    if ((_8 < int((self.__sp).shape[0])) and (self.__sp[_8]==_6)):
     return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),None,numpy.array([self.__nidxs[_8]], dtype=numpy.dtype(numpy.int32))))
    else:
     return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_DimensionError._ctor_S("Index has incorrect dimension")
   elif ((_0 < 0) or (_0 >= self.__shape[0])): # bld/docker-win/final/default/src/fusion/Parameter.monty:351:16-38
    raise mosek_fusion_IndexError._ctor_S("Index out of bounds")
   if (self.__sp is None):
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),None,numpy.array([self.__nidxs[_0]], dtype=numpy.dtype(numpy.int32))))
   else:
    _1=0
    while ((_1 < int((self.__sp).shape[0])) and (self.__sp[_1] < _0)):
     _1 += 1
    if ((_1 < int((self.__sp).shape[0])) and (self.__sp[_1]==_0)):
     return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),None,numpy.array([self.__nidxs[_1]], dtype=numpy.dtype(numpy.int32))))
    else:
     return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=int((self.__shape).shape[0])
   _4=int((self.__nidxs).shape[0])
   _5=(self.__sp is not None)
   _0.alloc_expr(_3,_4,int((self.__nidxs).shape[0]),_5,int((self.__nidxs).shape[0]))
   _6=(_0.i32)
   _7=(_0.i64)
   _8=(_0.f64)
   _9=(_0.ptr_base)
   _10=(_0.nidxs_base)
   _11=(_0.cof_base)
   _12=(_0.shape_base)
   _13=(_0.codeptr_base)
   _14=(_0.code_base)
   _15=(_0.cconst_base)
   _16=(_0.sp_base)
   _6[_9] = 0
   for _17 in range(0,_3):
    _6[(_12 + _17)] = self.__shape[_17]
   for _18 in range(0,_4):
    _7[(_10 + _18)] = 0
   for _19 in range(0,_4):
    _8[(_11 + _19)] = 0.0
   for _20 in range(0,(_4 + 1)):
    _6[(_9 + _20)] = _20
   if (_4 > 0):
    for _21 in range(0,(_4 + 1)):
     _6[(_13 + _21)] = _21
   if _5:
    for _22 in range(0,_4):
     _7[(_16 + _22)] = self.__sp[_22]
   for _23 in range(0,_4):
    _6[(_14 + _23)] = 1
    _8[(_15 + _23)] = self.__nidxs[_23]
  @staticmethod
  def _match_getSp__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3J__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_getSp__3JI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3J__(_0) and __arg_alt_match_I__(_1))
  def _getSp_alt__3JI(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.int32(_t__1)
   _1_res = self._getSp__3JI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getSp__3JI(self,_0,_1):
   if (self.__sp is not None):
    for _2 in range(0,int((self.__sp).shape[0])):
     _0[(_2 + _1)] = self.__sp[_2]
   else:
    for _3 in range(0,int((self.__nidxs).shape[0])):
     _0[(_3 + _1)] = _3
  @staticmethod
  def _match_isSparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isSparse_(*args):
    if len(args) != 0: return False
    return True
  def _isSparse_alt_(self,):
    return self._isSparse_()
  def _isSparse_(self,):
   return ((self.__sp is not None))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   if ((int((_0).shape[0])!=int((_1).shape[0])) or (int((_0).shape[0])!=int((self.__shape).shape[0]))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid index dimension")
   _2=int((_0).shape[0])
   for _3 in range(0,_2):
    if ((_0[_3] < 0) or ((_0[_3] >= _1[_3]) or (_1[_3] > self.__shape[_3]))):
     raise mosek_fusion_IndexError._ctor_S("Invalid index")
   _4=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
   _4[(_2 - 1)] = 1
   for _5 in range(1,_2):
    _4[((_2 - _5) - 1)] = (_4[(_2 - _5)] * self.__shape[_5])
   _6=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.array([(_1[_8] - _0[_8]) for _8 in range(0,_2)], dtype=numpy.dtype(numpy.int32))
   if (self.__sp is None):
    _9=1
    for _10 in range(0,_2):
     _9 *= _7[_10]
    _11=numpy.zeros((_9,), dtype=numpy.dtype(numpy.int32))
    _12=0
    for _13 in range(0,int((self.__nidxs).shape[0])):
     for _14 in range(0,_2):
      _6[_14] = numpy.int32(((_13 // _4[_14]) % self.__shape[_14]))
     _15=True
     for _16 in range(0,_2):
      _15 = (_15 and ((_0[_16] <= _6[_16]) and (_6[_16] < _1[_16])))
     if _15:
      _11[_12] = self.__nidxs[_13]
      _12 += 1
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,_7,None,_11))
   else:
    _17=0
    for _18 in range(0,int((self.__nidxs).shape[0])):
     for _19 in range(0,_2):
      _6[_19] = numpy.int32(((self.__sp[_18] // _4[_19]) % self.__shape[_19]))
     _20=True
     for _21 in range(0,_2):
      _20 = (_20 and ((_0[_21] <= _6[_21]) and (_6[_21] < _1[_21])))
     if _20:
      _17 += 1
    _22=numpy.zeros((_17,), dtype=numpy.dtype(numpy.int32))
    _23=numpy.zeros((_17,), dtype=numpy.dtype(numpy.int64))
    _24=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
    _24[(_2 - 1)] = 1
    for _25 in range(1,_2):
     _24[((_2 - _25) - 1)] = (_24[(_2 - _25)] * _7[_25])
    _26=0
    for _27 in range(0,int((self.__nidxs).shape[0])):
     for _28 in range(0,_2):
      _6[_27] = numpy.int32(((self.__sp[_27] // _4[_28]) % self.__shape[_28]))
     _29=True
     for _30 in range(0,_2):
      _29 = (_29 and ((_0[_30] <= _6[_30]) and (_6[_30] < _1[_30])))
     if _29:
      _31=0
      for _32 in range(0,_2):
       _31 += ((_6[_32] - _0[_32]) * _24[_32])
      _23[_26] = _31
      _22[_26] = self.__nidxs[_27]
      _26 += 1
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,_7,_23,_22))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   if (int((self.__shape).shape[0])!=1):
    raise mosek_fusion_DimensionError._ctor_S("Invalid index dimension")
   if ((_0 < 0) or ((_0 >= _1) or (_1 > self.__size))):
    raise mosek_fusion_IndexError._ctor_S("Invalid index")
   if (self.__sp is None):
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.array([(_1 - _0)], dtype=numpy.dtype(numpy.int32)),None,numpy.array([self.__nidxs[_2] for _2 in range(_0,_1)], dtype=numpy.dtype(numpy.int32))))
   else:
    _3=0
    for _4 in range(0,int((self.__sp).shape[0])):
     if ((_0 <= self.__sp[_4]) and (self.__sp[_4] < _1)):
      _3 += 1
    _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
    _7=0
    for _8 in range(0,int((self.__sp).shape[0])):
     if ((_0 <= self.__sp[_8]) and (self.__sp[_8] < _1)):
      _5[_7] = self.__nidxs[_8]
      _6[_7] = (self.__sp[_7] - _0)
      _7 += 1
    return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,numpy.array([(_1 - _0)], dtype=numpy.dtype(numpy.int32)),_6,_5))
  @staticmethod
  def _match_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_reshape__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _reshape_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._reshape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _reshape__3I(self,_0):
   if (mosek.fusion.Set._size__3I(_0)!=mosek.fusion.Set._size__3I(self.__shape)):
    raise mosek_fusion_DimensionError._ctor_S("Incompatible shape for resize")
   return (mosek_fusion_ParameterImpl._ctor_Lmosek_4fusion_4Model_2_3I_3J_3I(self.__model,_0,self.__sp,self.__nidxs))
  @staticmethod
  def _match_asExpr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_asExpr_(*args):
    if len(args) != 0: return False
    return True
  def _asExpr_alt_(self,):
    return self._asExpr_()
  def _asExpr_(self,):
   return (mosek_fusion_ExprParameter._ctor_Lmosek_4fusion_4Parameter_2(self))
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   return numpy.int64(mosek.fusion.Set._size__3I(self.__shape))
  @staticmethod
  def _match_getNumNonzero_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getNumNonzero_(*args):
    if len(args) != 0: return False
    return True
  def _getNumNonzero_alt_(self,):
    return self._getNumNonzero_()
  def _getNumNonzero_(self,):
   return numpy.int32(int((self.__nidxs).shape[0]))
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   return numpy.int32(int((self.__shape).shape[0]))
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   return (mosek.fusion.Utils.Tools._arraycopy__3I(self.__shape))
  @staticmethod
  def _match_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getDim_alt_I(self,_t__0):
    return self._getDim_I(numpy.int32(__0))
  def _getDim_I(self,_0):
   return numpy.int32(self.__shape[_0])
  @staticmethod
  def _match_getAllIndexes__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_getAllIndexes__3II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_I__(_1))
  def _getAllIndexes_alt__3II(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.int32(_t__1)
   _1_res = self._getAllIndexes__3II(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getAllIndexes__3II(self,_0,_1):
   for _2 in range(0,int((self.__nidxs).shape[0])):
    _0[(_1 + _2)] = self.__nidxs[_2]
  @staticmethod
  def _match_getIndex_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getIndex_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getIndex_alt_I(self,_t__0):
    return self._getIndex_I(numpy.int32(__0))
  def _getIndex_I(self,_0):
   return numpy.int32(self.__nidxs[_0])
  @staticmethod
  def _match_getValue_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getValue_(*args):
    if len(args) != 0: return False
    return True
  def _getValue_alt_(self,):
    return self._getValue_()
  def _getValue_(self,):
   return (self.__model._getParameterValue__3I(self.__nidxs))
  @staticmethod
  def _match_setValue__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_setValue__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  def _setValue_alt__3_5D(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = self._setValue__3_5D(_0)
   return _1_res
  def _setValue__3_5D(self,_0):
   if ((self.getND()!=2) or ((int((_0).shape[0])!=self.__shape[0]) or (int((_0).shape[1])!=self.__shape[1]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching value shape")
   if (self.__sp is None):
    _1=numpy.zeros(((self.__shape[0] * self.__shape[1]),), dtype=numpy.dtype(numpy.float64))
    for _2 in range(0,self.__shape[0]):
     for _3 in range(0,self.__shape[1]):
      _1[((_2 * self.__shape[1]) + _3)] = _0[_2,_3]
    self.__model._setParameterValue__3I_3D(self.__nidxs,_1)
   else:
    _4=numpy.zeros((int((self.__sp).shape[0]),), dtype=numpy.dtype(numpy.float64))
    for _5 in range(0,int((self.__sp).shape[0])):
     _4[_5] = _0[(self.__sp[_5] // self.__shape[1]),(self.__sp[_5] % self.__shape[1])]
    self.__model._setParameterValue__3I_3D(self.__nidxs,_4)
  @staticmethod
  def _match_setValue__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_setValue__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  def _setValue_alt__3D(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = self._setValue__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _setValue__3D(self,_0):
   if (self.__sp is None):
    if (int((_0).shape[0])!=int((self.__nidxs).shape[0])):
     raise mosek_fusion_LengthError._ctor_S("Length of value array is incorrect")
    else:
     self.__model._setParameterValue__3I_3D(self.__nidxs,_0)
   else:
    if (int((_0).shape[0])!=self.getSize()):
     raise mosek_fusion_LengthError._ctor_S("Length of value array is incorrect")
    else:
     _1=numpy.zeros((int((self.__nidxs).shape[0]),), dtype=numpy.dtype(numpy.float64))
     for _2 in range(0,int((self.__nidxs).shape[0])):
      _1[_2] = _0[self.__sp[_2]]
     self.__model._setParameterValue__3I_3D(self.__nidxs,_1)
  @staticmethod
  def _match_setValue_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_setValue_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  def _setValue_alt_D(self,_t__0):
    return self._setValue_D(numpy.float64(__0))
  def _setValue_D(self,_0):
   _1=numpy.zeros((self.__size,), dtype=numpy.dtype(numpy.float64))
   for _2 in range(0,self.__size):
    _1[_2] = _0
   self.__model._setParameterValue__3I_3D(self.__nidxs,_1)
  @staticmethod
  def _match_getModel_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getModel_(*args):
    if len(args) != 0: return False
    return True
  def _getModel_alt_(self,):
    return self._getModel_()
  def _getModel_(self,):
   return (self.__model)
 return ParameterImpl
mosek_fusion_ParameterImpl=__mk_mosek_fusion_ParameterImpl()
del __mk_mosek_fusion_ParameterImpl
def __mk_mosek_fusion_ExprRangeDomain():
 class ExprRangeDomain(mosek_fusion_ExprDomain,object):
  __slots__ = ['dom','expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprRangeDomain.ctor(mosek.fusion.Expression,mosek.fusion.RangeDomain)')
  def toDJCTerm(self,*args):
    if False: pass
    elif mosek_fusion_ExprRangeDomain._match_toDJCTerm_(*args): 
      return self._toDJCTerm_(*args)
    elif mosek_fusion_ExprRangeDomain._match_alt_toDJCTerm_(*args): 
      return self._toDJCTerm_alt_(*args)
    else:
      raise ValueError('Invalid argument list toDJCTerm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprRangeDomain.toDJCTerm()')
  def __repr__(self): return 'mosek.fusion.ExprRangeDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(expr,dom):
    o = ExprRangeDomain.__new__(ExprRangeDomain)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(expr,dom)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_Lmosek_4fusion_4RangeDomain_2__(dom))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(dom))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,expr,dom):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(expr,dom)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self,expr,dom):
   (self.expr) = expr
   (self.dom) = dom
  @staticmethod
  def _match_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  def _toDJCTerm_alt_(self,):
    return self._toDJCTerm_()
  def _toDJCTerm_(self,):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4RangeDomain_2(self.expr,self.dom))
 return ExprRangeDomain
mosek_fusion_ExprRangeDomain=__mk_mosek_fusion_ExprRangeDomain()
del __mk_mosek_fusion_ExprRangeDomain
def __mk_mosek_fusion_ExprPSDDomain():
 class ExprPSDDomain(object):
  __slots__ = ['dom','expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprPSDDomain.ctor(mosek.fusion.Expression,mosek.fusion.PSDDomain)')
  def __repr__(self): return 'mosek.fusion.ExprPSDDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(expr,dom):
    o = ExprPSDDomain.__new__(ExprPSDDomain)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(expr,dom)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_Lmosek_4fusion_4PSDDomain_2__(dom))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(dom))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,expr,dom):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(expr,dom)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4PSDDomain_2(self,expr,dom):
   (self.expr) = expr
   (self.dom) = dom
 return ExprPSDDomain
mosek_fusion_ExprPSDDomain=__mk_mosek_fusion_ExprPSDDomain()
del __mk_mosek_fusion_ExprPSDDomain
def __mk_mosek_fusion_ExprConicDomain():
 class ExprConicDomain(object):
  __slots__ = ['dom','expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprConicDomain.ctor(mosek.fusion.Expression,mosek.fusion.ConeDomain)')
  def __repr__(self): return 'mosek.fusion.ExprConicDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(expr,dom):
    o = ExprConicDomain.__new__(ExprConicDomain)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(expr,dom)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_Lmosek_4fusion_4ConeDomain_2__(dom))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(dom))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,expr,dom):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(expr,dom)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4ConeDomain_2(self,expr,dom):
   (self.expr) = expr
   (self.dom) = dom
 return ExprConicDomain
mosek_fusion_ExprConicDomain=__mk_mosek_fusion_ExprConicDomain()
del __mk_mosek_fusion_ExprConicDomain
def __mk_mosek_fusion_ExprLinearDomain():
 class ExprLinearDomain(mosek_fusion_ExprDomain,object):
  __slots__ = ['dom','expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprLinearDomain.ctor(mosek.fusion.Expression,mosek.fusion.LinearDomain)')
  def toDJCTerm(self,*args):
    if False: pass
    elif mosek_fusion_ExprLinearDomain._match_toDJCTerm_(*args): 
      return self._toDJCTerm_(*args)
    elif mosek_fusion_ExprLinearDomain._match_alt_toDJCTerm_(*args): 
      return self._toDJCTerm_alt_(*args)
    else:
      raise ValueError('Invalid argument list toDJCTerm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprLinearDomain.toDJCTerm()')
  def __repr__(self): return 'mosek.fusion.ExprLinearDomain'
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(expr,dom):
    o = ExprLinearDomain.__new__(ExprLinearDomain)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(expr,dom)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_Lmosek_4fusion_4LinearDomain_2__(dom))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(*args):
    if len(args) != 2: return False
    expr,dom, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(dom))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,expr,dom):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(expr,dom)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self,expr,dom):
   (self.expr) = expr
   (self.dom) = dom
  @staticmethod
  def _match_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toDJCTerm_(*args):
    if len(args) != 0: return False
    return True
  def _toDJCTerm_alt_(self,):
    return self._toDJCTerm_()
  def _toDJCTerm_(self,):
   return (mosek.fusion.DJC._term_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4LinearDomain_2(self.expr,self.dom))
 return ExprLinearDomain
mosek_fusion_ExprLinearDomain=__mk_mosek_fusion_ExprLinearDomain()
del __mk_mosek_fusion_ExprLinearDomain
def __mk_mosek_fusion_BaseExpression():
 class BaseExpression(mosek_fusion_Expression,object):
  __slots__ = ['_BaseExpression__shape']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3I(*args): 
      self._ctor_init__3I(*args)
    elif self.__match_alt_ctor__3I(*args):
      self._ctor_alt_init__3I(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.BaseExpression.ctor(array(int32,ndim=1))')
  def getSize(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_getSize_(*args): 
      return self._getSize_(*args)
    elif mosek_fusion_BaseExpression._match_alt_getSize_(*args): 
      return self._getSize_alt_(*args)
    else:
      raise ValueError('Invalid argument list getSize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.getSize()')
  def pick(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_pick__3I(*args): 
      return self._pick__3I(*args)
    elif mosek_fusion_BaseExpression._match_alt_pick__3I(*args): 
      return self._pick_alt__3I(*args)
    elif mosek_fusion_BaseExpression._match_pick__3_5I(*args): 
      return self._pick__3_5I(*args)
    elif mosek_fusion_BaseExpression._match_alt_pick__3_5I(*args): 
      return self._pick_alt__3_5I(*args)
    else:
      raise ValueError('Invalid argument list pick('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.pick(array(int32,ndim=1))\n\tmosek.fusion.BaseExpression.pick(array(int32,ndim=2))')
  def getDim(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_getDim_I(*args): 
      return self._getDim_I(*args)
    elif mosek_fusion_BaseExpression._match_alt_getDim_I(*args): 
      return self._getDim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list getDim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.getDim(int32)')
  def index(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_index_I(*args): 
      return self._index_I(*args)
    elif mosek_fusion_BaseExpression._match_alt_index_I(*args): 
      return self._index_alt_I(*args)
    elif mosek_fusion_BaseExpression._match_index__3I(*args): 
      return self._index__3I(*args)
    elif mosek_fusion_BaseExpression._match_alt_index__3I(*args): 
      return self._index_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list index('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.index(int32)\n\tmosek.fusion.BaseExpression.index(array(int32,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_BaseExpression._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_BaseExpression._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_BaseExpression._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_BaseExpression._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.slice(int32,int32)\n\tmosek.fusion.BaseExpression.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def getND(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_getND_(*args): 
      return self._getND_(*args)
    elif mosek_fusion_BaseExpression._match_alt_getND_(*args): 
      return self._getND_alt_(*args)
    else:
      raise ValueError('Invalid argument list getND('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.getND()')
  def getShape(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_getShape_(*args): 
      return self._getShape_(*args)
    elif mosek_fusion_BaseExpression._match_alt_getShape_(*args): 
      return self._getShape_alt_(*args)
    else:
      raise ValueError('Invalid argument list getShape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.getShape()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_BaseExpression._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_BaseExpression._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.BaseExpression.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.BaseExpression: '+self._toString_()
  @staticmethod
  def _ctor__3I(shape):
    o = BaseExpression.__new__(BaseExpression)
    o._ctor_init__3I(shape)
    return o
  @staticmethod
  def __match_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_match__3I__(shape))
  @staticmethod
  def __match_alt_ctor__3I(*args):
    if len(args) != 1: return False
    shape, = args
    return (__arg_alt_match__3I__(shape))
  def _ctor_alt_init__3I(self,shape):
    self._ctor_init__3I(numpy.array(shape,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init__3I(self,shape):
   (self.__shape) = shape
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("Expression()")
  def _printStack_alt_Lmosek_4fusion_4WorkStack_2(self,_t__0):
    return self._printStack_Lmosek_4fusion_4WorkStack_2(_0)
  def _printStack_Lmosek_4fusion_4WorkStack_2(self,_0):
   _1=(_0.i32)
   _2=(_0.i64)
   _3=(_0.f64)
   _4=(_0.ptr_base)
   _5=(_0.nidxs_base)
   _6=(_0.cof_base)
   _7=(_0.shape_base)
   _8=(_0.codeptr_base)
   _9=(_0.code_base)
   _10=(_0.cconst_base)
   _11=(_0.sp_base)
   _12=(_0.nelem)
   _13=(_0.nnz)
   _14=(_0.ncodeatom)
   _15=(_0.nd)
   _16=(_0.hassp)
   mosek.fusion.Debug._o_()._p_S("### ")._p_S(self.toString())._p_S(" ###")._lf_()._p_S("  nelem     = ")._p_I(_12)._lf_()._p_S("  nnz       = ")._p_I(_13)._lf_()._p_S("  hassp     = ")._p_Z(_16)._p_S(" / ")._p_I(_1[(((_0.pi32) - _15) - 4)])._lf_()._p_S("  shape     = ")._p__3I(numpy.array([_1[(_7 + _17)] for _17 in range(0,_15)], dtype=numpy.dtype(numpy.int32)))._lf_()._p_S("  ptr       = ")._p__3I(numpy.array([_1[(_4 + _18)] for _18 in range(0,(_12 + 1))], dtype=numpy.dtype(numpy.int32)))._lf_()
   if (_0.hassp):
    mosek.fusion.Debug._o_()._p_S("  sp       = ")._p__3J(numpy.array([_2[(_11 + _19)] for _19 in range(0,_12)], dtype=numpy.dtype(numpy.int64)))._lf_()
   for _20 in range(0,_12):
    mosek.fusion.Debug._o_()._p_S("  row[")._p_I(_20)._p_S("]")._lf_()
    mosek.fusion.Debug._o_()._p_S("    nidx : ")._p__3J(numpy.array([_2[(_5 + _21)] for _21 in range(_1[(_4 + _20)],_1[((_4 + _20) + 1)])], dtype=numpy.dtype(numpy.int64)))._lf_()._p_S("    cof  : ")._p__3D(numpy.array([_3[(_6 + _22)] for _22 in range(_1[(_4 + _20)],_1[((_4 + _20) + 1)])], dtype=numpy.dtype(numpy.float64)))._lf_()
    if (_14 > 0):
     for _23 in range(_1[(_4 + _20)],_1[((_4 + _20) + 1)]):
      mosek.fusion.Debug._o_()._p_S("      code[")._p_J(_2[(_5 + _23)])._p_S("] ")._p__3I(numpy.array([_1[(_9 + _24)] for _24 in range(_1[(_8 + _23)],_1[((_8 + _23) + 1)])], dtype=numpy.dtype(numpy.int32)))._p__3D(numpy.array([_3[(_10 + _25)] for _25 in range(_1[(_8 + _23)],_1[((_8 + _23) + 1)])], dtype=numpy.dtype(numpy.float64)))._lf_()
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5I__(_0))
  @staticmethod
  def _match_alt_pick__3_5I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5I__(_0))
  def _pick_alt__3_5I(self,_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3_5I(_0)
   return _1_res
  def _pick__3_5I(self,_0):
   return (mosek_fusion_ExprPick._ctor_Lmosek_4fusion_4Expression_2_3_5I(self,_0))
  @staticmethod
  def _match_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_pick__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _pick_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._pick__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _pick__3I(self,_0):
   _1=numpy.zeros((int((_0).shape[0]),1,), dtype=numpy.dtype(numpy.int32))
   for _2 in range(0,int((_0).shape[0])):
    _1[_2,0] = _0[_2]
   return (mosek_fusion_ExprPick._ctor_Lmosek_4fusion_4Expression_2_3_5I(self,_1))
  @staticmethod
  def _match_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_index__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  def _index_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self._index__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _index__3I(self,_0):
   _1=numpy.zeros((1,int((_0).shape[0]),), dtype=numpy.dtype(numpy.int32))
   for _2 in range(0,int((_0).shape[0])):
    _1[0,_2] = _0[_2]
   return (mosek_fusion_ExprPick._ctor_Lmosek_4fusion_4Expression_2_3_5I(self,_1))
  @staticmethod
  def _match_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_index_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _index_alt_I(self,_t__0):
    return self._index_I(numpy.int32(__0))
  def _index_I(self,_0):
   _1=numpy.zeros((1,1,), dtype=numpy.dtype(numpy.int32))
   _1[0,0] = _0
   return (mosek_fusion_ExprPick._ctor_Lmosek_4fusion_4Expression_2_3_5I(self,_1))
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   return (mosek_fusion_ExprSlice._ctor_Lmosek_4fusion_4Expression_2_3I_3I(self,_0,_1))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   return (mosek_fusion_ExprSlice._ctor_Lmosek_4fusion_4Expression_2_3I_3I(self,numpy.array([_0], dtype=numpy.dtype(numpy.int32)),numpy.array([_1], dtype=numpy.dtype(numpy.int32))))
  @staticmethod
  def _match_getSize_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getSize_(*args):
    if len(args) != 0: return False
    return True
  def _getSize_alt_(self,):
    return self._getSize_()
  def _getSize_(self,):
   return numpy.int64(mosek.fusion.Set._size__3I(self.__shape))
  @staticmethod
  def _match_getND_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getND_(*args):
    if len(args) != 0: return False
    return True
  def _getND_alt_(self,):
    return self._getND_()
  def _getND_(self,):
   return numpy.int32(int((self.__shape).shape[0]))
  @staticmethod
  def _match_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_getDim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _getDim_alt_I(self,_t__0):
    return self._getDim_I(numpy.int32(__0))
  def _getDim_I(self,_0):
   return numpy.int32(self.__shape[_0])
  @staticmethod
  def _match_getShape_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getShape_(*args):
    if len(args) != 0: return False
    return True
  def _getShape_alt_(self,):
    return self._getShape_()
  def _getShape_(self,):
   return (mosek.fusion.Utils.Tools._arraycopy__3I(self.__shape))
 return BaseExpression
mosek_fusion_BaseExpression=__mk_mosek_fusion_BaseExpression()
del __mk_mosek_fusion_BaseExpression
def __mk_mosek_fusion_ExprParameter():
 class ExprParameter(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprParameter__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprParameter.ctor(mosek.fusion.Parameter)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprParameter._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprParameter._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprParameter.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def slice(self,*args):
    if False: pass
    elif mosek_fusion_ExprParameter._match_slice_II(*args): 
      return self._slice_II(*args)
    elif mosek_fusion_ExprParameter._match_alt_slice_II(*args): 
      return self._slice_alt_II(*args)
    elif mosek_fusion_ExprParameter._match_slice__3I_3I(*args): 
      return self._slice__3I_3I(*args)
    elif mosek_fusion_ExprParameter._match_alt_slice__3I_3I(*args): 
      return self._slice_alt__3I_3I(*args)
    else:
      raise ValueError('Invalid argument list slice('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprParameter.slice(int32,int32)\n\tmosek.fusion.ExprParameter.slice(array(int32,ndim=1),array(int32,ndim=1))')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprParameter._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprParameter._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprParameter.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprParameter: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2(p):
    o = ExprParameter.__new__(ExprParameter)
    o._ctor_init_Lmosek_4fusion_4Parameter_2(p)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    p, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 1: return False
    p, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2(self,p):
    self._ctor_init_Lmosek_4fusion_4Parameter_2(p)
  def _ctor_init_Lmosek_4fusion_4Parameter_2(self,p):
   mosek_fusion_BaseExpression._ctor_init__3I(self,p.getShape())
   (self.__p) = p
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__p.eval(_0,_1,_2)
  @staticmethod
  def _match_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_slice__3I_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1))
  def _slice_alt__3I_3I(self,_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = self._slice__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _slice__3I_3I(self,_0,_1):
   return (mosek_fusion_ExprParameter._ctor_Lmosek_4fusion_4Parameter_2(self.__p.slice(_0,_1)))
  @staticmethod
  def _match_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_slice_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _slice_alt_II(self,_t__0,_t__1):
    return self._slice_II(numpy.int32(__0),numpy.int32(__1))
  def _slice_II(self,_0,_1):
   return (mosek_fusion_ExprParameter._ctor_Lmosek_4fusion_4Parameter_2(self.__p.slice(_0,_1)))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprParameter(")._a_S(self.__p.toString())._a_S(")")._toString_())
 return ExprParameter
mosek_fusion_ExprParameter=__mk_mosek_fusion_ExprParameter()
del __mk_mosek_fusion_ExprParameter
def __mk_mosek_fusion_ExprMulParamScalarExpr():
 class ExprMulParamScalarExpr(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamScalarExpr__e','_ExprMulParamScalarExpr__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamScalarExpr.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamScalarExpr._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamScalarExpr._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamScalarExpr.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamScalarExpr._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamScalarExpr._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamScalarExpr.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamScalarExpr: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprMulParamScalarExpr.__new__(ExprMulParamScalarExpr)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,p.getShape())
   (self.__p) = p
   (self.__e) = e
   if (e.getND()!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   if (_6!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operator shape for multiplication")
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.sp_base)
   _13=(_1.nidxs_base)
   _14=(_1.cof_base)
   _15=(_1.cconst_base)
   _16=(_1.codeptr_base)
   _17=(_1.code_base)
   _18=self.__p.getND()
   _19=self.__p.getNumNonzero()
   _20=(_8 * self.__p.getNumNonzero())
   _21=(self.__p.getNumNonzero() < self.__p.getSize())
   _22=(((_11 * _19) + (_20 * 4)) if ((_11 > 0) ) else (_20 * 3))
   _23=_2.alloci32(self.__p.getNumNonzero())
   _24=(_2.i32)
   self.__p.getAllIndexes(_24,_23)
   _0.alloc_expr(_18,_19,_20,_21,_22)
   _25=(_0.i64)
   _26=(_0.f64)
   _27=(_0.i32)
   _28=(_0.ptr_base)
   _29=(_0.nidxs_base)
   _30=(_0.sp_base)
   _31=(_0.cof_base)
   _32=(_0.hassp)
   _33=(_0.shape_base)
   _34=(_0.codeptr_base)
   _35=(_0.code_base)
   _36=(_0.cconst_base)
   for _37 in range(0,_20):
    _26[(_31 + _37)] = 0.0
   for _38 in range(0,(_19 + 1)):
    _27[(_28 + _38)] = (_38 * _8)
   for _39 in range(0,_18):
    _27[(_33 + _39)] = self.__p.getDim(_39)
   if _32:
    self.__p.getSp(_25,_30)
   for _40 in range(0,_20):
    _25[(_29 + _40)] = (- 999)
   _41=0
   for _42 in range(0,_19):
    for _43 in range(0,_8):
     _25[(_29 + _41)] = _4[(_13 + _43)]
     _41 += 1
   if (_22 > 0):
    _27[_34] = 0
   if (_11==0):
    _44=0
    _45=0
    for _46 in range(0,_19):
     for _47 in range(0,_8):
      _27[(_35 + _45)] = 2
      _26[(_36 + _45)] = _5[(_14 + _47)]
      _45 += 1
      _27[(_35 + _45)] = 1
      _26[(_36 + _45)] = _24[(_23 + _46)]
      _45 += 1
      _27[(_35 + _45)] = 5
      _45 += 1
      _27[((_34 + _44) + 1)] = _45
      _44 += 1
   else:
    _48=0
    _49=0
    for _50 in range(0,_19):
     for _51 in range(0,_8):
      _27[(_35 + _48)] = 2
      _26[(_36 + _48)] = _5[(_14 + _51)]
      _48 += 1
      for _52 in range(_3[(_16 + _51)],_3[((_16 + _51) + 1)]):
       _27[(_35 + _48)] = _3[(_17 + _52)]
       _26[(_36 + _48)] = _5[(_15 + _52)]
       _48 += 1
      _27[(_35 + _48)] = 3
      _48 += 1
      _27[(_35 + _48)] = 1
      _26[(_36 + _48)] = _24[(_23 + _50)]
      _48 += 1
      _27[(_35 + _48)] = 5
      _48 += 1
      _27[((_34 + _49) + 1)] = _48
      _49 += 1
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamScalarExpr(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprMulParamScalarExpr
mosek_fusion_ExprMulParamScalarExpr=__mk_mosek_fusion_ExprMulParamScalarExpr()
del __mk_mosek_fusion_ExprMulParamScalarExpr
def __mk_mosek_fusion_ExprMulParamScalar():
 class ExprMulParamScalar(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamScalar__e','_ExprMulParamScalar__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamScalar.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamScalar._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamScalar._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamScalar.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamScalar._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamScalar._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamScalar.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamScalar: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprMulParamScalar.__new__(ExprMulParamScalar)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,e.getShape())
   (self.__p) = p
   (self.__e) = e
   if (p.getND()!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   _19=_6
   _20=_7
   _21=_8
   _22=(self.__p.getNumNonzero() < self.__p.getSize())
   _23=((_8 * 3) if ((_11==0) ) else ((_8 * 4) + _11))
   _0.alloc_expr(_19,_20,_21,_22,_23)
   _24=(_0.i64)
   _25=(_0.f64)
   _26=(_0.i32)
   _27=(_0.ptr_base)
   _28=(_0.nidxs_base)
   _29=(_0.sp_base)
   _30=(_0.cof_base)
   _31=(_0.hassp)
   _32=(_0.shape_base)
   _33=(_0.codeptr_base)
   _34=(_0.code_base)
   _35=(_0.cconst_base)
   _36=self.__p.getIndex(0)
   for _37 in range(0,_21):
    _25[(_30 + _37)] = 0.0
   for _38 in range(0,(_20 + 1)):
    _26[(_27 + _38)] = _3[(_10 + _38)]
   for _39 in range(0,_19):
    _26[(_32 + _39)] = _3[(_12 + _39)]
   for _40 in range(0,_8):
    _24[(_28 + _40)] = _4[(_14 + _40)]
   if _31:
    for _41 in range(0,_20):
     _24[(_29 + _41)] = _4[(_13 + _41)]
   _42=0
   if (_23 > 0):
    _26[_33] = 0
   for _43 in range(0,_8):
    _26[(_34 + _42)] = 2
    _25[(_35 + _42)] = _5[(_15 + _43)]
    _42 += 1
    if (_11 > 0):
     for _44 in range(_3[(_17 + _43)],_3[((_17 + _43) + 1)]):
      _26[(_34 + _42)] = _3[(_18 + _44)]
      _25[(_35 + _42)] = _5[(_16 + _44)]
      _42 += 1
     _26[(_34 + _42)] = 3
     _42 += 1
    _26[(_34 + _42)] = 1
    _25[(_35 + _42)] = _36
    _42 += 1
    _26[(_34 + _42)] = 5
    _42 += 1
    _26[((_33 + _43) + 1)] = _42
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamScalar(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprMulParamScalar
mosek_fusion_ExprMulParamScalar=__mk_mosek_fusion_ExprMulParamScalar()
del __mk_mosek_fusion_ExprMulParamScalar
def __mk_mosek_fusion_ExprMulParamDiagLeft():
 class ExprMulParamDiagLeft(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamDiagLeft__e','_ExprMulParamDiagLeft__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamDiagLeft.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamDiagLeft._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamDiagLeft._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamDiagLeft.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamDiagLeft._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamDiagLeft._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamDiagLeft.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamDiagLeft: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprMulParamDiagLeft.__new__(ExprMulParamDiagLeft)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([e.getDim(1)], dtype=numpy.dtype(numpy.int32)))
   (self.__p) = p
   (self.__e) = e
   if ((p.getND()!=2) or (e.getND()!=2)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   if ((p.getDim(1)!=e.getDim(0)) or (p.getDim(0)!=e.getDim(1))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   if ((_6!=2) or ((_3[_12]!=self.__p.getDim(1)) or (_3[(_12 + 1)]!=self.__p.getDim(0)))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   _19=self.__p.getNumNonzero()
   _20=_2.alloci64(_19)
   _21=(_2.i64)
   self.__p.getSp(_21,_20)
   _22=self.__p.getDim(0)
   _23=self.__p.getDim(1)
   _24=_3[_12]
   _25=_3[(_12 + 1)]
   _26=_2.alloci32(self.__p.getNumNonzero())
   _27=(_2.i32)
   self.__p.getAllIndexes(_27,_26)
   if _9:
    _28=_2.alloci32(_7)
    _29=_2.alloci32((_25 + 1))
    _30=(_2.i32)
    for _31 in range(0,(_25 + 1)):
     _30[(_29 + _31)] = 0
    for _32 in range(0,_7):
     _30[((_29 + (_4[(_13 + _32)] % _25)) + 1)] += 1
    for _33 in range(0,_25):
     _30[((_29 + _33) + 1)] += _30[(_29 + _33)]
    for _34 in range(0,_7):
     _35=(_4[(_13 + _34)] % _25)
     _30[(_28 + _30[(_29 + _35)])] = _34
     _30[(_29 + _35)] += 1
    _36=0
    _37=0
    _38=0
    _39=0
    _40=0
    while ((_40 < _19) and (_39 < _7)):
     _41=_30[(_28 + _39)]
     _42=(_21[(_20 + _40)] // _23)
     _43=(_4[(_13 + _41)] % _25)
     if (_42 < _43):
      while ((_40 < _19) and (_21[(_20 + _40)] < ((_42 + 1) * _23))):
       _40 += 1
     elif (_43 < _42): # bld/docker-win/final/default/src/fusion/Parameter.monty:2313:15-28
      while ((_39 < _19) and ((_4[(_13 + _30[(_28 + _39)])] % _25)==_43)):
       _39 += 1
     else:
      _44=_39
      _45=_40
      while ((_40 < _19) and (_21[(_20 + _40)] < ((_42 + 1) * _23))):
       _40 += 1
      while ((_39 < _19) and ((_4[(_13 + _30[(_28 + _39)])] % _25)==_43)):
       _39 += 1
      _46=False
      while ((_45 < _40) and (_44 < _39)):
       _47=(_21[(_20 + _45)] % _23)
       _48=_30[(_28 + _44)]
       _49=(_4[(_13 + _48)] // _25)
       if (_47 < _49):
        _45 += 1
       elif (_47 > _49): # bld/docker-win/final/default/src/fusion/Parameter.monty:2327:12-25
        _44 += 1
       else:
        _37 += (_3[((_10 + _48) + 1)] - _3[(_10 + _48)])
        _46 = True
        _50=(_3[((_10 + _48) + 1)] - _3[(_10 + _48)])
        _38 += (((_3[(_17 + _3[((_10 + _48) + 1)])] - _3[(_17 + _3[(_10 + _48)])]) + (4 * _50)) if ((_11 > 0) ) else (3 * _50))
        _45 += 1
        _44 += 1
      if _46:
       _36 += 1
    _51=1
    _52=(_36 < _22)
    _0.alloc_expr(_51,_36,_37,_52,_38)
    _53=(_0.ptr_base)
    _54=(_0.nidxs_base)
    _55=((_0.sp_base) if (_52 ) else _0.alloci64(_36))
    _56=(_0.cof_base)
    _57=(_0.hassp)
    _58=(_0.shape_base)
    _59=(_0.codeptr_base)
    _60=(_0.code_base)
    _61=(_0.cconst_base)
    _62=(_0.i64)
    _63=(_0.f64)
    _64=(_0.i32)
    if (_36 > 0):
     _64[_53] = 0
     if (_37 > 0):
      _64[_59] = 0
     _64[_58] = numpy.int32(_22)
     _65=0
     _66=0
     _67=0
     _68=0
     _69=0
     while ((_69 < _19) and (_68 < _7)):
      _70=_30[(_28 + _68)]
      _71=(_21[(_20 + _69)] // _23)
      _72=(_4[(_13 + _70)] % _25)
      if (_71 < _72):
       while ((_69 < _19) and (_21[(_20 + _69)] < ((_71 + 1) * _23))):
        _69 += 1
      elif (_72 < _71): # bld/docker-win/final/default/src/fusion/Parameter.monty:2385:15-28
       while ((_68 < _19) and ((_4[(_13 + _30[(_28 + _68)])] % _25)==_72)):
        _68 += 1
      else:
       _73=_68
       _74=_69
       while ((_69 < _19) and (_21[(_20 + _69)] < ((_71 + 1) * _23))):
        _69 += 1
       while ((_68 < _19) and ((_4[(_13 + _30[(_28 + _68)])] % _25)==_72)):
        _68 += 1
       _75=0
       while ((_74 < _69) and (_73 < _68)):
        _76=(_21[(_20 + _74)] % _23)
        _77=_30[(_28 + _73)]
        _78=(_4[(_13 + _77)] // _25)
        if (_76 < _78):
         _74 += 1
        elif (_76 > _78): # bld/docker-win/final/default/src/fusion/Parameter.monty:2399:12-25
         _73 += 1
        else:
         for _79 in range(_3[(_10 + _77)],_3[((_10 + _77) + 1)]):
          _63[(_56 + _67)] = 0.0
          _62[(_54 + _67)] = _4[(_14 + _79)]
          _64[(_60 + _65)] = 2
          _63[(_61 + _65)] = _5[(_15 + _79)]
          _65 += 1
          if (_11 > 0):
           for _80 in range(_3[(_17 + _79)],_3[((_17 + _79) + 1)]):
            _64[(_60 + _65)] = _3[(_18 + _80)]
            _63[(_61 + _65)] = _5[(_16 + _80)]
            _65 += 1
           _64[(_60 + _65)] = 3
           _65 += 1
          _64[(_60 + _65)] = 1
          _63[(_61 + _65)] = _30[(_26 + _74)]
          _65 += 1
          _64[(_60 + _65)] = 5
          _65 += 1
          _64[((_59 + _67) + 1)] = _65
          _67 += 1
         _74 += 1
         _73 += 1
         _75 += 1
       if (_75 > 0):
        _62[(_55 + _66)] = _71
        _64[((_53 + _66) + 1)] = _67
        _66 += 1
    if (not _57):
     _0.popi64(_36)
    _2.clear()
   else:
    _81=0
    _82=0
    _83=0
    _84=(_2.i32)
    _85=0
    while (_85 < _19):
     _86=(_21[(_20 + _85)] // _23)
     _87=((_86 + 1) * _23)
     _88=False
     while ((_85 < _19) and (_21[(_20 + _85)] < _87)):
      _89=(_21[(_20 + _85)] % _23)
      _90=((_89 * _25) + _86)
      _91=(_3[((_10 + _90) + 1)] - _3[(_10 + _90)])
      _82 += _91
      _88 = True
      _83 += (((_3[(_17 + _3[((_10 + _90) + 1)])] - _3[(_17 + _3[(_10 + _90)])]) + (_91 * 4)) if ((_11 > 0) ) else (_91 * 3))
      _85 += 1
     if _88:
      _81 += 1
    _92=1
    _93=(_81 < _22)
    _0.alloc_expr(_92,_81,_82,_93,_83)
    _94=(_0.ptr_base)
    _95=(_0.nidxs_base)
    _96=((_0.sp_base) if (_93 ) else _0.alloci64(_81))
    _97=(_0.cof_base)
    _98=(_0.hassp)
    _99=(_0.shape_base)
    _100=(_0.codeptr_base)
    _101=(_0.code_base)
    _102=(_0.cconst_base)
    _103=(_0.i64)
    _104=(_0.f64)
    _105=(_0.i32)
    _105[_94] = 0
    if (_83 > 0):
     _105[_100] = 0
    _105[_99] = numpy.int32(_22)
    _106=0
    _107=0
    _108=0
    _109=0
    while (_109 < _19):
     _110=(_21[(_20 + _109)] // _23)
     _111=((_110 + 1) * _23)
     _112=0
     while ((_109 < _19) and (_21[(_20 + _109)] < _111)):
      _113=(_21[(_20 + _109)] % _23)
      _114=((_113 * _25) + _110)
      for _115 in range(_3[(_10 + _114)],_3[((_10 + _114) + 1)]):
       _103[(_95 + _108)] = _4[(_14 + _115)]
       _104[(_97 + _108)] = 0.0
       _105[(_101 + _106)] = 2
       _104[(_102 + _106)] = _5[(_15 + _115)]
       _106 += 1
       if (_11 > 0):
        for _116 in range(_3[(_17 + _115)],_3[((_17 + _115) + 1)]):
         _105[(_101 + _106)] = _3[(_18 + _116)]
         _104[(_102 + _106)] = _5[(_16 + _116)]
         _106 += 1
        _105[(_101 + _106)] = 3
        _106 += 1
       _105[(_101 + _106)] = 1
       _104[(_102 + _106)] = _84[(_26 + _109)]
       _106 += 1
       _105[(_101 + _106)] = 5
       _106 += 1
       _105[((_100 + _108) + 1)] = _106
       _108 += 1
      _112 += 1
      _109 += 1
     if (_112 > 0):
      _103[(_96 + _107)] = _110
      _105[((_94 + _107) + 1)] = _108
      _107 += 1
    if (not _98):
     _0.popi64(_81)
    _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamDiagLeft(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprMulParamDiagLeft
mosek_fusion_ExprMulParamDiagLeft=__mk_mosek_fusion_ExprMulParamDiagLeft()
del __mk_mosek_fusion_ExprMulParamDiagLeft
def __mk_mosek_fusion_ExprMulParamDiagRight():
 class ExprMulParamDiagRight(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamDiagRight__e','_ExprMulParamDiagRight__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamDiagRight.ctor(mosek.fusion.Expression,mosek.fusion.Parameter)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamDiagRight._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamDiagRight._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamDiagRight.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamDiagRight._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamDiagRight._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamDiagRight.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamDiagRight: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p):
    o = ExprMulParamDiagRight.__new__(ExprMulParamDiagRight)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    e,p, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e) and __arg_match_Lmosek_4fusion_4Parameter_2__(p))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    e,p, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(p))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(self,e,p):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(self,e,p):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([e.getDim(0)], dtype=numpy.dtype(numpy.int32)))
   (self.__p) = p
   (self.__e) = e
   if ((p.getND()!=2) or (e.getND()!=2)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   if ((p.getDim(1)!=e.getDim(0)) or (p.getDim(0)!=e.getDim(1))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   if ((_6!=2) or ((_3[_12]!=self.__p.getDim(1)) or (_3[(_12 + 1)]!=self.__p.getDim(0)))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   _19=self.__p.getNumNonzero()
   _20=_2.alloci64(_19)
   _21=(_2.i64)
   _22=_2.alloci32(self.__p.getNumNonzero())
   _23=(_2.i32)
   self.__p.getAllIndexes(_23,_22)
   self.__p.getSp(_21,_20)
   _24=self.__p.getDim(0)
   _25=self.__p.getDim(1)
   _26=_3[_12]
   _27=_3[(_12 + 1)]
   _28=_2.alloci32(_19)
   _29=_2.alloci32((_25 + 1))
   _30=(_2.i32)
   for _31 in range(0,(_25 + 1)):
    _30[(_29 + _31)] = 0
   for _32 in range(0,_19):
    _30[((_29 + (_21[(_20 + _32)] % _25)) + 1)] += 1
   for _33 in range(1,_25):
    _30[(_29 + _33)] += _30[((_29 + _33) - 1)]
   for _34 in range(0,_19):
    _35=(_21[(_20 + _34)] % _25)
    _30[(_28 + _30[(_29 + _35)])] = _34
    _30[(_29 + _35)] += 1
   if _9:
    _36=0
    _37=0
    _38=0
    _39=0
    _40=0
    while ((_40 < _7) and (_39 < _19)):
     _41=(_4[(_13 + _40)] // _27)
     _42=(_21[(_20 + _30[(_28 + _39)])] % _25)
     if (_41 < _42):
      _40 += 1
     elif (_41 > _42): # bld/docker-win/final/default/src/fusion/Parameter.monty:1923:13-26
      _39 += 1
     else:
      _43=_40
      _40 += 1
      _44=_39
      _39 += 1
      while ((_40 < _7) and ((_4[(_13 + _40)] // _27)==_41)):
       _40 += 1
      while ((_39 < _19) and ((_21[(_20 + _30[(_28 + _39)])] % _25)==_42)):
       _39 += 1
      _45=_44
      _46=_43
      _47=False
      while ((_46 < _40) and (_45 < _39)):
       _48=(_4[(_13 + _46)] % _27)
       _49=(_21[(_20 + _30[(_28 + _45)])] // _25)
       if (_48 < _49):
        _46 += 1
       elif (_48 > _49): # bld/docker-win/final/default/src/fusion/Parameter.monty:1939:24-37
        _45 += 1
       else:
        _47 = True
        _50=(_3[((_10 + _46) + 1)] - _3[(_10 + _46)])
        _38 += _50
        _36 += (((_3[(_17 + _3[((_10 + _46) + 1)])] - _3[(_17 + _3[(_10 + _46)])]) + (_50 * 4)) if ((_11 > 0) ) else (_50 * 3))
        _46 += 1
        _45 += 1
      if _47:
       _37 += 1
    _51=1
    _52=(_37 < _26)
    _0.alloc_expr(_51,_37,_38,_52,_36)
    _53=(_0.ptr_base)
    _54=(_0.nidxs_base)
    _55=((_0.sp_base) if (_52 ) else _0.alloci64(_37))
    _56=(_0.cof_base)
    _57=(_0.hassp)
    _58=(_0.shape_base)
    _59=(_0.codeptr_base)
    _60=(_0.code_base)
    _61=(_0.cconst_base)
    _62=(_0.i64)
    _63=(_0.f64)
    _64=(_0.i32)
    if (_37 > 0):
     _64[_53] = 0
     if (_36 > 0):
      _64[_59] = 0
     _64[_58] = numpy.int32(_26)
     _65=0
     _66=0
     _67=0
     _68=0
     _69=0
     while ((_69 < _7) and (_68 < _19)):
      _70=(_4[(_13 + _69)] // _27)
      _71=(_21[(_20 + _30[(_28 + _68)])] % _25)
      if (_70 < _71):
       while ((_69 < _7) and ((_4[(_13 + _69)] // _27)==_70)):
        _69 += 1
      elif (_70 > _71): # bld/docker-win/final/default/src/fusion/Parameter.monty:2007:22-35
       while ((_68 < _19) and ((_21[(_20 + _30[(_28 + _68)])] % _25)==_71)):
        _68 += 1
      else:
       _72=_69
       _69 += 1
       _73=_68
       _68 += 1
       while ((_69 < _7) and ((_4[(_13 + _69)] // _27)==_70)):
        _69 += 1
       while ((_68 < _19) and ((_21[(_20 + _30[(_28 + _68)])] % _25)==_71)):
        _68 += 1
       _74=_73
       _75=_72
       _76=0
       while ((_75 < _69) and (_74 < _68)):
        _77=(_4[(_13 + _75)] % _27)
        _78=(_21[(_20 + _30[(_28 + _74)])] // _25)
        if (_77 < _78):
         _75 += 1
        elif (_77 > _78): # bld/docker-win/final/default/src/fusion/Parameter.monty:2021:26-39
         _74 += 1
        else:
         for _79 in range(_3[(_10 + _75)],_3[((_10 + _75) + 1)]):
          _62[(_54 + _67)] = _4[(_14 + _79)]
          _63[(_56 + _67)] = 0.0
          _64[(_60 + _65)] = 2
          _63[(_61 + _65)] = _5[(_15 + _79)]
          _65 += 1
          if (_11 > 0):
           for _80 in range(_3[(_17 + _79)],_3[((_17 + _79) + 1)]):
            _64[(_60 + _65)] = _3[(_18 + _80)]
            _63[(_61 + _65)] = _5[(_16 + _80)]
            _65 += 1
           _64[(_60 + _65)] = 3
           _65 += 1
          _64[(_60 + _65)] = 1
          _63[(_61 + _65)] = _30[(_22 + _30[(_28 + _74)])]
          _65 += 1
          _64[(_60 + _65)] = 5
          _65 += 1
          _64[((_59 + _67) + 1)] = _65
          _67 += 1
         _76 += 1
         _75 += 1
         _74 += 1
       if (_76 > 0):
        _62[(_55 + _66)] = _70
        _64[((_53 + _66) + 1)] = _67
        _66 += 1
     if (_37 > _64[_58]):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid shape")
     if (_66!=_37):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num elements")
     if (_67!=_38):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num nonzeros")
    if (not _57):
     _0.popi64(_37)
    _2.clear()
   else:
    _81=0
    _82=0
    _83=0
    _84=0
    while (_84 < _19):
     _85=(_21[(_20 + _30[(_28 + _84)])] % _25)
     _86=_84
     _84 += 1
     while ((_84 < _19) and ((_21[(_20 + _30[(_28 + _84)])] % _25)==_85)):
      _84 += 1
     for _87 in range(_86,_84):
      _88=(_21[(_20 + _30[(_28 + _84)])] // _25)
      _89=((_85 * _27) + _88)
      _90=(_3[((_10 + _89) + 1)] - _3[(_10 + _89)])
      _83 += _90
      _81 += (((_3[(_17 + _3[((_10 + _89) + 1)])] - _3[(_17 + _3[(_10 + _89)])]) + (_90 * 4)) if ((_11 > 0) ) else (_90 * 3))
     _82 += 1
    _91=1
    _92=(_82 < _26)
    _0.alloc_expr(_91,_82,_83,_92,_81)
    _93=(_0.ptr_base)
    _94=(_0.nidxs_base)
    _95=((_0.sp_base) if (_92 ) else _0.alloci64(_82))
    _96=(_0.cof_base)
    _97=(_0.hassp)
    _98=(_0.shape_base)
    _99=(_0.codeptr_base)
    _100=(_0.code_base)
    _101=(_0.cconst_base)
    _102=(_0.i64)
    _103=(_0.f64)
    _104=(_0.i32)
    _104[_93] = 0
    if (_81 > 0):
     _104[_99] = 0
    _104[_98] = numpy.int32(_26)
    _105=0
    _106=0
    _107=0
    _108=0
    while (_108 < _19):
     _109=(_21[(_20 + _30[(_28 + _108)])] % _25)
     _110=_108
     _108 += 1
     while ((_108 < _19) and ((_21[(_20 + _30[(_28 + _108)])] % _25)==_109)):
      _108 += 1
     for _111 in range(_110,_108):
      _112=(_21[(_20 + _30[(_28 + _111)])] // _25)
      _113=((_109 * _27) + _112)
      for _114 in range(_3[(_10 + _113)],_3[((_10 + _113) + 1)]):
       _102[(_94 + _107)] = _4[(_14 + _114)]
       _103[(_96 + _107)] = 0.0
       _104[(_100 + _105)] = 2
       _103[(_101 + _105)] = _5[(_15 + _114)]
       _105 += 1
       if (_11 > 0):
        for _115 in range(_3[(_17 + _114)],_3[((_17 + _114) + 1)]):
         _104[(_100 + _105)] = _3[(_18 + _115)]
         _103[(_101 + _105)] = _5[(_16 + _115)]
         _105 += 1
        _104[(_100 + _105)] = 3
        _105 += 1
       _104[(_100 + _105)] = 1
       _103[(_101 + _105)] = _30[(_22 + _30[(_28 + _111)])]
       _105 += 1
       _104[(_100 + _105)] = 5
       _105 += 1
       _104[((_99 + _107) + 1)] = _105
       _107 += 1
     _102[(_95 + _106)] = _109
     _104[((_93 + _106) + 1)] = _107
     _106 += 1
    if (_82 > _104[_98]):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid shape")
    if (_106!=_82):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num elements")
    if (_107!=_83):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num nonzeros")
    if (not _97):
     _0.popi64(_82)
    _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamDiagRight(")._a_S(self.__e.toString())._a_S(",")._a_S(self.__p.toString())._a_S(")")._toString_())
 return ExprMulParamDiagRight
mosek_fusion_ExprMulParamDiagRight=__mk_mosek_fusion_ExprMulParamDiagRight()
del __mk_mosek_fusion_ExprMulParamDiagRight
def __mk_mosek_fusion_ExprDotParam():
 class ExprDotParam(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprDotParam__e','_ExprDotParam__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprDotParam.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprDotParam._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprDotParam._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDotParam.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprDotParam._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprDotParam._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDotParam.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprDotParam: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprDotParam.__new__(ExprDotParam)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
   (self.__p) = p
   (self.__e) = e
   if (p.getND()!=e.getND()):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   for _0 in range(0,p.getND()):
    if (p.getDim(_0)!=e.getDim(_0)):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   _19=self.__p.getNumNonzero()
   _20=_2.alloci64(_19)
   self.__p.getSp((_2.i64),_20)
   _21=_2.alloci32(self.__p.getNumNonzero())
   _22=(_2.i32)
   self.__p.getAllIndexes(_22,_21)
   _23=(_2.i64)
   _24=0
   _25=1
   _26=0
   if _9:
    _27=0
    _28=0
    while ((_27 < _7) and (_28 < _19)):
     if (_4[(_13 + _27)] < _23[(_20 + _28)]):
      _27 += 1
     elif (_4[(_13 + _27)] > _23[(_20 + _28)]): # bld/docker-win/final/default/src/fusion/Parameter.monty:1700:20-46
      _28 += 1
     else:
      _29=(_3[((_10 + _27) + 1)] - _3[(_10 + _27)])
      _24 += _29
      _26 += (((_3[(_17 + _3[((_10 + _27) + 1)])] - _3[(_17 + _3[(_10 + _27)])]) + (4 * _29)) if ((_11 > 0) ) else (3 * _29))
      _27 += 1
      _28 += 1
   else:
    for _30 in range(0,_19):
     _24 += (_3[((_10 + _23[(_20 + _30)]) + 1)] - _3[(_10 + _23[(_20 + _30)])])
    if (_11 > 0):
     for _31 in range(0,_19):
      _26 += ((_3[(_17 + _3[((_10 + _23[(_20 + _31)]) + 1)])] - _3[(_17 + _3[(_10 + _23[(_20 + _31)])])]) + (4 * (_3[((_10 + _23[(_20 + _31)]) + 1)] - _3[(_10 + _23[(_20 + _31)])])))
    else:
     for _32 in range(0,_19):
      _26 += (3 * (_3[((_10 + _23[(_20 + _32)]) + 1)] - _3[(_10 + _23[(_20 + _32)])]))
   _33=1
   for _34 in range(0,_6):
    _33 *= _3[(_12 + _34)]
   _0.alloc_expr(0,_25,_24,False,_26)
   _35=(_0.ptr_base)
   _36=(_0.nidxs_base)
   _37=(_0.cof_base)
   _38=(_0.hassp)
   _39=(_0.shape_base)
   _40=(_0.codeptr_base)
   _41=(_0.code_base)
   _42=(_0.cconst_base)
   _43=(_0.i64)
   _44=(_0.f64)
   _45=(_0.i32)
   _45[_35] = 0
   _45[(_35 + 1)] = _24
   if (_26 > 0):
    _45[_40] = 0
   if _9:
    _46=0
    _47=0
    _48=0
    _49=0
    _50=0
    while ((_49 < _7) and (_50 < _19)):
     if (_4[(_13 + _49)] < _23[(_20 + _50)]):
      _49 += 1
     elif (_4[(_13 + _49)] > _23[(_20 + _50)]): # bld/docker-win/final/default/src/fusion/Parameter.monty:1749:20-46
      _50 += 1
     else:
      for _51 in range(_3[(_10 + _49)],_3[((_10 + _49) + 1)]):
       _43[(_36 + _47)] = _4[(_14 + _51)]
       _44[(_37 + _47)] = 0.0
       _45[(_41 + _46)] = 2
       _44[(_42 + _46)] = _5[(_15 + _51)]
       _46 += 1
       if (_11 > 0):
        for _52 in range(_3[(_17 + _51)],_3[((_17 + _51) + 1)]):
         _45[(_41 + _46)] = _3[(_18 + _52)]
         _44[(_42 + _46)] = _5[(_16 + _52)]
         _46 += 1
        _45[(_41 + _46)] = 3
        _46 += 1
       _45[(_41 + _46)] = 1
       _44[(_42 + _46)] = _22[(_21 + _50)]
       _46 += 1
       _45[(_41 + _46)] = 5
       _46 += 1
       _45[((_40 + _47) + 1)] = _46
       _47 += 1
      _49 += 1
      _50 += 1
    if (_48!=_25):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken elmi")
    if (_47!=_24):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken nzi")
    if (_46!=_26):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken codei")
   else:
    _53=0
    _54=0
    for _55 in range(0,_19):
     _56=_55
     _57=_23[(_20 + _55)]
     for _58 in range(_3[(_10 + _57)],_3[((_10 + _57) + 1)]):
      _43[(_36 + _54)] = _4[(_14 + _58)]
      _44[(_37 + _54)] = 0.0
      _45[(_41 + _53)] = 2
      _44[(_42 + _53)] = _5[(_15 + _58)]
      _53 += 1
      if (_11 > 0):
       for _59 in range(_3[(_17 + _58)],_3[((_17 + _58) + 1)]):
        _45[(_41 + _53)] = _3[(_18 + _59)]
        _44[(_42 + _53)] = _5[(_16 + _59)]
        _53 += 1
       _45[(_41 + _53)] = 3
       _53 += 1
      _45[(_41 + _53)] = 1
      _44[(_42 + _53)] = _22[(_21 + _55)]
      _53 += 1
      _45[(_41 + _53)] = 5
      _53 += 1
      _45[((_40 + _54) + 1)] = _53
      _54 += 1
    if (_54!=_24):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid nzi")
    if (_53!=_26):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid codei")
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprDotParam(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprDotParam
mosek_fusion_ExprDotParam=__mk_mosek_fusion_ExprDotParam()
del __mk_mosek_fusion_ExprDotParam
def __mk_mosek_fusion_ExprMulParamElem():
 class ExprMulParamElem(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamElem__e','_ExprMulParamElem__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamElem.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamElem._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamElem._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamElem.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamElem._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamElem._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamElem.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamElem: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprMulParamElem.__new__(ExprMulParamElem)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,e.getShape())
   (self.__p) = p
   (self.__e) = e
   if (p.getND()!=e.getND()):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   for _0 in range(0,p.getND()):
    if (p.getDim(_0)!=e.getDim(_0)):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   _19=self.__p.getNumNonzero()
   _20=_2.alloci64(_19)
   self.__p.getSp((_2.i64),_20)
   _21=_2.alloci32(self.__p.getNumNonzero())
   _22=(_2.i32)
   self.__p.getAllIndexes(_22,_21)
   _23=(_2.i64)
   _24=_6
   _25=0
   _26=0
   _27=0
   if _9:
    _28=0
    _29=0
    while ((_28 < _7) and (_29 < _19)):
     if (_4[(_13 + _28)] < _23[(_20 + _29)]):
      _28 += 1
     elif (_4[(_13 + _28)] > _23[(_20 + _29)]): # bld/docker-win/final/default/src/fusion/Parameter.monty:1470:20-46
      _29 += 1
     else:
      _30=(_3[((_10 + _28) + 1)] - _3[(_10 + _28)])
      _25 += _30
      _27 += (((_3[(_17 + _3[((_10 + _28) + 1)])] - _3[(_17 + _3[(_10 + _28)])]) + (4 * _30)) if ((_11 > 0) ) else (3 * _30))
      _26 += 1
      _28 += 1
      _29 += 1
   else:
    _26 = _19
    for _31 in range(0,_19):
     _25 += (_3[((_10 + _23[(_20 + _31)]) + 1)] - _3[(_10 + _23[(_20 + _31)])])
    if (_11 > 0):
     for _32 in range(0,_19):
      _27 += ((_3[(_17 + _3[((_10 + _23[(_20 + _32)]) + 1)])] - _3[(_17 + _3[(_10 + _23[(_20 + _32)])])]) + (4 * (_3[((_10 + _23[(_20 + _32)]) + 1)] - _3[(_10 + _23[(_20 + _32)])])))
    else:
     for _33 in range(0,_19):
      _27 += (3 * (_3[((_10 + _23[(_20 + _33)]) + 1)] - _3[(_10 + _23[(_20 + _33)])]))
   _34=1
   for _35 in range(0,_6):
    _34 *= _3[(_12 + _35)]
   _36=(_26 < _34)
   _0.alloc_expr(_24,_26,_25,_36,_27)
   _37=(_0.ptr_base)
   _38=(_0.nidxs_base)
   _39=((_0.sp_base) if (_36 ) else _0.alloci64(_26))
   _40=(_0.cof_base)
   _41=(_0.hassp)
   _42=(_0.shape_base)
   _43=(_0.codeptr_base)
   _44=(_0.code_base)
   _45=(_0.cconst_base)
   _46=(_0.i64)
   _47=(_0.f64)
   _48=(_0.i32)
   for _49 in range(0,_6):
    _48[(_42 + _49)] = _3[(_12 + _49)]
   _48[_37] = 0
   if (_27 > 0):
    _48[_43] = 0
   if _9:
    _50=0
    _51=0
    _52=0
    _53=0
    _54=0
    while ((_53 < _7) and (_54 < _19)):
     if (_4[(_13 + _53)] < _23[(_20 + _54)]):
      _53 += 1
     elif (_4[(_13 + _53)] > _23[(_20 + _54)]): # bld/docker-win/final/default/src/fusion/Parameter.monty:1528:20-46
      _54 += 1
     else:
      for _55 in range(_3[(_10 + _53)],_3[((_10 + _53) + 1)]):
       _46[(_38 + _51)] = _4[(_14 + _55)]
       _47[(_40 + _51)] = 0.0
       _48[(_44 + _50)] = 2
       _47[(_45 + _50)] = _5[(_15 + _55)]
       _50 += 1
       if (_11 > 0):
        for _56 in range(_3[(_17 + _55)],_3[((_17 + _55) + 1)]):
         _48[(_44 + _50)] = _3[(_18 + _56)]
         _47[(_45 + _50)] = _5[(_16 + _56)]
         _50 += 1
        _48[(_44 + _50)] = 3
        _50 += 1
       _48[(_44 + _50)] = 1
       _47[(_45 + _50)] = _22[(_21 + _54)]
       _50 += 1
       _48[(_44 + _50)] = 5
       _50 += 1
       _48[((_43 + _51) + 1)] = _50
       _51 += 1
      _46[(_39 + _52)] = _4[(_13 + _53)]
      _48[((_37 + _52) + 1)] = _51
      _52 += 1
      _53 += 1
      _54 += 1
    if (_52!=_26):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken elmi")
    if (_51!=_25):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken nzi")
    if (_50!=_27):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: broken codei")
   else:
    _57=0
    _58=0
    for _59 in range(0,_19):
     _60=_59
     _61=_23[(_20 + _59)]
     for _62 in range(_3[(_10 + _61)],_3[((_10 + _61) + 1)]):
      _46[(_38 + _58)] = _4[(_14 + _62)]
      _47[(_40 + _58)] = 0.0
      _48[(_44 + _57)] = 2
      _47[(_45 + _57)] = _5[(_15 + _62)]
      _57 += 1
      if (_11 > 0):
       for _63 in range(_3[(_17 + _62)],_3[((_17 + _62) + 1)]):
        _48[(_44 + _57)] = _3[(_18 + _63)]
        _47[(_45 + _57)] = _5[(_16 + _63)]
        _57 += 1
       _48[(_44 + _57)] = 3
       _57 += 1
      _48[(_44 + _57)] = 1
      _47[(_45 + _57)] = _22[(_21 + _59)]
      _57 += 1
      _48[(_44 + _57)] = 5
      _57 += 1
      _48[((_43 + _58) + 1)] = _57
      _58 += 1
     _46[(_39 + _60)] = _61
     _48[((_37 + _60) + 1)] = _58
    if (_27!=_57):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Invalid code list result")
   if (not _41):
    _0.popi64(_26)
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamElem(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprMulParamElem
mosek_fusion_ExprMulParamElem=__mk_mosek_fusion_ExprMulParamElem()
del __mk_mosek_fusion_ExprMulParamElem
def __mk_mosek_fusion_ExprMulParamRight():
 class ExprMulParamRight(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamRight__e','_ExprMulParamRight__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamRight.ctor(mosek.fusion.Expression,mosek.fusion.Parameter)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamRight._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamRight._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamRight.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamRight._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamRight._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamRight.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamRight: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p):
    o = ExprMulParamRight.__new__(ExprMulParamRight)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    e,p, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e) and __arg_match_Lmosek_4fusion_4Parameter_2__(p))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    e,p, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(p))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(self,e,p):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(e,p)
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(self,e,p):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([e.getDim(0),p.getDim(1)], dtype=numpy.dtype(numpy.int32)))
   (self.__p) = p
   (self.__e) = e
   if ((p.getND()!=2) or (e.getND()!=2)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   if (p.getDim(0)!=e.getDim(1)):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ptr_base)
   _11=(_1.ncodeatom)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.cconst_base)
   _17=(_1.codeptr_base)
   _18=(_1.code_base)
   if ((_6!=2) or (self.__p.getDim(0)!=_3[(_12 + 1)])):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   _19=_3[_12]
   _20=_3[(_12 + 1)]
   _21=self.__p.getDim(0)
   _22=self.__p.getDim(1)
   _23=self.__p.getNumNonzero()
   _24=_2.alloci32(self.__p.getNumNonzero())
   _25=(_2.i32)
   self.__p.getAllIndexes(_25,_24)
   _26=_2.alloci32(_23)
   _27=_2.alloci64(_23)
   self.__p.getSp((_2.i64),_27)
   _28=_2.alloci32((_22 + 1))
   _29=(_2.i32)
   _30=(_2.i64)
   for _31 in range(0,(_22 + 1)):
    _29[(_28 + _31)] = 0
   for _32 in range(0,_23):
    _29[((_28 + (_30[(_27 + _32)] % _22)) + 1)] += 1
   for _33 in range(0,_22):
    _29[((_28 + _33) + 1)] += _29[(_28 + _33)]
   for _34 in range(0,_23):
    _29[(_26 + _29[(_28 + (_30[(_27 + _34)] % _22))])] = _34
    _29[(_28 + (_30[(_27 + _34)] % _22))] += 1
   _35=(_2.i32)
   _36=(_2.i64)
   _37=0
   _38=0
   _39=0
   if ((not self.__p.isSparse()) and (not _9)):
    _39 = (_8 * _22)
    _38 = (_19 * _22)
    _37 = (((_11 + (_8 * 4)) * _22) if ((_11 > 0) ) else ((_8 * _22) * 3))
   elif (not _9): # bld/docker-win/final/default/src/fusion/Parameter.monty:1113:16-25
    _40=0
    while (_40 < _23):
     _41=(_36[(_27 + _35[(_26 + _40)])] % _22)
     _42=_40
     while ((_40 < _23) and ((_36[(_27 + _35[(_26 + _40)])] % _22)==_41)):
      _43=(_36[(_27 + _35[(_26 + _40)])] // _22)
      for _44 in range(0,_19):
       _45=((_44 * _20) + _43)
       _46=(_3[((_10 + _45) + 1)] - _3[(_10 + _45)])
       _39 += _46
       _37 += (((_3[(_17 + _3[((_10 + _45) + 1)])] - _3[(_17 + _3[(_10 + _45)])]) + (_46 * 4)) if ((_11 > 0) ) else (_46 * 3))
      _40 += 1
     _38 += _19
   else:
    _47=0
    while (_47 < _7):
     _48=(_4[(_13 + _47)] // _20)
     _49=_47
     _50=((_48 + 1) * _20)
     while ((_47 < _7) and (_4[(_13 + _47)] < _50)):
      _47 += 1
     _51=0
     while (_51 < _23):
      _52=(_36[(_27 + _35[(_26 + _51)])] % _22)
      _53=_51
      while ((_51 < _23) and (_52==(_36[(_27 + _35[(_26 + _51)])] % _22))):
       _51 += 1
      _54=0
      _55=_53
      _56=_49
      while ((_56 < _47) and (_55 < _51)):
       _57=(_4[(_13 + _56)] % _20)
       _58=(_36[(_27 + _35[(_26 + _55)])] // _22)
       if (_57 < _58):
        _56 += 1
       elif (_57 > _58): # bld/docker-win/final/default/src/fusion/Parameter.monty:1161:24-35
        _55 += 1
       else:
        _59=(_3[((_10 + _56) + 1)] - _3[(_10 + _56)])
        _39 += _59
        _37 += (((_3[(_17 + _3[((_10 + _56) + 1)])] - _3[(_17 + _3[(_10 + _56)])]) + (_59 * 4)) if ((_11 > 0) ) else (_59 * 3))
        _56 += 1
        _55 += 1
        _54 += 1
      if (_54 > 0):
       _38 += 1
   _60=2
   _61=(_38 < (_22 * _19))
   _0.alloc_expr(_60,_38,_39,_61,_37)
   _62=(_0.ptr_base)
   _63=(_0.nidxs_base)
   _64=((_0.sp_base) if (_61 ) else _0.alloci64(_38))
   _65=(_0.cof_base)
   _66=(_0.hassp)
   _67=(_0.shape_base)
   _68=(_0.codeptr_base)
   _69=(_0.code_base)
   _70=(_0.cconst_base)
   _71=(_0.i64)
   _72=(_0.f64)
   _73=(_0.i32)
   _73[_62] = 0
   if (_37 > 0):
    _73[_68] = 0
   _73[_67] = _19
   _73[(_67 + 1)] = _22
   _74=0
   _75=0
   _76=0
   if (not _9):
    for _77 in range(0,_19):
     _78=0
     while (_78 < _23):
      _79=_78
      _80=(_36[(_27 + _35[(_26 + _78)])] % _22)
      while ((_78 < _23) and (_80==(_36[(_27 + _35[(_26 + _78)])] % _22))):
       _78 += 1
      _81=_79
      while (_81 < _78):
       _82=(_36[(_27 + _35[(_26 + _81)])] // _22)
       _83=((_77 * _20) + _82)
       _84=_35[(_24 + _35[(_26 + _81)])]
       for _85 in range(_3[(_10 + _83)],_3[((_10 + _83) + 1)]):
        _71[(_63 + _76)] = _4[(_14 + _85)]
        _72[(_65 + _76)] = 0
        _73[(_69 + _74)] = 2
        _72[(_70 + _74)] = _5[(_15 + _85)]
        _74 += 1
        if (_11 > 0):
         for _86 in range(_3[(_17 + _85)],_3[((_17 + _85) + 1)]):
          _73[(_69 + _74)] = _3[(_18 + _86)]
          _72[(_70 + _74)] = _5[(_16 + _86)]
          _74 += 1
         _73[(_69 + _74)] = 3
         _74 += 1
        _73[(_69 + _74)] = 1
        _72[(_70 + _74)] = _84
        _74 += 1
        _73[(_69 + _74)] = 5
        _74 += 1
        _73[((_68 + _76) + 1)] = _74
        _76 += 1
       _81 += 1
      _73[((_62 + _75) + 1)] = _76
      _71[(_64 + _75)] = ((_77 * _22) + _80)
      _75 += 1
   else:
    _87=0
    while (_87 < _7):
     _88=(_4[(_13 + _87)] // _20)
     _89=_87
     _90=((_88 + 1) * _20)
     while ((_87 < _7) and (_4[(_13 + _87)] < _90)):
      _87 += 1
     _91=0
     while (_91 < _23):
      _92=(_36[(_27 + _35[(_26 + _91)])] % _22)
      _93=_91
      while ((_91 < _23) and (_92==(_36[(_27 + _35[(_26 + _91)])] % _22))):
       _91 += 1
      _94=0
      _95=_93
      _96=_89
      while ((_96 < _87) and (_95 < _91)):
       _97=(_4[(_13 + _96)] % _20)
       _98=(_36[(_27 + _35[(_26 + _95)])] // _22)
       if (_97 < _98):
        _96 += 1
       elif (_97 > _98): # bld/docker-win/final/default/src/fusion/Parameter.monty:1342:24-35
        _95 += 1
       else:
        _99=_35[(_24 + _35[(_26 + _95)])]
        for _100 in range(_3[(_10 + _96)],_3[((_10 + _96) + 1)]):
         _71[(_63 + _76)] = _4[(_14 + _100)]
         _72[(_65 + _76)] = 0
         _73[(_69 + _74)] = 2
         _72[(_70 + _74)] = _5[(_15 + _100)]
         _74 += 1
         if (_11 > 0):
          for _101 in range(_3[(_17 + _100)],_3[((_17 + _100) + 1)]):
           _73[(_69 + _74)] = _3[(_18 + _101)]
           _72[(_70 + _74)] = _5[(_16 + _101)]
           _74 += 1
          _73[(_69 + _74)] = 3
          _74 += 1
         _73[(_69 + _74)] = 1
         _72[(_70 + _74)] = _99
         _74 += 1
         _73[(_69 + _74)] = 5
         _74 += 1
         _73[((_68 + _76) + 1)] = _74
         _76 += 1
        _96 += 1
        _95 += 1
        _94 += 1
      if (_94 > 0):
       _73[((_62 + _75) + 1)] = _76
       _71[(_64 + _75)] = ((_88 * _22) + _92)
       _75 += 1
   if (not _66):
    _0.popi64(_38)
   if (_75!=_38):
    raise mosek_fusion_UnexpectedError._ctor_S("broken elmi")
   if (_76!=_39):
    raise mosek_fusion_UnexpectedError._ctor_S("broken nzi")
   if (_74!=_37):
    raise mosek_fusion_UnexpectedError._ctor_S("broken codei")
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamRight(")._a_S(self.__e.toString())._a_S(",")._a_S(self.__p.toString())._a_S(")")._toString_())
 return ExprMulParamRight
mosek_fusion_ExprMulParamRight=__mk_mosek_fusion_ExprMulParamRight()
del __mk_mosek_fusion_ExprMulParamRight
def __mk_mosek_fusion_ExprMulParamLeft():
 class ExprMulParamLeft(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulParamLeft__e','_ExprMulParamLeft__p']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulParamLeft.ctor(mosek.fusion.Parameter,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamLeft._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulParamLeft._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamLeft.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulParamLeft._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulParamLeft._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulParamLeft.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulParamLeft: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e):
    o = ExprMulParamLeft.__new__(ExprMulParamLeft)
    o._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    p,e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(p) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
    self._ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(p,e)
  def _ctor_init_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(self,p,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([p.getDim(0),e.getDim(1)], dtype=numpy.dtype(numpy.int32)))
   (self.__p) = p
   (self.__e) = e
   if ((p.getND()!=2) or (e.getND()!=2)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
   if (p.getDim(1)!=e.getDim(0)):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ncodeatom)
   _11=(_1.ptr_base)
   _12=(_1.code_base)
   _13=(_1.cconst_base)
   _14=(_1.codeptr_base)
   _15=(_1.shape_base)
   _16=(_1.sp_base)
   _17=(_1.nidxs_base)
   _18=(_1.cof_base)
   _19=(_1.cconst_base)
   if ((_6!=2) or (_3[_15]!=self.__p.getDim(1))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   _20=self.__p.getDim(0)
   _21=self.__p.getDim(1)
   _22=_3[_15]
   _23=_3[(_15 + 1)]
   _24=self.__p.getNumNonzero()
   _25=_2.alloci32(self.__p.getNumNonzero())
   _26=(_2.i32)
   self.__p.getAllIndexes(_26,_25)
   if ((not _9) and (not self.__p.isSparse())):
    _27=2
    _28=(_23 * self.__p.getDim(0))
    _29=(_8 * self.__p.getDim(0))
    _30=(((self.__p.getDim(0) * _10) + (4 * _29)) if ((_10 > 0) ) else (3 * _29))
    _31=False
    _0.alloc_expr(_27,_28,_29,_31,_30)
    _32=(_0.i64)
    _33=(_0.f64)
    _34=(_0.i32)
    _35=(_0.ptr_base)
    _36=(_0.nidxs_base)
    _37=(_0.cof_base)
    _38=(_0.code_base)
    _39=(_0.codeptr_base)
    _40=(_0.cconst_base)
    _41=(_0.hassp)
    _42=(_0.shape_base)
    _34[_42] = _20
    _34[(_42 + 1)] = _23
    _34[_35] = 0
    _34[_39] = 0
    _43=0
    _44=0
    _45=0
    for _46 in range(0,self.__p.getDim(0)):
     for _47 in range(0,self.__e.getDim(1)):
      for _48 in range(0,self.__p.getDim(1)):
       for _49 in range(_3[((_11 + (_48 * _23)) + _47)],_3[(((_11 + (_48 * _23)) + _47) + 1)]):
        _32[(_36 + _43)] = _4[(_17 + _49)]
        _33[(_37 + _43)] = 0.0
        _34[(_38 + _45)] = 2
        _33[(_40 + _45)] = _5[(_18 + _49)]
        _45 += 1
        if (_10 > 0):
         for _50 in range(_3[(_14 + _49)],_3[((_14 + _49) + 1)]):
          _34[(_38 + _45)] = _3[(_12 + _50)]
          _33[(_40 + _45)] = _5[(_13 + _50)]
          _45 += 1
         _34[(_38 + _45)] = 3
         _45 += 1
        _34[(_38 + _45)] = 1
        _33[(_40 + _45)] = _26[((_25 + (_46 * _21)) + _48)]
        _45 += 1
        _34[(_38 + _45)] = 5
        _45 += 1
        _34[((_39 + _43) + 1)] = _45
        _43 += 1
      _34[((_35 + _44) + 1)] = _43
      _44 += 1
    if (_45!=_30):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect a-code length")
    if (_43!=_29):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nnz length")
    if (_44!=_28):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nelem length")
    for _51 in range(0,_28):
     if (_34[(_35 + _51)] > _34[((_35 + _51) + 1)]):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect ptr indexes")
   elif (not _9): # bld/docker-win/final/default/src/fusion/Parameter.monty:673:16-25
    _52=_7
    _53=_24
    _54=_2.alloci64(_53)
    _55=(_2.i64)
    self.__p.getSp(_55,_54)
    _56=0
    _57=0
    _58=0
    _59=0
    while (_59 < _24):
     _60=numpy.int32((_55[(_54 + _59)] // _21))
     _61=_59
     _59 += 1
     while ((_59 < _24) and (_55[(_54 + _59)] < ((_60 + 1) * _21))):
      _59 += 1
     _62=_59
     for _63 in range(0,_23):
      for _64 in range(_61,_62):
       _65=(((_55[(_54 + _64)] % _21) * _23) + _63)
       _66=(_3[((_11 + _65) + 1)] - _3[(_11 + _65)])
       _57 += _66
       if (_10 > 0):
        _58 += ((_3[(_14 + _3[((_11 + _65) + 1)])] - _3[(_14 + _3[(_11 + _65)])]) + (4 * _66))
       else:
        _58 += (3 * _66)
      _56 += 1
    _67=(_56 < (_20 * _23))
    _68=2
    _0.alloc_expr(_68,_56,_57,_67,_58)
    _69=(_0.ptr_base)
    _70=(_0.nidxs_base)
    _71=((_0.sp_base) if (_67 ) else _0.alloci64(_56))
    _72=(_0.cof_base)
    _73=(_0.hassp)
    _74=(_0.shape_base)
    _75=(_0.codeptr_base)
    _76=(_0.code_base)
    _77=(_0.cconst_base)
    _78=(_0.i64)
    _79=(_0.f64)
    _80=(_0.i32)
    _80[_74] = _20
    _80[(_74 + 1)] = _23
    _81=0
    _82=0
    _83=0
    if (_58 > 0):
     _80[_75] = 0
    _80[_69] = 0
    for _84 in range(0,_57):
     _79[(_72 + _84)] = 0.0
    _85=0
    while (_85 < _24):
     _86=numpy.int32((_55[(_54 + _85)] // _21))
     _87=_85
     _85 += 1
     while ((_85 < _24) and (_55[(_54 + _85)] < ((_86 + 1) * _21))):
      _85 += 1
     _88=_85
     for _89 in range(0,_23):
      for _90 in range(_87,_88):
       _91=(((_55[(_54 + _90)] % _21) * _23) + _89)
       for _92 in range(_3[(_11 + _91)],_3[((_11 + _91) + 1)]):
        _78[(_70 + _81)] = _4[(_17 + _92)]
        _80[(_76 + _83)] = 2
        _79[(_77 + _83)] = _5[(_18 + _92)]
        _83 += 1
        if (_10 > 0):
         for _93 in range(_3[(_14 + _92)],_3[((_14 + _92) + 1)]):
          _80[(_76 + _83)] = _3[(_12 + _93)]
          _79[(_77 + _83)] = _5[(_13 + _93)]
          _83 += 1
         _80[(_76 + _83)] = 3
         _83 += 1
        _80[(_76 + _83)] = 1
        _79[(_77 + _83)] = _26[(_25 + _90)]
        _83 += 1
        _80[(_76 + _83)] = 5
        _83 += 1
        _80[((_75 + _81) + 1)] = _83
        _81 += 1
      _80[((_69 + _82) + 1)] = _81
      _78[(_71 + _82)] = ((numpy.int64(_86) * _23) + _89)
      _82 += 1
    if (_83!=_58):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect code list")
    if (_81!=_57):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nnz length")
    if (_82!=_56):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nelem length")
    if (_80[(_69 + _56)]!=_57):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect ptr")
    if (not _73):
     _0.popi64(_56)
    _2.clear()
   else:
    _94=_7
    _95=_2.alloci32(_94)
    _96=self.__p.getNumNonzero()
    _97=_2.alloci64(_96)
    _98=_2.alloci32((_3[(_15 + 1)] + 1))
    _99=(_2.i32)
    _100=(_2.i64)
    self.__p.getSp(_100,_97)
    _101=_3[(_15 + 1)]
    for _102 in range(0,(_3[(_15 + 1)] + 1)):
     _99[(_98 + _102)] = 0
    for _103 in range(0,_7):
     _99[((_98 + (_4[(_16 + _103)] % _101)) + 1)] += 1
    for _104 in range(0,_101):
     _99[((_98 + _104) + 1)] += _99[(_98 + _104)]
    for _105 in range(0,_7):
     _99[(_95 + _99[(_98 + (_4[(_16 + _105)] % _101))])] = _105
     _99[(_98 + (_4[(_16 + _105)] % _101))] += 1
    _106=0
    _107=0
    _108=0
    _109=_3[(_15 + 1)]
    _110=_3[_15]
    _111=self.__p.getDim(1)
    _112=self.__p.getDim(0)
    _113=0
    while (_113 < _96):
     _114=_113
     _115=(_100[(_97 + _113)] // _111)
     while ((_113 < _96) and (_100[(_97 + _113)] < ((_115 + 1) * _111))):
      _113 += 1
     _116=0
     while (_116 < _7):
      _117=_116
      _118=(_4[(_16 + _99[(_95 + _116)])] % _109)
      _116 += 1
      while ((_116 < _7) and ((_4[(_16 + _99[(_95 + _116)])] % _109)==_118)):
       _116 += 1
      _119=_117
      _120=_114
      _121=False
      _122=0
      while ((_120 < _113) and (_119 < _116)):
       _123=_99[(_95 + _119)]
       if ((_100[(_97 + _120)] % _111) < (_4[(_16 + _123)] // _109)):
        _120 += 1
       elif ((_100[(_97 + _120)] % _111) > (_4[(_16 + _123)] // _109)): # bld/docker-win/final/default/src/fusion/Parameter.monty:872:26-71
        _119 += 1
       else:
        _124=(_3[((_11 + _123) + 1)] - _3[(_11 + _123)])
        _107 += _124
        _108 += (((_3[(_14 + _3[((_11 + _123) + 1)])] - _3[(_14 + _3[(_11 + _123)])]) + (4 * _124)) if ((_10 > 0) ) else (3 * _124))
        _119 += 1
        _120 += 1
        _122 += 1
      if (_122 > 0):
       _106 += 1
    _125=2
    _126=(_106 < (_112 * _109))
    _0.alloc_expr(_125,_106,_107,_126,_108)
    _127=(_0.ptr_base)
    _128=(_0.nidxs_base)
    _129=((_0.sp_base) if (_126 ) else _0.alloci64(_106))
    _130=(_0.cof_base)
    _131=(_0.shape_base)
    _132=(_0.codeptr_base)
    _133=(_0.code_base)
    _134=(_0.cconst_base)
    _135=(_0.i64)
    _136=(_0.f64)
    _137=(_0.i32)
    for _138 in range(0,(_106 + 1)):
     _137[(_127 + _138)] = (- 9999)
    _137[_127] = 0
    if (_108 > 0):
     _137[_132] = 0
    _137[_131] = _112
    _137[(_131 + 1)] = _109
    _139=0
    _140=0
    _141=0
    for _142 in range(0,_107):
     _136[(_130 + _142)] = 0.0
    _143=0
    while (_143 < _96):
     _144=_143
     _145=(_100[(_97 + _143)] // _111)
     while ((_143 < _96) and (_100[(_97 + _143)] < ((_145 + 1) * _111))):
      _143 += 1
     _146=0
     while (_146 < _7):
      _147=_146
      _148=(_4[(_16 + _99[(_95 + _146)])] % _109)
      _146 += 1
      while ((_146 < _7) and ((_4[(_16 + _99[(_95 + _146)])] % _109)==_148)):
       _146 += 1
      _149=_147
      _150=_144
      _151=0
      while ((_150 < _143) and (_149 < _146)):
       _152=_99[(_95 + _149)]
       if ((_100[(_97 + _150)] % _111) < (_4[(_16 + _152)] // _109)):
        _150 += 1
       elif ((_100[(_97 + _150)] % _111) > (_4[(_16 + _152)] // _109)): # bld/docker-win/final/default/src/fusion/Parameter.monty:955:26-71
        _149 += 1
       else:
        for _153 in range(_3[(_11 + _152)],_3[((_11 + _152) + 1)]):
         _135[(_128 + _139)] = _4[(_17 + _153)]
         _137[(_133 + _141)] = 2
         _136[(_134 + _141)] = _5[(_18 + _153)]
         _141 += 1
         if (_10 > 0):
          for _154 in range(_3[(_14 + _153)],_3[((_14 + _153) + 1)]):
           _137[(_133 + _141)] = _3[(_12 + _154)]
           _136[(_134 + _141)] = _5[(_13 + _154)]
           _141 += 1
          _137[(_133 + _141)] = 3
          _141 += 1
         _137[(_133 + _141)] = 1
         _136[(_134 + _141)] = _99[(_25 + _150)]
         _141 += 1
         _137[(_133 + _141)] = 5
         _141 += 1
         _137[((_132 + _139) + 1)] = _141
         _139 += 1
        _151 += 1
        _150 += 1
        _149 += 1
      if (_151 > 0):
       _135[(_129 + _140)] = ((_145 * _109) + _148)
       _137[((_127 + _140) + 1)] = _139
       _140 += 1
    if (_141!=_108):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect a-code length")
    if (_139!=_107):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nnz length")
    if (_140!=_106):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect nelem length")
    if (_137[(_127 + _140)]!=_107):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal! Incorrect ptr")
    if (not _126):
     _0.popi64(_106)
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulParamLeft(")._a_S(self.__p.toString())._a_S(",")._a_S(self.__e.toString())._a_S(")")._toString_())
 return ExprMulParamLeft
mosek_fusion_ExprMulParamLeft=__mk_mosek_fusion_ExprMulParamLeft()
del __mk_mosek_fusion_ExprMulParamLeft
def __mk_mosek_fusion_ExprOptimizeCode():
 class ExprOptimizeCode(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprOptimizeCode__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprOptimizeCode.ctor(mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprOptimizeCode._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprOptimizeCode._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprOptimizeCode.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprOptimizeCode._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprOptimizeCode._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprOptimizeCode.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprOptimizeCode: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(expr):
    o = ExprOptimizeCode.__new__(ExprOptimizeCode)
    o._ctor_init_Lmosek_4fusion_4Expression_2(expr)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,expr):
    self._ctor_init_Lmosek_4fusion_4Expression_2(expr)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
  @staticmethod
  def __compress_1code_alt_Lmosek_4fusion_4WorkStack_2I_3II_3II_3DI_3DIIII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8,_t__9,_t__10,_t__11,_t__12):
   _0=_t__0
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int32(_t__3)
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _5=numpy.int32(_t__5)
   _6=numpy.array(_t__6,dtype=numpy.dtype(numpy.float64))
   _7=numpy.int32(_t__7)
   _8=numpy.array(_t__8,dtype=numpy.dtype(numpy.float64))
   _9=numpy.int32(_t__9)
   _10=numpy.int32(_t__10)
   _11=numpy.int32(_t__11)
   _12=numpy.int32(_t__12)
   _1_res = mosek_fusion_ExprOptimizeCode.__compress_1code_Lmosek_4fusion_4WorkStack_2I_3II_3II_3DI_3DIIII(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__6[:] = _6
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__8[:] = _8
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __compress_1code_Lmosek_4fusion_4WorkStack_2I_3II_3II_3DI_3DIIII(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12):
   _13=_4[(_5 + _1)]
   _14=_0.alloci32((_13 + 2))
   _15=0
   _16=_0.alloci32((_13 + 2))
   _17=_0.alloci32((_13 + 3))
   _18=_0.allocf64((_13 + 2))
   _19=_0.alloci32((_13 + 2))
   _20=0
   _21=(- 1)
   _22=(_0.i32)
   _23=(_0.f64)
   _24=_22
   _25=_23
   _26=_22
   _27=(_0.pi32)
   _28=(_0.pi64)
   _29=(_0.pf64)
   _26[_12] = 0
   _30=0
   for _31 in range(0,_1):
    _32=_4[((_5 + _31) + 1)]
    _33=_4[(_5 + _31)]
    if (_21 < 0):
     _15 = 0
     _20 = 0
     _22[_17] = 0
     for _34 in range(0,(_32 - _33)):
      _24[(_19 + _34)] = (- 9999)
     for _35 in range(_33,_32):
      _36=_2[(_3 + _35)]
      _37=_8[(_9 + _35)]
      if (_36==0):
       pass
      elif (_36==2): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:850:22-48
       _24[(_19 + _20)] = 2
       _23[(_18 + _20)] = _37
       _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
       _22[(_14 + _15)] = _20
       _15 += 1
       _20 += 1
      elif (_36==1): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:858:22-44
       _22[(_19 + _20)] = _36
       _23[(_18 + _20)] = _37
       _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
       _22[(_14 + _15)] = _20
       _15 += 1
       _20 += 1
      elif (_36==3): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:866:22-54
       if (_15 >= 2):
        _38=_22[((_14 + _15) - 1)]
        _15 -= 1
        _39=_22[((_14 + _15) - 1)]
        _15 -= 1
        if ((_22[(_19 + _39)]==2) and (_22[(_19 + _38)]==2)):
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = (_23[(_18 + _39)] + _23[(_18 + _38)])
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _39)]==2) and ((_23[(_18 + _39)] <= 0.0) and (_23[(_18 + _39)] >= 0.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:884:26-886:49
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _23[(_18 + _20)] = 0.0
         _22[(_14 + _15)] = _38
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _38)]==2) and ((_23[(_18 + _38)] <= 0.0) and (_23[(_18 + _38)] >= 0.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:894:26-896:49
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_14 + _15)] = _39
         _15 += 1
         _20 += 1
        else:
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 2)
         _22[(_16 + _22[(_17 + _20)])] = _39
         _22[((_16 + _22[(_17 + _20)]) + 1)] = _38
         _22[(_19 + _20)] = _36
         _23[(_18 + _20)] = _37
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
       else:
        _21 = _35
      elif (_36==5): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:920:22-54
       if (_15 >= 2):
        _40=_22[((_14 + _15) - 1)]
        _15 -= 1
        _41=_22[((_14 + _15) - 1)]
        _15 -= 1
        if ((_22[(_19 + _41)]==2) and (_22[(_19 + _40)]==2)):
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = (_23[(_18 + _41)] * _23[(_18 + _40)])
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _41)]==2) and ((_23[(_18 + _41)] <= 0.0) and (_23[(_18 + _41)] >= 0.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:938:26-940:49
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = 0.0
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _40)]==2) and ((_23[(_18 + _40)] <= 0.0) and (_23[(_18 + _40)] >= 0.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:949:26-951:49
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = 0.0
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _40)]==2) and ((_23[(_18 + _40)] <= 1.0) and (_23[(_18 + _40)] >= 1.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:960:26-962:49
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 1)
         _22[(_14 + _15)] = _41
         _15 += 1
         _20 += 1
        elif ((_22[(_19 + _41)]==2) and ((_23[(_18 + _41)] <= 1.0) and (_23[(_18 + _41)] >= 1.0))): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:969:26-971:49
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 1)
         _22[(_14 + _15)] = _40
         _15 += 1
         _20 += 1
        else:
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 2)
         _22[(_16 + _22[(_17 + _20)])] = _41
         _22[((_16 + _22[(_17 + _20)]) + 1)] = _40
         _22[(_19 + _20)] = 5
         _23[(_18 + _20)] = _37
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
       else:
        _21 = _35
      elif (_36==4): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:992:22-54
       if (_15 >= 1):
        _42=_22[((_14 + _15) - 1)]
        _15 -= 1
        if (_22[(_19 + _42)]==2):
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = (- _23[(_18 + _42)])
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        else:
         _22[(_19 + _20)] = _2[(_3 + _35)]
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 1)
         _22[(_16 + _22[(_17 + _20)])] = _42
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
       else:
        _21 = _35
      elif (_36==6): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:1019:22-54
       if (_15 >= 1):
        _43=_22[((_14 + _15) - 1)]
        _15 -= 1
        if (_22[(_19 + _43)]==2):
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = (1.0 / _23[(_18 + _43)])
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        else:
         _22[(_19 + _20)] = _2[(_3 + _35)]
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + 1)
         _22[(_16 + _22[(_17 + _20)])] = _43
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
       else:
        _21 = _35
      elif (_36==8): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:1046:22-42
       _44=numpy.int32(_37)
       if (_44 < 0):
        _21 = _35
       elif (_44 > _15): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:1052:24-36
        _21 = _35
       elif (_44==0): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:1057:24-32
        _22[(_19 + _20)] = 2
        _23[(_18 + _20)] = 0.0
        _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
        _22[(_14 + _15)] = _20
        _15 += 1
        _20 += 1
       elif (_44==1): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:1065:24-32
        _22[(_19 + _20)] = 0
        _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
        _22[(_14 + _15)] = _20
        _15 += 1
        _20 += 1
       else:
        _45=numpy.array([_22[(((_14 + _15) - 1) - _46)] for _46 in range(0,_44)], dtype=numpy.dtype(numpy.int32))
        _15 -= _44
        _47=(_44 - 1)
        _48=0
        while (_48 < _47):
         while ((_48 < _47) and (_22[(_19 + _45[_48])]==2)):
          _48 += 1
         while ((_48 < _47) and (_22[(_19 + _45[_47])]!=2)):
          _47 -= 1
         if (_48 < _47):
          _49=_45[_48]
          _45[_48] = _45[_47]
          _45[_47] = _49
          _48 += 1
          _47 -= 1
        _50=0.0
        _51=0
        while ((_51 < _44) and (_22[(_19 + _45[_51])]==2)):
         _50 += _23[(_18 + _45[_51])]
         _51 += 1
        _52=(((_44 - _51) + 1) if ((_51 > 0) ) else _44)
        _53=0
        if (_51 < 2):
         for _54 in range(0,_44):
          _22[((_16 + _22[(_17 + _20)]) + _54)] = _45[_54]
         _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + _44)
         _22[(_19 + _20)] = 8
         _23[(_18 + _20)] = _44
         _22[(_14 + _15)] = _20
         _15 += 1
         _20 += 1
        else:
         _22[(_19 + _20)] = 2
         _23[(_18 + _20)] = _50
         _22[((_17 + _20) + 1)] = _22[(_17 + _20)]
         _20 += 1
         if (_51==_44):
          _22[(_14 + _15)] = (_20 - 1)
          _15 += 1
         else:
          _22[(_16 + _22[(_17 + _20)])] = (_20 - 1)
          for _55 in range(_51,_44):
           _22[((((_16 + _22[(_17 + _20)]) + _55) - _51) + 1)] = _45[_55]
          _22[((_17 + _20) + 1)] = (_22[(_17 + _20)] + _52)
          _22[(_19 + _20)] = 8
          _23[(_18 + _20)] = _52
          _22[(_14 + _15)] = _20
          _15 += 1
          _20 += 1
      else:
       _21 = _35
    if ((_21 < 0) and (_15!=1)):
     _21 = _20
    if (_21 < 0):
     _56=_30
     _57=_56
     if (_22[(_19 + _22[((_14 + _15) - 1)])]==2):
      _6[(_7 + _31)] += _23[(_18 + _22[((_14 + _15) - 1)])]
      _24[(_10 + _57)] = 10
      _25[(_11 + _57)] = 0.0
      _57 += 1
     else:
      if ((_6[(_7 + _31)] < 0) or (0 < _6[(_7 + _31)])):
       _24[(_10 + _57)] = 3
       _57 += 1
       _24[(_10 + _57)] = 2
       _25[(_11 + _57)] = _6[(_7 + _31)]
       _57 += 1
       _6[(_7 + _31)] = 0
      while (_15 > 0):
       _58=_22[((_14 + _15) - 1)]
       _15 -= 1
       _59=_22[(_19 + _58)]
       _60=_23[(_18 + _58)]
       _24[(_10 + _57)] = _59
       _25[(_11 + _57)] = _60
       _57 += 1
       for _61 in range(_22[(_17 + _58)],_22[((_17 + _58) + 1)]):
        _22[(_14 + _15)] = _22[(_16 + _61)]
        _15 += 1
      _62=_57
      _62 -= 1
      while (_56 < _62):
       _63=_24[(_10 + _56)]
       _64=_25[(_11 + _56)]
       _24[(_10 + _56)] = _24[(_10 + _62)]
       _25[(_11 + _56)] = _25[(_11 + _62)]
       _24[(_10 + _62)] = _63
       _25[(_11 + _62)] = _64
       _56 += 1
       _62 -= 1
     _26[((_12 + _31) + 1)] = _57
     _30 = _57
   (_0.pi32) = _27
   (_0.pi64) = _28
   (_0.pf64) = _29
   if (_21 >= 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal error: Invalid parameterization code list")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.peek_expr()
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.hassp)
   _8=(_1.ncodeatom)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   if (_8==0):
    _0.alloc_expr(_3,_5,_6,_7,0)
    _19=(_0.ptr_base)
    _20=(_0.sp_base)
    _21=(_0.nidxs_base)
    _22=(_0.cof_base)
    _23=(_0.shape_base)
    _24=(_0.i32)
    _25=(_0.i64)
    _26=(_0.f64)
    for _27 in range(0,(_5 + 1)):
     _24[(_19 + _27)] = _16[(_9 + _27)]
    for _28 in range(0,_3):
     _24[(_23 + _28)] = _16[(_4 + _28)]
    for _29 in range(0,_6):
     _25[(_21 + _29)] = _17[(_11 + _29)]
    for _30 in range(0,_6):
     _26[(_22 + _30)] = _18[(_12 + _30)]
    if _7:
     for _31 in range(0,_5):
      _25[(_20 + _31)] = _17[(_10 + _31)]
   else:
    _32=_2.alloci32((_8 + (_6 * 2)))
    _33=_2.alloci32((_6 + 1))
    _34=_2.allocf64((_8 + (_6 * 2)))
    mosek.fusion.ExprOptimizeCode.__compress_1code_Lmosek_4fusion_4WorkStack_2I_3II_3II_3DI_3DIIII(_2,_6,_16,_13,_16,_14,_18,_12,_18,_15,_32,_34,_33)
    _35=(_2.i32)
    _36=(_2.f64)
    _37=0
    _38=0
    _39=0
    for _40 in range(0,_5):
     _41=0
     for _42 in range(_16[(_9 + _40)],_16[((_9 + _40) + 1)]):
      if ((_18[(_12 + _42)] < 0) or (0 < _18[(_12 + _42)])):
       _38 += 1
       _41 += 1
       _37 += 1
      else:
       if ((_35[((_33 + _42) + 1)] - _35[(_33 + _42)]) > 1):
        _38 += 1
        _41 += 1
        _37 += (_35[((_33 + _42) + 1)] - _35[(_33 + _42)])
       else:
        if (_35[(_32 + _35[(_33 + _42)])]!=10):
         _38 += 1
         _41 += 1
         _37 += 1
     if (_41 > 0):
      _39 += 1
    _43=False
    _44=1
    for _45 in range(0,_3):
     _44 *= _16[(_4 + _45)]
    _43 = (_44 > _39)
    _0.alloc_expr(_3,_39,_38,_43,_37)
    _46=(_0.ptr_base)
    _47=(_0.sp_base)
    _48=(_0.shape_base)
    _49=(_0.nidxs_base)
    _50=(_0.cof_base)
    _51=(_0.code_base)
    _52=(_0.codeptr_base)
    _53=(_0.cconst_base)
    _54=(_0.i32)
    _55=(_0.i64)
    _56=(_0.f64)
    for _57 in range(0,_3):
     _54[(_48 + _57)] = _16[(_4 + _57)]
    if (_8==0):
     for _58 in range(0,_6):
      _55[(_49 + _58)] = _17[(_11 + _58)]
     for _59 in range(0,_6):
      _56[(_50 + _59)] = _18[(_12 + _59)]
     for _60 in range(0,(_5 + 1)):
      _54[(_46 + _60)] = _54[(_9 + _60)]
     if _7:
      for _61 in range(0,_5):
       _55[(_47 + _61)] = _55[(_10 + _61)]
    else:
     _62=0
     _63=0
     _64=0
     _54[_46] = 0
     if (_37 > 0):
      _54[_52] = 0
     for _65 in range(0,_5):
      _66=0
      for _67 in range(_16[(_9 + _65)],_16[((_9 + _65) + 1)]):
       if ((_18[(_12 + _67)] < 0) or (0 < _18[(_12 + _67)])):
        _55[(_49 + _64)] = _17[(_11 + _67)]
        _56[(_50 + _64)] = _18[(_12 + _67)]
        _54[(_51 + _62)] = _35[(_32 + _35[(_33 + _67)])]
        _56[(_53 + _62)] = _36[(_34 + _35[(_33 + _67)])]
        _62 += 1
        _54[((_52 + _64) + 1)] = _62
        _64 += 1
        _66 += 1
       else:
        if (((_35[((_33 + _67) + 1)] - _35[(_33 + _67)]) > 1) or (_35[(_32 + _35[(_33 + _67)])]!=10)):
         _55[(_49 + _64)] = _17[(_11 + _67)]
         _56[(_50 + _64)] = 0.0
         for _68 in range(_35[(_33 + _67)],_35[((_33 + _67) + 1)]):
          _54[(_51 + _62)] = _35[(_32 + _68)]
          _56[(_53 + _62)] = _36[(_34 + _68)]
          _62 += 1
         _54[((_52 + _64) + 1)] = _62
         _64 += 1
         _66 += 1
      if (_66 > 0):
       _54[((_46 + _63) + 1)] = _64
       if _43:
        if _7:
         _55[(_47 + _63)] = _17[(_10 + _65)]
        else:
         _55[(_47 + _63)] = _65
       _63 += 1
     if (_63!=_39):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect result nelem")
     if (_64!=_38):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect result nnz")
     if (_62!=_37):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect result num code atoms")
     if (_37 > 0):
      if (_54[(_52 + _38)]!=_37):
       raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect codeptr")
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprOptimizeCode(")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprOptimizeCode
mosek_fusion_ExprOptimizeCode=__mk_mosek_fusion_ExprOptimizeCode()
del __mk_mosek_fusion_ExprOptimizeCode
def __mk_mosek_fusion_ExprCompress():
 class ExprCompress(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprCompress__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprCompress.ctor(mosek.fusion.Expression)')
  @staticmethod
  def arg_sort(*args):
    if False: pass
    elif mosek_fusion_ExprCompress._match_arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args): 
      return mosek_fusion_ExprCompress._arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args)
    elif mosek_fusion_ExprCompress._match_alt_arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args): 
      return mosek_fusion_ExprCompress._arg_1sort_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args)
    else:
      raise ValueError('Invalid argument list arg_sort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCompress.arg_sort(mosek.fusion.WorkStack,mosek.fusion.WorkStack,int32,int32,int32,int32,int32)')
  @staticmethod
  def merge_sort(*args):
    if False: pass
    elif mosek_fusion_ExprCompress._match_merge_1sort_IIIIII_3I_3J(*args): 
      return mosek_fusion_ExprCompress._merge_1sort_IIIIII_3I_3J(*args)
    elif mosek_fusion_ExprCompress._match_alt_merge_1sort_IIIIII_3I_3J(*args): 
      return mosek_fusion_ExprCompress._merge_1sort_alt_IIIIII_3I_3J(*args)
    else:
      raise ValueError('Invalid argument list merge_sort('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCompress.merge_sort(int32,int32,int32,int32,int32,int32,array(int32,ndim=1),array(int64,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprCompress._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprCompress._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCompress.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprCompress._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprCompress._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCompress.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprCompress: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(expr):
    o = ExprCompress.__new__(ExprCompress)
    o._ctor_init_Lmosek_4fusion_4Expression_2(expr)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,expr):
    self._ctor_init_Lmosek_4fusion_4Expression_2(expr)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
  @staticmethod
  def _match_arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3) and __arg_match_I__(_4) and __arg_match_I__(_5) and __arg_match_I__(_6))
  @staticmethod
  def _match_alt_arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(*args):
    if len(args) != 7: return False
    _0,_1,_2,_3,_4,_5,_6, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match_I__(_4) and __arg_alt_match_I__(_5) and __arg_alt_match_I__(_6))
  @staticmethod
  def _arg_1sort_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6):
    return mosek_fusion_ExprCompress._arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(_0,_1,numpy.int32(__2),numpy.int32(__3),numpy.int32(__4),numpy.int32(__5),numpy.int32(__6))
  @staticmethod
  def _arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(_0,_1,_2,_3,_4,_5,_6):
   _7=0
   _8=(_0.i32)
   for _9 in range(0,_3):
    if ((_8[((_5 + _9) + 1)] - _8[(_5 + _9)]) > _7):
     _7 = (_8[((_5 + _9) + 1)] - _8[(_5 + _9)])
   _10=(_1.alloci32((_7 * 2)) if ((_7 > 2) ) else 99999)
   _11=(_1.i32)
   _8 = (_0.i32)
   _12=(_0.i64)
   for _13 in range(0,_3):
    _14=_8[(_5 + _13)]
    _15=_8[((_5 + _13) + 1)]
    _16=(_15 - _14)
    if (_16==0):
     pass
    elif (_16==1): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:398:18-24
     _11[(_2 + _14)] = _14
    elif (_16==2): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:401:18-24
     if (_12[(_6 + _14)] <= _12[((_6 + _14) + 1)]):
      _11[(_2 + _14)] = _14
      _11[((_2 + _14) + 1)] = (_14 + 1)
     else:
      _11[(_2 + _14)] = (_14 + 1)
      _11[((_2 + _14) + 1)] = _14
    else:
     _17=_12[(_6 + _14)]
     _18=_12[(_6 + _14)]
     _19=False
     for _20 in range((_14 + 1),_15):
      _19 = (_19 and (_12[((_6 + _20) - 1)] <= _12[(_6 + _20)]))
      if (_17 > _12[(_6 + _20)]):
       _17 = _12[(_6 + _20)]
      if (_18 < _12[(_6 + _20)]):
       _18 = _12[(_6 + _20)]
     if _19:
      for _21 in range(_14,_15):
       _11[(_2 + _21)] = _21
     elif (((_18 - _17) + 1) <= _16): # bld/docker-win/final/default/src/fusion/ExprCompress.monty:426:20-40
      _22=((_18 - _17) + 1)
      for _23 in range(0,(_22 + 1)):
       _11[(_10 + _23)] = 0
      for _24 in range(_14,_15):
       _11[(((_10 + _12[(_6 + _24)]) - _17) + 1)] += 1
      for _25 in range(0,_22):
       _11[((_10 + _25) + 1)] += _11[(_10 + _25)]
      for _26 in range(_14,_15):
       _11[((_2 + _14) + _11[((_10 + _12[(_6 + _26)]) - _17)])] = _26
       _11[((_10 + _12[(_6 + _26)]) - _17)] += 1
     else:
      _27=1
      _28=_10
      _29=(_10 + _16)
      for _30 in range(0,_16):
       _11[(_28 + _30)] = _30
      while (_27 < _16):
       _31=(_27 * 2)
       _32=(_16 // _31)
       if (((_32 * _31) + _27) < _16):
        _32 += 1
       _33=0
       for _34 in range(0,_32):
        _35=(_34 * _31)
        _36=(_35 + _27)
        _37=_36
        _38=(_37 + _27)
        if (_38 > _16):
         _38 = _16
        while ((_35 < _36) and (_37 < _38)):
         if (_12[((_6 + _11[(_28 + _35)]) + _14)] <= _12[((_6 + _11[(_28 + _37)]) + _14)]):
          _11[(_29 + _33)] = _11[(_28 + _35)]
          _33 += 1
          _35 += 1
         else:
          _11[(_29 + _33)] = _11[(_28 + _37)]
          _33 += 1
          _37 += 1
        while (_35 < _36):
         _11[(_29 + _33)] = _11[(_28 + _35)]
         _33 += 1
         _35 += 1
        while (_37 < _38):
         _11[(_29 + _33)] = _11[(_28 + _37)]
         _33 += 1
         _37 += 1
       if ((_32 * _31) < _16):
        _39=(_32 * _31)
        while (_39 < _16):
         _11[(_29 + _33)] = _11[(_28 + _39)]
         _39 += 1
         _33 += 1
       _40=_28
       _28 = _29
       _29 = _40
       _27 *= 2
      for _41 in range(0,_16):
       _11[((_2 + _14) + _41)] = (_11[(_28 + _41)] + _14)
  @staticmethod
  def _match_merge_1sort_IIIIII_3I_3J(*args):
    if len(args) != 8: return False
    _0,_1,_2,_3,_4,_5,_6,_7, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_I__(_3) and __arg_match_I__(_4) and __arg_match_I__(_5) and __arg_match__3I__(_6) and __arg_match__3J__(_7))
  @staticmethod
  def _match_alt_merge_1sort_IIIIII_3I_3J(*args):
    if len(args) != 8: return False
    _0,_1,_2,_3,_4,_5,_6,_7, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_I__(_3) and __arg_alt_match_I__(_4) and __arg_alt_match_I__(_5) and __arg_alt_match__3I__(_6) and __arg_alt_match__3J__(_7))
  @staticmethod
  def _merge_1sort_alt_IIIIII_3I_3J(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.int32(_t__3)
   _4=numpy.int32(_t__4)
   _5=numpy.int32(_t__5)
   _6=numpy.array(_t__6,dtype=numpy.dtype(numpy.int32))
   _7=numpy.array(_t__7,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_ExprCompress._merge_1sort_IIIIII_3I_3J(_0,_1,_2,_3,_4,_5,_6,_7)
   try:
     _t__6[:] = _6
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__7[:] = _7
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _merge_1sort_IIIIII_3I_3J(_0,_1,_2,_3,_4,_5,_6,_7):
   _8=_0
   _9=_1
   for _10 in range(0,_3):
    _6[(_8 + _10)] = _10
   for _11 in range(0,_2):
    _8 = _0
    _9 = _1
    _12=_6[((_4 + _11) + 1)]
    _13=_6[(_4 + _11)]
    if ((_13 + 1) < _12):
     _14=(_12 - _13)
     _15=0
     while (_14 > 1):
      _15 += 1
      _14 /= 2
     _14 = (_12 - _13)
     _16=1
     for _17 in range(0,(_15 + 1)):
      _18=(((_14 + _16) - 1) // _16)
      _19=(_18 // 2)
      _20=_13
      for _21 in range(0,_19):
       _22=((_21 * _16) * 2)
       _23=(((_13 + _22) + (2 * _16)) if ((((_13 + _22) + (2 * _16)) < _12) ) else _12)
       _24=((_13 + _22) + _16)
       _25=((_13 + _22) + _16)
       _26=(_13 + _22)
       while ((_26 < _25) and (_24 < _23)):
        if (_7[(_5 + _6[(_8 + _26)])] <= _7[(_5 + _6[(_8 + _24)])]):
         _6[(_9 + _20)] = _6[(_8 + _26)]
         _20 += 1
         _26 += 1
        else:
         _6[(_9 + _20)] = _6[(_8 + _24)]
         _20 += 1
         _24 += 1
       while (_26 < _25):
        _6[(_9 + _20)] = _6[(_8 + _26)]
        _20 += 1
        _26 += 1
       while (_24 < _23):
        _6[(_9 + _20)] = _6[(_8 + _24)]
        _20 += 1
        _24 += 1
      for _27 in range(_20,_12):
       _6[(_9 + _27)] = _6[(_8 + _27)]
      _28=_8
      _8 = _9
      _9 = _28
      _16 *= 2
    for _29 in range(_13,_12):
     _6[(_0 + _29)] = _6[(_8 + _29)]
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.hassp)
   _8=(_1.ncodeatom)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=True
   _20=(_2.i32)
   _21=(_2.i64)
   _22=(_2.f64)
   for _23 in range(0,_5):
    for _24 in range(_16[(_9 + _23)],(_16[((_9 + _23) + 1)] - 1)):
     _19 = (_19 and (_17[(_11 + _24)] < _17[((_11 + _24) + 1)]))
   if _19:
    if (_8 > 0):
     for _25 in range(0,_6):
      _19 = (_19 and ((not ((_18[(_12 + _25)] >= 0.0) and (0.0 >= _18[(_12 + _25)]))) or (((_16[((_14 + _25) + 1)] - _16[(_14 + _25)])==0) or (not (((_16[((_14 + _25) + 1)] - _16[(_14 + _25)])==1) and ((_16[(_13 + _16[(_14 + _25)])]==2) and (not ((_18[(_15 + _16[(_14 + _25)])] <= 0.0) and (_18[(_15 + _16[(_14 + _25)])] >= 0.0)))))))))
    else:
     for _26 in range(0,_6):
      _19 = (_19 and (not ((_18[(_12 + _26)] <= 0.0) and (0.0 <= _18[(_12 + _26)]))))
   if _19:
    _0.alloc_expr(_3,_5,_6,_7,_8)
    _27=(_0.ptr_base)
    _28=(_0.nidxs_base)
    _29=(_0.sp_base)
    _30=(_0.cof_base)
    _31=(_0.shape_base)
    _32=(_0.code_base)
    _33=(_0.codeptr_base)
    _34=(_0.cconst_base)
    _35=(_0.i32)
    _36=(_0.i64)
    _37=(_0.f64)
    for _38 in range(0,_3):
     _35[(_31 + _38)] = _16[(_4 + _38)]
    for _39 in range(0,(_5 + 1)):
     _35[(_27 + _39)] = _16[(_9 + _39)]
    for _40 in range(0,_6):
     _36[(_28 + _40)] = _17[(_11 + _40)]
    for _41 in range(0,_6):
     _37[(_30 + _41)] = _18[(_12 + _41)]
    if _7:
     for _42 in range(0,_5):
      _36[(_29 + _42)] = _17[(_10 + _42)]
    if (_8 > 0):
     for _43 in range(0,_8):
      _35[(_32 + _43)] = _16[(_13 + _43)]
     for _44 in range(0,_8):
      _37[(_34 + _44)] = _18[(_15 + _44)]
     for _45 in range(0,(_6 + 1)):
      _35[(_33 + _45)] = _16[(_14 + _45)]
    if (_8 > 0):
     if (_35[(_33 + _6)]!=_8):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect codeptr")
   else:
    _46=_2.alloci32(_6)
    mosek.fusion.ExprCompress._arg_1sort_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2IIIII(_1,_2,_46,_5,_6,_9,_11)
    _47=(_2.i32)
    _48=0
    _49=_8
    _50=(_0.i32)
    for _51 in range(0,_5):
     _52=_16[((_9 + _51) + 1)]
     _53=_16[(_9 + _51)]
     if (_53 < _52):
      _54=_53
      while (_54 < _52):
       _55=0.0
       _56=False
       _57=_17[(_11 + _47[(_46 + _54)])]
       _58=_54
       while ((_54 < _52) and (_17[(_11 + _47[(_46 + _54)])]==_57)):
        _59=_18[(_12 + _47[(_46 + _54)])]
        _56 = (_56 or (not ((_59 <= 0.0) and (_59 >= 0.0))))
        _55 += _59
        _54 += 1
       if (_56 or (_8 > 0)):
        _48 += 1
        if (((_58 + 1) < _54) and (_8 > 0)):
         _49 += 1
    _0.alloc_expr(_3,_5,_48,_7,_49)
    _60=(_0.nidxs_base)
    _61=(_0.shape_base)
    _62=(_0.sp_base)
    _63=(_0.cof_base)
    _64=(_0.ptr_base)
    _65=(_0.code_base)
    _66=(_0.codeptr_base)
    _67=(_0.cconst_base)
    _68=(_0.i32)
    _69=(_0.i64)
    _70=(_0.f64)
    for _71 in range(0,_3):
     _68[(_61 + _71)] = _16[(_4 + _71)]
    if _7:
     for _72 in range(0,_5):
      _69[(_62 + _72)] = _17[(_10 + _72)]
    _73=0
    _74=0
    _68[_64] = 0
    if (_49 > 0):
     _68[_66] = 0
    for _75 in range(0,_5):
     _76=_16[((_9 + _75) + 1)]
     _77=_16[(_9 + _75)]
     if (_77 < _76):
      _78=_77
      _79=_78
      while (_78 < _76):
       _80=0.0
       _81=False
       _82=(_78 + 1)
       _83=_78
       _84=_17[(_11 + _47[(_46 + _83)])]
       while ((_82 < _76) and (_17[(_11 + _47[(_46 + _82)])]==_84)):
        _82 += 1
       if (_8 > 0):
        while (_78 < _82):
         _85=_18[(_12 + _47[(_46 + _78)])]
         _81 = (_81 or (not ((_85 <= 0.0) and (_85 >= 0.0))))
         _80 += _85
         for _86 in range(_16[(_14 + _47[(_46 + _78)])],_16[((_14 + _47[(_46 + _78)]) + 1)]):
          _68[(_65 + _74)] = _16[(_13 + _86)]
          _70[(_67 + _74)] = _18[(_15 + _86)]
          _74 += 1
         _78 += 1
        if ((_82 - _83) > 1):
         _68[(_65 + _74)] = 8
         _70[(_67 + _74)] = (_82 - _83)
         _74 += 1
        _68[((_66 + _73) + 1)] = _74
        _69[(_60 + _73)] = _84
        _70[(_63 + _73)] = _80
        _73 += 1
       else:
        while (_78 < _82):
         _87=_18[(_12 + _47[(_46 + _78)])]
         _81 = (_81 or (not ((_87 <= 0.0) and (_87 >= 0.0))))
         _80 += _87
         _78 += 1
        if _81:
         _69[(_60 + _73)] = _84
         _70[(_63 + _73)] = _80
         _73 += 1
     _68[((_64 + _75) + 1)] = _73
    if (_49!=_74):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid ncodeatom")
    if (_73!=_48):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nnz")
    if (_48!=_68[(_64 + _5)]):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid ptr")
    if (_49 > 0):
     if (_68[(_66 + _48)]!=_49):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect codeptr")
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprCompress(")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprCompress
mosek_fusion_ExprCompress=__mk_mosek_fusion_ExprCompress()
del __mk_mosek_fusion_ExprCompress
def __mk_mosek_fusion_ExprConst():
 class ExprConst(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprConst__sparsity','_ExprConst__bfix']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3I_3J_3D(*args): 
      self._ctor_init__3I_3J_3D(*args)
    elif self.__match_alt_ctor__3I_3J_3D(*args):
      self._ctor_alt_init__3I_3J_3D(*args)
    elif self.__match_ctor__3I_3JD(*args): 
      self._ctor_init__3I_3JD(*args)
    elif self.__match_alt_ctor__3I_3JD(*args):
      self._ctor_alt_init__3I_3JD(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprConst.ctor(array(int32,ndim=1),array(int64,ndim=1),array(double,ndim=1))\n\tmosek.fusion.ExprConst.ctor(array(int32,ndim=1),array(int64,ndim=1),double)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprConst._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprConst._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprConst.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprConst._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprConst._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprConst.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprConst: '+self._toString_()
  @staticmethod
  def _ctor__3I_3J_3D(shape,sparsity,bfix):
    o = ExprConst.__new__(ExprConst)
    o._ctor_init__3I_3J_3D(shape,sparsity,bfix)
    return o
  @staticmethod
  def __match_ctor__3I_3J_3D(*args):
    if len(args) != 3: return False
    shape,sparsity,bfix, = args
    return (__arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match__3D__(bfix))
  @staticmethod
  def __match_alt_ctor__3I_3J_3D(*args):
    if len(args) != 3: return False
    shape,sparsity,bfix, = args
    return (__arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match__3D__(bfix))
  def _ctor_alt_init__3I_3J_3D(self,shape,sparsity,bfix):
    self._ctor_init__3I_3J_3D(numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.array(bfix,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init__3I_3J_3D(self,shape,sparsity,bfix):
   mosek_fusion_BaseExpression._ctor_init__3I(self,shape)
   (self.__bfix) = mosek.fusion.Utils.Tools._arraycopy__3D(bfix)
   (self.__sparsity) = (mosek.fusion.Utils.Tools._arraycopy__3J(sparsity) if ((sparsity is not None) ) else None)
   mosek.fusion.ExprConst.__validate__3I_3D_3J(shape,bfix,sparsity)
  @staticmethod
  def _ctor__3I_3JD(shape,sparsity,bfix):
    o = ExprConst.__new__(ExprConst)
    o._ctor_init__3I_3JD(shape,sparsity,bfix)
    return o
  @staticmethod
  def __match_ctor__3I_3JD(*args):
    if len(args) != 3: return False
    shape,sparsity,bfix, = args
    return (__arg_match__3I__(shape) and __arg_match__3J__(sparsity) and __arg_match_D__(bfix))
  @staticmethod
  def __match_alt_ctor__3I_3JD(*args):
    if len(args) != 3: return False
    shape,sparsity,bfix, = args
    return (__arg_alt_match__3I__(shape) and __arg_alt_match__3J__(sparsity) and __arg_alt_match_D__(bfix))
  def _ctor_alt_init__3I_3JD(self,shape,sparsity,bfix):
    self._ctor_init__3I_3JD(numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(sparsity,dtype=numpy.dtype(numpy.int64)),numpy.float64(bfix))
  def _ctor_init__3I_3JD(self,shape,sparsity,bfix):
   mosek_fusion_BaseExpression._ctor_init__3I(self,shape)
   _0=(mosek.fusion.Set._size__3I(shape) if ((sparsity is None) ) else int((sparsity).shape[0]))
   (self.__bfix) = numpy.array([bfix for _1 in range(0,_0)], dtype=numpy.dtype(numpy.float64))
   (self.__sparsity) = (mosek.fusion.Utils.Tools._arraycopy__3J(sparsity) if ((sparsity is not None) ) else None)
   mosek.fusion.ExprConst.__validate__3I_3D_3J(shape,(self.__bfix),sparsity)
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=self.getShape()
   _4=int((_3).shape[0])
   _5=0
   for _6 in range(0,int((self.__bfix).shape[0])):
    if (not ((self.__bfix[_6] <= 0.0) and (self.__bfix[_6] >= 0.0))):
     _5 += 1
   _7=int((self.__bfix).shape[0])
   _8=((self.__sparsity is not None) and (int((self.__sparsity).shape[0]) < mosek.fusion.Set._size__3I(_3)))
   _0.alloc_expr(_4,_7,_5,_8,0)
   _9=(_0.shape_base)
   _10=(_0.ptr_base)
   _11=(_0.sp_base)
   _12=(_0.nidxs_base)
   _13=(_0.cof_base)
   _14=(_0.i32)
   _15=(_0.i64)
   _16=(_0.f64)
   for _17 in range(0,_4):
    _14[(_9 + _17)] = _3[_17]
   _18=0
   _14[_10] = 0
   if _8:
    for _19 in range(0,_7):
     _15[(_11 + _19)] = self.__sparsity[_19]
   for _20 in range(0,_7):
    if (not ((self.__bfix[_20] <= 0.0) and (self.__bfix[_20] >= 0.0))):
     _15[(_12 + _18)] = 0
     _16[(_13 + _18)] = self.__bfix[_20]
     _18 += 1
    _14[((_10 + _20) + 1)] = _18
  @staticmethod
  def __validate_alt__3I_3D_3J(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_ExprConst.__validate__3I_3D_3J(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate__3I_3D_3J(_0,_1,_2):
   _3=mosek.fusion.Set._size__3I(_0)
   if (_2 is not None):
    if (int((_2).shape[0])!=int((_1).shape[0])):
     raise mosek_fusion_LengthError._ctor_S("Mismatching data lengths")
    _4=False
    for _5 in range(0,int((_2).shape[0])):
     if ((_2[_5] < 0) or (_2[_5] >= _3)):
      _4 = True
    if _4:
     raise mosek_fusion_IndexError._ctor_S("Invalid sparsity index")
   else:
    if (int((_1).shape[0])!=_3):
     raise mosek_fusion_LengthError._ctor_S("Mismatching data length")
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("ExprConst()")
 return ExprConst
mosek_fusion_ExprConst=__mk_mosek_fusion_ExprConst()
del __mk_mosek_fusion_ExprConst
def __mk_mosek_fusion_ExprPick():
 class ExprPick(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprPick__idxs','_ExprPick__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3_5I(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3_5I(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3_5I(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3_5I(*args)
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3J(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3J(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3J(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3J(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprPick.ctor(mosek.fusion.Expression,array(int32,ndim=2))\n\tmosek.fusion.ExprPick.ctor(mosek.fusion.Expression,array(int64,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprPick._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprPick._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprPick.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprPick._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprPick._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprPick.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprPick: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3_5I(expr,idxs):
    o = ExprPick.__new__(ExprPick)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3_5I(expr,idxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3_5I(*args):
    if len(args) != 2: return False
    expr,idxs, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match__3_5I__(idxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3_5I(*args):
    if len(args) != 2: return False
    expr,idxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match__3_5I__(idxs))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3_5I(self,expr,idxs):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3_5I(expr,numpy.array(idxs,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3_5I(self,expr,idxs):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([int((idxs).shape[0])], dtype=numpy.dtype(numpy.int32)))
   _0=expr.getShape()
   _1=int((_0).shape[0])
   (self.__expr) = expr
   (self.__idxs) = numpy.zeros((int((idxs).shape[0]),), dtype=numpy.dtype(numpy.int64))
   _2=(self.__idxs)
   if (int((idxs).shape[1])!=_1):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching shape and index dimensions")
   _3=False
   for _4 in range(0,int((idxs).shape[0])):
    for _5 in range(0,_1):
     if ((idxs[_4,_5] < 0) or (idxs[_4,_5] >= _0[_5])):
      _3 = True
   if _3:
    raise mosek_fusion_IndexError._ctor_S("Pick index out of bounds")
   _6=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int64))
   _6[(_1 - 1)] = 1
   for _7 in range(1,_1):
    _6[((_1 - _7) - 1)] = (_6[(_1 - _7)] * _0[(_1 - _7)])
   for _8 in range(0,int((idxs).shape[0])):
    _9=0
    for _10 in range(0,_1):
     _9 += (_6[_10] * idxs[_8,_10])
    _2[_8] = _9
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3J(expr,idxs):
    o = ExprPick.__new__(ExprPick)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3J(expr,idxs)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3J(*args):
    if len(args) != 2: return False
    expr,idxs, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match__3J__(idxs))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3J(*args):
    if len(args) != 2: return False
    expr,idxs, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match__3J__(idxs))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3J(self,expr,idxs):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3J(expr,numpy.array(idxs,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3J(self,expr,idxs):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([int((idxs).shape[0])], dtype=numpy.dtype(numpy.int32)))
   (self.__expr) = expr
   _0=expr.getShape()
   _1=mosek.fusion.Set._size__3I(_0)
   _2=False
   for _3 in range(0,int((idxs).shape[0])):
    if ((idxs[_3] < 0) or (idxs[_3] >= _1)):
     _2 = True
   if _2:
    raise mosek_fusion_IndexError._ctor_S("Pick index out of bounds")
   (self.__idxs) = mosek.fusion.Utils.Tools._arraycopy__3J(idxs)
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.ncodeatom)
   _8=(_1.hassp)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=(self.__idxs)
   if (not _8):
    _20=int((_19).shape[0])
    _21=1
    _22=0
    _23=0
    for _24 in range(0,int((_19).shape[0])):
     _22 += (_16[((_9 + _19[_24]) + 1)] - _16[(_9 + _19[_24])])
     if (_7 > 0):
      _23 += (_16[(_14 + _16[((_9 + _19[_24]) + 1)])] - _16[(_14 + _16[(_9 + _19[_24])])])
    _0.alloc_expr(_21,_20,_22,False,_23)
    _25=(_0.cof_base)
    _26=(_0.nidxs_base)
    _27=(_0.ptr_base)
    _28=(_0.shape_base)
    _29=(_0.code_base)
    _30=(_0.codeptr_base)
    _31=(_0.cconst_base)
    pass
    _32=(_0.i32)
    _33=(_0.i64)
    _34=(_0.f64)
    _32[_28] = int((_19).shape[0])
    _35=0
    _36=0
    _32[_27] = 0
    if (_23 > 0):
     _32[_30] = 0
    for _37 in range(0,int((_19).shape[0])):
     for _38 in range(_16[(_9 + _19[_37])],_16[((_9 + _19[_37]) + 1)]):
      _33[(_26 + _36)] = _17[(_11 + _38)]
      _34[(_25 + _36)] = _18[(_12 + _38)]
      if (_23 > 0):
       for _39 in range(_16[(_14 + _38)],_16[((_14 + _38) + 1)]):
        _32[(_29 + _35)] = _16[(_13 + _39)]
        _34[(_31 + _35)] = _18[(_15 + _39)]
        _35 += 1
       _32[((_30 + _36) + 1)] = _35
      _36 += 1
     _32[((_27 + _37) + 1)] = _36
   else:
    _40=1
    _41=int((_19).shape[0])
    _42=0
    _43=0
    _44=(self.__idxs)
    _45=_2.alloci32(int((_44).shape[0]))
    _46=(_2.i32)
    for _47 in range(0,int((_44).shape[0])):
     _48=_5
     _49=0
     while (_49 < _48):
      _50=((_48 + _49) // 2)
      if (_17[(_10 + _50)] >= _44[_47]):
       _48 = _50
      else:
       _49 = (_50 + 1)
     if ((_49 < _5) and (_17[(_10 + _49)]==_44[_47])):
      _46[(_45 + _47)] = _49
      _42 += (_16[((_9 + _49) + 1)] - _16[(_9 + _49)])
      if (_7 > 0):
       _43 += (_16[(_14 + _16[((_9 + _44[_47]) + 1)])] - _16[(_14 + _16[(_9 + _44[_47])])])
     else:
      _46[(_45 + _47)] = (- 1)
    _0.alloc_expr(_40,_41,_42,False,_43)
    _51=(_0.ptr_base)
    _52=(_0.nidxs_base)
    _53=(_0.cof_base)
    _54=(_0.shape_base)
    _55=(_0.code_base)
    _56=(_0.codeptr_base)
    _57=(_0.cconst_base)
    _58=(_0.i32)
    _59=(_0.i64)
    _60=(_0.f64)
    _58[_54] = int((_44).shape[0])
    _58[_51] = 0
    if (_43 > 0):
     _58[_56] = 0
    _61=0
    _62=0
    for _63 in range(0,int((_44).shape[0])):
     if (_46[(_45 + _63)] >= 0):
      _64=_46[(_45 + _63)]
      for _65 in range(_16[(_9 + _64)],_16[((_9 + _64) + 1)]):
       _59[(_52 + _62)] = _17[(_11 + _65)]
       _60[(_53 + _62)] = _18[(_12 + _65)]
       if (_43 > 0):
        for _66 in range(_16[(_14 + _65)],_16[((_14 + _65) + 1)]):
         _58[(_55 + _61)] = _16[(_13 + _66)]
         _60[(_57 + _61)] = _18[(_15 + _66)]
         _61 += 1
        _58[((_56 + _62) + 1)] = _61
       _62 += 1
     _58[((_51 + _63) + 1)] = _62
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("ExprPick()")
 return ExprPick
mosek_fusion_ExprPick=__mk_mosek_fusion_ExprPick()
del __mk_mosek_fusion_ExprPick
def __mk_mosek_fusion_ExprSlice():
 class ExprSlice(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprSlice__last','_ExprSlice__first','_ExprSlice__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3I_3I(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3I_3I(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3I_3I(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3I_3I(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprSlice.ctor(mosek.fusion.Expression,array(int32,ndim=1),array(int32,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprSlice._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprSlice._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSlice.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprSlice._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprSlice._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSlice.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprSlice: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3I_3I(expr,first,last):
    o = ExprSlice.__new__(ExprSlice)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3I_3I(expr,first,last)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3I_3I(*args):
    if len(args) != 3: return False
    expr,first,last, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match__3I__(first) and __arg_match__3I__(last))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3I_3I(*args):
    if len(args) != 3: return False
    expr,first,last, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match__3I__(first) and __arg_alt_match__3I__(last))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3I_3I(self,expr,first,last):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3I_3I(expr,numpy.array(first,dtype=numpy.dtype(numpy.int32)),numpy.array(last,dtype=numpy.dtype(numpy.int32)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3I_3I(self,expr,first,last):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprSlice.__makeShape__3I_3I_3I(expr.getShape(),first,last))
   (self.__expr) = expr
   (self.__first) = first
   (self.__last) = last
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nelem)
   _5=(_1.nnz)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _19[(_3 - 1)] = 1
   for _20 in range(1,_3):
    _19[((_3 - _20) - 1)] = (_19[(_3 - _20)] * _16[((_8 + _3) - _20)])
   _21=0
   _22=0
   _23=0
   if _7:
    for _24 in range(0,_4):
     _25=True
     for _26 in range(0,_3):
      _27=((_17[(_10 + _24)] // _19[_26]) % _16[(_8 + _26)])
      _25 = (_25 and ((_27 >= self.__first[_26]) and (_27 < self.__last[_26])))
     if _25:
      _23 += (_16[((_9 + _24) + 1)] - _16[(_9 + _24)])
      if (_6 > 0):
       _21 += (_16[(_14 + _16[((_9 + _24) + 1)])] - _16[(_14 + _16[(_9 + _24)])])
      _22 += 1
   else:
    _22 = 1
    for _28 in range(0,_3):
     _22 *= (self.__last[_28] - self.__first[_28])
    for _29 in range(0,_4):
     _30=True
     for _31 in range(0,_3):
      _32=((_29 // _19[_31]) % _16[(_8 + _31)])
      _30 = (_30 and ((_32 >= self.__first[_31]) and (_32 < self.__last[_31])))
     if _30:
      _23 += (_16[((_9 + _29) + 1)] - _16[(_9 + _29)])
      if (_6 > 0):
       _21 += (_16[(_14 + _16[((_9 + _29) + 1)])] - _16[(_14 + _16[(_9 + _29)])])
   _33=numpy.array([(self.__last[_34] - self.__first[_34]) for _34 in range(0,_3)], dtype=numpy.dtype(numpy.int32))
   _35=(_22 < mosek.fusion.Set._size__3I(_33))
   _0.alloc_expr(_3,_22,_23,_35,_21)
   _36=(_0.shape_base)
   _37=(_0.cof_base)
   _38=(_0.nidxs_base)
   _39=((_0.sp_base) if (_35 ) else _0.alloci64(_22))
   _40=(_0.ptr_base)
   _41=(_0.code_base)
   _42=(_0.codeptr_base)
   _43=(_0.cconst_base)
   _44=(_0.i32)
   _45=(_0.i64)
   _46=(_0.f64)
   for _47 in range(0,_3):
    _44[(_36 + _47)] = _33[_47]
   _44[_40] = 0
   if (_21 > 0):
    _44[_42] = 0
   _48=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _48[(_3 - 1)] = 1
   for _49 in range(1,_3):
    _48[((_3 - _49) - 1)] = (_48[(_3 - _49)] * _33[(_3 - _49)])
   _50=0
   _51=0
   _52=0
   if _7:
    _53=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    for _54 in range(0,_4):
     _55=True
     for _56 in range(0,_3):
      _53[_56] = numpy.int32(((_17[(_10 + _54)] // _19[_56]) % _16[(_8 + _56)]))
      _55 = (_55 and ((_53[_56] >= self.__first[_56]) and (_53[_56] < self.__last[_56])))
     if _55:
      for _57 in range(_16[(_9 + _54)],_16[((_9 + _54) + 1)]):
       _45[(_38 + _52)] = _17[(_11 + _57)]
       _46[(_37 + _52)] = _18[(_12 + _57)]
       if (_21 > 0):
        for _58 in range(_16[(_14 + _57)],_16[((_14 + _57) + 1)]):
         _44[(_41 + _50)] = _16[(_13 + _58)]
         _46[(_43 + _50)] = _18[(_15 + _58)]
         _50 += 1
        _44[((_42 + _52) + 1)] = _50
       _52 += 1
      _59=0
      for _60 in range(0,_3):
       _59 += (_48[_60] * (_53[_60] - self.__first[_60]))
      _45[(_39 + _51)] = _59
      _44[((_40 + _51) + 1)] = _52
      _51 += 1
   else:
    for _61 in range(0,_4):
     _62=True
     for _63 in range(0,_3):
      _64=((_61 // _19[_63]) % _16[(_8 + _63)])
      _62 = (_62 and ((_64 >= self.__first[_63]) and (_64 < self.__last[_63])))
     if _62:
      for _65 in range(_16[(_9 + _61)],_16[((_9 + _61) + 1)]):
       _45[(_38 + _52)] = _17[(_11 + _65)]
       _46[(_37 + _52)] = _18[(_12 + _65)]
       if (_21 > 0):
        for _66 in range(_16[(_14 + _65)],_16[((_14 + _65) + 1)]):
         _44[(_41 + _50)] = _16[(_13 + _66)]
         _46[(_43 + _50)] = _18[(_15 + _66)]
         _50 += 1
        _44[((_42 + _52) + 1)] = _50
       _52 += 1
      _44[((_40 + _51) + 1)] = _52
      _51 += 1
   if (not _35):
    _0.popi64(_22)
  @staticmethod
  def __makeShape_alt__3I_3I_3I(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprSlice.__makeShape__3I_3I_3I(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __makeShape__3I_3I_3I(_0,_1,_2):
   if ((int((_0).shape[0])!=int((_1).shape[0])) or (int((_0).shape[0])!=int((_2).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid or mismatching index lengths")
   for _3 in range(0,int((_0).shape[0])):
    if ((_1[_3] < 0) or ((_2[_3] < _1[_3]) or (_2[_3] > _0[_3]))):
     raise mosek_fusion_IndexError._ctor_S("Slice is out of bounds")
   return (numpy.array([(_2[_4] - _1[_4]) for _4 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()._a_S("ExprSlice([")._a_I(self.__first[0])._a_S(":")._a_I(self.__last[0])
   for _1 in range(1,int((self.__first).shape[0])):
    _0._a_S(",")._a_I(self.__first[_1])._a_S(":")._a_I(self.__last[_1])
   _0._a_S("],")._a_S(self.__expr.toString())._a_S(")")
   return (_0._toString_())
 return ExprSlice
mosek_fusion_ExprSlice=__mk_mosek_fusion_ExprSlice()
del __mk_mosek_fusion_ExprSlice
def __mk_mosek_fusion_ExprPermuteDims():
 class ExprPermuteDims(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprPermuteDims__dperm','_ExprPermuteDims__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3ILmosek_4fusion_4Expression_2(*args): 
      self._ctor_init__3ILmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor__3ILmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init__3ILmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprPermuteDims.ctor(array(int32,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprPermuteDims._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprPermuteDims._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprPermuteDims.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def __repr__(self): return 'mosek.fusion.ExprPermuteDims'
  @staticmethod
  def _ctor__3ILmosek_4fusion_4Expression_2(perm,expr):
    o = ExprPermuteDims.__new__(ExprPermuteDims)
    o._ctor_init__3ILmosek_4fusion_4Expression_2(perm,expr)
    return o
  @staticmethod
  def __match_ctor__3ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    perm,expr, = args
    return (__arg_match__3I__(perm) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor__3ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    perm,expr, = args
    return (__arg_alt_match__3I__(perm) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init__3ILmosek_4fusion_4Expression_2(self,perm,expr):
    self._ctor_init__3ILmosek_4fusion_4Expression_2(numpy.array(perm,dtype=numpy.dtype(numpy.int32)),expr)
  def _ctor_init__3ILmosek_4fusion_4Expression_2(self,perm,expr):
   mosek_fusion_ExprPermuteDims._ctor_init__3ILmosek_4fusion_4Expression_2I(self,perm,expr,1)
   _0=expr.getShape()
   if (int((perm).shape[0])!=int((_0).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Invalid dimension permutation")
   _1=numpy.array([0 for _2 in range(0,int((perm).shape[0]))], dtype=numpy.dtype(numpy.int32))
   for _3 in range(0,int((_1).shape[0])):
    if ((perm[_3] < 0) or (perm[_3] > int((_0).shape[0]))):
     raise mosek_fusion_LengthError._ctor_S("Invalid dimension permutation")
    _1[perm[_3]] += 1
   for _4 in range(0,int((_1).shape[0])):
    if ((_1[_4] < 1) or (_1[_4] > 1)):
     raise mosek_fusion_LengthError._ctor_S("Invalid dimension permutation")
  @staticmethod
  def _ctor__3ILmosek_4fusion_4Expression_2I(perm,expr,validated):
    o = ExprPermuteDims.__new__(ExprPermuteDims)
    o._ctor_init__3ILmosek_4fusion_4Expression_2I(perm,expr,validated)
    return o
  @staticmethod
  def __match_ctor__3ILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 3: return False
    perm,expr,validated, = args
    return (__arg_match__3I__(perm) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor__3ILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 3: return False
    perm,expr,validated, = args
    return (__arg_alt_match__3I__(perm) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init__3ILmosek_4fusion_4Expression_2I(self,perm,expr,validated):
    self._ctor_init__3ILmosek_4fusion_4Expression_2I(numpy.array(perm,dtype=numpy.dtype(numpy.int32)),expr,numpy.int32(validated))
  def _ctor_init__3ILmosek_4fusion_4Expression_2I(self,perm,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprPermuteDims.__computeshape__3I_3I(perm,expr.getShape()))
   (self.__expr) = expr
   self.__dperm = mosek.fusion.Utils.Tools._arraycopy__3I(perm)
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nelem)
   _5=(_1.nnz)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _9[(_3 - 1)] = 1
   for _10 in range(1,_3):
    _9[((_3 - _10) - 1)] = (_9[(_3 - _10)] * (_1.i32)[((_8 + _3) - _10)])
   _11=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _11[(_3 - 1)] = 1
   for _12 in range(1,_3):
    _11[((_3 - _12) - 1)] = (_11[(_3 - _12)] * (_1.i32)[(_8 + self.__dperm[(_3 - _12)])])
   _13=(_1.ptr_base)
   _14=(_1.sp_base)
   _15=(_1.nidxs_base)
   _16=(_1.cof_base)
   _17=(_1.code_base)
   _18=(_1.codeptr_base)
   _19=(_1.cconst_base)
   _20=(_1.i32)
   _21=(_1.i64)
   _22=(_1.f64)
   _0.alloc_expr(_3,_4,_5,_7,_6)
   _23=(_0.ptr_base)
   _24=(_0.shape_base)
   _25=(_0.nidxs_base)
   _26=(_0.sp_base)
   _27=(_0.cof_base)
   _28=(_0.code_base)
   _29=(_0.codeptr_base)
   _30=(_0.cconst_base)
   _31=(_0.i32)
   _32=(_0.i64)
   _33=(_0.f64)
   for _34 in range(0,_3):
    _31[(_24 + _34)] = _20[(_8 + self.__dperm[_34])]
   if _7:
    _35=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
    for _36 in range(0,_4):
     _37=0
     for _38 in range(0,_3):
      _37 += (((_21[(_14 + _36)] // _9[_38]) % _20[(_8 + _38)]) * _11[self.__dperm[_38]])
     _35[_36] = _37
    _39=numpy.array([_40 for _40 in range(0,_4)], dtype=numpy.dtype(numpy.int64))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_39,_35,None,0,_4)
    _31[_23] = 0
    if (_6 > 0):
     _31[_29] = 0
    _41=0
    _42=0
    _43=0
    for _44 in range(0,_4):
     _45=_39[_44]
     for _46 in range(_20[(_13 + _45)],_20[((_13 + _45) + 1)]):
      _32[(_25 + _43)] = _21[(_15 + _46)]
      _33[(_27 + _43)] = _22[(_16 + _46)]
      if (_6 > 0):
       for _47 in range(_20[(_18 + _46)],_20[((_18 + _46) + 1)]):
        _31[(_28 + _41)] = _20[(_17 + _47)]
        _33[(_30 + _41)] = _22[(_19 + _47)]
        _41 += 1
       _31[((_29 + _43) + 1)] = _41
      _43 += 1
     _32[(_26 + _44)] = _35[_45]
     _42 += 1
     _31[((_23 + _44) + 1)] = _43
   else:
    _31[_23] = 0
    if (_6 > 0):
     _31[_29] = 0
    _48=0
    _49=0
    _50=0
    for _51 in range(0,_4):
     _52=0
     for _53 in range(0,_3):
      _52 += (((_51 // _9[self.__dperm[_53]]) % _20[(_8 + self.__dperm[_53])]) * _11[_53])
     for _54 in range(_20[(_13 + _52)],_20[((_13 + _52) + 1)]):
      _32[(_25 + _50)] = _21[(_15 + _54)]
      _33[(_27 + _50)] = _22[(_16 + _54)]
      if (_6 > 0):
       for _55 in range(_20[(_18 + _54)],_20[((_18 + _54) + 1)]):
        _31[(_28 + _48)] = _20[(_17 + _55)]
        _33[(_30 + _48)] = _22[(_19 + _55)]
        _48 += 1
       _31[((_29 + _50) + 1)] = _48
      _50 += 1
     _49 += 1
     _31[(_23 + _49)] = _50
  @staticmethod
  def __computeshape_alt__3I_3I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprPermuteDims.__computeshape__3I_3I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __computeshape__3I_3I(_0,_1):
   return (numpy.array([_1[_0[_2]] for _2 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int32)))
 return ExprPermuteDims
mosek_fusion_ExprPermuteDims=__mk_mosek_fusion_ExprPermuteDims()
del __mk_mosek_fusion_ExprPermuteDims
def __mk_mosek_fusion_ExprTranspose():
 class ExprTranspose(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprTranspose__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprTranspose.ctor(mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprTranspose._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprTranspose._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprTranspose.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprTranspose._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprTranspose._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprTranspose.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprTranspose: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(expr):
    o = ExprTranspose.__new__(ExprTranspose)
    o._ctor_init_Lmosek_4fusion_4Expression_2(expr)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,expr):
    self._ctor_init_Lmosek_4fusion_4Expression_2(expr)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprTranspose.__transposeShape__3I(expr.getShape()))
   (self.__expr) = expr
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   if ((_1.nd)!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   else:
    _3=(_1.shape_base)
    _4=(_1.nelem)
    _5=(_1.nnz)
    _6=(_1.hassp)
    _7=(_1.ncodeatom)
    _8=(_1.ptr_base)
    _9=(_1.sp_base)
    _10=(_1.nidxs_base)
    _11=(_1.cof_base)
    _12=(_1.code_base)
    _13=(_1.codeptr_base)
    _14=(_1.cconst_base)
    _15=(_1.i32)[_3]
    _16=(_1.i32)[(_3 + 1)]
    _17=(_1.i32)
    _18=(_1.i64)
    _19=(_1.f64)
    _0.alloc_expr(2,_4,_5,_6,_7)
    _20=(_0.ptr_base)
    _21=(_0.nidxs_base)
    _22=(_0.sp_base)
    _23=(_0.cof_base)
    _24=(_0.shape_base)
    _25=(_0.code_base)
    _26=(_0.codeptr_base)
    _27=(_0.cconst_base)
    _28=(_0.i32)
    _29=(_0.i64)
    _30=(_0.f64)
    _28[_24] = _16
    _28[(_24 + 1)] = _15
    _28[_20] = 0
    if (_7 > 0):
     _28[_26] = 0
    if _6:
     _31=_2.alloci32(_4)
     _32=_2.alloci32((_16 + 1))
     _33=(_2.i32)
     for _34 in range(0,(_16 + 1)):
      _33[(_32 + _34)] = 0
     for _35 in range(0,_4):
      _33[((_32 + (_18[(_9 + _35)] % _16)) + 1)] += 1
     for _36 in range(0,_16):
      _33[((_32 + _36) + 1)] += _33[(_32 + _36)]
     for _37 in range(0,_4):
      _38=(_18[(_9 + _37)] % _16)
      _33[(_31 + _33[(_32 + _38)])] = _37
      _33[(_32 + _38)] += 1
     _28[_20] = 0
     _39=0
     _40=0
     for _41 in range(0,_4):
      _42=_33[(_31 + _41)]
      for _43 in range(_17[(_8 + _42)],_17[((_8 + _42) + 1)]):
       _29[(_21 + _40)] = _18[(_10 + _43)]
       _30[(_23 + _40)] = _19[(_11 + _43)]
       if (_7 > 0):
        for _44 in range(_17[(_13 + _43)],_17[((_13 + _43) + 1)]):
         _28[(_25 + _39)] = _17[(_12 + _44)]
         _30[(_27 + _39)] = _19[(_14 + _44)]
         _39 += 1
        _28[((_26 + _40) + 1)] = _39
       _40 += 1
      _45=(_18[(_9 + _42)] // _16)
      _46=(_18[(_9 + _42)] % _16)
      _28[((_20 + _41) + 1)] = _40
      _29[(_22 + _41)] = ((_46 * _15) + _45)
    else:
     _28[_20] = 0
     _47=0
     _48=0
     _49=0
     for _50 in range(0,_16):
      for _51 in range(0,_15):
       _52=((_51 * _16) + _50)
       for _53 in range(_17[(_8 + _52)],_17[((_8 + _52) + 1)]):
        _29[(_21 + _48)] = _18[(_10 + _53)]
        _30[(_23 + _48)] = _19[(_11 + _53)]
        if (_7 > 0):
         for _54 in range(_17[(_13 + _53)],_17[((_13 + _53) + 1)]):
          _28[(_25 + _47)] = _17[(_12 + _54)]
          _30[(_27 + _47)] = _19[(_14 + _54)]
          _47 += 1
         _28[((_26 + _48) + 1)] = _47
        _48 += 1
       _28[((_20 + _49) + 1)] = _48
       _49 += 1
    _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprTranspose(")._a_S(self.__expr.toString())._a_S(")")._toString_())
  @staticmethod
  def __transposeShape_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprTranspose.__transposeShape__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __transposeShape__3I(_0):
   if (int((_0).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   else:
    return (numpy.array([_0[1],_0[0]], dtype=numpy.dtype(numpy.int32)))
 return ExprTranspose
mosek_fusion_ExprTranspose=__mk_mosek_fusion_ExprTranspose()
del __mk_mosek_fusion_ExprTranspose
def __mk_mosek_fusion_ExprRepeat():
 class ExprRepeat(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprRepeat__n','_ExprRepeat__dim','_ExprRepeat__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2II(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2II(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2II(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2II(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprRepeat.ctor(mosek.fusion.Expression,int32,int32)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprRepeat._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprRepeat._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprRepeat.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprRepeat._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprRepeat._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprRepeat.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprRepeat: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2II(expr,dim,n):
    o = ExprRepeat.__new__(ExprRepeat)
    o._ctor_init_Lmosek_4fusion_4Expression_2II(expr,dim,n)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    expr,dim,n, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(dim) and __arg_match_I__(n))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    expr,dim,n, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(dim) and __arg_alt_match_I__(n))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2II(self,expr,dim,n):
    self._ctor_init_Lmosek_4fusion_4Expression_2II(expr,numpy.int32(dim),numpy.int32(n))
  def _ctor_init_Lmosek_4fusion_4Expression_2II(self,expr,dim,n):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprRepeat.__getshape_Lmosek_4fusion_4Expression_2II(expr,dim,n))
   (self.__expr) = expr
   (self.__dim) = dim
   (self.__n) = n
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.ncodeatom)
   _8=(_1.hassp)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=(_3 if ((self.__dim < _3) ) else (_3 + 1))
   _20=(_5 * self.__n)
   _21=(_6 * self.__n)
   _22=(_7 * self.__n)
   _0.alloc_expr(_19,_20,_21,_8,_22)
   _23=(_0.i32)
   _24=(_0.i64)
   _25=(_0.f64)
   _26=(_0.shape_base)
   _27=(_0.ptr_base)
   _28=(_0.sp_base)
   _29=(_0.nidxs_base)
   _30=(_0.cof_base)
   _31=(_0.code_base)
   _32=(_0.codeptr_base)
   _33=(_0.cconst_base)
   _34=1
   for _35 in range(0,self.__dim):
    _34 *= _16[(_4 + _35)]
   _36=(_16[(_4 + self.__dim)] if ((self.__dim < _3) ) else 1)
   _37=(self.__n * _36)
   _38=1
   for _39 in range((self.__dim + 1),_3):
    _38 *= _16[(_4 + _39)]
   for _40 in range(0,_3):
    _23[(_26 + _40)] = _16[(_4 + _40)]
   _23[(_26 + self.__dim)] = _37
   _23[_27] = 0
   if (_22!=0):
    _23[_32] = 0
   if _8:
    _41=0
    _42=0
    _43=0
    _44=0
    _45=0
    while (_43 < _5):
     _46=_17[(_10 + _43)]
     _47=((_46 - (_46 % (_36 * _38))) + (_36 * _38))
     _48=_43
     _43 += 1
     while ((_43 < _5) and (_17[(_10 + _43)] < _47)):
      _43 += 1
     _49=_43
     for _50 in range(0,self.__n):
      for _51 in range(_48,_49):
       _52=(_17[(_10 + _51)] // (_36 * _38))
       _53=((_17[(_10 + _51)] // _38) % _36)
       _54=(_17[(_10 + _51)] % _38)
       for _55 in range(_16[(_9 + _51)],_16[((_9 + _51) + 1)]):
        _24[(_29 + _45)] = _17[(_11 + _55)]
        _25[(_30 + _45)] = _18[(_12 + _55)]
        if (_7 > 0):
         for _56 in range(_16[(_14 + _55)],_16[((_14 + _55) + 1)]):
          _23[(_31 + _41)] = _16[(_13 + _56)]
          _25[(_33 + _41)] = _18[(_15 + _56)]
          _41 += 1
         _23[((_32 + _45) + 1)] = _41
        _45 += 1
       _23[((_27 + _44) + 1)] = _45
       _24[(_28 + _44)] = (((((_52 * _37) + (_50 * _36)) + _53) * _38) + _54)
       _44 += 1
   else:
    _57=0
    _58=0
    _59=0
    _60=0
    for _61 in range(0,_34):
     for _62 in range(0,self.__n):
      _63=((_61 * _36) * _38)
      for _64 in range(0,(_36 * _38)):
       for _65 in range(_16[(_9 + _63)],_16[((_9 + _63) + 1)]):
        _24[(_29 + _59)] = _17[(_11 + _65)]
        _25[(_30 + _59)] = _18[(_12 + _65)]
        if (_7 > 0):
         for _66 in range(_16[(_14 + _65)],_16[((_14 + _65) + 1)]):
          _23[(_31 + _57)] = _16[(_13 + _66)]
          _25[(_33 + _57)] = _18[(_15 + _66)]
          _57 += 1
         _23[((_32 + _59) + 1)] = _57
        _59 += 1
       _23[((_27 + _58) + 1)] = _59
       _58 += 1
       _63 += 1
  @staticmethod
  def __getshape_alt_Lmosek_4fusion_4Expression_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_ExprRepeat.__getshape_Lmosek_4fusion_4Expression_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def __getshape_Lmosek_4fusion_4Expression_2II(_0,_1,_2):
   _3=_0.getShape()
   _4=int((_3).shape[0])
   if (_1 < _4):
    _3[_1] *= _2
    return (_3)
   else:
    _5=(numpy.zeros(((_4 + 1),), dtype=numpy.dtype(numpy.int32)) if ((_1==_4) ) else _3)
    for _6 in range(0,_4):
     _5[_6] = _3[_6]
    _5[_1] = _2
    return (_5)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprRepeat(dim=")._a_I(self.__dim)._a_S(",")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprRepeat
mosek_fusion_ExprRepeat=__mk_mosek_fusion_ExprRepeat()
del __mk_mosek_fusion_ExprRepeat
def __mk_mosek_fusion_ExprStack():
 class ExprStack(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprStack__dim','_ExprStack__exprs']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3Lmosek_4fusion_4Expression_2I(*args): 
      self._ctor_init__3Lmosek_4fusion_4Expression_2I(*args)
    elif self.__match_alt_ctor__3Lmosek_4fusion_4Expression_2I(*args):
      self._ctor_alt_init__3Lmosek_4fusion_4Expression_2I(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprStack.ctor(array(mosek.fusion.Expression,ndim=1),int32)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprStack._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprStack._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprStack.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprStack._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprStack._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprStack.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprStack: '+self._toString_()
  @staticmethod
  def _ctor__3Lmosek_4fusion_4Expression_2I(exprs,dim):
    o = ExprStack.__new__(ExprStack)
    o._ctor_init__3Lmosek_4fusion_4Expression_2I(exprs,dim)
    return o
  @staticmethod
  def __match_ctor__3Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    exprs,dim, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(exprs) and __arg_match_I__(dim))
  @staticmethod
  def __match_alt_ctor__3Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    exprs,dim, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(exprs) and __arg_alt_match_I__(dim))
  def _ctor_alt_init__3Lmosek_4fusion_4Expression_2I(self,exprs,dim):
    self._ctor_init__3Lmosek_4fusion_4Expression_2I(numpy.array(exprs,dtype=numpy.dtype(object)),numpy.int32(dim))
  def _ctor_init__3Lmosek_4fusion_4Expression_2I(self,exprs,dim):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprStack.__getshape__3Lmosek_4fusion_4Expression_2I(exprs,dim))
   (self.__exprs) = numpy.array([exprs[_0] for _0 in range(0,int((exprs).shape[0]))], dtype=numpy.dtype(object))
   (self.__dim) = dim
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=int((self.__exprs).shape[0])
   if (_3==1):
    self.__exprs[0].eval(_0,_1,_2)
   else:
    for _4 in range(0,_3):
     self.__exprs[((_3 - _4) - 1)].eval(_1,_0,_2)
    _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _7=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _8=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _9=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _10=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _11=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _12=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _13=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _14=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _15=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _16=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _17=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    for _18 in range(0,_3):
     _1.pop_expr()
     _5[_18] = (_1.nd)
     _6[_18] = (_1.shape_base)
     _7[_18] = (_1.nelem)
     _8[_18] = (_1.nnz)
     _9[_18] = (_1.ncodeatom)
     _10[_18] = (1 if ((_1.hassp) ) else 0)
     _11[_18] = (_1.ptr_base)
     _13[_18] = (_1.sp_base)
     _12[_18] = (_1.nidxs_base)
     _14[_18] = (_1.cof_base)
     _15[_18] = (_1.code_base)
     _16[_18] = (_1.codeptr_base)
     _17[_18] = (_1.cconst_base)
    _19=(_1.i32)
    _20=(_1.i64)
    _21=(_1.f64)
    _22=_5[0]
    _23=_6[0]
    _24=(_10[0]==0)
    _25=False
    for _26 in range(1,_3):
     _25 = (_25 or ((self.__dim!=_26) and (_5[_26]!=_22)))
     if (not _25):
      for _27 in range(0,self.__dim):
       _25 = (_25 or (_19[(_23 + _27)]!=_19[(_6[_26] + _27)]))
     if (not _25):
      for _28 in range((self.__dim + 1),_22):
       _25 = (_25 or (_19[(_23 + _28)]!=_19[(_6[_26] + _28)]))
     _24 = (_24 and (0==_10[_26]))
    if _25:
     raise mosek_fusion_DimensionError._ctor_S("Mismatching expression dimensions")
    _29=0
    if (self.__dim < _22):
     for _30 in range(0,_3):
      _29 += _19[(_6[_30] + self.__dim)]
    else:
     _29 = _3
    _31=(_22 if ((self.__dim < _22) ) else (_22 + 1))
    if (_31!=self.getND()):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Mismatching dimensions")
    _32=0
    _33=0
    _34=0
    _35=False
    for _36 in range(0,_3):
     _35 = (_35 or (_9[_36] > 0))
    for _37 in range(0,_3):
     _34 += _8[_37]
    for _38 in range(0,_3):
     _33 += _7[_38]
    if _35:
     for _39 in range(0,_3):
      _32 += (_9[_39] if ((_9[_39] > 0) ) else _8[_39])
    _40=1
    for _41 in range(0,self.__dim):
     _40 *= _19[(_23 + _41)]
    _42=(numpy.array([_19[(_6[_43] + self.__dim)] for _43 in range(0,_3)], dtype=numpy.dtype(numpy.int32)) if ((self.__dim < _22) ) else numpy.array([1 for _44 in range(0,_3)], dtype=numpy.dtype(numpy.int32)))
    _45=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _45[0] = 0
    for _46 in range(1,_3):
     _45[_46] = (_45[(_46 - 1)] + _42[(_46 - 1)])
    _47=0
    for _48 in range(0,_3):
     _47 += _42[_48]
    _49=1
    for _50 in range((self.__dim + 1),_22):
     _49 *= _19[(_23 + _50)]
    if _24:
     _0.alloc_expr(_31,_33,_34,False,_32)
     _51=(_0.ptr_base)
     _52=(_0.shape_base)
     _53=(_0.nidxs_base)
     _54=(_0.cof_base)
     _55=(_0.code_base)
     _56=(_0.codeptr_base)
     _57=(_0.cconst_base)
     _58=(_0.i32)
     _59=(_0.i64)
     _60=(_0.f64)
     _61=(_2.alloci32((_33 + 1)) if ((_32 > 0) ) else (- 9999))
     _62=(_2.i32)
     for _63 in range(0,_22):
      _58[(_52 + _63)] = _19[(_23 + _63)]
     _58[(_52 + self.__dim)] = _29
     _64=0
     _65=0
     _66=0
     _58[_51] = 0
     if _35:
      _58[_56] = 0
     for _67 in range(0,_40):
      for _68 in range(0,_3):
       for _69 in range(0,_42[_68]):
        for _70 in range(0,_49):
         _71=((((_67 * _42[_68]) * _49) + (_69 * _49)) + _70)
         for _72 in range(_19[(_11[_68] + _71)],_19[((_11[_68] + _71) + 1)]):
          _59[(_53 + _66)] = _20[(_12[_68] + _72)]
          _60[(_54 + _66)] = _21[(_14[_68] + _72)]
          if (_9[_68] > 0):
           for _73 in range(_19[(_16[_68] + _72)],_19[((_16[_68] + _72) + 1)]):
            _58[(_55 + _64)] = _19[(_15[_68] + _73)]
            _60[(_57 + _64)] = _21[(_17[_68] + _73)]
            _64 += 1
           _58[((_56 + _66) + 1)] = _64
          elif _35: # bld/docker-win/final/default/src/fusion/ExprStack.monty:194:32-45
           _58[(_55 + _64)] = 2
           _60[(_57 + _64)] = 0.0
           _64 += 1
           _58[((_56 + _66) + 1)] = _64
          _66 += 1
         _58[((_51 + _65) + 1)] = _66
         _65 += 1
    else:
     _74=1
     for _75 in range(0,self.__dim):
      _74 *= _19[(_23 + _75)]
     _74 *= _29
     for _76 in range((self.__dim + 1),_22):
      _74 *= _19[(_23 + _76)]
     _77=(_33 < _74)
     _0.alloc_expr(_31,_33,_34,_77,_32)
     _78=(_0.ptr_base)
     _79=(_0.nidxs_base)
     _80=((_0.sp_base) if (_77 ) else _0.alloci64(_33))
     _81=(_0.cof_base)
     _82=(_0.code_base)
     _83=(_0.codeptr_base)
     _84=(_0.cconst_base)
     _85=(_0.shape_base)
     for _86 in range(0,_22):
      (_0.i32)[(_85 + _86)] = _19[(_23 + _86)]
     (_0.i32)[(_85 + self.__dim)] = _29
     _87=(_0.i32)
     _88=(_0.i64)
     _89=(_0.f64)
     if (self.__dim==0):
      _90=0
      _91=0
      _92=0
      _93=0
      _87[_78] = 0
      if (_32 > 0):
       _87[_83] = 0
      for _94 in range(0,_3):
       for _95 in range(0,_7[_94]):
        for _96 in range(_19[(_11[_94] + _95)],_19[((_11[_94] + _95) + 1)]):
         _88[(_79 + _91)] = _20[(_12[_94] + _96)]
         _89[(_81 + _91)] = _21[(_14[_94] + _96)]
         if (_9[_94] > 0):
          for _97 in range(_19[(_16[_94] + _96)],_19[((_16[_94] + _96) + 1)]):
           _87[(_82 + _90)] = _19[(_15[_94] + _97)]
           _89[(_84 + _90)] = _21[(_17[_94] + _97)]
           _90 += 1
          _87[((_83 + _91) + 1)] = _90
         elif (_32 > 0): # bld/docker-win/final/default/src/fusion/ExprStack.monty:260:28-42
          _87[(_82 + _90)] = 2
          _89[(_84 + _90)] = 0.0
          _90 += 1
          _87[((_83 + _91) + 1)] = _90
         _91 += 1
        _87[((_78 + _92) + 1)] = _91
        if (_10[_94]!=0):
         _88[(_80 + _92)] = (_93 + _20[(_13[_94] + _95)])
        else:
         _88[(_80 + _92)] = (_93 + _95)
        _92 += 1
       _98=1
       for _99 in range(0,_22):
        _98 *= _19[(_6[_94] + _99)]
       _93 += _98
     else:
      _100=0
      for _101 in range(0,_31):
       if (_100 < _87[(_85 + _101)]):
        _100 = _87[(_85 + _101)]
      _102=_2.alloci64(_33)
      _103=_2.alloci32(_33)
      _104=_2.alloci32(_33)
      _105=_2.alloci32(_33)
      _106=_2.alloci32(_33)
      _107=_2.alloci32((_100 + 1))
      _108=(_2.i32)
      _109=(_2.i64)
      _110=0
      for _111 in range(0,_3):
       _112=_42[_111]
       _113=(_112 * _49)
       _114=_49
       if (_10[_111]!=0):
        for _115 in range(0,_7[_111]):
         _116=(_20[(_13[_111] + _115)] // _113)
         _117=((_20[(_13[_111] + _115)] // _114) % _112)
         _118=(_20[(_13[_111] + _115)] % _49)
         _109[(_102 + _110)] = (((((_116 * _29) + _117) + _45[_111]) * _49) + _118)
         _108[(_103 + _110)] = _111
         _108[(_104 + _110)] = _115
         _110 += 1
       else:
        for _119 in range(0,_7[_111]):
         _120=(numpy.int64(_119) // _113)
         _121=((numpy.int64(_119) // _114) % _112)
         _122=(numpy.int64(_119) % _49)
         _109[(_102 + _110)] = (((((_120 * _29) + _121) + _45[_111]) * _49) + _122)
         _108[(_103 + _110)] = _111
         _108[(_104 + _110)] = _119
         _110 += 1
      _123=numpy.zeros((_31,), dtype=numpy.dtype(numpy.int64))
      _123[(_31 - 1)] = 1
      for _124 in range(1,_31):
       _123[((_31 - _124) - 1)] = (_123[(_31 - _124)] * _87[((_85 + _31) - _124)])
      for _125 in range(0,_33):
       _108[(_105 + _125)] = _125
      for _126 in range(0,_31):
       _127=((_31 - _126) - 1)
       _128=_87[(_85 + _127)]
       for _129 in range(0,(_128 + 1)):
        _108[(_107 + _129)] = 0
       for _130 in range(0,_33):
        _131=_108[(_105 + _130)]
        _132=((_109[(_102 + _131)] // _123[_127]) % _128)
        _108[((_107 + _132) + 1)] += 1
       for _133 in range(0,_128):
        _108[((_107 + _133) + 1)] += _108[(_107 + _133)]
       for _134 in range(0,_33):
        _135=_108[(_105 + _134)]
        _136=((_109[(_102 + _135)] // _123[_127]) % _128)
        _108[(_106 + _108[(_107 + _136)])] = _135
        _108[(_107 + _136)] += 1
       _137=_105
       _105 = _106
       _106 = _137
      _138=0
      _139=0
      _87[_78] = 0
      if (_32 > 0):
       _87[_83] = 0
      for _140 in range(0,_33):
       _141=_108[(_105 + _140)]
       _142=_108[(_103 + _141)]
       _143=_108[(_104 + _141)]
       for _144 in range(_19[(_11[_142] + _143)],_19[((_11[_142] + _143) + 1)]):
        _88[(_79 + _139)] = _20[(_12[_142] + _144)]
        _89[(_81 + _139)] = _21[(_14[_142] + _144)]
        if (_9[_142] > 0):
         for _145 in range(_19[(_16[_142] + _144)],_19[((_16[_142] + _144) + 1)]):
          _87[(_82 + _138)] = _19[(_15[_142] + _145)]
          _89[(_84 + _138)] = _21[(_17[_142] + _145)]
          _138 += 1
         _87[((_83 + _139) + 1)] = _138
        elif _35: # bld/docker-win/final/default/src/fusion/ExprStack.monty:405:28-41
         _87[(_82 + _138)] = 2
         _89[(_84 + _138)] = 0.0
         _138 += 1
         _87[((_83 + _139) + 1)] = _138
        _139 += 1
       _87[((_78 + _140) + 1)] = _139
       _88[(_80 + _140)] = _109[(_102 + _141)]
     if (not _77):
      _0.popi64(_33)
  @staticmethod
  def __getshape_alt__3Lmosek_4fusion_4Expression_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_ExprStack.__getshape__3Lmosek_4fusion_4Expression_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __getshape__3Lmosek_4fusion_4Expression_2I(_0,_1):
   if (int((_0).shape[0])==0):
    raise mosek_fusion_LengthError._ctor_S("Cannot stack empty list")
   elif (int((_0).shape[0])==1): # bld/docker-win/final/default/src/fusion/ExprStack.monty:19:16-28
    return (_0[0].getShape())
   else:
    _2=_monty.initJaggedArray([_0[_3].getShape() for _3 in range(0,int((_0).shape[0]))], 1)
    _4=_2[0]
    _5=int((_4).shape[0])
    for _6 in range(1,int((_2).shape[0])):
     if (_5!=int((_2[_6]).shape[0])):
      raise mosek_fusion_DimensionError._ctor_S("Mismatching expression dimensions")
     for _7 in range(0,_1):
      if (_4[_7]!=_2[_6][_7]):
       raise mosek_fusion_DimensionError._ctor_S("mismatching expression dimensions")
     for _8 in range((_1 + 1),_5):
      if (_4[_8]!=_2[_6][_8]):
       raise mosek_fusion_DimensionError._ctor_S("mismatching expression dimensions")
    if (_1==_5):
     _9=numpy.zeros(((_5 + 1),), dtype=numpy.dtype(numpy.int32))
     for _10 in range(0,_5):
      _9[_10] = _4[_10]
     _9[_5] = int((_2).shape[0])
     return (_9)
    else:
     _11=_4
     for _12 in range(1,int((_2).shape[0])):
      _11[_1] += _2[_12][_1]
     return (_11)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()._a_S("ExprStack(dim=")._a_I(self.__dim)._a_S(",[")._a_S(self.__exprs[0].toString())
   for _1 in range(1,int((self.__exprs).shape[0])):
    _0._a_S(",")._a_S(self.__exprs[_1].toString())
   _0._a_S("])")
   return (_0._toString_())
 return ExprStack
mosek_fusion_ExprStack=__mk_mosek_fusion_ExprStack()
del __mk_mosek_fusion_ExprStack
def __mk_mosek_fusion_ExprInner():
 class ExprInner(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprInner__vcof','_ExprInner__vsub','_ExprInner__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3D(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3D(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3D(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3D(*args)
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3J_3D(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3J_3D(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3J_3D(*args)
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2_3_5I_3D(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2_3_5I_3D(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2_3_5I_3D(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2_3_5I_3D(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprInner.ctor(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.ExprInner.ctor(mosek.fusion.Expression,array(int64,ndim=1),array(double,ndim=1))\n\tmosek.fusion.ExprInner.ctor(mosek.fusion.Expression,array(int32,ndim=2),array(double,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprInner._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprInner._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprInner.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprInner._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprInner._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprInner.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprInner: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3J_3D(expr3,vsub3,vcof3):
    o = ExprInner.__new__(ExprInner)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(expr3,vsub3,vcof3)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3J_3D(*args):
    if len(args) != 3: return False
    expr3,vsub3,vcof3, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr3) and __arg_match__3J__(vsub3) and __arg_match__3D__(vcof3))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3J_3D(*args):
    if len(args) != 3: return False
    expr3,vsub3,vcof3, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr3) and __arg_alt_match__3J__(vsub3) and __arg_alt_match__3D__(vcof3))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3J_3D(self,expr3,vsub3,vcof3):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(expr3,numpy.array(vsub3,dtype=numpy.dtype(numpy.int64)),numpy.array(vcof3,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(self,expr3,vsub3,vcof3):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
   (self.__expr) = expr3
   (self.__vsub) = vsub3
   (self.__vcof) = vcof3
   if (int((vsub3).shape[0])!=int((vcof3).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Mismatching lengths of vcof and vsub")
   _0=expr3.getShape()
   _1=mosek.fusion.Set._size__3I(_0)
   _2=False
   _3=False
   for _4 in range(1,int((vsub3).shape[0])):
    if (vsub3[_4] <= vsub3[(_4 - 1)]):
     _2 = True
   if (int((vsub3).shape[0]) > 0):
    if ((vsub3[0] < 0) or (vsub3[(int((vsub3).shape[0]) - 1)] > _1)):
     _3 = True
   if _2:
    raise mosek_fusion_IndexError._ctor_S("Unordered coefficcient subscripts")
   if _3:
    raise mosek_fusion_IndexError._ctor_S("Coefficient subscript out of bounds")
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3D(expr2,vcof2):
    o = ExprInner.__new__(ExprInner)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3D(expr2,vcof2)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    expr2,vcof2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr2) and __arg_match__3D__(vcof2))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    expr2,vcof2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr2) and __arg_alt_match__3D__(vcof2))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3D(self,expr2,vcof2):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3D(expr2,numpy.array(vcof2,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3D(self,expr2,vcof2):
   mosek_fusion_ExprInner._ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(self,expr2,mosek.fusion.ExprInner.__range_I(int((vcof2).shape[0])),vcof2)
   _0=expr2.getShape()
   if ((int((_0).shape[0])!=1) or (_0[0]!=int((vcof2).shape[0]))):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions of operands")
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2_3_5I_3D(expr1,vsub1,vcof1):
    o = ExprInner.__new__(ExprInner)
    o._ctor_init_Lmosek_4fusion_4Expression_2_3_5I_3D(expr1,vsub1,vcof1)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2_3_5I_3D(*args):
    if len(args) != 3: return False
    expr1,vsub1,vcof1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr1) and __arg_match__3_5I__(vsub1) and __arg_match__3D__(vcof1))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2_3_5I_3D(*args):
    if len(args) != 3: return False
    expr1,vsub1,vcof1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr1) and __arg_alt_match__3_5I__(vsub1) and __arg_alt_match__3D__(vcof1))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2_3_5I_3D(self,expr1,vsub1,vcof1):
    self._ctor_init_Lmosek_4fusion_4Expression_2_3_5I_3D(expr1,numpy.array(vsub1,dtype=numpy.dtype(numpy.int32)),numpy.array(vcof1,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init_Lmosek_4fusion_4Expression_2_3_5I_3D(self,expr1,vsub1,vcof1):
   mosek_fusion_ExprInner._ctor_init_Lmosek_4fusion_4Expression_2_3J_3D(self,expr1,mosek.fusion.ExprInner.__convert__3I_3_5I(expr1.getShape(),vsub1),vcof1)
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nelem)
   _5=(_1.nnz)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.nidxs_base)
   _11=(_1.sp_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=0
   if _7:
    _20=0
    _21=0
    while ((_21 < int((self.__vsub).shape[0])) and (_20 < _4)):
     if (_17[(_11 + _20)] < self.__vsub[_21]):
      _20 += 1
     elif (_17[(_11 + _20)] > self.__vsub[_21]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:2412:20-42
      _21 += 1
     else:
      _19 += (_16[((_9 + _20) + 1)] - _16[(_9 + _20)])
      _21 += 1
      _20 += 1
   else:
    for _22 in range(0,int((self.__vsub).shape[0])):
     _19 += (_16[((_9 + self.__vsub[_22]) + 1)] - _16[(_9 + self.__vsub[_22])])
   _23=((_6 + (2 * _5)) if ((_6 > 0) ) else 0)
   _0.alloc_expr(0,1,_19,False,_23)
   _24=(_0.ptr_base)
   _25=(_0.nidxs_base)
   _26=(_0.cof_base)
   _27=(_0.code_base)
   _28=(_0.codeptr_base)
   _29=(_0.cconst_base)
   _30=(_0.i32)
   _31=(_0.i64)
   _32=(_0.f64)
   _30[_24] = 0
   _30[(_24 + 1)] = _19
   if (_23 > 0):
    _30[_28] = 0
   _33=0
   _34=0
   if _7:
    _35=0
    _36=0
    while ((_36 < int((self.__vsub).shape[0])) and (_35 < _4)):
     if (_17[(_11 + _35)] < self.__vsub[_36]):
      _35 += 1
     elif (_17[(_11 + _35)] > self.__vsub[_36]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:2452:20-42
      _36 += 1
     else:
      _37=_16[(_9 + _35)]
      _38=_16[((_9 + _35) + 1)]
      for _39 in range(_37,_38):
       _31[(_25 + _34)] = _17[(_10 + _39)]
       _32[(_26 + _34)] = (self.__vcof[_36] * _18[(_12 + _39)])
       if (_23 > 0):
        for _40 in range(_16[(_14 + _39)],_16[((_14 + _39) + 1)]):
         _30[(_27 + _33)] = _16[(_13 + _40)]
         _32[(_29 + _33)] = _18[(_15 + _40)]
         _33 += 1
        _30[(_27 + _33)] = 2
        _32[(_29 + _33)] = self.__vcof[_36]
        _33 += 1
        _30[(_27 + _33)] = 5
        _33 += 1
        _30[((_28 + _34) + 1)] = _33
       _34 += 1
      _36 += 1
      _35 += 1
   else:
    for _41 in range(0,int((self.__vsub).shape[0])):
     _42=_16[(_9 + self.__vsub[_41])]
     _43=_16[((_9 + self.__vsub[_41]) + 1)]
     for _44 in range(_42,_43):
      _31[(_25 + _34)] = _17[(_10 + _44)]
      _32[(_26 + _34)] = (self.__vcof[_41] * _18[(_12 + _44)])
      if (_23 > 0):
       for _45 in range(_16[(_14 + _44)],_16[((_14 + _44) + 1)]):
        _30[(_27 + _33)] = _16[(_13 + _45)]
        _32[(_29 + _33)] = _18[(_15 + _45)]
        _33 += 1
       _30[(_27 + _33)] = 2
       _32[(_29 + _33)] = self.__vcof[_41]
       _33 += 1
       _30[(_27 + _33)] = 5
       _33 += 1
       _30[((_28 + _34) + 1)] = _33
      _34 += 1
  @staticmethod
  def __range_alt_I(_t__0):
    return mosek_fusion_ExprInner.__range_I(numpy.int32(__0))
  @staticmethod
  def __range_I(_0):
   return (numpy.array([_1 for _1 in range(0,_0)], dtype=numpy.dtype(numpy.int64)))
  @staticmethod
  def __convert_alt__3I_3_5I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprInner.__convert__3I_3_5I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __convert__3I_3_5I(_0,_1):
   _2=int((_0).shape[0])
   _3=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int64))
   _3[(_2 - 1)] = 1
   for _4 in range(1,_2):
    _3[((_2 - _4) - 1)] = (_3[(_2 - _4)] * _0[(_2 - _4)])
   _5=numpy.zeros((int((_1).shape[0]),), dtype=numpy.dtype(numpy.int64))
   for _6 in range(0,int((_1).shape[0])):
    for _7 in range(0,_2):
     _5[_6] += (_3[_7] * _1[_6,_7])
   return (_5)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("ExprInner()")
 return ExprInner
mosek_fusion_ExprInner=__mk_mosek_fusion_ExprInner()
del __mk_mosek_fusion_ExprInner
def __mk_mosek_fusion_ExprMulDiagRight():
 class ExprMulDiagRight(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulDiagRight__expr','_ExprMulDiagRight__mval','_ExprMulDiagRight__msubj','_ExprMulDiagRight__msubi','_ExprMulDiagRight__mdim1','_ExprMulDiagRight__mdim0']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulDiagRight.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulDiagRight._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulDiagRight._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulDiagRight.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulDiagRight._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulDiagRight._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulDiagRight.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulDiagRight: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated):
    o = ExprMulDiagRight.__new__(ExprMulDiagRight)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr,numpy.int32(validated))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([mdim1], dtype=numpy.dtype(numpy.int32)))
   (self.__mdim0) = mdim0
   (self.__mdim1) = mdim1
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mval) = mval
   (self.__expr) = expr
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr):
    o = ExprMulDiagRight.__new__(ExprMulDiagRight)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
   mosek_fusion_ExprMulDiagRight._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,mosek.fusion.ExprMulDiagRight.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   (self.__expr).eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nnz)
   _5=(_1.nelem)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.codeptr_base)
   _14=(_1.code_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=_16[_8]
   _20=_16[(_8 + 1)]
   _21=int((self.__mval).shape[0])
   _22=_2.alloci32(_21)
   _23=_2.alloci32((self.__mdim1 + 1))
   _24=(_2.i32)
   for _25 in range(0,(self.__mdim1 + 1)):
    _24[(_23 + _25)] = 0
   for _26 in range(0,_21):
    _24[((_23 + self.__msubj[_26]) + 1)] += 1
   for _27 in range(0,self.__mdim1):
    _24[((_23 + _27) + 1)] += _24[(_23 + _27)]
   for _28 in range(0,_21):
    _24[(_22 + _24[(_23 + self.__msubj[_28])])] = _28
    _24[(_23 + self.__msubj[_28])] += 1
   for _29 in range(0,self.__mdim1):
    _24[((_23 + self.__mdim1) - _29)] = _24[(((_23 + self.__mdim1) - _29) - 1)]
   _24[_23] = 0
   _30=0
   _31=0
   _32=0
   if (not _7):
    _33=0
    while (_33 < _21):
     _34=self.__msubj[_24[(_22 + _33)]]
     _35=_33
     while ((_33 < _21) and (_34==self.__msubj[_24[(_22 + _33)]])):
      _33 += 1
     for _36 in range(_35,_33):
      _37=((self.__msubj[_24[(_22 + _36)]] * _20) + self.__msubi[_24[(_22 + _36)]])
      _31 += (_16[((_9 + _37) + 1)] - _16[(_9 + _37)])
      if (_6 > 0):
       _30 += ((_16[(_13 + _16[((_9 + _37) + 1)])] - _16[(_13 + _16[(_9 + _37)])]) + (2 * (_16[((_9 + _37) + 1)] - _16[(_9 + _37)])))
     _32 += 1
   else:
    _38=0
    _39=0
    for _40 in range(0,self.__mdim1):
     _41=_38
     _42=_39
     while ((_38 < _21) and (_40==self.__msubj[_24[(_22 + _38)]])):
      _38 += 1
     while ((_39 < _5) and (_40==(_17[(_10 + _39)] // _20))):
      _39 += 1
     _43=_41
     _44=_42
     _45=0
     while ((_44 < _39) and (_43 < _38)):
      if ((_17[(_10 + _44)] % _20) < self.__msubi[_24[(_22 + _43)]]):
       _44 += 1
      elif ((_17[(_10 + _44)] % _20) > self.__msubi[_24[(_22 + _43)]]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:2146:22-68
       _43 += 1
      else:
       _31 += (_16[((_9 + _44) + 1)] - _16[(_9 + _44)])
       if (_6 > 0):
        _30 += ((_16[(_13 + _16[((_9 + _44) + 1)])] - _16[(_13 + _16[(_9 + _44)])]) + (2 * (_16[((_9 + _44) + 1)] - _16[(_9 + _44)])))
       _45 += 1
       _44 += 1
       _43 += 1
     if (_45 > 0):
      _32 += 1
   _46=(_32 < _19)
   _0.alloc_expr(1,_32,_31,_46,_30)
   _47=(_0.ptr_base)
   _48=(_0.nidxs_base)
   _49=((_0.sp_base) if (_46 ) else _0.alloci64(_32))
   _50=(_0.cof_base)
   _51=(_0.shape_base)
   _52=(_0.code_base)
   _53=(_0.codeptr_base)
   _54=(_0.cconst_base)
   _55=(_0.i64)
   _56=(_0.f64)
   _57=(_0.i32)
   _58=(_2.i32)
   _59=0
   _60=0
   _61=0
   _57[_47] = 0
   if (_30 > 0):
    _57[_53] = 0
   _57[_51] = self.__mdim1
   if (not _7):
    _62=0
    while (_62 < _21):
     _63=self.__msubj[_58[(_22 + _62)]]
     _64=_62
     while ((_62 < _21) and (_63==self.__msubj[_58[(_22 + _62)]])):
      _62 += 1
     for _65 in range(_64,_62):
      _66=_58[(_22 + _65)]
      _67=((self.__msubj[_66] * _20) + self.__msubi[_66])
      for _68 in range(_16[(_9 + _67)],_16[((_9 + _67) + 1)]):
       _55[(_48 + _60)] = _17[(_11 + _68)]
       _56[(_50 + _60)] = (_18[(_12 + _68)] * self.__mval[_66])
       if (_6 > 0):
        for _69 in range(_16[(_13 + _68)],_16[((_13 + _68) + 1)]):
         _57[(_52 + _59)] = _16[(_14 + _69)]
         _56[(_54 + _59)] = _18[(_15 + _69)]
         _59 += 1
        _57[(_52 + _59)] = 2
        _56[(_54 + _59)] = self.__mval[_66]
        _59 += 1
        _57[(_52 + _59)] = 5
        _59 += 1
        _57[((_53 + _60) + 1)] = _59
       _60 += 1
     _55[(_49 + _61)] = _63
     _57[((_47 + _61) + 1)] = _60
     _61 += 1
   else:
    _70=0
    _71=0
    for _72 in range(0,self.__mdim1):
     _73=_70
     _74=_71
     while ((_71 < _5) and (_72==(_17[(_10 + _71)] // _20))):
      _71 += 1
     while ((_70 < _21) and (_72==self.__msubj[_58[(_22 + _70)]])):
      _70 += 1
     _75=_73
     _76=_74
     _77=0
     while ((_76 < _71) and (_75 < _70)):
      if ((_17[(_10 + _76)] % _20) < self.__msubi[_58[(_22 + _75)]]):
       _76 += 1
      elif ((_17[(_10 + _76)] % _20) > self.__msubi[_58[(_22 + _75)]]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:2264:24-70
       _75 += 1
      else:
       _78=_58[(_22 + _75)]
       for _79 in range(_16[(_9 + _76)],_16[((_9 + _76) + 1)]):
        _55[(_48 + _60)] = _17[(_11 + _79)]
        _56[(_50 + _60)] = (_18[(_12 + _79)] * self.__mval[_78])
        if (_6 > 0):
         for _80 in range(_16[(_13 + _79)],_16[((_13 + _79) + 1)]):
          _57[(_52 + _59)] = _16[(_14 + _80)]
          _56[(_54 + _59)] = _18[(_15 + _80)]
          _59 += 1
         _57[(_52 + _59)] = 2
         _56[(_54 + _59)] = self.__mval[_78]
         _59 += 1
         _57[(_52 + _59)] = 5
         _59 += 1
         _57[((_53 + _60) + 1)] = _59
        _60 += 1
       _77 += 1
       _76 += 1
       _75 += 1
     if (_77 > 0):
      _57[((_47 + _61) + 1)] = _60
      _55[(_49 + _61)] = _72
      _61 += 1
   if (not _46):
    _0.popi64(_32)
   if (not (_31==_60)):
    raise mosek_fusion_UnexpectedError._ctor_S("Incorrect number of non-zeros")
   if (not (_32==_61)):
    raise mosek_fusion_UnexpectedError._ctor_S("Incorrect number of elements")
   _2.clear()
  @staticmethod
  def __validate_alt_II_3I_3I_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprMulDiagRight.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5):
   _6=_5.getShape()
   if (int((_6).shape[0]) > 2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   _7=_6[0]
   _8=_6[1]
   if ((_0 < 0) or ((_1 < 0) or ((_7 < 0) or (_8 < 0)))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if ((_0!=_8) or (_1!=_7)):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   if ((int((_2).shape[0])!=int((_3).shape[0])) or (int((_2).shape[0])!=int((_4).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _9=int((_2).shape[0])
   _10=False
   _11=False
   for _12 in range(0,_9):
    if ((_2[_12] < 0) or ((_2[_12] >= _0) or ((_3[_12] < 0) or (_3[_12] >= _1)))):
     _10 = True
   for _13 in range(0,(_9 - 1)):
    if ((_2[_13] > _2[(_13 + 1)]) or ((_2[_13]==_2[(_13 + 1)]) and (_3[_13] >= _3[(_13 + 1)]))):
     _11 = True
   if _10:
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   if _11:
    raise mosek_fusion_LengthError._ctor_S("Unsorted matrix data")
   return numpy.int32(1)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulDiagRight(")._a_S(self.__expr.toString())._a_S(",m)")._toString_())
 return ExprMulDiagRight
mosek_fusion_ExprMulDiagRight=__mk_mosek_fusion_ExprMulDiagRight()
del __mk_mosek_fusion_ExprMulDiagRight
def __mk_mosek_fusion_ExprMulDiagLeft():
 class ExprMulDiagLeft(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulDiagLeft__expr','_ExprMulDiagLeft__mval','_ExprMulDiagLeft__msubj','_ExprMulDiagLeft__msubi','_ExprMulDiagLeft__mdim1','_ExprMulDiagLeft__mdim0']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulDiagLeft.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulDiagLeft._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulDiagLeft._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulDiagLeft.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulDiagLeft._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulDiagLeft._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulDiagLeft.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulDiagLeft: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated):
    o = ExprMulDiagLeft.__new__(ExprMulDiagLeft)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr,numpy.int32(validated))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([mdim0], dtype=numpy.dtype(numpy.int32)))
   (self.__mdim0) = mdim0
   (self.__mdim1) = mdim1
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mval) = mval
   (self.__expr) = expr
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr):
    o = ExprMulDiagLeft.__new__(ExprMulDiagLeft)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
   mosek_fusion_ExprMulDiagLeft._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,mosek.fusion.ExprMulDiagLeft.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   (self.__expr).eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ncodeatom)
   _11=(_1.ptr_base)
   _12=(_1.code_base)
   _13=(_1.cconst_base)
   _14=(_1.codeptr_base)
   _15=(_1.shape_base)
   _16=(_1.sp_base)
   _17=(_1.nidxs_base)
   _18=(_1.cof_base)
   _19=(_1.cconst_base)
   if (_6!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operator shape for multiplication")
   _20=_3[_15]
   _21=_3[(_15 + 1)]
   _22=int((self.__msubi).shape[0])
   if (not _9):
    _23=0
    _24=0
    _25=0
    _26=0
    while (_26 < int((self.__msubi).shape[0])):
     _27=self.__msubi[_26]
     while ((_26 < int((self.__msubi).shape[0])) and (self.__msubi[_26]==_27)):
      _28=((self.__msubj[_26] * _21) + self.__msubi[_26])
      _23 += (_3[((_11 + _28) + 1)] - _3[(_11 + _28)])
      if (_10 > 0):
       _25 += ((_3[(_14 + _3[((_11 + _28) + 1)])] - _3[(_14 + _3[(_11 + _28)])]) + (2 * (_3[((_11 + _28) + 1)] - _3[(_11 + _28)])))
      _26 += 1
     _24 += 1
    _29=(_24 < self.__mdim0)
    _0.alloc_expr(1,_24,_23,_29,_25)
    _30=(_0.ptr_base)
    _31=(_0.nidxs_base)
    _32=((_0.sp_base) if (_29 ) else _0.alloci64(_24))
    _33=(_0.cof_base)
    _34=(_0.shape_base)
    _35=(_0.code_base)
    _36=(_0.codeptr_base)
    _37=(_0.cconst_base)
    _38=(_0.i64)
    _39=(_0.f64)
    _40=(_0.i32)
    _40[_30] = 0
    if (_10 > 0):
     _40[_36] = 0
    _40[_34] = self.__mdim0
    _41=0
    _42=0
    _43=0
    pass
    _44=0
    while (_44 < int((self.__msubi).shape[0])):
     _45=self.__msubi[_44]
     while ((_44 < int((self.__msubi).shape[0])) and (self.__msubi[_44]==_45)):
      _46=((self.__msubj[_44] * _21) + self.__msubi[_44])
      for _47 in range(_3[(_11 + _46)],_3[((_11 + _46) + 1)]):
       _38[(_31 + _41)] = _4[(_17 + _47)]
       _39[(_33 + _41)] = (_5[(_18 + _47)] * self.__mval[_44])
       if (_25 > 0):
        for _48 in range(_3[(_14 + _47)],_3[((_14 + _47) + 1)]):
         _40[(_35 + _43)] = _3[(_12 + _48)]
         _39[(_37 + _43)] = _5[(_13 + _48)]
         _43 += 1
        _40[(_35 + _43)] = 2
        _39[(_37 + _43)] = self.__mval[_44]
        _43 += 1
        _40[(_35 + _43)] = 5
        _43 += 1
        _40[((_36 + _41) + 1)] = _43
       _41 += 1
      _44 += 1
     _40[((_30 + _42) + 1)] = _41
     _38[(_32 + _42)] = _45
     _42 += 1
    if (not _29):
     _0.popi64(_24)
   else:
    _49=_2.alloci32((_21 + 1))
    _50=_2.alloci32(_7)
    _51=_2.alloci32((self.__mdim0 + 1))
    _52=(_2.i32)
    _53=0
    _54=0
    _55=0
    for _56 in range(0,(_21 + 1)):
     _52[(_49 + _56)] = 0
    for _57 in range(0,_7):
     _52[((_49 + (_4[(_16 + _57)] % _21)) + 1)] += 1
    for _58 in range(0,_21):
     _52[((_49 + _58) + 1)] += _52[(_49 + _58)]
    for _59 in range(0,_7):
     _60=(_4[(_16 + _59)] % _21)
     _52[(_50 + _52[(_49 + _60)])] = _59
     _52[(_49 + _60)] += 1
    for _61 in range(0,_21):
     _52[((_49 + _21) - _61)] = _52[(((_49 + _21) - _61) - 1)]
    _52[_49] = 0
    _62=0
    _63=0
    while ((_63 < int((self.__msubi).shape[0])) and (_62 < _7)):
     if (self.__msubi[_63] < (_4[(_16 + _52[(_50 + _62)])] % _21)):
      _63 += 1
     elif (self.__msubi[_63] > (_4[(_16 + _52[(_50 + _62)])] % _21)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1826:22-66
      _62 += 1
     else:
      _64=0
      _65=(_4[(_16 + _52[(_50 + _62)])] % _21)
      _66=_63
      while ((_63 < int((self.__msubi).shape[0])) and (self.__msubi[_63]==self.__msubi[_66])):
       _63 += 1
      _67=_62
      while ((_62 < _7) and ((_4[(_16 + _52[(_50 + _62)])] % _21)==_65)):
       _62 += 1
      _68=_67
      _69=_66
      _70=0
      while ((_69 < _63) and (_68 < _62)):
       _71=_52[(_50 + _68)]
       if (self.__msubj[_69] < (_4[(_16 + _71)] // _21)):
        _69 += 1
       elif (self.__msubj[_69] > (_4[(_16 + _71)] // _21)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1839:26-59
        _68 += 1
       else:
        _54 += (_3[((_11 + _71) + 1)] - _3[(_11 + _71)])
        if (_10 > 0):
         _53 += ((_3[(_14 + _3[((_11 + _71) + 1)])] - _3[(_14 + _3[(_11 + _71)])]) + (2 * (_3[((_11 + _71) + 1)] - _3[(_11 + _71)])))
        _70 += 1
        _69 += 1
        _68 += 1
      if (_70 > 0):
       _55 += 1
    _72=(_55 < self.__mdim0)
    _0.alloc_expr(1,_55,_54,_72,_53)
    _73=(_0.ptr_base)
    _74=(_0.nidxs_base)
    _75=((_0.sp_base) if (_72 ) else _0.alloci64(_55))
    _76=(_0.cof_base)
    _77=(_0.shape_base)
    _78=(_0.code_base)
    _79=(_0.codeptr_base)
    _80=(_0.cconst_base)
    _81=(_0.i64)
    _82=(_0.f64)
    _83=(_0.i32)
    _84=0
    _85=0
    _86=0
    _87=0
    _88=0
    _83[_73] = 0
    if (_10 > 0):
     _83[_79] = 0
    _83[_77] = self.__mdim0
    while ((_88 < int((self.__msubi).shape[0])) and (_87 < _7)):
     if (self.__msubi[_88] < (_4[(_16 + _52[(_50 + _87)])] % _21)):
      _88 += 1
     elif (self.__msubi[_88] > (_4[(_16 + _52[(_50 + _87)])] % _21)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1883:22-66
      _87 += 1
     else:
      _89=0
      _90=(_4[(_16 + _52[(_50 + _87)])] % _21)
      _91=_88
      while ((_88 < int((self.__msubi).shape[0])) and (self.__msubi[_88]==self.__msubi[_91])):
       _88 += 1
      _92=_87
      while ((_87 < _7) and ((_4[(_16 + _52[(_50 + _87)])] % _21)==_90)):
       _87 += 1
      _93=_92
      _94=_91
      _95=0
      _96=self.__msubi[_91]
      while ((_94 < _88) and (_93 < _87)):
       _97=_52[(_50 + _93)]
       if (self.__msubj[_94] < (_4[(_16 + _97)] // _21)):
        _94 += 1
       elif (self.__msubj[_94] > (_4[(_16 + _97)] // _21)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1898:26-59
        _93 += 1
       else:
        for _98 in range(_3[(_11 + _97)],_3[((_11 + _97) + 1)]):
         _81[(_74 + _85)] = _4[(_17 + _98)]
         _82[(_76 + _85)] = (_5[(_18 + _98)] * self.__mval[_94])
         if (_10 > 0):
          for _99 in range(_3[(_14 + _98)],_3[((_14 + _98) + 1)]):
           _83[(_78 + _86)] = _3[(_12 + _99)]
           _82[(_80 + _86)] = _5[(_13 + _99)]
           _86 += 1
          _83[(_78 + _86)] = 2
          _82[(_80 + _86)] = self.__mval[_94]
          _86 += 1
          _83[(_78 + _86)] = 5
          _86 += 1
          _83[((_79 + _85) + 1)] = _86
         _85 += 1
         _95 += 1
        _94 += 1
        _93 += 1
      if (_95 > 0):
       _83[((_73 + _84) + 1)] = _85
       _81[(_75 + _84)] = _96
       _84 += 1
    if (_85!=_54):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of non-zeros")
    if (_84!=_55):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of elements")
    if (not _72):
     _0.popi64(_55)
   _2.clear()
  @staticmethod
  def __validate_alt_II_3I_3I_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprMulDiagLeft.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5):
   _6=_5.getShape()
   if (int((_6).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   _7=_6[0]
   _8=_6[1]
   if ((_0 < 0) or (_1 < 0)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if ((_1!=_7) or (_0!=_8)):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   if ((int((_2).shape[0])!=int((_3).shape[0])) or (int((_2).shape[0])!=int((_4).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _9=int((_2).shape[0])
   _10=False
   _11=False
   for _12 in range(0,_9):
    if ((_2[_12] < 0) or ((_2[_12] >= _0) or ((_3[_12] < 0) or (_3[_12] >= _1)))):
     _10 = True
   for _13 in range(0,(_9 - 1)):
    if ((_2[_13] > _2[(_13 + 1)]) or ((_2[_13]==_2[(_13 + 1)]) and (_3[_13] >= _3[(_13 + 1)]))):
     _11 = True
   if _10:
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   if _11:
    raise mosek_fusion_LengthError._ctor_S("Unsorted matrix data")
   return numpy.int32(1)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulDiagLeft(m,")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprMulDiagLeft
mosek_fusion_ExprMulDiagLeft=__mk_mosek_fusion_ExprMulDiagLeft()
del __mk_mosek_fusion_ExprMulDiagLeft
def __mk_mosek_fusion_ExprMulElement():
 class ExprMulElement(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulElement__expr','_ExprMulElement__msp','_ExprMulElement__mcof']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3D_3JLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init__3D_3JLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor__3D_3JLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init__3D_3JLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulElement.ctor(array(double,ndim=1),array(int64,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulElement._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulElement._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulElement.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulElement._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulElement._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulElement.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulElement: '+self._toString_()
  @staticmethod
  def _ctor__3D_3JLmosek_4fusion_4Expression_2(mcof,msp,expr):
    o = ExprMulElement.__new__(ExprMulElement)
    o._ctor_init__3D_3JLmosek_4fusion_4Expression_2(mcof,msp,expr)
    return o
  @staticmethod
  def __match_ctor__3D_3JLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    mcof,msp,expr, = args
    return (__arg_match__3D__(mcof) and __arg_match__3J__(msp) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor__3D_3JLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    mcof,msp,expr, = args
    return (__arg_alt_match__3D__(mcof) and __arg_alt_match__3J__(msp) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init__3D_3JLmosek_4fusion_4Expression_2(self,mcof,msp,expr):
    self._ctor_init__3D_3JLmosek_4fusion_4Expression_2(numpy.array(mcof,dtype=numpy.dtype(numpy.float64)),numpy.array(msp,dtype=numpy.dtype(numpy.int64)),expr)
  def _ctor_init__3D_3JLmosek_4fusion_4Expression_2(self,mcof,msp,expr):
   mosek_fusion_ExprMulElement._ctor_init__3D_3JLmosek_4fusion_4Expression_2I(self,mcof,msp,expr,1)
   _0=expr.getShape()
   if (int((mcof).shape[0])!=int((msp).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix specification")
   _1=mosek.fusion.Set._size__3I(_0)
   _2=False
   _3=False
   for _4 in range(0,int((msp).shape[0])):
    if ((msp[_4] < 0) or (msp[_4] >= _1)):
     _2 = True
   for _5 in range(0,(int((msp).shape[0]) - 1)):
    if (msp[_5] >= msp[(_5 + 1)]):
     _3 = True
   if _2:
    raise mosek_fusion_IndexError._ctor_S("Invalid matrix data")
   if _3:
    raise mosek_fusion_IndexError._ctor_S("Matrix data not sorted")
  @staticmethod
  def _ctor__3D_3JLmosek_4fusion_4Expression_2I(cof,msp,expr,validated):
    o = ExprMulElement.__new__(ExprMulElement)
    o._ctor_init__3D_3JLmosek_4fusion_4Expression_2I(cof,msp,expr,validated)
    return o
  @staticmethod
  def __match_ctor__3D_3JLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    cof,msp,expr,validated, = args
    return (__arg_match__3D__(cof) and __arg_match__3J__(msp) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor__3D_3JLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    cof,msp,expr,validated, = args
    return (__arg_alt_match__3D__(cof) and __arg_alt_match__3J__(msp) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init__3D_3JLmosek_4fusion_4Expression_2I(self,cof,msp,expr,validated):
    self._ctor_init__3D_3JLmosek_4fusion_4Expression_2I(numpy.array(cof,dtype=numpy.dtype(numpy.float64)),numpy.array(msp,dtype=numpy.dtype(numpy.int64)),expr,numpy.int32(validated))
  def _ctor_init__3D_3JLmosek_4fusion_4Expression_2I(self,cof,msp,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
   (self.__mcof) = cof
   (self.__msp) = msp
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nelem)
   _5=(_1.nnz)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.nidxs_base)
   _11=(_1.sp_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=0
   _20=0
   _21=0
   if (not _7):
    _21 = int((self.__msp).shape[0])
    for _22 in range(0,int((self.__msp).shape[0])):
     _20 += (_16[((_9 + self.__msp[_22]) + 1)] - _16[(_9 + self.__msp[_22])])
    if (_6 > 0):
     for _23 in range(0,int((self.__msp).shape[0])):
      _19 += ((_16[(_14 + _16[((_9 + self.__msp[_23]) + 1)])] - _16[(_14 + _16[(_9 + self.__msp[_23])])]) + (2 * (_16[((_9 + self.__msp[_23]) + 1)] - _16[(_9 + self.__msp[_23])])))
   else:
    _24=int((self.__msp).shape[0])
    _25=0
    _26=_4
    _27=0
    while ((_25 < _24) and (_27 < _26)):
     if (self.__msp[_25] < _17[(_11 + _27)]):
      _25 += 1
     elif (self.__msp[_25] > _17[(_11 + _27)]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1445:20-41
      _27 += 1
     else:
      _20 += (_16[((_9 + _27) + 1)] - _16[(_9 + _27)])
      if (_6 > 0):
       _19 += ((_16[(_14 + _16[((_9 + _27) + 1)])] - _16[(_14 + _16[(_9 + _27)])]) + (2 * (_16[((_9 + _27) + 1)] - _16[(_9 + _27)])))
      _25 += 1
      _27 += 1
      _21 += 1
   _28=1
   for _29 in range(0,_3):
    _28 *= _16[(_8 + _29)]
   _30=(_21 < _28)
   _31=_3
   _0.alloc_expr(_31,_21,_20,_30,_19)
   _32=(_0.ptr_base)
   _33=(_0.shape_base)
   _34=(_0.nidxs_base)
   _35=((_0.sp_base) if (_30 ) else _0.alloci64(_21))
   _36=(_0.cof_base)
   _37=(_0.code_base)
   _38=(_0.codeptr_base)
   _39=(_0.cconst_base)
   _40=(_0.i32)
   _41=(_0.i64)
   _42=(_0.f64)
   _43=0
   _44=0
   _45=0
   _40[_32] = 0
   if (_19 > 0):
    _40[_38] = 0
   for _46 in range(0,_31):
    _40[(_33 + _46)] = _16[(_8 + _46)]
   if (not _7):
    for _47 in range(0,int((self.__msp).shape[0])):
     _48=_16[(_9 + self.__msp[_47])]
     _49=_16[((_9 + self.__msp[_47]) + 1)]
     for _50 in range(_48,_49):
      _41[(_34 + _45)] = _17[(_10 + _50)]
      _42[(_36 + _45)] = (_18[(_12 + _50)] * self.__mcof[_47])
      if (_6 > 0):
       for _51 in range(_16[(_14 + _50)],_16[((_14 + _50) + 1)]):
        _40[(_37 + _43)] = _16[(_13 + _51)]
        _42[(_39 + _43)] = _18[(_15 + _51)]
        _43 += 1
       _40[(_37 + _43)] = 2
       _42[(_39 + _43)] = self.__mcof[_47]
       _43 += 1
       _40[(_37 + _43)] = 5
       _43 += 1
       _40[((_38 + _45) + 1)] = _43
      _45 += 1
     _40[((_32 + _47) + 1)] = _45
     _41[(_35 + _47)] = self.__msp[_47]
   else:
    _52=int((self.__msp).shape[0])
    _53=0
    _54=_4
    _55=0
    while ((_53 < _52) and (_55 < _54)):
     if (self.__msp[_53] < _17[(_11 + _55)]):
      _53 += 1
     elif (self.__msp[_53] > _17[(_11 + _55)]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:1521:22-43
      _55 += 1
     else:
      _56=_16[(_9 + _55)]
      _57=_16[((_9 + _55) + 1)]
      for _58 in range(_56,_57):
       _41[(_34 + _45)] = _17[(_10 + _58)]
       _42[(_36 + _45)] = (_18[(_10 + _58)] * self.__mcof[_53])
       if (_6 > 0):
        for _59 in range(_16[(_14 + _58)],_16[((_14 + _58) + 1)]):
         _40[(_37 + _43)] = _16[(_13 + _59)]
         _42[(_39 + _43)] = _18[(_15 + _59)]
         _43 += 1
        _40[(_37 + _43)] = 2
        _42[(_39 + _43)] = self.__mcof[_53]
        _43 += 1
        _40[(_37 + _43)] = 5
        _43 += 1
        _40[((_38 + _45) + 1)] = _43
       _45 += 1
      _40[((_32 + _44) + 1)] = _45
      _41[(_35 + _44)] = self.__msp[_53]
      _44 += 1
      _53 += 1
      _55 += 1
   if (not _30):
    _0.popi64(_21)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulElement(M,")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprMulElement
mosek_fusion_ExprMulElement=__mk_mosek_fusion_ExprMulElement()
del __mk_mosek_fusion_ExprMulElement
def __mk_mosek_fusion_ExprMulScalarConst():
 class ExprMulScalarConst(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulScalarConst__expr','_ExprMulScalarConst__c']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulScalarConst.ctor(double,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulScalarConst._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulScalarConst._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulScalarConst.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulScalarConst._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulScalarConst._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulScalarConst.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulScalarConst: '+self._toString_()
  @staticmethod
  def _ctor_DLmosek_4fusion_4Expression_2(c,expr):
    o = ExprMulScalarConst.__new__(ExprMulScalarConst)
    o._ctor_init_DLmosek_4fusion_4Expression_2(c,expr)
    return o
  @staticmethod
  def __match_ctor_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    c,expr, = args
    return (__arg_match_D__(c) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    c,expr, = args
    return (__arg_alt_match_D__(c) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_DLmosek_4fusion_4Expression_2(self,c,expr):
    self._ctor_init_DLmosek_4fusion_4Expression_2(numpy.float64(c),expr)
  def _ctor_init_DLmosek_4fusion_4Expression_2(self,c,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__c) = c
   (self.__expr) = expr
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.hassp)
   _10=(_1.ncodeatom)
   _11=(_1.ptr_base)
   _12=(_1.code_base)
   _13=(_1.cconst_base)
   _14=(_1.codeptr_base)
   _15=(_1.shape_base)
   _16=(_1.sp_base)
   _17=(_1.nidxs_base)
   _18=(_1.cof_base)
   _19=(_1.cconst_base)
   _20=(0 if ((_10==0) ) else (_10 + (2 * _8)))
   _0.alloc_expr(_6,_7,_8,_9,_20)
   _21=(_0.i64)
   _22=(_0.f64)
   _23=(_0.i32)
   _24=(_0.ptr_base)
   _25=(_0.nidxs_base)
   _26=(_0.cof_base)
   _27=(_0.code_base)
   _28=(_0.codeptr_base)
   _29=(_0.cconst_base)
   _30=(_0.hassp)
   _31=(_0.shape_base)
   _32=(_0.sp_base)
   for _33 in range(0,(_7 + 1)):
    _23[(_24 + _33)] = _3[(_11 + _33)]
   for _34 in range(0,_8):
    _21[(_25 + _34)] = _4[(_17 + _34)]
    _22[(_26 + _34)] = (_5[(_18 + _34)] * self.__c)
   if _9:
    for _35 in range(0,_7):
     _21[(_32 + _35)] = _4[(_16 + _35)]
   for _36 in range(0,_6):
    _23[(_31 + _36)] = _3[(_15 + _36)]
   if (_10 > 0):
    _23[_28] = 0
    _37=0
    for _38 in range(0,_8):
     for _39 in range(_3[(_14 + _38)],_3[((_14 + _38) + 1)]):
      _23[(_27 + _37)] = _3[(_12 + _39)]
      _22[(_29 + _37)] = _5[(_13 + _39)]
      _37 += 1
     _23[(_27 + _37)] = 2
     _22[(_29 + _37)] = self.__c
     _37 += 1
     _23[(_27 + _37)] = 5
     _37 += 1
     _23[((_28 + _38) + 1)] = _37
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("ExprMulScalarConst()")
 return ExprMulScalarConst
mosek_fusion_ExprMulScalarConst=__mk_mosek_fusion_ExprMulScalarConst()
del __mk_mosek_fusion_ExprMulScalarConst
def __mk_mosek_fusion_ExprScalarMul():
 class ExprScalarMul(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprScalarMul__expr','_ExprScalarMul__mval','_ExprScalarMul__msubj','_ExprScalarMul__msubi','_ExprScalarMul__mdim1','_ExprScalarMul__mdim0']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprScalarMul.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprScalarMul._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprScalarMul._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprScalarMul.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprScalarMul._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprScalarMul._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprScalarMul.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprScalarMul: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated):
    o = ExprScalarMul.__new__(ExprScalarMul)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr,numpy.int32(validated))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([mdim0,mdim1], dtype=numpy.dtype(numpy.int32)))
   (self.__mdim0) = mdim0
   (self.__mdim1) = mdim1
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mval) = mval
   (self.__expr) = expr
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr):
    o = ExprScalarMul.__new__(ExprScalarMul)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
   mosek_fusion_ExprScalarMul._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,mosek.fusion.ExprScalarMul.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   (self.__expr).eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nelem)
   _5=(_1.nnz)
   _6=(_1.hassp)
   _7=(_1.ncodeatom)
   _8=(_1.ptr_base)
   _9=(_1.sp_base)
   _10=(_1.nidxs_base)
   _11=(_1.cof_base)
   _12=(_1.code_base)
   _13=(_1.codeptr_base)
   _14=(_1.cconst_base)
   _15=(_1.i32)
   _16=(_1.i64)
   _17=(_1.f64)
   _18=int((self.__mval).shape[0])
   if (_3!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid expression shape")
   if (_4==0):
    _0.alloc_expr(2,0,0,True)
    (_0.i32)[(_0.shape_base)] = self.__mdim0
    (_0.i32)[((_0.shape_base) + 1)] = self.__mdim1
   else:
    _19=(_18 * (_7 + ((2 * _5) if ((_7 > 0) ) else 0)))
    _0.alloc_expr(2,_18,(_18 * _5),True,_19)
    _20=(_0.ptr_base)
    _21=(_0.nidxs_base)
    _22=(_0.sp_base)
    _23=(_0.cof_base)
    _24=(_0.shape_base)
    _25=(_0.code_base)
    _26=(_0.codeptr_base)
    _27=(_0.cconst_base)
    _28=(_0.i32)
    _29=(_0.i64)
    _30=(_0.f64)
    _28[_24] = self.__mdim0
    _28[(_24 + 1)] = self.__mdim1
    _31=0
    _32=0
    _28[_20] = 0
    if (_7 > 0):
     _28[_26] = 0
     for _33 in range(0,_18):
      for _34 in range(0,_5):
       _29[(_21 + _32)] = _16[(_10 + _34)]
       _30[(_23 + _32)] = (_17[(_11 + _34)] * self.__mval[_33])
       for _35 in range(_15[(_13 + _34)],_15[((_13 + _34) + 1)]):
        _28[(_25 + _31)] = _15[(_12 + _35)]
        _30[(_27 + _31)] = _17[(_14 + _35)]
        _31 += 1
       _28[(_25 + _31)] = 2
       _30[(_27 + _31)] = self.__mval[_33]
       _31 += 1
       _28[(_25 + _31)] = 5
       _31 += 1
       _28[((_26 + _32) + 1)] = _31
       _32 += 1
      _29[(_22 + _33)] = ((self.__msubi[_33] * self.__mdim1) + self.__msubj[_33])
      _28[((_20 + _33) + 1)] = _32
    else:
     for _36 in range(0,_18):
      for _37 in range(0,_5):
       _29[(_21 + _32)] = _16[(_10 + _37)]
       _30[(_23 + _32)] = (_17[(_11 + _37)] * self.__mval[_36])
       _32 += 1
      _29[(_22 + _36)] = ((self.__msubi[_36] * self.__mdim1) + self.__msubj[_36])
      _28[((_20 + _36) + 1)] = _32
  @staticmethod
  def __validate_alt_II_3I_3I_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprScalarMul.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5):
   _6=_5.getND()
   if (_6!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if ((_0 < 0) or (_1 < 0)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if ((int((_2).shape[0])!=int((_3).shape[0])) or (int((_2).shape[0])!=int((_4).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _7=int((_2).shape[0])
   _8=False
   _9=False
   for _10 in range(0,_7):
    if ((_2[_10] < 0) or ((_2[_10] >= _0) or ((_3[_10] < 0) or (_3[_10] >= _1)))):
     _8 = True
   for _11 in range(0,(_7 - 1)):
    if ((_2[_11] > _2[(_11 + 1)]) or ((_2[_11]==_2[(_11 + 1)]) and (_3[_11] >= _3[(_11 + 1)]))):
     _9 = True
   if _8:
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   if _9:
    raise mosek_fusion_LengthError._ctor_S("Unsorted matrix data")
   return numpy.int32(1)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprScalarMul(M,")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprScalarMul
mosek_fusion_ExprScalarMul=__mk_mosek_fusion_ExprScalarMul()
del __mk_mosek_fusion_ExprScalarMul
def __mk_mosek_fusion_ExprMulRight():
 class ExprMulRight(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulRight__expr','_ExprMulRight__mval','_ExprMulRight__msubj','_ExprMulRight__msubi','_ExprMulRight__mdim1','_ExprMulRight__mdim0']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulRight.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulRight._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulRight._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulRight.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulRight._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulRight._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulRight.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulRight: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated):
    o = ExprMulRight.__new__(ExprMulRight)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr,numpy.int32(validated))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprMulRight.__computeshape_I_3I(mdim1,expr.getShape()))
   (self.__mdim0) = mdim0
   (self.__mdim1) = mdim1
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mval) = mval
   (self.__expr) = expr
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr):
    o = ExprMulRight.__new__(ExprMulRight)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
   mosek_fusion_ExprMulRight._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,mosek.fusion.ExprMulRight.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   (self.__expr).eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.i32)
   _4=(_1.i64)
   _5=(_1.f64)
   _6=(_1.nd)
   if (_6!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operator shape for multiplication")
   _7=(_1.nelem)
   _8=(_1.nnz)
   _9=(_1.ncodeatom)
   _10=(_1.hassp)
   _11=(_1.ptr_base)
   _12=(_1.shape_base)
   _13=(_1.sp_base)
   _14=(_1.nidxs_base)
   _15=(_1.cof_base)
   _16=(_1.codeptr_base)
   _17=(_1.code_base)
   _18=(_1.cconst_base)
   _19=_3[_12]
   _20=_3[(_12 + 1)]
   _21=int((self.__mval).shape[0])
   _22=(_21 < (numpy.int64(self.__mdim0) * numpy.int64(self.__mdim1)))
   if _22:
    _23=_2.alloci32((self.__mdim1 + 1))
    _24=_2.alloci32(_21)
    _25=_2.alloci32((_19 + 1))
    _26=(_2.i32)
    for _27 in range(0,(self.__mdim1 + 1)):
     _26[(_23 + _27)] = 0
    for _28 in range(0,_21):
     _26[((_23 + self.__msubj[_28]) + 1)] += 1
    for _29 in range(0,self.__mdim1):
     _26[((_23 + _29) + 1)] += _26[(_23 + _29)]
    for _30 in range(0,_21):
     _26[(_24 + _26[(_23 + self.__msubj[_30])])] = _30
     _26[(_23 + self.__msubj[_30])] += 1
    for _31 in range(0,self.__mdim1):
     _26[((_23 + self.__mdim1) - _31)] = _26[(((_23 + self.__mdim1) - _31) - 1)]
    _26[_23] = 0
    for _32 in range(0,(_19 + 1)):
     _26[(_25 + _32)] = 0
    if _10:
     _33=0
     _34=0
     _35=0
     _36=0
     while (_36 < _7):
      _37=(_4[(_13 + _36)] // _20)
      _38=_36
      _36 += 1
      while ((_36 < _7) and ((_4[(_13 + _36)] // _20)==_37)):
       _36 += 1
      _39=_36
      _40=0
      while (_40 < _21):
       _41=self.__msubj[_26[(_24 + _40)]]
       _42=_40
       _40 += 1
       while ((_40 < _21) and (self.__msubj[_26[(_24 + _40)]]==_41)):
        _40 += 1
       _43=_40
       _44=False
       _45=_42
       _46=_38
       while ((_46 < _39) and (_45 < _43)):
        _47=_26[(_24 + _45)]
        if ((_4[(_13 + _46)] % _20) < self.__msubi[_47]):
         _46 += 1
        elif ((_4[(_13 + _46)] % _20) > self.__msubi[_47]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:690:28-61
         _45 += 1
        else:
         if ((self.__mval[_47] > 0) or (0 < self.__mval[_47])):
          _35 += (_3[((_11 + _46) + 1)] - _3[(_11 + _46)])
          if (_9 > 0):
           _33 += ((_3[(_16 + _3[((_11 + _46) + 1)])] - _3[(_16 + _3[(_11 + _46)])]) + (2 * (_3[((_11 + _46) + 1)] - _3[(_11 + _46)])))
          _44 = True
         _46 += 1
         _45 += 1
       if _44:
        _34 += 1
     _48=(_34 < (_19 * self.__mdim1))
     _0.alloc_expr(2,_34,numpy.int32(_35),_48,_33)
     _49=(_0.ptr_base)
     _50=(_0.nidxs_base)
     _51=((_0.sp_base) if (_48 ) else _0.alloci64(_34))
     _52=(_0.cof_base)
     _53=(_0.shape_base)
     _54=(_0.codeptr_base)
     _55=(_0.code_base)
     _56=(_0.cconst_base)
     _57=(_0.i32)
     _58=(_0.i64)
     _59=(_0.f64)
     _57[_53] = _19
     _57[(_53 + 1)] = self.__mdim1
     _57[_49] = 0
     if (_33 > 0):
      _57[_54] = 0
     _60=0
     _61=0
     _62=0
     _63=0
     while (_60 < _7):
      _64=(_4[(_13 + _60)] // _20)
      _65=_60
      _60 += 1
      while ((_60 < _7) and ((_4[(_13 + _60)] // _20)==_64)):
       _60 += 1
      _66=_60
      _67=0
      while (_67 < _21):
       _68=self.__msubj[_26[(_24 + _67)]]
       _69=_67
       _67 += 1
       while ((_67 < _21) and (self.__msubj[_26[(_24 + _67)]]==_68)):
        _67 += 1
       _70=_67
       _71=_69
       _72=_65
       _73=False
       while ((_72 < _66) and (_71 < _70)):
        _74=_26[(_24 + _71)]
        if ((_4[(_13 + _72)] % _20) < self.__msubi[_74]):
         _72 += 1
        elif ((_4[(_13 + _72)] % _20) > self.__msubi[_74]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:757:28-61
         _71 += 1
        else:
         if ((self.__mval[_74] > 0) or (0 < self.__mval[_74])):
          for _75 in range(_3[(_11 + _72)],_3[((_11 + _72) + 1)]):
           _58[(_50 + _63)] = _4[(_14 + _75)]
           _59[(_52 + _63)] = (_5[(_15 + _75)] * self.__mval[_74])
           if (_9 > 0):
            for _76 in range(_3[(_16 + _75)],_3[((_16 + _75) + 1)]):
             _57[(_55 + _61)] = _3[(_17 + _76)]
             _59[(_56 + _61)] = _5[(_18 + _76)]
             _61 += 1
            _57[(_55 + _61)] = 2
            _59[(_56 + _61)] = self.__mval[_71]
            _61 += 1
            _57[(_55 + _61)] = 5
            _61 += 1
            _57[((_54 + _63) + 1)] = _61
           _63 += 1
          _73 = True
         _72 += 1
         _71 += 1
       if _73:
        _57[((_49 + _62) + 1)] = _63
        _58[(_51 + _62)] = ((_64 * self.__mdim1) + _68)
        _62 += 1
     if (_63!=_35):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid nnz")
     if (_62!=_34):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid nnz")
     if (_57[(_49 + _34)]!=_35):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid nnz")
     if (not _48):
      _0.popi64(_34)
    else:
     _77=0
     _78=(_19 * self.__mdim1)
     _79=0
     for _80 in range(0,_19):
      for _81 in range(0,self.__mdim1):
       for _82 in range(_26[(_23 + _81)],_26[((_23 + _81) + 1)]):
        _83=_26[(_24 + _82)]
        _84=((_80 * _20) + self.__msubi[_83])
        _79 += (_3[((_11 + _84) + 1)] - _3[(_11 + _84)])
        if (_9 > 0):
         _77 += ((_3[(_16 + _3[((_11 + _84) + 1)])] - _3[(_16 + _3[(_11 + _84)])]) + (2 * (_3[((_11 + _84) + 1)] - _3[(_11 + _84)])))
     _85=(_78 < (_19 * self.__mdim1))
     if (not (_79 <= 2147483647)):
      raise mosek_fusion_LengthError._ctor_S("Maximum number of nonzeros exceeded in multiplication")
     _0.alloc_expr(2,_78,numpy.int32(_79),_85,_77)
     _86=(_0.shape_base)
     _87=(_0.ptr_base)
     _88=(_0.nidxs_base)
     _89=((_0.sp_base) if (_85 ) else _0.alloci64(_78))
     _90=(_0.cof_base)
     _91=(_0.code_base)
     _92=(_0.codeptr_base)
     _93=(_0.cconst_base)
     _94=(_0.i32)
     _95=(_0.i64)
     _96=(_0.f64)
     _94[_86] = _19
     _94[(_86 + 1)] = self.__mdim1
     _97=0
     _98=0
     _99=0
     _94[_87] = 0
     if (_77 > 0):
      _94[_92] = 0
     for _100 in range(0,_19):
      for _101 in range(0,self.__mdim1):
       _102=(_100 * _20)
       for _103 in range(_26[(_23 + _101)],_26[((_23 + _101) + 1)]):
        _104=_26[(_24 + _103)]
        _105=(_102 + self.__msubi[_104])
        if (_77==0):
         for _106 in range(_3[(_11 + _105)],_3[((_11 + _105) + 1)]):
          _95[(_88 + _99)] = _4[(_14 + _106)]
          _96[(_90 + _99)] = (_5[(_15 + _106)] * self.__mval[_104])
          _99 += 1
        else:
         for _107 in range(_3[(_11 + _105)],_3[((_11 + _105) + 1)]):
          _95[(_88 + _99)] = _4[(_14 + _107)]
          _96[(_90 + _99)] = (_5[(_15 + _107)] * self.__mval[_104])
          for _108 in range(_3[(_16 + _107)],_3[((_16 + _107) + 1)]):
           _94[(_91 + _97)] = _3[(_17 + _108)]
           _96[(_93 + _97)] = _5[(_18 + _108)]
           _97 += 1
          _94[(_91 + _97)] = 2
          _96[(_93 + _97)] = self.__mval[_104]
          _97 += 1
          _94[(_91 + _97)] = 5
          _97 += 1
          _94[((_92 + _99) + 1)] = _97
          _99 += 1
       _94[((_87 + _98) + 1)] = _99
       _95[(_89 + _98)] = ((_100 * self.__mdim1) + _101)
       _98 += 1
     if (not _85):
      _0.popi64(_78)
    _2.clear()
   else:
    _109=_2.alloci32((_19 + 1))
    _110=(_2.i32)
    for _111 in range(0,(_19 + 1)):
     _110[(_109 + _111)] = 0
    _112=(numpy.int64(_8) * self.__mdim1)
    _113=(_19 * self.__mdim1)
    _114=((_9 * self.__mdim1) + (0 if ((_9==0) ) else (numpy.int32(_112) * 2)))
    _115=False
    _116=2
    if (not (_112 <= 2147483647)):
     raise mosek_fusion_LengthError._ctor_S("Maximum number of nonzeros exceeded in multiplication")
    _0.alloc_expr(_116,_113,numpy.int32(_112),_115,_114)
    _117=(_0.i32)
    _118=(_0.i64)
    _119=(_0.f64)
    _120=(_0.shape_base)
    _121=(_0.ptr_base)
    _122=(_0.nidxs_base)
    _123=(_0.sp_base)
    _124=(_0.cof_base)
    _125=(_0.code_base)
    _126=(_0.codeptr_base)
    _127=(_0.cconst_base)
    _117[_120] = _19
    _117[(_120 + 1)] = self.__mdim1
    _128=0
    _129=0
    _130=0
    _117[_121] = 0
    if (_114 > 0):
     _117[_126] = 0
    if _10:
     for _131 in range(0,_7):
      _110[((_109 + (_4[(_13 + _131)] // _20)) + 1)] += 1
     for _132 in range(0,_19):
      _110[((_109 + _132) + 1)] += _110[(_109 + _132)]
     for _133 in range(0,_19):
      for _134 in range(0,self.__mdim1):
       for _135 in range(_110[(_109 + _133)],_110[((_109 + _133) + 1)]):
        _136=(_134 + ((_4[(_13 + _135)] % _20) * self.__mdim1))
        for _137 in range(_3[(_11 + _135)],_3[((_11 + _135) + 1)]):
         _118[(_122 + _129)] = _4[(_14 + _137)]
         _119[(_124 + _129)] = (_5[(_15 + _137)] * self.__mval[_136])
         if (_9 > 0):
          for _138 in range(_3[(_16 + _137)],_3[((_16 + _137) + 1)]):
           _117[(_125 + _128)] = _3[(_17 + _138)]
           _119[(_127 + _128)] = _5[(_18 + _138)]
           _128 += 1
          _117[(_125 + _128)] = 2
          _119[(_127 + _128)] = self.__mval[_136]
          _128 += 1
          _117[(_125 + _128)] = 5
          _128 += 1
          _117[((_126 + _129) + 1)] = _128
         _129 += 1
       _117[((_121 + _130) + 1)] = _129
       _130 += 1
     if (_129!=_112):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num nonzeros")
     if (_130!=_113):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num elements")
     if (_128!=_114):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid num code atoms")
    else:
     for _139 in range(0,_19):
      for _140 in range(0,self.__mdim1):
       for _141 in range(0,_20):
        _142=((_139 * _20) + _141)
        _143=(_140 + (_141 * self.__mdim1))
        for _144 in range(_3[(_11 + _142)],_3[((_11 + _142) + 1)]):
         _118[(_122 + _129)] = _4[(_14 + _144)]
         _119[(_124 + _129)] = (_5[(_15 + _144)] * self.__mval[_143])
         if (_9 > 0):
          for _145 in range(_3[(_16 + _144)],_3[((_16 + _144) + 1)]):
           _117[(_125 + _128)] = _3[(_17 + _145)]
           _119[(_127 + _128)] = _5[(_18 + _145)]
           _128 += 1
          _117[(_125 + _128)] = 2
          _119[(_127 + _128)] = self.__mval[_143]
          _128 += 1
          _117[(_125 + _128)] = 5
          _128 += 1
          _117[((_126 + _129) + 1)] = _128
         _129 += 1
       _117[((_121 + _130) + 1)] = _129
       _130 += 1
    _2.clear()
  @staticmethod
  def __computeshape_alt_I_3I(_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprMulRight.__computeshape_I_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __computeshape_I_3I(_0,_1):
   if (int((_1).shape[0])==1):
    return (numpy.array([1,_0], dtype=numpy.dtype(numpy.int32)))
   else:
    return (numpy.array([_1[0],_0], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def __validate_alt_II_3I_3I_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprMulRight.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5):
   _6=_5.getShape()
   if (int((_6).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   _7=_6[0]
   _8=_6[1]
   if ((_0 < 0) or ((_1 < 0) or ((_7 < 0) or (_8 < 0)))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if (_0!=_8):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   if ((int((_2).shape[0])!=int((_3).shape[0])) or (int((_2).shape[0])!=int((_4).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _9=int((_2).shape[0])
   _10=False
   for _11 in range(0,_9):
    _10 = (_10 or ((_2[_11] < 0) or ((_2[_11] >= _0) or ((_3[_11] < 0) or (_3[_11] >= _1)))))
   if _10:
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _12=False
   for _13 in range(0,(_9 - 1)):
    _12 = (_12 or ((_2[_13] > _2[(_13 + 1)]) or ((_2[_13]==_2[(_13 + 1)]) and (_3[_13] >= _3[(_13 + 1)]))))
   if _12:
    raise mosek_fusion_LengthError._ctor_S("Unsorted matrix data")
   return numpy.int32(1)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulRight(M,")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprMulRight
mosek_fusion_ExprMulRight=__mk_mosek_fusion_ExprMulRight()
del __mk_mosek_fusion_ExprMulRight
def __mk_mosek_fusion_ExprMulLeft():
 class ExprMulLeft(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulLeft__expr','_ExprMulLeft__mval','_ExprMulLeft__msubj','_ExprMulLeft__msubi','_ExprMulLeft__mdim1','_ExprMulLeft__mdim0']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulLeft.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulLeft._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulLeft._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulLeft.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulLeft._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulLeft._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulLeft.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulLeft: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated):
    o = ExprMulLeft.__new__(ExprMulLeft)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(mdim0,mdim1,msubi,msubj,mval,expr,validated)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(validated))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(*args):
    if len(args) != 7: return False
    mdim0,mdim1,msubi,msubj,mval,expr,validated, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(validated))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr,numpy.int32(validated))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,validated):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprMulLeft.__computeshape_II_3I(mdim0,mdim1,expr.getShape()))
   (self.__mdim0) = mdim0
   (self.__mdim1) = mdim1
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mval) = mval
   (self.__expr) = expr
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr):
    o = ExprMulLeft.__new__(ExprMulLeft)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_match_I__(mdim0) and __arg_match_I__(mdim1) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mval) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 6: return False
    mdim0,mdim1,msubi,msubj,mval,expr, = args
    return (__arg_alt_match_I__(mdim0) and __arg_alt_match_I__(mdim1) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mval) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(numpy.int32(mdim0),numpy.int32(mdim1),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mval,dtype=numpy.dtype(numpy.float64)),expr)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2(self,mdim0,mdim1,msubi,msubj,mval,expr):
   mosek_fusion_ExprMulLeft._ctor_init_II_3I_3I_3DLmosek_4fusion_4Expression_2I(self,mdim0,mdim1,msubi,msubj,mval,expr,mosek.fusion.ExprMulLeft.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(mdim0,mdim1,msubi,msubj,mval,expr))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   (self.__expr).eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nnz)
   _5=(_1.nelem)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.codeptr_base)
   _14=(_1.code_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   if (_3!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operator shape for multiplication")
   _19=9999
   _20=9999
   _21=9999
   _22=_16[_8]
   _23=_16[(_8 + 1)]
   _24=int((self.__msubi).shape[0])
   _25=(_24 < (numpy.int64(self.__mdim0) * numpy.int64(self.__mdim1)))
   _26=False
   _27=0
   _28=0
   _29=0
   if _7:
    _19 = _2.alloci32(_5)
    _20 = _2.alloci32(_5)
    _21 = _2.alloci32((_23 + 1))
    _30=(_2.i32)
    for _31 in range(0,(_23 + 1)):
     _30[(_21 + _31)] = 0
    for _32 in range(0,_5):
     _30[((_21 + (_17[(_10 + _32)] % _23)) + 1)] += 1
    for _33 in range(0,_23):
     _30[((_21 + _33) + 1)] += _30[(_21 + _33)]
    for _34 in range(0,_5):
     _35=(_17[(_10 + _34)] % _23)
     _30[(_19 + _30[(_21 + _35)])] = _34
     _30[(_21 + _35)] += 1
    for _36 in range(0,_23):
     _30[((_21 + _23) - _36)] = _30[(((_21 + _23) - _36) - 1)]
    _30[_21] = 0
    if _25:
     _37=0
     while (_37 < _24):
      _38=self.__msubi[_37]
      _39=(_37 + 1)
      while ((_39 < _24) and (self.__msubi[_39]==self.__msubi[_37])):
       _39 += 1
      for _40 in range(0,_23):
       _41=False
       _42=_39
       _43=_37
       _44=_30[((_21 + _40) + 1)]
       _45=_30[(_21 + _40)]
       while ((_43 < _42) and (_45 < _44)):
        _46=_30[(_19 + _45)]
        if (self.__msubj[_43] < (_17[(_10 + _46)] // _23)):
         _43 += 1
        elif (self.__msubj[_43] > (_17[(_10 + _46)] // _23)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:222:26-55
         _45 += 1
        else:
         _41 = True
         _29 += (_16[((_9 + _46) + 1)] - _16[(_9 + _46)])
         if (_6 > 0):
          _27 += ((_16[(_13 + _16[((_9 + _46) + 1)])] - _16[(_13 + _16[(_9 + _46)])]) + (2 * (_16[((_9 + _46) + 1)] - _16[(_9 + _46)])))
         _45 += 1
         _43 += 1
       if _41:
        _28 += 1
      _37 = _39
    else:
     _28 = (self.__mdim0 * _23)
     _29 = (numpy.int64(_4) * self.__mdim0)
     if (_6 > 0):
      _27 = numpy.int32(((_6 * self.__mdim0) + (2 * _29)))
   else:
    if _25:
     _47=0
     while (_47 < _24):
      _48=(_47 + 1)
      while ((_48 < _24) and (self.__msubi[_47]==self.__msubi[_48])):
       _48 += 1
      _49=self.__msubi[_47]
      for _50 in range(0,_23):
       _51=False
       for _52 in range(_47,_48):
        _53=((self.__msubj[_52] * _23) + _50)
        _29 += (_16[((_9 + _53) + 1)] - _16[(_9 + _53)])
        if (_6 > 0):
         _27 += ((_16[(_13 + _16[((_9 + _53) + 1)])] - _16[(_13 + _16[(_9 + _53)])]) + (2 * (_16[((_9 + _53) + 1)] - _16[(_9 + _53)])))
        _51 = True
       if _51:
        _28 += 1
      _47 = _48
    else:
     _29 = (numpy.int64(_4) * self.__mdim0)
     if (_6 > 0):
      _27 = numpy.int32(((_6 * self.__mdim0) + (2 * _29)))
     _28 = (self.__mdim0 * _23)
   if (not (_29 <= 2147483647)):
    raise mosek_fusion_LengthError._ctor_S("Maximum number of nonzeros exceeded in multiplication")
   _26 = (_28 < (self.__mdim0 * _23))
   _54=2
   _0.alloc_expr(_54,_28,numpy.int32(_29),_26,_27)
   _55=(_0.ptr_base)
   _56=(_0.nidxs_base)
   _57=((_0.sp_base) if (_26 ) else _0.alloci64(_28))
   _58=(_0.cof_base)
   _59=(_0.shape_base)
   _60=(_0.code_base)
   _61=(_0.codeptr_base)
   _62=(_0.cconst_base)
   _63=(_0.i64)
   _64=(_0.f64)
   _65=(_0.i32)
   _66=(_2.i32)
   _65[_59] = self.__mdim0
   _65[(_59 + 1)] = _23
   _65[_55] = 0
   if (_27 > 0):
    _65[_61] = 0
   if _7:
    if _25:
     _67=0
     _68=0
     _69=0
     _70=0
     while (_70 < _24):
      _71=self.__msubi[_70]
      _72=(_70 + 1)
      while ((_72 < _24) and (self.__msubi[_72]==self.__msubi[_70])):
       _72 += 1
      for _73 in range(0,_23):
       _74=False
       _75=_72
       _76=_70
       _77=_66[((_21 + _73) + 1)]
       _78=_66[(_21 + _73)]
       while ((_76 < _75) and (_78 < _77)):
        _79=_66[(_19 + _78)]
        if (self.__msubj[_76] < (_17[(_10 + _79)] // _23)):
         _76 += 1
        elif (self.__msubj[_76] > (_17[(_10 + _79)] // _23)): # bld/docker-win/final/default/src/fusion/ExprMul.monty:332:26-55
         _78 += 1
        else:
         _74 = True
         for _80 in range(_16[(_9 + _79)],_16[((_9 + _79) + 1)]):
          _63[(_56 + _69)] = _17[(_11 + _80)]
          _64[(_58 + _69)] = (_18[(_12 + _80)] * self.__mval[_76])
          if (_27 > 0):
           for _81 in range(_16[(_13 + _80)],_16[((_13 + _80) + 1)]):
            _65[(_60 + _67)] = _16[(_14 + _81)]
            _64[(_62 + _67)] = _64[(_15 + _81)]
            _67 += 1
           _65[(_60 + _67)] = 2
           _64[(_62 + _67)] = self.__mval[_76]
           _67 += 1
           _65[(_60 + _67)] = 5
           _65[((_61 + _69) + 1)] = _67
          _69 += 1
         _76 += 1
         _78 += 1
       if _74:
        _65[((_55 + _68) + 1)] = _69
        _63[(_57 + _68)] = ((_71 * _23) + _73)
        _68 += 1
      _70 = _72
    else:
     _82=0
     _83=0
     _84=0
     for _85 in range(0,self.__mdim0):
      for _86 in range(0,_23):
       for _87 in range(_66[(_21 + _86)],_66[((_21 + _86) + 1)]):
        _88=_66[(_19 + _87)]
        _89=((_85 * self.__mdim1) + (_17[(_10 + _88)] // _23))
        for _90 in range(_16[(_9 + _88)],_16[((_9 + _88) + 1)]):
         _63[(_56 + _84)] = _17[(_11 + _90)]
         _64[(_58 + _84)] = (_18[(_12 + _90)] * self.__mval[_89])
         if (_27 > 0):
          for _91 in range(_16[(_13 + _90)],_16[((_13 + _90) + 1)]):
           _65[(_60 + _82)] = _16[(_14 + _91)]
           _64[(_62 + _82)] = _18[(_15 + _91)]
           _82 += 1
          _65[(_60 + _82)] = 2
          _64[(_62 + _82)] = self.__mval[_89]
          _82 += 1
          _65[(_60 + _82)] = 5
          _82 += 1
          _65[((_61 + _84) + 1)] = _82
         _84 += 1
       _65[((_55 + _83) + 1)] = _84
       _83 += 1
     if (_83!=_28):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of elements")
     if (_84!=_29):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of non-zeros")
     if (_82!=_27):
      raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of code atoms")
   else:
    _92=0
    _93=0
    _94=0
    _95=0
    while (_93 < _24):
     _96=(_93 + 1)
     while ((_96 < _24) and (self.__msubi[_93]==self.__msubi[_96])):
      _96 += 1
     _97=self.__msubi[_93]
     for _98 in range(0,_23):
      _99=False
      for _100 in range(_93,_96):
       _101=((self.__msubj[_100] * _23) + _98)
       for _102 in range(_16[(_9 + _101)],_16[((_9 + _101) + 1)]):
        _63[(_56 + _95)] = _17[(_11 + _102)]
        _64[(_58 + _95)] = (_18[(_12 + _102)] * self.__mval[_100])
        if (_27 > 0):
         for _103 in range(_16[(_13 + _102)],_16[((_13 + _102) + 1)]):
          _65[(_60 + _92)] = _16[(_14 + _103)]
          _64[(_62 + _92)] = _18[(_15 + _103)]
          _92 += 1
         _65[(_60 + _92)] = 2
         _64[(_62 + _92)] = self.__mval[_100]
         _92 += 1
         _65[(_60 + _92)] = 5
         _92 += 1
         _65[((_61 + _95) + 1)] = _92
        _95 += 1
       _99 = True
      if _99:
       _63[(_57 + _94)] = ((_97 * _23) + _98)
       _65[((_55 + _94) + 1)] = _95
       _94 += 1
     _93 = _96
    if (_94!=_28):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of elements")
    if (_95!=_29):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of non-zeros")
    if (_92!=_27):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Incorrect number of code atoms")
   if (not _26):
    _0.popi64(_28)
   _2.clear()
  @staticmethod
  def __computeshape_alt_II_3I(_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprMulLeft.__computeshape_II_3I(_0,_1,_2)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __computeshape_II_3I(_0,_1,_2):
   if (int((_2).shape[0])!=2):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions")
   elif (_1!=_2[0]): # bld/docker-win/final/default/src/fusion/ExprMul.monty:99:16-27
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions")
   return (numpy.array([_0,_2[1]], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def __validate_alt_II_3I_3I_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=_t__5
   _1_res = mosek_fusion_ExprMulLeft.__validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validate_II_3I_3I_3DLmosek_4fusion_4Expression_2(_0,_1,_2,_3,_4,_5):
   if (_5.getND()!=2):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   _6=_5.getDim(0)
   _7=_5.getDim(0)
   if ((_0 < 0) or (_1 < 0)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   if (_1!=_6):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   if ((int((_2).shape[0])!=int((_3).shape[0])) or (int((_2).shape[0])!=int((_4).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   _8=int((_2).shape[0])
   _9=False
   _10=False
   for _11 in range(0,_8):
    _9 = (_9 or ((_2[_11] < 0) or ((_2[_11] >= _0) or ((_3[_11] < 0) or (_3[_11] >= _1)))))
   if (not _9):
    for _12 in range(0,(_8 - 1)):
     _10 = (_10 or ((_2[_12] > _2[(_12 + 1)]) or ((_2[_12]==_2[(_12 + 1)]) and (_3[_12] >= _3[(_12 + 1)]))))
   if _9:
    raise mosek_fusion_LengthError._ctor_S("Invalid matrix data")
   if _10:
    raise mosek_fusion_LengthError._ctor_S("Unsorted matrix data")
   return numpy.int32(1)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulLeft(M(")._a_I(self.__mdim0)._a_S(",")._a_I(self.__mdim1)._a_S("),")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprMulLeft
mosek_fusion_ExprMulLeft=__mk_mosek_fusion_ExprMulLeft()
del __mk_mosek_fusion_ExprMulLeft
def __mk_mosek_fusion_ExprMulVar():
 class ExprMulVar(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulVar__left','_ExprMulVar__x','_ExprMulVar__mcof','_ExprMulVar__msubj','_ExprMulVar__msubi','_ExprMulVar__mdimj','_ExprMulVar__mdimi']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args): 
      self._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args)
    elif self.__match_alt_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
      self._ctor_alt_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulVar.ctor(bool,int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Variable)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVar._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulVar._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVar.toString()')
  def eval_left(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVar._match_eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulVar._match_alt_eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_1left_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval_left('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVar.eval_left(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVar._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulVar._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVar.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def eval_right(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVar._match_eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulVar._match_alt_eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_1right_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval_right('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVar.eval_right(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulVar: '+self._toString_()
  @staticmethod
  def _ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(left,mdimi,mdimj,msubi,msubj,mcof,x):
    o = ExprMulVar.__new__(ExprMulVar)
    o._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(left,mdimi,mdimj,msubi,msubj,mcof,x)
    return o
  @staticmethod
  def __match_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 7: return False
    left,mdimi,mdimj,msubi,msubj,mcof,x, = args
    return (__arg_match_Z__(left) and __arg_match_I__(mdimi) and __arg_match_I__(mdimj) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mcof) and __arg_match_Lmosek_4fusion_4Variable_2__(x))
  @staticmethod
  def __match_alt_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 7: return False
    left,mdimi,mdimj,msubi,msubj,mcof,x, = args
    return (__arg_alt_match_Z__(left) and __arg_alt_match_I__(mdimi) and __arg_alt_match_I__(mdimj) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mcof) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(x))
  def _ctor_alt_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(self,left,mdimi,mdimj,msubi,msubj,mcof,x):
    self._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(left,numpy.int32(mdimi),numpy.int32(mdimj),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mcof,dtype=numpy.dtype(numpy.float64)),x)
  def _ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(self,left,mdimi,mdimj,msubi,msubj,mcof,x):
   mosek_fusion_ExprMulVar._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(self,left,mdimi,mdimj,msubi,msubj,mcof,x,1)
   _0=x.getShape()
   _1=int((_0).shape[0])
   if (_1!=2):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   elif (left and (_0[0]!=mdimj)): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:267:16-43
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   elif ((not left) and (_0[1]!=mdimi)): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:269:16-47
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   if ((int((msubi).shape[0])!=int((msubj).shape[0])) or (int((msubi).shape[0])!=int((mcof).shape[0]))):
    raise mosek_fusion_LengthError._ctor_S("Mismatching matrix data lengths")
   self.__validate_II_3I_3I_3D(mdimi,mdimj,msubi,msubj,mcof)
  @staticmethod
  def _ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
    o = ExprMulVar.__new__(ExprMulVar)
    o._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_)
    return o
  @staticmethod
  def __match_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(*args):
    if len(args) != 8: return False
    left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_, = args
    return (__arg_match_Z__(left) and __arg_match_I__(mdimi) and __arg_match_I__(mdimj) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mcof) and __arg_match_Lmosek_4fusion_4Variable_2__(x) and __arg_match_I__(unchecked_))
  @staticmethod
  def __match_alt_ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(*args):
    if len(args) != 8: return False
    left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_, = args
    return (__arg_alt_match_Z__(left) and __arg_alt_match_I__(mdimi) and __arg_alt_match_I__(mdimj) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mcof) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(x) and __arg_alt_match_I__(unchecked_))
  def _ctor_alt_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(self,left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
    self._ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(left,numpy.int32(mdimi),numpy.int32(mdimj),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mcof,dtype=numpy.dtype(numpy.float64)),x,numpy.int32(unchecked_))
  def _ctor_init_ZII_3I_3I_3DLmosek_4fusion_4Variable_2I(self,left,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprMulVar.__resshape_II_3IZ(mdimi,mdimj,x.getShape(),left))
   (self.__left) = left
   (self.__x) = x
   (self.__mdimi) = mdimi
   (self.__mdimj) = mdimj
   (self.__msubi) = mosek.fusion.Utils.Tools._arraycopy__3I(msubi)
   (self.__msubj) = mosek.fusion.Utils.Tools._arraycopy__3I(msubj)
   (self.__mcof) = mosek.fusion.Utils.Tools._arraycopy__3D(mcof)
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   if self.__left:
    self.eval_left(_0,_1,_2)
   else:
    self.eval_right(_0,_1,_2)
  @staticmethod
  def _match_eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_1right_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_1right_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=(_1.pi32)
   _4=(_1.pi64)
   _5=self.__x.numInst()
   _6=_1.alloci64(_5)
   _7=_1.alloci64(_5)
   _8=_1.alloci32(_5)
   _9=_1.alloci32(_5)
   _10=self.__x.getShape()
   _11=int((_10).shape[0])
   _12=(_10[0] * _10[1])
   _13=_10[1]
   _14=_10[0]
   _15=_1.alloci32((_14 + 1))
   _16=int(((self.__msubi)).shape[0])
   _17=(self.__msubi)
   _18=(self.__msubj)
   _19=(self.__mcof)
   _20=(self.__mdimi)
   _21=(self.__mdimj)
   _22=((_16 // _20)==_21)
   _23=_1.alloci32(_16)
   _24=_1.alloci32((self.__mdimj + 1))
   _25=(_1.i32)
   _26=(_1.i64)
   _27=0
   _28=0
   self.__x.inst(_7,_26,_6,_26)
   if _22:
    _29=0
    if (_5 > 0):
     _29 = 1
     if (_14 > 1):
      if (_13==1):
       for _30 in range(1,_5):
        if (_26[(_7 + _30)] > _26[((_7 + _30) - 1)]):
         _29 += 1
      else:
       for _31 in range(1,_5):
        if ((_26[(_7 + _31)] // _13) > (_26[((_7 + _31) - 1)] // _13)):
         _29 += 1
    _28 = (_29 * _21)
    _27 = (_5 * _21)
    _32=(_29 < _14)
    _0.alloc_expr(2,_28,_27,_32)
    _33=(_0.ptr_base)
    _34=(_0.shape_base)
    _35=(_0.nidxs_base)
    _36=((_0.sp_base) if (_32 ) else _0.alloci64(_28))
    _37=(_0.cof_base)
    _38=(_0.i32)
    _39=(_0.i64)
    _40=(_0.f64)
    _38[_34] = _14
    _38[(_34 + 1)] = _21
    _41=0
    _42=0
    _43=0
    _38[_33] = 0
    while (_41 < _5):
     _44=_41
     _41 += 1
     while ((_41 < _5) and ((_26[(_7 + _41)] // _13)==(_26[(_7 + _44)] // _13))):
      _41 += 1
     _45=(_26[(_7 + _44)] // _13)
     for _46 in range(0,_21):
      for _47 in range(_44,_41):
       _48=(_26[(_7 + _47)] % _13)
       _39[(_35 + _43)] = _26[(_6 + _47)]
       _40[(_37 + _43)] = _19[((_48 * _21) + _46)]
       _43 += 1
      _38[((_33 + _42) + 1)] = _43
      _39[(_36 + _42)] = ((_45 * _21) + _46)
      _42 += 1
    if (not _32):
     _0.popi64(_28)
   else:
    if (_21==1):
     for _49 in range(0,_16):
      _25[(_23 + _49)] = _49
     _25[_24] = 0
     _25[(_24 + 1)] = _16
    else:
     _25[_24] = 0
     for _50 in range(0,(_21 + 1)):
      _25[(_24 + _50)] = 0
     for _51 in range(0,_16):
      _25[((_24 + _18[_51]) + 1)] += 1
     for _52 in range(0,self.__mdimj):
      _25[((_24 + _52) + 1)] += _25[(_24 + _52)]
     for _53 in range(0,_16):
      _25[(_23 + _25[(_24 + _18[_53])])] = _53
      _25[(_24 + _18[_53])] += 1
     for _54 in range(0,_21):
      _25[((_24 + _21) - _54)] = _25[(((_24 + _21) - _54) - 1)]
     _25[_24] = 0
    if ((_5 // _14)==_13):
     _55=0
     _56=0
     while (_56 < _16):
      _56 += 1
      while ((_56 < _16) and (_18[_25[((_23 + _56) - 1)]]==_18[_25[(_23 + _56)]])):
       _56 += 1
      _55 += 1
     _28 = (_55 * _14)
     _27 = (_16 * _14)
     _57=(_55 < _21)
     _0.alloc_expr(2,_28,_27,_57)
     _58=(_0.ptr_base)
     _59=(_0.shape_base)
     _60=(_0.nidxs_base)
     _61=((_0.sp_base) if (_57 ) else _0.alloci64(_28))
     _62=(_0.cof_base)
     (_0.i32)[_59] = _14
     (_0.i32)[(_59 + 1)] = _21
     _63=(_0.i32)
     _64=(_0.i64)
     _65=(_0.f64)
     _63[_58] = 0
     _66=0
     _67=0
     for _68 in range(0,_14):
      _69=0
      while (_69 < _16):
       _70=_69
       _69 += 1
       while ((_69 < _16) and (_18[_25[(_23 + _70)]]==_18[_25[(_23 + _69)]])):
        _69 += 1
       _71=_18[_25[(_23 + _70)]]
       for _72 in range(_70,_69):
        _73=_17[_25[(_23 + _72)]]
        _64[(_60 + _67)] = _26[((_6 + (_68 * _13)) + _73)]
        _65[(_62 + _67)] = _19[_25[(_23 + _72)]]
        _67 += 1
       _64[(_61 + _66)] = ((_68 * _21) + _71)
       _63[((_58 + _66) + 1)] = _67
       _66 += 1
     if (not _57):
      _0.popi64(_28)
    else:
     for _74 in range(0,(_14 + 1)):
      _25[(_15 + _74)] = 0
     if (_11==1):
      for _75 in range(0,_5):
       _25[(_8 + _75)] = 0
      for _76 in range(0,_5):
       _25[(_9 + _76)] = numpy.int32(_26[(_7 + _76)])
      _25[_15] = 0
      _25[(_15 + 1)] = _5
     else:
      for _77 in range(0,_5):
       _25[(_8 + _77)] = numpy.int32((_26[(_7 + _77)] // _10[1]))
      for _78 in range(0,_5):
       _25[(_9 + _78)] = numpy.int32((_26[(_7 + _78)] % _10[1]))
      _25[_15] = 0
      for _79 in range(0,_5):
       _25[((_15 + _25[(_8 + _79)]) + 1)] += 1
      for _80 in range(0,_14):
       _25[((_15 + _80) + 1)] += _25[(_15 + _80)]
     for _81 in range(0,_14):
      for _82 in range(0,self.__mdimj):
       _83=0
       _84=_25[((_15 + _81) + 1)]
       _85=_25[((_24 + _82) + 1)]
       _86=_25[(_15 + _81)]
       _87=_25[(_24 + _82)]
       while ((_87 < _85) and (_86 < _84)):
        if (_17[_25[(_23 + _87)]] < _25[(_9 + _86)]):
         _87 += 1
        elif (_17[_25[(_23 + _87)]] > _25[(_9 + _86)]): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:672:26-63
         _86 += 1
        else:
         _83 += 1
         _87 += 1
         _86 += 1
       if (_83 > 0):
        _27 += _83
        _28 += 1
     _88=(_28 < (_13 * self.__mdimi))
     _0.alloc_expr(2,_28,_27,_88)
     _89=(_0.ptr_base)
     _90=(_0.shape_base)
     _91=(_0.nidxs_base)
     _92=(_0.sp_base)
     _93=(_0.cof_base)
     (_0.i32)[_90] = _14
     (_0.i32)[(_90 + 1)] = self.__mdimj
     _94=(_0.i32)
     _95=(_0.i64)
     _96=(_0.f64)
     _97=0
     _98=0
     _99=0
     _94[_89] = 0
     for _100 in range(0,_14):
      for _101 in range(0,self.__mdimj):
       _102=0
       _103=_25[((_15 + _100) + 1)]
       _104=_25[((_24 + _101) + 1)]
       _105=_25[(_15 + _100)]
       _106=_25[(_24 + _101)]
       while ((_106 < _104) and (_105 < _103)):
        if (_17[_25[(_23 + _106)]] < _25[(_9 + _105)]):
         _106 += 1
        elif (_17[_25[(_23 + _106)]] > _25[(_9 + _105)]): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:713:28-65
         _105 += 1
        else:
         _95[(_91 + _99)] = _26[(_6 + _105)]
         _96[(_93 + _99)] = _19[_25[(_23 + _106)]]
         _102 += 1
         _99 += 1
         _106 += 1
         _105 += 1
       if (_102 > 0):
        _94[((_89 + _98) + 1)] = _99
        _95[(_92 + _98)] = _97
        _98 += 1
       _97 += 1
     if (not _88):
      _0.popi64(_28)
   (_1.pi32) = _3
   (_1.pi64) = _4
  @staticmethod
  def _match_eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_1left_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_1left_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=self.__x.numInst()
   _4=self.__x.getShape()
   _5=int((_4).shape[0])
   _6=_2.alloci64(_3)
   _7=_2.alloci64(_3)
   _8=_2.alloci32(_3)
   _9=_2.alloci32(_3)
   _10=_2.alloci32(_3)
   _11=_2.alloci32((self.__mdimi + 1))
   _12=self.__x.getShape()
   _13=int((_12).shape[0])
   _14=(1 if ((_13==1) ) else _12[1])
   _15=_12[0]
   _16=_2.alloci32((_14 + 1))
   _17=(self.__msubi)
   _18=(self.__msubj)
   _19=(self.__mcof)
   _20=(self.__mdimi)
   _21=(self.__mdimj)
   _22=0
   _23=0
   _24=(_2.i32)
   _25=(_2.i64)
   _26=int((_19).shape[0])
   self.__x.inst(_7,_25,_6,_25)
   if (self.__x.numInst() < self.__x.getSize()):
    for _27 in range(0,(_20 + 1)):
     _24[(_11 + _27)] = 0
    for _28 in range(0,int((_17).shape[0])):
     _24[((_11 + _17[_28]) + 1)] += 1
    for _29 in range(0,_20):
     _24[((_11 + _29) + 1)] += _24[(_11 + _29)]
    if (_13==1):
     for _30 in range(0,_3):
      _24[(_8 + _30)] = numpy.int32(_25[(_7 + _30)])
     for _31 in range(0,_3):
      _24[(_9 + _31)] = 0
    else:
     for _32 in range(0,_3):
      _24[(_8 + _32)] = numpy.int32((_25[(_7 + _32)] // _14))
     for _33 in range(0,_3):
      _24[(_9 + _33)] = numpy.int32((_25[(_7 + _33)] % _14))
    if (_13 > 1):
     for _34 in range(0,(_14 + 1)):
      _24[(_16 + _34)] = 0
     for _35 in range(0,_3):
      _24[((_16 + _24[(_9 + _35)]) + 1)] += 1
     for _36 in range(0,_14):
      _24[((_16 + _36) + 1)] += _24[(_16 + _36)]
     for _37 in range(0,_3):
      _24[(_10 + _24[(_16 + _24[(_9 + _37)])])] = _37
      _24[(_16 + _24[(_9 + _37)])] += 1
     for _38 in range(0,_14):
      _24[((_16 + _14) - _38)] = _24[(((_16 + _14) - _38) - 1)]
     _24[_16] = 0
    else:
     _24[_16] = 0
     _24[(_16 + 1)] = _3
     for _39 in range(0,_3):
      _24[(_10 + _39)] = _39
    for _40 in range(0,_20):
     for _41 in range(0,_14):
      _42=0
      _43=_24[((_16 + _41) + 1)]
      _44=_24[((_11 + _40) + 1)]
      _45=_24[(_16 + _41)]
      _46=_24[(_11 + _40)]
      while ((_46 < _44) and (_45 < _43)):
       if (_18[_46] < _24[(_8 + _24[(_10 + _45)])]):
        _46 += 1
       elif (_18[_46] > _24[(_8 + _24[(_10 + _45)])]): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:356:24-61
        _45 += 1
       else:
        _42 += 1
        _46 += 1
        _45 += 1
      if (_42 > 0):
       _22 += _42
       _23 += 1
   else:
    _22 = (_26 * _14)
    _47=0
    while (_47 < _26):
     _48=(_47 + 1)
     while ((_48 < _26) and (_17[_47]==_17[_48])):
      _48 += 1
     _23 += 1
     _47 = _48
    _23 *= _14
   _49=(True if ((_23 < (_14 * _20)) ) else False)
   _50=_13
   _0.alloc_expr(_50,_23,_22,_49)
   _51=(_0.ptr_base)
   _52=(_0.shape_base)
   _53=(_0.nidxs_base)
   _54=((_0.sp_base) if (_49 ) else _0.alloci64(_23))
   _55=(_0.cof_base)
   _56=(_0.i32)
   _57=(_0.i64)
   _58=(_0.f64)
   _56[_52] = _20
   if (_13 > 1):
    _56[(_52 + 1)] = _14
   if (self.__x.numInst() < self.__x.getSize()):
    _59=0
    _60=0
    _61=0
    _56[_51] = 0
    for _62 in range(0,_20):
     for _63 in range(0,_14):
      _64=0
      _65=_24[((_16 + _63) + 1)]
      _66=_24[((_11 + _62) + 1)]
      _67=_24[(_16 + _63)]
      _68=_24[(_11 + _62)]
      while ((_68 < _66) and (_67 < _65)):
       if (_18[_68] < _24[(_8 + _24[(_10 + _67)])]):
        _68 += 1
       elif (_18[_68] > _24[(_8 + _24[(_10 + _67)])]): # bld/docker-win/final/default/src/fusion/ExprMulVar.monty:416:24-61
        _67 += 1
       else:
        _57[(_53 + _61)] = _25[(_6 + _24[(_10 + _67)])]
        _58[(_55 + _61)] = _19[_68]
        _64 += 1
        _61 += 1
        _68 += 1
        _67 += 1
      if (_64 > 0):
       _56[((_51 + _60) + 1)] = _61
       _57[(_54 + _60)] = _59
       _60 += 1
      _59 += 1
   else:
    _69=0
    _70=0
    _56[_51] = 0
    _71=0
    while (_71 < _26):
     _72=(_71 + 1)
     while ((_72 < _26) and (_17[_72]==_17[_71])):
      _72 += 1
     for _73 in range(0,_14):
      for _74 in range(_71,_72):
       _57[(_53 + _69)] = _25[((_6 + (_18[_74] * _14)) + _73)]
       _58[(_55 + _69)] = _19[_74]
       _69 += 1
      _56[((_51 + _70) + 1)] = _69
      _57[(_54 + _70)] = ((_17[_71] * _14) + _73)
      _70 += 1
     _71 = _72
   if (not _49):
    _0.popi64(_23)
   _2.clear()
  def __validate_alt_II_3I_3I_3D(self,_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _1_res = self.__validate_II_3I_3I_3D(_0,_1,_2,_3,_4)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __validate_II_3I_3I_3D(self,_0,_1,_2,_3,_4):
   _5=True
   for _6 in range(0,int((_2).shape[0])):
    if ((_2[_6] < 0) or ((_2[_6] >= _0) or ((_3[_6] < 0) or (_3[_6] >= _1)))):
     _5 = False
   for _7 in range(1,int((_2).shape[0])):
    if ((_2[(_7 - 1)] > _2[_7]) or ((_2[(_7 - 1)]==_2[_7]) and (_3[(_7 - 1)] >= _3[_7]))):
     _5 = False
   if (not _5):
    raise mosek_fusion_IndexError._ctor_S("Invalid matrix data")
  @staticmethod
  def __resshape_alt_II_3IZ(_t__0,_t__1,_t__2,_t__3):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=_t__3
   _1_res = mosek_fusion_ExprMulVar.__resshape_II_3IZ(_0,_1,_2,_3)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __resshape_II_3IZ(_0,_1,_2,_3):
   if _3:
    return (numpy.array([_0,_2[1]], dtype=numpy.dtype(numpy.int32)))
   else:
    return (numpy.array([_2[0],_1], dtype=numpy.dtype(numpy.int32)))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   if self.__left:
    return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulVar(M,")._a_S(self.__x.toString())._a_S(")")._toString_())
   else:
    return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulVar(")._a_S(self.__x.toString())._a_S(",M)")._toString_())
 return ExprMulVar
mosek_fusion_ExprMulVar=__mk_mosek_fusion_ExprMulVar()
del __mk_mosek_fusion_ExprMulVar
def __mk_mosek_fusion_ExprMulScalarVar():
 class ExprMulScalarVar(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulScalarVar__x','_ExprMulScalarVar__mcof','_ExprMulScalarVar__msubj','_ExprMulScalarVar__msubi','_ExprMulScalarVar__mdimj','_ExprMulScalarVar__mdimi']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args): 
      self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args)
    elif self.__match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
      self._ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulScalarVar.ctor(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1),mosek.fusion.Variable)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulScalarVar._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulScalarVar._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulScalarVar.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulScalarVar._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulScalarVar._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulScalarVar.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulScalarVar: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(mdimi,mdimj,msubi,msubj,mcof,x):
    o = ExprMulScalarVar.__new__(ExprMulScalarVar)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(mdimi,mdimj,msubi,msubj,mcof,x)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 6: return False
    mdimi,mdimj,msubi,msubj,mcof,x, = args
    return (__arg_match_I__(mdimi) and __arg_match_I__(mdimj) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mcof) and __arg_match_Lmosek_4fusion_4Variable_2__(x))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 6: return False
    mdimi,mdimj,msubi,msubj,mcof,x, = args
    return (__arg_alt_match_I__(mdimi) and __arg_alt_match_I__(mdimj) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mcof) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(x))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(self,mdimi,mdimj,msubi,msubj,mcof,x):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(numpy.int32(mdimi),numpy.int32(mdimj),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mcof,dtype=numpy.dtype(numpy.float64)),x)
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2(self,mdimi,mdimj,msubi,msubj,mcof,x):
   mosek_fusion_ExprMulScalarVar._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2I(self,mdimi,mdimj,mosek.fusion.Utils.Tools._arraycopy__3I(msubi),mosek.fusion.Utils.Tools._arraycopy__3I(msubj),mosek.fusion.Utils.Tools._arraycopy__3D(mcof),x,1)
   if (x.getND()!=0):
    raise mosek_fusion_DimensionError._ctor_S("Invalid Variable size")
   if ((mdimi < 0) or ((mdimj < 0) or ((int((msubi).shape[0])!=int((msubj).shape[0])) or (int((msubi).shape[0])!=int((mcof).shape[0]))))):
    raise mosek_fusion_LengthError._ctor_S("Invalid Matrix data")
   _0=False
   for _1 in range(0,int((msubi).shape[0])):
    if ((msubi[_1] < 0) or ((msubi[_1] >= mdimi) or ((msubj[_1] < 0) or (msubj[_1] >= mdimj)))):
     _0 = True
   if _0:
    raise mosek_fusion_IndexError._ctor_S("Invalid Matrix data")
   _2=False
   for _3 in range(1,int((msubi).shape[0])):
    if ((msubi[_3] < msubi[(_3 - 1)]) or ((msubi[_3]==msubi[(_3 - 1)]) and (msubj[_3] <= msubj[(_3 - 1)]))):
     _2 = True
   if _2:
    raise mosek_fusion_IndexError._ctor_S("Matrix data not correctly sorted")
  @staticmethod
  def _ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2I(mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
    o = ExprMulScalarVar.__new__(ExprMulScalarVar)
    o._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2I(mdimi,mdimj,msubi,msubj,mcof,x,unchecked_)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2I(*args):
    if len(args) != 7: return False
    mdimi,mdimj,msubi,msubj,mcof,x,unchecked_, = args
    return (__arg_match_I__(mdimi) and __arg_match_I__(mdimj) and __arg_match__3I__(msubi) and __arg_match__3I__(msubj) and __arg_match__3D__(mcof) and __arg_match_Lmosek_4fusion_4Variable_2__(x) and __arg_match_I__(unchecked_))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2I(*args):
    if len(args) != 7: return False
    mdimi,mdimj,msubi,msubj,mcof,x,unchecked_, = args
    return (__arg_alt_match_I__(mdimi) and __arg_alt_match_I__(mdimj) and __arg_alt_match__3I__(msubi) and __arg_alt_match__3I__(msubj) and __arg_alt_match__3D__(mcof) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(x) and __arg_alt_match_I__(unchecked_))
  def _ctor_alt_init_II_3I_3I_3DLmosek_4fusion_4Variable_2I(self,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
    self._ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2I(numpy.int32(mdimi),numpy.int32(mdimj),numpy.array(msubi,dtype=numpy.dtype(numpy.int32)),numpy.array(msubj,dtype=numpy.dtype(numpy.int32)),numpy.array(mcof,dtype=numpy.dtype(numpy.float64)),x,numpy.int32(unchecked_))
  def _ctor_init_II_3I_3I_3DLmosek_4fusion_4Variable_2I(self,mdimi,mdimj,msubi,msubj,mcof,x,unchecked_):
   mosek_fusion_BaseExpression._ctor_init__3I(self,numpy.array([mdimi,mdimj], dtype=numpy.dtype(numpy.int32)))
   (self.__mdimi) = mdimi
   (self.__mdimj) = mdimj
   (self.__msubi) = msubi
   (self.__msubj) = msubj
   (self.__mcof) = mcof
   (self.__x) = x
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   if (self.__x.numInst()==0):
    _0.alloc_expr(2,0,0,False)
    (_0.i32)[(_0.shape_base)] = self.__mdimi
    (_0.i32)[((_0.shape_base) + 1)] = self.__mdimj
   else:
    _3=numpy.zeros((1,), dtype=numpy.dtype(numpy.int64))
    self.__x.inst(0,_3)
    _4=_3[0]
    _5=int((self.__msubi).shape[0])
    _6=_5
    _7=(_5 < (self.__mdimi * self.__mdimj))
    _0.alloc_expr(2,_5,_6,_7)
    _8=(_0.ptr_base)
    (_0.i32)[(_0.shape_base)] = self.__mdimi
    (_0.i32)[((_0.shape_base) + 1)] = self.__mdimj
    _9=(_0.nidxs_base)
    _10=(_0.sp_base)
    _11=(_0.cof_base)
    _12=(_0.i32)
    _13=(_0.i64)
    _14=(_0.f64)
    for _15 in range(0,_6):
     _14[(_11 + _15)] = self.__mcof[_15]
    for _16 in range(0,_6):
     _13[(_9 + _16)] = _4
    if _7:
     for _17 in range(0,_5):
      _13[(_10 + _17)] = ((self.__msubi[_17] * self.__mdimj) + self.__msubj[_17])
    for _18 in range(0,(_5 + 1)):
     _12[(_8 + _18)] = _18
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprMulScalarVar(M(")._a_I(self.__mdimi)._a_S(",")._a_I(self.__mdimj)._a_S("), ")._a_S(self.__x.toString())._a_S(")")._toString_())
 return ExprMulScalarVar
mosek_fusion_ExprMulScalarVar=__mk_mosek_fusion_ExprMulScalarVar()
del __mk_mosek_fusion_ExprMulScalarVar
def __mk_mosek_fusion_ExprMulVarScalarConst():
 class ExprMulVarScalarConst(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprMulVarScalarConst__c','_ExprMulVarScalarConst__x']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Variable_2D(*args): 
      self._ctor_init_Lmosek_4fusion_4Variable_2D(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Variable_2D(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Variable_2D(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprMulVarScalarConst.ctor(mosek.fusion.Variable,double)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVarScalarConst._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprMulVarScalarConst._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVarScalarConst.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprMulVarScalarConst._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprMulVarScalarConst._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprMulVarScalarConst.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprMulVarScalarConst: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Variable_2D(x,c):
    o = ExprMulVarScalarConst.__new__(ExprMulVarScalarConst)
    o._ctor_init_Lmosek_4fusion_4Variable_2D(x,c)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Variable_2D(*args):
    if len(args) != 2: return False
    x,c, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(x) and __arg_match_D__(c))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Variable_2D(*args):
    if len(args) != 2: return False
    x,c, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(x) and __arg_alt_match_D__(c))
  def _ctor_alt_init_Lmosek_4fusion_4Variable_2D(self,x,c):
    self._ctor_init_Lmosek_4fusion_4Variable_2D(x,numpy.float64(c))
  def _ctor_init_Lmosek_4fusion_4Variable_2D(self,x,c):
   mosek_fusion_BaseExpression._ctor_init__3I(self,x.getShape())
   (self.__x) = x
   (self.__c) = c
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=self.__x.numInst()
   _4=_3
   _5=self.__x.getShape()
   _6=int((_5).shape[0])
   _7=(mosek.fusion.Set._size__3I(_5) > _4)
   _0.alloc_expr(_6,_4,_3,_7)
   _8=(_0.ptr_base)
   _9=(_0.nidxs_base)
   _10=(_0.sp_base)
   _11=(_0.cof_base)
   _12=(_0.shape_base)
   if _7:
    self.__x.inst(_10,(_0.i64),_9,(_0.i64))
   else:
    self.__x.inst(_9,(_0.i64))
   _13=(_0.i32)
   _14=(_0.i64)
   _15=(_0.f64)
   for _16 in range(0,_6):
    _13[(_12 + _16)] = _5[_16]
   for _17 in range(0,(_4 + 1)):
    _13[(_8 + _17)] = _17
   for _18 in range(0,_3):
    _15[(_11 + _18)] = 1.0
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("ExprMulVarScalarConst()")
 return ExprMulVarScalarConst
mosek_fusion_ExprMulVarScalarConst=__mk_mosek_fusion_ExprMulVarScalarConst()
del __mk_mosek_fusion_ExprMulVarScalarConst
def __mk_mosek_fusion_ExprAdd():
 class ExprAdd(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprAdd__m2','_ExprAdd__m1','_ExprAdd__e2','_ExprAdd__e1']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprAdd.ctor(mosek.fusion.Expression,mosek.fusion.Expression,double,double)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprAdd._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprAdd._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprAdd.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprAdd._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprAdd._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprAdd.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprAdd: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(e1,e2,m1,m2):
    o = ExprAdd.__new__(ExprAdd)
    o._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(e1,e2,m1,m2)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 4: return False
    e1,e2,m1,m2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e1) and __arg_match_Lmosek_4fusion_4Expression_2__(e2) and __arg_match_D__(m1) and __arg_match_D__(m2))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 4: return False
    e1,e2,m1,m2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e2) and __arg_alt_match_D__(m1) and __arg_alt_match_D__(m2))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(self,e1,e2,m1,m2):
    self._ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(e1,e2,numpy.float64(m1),numpy.float64(m2))
  def _ctor_init_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(self,e1,e2,m1,m2):
   mosek_fusion_BaseExpression._ctor_init__3I(self,e1.getShape())
   (self.__e1) = e1
   (self.__e2) = e2
   (self.__m1) = m1
   (self.__m2) = m2
   if (e1.getND()!=e2.getND()):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
   for _0 in range(0,e1.getND()):
    if (e1.getDim(_0)!=e2.getDim(_0)):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__e1.eval(_1,_0,_2)
   self.__e2.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.ncodeatom)
   _8=(_1.hassp)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _1.pop_expr()
   _16=(_1.nd)
   _17=(_1.shape_base)
   _18=(_1.nelem)
   _19=(_1.nnz)
   _20=(_1.ncodeatom)
   _21=(_1.hassp)
   _22=(_1.ptr_base)
   _23=(_1.sp_base)
   _24=(_1.nidxs_base)
   _25=(_1.cof_base)
   _26=(_1.code_base)
   _27=(_1.codeptr_base)
   _28=(_1.cconst_base)
   _29=(_1.i32)
   _30=(_1.i64)
   _31=(_1.f64)
   _32=((_20 > 0) or (_7 > 0))
   if (_16!=_3):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
   for _33 in range(0,_16):
    if (_29[(_17 + _33)]!=_29[(_4 + _33)]):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
   if ((not _21) and (not _8)):
    _34=_18
    _35=(_19 + _6)
    _36=0
    if _32:
     _36 += ((_20 + (_19 * 2)) if ((_20 > 0) ) else _19)
     _36 += ((_7 + (_6 * 2)) if ((_7 > 0) ) else _6)
    _37=_16
    _0.alloc_expr(_37,_34,_35,False,_36)
    _38=(_0.shape_base)
    _39=(_0.ptr_base)
    _40=(_0.sp_base)
    _41=(_0.nidxs_base)
    _42=(_0.cof_base)
    _43=(_0.code_base)
    _44=(_0.codeptr_base)
    _45=(_0.cconst_base)
    _46=(_0.i32)
    _47=(_0.i64)
    _48=(_0.f64)
    for _49 in range(0,_37):
     _46[(_38 + _49)] = _29[(_17 + _49)]
    _50=0
    _51=0
    if (_36 > 0):
     _46[_44] = 0
    _46[_39] = 0
    for _52 in range(0,_34):
     for _53 in range(_29[(_22 + _52)],_29[((_22 + _52) + 1)]):
      _47[(_41 + _51)] = _30[(_24 + _53)]
      _48[(_42 + _51)] = (_31[(_25 + _53)] * self.__m1)
      if (_20 > 0):
       for _54 in range(_29[(_27 + _53)],_29[((_27 + _53) + 1)]):
        _46[(_43 + _50)] = _29[(_26 + _54)]
        _48[(_45 + _50)] = _31[(_28 + _54)]
        _50 += 1
       _46[(_43 + _50)] = 2
       _48[(_45 + _50)] = self.__m1
       _50 += 1
       _46[(_43 + _50)] = 5
       _50 += 1
       _46[((_44 + _51) + 1)] = _50
      else:
       if (_36 > 0):
        _46[(_43 + _50)] = 2
        _48[(_45 + _50)] = 0.0
        _50 += 1
        _46[((_44 + _51) + 1)] = _50
      _51 += 1
     for _55 in range(_29[(_9 + _52)],_29[((_9 + _52) + 1)]):
      _47[(_41 + _51)] = _30[(_11 + _55)]
      _48[(_42 + _51)] = (_31[(_12 + _55)] * self.__m2)
      if (_7 > 0):
       for _56 in range(_29[(_14 + _55)],_29[((_14 + _55) + 1)]):
        _46[(_43 + _50)] = _29[(_13 + _56)]
        _48[(_45 + _50)] = _31[(_15 + _56)]
        _50 += 1
       _46[(_43 + _50)] = 2
       _48[(_45 + _50)] = self.__m2
       _50 += 1
       _46[(_43 + _50)] = 5
       _50 += 1
       _46[((_44 + _51) + 1)] = _50
      else:
       if (_36 > 0):
        _46[(_43 + _50)] = 2
        _48[(_45 + _50)] = 0.0
        _50 += 1
        _46[((_44 + _51) + 1)] = _50
      _51 += 1
     _46[((_39 + _52) + 1)] = _51
   elif ((not _21) or (not _8)): # bld/docker-win/final/default/src/fusion/ExprAdd.monty:792:16-793:26
    if (not _8):
     _57=_5
     _58=_6
     _59=_9
     _60=_10
     _61=_11
     _62=_7
     _63=_14
     _64=_13
     _65=_15
     _66=_12
     _5 = _18
     _6 = _19
     _9 = _22
     _10 = _23
     _11 = _24
     _7 = _20
     _14 = _27
     _13 = _26
     _15 = _28
     _12 = _25
     _18 = _57
     _19 = _58
     _22 = _59
     _23 = _60
     _24 = _61
     _20 = _62
     _27 = _63
     _26 = _64
     _28 = _65
     _25 = _66
    _67=((self.__m1) if ((not _21) ) else (self.__m2))
    _68=((self.__m2) if ((not _21) ) else (self.__m1))
    _69=_18
    _70=(_19 + _6)
    _71=_16
    _72=(_20 + _7)
    if _32:
     _72 += ((2 * _19) if ((_20 > 0) ) else _19)
     _72 += ((2 * _6) if ((_7 > 0) ) else _6)
    _0.alloc_expr(_71,_69,_70,False,_72)
    _73=(_0.shape_base)
    _74=(_0.ptr_base)
    _75=(_0.sp_base)
    _76=(_0.nidxs_base)
    _77=(_0.cof_base)
    _78=(_0.code_base)
    _79=(_0.codeptr_base)
    _80=(_0.cconst_base)
    _81=(_0.i32)
    _82=(_0.i64)
    _83=(_0.f64)
    _84=0
    _85=0
    _86=0
    for _87 in range(0,_71):
     _81[(_73 + _87)] = _29[(_17 + _87)]
    _81[_74] = 0
    if (_72 > 0):
     _81[_79] = 0
    _88=0
    _89=0
    while ((_89 < _18) or (_88 < _5)):
     if ((_89 < _18) and ((_88 >= _5) or (_89 < _30[(_10 + _88)]))):
      for _90 in range(_29[(_22 + _89)],_29[((_22 + _89) + 1)]):
       _82[(_76 + _86)] = _30[(_24 + _90)]
       _83[(_77 + _86)] = (_31[(_25 + _90)] * _67)
       if (_20 > 0):
        for _91 in range(_29[(_27 + _90)],_29[((_27 + _90) + 1)]):
         _81[(_78 + _84)] = _29[(_26 + _91)]
         _83[(_80 + _84)] = _31[(_28 + _91)]
         _84 += 1
        _81[(_78 + _84)] = 2
        _83[(_80 + _84)] = _67
        _84 += 1
        _81[(_78 + _84)] = 5
        _84 += 1
        _81[((_79 + _86) + 1)] = _84
       else:
        if (_72 > 0):
         _81[(_78 + _84)] = 2
         _83[(_80 + _84)] = 0.0
         _84 += 1
         _81[((_79 + _86) + 1)] = _84
       _86 += 1
      _81[((_74 + _85) + 1)] = _86
      _89 += 1
     elif ((_88 < _5) and ((_89 >= _18) or (_89 > _30[(_10 + _88)]))): # bld/docker-win/final/default/src/fusion/ExprAdd.monty:907:22-76
      for _92 in range(_29[(_9 + _88)],_29[((_9 + _88) + 1)]):
       _82[(_76 + _86)] = _30[(_11 + _92)]
       _83[(_77 + _86)] = (_31[(_12 + _92)] * _68)
       if (_7 > 0):
        for _93 in range(_29[(_14 + _92)],_29[((_14 + _92) + 1)]):
         _81[(_78 + _84)] = _29[(_13 + _93)]
         _83[(_80 + _84)] = _31[(_15 + _93)]
         _84 += 1
        _81[(_78 + _84)] = 2
        _83[(_80 + _84)] = _68
        _84 += 1
        _81[(_78 + _84)] = 5
        _84 += 1
        _81[((_79 + _86) + 1)] = _84
       else:
        if (_72 > 0):
         _81[(_78 + _84)] = 2
         _83[(_80 + _84)] = 0.0
         _84 += 1
         _81[((_79 + _86) + 1)] = _84
       _86 += 1
      _81[((_74 + _85) + 1)] = _86
      _88 += 1
     else:
      for _94 in range(_29[(_22 + _89)],_29[((_22 + _89) + 1)]):
       _82[(_76 + _86)] = _30[(_24 + _94)]
       _83[(_77 + _86)] = (_31[(_25 + _94)] * _67)
       if (_20 > 0):
        for _95 in range(_29[(_27 + _94)],_29[((_27 + _94) + 1)]):
         _81[(_78 + _84)] = _29[(_26 + _95)]
         _83[(_80 + _84)] = _31[(_28 + _95)]
         _84 += 1
        _81[(_78 + _84)] = 2
        _83[(_80 + _84)] = _67
        _84 += 1
        _81[(_78 + _84)] = 5
        _84 += 1
        _81[((_79 + _86) + 1)] = _84
       else:
        if (_72 > 0):
         _81[(_78 + _84)] = 2
         _83[(_80 + _84)] = 0.0
         _84 += 1
         _81[((_79 + _86) + 1)] = _84
       _86 += 1
      for _96 in range(_29[(_9 + _88)],_29[((_9 + _88) + 1)]):
       _82[(_76 + _86)] = _30[(_11 + _96)]
       _83[(_77 + _86)] = (_31[(_12 + _96)] * _68)
       if (_7 > 0):
        for _97 in range(_29[(_14 + _96)],_29[((_14 + _96) + 1)]):
         _81[(_78 + _84)] = _29[(_13 + _97)]
         _83[(_80 + _84)] = _31[(_15 + _97)]
         _84 += 1
        _81[(_78 + _84)] = 2
        _83[(_80 + _84)] = _68
        _84 += 1
        _81[(_78 + _84)] = 5
        _84 += 1
        _81[((_79 + _86) + 1)] = _84
       else:
        if (_72 > 0):
         _81[(_78 + _84)] = 2
         _83[(_80 + _84)] = 0.0
         _84 += 1
         _81[((_79 + _86) + 1)] = _84
       _86 += 1
      _81[((_74 + _85) + 1)] = _86
      _89 += 1
      _88 += 1
     _85 += 1
    if (_86!=_70):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid nnz")
    if (_84!=_72):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: invalid codei")
   else:
    _98=(_19 + _6)
    _99=0
    _100=_16
    _101=(_20 + _7)
    if _32:
     _101 += ((2 * _19) if ((_20 > 0) ) else _19)
     _101 += ((2 * _6) if ((_7 > 0) ) else _6)
    _102=1
    for _103 in range(0,_100):
     _102 *= _29[(_17 + _103)]
    _104=0
    _105=0
    while ((_105 < _18) and (_104 < _5)):
     if (_30[(_23 + _105)] < _30[(_10 + _104)]):
      _99 += 1
      _105 += 1
     elif (_30[(_23 + _105)] > _30[(_10 + _104)]): # bld/docker-win/final/default/src/fusion/ExprAdd.monty:1026:22-49
      _99 += 1
      _104 += 1
     else:
      _99 += 1
      _105 += 1
      _104 += 1
    _99 += (((_18 - _105) + _5) - _104)
    _106=(_99 < _102)
    _0.alloc_expr(_100,_99,_98,_106,_101)
    _107=(_0.shape_base)
    _108=(_0.ptr_base)
    _109=((_0.sp_base) if (_106 ) else _0.alloci64(_99))
    _110=(_0.nidxs_base)
    _111=(_0.cof_base)
    _112=(_0.code_base)
    _113=(_0.codeptr_base)
    _114=(_0.cconst_base)
    _115=(_0.i32)
    _116=(_0.i64)
    _117=(_0.f64)
    for _118 in range(0,_100):
     _115[(_107 + _118)] = _29[(_17 + _118)]
    _115[_108] = 0
    if (_101 > 0):
     _115[_113] = 0
    _119=0
    _120=0
    _121=0
    _122=0
    _123=0
    while ((_123 < _18) and (_122 < _5)):
     if (_30[(_23 + _123)] < _30[(_10 + _122)]):
      for _124 in range(_29[(_22 + _123)],_29[((_22 + _123) + 1)]):
       _116[(_110 + _121)] = _30[(_24 + _124)]
       _117[(_111 + _121)] = (self.__m1 * _31[(_25 + _124)])
       if (_20 > 0):
        for _125 in range(_29[(_27 + _124)],_29[((_27 + _124) + 1)]):
         _115[(_112 + _119)] = _29[(_26 + _125)]
         _117[(_114 + _119)] = _31[(_28 + _125)]
         _119 += 1
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = self.__m1
        _119 += 1
        _115[(_112 + _119)] = 5
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
       else:
        if (_101 > 0):
         _115[(_112 + _119)] = 2
         _117[(_114 + _119)] = 0
         _119 += 1
         _115[((_113 + _121) + 1)] = _119
       _121 += 1
      _116[(_109 + _120)] = _30[(_23 + _123)]
      _115[((_108 + _120) + 1)] = _121
      _120 += 1
      _123 += 1
     elif (_30[(_10 + _122)] < _30[(_23 + _123)]): # bld/docker-win/final/default/src/fusion/ExprAdd.monty:1095:22-49
      for _126 in range(_29[(_9 + _122)],_29[((_9 + _122) + 1)]):
       _116[(_110 + _121)] = _30[(_11 + _126)]
       _117[(_111 + _121)] = (self.__m2 * _31[(_12 + _126)])
       if (_7 > 0):
        for _127 in range(_29[(_14 + _126)],_29[((_14 + _126) + 1)]):
         _115[(_112 + _119)] = _29[(_13 + _127)]
         _117[(_114 + _119)] = _31[(_15 + _127)]
         _119 += 1
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = self.__m2
        _119 += 1
        _115[(_112 + _119)] = 5
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
       else:
        if (_101 > 0):
         _115[(_112 + _119)] = 2
         _117[(_114 + _119)] = 0
         _119 += 1
         _115[((_113 + _121) + 1)] = _119
       _121 += 1
      _116[(_109 + _120)] = _30[(_10 + _122)]
      _115[((_108 + _120) + 1)] = _121
      _120 += 1
      _122 += 1
     else:
      for _128 in range(_29[(_22 + _123)],_29[((_22 + _123) + 1)]):
       _116[(_110 + _121)] = _30[(_24 + _128)]
       _117[(_111 + _121)] = (self.__m1 * _31[(_25 + _128)])
       if (_20 > 0):
        for _129 in range(_29[(_27 + _128)],_29[((_27 + _128) + 1)]):
         _115[(_112 + _119)] = _29[(_26 + _129)]
         _117[(_114 + _119)] = _31[(_28 + _129)]
         _119 += 1
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = self.__m1
        _119 += 1
        _115[(_112 + _119)] = 5
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
       else:
        if (_101 > 0):
         _115[(_112 + _119)] = 2
         _117[(_114 + _119)] = 0
         _119 += 1
         _115[((_113 + _121) + 1)] = _119
       _121 += 1
      for _130 in range(_29[(_9 + _122)],_29[((_9 + _122) + 1)]):
       _116[(_110 + _121)] = _30[(_11 + _130)]
       _117[(_111 + _121)] = (self.__m2 * _31[(_12 + _130)])
       if (_7 > 0):
        for _131 in range(_29[(_14 + _130)],_29[((_14 + _130) + 1)]):
         _115[(_112 + _119)] = _29[(_13 + _131)]
         _117[(_114 + _119)] = _31[(_15 + _131)]
         _119 += 1
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = self.__m2
        _119 += 1
        _115[(_112 + _119)] = 5
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
       else:
        if (_101 > 0):
         _115[(_112 + _119)] = 2
         _117[(_114 + _119)] = 0
         _119 += 1
         _115[((_113 + _121) + 1)] = _119
       _121 += 1
      _116[(_109 + _120)] = _30[(_23 + _123)]
      _115[((_108 + _120) + 1)] = _121
      _120 += 1
      _123 += 1
      _122 += 1
    while (_123 < _18):
     for _132 in range(_29[(_22 + _123)],_29[((_22 + _123) + 1)]):
      _116[(_110 + _121)] = _30[(_24 + _132)]
      _117[(_111 + _121)] = (self.__m1 * _31[(_25 + _132)])
      if (_20 > 0):
       for _133 in range(_29[(_27 + _132)],_29[((_27 + _132) + 1)]):
        _115[(_112 + _119)] = _29[(_26 + _133)]
        _117[(_114 + _119)] = _31[(_28 + _133)]
        _119 += 1
       _115[(_112 + _119)] = 2
       _117[(_114 + _119)] = self.__m1
       _119 += 1
       _115[(_112 + _119)] = 5
       _119 += 1
       _115[((_113 + _121) + 1)] = _119
      else:
       if (_101 > 0):
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = 0
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
      _121 += 1
     _116[(_109 + _120)] = _30[(_23 + _123)]
     _115[((_108 + _120) + 1)] = _121
     _120 += 1
     _123 += 1
    while (_122 < _5):
     for _134 in range(_29[(_9 + _122)],_29[((_9 + _122) + 1)]):
      _116[(_110 + _121)] = _30[(_11 + _134)]
      _117[(_111 + _121)] = (self.__m2 * _31[(_12 + _134)])
      if (_7 > 0):
       for _135 in range(_29[(_14 + _134)],_29[((_14 + _134) + 1)]):
        _115[(_112 + _119)] = _29[(_13 + _135)]
        _117[(_114 + _119)] = _31[(_15 + _135)]
        _119 += 1
       _115[(_112 + _119)] = 2
       _117[(_114 + _119)] = self.__m2
       _119 += 1
       _115[(_112 + _119)] = 5
       _119 += 1
       _115[((_113 + _121) + 1)] = _119
      else:
       if (_101 > 0):
        _115[(_112 + _119)] = 2
        _117[(_114 + _119)] = 0
        _119 += 1
        _115[((_113 + _121) + 1)] = _119
      _121 += 1
     _116[(_109 + _120)] = _30[(_10 + _122)]
     _115[((_108 + _120) + 1)] = _121
     _120 += 1
     _122 += 1
    if (not _106):
     _0.popi64(_99)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprAdd(")._a_S(self.__e1.toString())._a_S(",")._a_S(self.__e2.toString())._a_S("; ")._a_D(self.__m1)._a_S(",")._a_D(self.__m2)._a_S(")")._toString_())
 return ExprAdd
mosek_fusion_ExprAdd=__mk_mosek_fusion_ExprAdd()
del __mk_mosek_fusion_ExprAdd
def __mk_mosek_fusion_ExprWSum():
 class ExprWSum(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprWSum__w','_ExprWSum__es']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3Lmosek_4fusion_4Expression_2_3D(*args): 
      self._ctor_init__3Lmosek_4fusion_4Expression_2_3D(*args)
    elif self.__match_alt_ctor__3Lmosek_4fusion_4Expression_2_3D(*args):
      self._ctor_alt_init__3Lmosek_4fusion_4Expression_2_3D(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprWSum.ctor(array(mosek.fusion.Expression,ndim=1),array(double,ndim=1))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprWSum._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprWSum._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprWSum.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprWSum._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprWSum._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprWSum.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprWSum: '+self._toString_()
  @staticmethod
  def _ctor__3Lmosek_4fusion_4Expression_2_3D(es,w):
    o = ExprWSum.__new__(ExprWSum)
    o._ctor_init__3Lmosek_4fusion_4Expression_2_3D(es,w)
    return o
  @staticmethod
  def __match_ctor__3Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    es,w, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(es) and __arg_match__3D__(w))
  @staticmethod
  def __match_alt_ctor__3Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    es,w, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(es) and __arg_alt_match__3D__(w))
  def _ctor_alt_init__3Lmosek_4fusion_4Expression_2_3D(self,es,w):
    self._ctor_init__3Lmosek_4fusion_4Expression_2_3D(numpy.array(es,dtype=numpy.dtype(object)),numpy.array(w,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init__3Lmosek_4fusion_4Expression_2_3D(self,es,w):
   mosek_fusion_BaseExpression._ctor_init__3I(self,es[0].getShape())
   if (int((w).shape[0])!=int((es).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Mismatching weights and expressions array lengths")
   (self.__w) = mosek.fusion.Utils.Tools._arraycopy__3D(w)
   _0=es[0].getShape()
   _1=int((_0).shape[0])
   for _2 in range(1,int((es).shape[0])):
    _3=es[_2].getShape()
    if (_1!=int((_3).shape[0])):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching expression shapes")
    else:
     for _4 in range(0,_1):
      if (_0[_4]!=_3[_4]):
       raise mosek_fusion_DimensionError._ctor_S("Mismatching expression shapes")
   (self.__es) = numpy.array([es[_5] for _5 in range(0,int((es).shape[0]))], dtype=numpy.dtype(object))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=int((self.__es).shape[0])
   for _4 in range(0,_3):
    self.__es[_4].eval(_1,_0,_2)
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _8=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _9=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _10=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _11=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _12=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _13=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _14=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _15=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _16=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _17=numpy.zeros((_3,), dtype=numpy.dtype(bool))
   for _18 in range(0,_3):
    _1.pop_expr()
    _5[((_3 - 1) - _18)] = (_1.nd)
    _6[((_3 - 1) - _18)] = (_1.nelem)
    _7[((_3 - 1) - _18)] = (_1.nnz)
    _8[((_3 - 1) - _18)] = (_1.ncodeatom)
    _9[((_3 - 1) - _18)] = (_1.ptr_base)
    _11[((_3 - 1) - _18)] = (_1.sp_base)
    _10[((_3 - 1) - _18)] = (_1.nidxs_base)
    _12[((_3 - 1) - _18)] = (_1.cof_base)
    _13[((_3 - 1) - _18)] = (_1.shape_base)
    _14[((_3 - 1) - _18)] = (_1.code_base)
    _15[((_3 - 1) - _18)] = (_1.codeptr_base)
    _16[((_3 - 1) - _18)] = (_1.cconst_base)
    _17[((_3 - 1) - _18)] = (_1.hassp)
   _19=(_1.i32)
   _20=(_1.i64)
   _21=(_1.f64)
   _22=True
   for _23 in range(1,_3):
    _22 = (_22 and (_5[0]==_5[_23]))
    for _24 in range(0,_5[0]):
     _22 = (_22 and (_19[(_13[0] + _24)]==_19[(_13[_23] + _24)]))
   if (not _22):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
   _25=numpy.array([_19[(_13[0] + _26)] for _26 in range(0,_5[0])], dtype=numpy.dtype(numpy.int32))
   _27=False
   for _28 in range(0,_3):
    if (not _17[_28]):
     _27 = True
   _29=False
   for _30 in range(0,_3):
    if (_8[_30] > 0):
     _29 = True
   _31=0
   _32=0
   _33=0
   if _27:
    _32 = numpy.int32(mosek.fusion.Set._size__3I(_25))
    for _34 in range(0,_3):
     _33 += _7[_34]
     if _29:
      _31 += ((_8[_34] + (2 * _7[_34])) if ((_8[_34] > 0) ) else _7[_34])
   else:
    _35=False
    _36=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    for _37 in range(0,_3):
     _33 += _7[_37]
     if _29:
      _31 += ((_8[_37] + (2 * _7[_37])) if ((_8[_37] > 0) ) else _7[_37])
    while (not _35):
     _38=(- 1)
     for _39 in range(0,_3):
      if ((_36[_39] < _6[_39]) and ((_38 < 0) or (_20[(_11[_39] + _36[_39])] < _38))):
       _38 = _20[(_11[_39] + _36[_39])]
     if (_38 < 0):
      _35 = True
     else:
      for _40 in range(0,_3):
       if ((_36[_40] < _6[_40]) and (_38==_20[(_11[_40] + _36[_40])])):
        _36[_40] += 1
      _32 += 1
   _0.alloc_expr(_5[0],_32,_33,(not _27),_31)
   _41=(_0.ptr_base)
   _42=(_0.nidxs_base)
   _43=(_0.sp_base)
   _44=(_0.shape_base)
   _45=(_0.cof_base)
   _46=(_0.code_base)
   _47=(_0.codeptr_base)
   _48=(_0.cconst_base)
   _49=(_0.i32)
   _50=(_0.i64)
   _51=(_0.f64)
   for _52 in range(0,_5[0]):
    _49[(_44 + _52)] = _19[(_13[0] + _52)]
   if (_31 > 0):
    _49[_47] = 0
   for _53 in range(0,(_32 + 1)):
    _49[(_41 + _53)] = 0
   if _27:
    _54=(- 9999)
    if (_31 > 0):
     _54 = _2.alloci32((_32 + 1))
    _55=(_2.i32)
    if (_31 > 0):
     for _56 in range(0,(_32 + 1)):
      _55[(_54 + _56)] = 0
    for _57 in range(0,_3):
     if _17[_57]:
      for _58 in range(0,_6[_57]):
       _49[((_41 + _20[(_11[_57] + _58)]) + 1)] += (_19[((_9[_57] + _58) + 1)] - _19[(_9[_57] + _58)])
      if (_8[_57] > 0):
       for _59 in range(0,_6[_57]):
        _55[((_54 + _20[(_11[_57] + _59)]) + 1)] += ((_19[(_15[_57] + _19[((_9[_57] + _59) + 1)])] - _19[(_15[_57] + _19[(_9[_57] + _59)])]) + (2 * (_19[((_9[_57] + _59) + 1)] - _19[(_9[_57] + _59)])))
      elif _29: # bld/docker-win/final/default/src/fusion/ExprAdd.monty:417:22-33
       for _60 in range(0,_6[_57]):
        _55[((_54 + _20[(_11[_57] + _60)]) + 1)] += 1
     else:
      for _61 in range(0,_6[_57]):
       _49[((_41 + _61) + 1)] += (_19[((_9[_57] + _61) + 1)] - _19[(_9[_57] + _61)])
      if (_8[_57] > 0):
       for _62 in range(0,_6[_57]):
        _55[((_54 + _62) + 1)] += ((_19[(_15[_57] + _19[((_9[_57] + _62) + 1)])] - _19[(_15[_57] + _19[(_9[_57] + _62)])]) + (2 * (_19[((_9[_57] + _62) + 1)] - _19[(_9[_57] + _62)])))
      elif _29: # bld/docker-win/final/default/src/fusion/ExprAdd.monty:428:22-33
       for _63 in range(0,_6[_57]):
        _55[((_54 + _63) + 1)] += (_19[((_9[_57] + _63) + 1)] - _19[(_9[_57] + _63)])
    for _64 in range(0,_32):
     _49[((_41 + _64) + 1)] += _49[(_41 + _64)]
    if (_31 > 0):
     for _65 in range(0,_32):
      _55[((_54 + _65) + 1)] += _55[(_54 + _65)]
    for _66 in range(0,_3):
     if _17[_66]:
      for _67 in range(0,_6[_66]):
       _68=_19[(_9[_66] + _67)]
       _69=_19[((_9[_66] + _67) + 1)]
       _70=_20[(_11[_66] + _67)]
       _71=_49[(_41 + _70)]
       _72=(_55[(_54 + _70)] if (_29 ) else (- 10000))
       for _73 in range(_68,_69):
        _50[(_42 + _71)] = _20[(_10[_66] + _73)]
        _51[(_45 + _71)] = (self.__w[_66] * _21[(_12[_66] + _73)])
        if _29:
         if (_8[_66] > 0):
          for _74 in range(_19[(_15[_66] + _73)],_19[((_15[_66] + _73) + 1)]):
           _49[(_46 + _72)] = _19[(_14[_66] + _74)]
           _51[(_48 + _72)] = _21[(_16[_66] + _74)]
           _72 += 1
          _49[(_46 + _72)] = 2
          _51[(_48 + _72)] = self.__w[_66]
          _72 += 1
          _49[(_46 + _72)] = 5
          _72 += 1
         else:
          _49[(_46 + _72)] = 2
          _51[(_48 + _72)] = 0.0
          _72 += 1
         _49[((_47 + _71) + 1)] = _72
        _71 += 1
       if _29:
        _55[(_54 + _70)] = _72
       _49[(_41 + _70)] += (_69 - _68)
     else:
      for _75 in range(0,_6[_66]):
       _76=_19[(_9[_66] + _75)]
       _77=_19[((_9[_66] + _75) + 1)]
       _78=_75
       _79=_49[(_41 + _78)]
       _80=(_55[(_54 + _78)] if (_29 ) else (- 10000))
       for _81 in range(_76,_77):
        _50[(_42 + _79)] = _20[(_10[_66] + _81)]
        _51[(_45 + _79)] = (self.__w[_66] * _21[(_12[_66] + _81)])
        if _29:
         if (_8[_66] > 0):
          for _82 in range(_19[(_15[_66] + _81)],_19[((_15[_66] + _81) + 1)]):
           _49[(_46 + _80)] = _19[(_14[_66] + _82)]
           _51[(_48 + _80)] = _21[(_16[_66] + _82)]
           _80 += 1
          _49[(_46 + _80)] = 2
          _51[(_48 + _80)] = self.__w[_66]
          _80 += 1
          _49[(_46 + _80)] = 5
          _80 += 1
         else:
          _49[(_46 + _80)] = 2
          _51[(_48 + _80)] = 0.0
          _80 += 1
         _49[((_47 + _79) + 1)] = _80
        _79 += 1
       if _29:
        _55[(_54 + _78)] = _80
       _49[(_41 + _78)] += (_77 - _76)
    for _83 in range(0,_32):
     _49[((_41 + _32) - _83)] = _49[(((_41 + _32) - _83) - 1)]
    _49[_41] = 0
   else:
    _84=False
    _85=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
    _86=0
    _87=0
    _88=0
    while (not _84):
     _89=(- 1)
     for _90 in range(0,_3):
      if ((_85[_90] < _6[_90]) and ((_89 < 0) or (_20[(_11[_90] + _85[_90])] < _89))):
       _89 = _20[(_11[_90] + _85[_90])]
     if (_89 < 0):
      _84 = True
     else:
      for _91 in range(0,_3):
       if ((_85[_91] < _6[_91]) and (_89==_20[(_11[_91] + _85[_91])])):
        for _92 in range(_19[(_9[_91] + _85[_91])],_19[((_9[_91] + _85[_91]) + 1)]):
         _50[(_42 + _88)] = _20[(_10[_91] + _92)]
         _51[(_45 + _88)] = (self.__w[_91] * _21[(_12[_91] + _92)])
         if _29:
          if (_8[_91] > 0):
           for _93 in range(_19[(_15[_91] + _92)],_19[((_15[_91] + _92) + 1)]):
            _49[(_46 + _86)] = _19[(_14[_91] + _93)]
            _51[(_48 + _86)] = _21[(_16[_91] + _93)]
            _86 += 1
           _49[(_46 + _86)] = 2
           _51[(_48 + _86)] = self.__w[_91]
           _86 += 1
           _49[(_46 + _86)] = 5
           _86 += 1
          else:
           _49[(_46 + _86)] = 2
           _51[(_48 + _86)] = 0.0
           _86 += 1
          _49[((_47 + _88) + 1)] = _86
         _88 += 1
        _85[_91] += 1
      _49[((_41 + _87) + 1)] = _88
      _50[(_43 + _87)] = _89
     _87 += 1
   _2.clear()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()._a_S("ExprWSum([")
   _0._a_S(self.__es[0].toString())
   for _1 in range(1,int((self.__es).shape[0])):
    _0._a_S(",")._a_S(self.__es[_1].toString())
   _0._a_S("])")
   return (_0._toString_())
 return ExprWSum
mosek_fusion_ExprWSum=__mk_mosek_fusion_ExprWSum()
del __mk_mosek_fusion_ExprWSum
def __mk_mosek_fusion_ExprSumReduce():
 class ExprSumReduce(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprSumReduce__dim','_ExprSumReduce__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_ILmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_ILmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_ILmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_ILmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprSumReduce.ctor(int32,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprSumReduce._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprSumReduce._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSumReduce.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprSumReduce._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprSumReduce._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSumReduce.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprSumReduce: '+self._toString_()
  @staticmethod
  def _ctor_ILmosek_4fusion_4Expression_2(dim,expr):
    o = ExprSumReduce.__new__(ExprSumReduce)
    o._ctor_init_ILmosek_4fusion_4Expression_2(dim,expr)
    return o
  @staticmethod
  def __match_ctor_ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    dim,expr, = args
    return (__arg_match_I__(dim) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    dim,expr, = args
    return (__arg_alt_match_I__(dim) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_ILmosek_4fusion_4Expression_2(self,dim,expr):
    self._ctor_init_ILmosek_4fusion_4Expression_2(numpy.int32(dim),expr)
  def _ctor_init_ILmosek_4fusion_4Expression_2(self,dim,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.ExprSumReduce.__computeShape_I_3I(dim,expr.getShape()))
   (self.__expr) = expr
   (self.__dim) = dim
   _0=expr.getShape()
   if (int((_0).shape[0]) <= dim):
    raise mosek_fusion_DimensionError._ctor_S("Invalid summing dimension")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.shape_base)
   _5=(_1.nelem)
   _6=(_1.nnz)
   _7=(_1.ncodeatom)
   _8=(_1.hassp)
   _9=(_1.ptr_base)
   _10=(_1.sp_base)
   _11=(_1.nidxs_base)
   _12=(_1.cof_base)
   _13=(_1.code_base)
   _14=(_1.codeptr_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=99999
   _20=99999
   _21=99999
   if _8:
    _22=0
    for _23 in range(0,_3):
     if (_22 < _16[(_4 + _23)]):
      _22 = _16[(_4 + _23)]
    _19 = _2.alloci32((_22 + 1))
    _20 = _2.alloci32(_5)
    _21 = _2.alloci32(_5)
   _24=(_2.i32)
   if _8:
    _25=_20
    _26=_21
    for _27 in range(0,_5):
     _24[(_25 + _27)] = _27
    if (self.__dim < (_3 - 1)):
     _28=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
     _28[(_3 - 1)] = 1
     for _29 in range(1,_3):
      _28[((_3 - _29) - 1)] = (_28[(_3 - _29)] * _16[((_4 + _3) - _29)])
     _30=numpy.zeros(((_3 - 1),), dtype=numpy.dtype(numpy.int32))
     for _31 in range(0,self.__dim):
      _30[((_3 - _31) - 2)] = _31
     for _32 in range((self.__dim + 1),_3):
      _30[((_3 - _32) - 1)] = _32
     for _33 in range(0,(_3 - 1)):
      _34=_30[_33]
      _35=_16[(_4 + _34)]
      for _36 in range(0,(_35 + 1)):
       _24[(_19 + _36)] = 0
      for _37 in range(0,_5):
       _24[((_19 + 1) + ((_17[(_10 + _37)] // _28[_34]) % _35))] += 1
      for _38 in range(0,_35):
       _24[((_19 + _38) + 1)] += _24[(_19 + _38)]
      for _39 in range(0,_5):
       _40=_24[(_25 + _39)]
       _41=((_17[(_10 + _40)] // _28[_34]) % _35)
       _24[(_26 + _24[(_19 + _41)])] = _40
       _24[(_19 + _41)] += 1
      _42=_26
      _26 = _25
      _25 = _42
    _43=1
    for _44 in range(0,self.__dim):
     _43 *= _16[(_4 + _44)]
    _45=_16[(_4 + self.__dim)]
    _46=1
    for _47 in range((self.__dim + 1),_3):
     _46 *= _16[(_4 + _47)]
    _48=(_46 * _45)
    _49=_46
    _50=1
    _51=0
    _52=(- 1)
    _53=(- 1)
    for _54 in range(0,_5):
     _55=_24[(_25 + _54)]
     _56=((_17[(_10 + _55)] // _48) % _43)
     _57=(_17[(_10 + _55)] % _46)
     if ((_53!=_56) or (_52!=_57)):
      _53 = _56
      _52 = _57
      _51 += 1
    _58=(_3 - 1)
    _59=(_51 < (_43 * _46))
    _60=_6
    _61=_7
    _0.alloc_expr(_58,_51,_60,_59,_61)
    _62=(_0.ptr_base)
    _63=(_0.nidxs_base)
    _64=((_0.sp_base) if (_59 ) else _0.alloci64(_51))
    _65=(_0.cof_base)
    _66=(_0.shape_base)
    _67=(_0.code_base)
    _68=(_0.codeptr_base)
    _69=(_0.cconst_base)
    _70=(_0.i32)
    _71=(_0.i64)
    _72=(_0.f64)
    for _73 in range(0,self.__dim):
     _70[(_66 + _73)] = _16[(_4 + _73)]
    for _74 in range((self.__dim + 1),_3):
     _70[((_66 + _74) - 1)] = _16[(_4 + _74)]
    _70[_62] = 0
    if (_61 > 0):
     _70[_68] = 0
    _75=0
    _76=0
    _77=0
    _78=0
    while (_78 < _5):
     _79=_78
     _80=((_17[(_10 + _24[(_25 + _79)])] // _48) % _43)
     _81=(_17[(_10 + _24[(_25 + _79)])] % _46)
     _78 += 1
     while ((_78 < _5) and ((_80==((_17[(_10 + _24[(_25 + _78)])] // _48) % _43)) and (_81==(_17[(_10 + _24[(_25 + _78)])] % _46)))):
      _78 += 1
     for _82 in range(_79,_78):
      _83=_24[(_25 + _82)]
      for _84 in range(_16[(_9 + _83)],_16[((_9 + _83) + 1)]):
       _71[(_63 + _77)] = _17[(_11 + _84)]
       _72[(_65 + _77)] = _18[(_12 + _84)]
       if (_61 > 0):
        for _85 in range(_16[(_14 + _84)],_16[((_14 + _84) + 1)]):
         _70[(_67 + _75)] = _16[(_13 + _85)]
         _72[(_69 + _75)] = _18[(_15 + _85)]
         _75 += 1
        _70[((_68 + _77) + 1)] = _75
       _77 += 1
     _71[(_64 + _76)] = ((_80 * _46) + _81)
     _70[((_62 + _76) + 1)] = _77
     _76 += 1
    if (not _59):
     _0.popi64(_51)
   else:
    _86=1
    for _87 in range(0,self.__dim):
     _86 *= _16[(_4 + _87)]
    _88=_16[(_4 + self.__dim)]
    _89=1
    for _90 in range((self.__dim + 1),_3):
     _89 *= _16[(_4 + _90)]
    _91=(_89 * _88)
    _92=_89
    _93=1
    _94=(_86 * _89)
    _95=_6
    _96=_7
    _0.alloc_expr((_3 - 1),_94,_95,False,_96)
    _97=(_0.ptr_base)
    _98=(_0.nidxs_base)
    _99=(_0.cof_base)
    _100=(_0.shape_base)
    _101=(_0.code_base)
    _102=(_0.codeptr_base)
    _103=(_0.cconst_base)
    _104=(_0.i32)
    _105=(_0.i64)
    _106=(_0.f64)
    for _107 in range(0,self.__dim):
     _104[(_100 + _107)] = _16[(_4 + _107)]
    for _108 in range((self.__dim + 1),_3):
     _104[((_100 + _108) - 1)] = _16[(_4 + _108)]
    _109=0
    _110=0
    _104[_97] = 0
    if (_96 > 0):
     _104[_102] = 0
    _111=0
    for _112 in range(0,_86):
     for _113 in range(0,_89):
      for _114 in range(0,_88):
       _115=(((_112 * _91) + (_114 * _92)) + _113)
       for _116 in range(_16[(_9 + _115)],_16[((_9 + _115) + 1)]):
        _105[(_98 + _110)] = _17[(_11 + _116)]
        _106[(_99 + _110)] = _18[(_12 + _116)]
        if (_96 > 0):
         for _117 in range(_16[(_14 + _116)],_16[((_14 + _116) + 1)]):
          _104[(_101 + _111)] = _16[(_13 + _117)]
          _106[(_103 + _111)] = _18[(_15 + _117)]
          _111 += 1
         _104[((_102 + _110) + 1)] = _111
        _110 += 1
      _104[((_97 + _109) + 1)] = _110
      _109 += 1
   _2.clear()
  @staticmethod
  def __computeShape_alt_I_3I(_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_ExprSumReduce.__computeShape_I_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __computeShape_I_3I(_0,_1):
   _2=numpy.zeros(((int((_1).shape[0]) - 1),), dtype=numpy.dtype(numpy.int32))
   for _3 in range(0,_0):
    _2[_3] = _1[_3]
   for _4 in range((_0 + 1),int((_1).shape[0])):
    _2[(_4 - 1)] = _1[_4]
   return (_2)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprSumReduce(")._a_I(self.__dim)._a_S(",")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprSumReduce
mosek_fusion_ExprSumReduce=__mk_mosek_fusion_ExprSumReduce()
del __mk_mosek_fusion_ExprSumReduce
def __mk_mosek_fusion_ExprScaleVecPSD():
 class ExprScaleVecPSD(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprScaleVecPSD__dim1','_ExprScaleVecPSD__dim0','_ExprScaleVecPSD__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_IILmosek_4fusion_4BaseExpression_2(*args): 
      self._ctor_init_IILmosek_4fusion_4BaseExpression_2(*args)
    elif self.__match_alt_ctor_IILmosek_4fusion_4BaseExpression_2(*args):
      self._ctor_alt_init_IILmosek_4fusion_4BaseExpression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprScaleVecPSD.ctor(int32,int32,mosek.fusion.BaseExpression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprScaleVecPSD._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprScaleVecPSD._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprScaleVecPSD.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def __repr__(self): return 'mosek.fusion.ExprScaleVecPSD'
  @staticmethod
  def _ctor_IILmosek_4fusion_4BaseExpression_2(dim0,dim1,expr):
    o = ExprScaleVecPSD.__new__(ExprScaleVecPSD)
    o._ctor_init_IILmosek_4fusion_4BaseExpression_2(dim0,dim1,expr)
    return o
  @staticmethod
  def __match_ctor_IILmosek_4fusion_4BaseExpression_2(*args):
    if len(args) != 3: return False
    dim0,dim1,expr, = args
    return (__arg_match_I__(dim0) and __arg_match_I__(dim1) and __arg_match_Lmosek_4fusion_4BaseExpression_2__(expr))
  @staticmethod
  def __match_alt_ctor_IILmosek_4fusion_4BaseExpression_2(*args):
    if len(args) != 3: return False
    dim0,dim1,expr, = args
    return (__arg_alt_match_I__(dim0) and __arg_alt_match_I__(dim1) and __arg_alt_match_Lmosek_4fusion_4BaseExpression_2__(expr))
  def _ctor_alt_init_IILmosek_4fusion_4BaseExpression_2(self,dim0,dim1,expr):
    self._ctor_init_IILmosek_4fusion_4BaseExpression_2(numpy.int32(dim0),numpy.int32(dim1),expr)
  def _ctor_init_IILmosek_4fusion_4BaseExpression_2(self,dim0,dim1,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
   (self.__dim0) = dim0
   (self.__dim1) = dim1
   if ((dim0 < 0) or ((dim1 < 0) or (dim0==dim1))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid symmetry dimensions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nnz)
   _5=(_1.nelem)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.code_base)
   _11=(_1.codeptr_base)
   _12=(_1.cconst_base)
   _13=(_1.nidxs_base)
   _14=(_1.sp_base)
   _15=(_1.cof_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   if ((self.__dim0 >= _3) or (self.__dim1 >= _3)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid symmetry dimensions")
   elif (_16[(_8 + self.__dim0)]!=_16[(_8 + self.__dim1)]): # bld/docker-win/final/default/src/fusion/ExprShape.monty:1080:16-52
    raise mosek_fusion_DimensionError._ctor_S("Not symmetric in given dimensions")
   _19=1
   _20=1
   _21=1
   _22=1
   _23=1
   _24=(self.__dim0 if ((self.__dim0 < self.__dim1) ) else self.__dim1)
   _25=(self.__dim1 if ((self.__dim0 < self.__dim1) ) else self.__dim0)
   for _26 in range(0,_24):
    _23 *= _16[(_8 + _26)]
   for _27 in range((_24 + 1),_25):
    _21 *= _16[(_8 + _27)]
   for _28 in range((_25 + 1),_3):
    _19 *= _16[(_8 + _28)]
   _22 = _16[(_8 + self.__dim0)]
   _20 = _22
   if (_6==0):
    _0.alloc_expr(_3,_5,_4,_7,0)
   else:
    _0.alloc_expr(_3,_5,_4,_7,(_6 + (_4 * 2)))
   _29=(_0.ptr_base)
   _30=(_0.shape_base)
   _31=(_0.nidxs_base)
   _32=(_0.sp_base)
   _33=(_0.cof_base)
   _34=(_0.code_base)
   _35=(_0.codeptr_base)
   _36=(_0.cconst_base)
   _37=(_0.i32)
   _38=(_0.i64)
   _39=(_0.f64)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(_16,_9,_37,_29,(_5 + 1))
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(_16,_8,_37,_30,_3)
   mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_17,_13,_38,_31,_4)
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(_18,_15,_39,_33,_4)
   if _7:
    mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(_17,_14,_38,_32,_5)
   _40=mosek.fusion.Utils.Tools._sqrt_D(2)
   if (not _7):
    _41=0
    for _42 in range(0,_23):
     for _43 in range(0,_22):
      for _44 in range(0,_21):
       for _45 in range(0,_20):
        for _46 in range(0,_19):
         if (_43!=_45):
          for _47 in range(_37[(_29 + _41)],_37[((_29 + _41) + 1)]):
           _39[(_33 + _47)] *= _40
         _41 += 1
   else:
    _48=0
    _49=numpy.zeros((5,), dtype=numpy.dtype(numpy.int64))
    _49[4] = 1
    _49[3] = (_49[4] * _19)
    _49[2] = (_49[3] * _20)
    _49[1] = (_49[2] * _21)
    _49[0] = (_49[1] * _22)
    for _50 in range(0,_5):
     _51=_17[(_14 + _50)]
     _52=((_51 // _49[3]) % _20)
     _53=((_51 // _49[1]) % _22)
     if (_53!=_52):
      for _54 in range(_37[(_29 + _50)],_37[((_29 + _50) + 1)]):
       _39[(_33 + _54)] *= _40
   if (_6!=0):
    _55=0
    _56=0
    _37[_35] = 0
    if (not _7):
     _57=0
     for _58 in range(0,_23):
      for _59 in range(0,_22):
       for _60 in range(0,_21):
        for _61 in range(0,_20):
         for _62 in range(0,_19):
          _63=(_40 if ((_59!=_61) ) else 1.0)
          for _64 in range(_16[(_9 + _57)],_37[((_9 + _57) + 1)]):
           for _65 in range(_16[(_11 + _64)],_16[((_11 + _64) + 1)]):
            _37[(_34 + _56)] = _16[(_10 + _65)]
            _39[(_36 + _56)] = _18[(_12 + _65)]
            _56 += 1
           _37[(_34 + _56)] = 2
           _39[(_36 + _56)] = _63
           _56 += 1
           _37[(_34 + _56)] = 5
           _56 += 1
           _37[((_35 + _55) + 1)] = _56
           _55 += 1
          _57 += 1
    else:
     _66=0
     _67=numpy.zeros((5,), dtype=numpy.dtype(numpy.int64))
     _67[4] = 1
     _67[3] = (_67[4] * _19)
     _67[2] = (_67[3] * _20)
     _67[1] = (_67[2] * _21)
     _67[0] = (_67[1] * _22)
     for _68 in range(0,_5):
      _69=_17[(_14 + _68)]
      _70=((_69 // _67[3]) % _20)
      _71=((_69 // _67[1]) % _22)
      _72=(_40 if ((_71!=_70) ) else 1.0)
      for _73 in range(_16[(_9 + _68)],_16[((_9 + _68) + 1)]):
       for _74 in range(_16[(_11 + _73)],_16[((_11 + _73) + 1)]):
        _37[(_34 + _56)] = _16[(_10 + _74)]
        _39[(_36 + _56)] = _18[(_12 + _74)]
        _56 += 1
       _37[(_34 + _56)] = 2
       _39[(_36 + _56)] = _72
       _56 += 1
       _37[(_34 + _56)] = 5
       _56 += 1
       _37[((_35 + _55) + 1)] = _56
       _55 += 1
 return ExprScaleVecPSD
mosek_fusion_ExprScaleVecPSD=__mk_mosek_fusion_ExprScaleVecPSD()
del __mk_mosek_fusion_ExprScaleVecPSD
def __mk_mosek_fusion_ExprDenseTril():
 class ExprDenseTril(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprDenseTril__dim1','_ExprDenseTril__dim0','_ExprDenseTril__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_IILmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_IILmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_IILmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_IILmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprDenseTril.ctor(int32,int32,mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprDenseTril._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprDenseTril._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDenseTril.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprDenseTril._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprDenseTril._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDenseTril.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprDenseTril: '+self._toString_()
  @staticmethod
  def _ctor_IILmosek_4fusion_4Expression_2I(dim0,dim1,expr,unchecked_):
    o = ExprDenseTril.__new__(ExprDenseTril)
    o._ctor_init_IILmosek_4fusion_4Expression_2I(dim0,dim1,expr,unchecked_)
    return o
  @staticmethod
  def __match_ctor_IILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    dim0,dim1,expr,unchecked_, = args
    return (__arg_match_I__(dim0) and __arg_match_I__(dim1) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(unchecked_))
  @staticmethod
  def __match_alt_ctor_IILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    dim0,dim1,expr,unchecked_, = args
    return (__arg_alt_match_I__(dim0) and __arg_alt_match_I__(dim1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(unchecked_))
  def _ctor_alt_init_IILmosek_4fusion_4Expression_2I(self,dim0,dim1,expr,unchecked_):
    self._ctor_init_IILmosek_4fusion_4Expression_2I(numpy.int32(dim0),numpy.int32(dim1),expr,numpy.int32(unchecked_))
  def _ctor_init_IILmosek_4fusion_4Expression_2I(self,dim0,dim1,expr,unchecked_):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
   (self.__dim0) = dim0
   (self.__dim1) = dim1
  @staticmethod
  def _ctor_IILmosek_4fusion_4Expression_2(dim0_,dim1_,expr):
    o = ExprDenseTril.__new__(ExprDenseTril)
    o._ctor_init_IILmosek_4fusion_4Expression_2(dim0_,dim1_,expr)
    return o
  @staticmethod
  def __match_ctor_IILmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    dim0_,dim1_,expr, = args
    return (__arg_match_I__(dim0_) and __arg_match_I__(dim1_) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_IILmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    dim0_,dim1_,expr, = args
    return (__arg_alt_match_I__(dim0_) and __arg_alt_match_I__(dim1_) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_IILmosek_4fusion_4Expression_2(self,dim0_,dim1_,expr):
    self._ctor_init_IILmosek_4fusion_4Expression_2(numpy.int32(dim0_),numpy.int32(dim1_),expr)
  def _ctor_init_IILmosek_4fusion_4Expression_2(self,dim0_,dim1_,expr):
   mosek_fusion_ExprDenseTril._ctor_init_IILmosek_4fusion_4Expression_2I(self,dim0_,dim1_,expr,1)
   _0=expr.getShape()
   if ((self.__dim0==self.__dim1) or ((self.__dim0 < 0) or ((self.__dim0 >= int((_0).shape[0])) or ((self.__dim1 < 0) or ((self.__dim1 >= int((_0).shape[0])) or (_0[self.__dim0]!=_0[self.__dim1])))))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid dimension definitions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nnz)
   _5=(_1.nelem)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.code_base)
   _11=(_1.codeptr_base)
   _12=(_1.cconst_base)
   _13=(_1.nidxs_base)
   _14=(_1.sp_base)
   _15=(_1.cof_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=(self.__dim0 if ((self.__dim0 < self.__dim1) ) else self.__dim1)
   _20=(self.__dim0 if ((self.__dim0 > self.__dim1) ) else self.__dim1)
   _21=(self.__dim0 < self.__dim1)
   if ((self.__dim0==self.__dim1) or ((self.__dim0 < 0) or ((self.__dim0 >= _3) or ((self.__dim1 < 0) or (self.__dim1 >= _3))))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid symmetry dimensions")
   elif (_16[(_8 + self.__dim0)]!=_16[(_8 + self.__dim1)]): # bld/docker-win/final/default/src/fusion/ExprShape.monty:837:16-52
    raise mosek_fusion_DimensionError._ctor_S("Not symmetric in given dimensions")
   _22=numpy.array([1 for _23 in range(0,5)], dtype=numpy.dtype(numpy.int32))
   for _24 in range(0,_19):
    _22[0] *= _16[(_8 + _24)]
   _22[1] = _16[(_8 + self.__dim0)]
   for _25 in range((_19 + 1),_20):
    _22[2] *= _16[(_8 + _25)]
   _22[3] = _16[(_8 + self.__dim1)]
   for _26 in range((_20 + 1),_3):
    _22[4] *= _16[(_8 + _26)]
   _27=numpy.zeros((5,), dtype=numpy.dtype(numpy.int32))
   _27[4] = 1
   for _28 in range(1,5):
    _27[((5 - _28) - 1)] = (_27[(5 - _28)] * _22[(5 - _28)])
   _29=0
   _30=(((_22[0] * _22[2]) * _22[4]) * ((_22[1] * (_22[1] + 1)) // 2))
   _31=0
   if _7:
    _32=_22[1]
    if _21:
     for _33 in range(0,_5):
      _34=((_17[(_14 + _33)] // _27[1]) % _32)
      _35=((_17[(_14 + _33)] // _27[3]) % _32)
      if (_34 >= _35):
       _29 += (_16[((_9 + _33) + 1)] - _16[(_9 + _33)])
       if (_6 > 0):
        _31 += (_16[(_11 + _16[((_9 + _33) + 1)])] - _16[(_11 + _16[(_9 + _33)])])
    else:
     for _36 in range(0,_5):
      _37=((_17[(_14 + _36)] // _27[1]) % _22[1])
      _38=((_17[(_14 + _36)] // _27[3]) % _22[3])
      if (_37 <= _38):
       _29 += (_16[((_9 + _36) + 1)] - _16[(_9 + _36)])
       if (_6 > 0):
        _31 += (_16[(_11 + _16[((_9 + _36) + 1)])] - _16[(_11 + _16[(_9 + _36)])])
   else:
    if _21:
     for _39 in range(0,_22[0]):
      for _40 in range(0,_22[1]):
       for _41 in range(0,_22[2]):
        for _42 in range(0,(_40 + 1)):
         for _43 in range(0,_22[4]):
          _44=(((((_39 * _27[0]) + (_40 * _27[1])) + (_41 * _27[2])) + (_42 * _27[3])) + (_43 * _27[4]))
          _29 += (_16[((_9 + _44) + 1)] - _16[(_9 + _44)])
          if (_6 > 0):
           _31 += (_16[(_11 + _16[((_9 + _44) + 1)])] - _16[(_11 + _16[(_9 + _44)])])
    else:
     for _45 in range(0,_22[0]):
      for _46 in range(0,_22[1]):
       for _47 in range(0,_22[2]):
        for _48 in range(_46,_22[3]):
         for _49 in range(0,_22[4]):
          _50=(((((_45 * _27[0]) + (_46 * _27[1])) + (_47 * _27[2])) + (_48 * _27[3])) + (_49 * _27[4]))
          _29 += (_16[((_9 + _50) + 1)] - _16[(_9 + _50)])
          if (_6 > 0):
           _31 += (_16[(_11 + _16[((_9 + _50) + 1)])] - _16[(_11 + _16[(_9 + _50)])])
   _51=(((((_22[0] * _22[2]) * _22[4]) * _22[1]) * (_22[1] + 1)) // 2)
   _0.alloc_expr(_3,_30,_29,True,_31)
   _52=(_0.ptr_base)
   _53=(_0.shape_base)
   _54=(_0.nidxs_base)
   _55=(_0.sp_base)
   _56=(_0.cof_base)
   _57=(_0.code_base)
   _58=(_0.codeptr_base)
   _59=(_0.cconst_base)
   _60=(_0.i32)
   _61=(_0.i64)
   _62=(_0.f64)
   _60[_52] = 0
   if (_31 > 0):
    _60[_58] = 0
   for _63 in range(0,_3):
    _60[(_53 + _63)] = _16[(_8 + _63)]
   if _21:
    _64=0
    for _65 in range(0,_22[0]):
     for _66 in range(0,_22[1]):
      for _67 in range(0,_22[2]):
       for _68 in range(0,(_66 + 1)):
        for _69 in range(0,_22[4]):
         _61[(_55 + _64)] = (((((_65 * _27[0]) + (_66 * _27[1])) + (_67 * _27[2])) + (_68 * _27[3])) + (_69 * _27[4]))
         _64 += 1
    if (_64!=_30):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nelem")
   else:
    _70=0
    for _71 in range(0,_22[0]):
     for _72 in range(0,_22[1]):
      for _73 in range(0,_22[2]):
       for _74 in range(_72,_22[3]):
        for _75 in range(0,_22[4]):
         _61[(_55 + _70)] = (((((_71 * _27[0]) + (_72 * _27[1])) + (_73 * _27[2])) + (_74 * _27[3])) + (_75 * _27[4]))
         _70 += 1
    if (_70!=_30):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nelem")
   _76=0
   _77=0
   if _7:
    _78=0
    _79=0
    while ((_79 < _5) and (_78 < _51)):
     if (_17[(_14 + _79)] < _61[(_55 + _78)]):
      _79 += 1
     elif (_17[(_14 + _79)] > _61[(_55 + _78)]): # bld/docker-win/final/default/src/fusion/ExprShape.monty:980:22-48
      _60[((_52 + _78) + 1)] = _76
      _78 += 1
     else:
      for _80 in range(_16[(_9 + _79)],_16[((_9 + _79) + 1)]):
       _61[(_54 + _76)] = _17[(_13 + _80)]
       _62[(_56 + _76)] = _18[(_15 + _80)]
       if (_31 > 0):
        for _81 in range(_16[(_11 + _80)],_16[((_11 + _80) + 1)]):
         _60[(_57 + _77)] = _16[(_10 + _81)]
         _62[(_59 + _77)] = _18[(_12 + _81)]
         _77 += 1
        _60[((_58 + _76) + 1)] = _77
       _76 += 1
      _60[((_52 + _78) + 1)] = _76
      _79 += 1
      _78 += 1
    while (_78 < _51):
     _60[((_52 + _78) + 1)] = _76
     _78 += 1
   else:
    for _82 in range(0,_51):
     _83=_61[(_55 + _82)]
     for _84 in range(_16[(_9 + _83)],_16[((_9 + _83) + 1)]):
      _61[(_54 + _76)] = _17[(_13 + _84)]
      _62[(_56 + _76)] = _18[(_15 + _84)]
      if (_31 > 0):
       for _85 in range(_16[(_11 + _84)],_16[((_11 + _84) + 1)]):
        _60[(_57 + _77)] = _16[(_10 + _85)]
        _62[(_59 + _77)] = _18[(_12 + _85)]
        _77 += 1
       _60[((_58 + _76) + 1)] = _77
      _76 += 1
     _60[((_52 + _82) + 1)] = _76
   if (_76!=_29):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nnz")
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprDenseTril(symdim=(")._a_I(self.__dim0)._a_S(",")._a_I(self.__dim1)._a_S("),")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprDenseTril
mosek_fusion_ExprDenseTril=__mk_mosek_fusion_ExprDenseTril()
del __mk_mosek_fusion_ExprDenseTril
def __mk_mosek_fusion_ExprDense():
 class ExprDense(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprDense__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprDense.ctor(mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprDense._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprDense._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDense.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprDense._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprDense._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprDense.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprDense: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(expr):
    o = ExprDense.__new__(ExprDense)
    o._ctor_init_Lmosek_4fusion_4Expression_2(expr)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,expr):
    self._ctor_init_Lmosek_4fusion_4Expression_2(expr)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=(_1.nd)
   _4=(_1.nnz)
   _5=(_1.nelem)
   _6=(_1.ncodeatom)
   _7=(_1.hassp)
   _8=(_1.shape_base)
   _9=(_1.ptr_base)
   _10=(_1.nidxs_base)
   _11=(_1.cof_base)
   _12=(_1.sp_base)
   _13=(_1.codeptr_base)
   _14=(_1.code_base)
   _15=(_1.cconst_base)
   _16=(_1.i32)
   _17=(_1.i64)
   _18=(_1.f64)
   _19=1
   if _7:
    _20=True
    for _21 in range(0,_3):
     _22=(_19 * _16[(_8 + _21)])
     _20 = (_20 and ((_16[(_8 + _21)]==0) or ((_22 // _16[(_8 + _21)])==_19)))
     _19 = _22
    if (not _20):
     raise mosek_fusion_LengthError._ctor_S("The domain is too large")
   else:
    _19 = _5
   _0.alloc_expr(_3,_19,_4,False,_6)
   _23=(_0.shape_base)
   _24=(_0.ptr_base)
   _25=(_0.nidxs_base)
   _26=(_0.cof_base)
   _27=(_0.codeptr_base)
   _28=(_0.code_base)
   _29=(_0.cconst_base)
   _30=(_0.i32)
   _31=(_0.i64)
   _32=(_0.f64)
   for _33 in range(0,_3):
    _30[(_23 + _33)] = _16[(_8 + _33)]
   for _34 in range(0,_4):
    _31[(_25 + _34)] = _17[(_10 + _34)]
   for _35 in range(0,_4):
    _32[(_26 + _35)] = _18[(_11 + _35)]
   if (_6 > 0):
    for _36 in range(0,(_4 + 1)):
     _30[(_27 + _36)] = _16[(_13 + _36)]
    for _37 in range(0,_6):
     _30[(_28 + _37)] = _16[(_14 + _37)]
    for _38 in range(0,_6):
     _32[(_29 + _38)] = _18[(_15 + _38)]
   if (not _7):
    for _39 in range(0,(_19 + 1)):
     _30[(_24 + _39)] = _16[(_9 + _39)]
   else:
    for _40 in range(0,(_19 + 1)):
     _30[(_24 + _40)] = 0
    for _41 in range(0,_5):
     _30[((_24 + _17[(_12 + _41)]) + 1)] = (_16[((_9 + _41) + 1)] - _16[(_9 + _41)])
    for _42 in range(0,_19):
     _30[((_24 + _42) + 1)] += _30[(_24 + _42)]
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprDense(")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprDense
mosek_fusion_ExprDense=__mk_mosek_fusion_ExprDense()
del __mk_mosek_fusion_ExprDense
def __mk_mosek_fusion_ExprSymmetrize():
 class ExprSymmetrize(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprSymmetrize__dim1','_ExprSymmetrize__dim0','_ExprSymmetrize__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_IILmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_IILmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_IILmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_IILmosek_4fusion_4Expression_2(*args)
    elif self.__match_ctor_IILmosek_4fusion_4Expression_2I(*args): 
      self._ctor_init_IILmosek_4fusion_4Expression_2I(*args)
    elif self.__match_alt_ctor_IILmosek_4fusion_4Expression_2I(*args):
      self._ctor_alt_init_IILmosek_4fusion_4Expression_2I(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprSymmetrize.ctor(int32,int32,mosek.fusion.Expression)\n\tmosek.fusion.ExprSymmetrize.ctor(int32,int32,mosek.fusion.Expression,int32)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprSymmetrize._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprSymmetrize._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSymmetrize.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprSymmetrize._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprSymmetrize._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprSymmetrize.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprSymmetrize: '+self._toString_()
  @staticmethod
  def _ctor_IILmosek_4fusion_4Expression_2I(dim0,dim1,expr,unchecked_):
    o = ExprSymmetrize.__new__(ExprSymmetrize)
    o._ctor_init_IILmosek_4fusion_4Expression_2I(dim0,dim1,expr,unchecked_)
    return o
  @staticmethod
  def __match_ctor_IILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    dim0,dim1,expr,unchecked_, = args
    return (__arg_match_I__(dim0) and __arg_match_I__(dim1) and __arg_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_match_I__(unchecked_))
  @staticmethod
  def __match_alt_ctor_IILmosek_4fusion_4Expression_2I(*args):
    if len(args) != 4: return False
    dim0,dim1,expr,unchecked_, = args
    return (__arg_alt_match_I__(dim0) and __arg_alt_match_I__(dim1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr) and __arg_alt_match_I__(unchecked_))
  def _ctor_alt_init_IILmosek_4fusion_4Expression_2I(self,dim0,dim1,expr,unchecked_):
    self._ctor_init_IILmosek_4fusion_4Expression_2I(numpy.int32(dim0),numpy.int32(dim1),expr,numpy.int32(unchecked_))
  def _ctor_init_IILmosek_4fusion_4Expression_2I(self,dim0,dim1,expr,unchecked_):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
   if (dim0 < dim1):
    (self.__dim0) = dim0
    (self.__dim1) = dim1
   else:
    (self.__dim0) = dim1
    (self.__dim1) = dim0
  @staticmethod
  def _ctor_IILmosek_4fusion_4Expression_2(dim0_,dim1_,expr):
    o = ExprSymmetrize.__new__(ExprSymmetrize)
    o._ctor_init_IILmosek_4fusion_4Expression_2(dim0_,dim1_,expr)
    return o
  @staticmethod
  def __match_ctor_IILmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    dim0_,dim1_,expr, = args
    return (__arg_match_I__(dim0_) and __arg_match_I__(dim1_) and __arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_IILmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    dim0_,dim1_,expr, = args
    return (__arg_alt_match_I__(dim0_) and __arg_alt_match_I__(dim1_) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_IILmosek_4fusion_4Expression_2(self,dim0_,dim1_,expr):
    self._ctor_init_IILmosek_4fusion_4Expression_2(numpy.int32(dim0_),numpy.int32(dim1_),expr)
  def _ctor_init_IILmosek_4fusion_4Expression_2(self,dim0_,dim1_,expr):
   mosek_fusion_ExprSymmetrize._ctor_init_IILmosek_4fusion_4Expression_2I(self,dim0_,dim1_,expr,1)
   _0=expr.getShape()
   if ((self.__dim0 < 0) or ((self.__dim0==self.__dim1) or ((self.__dim1 >= int((_0).shape[0])) or (_0[self.__dim0]!=_0[self.__dim1])))):
    raise mosek_fusion_DimensionError._ctor_S("Invalid dimension definitions")
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_1,_0,_2)
   _1.pop_expr()
   _3=0
   _4=(_1.nd)
   _5=(_1.nnz)
   _6=(_1.nelem)
   _7=(_1.ncodeatom)
   _8=(_1.hassp)
   _9=(_1.shape_base)
   _10=(_1.ptr_base)
   _11=(_1.code_base)
   _12=(_1.codeptr_base)
   _13=(_1.cconst_base)
   _14=(_1.nidxs_base)
   _15=(_1.sp_base)
   _16=(_1.cof_base)
   _17=(_1.i32)
   _18=(_1.i64)
   _19=(_1.f64)
   for _20 in range(0,_4):
    _21=_17[(_9 + _20)]
    if (_21 > _3):
     _3 = _21
   _22=_2.alloci32(_6)
   _23=_2.alloci32(_6)
   _24=_2.alloci32((_3 + 1))
   _25=_2.alloci64(_6)
   _26=(_2.i32)
   _27=(_2.i64)
   _28=0
   _29=0
   _30=0
   _31=numpy.array([1 for _32 in range(0,5)], dtype=numpy.dtype(numpy.int32))
   _33=numpy.zeros((5,), dtype=numpy.dtype(numpy.int64))
   for _34 in range(0,self.__dim0):
    _31[0] *= _17[(_9 + _34)]
   _31[1] = _17[(_9 + self.__dim0)]
   for _35 in range((self.__dim0 + 1),self.__dim1):
    _31[2] *= _17[(_9 + _35)]
   _31[3] = _17[(_9 + self.__dim1)]
   for _36 in range((self.__dim1 + 1),_4):
    _31[4] *= _17[(_9 + _36)]
   _33[4] = 1
   for _37 in range(1,5):
    _33[((5 - _37) - 1)] = (_33[(5 - _37)] * _31[(5 - _37)])
   if _8:
    _38=_22
    for _39 in range(0,_6):
     _26[(_38 + _39)] = _39
    _40=_23
    _41=numpy.array([1,2,3,0], dtype=numpy.dtype(numpy.int32))
    for _42 in range(0,4):
     _43=_33[_41[_42]]
     _44=_31[_41[_42]]
     if (_44 > 1):
      for _45 in range(0,(_44 + 1)):
       _26[(_24 + _45)] = 0
      for _46 in range(0,_6):
       _26[((_24 + ((_18[(_15 + _26[(_38 + _46)])] // _43) % _44)) + 1)] += 1
      for _47 in range(0,_31[3]):
       _26[((_24 + _47) + 1)] += _26[(_24 + _47)]
      for _48 in range(0,_6):
       _49=_26[(_38 + _48)]
       _50=((_18[(_15 + _49)] // _43) % _44)
       _26[(_40 + _26[(_24 + _50)])] = _49
       _26[(_24 + _50)] += 1
      _51=_38
      _38 = _40
      _40 = _51
    for _52 in range(0,_6):
     _27[(_25 + _52)] = (((((((_18[(_15 + _52)] // _33[0]) % _31[0]) * _33[0]) + (((_18[(_15 + _52)] // _33[1]) % _31[1]) * _33[3])) + (((_18[(_15 + _52)] // _33[2]) % _31[2]) * _33[2])) + (((_18[(_15 + _52)] // _33[3]) % _31[3]) * _33[1])) + (((_18[(_15 + _52)] // _33[4]) % _31[4]) * _33[4]))
    _53=0
    _54=0
    while ((_54 < _6) or (_53 < _6)):
     _55=_26[(_38 + _53)]
     if ((_54 < _6) and ((_53==_6) or (_18[(_15 + _54)] < _27[(_25 + _55)]))):
      _29 += (_17[((_10 + _54) + 1)] - _17[(_10 + _54)])
      if (_7 > 0):
       _30 += ((_17[(_12 + _17[((_10 + _54) + 1)])] - _17[(_12 + _17[(_10 + _54)])]) + (2 * (_17[((_10 + _54) + 1)] - _17[(_10 + _54)])))
      _28 += 1
      _54 += 1
     elif ((_53 < _6) and ((_54==_6) or (_18[(_15 + _54)] > _27[(_25 + _55)]))): # bld/docker-win/final/default/src/fusion/ExprShape.monty:301:22-81
      _29 += (_17[((_10 + _55) + 1)] - _17[(_10 + _55)])
      if (_7 > 0):
       _30 += ((_17[(_12 + _17[((_10 + _55) + 1)])] - _17[(_12 + _17[(_10 + _55)])]) + (2 * (_17[((_10 + _55) + 1)] - _17[(_10 + _55)])))
      _28 += 1
      _53 += 1
     elif (_18[(_15 + _54)]!=_27[(_25 + _55)]): # bld/docker-win/final/default/src/fusion/ExprShape.monty:309:22-49
      _29 += (_17[((_10 + _54) + 1)] - _17[(_10 + _54)])
      _29 += (_17[((_10 + _55) + 1)] - _17[(_10 + _55)])
      if (_7 > 0):
       _30 += ((_17[(_12 + _17[((_10 + _54) + 1)])] - _17[(_12 + _17[(_10 + _54)])]) + (2 * (_17[((_10 + _54) + 1)] - _17[(_10 + _54)])))
       _30 += ((_17[(_12 + _17[((_10 + _55) + 1)])] - _17[(_12 + _17[(_10 + _55)])]) + (2 * (_17[((_10 + _55) + 1)] - _17[(_10 + _55)])))
      _28 += 1
      _53 += 1
      _54 += 1
     else:
      _29 += (_17[((_10 + _54) + 1)] - _17[(_10 + _54)])
      if (_7 > 0):
       _30 += (_17[(_12 + _17[((_10 + _54) + 1)])] - _17[(_12 + _17[(_10 + _54)])])
      _28 += 1
      _53 += 1
      _54 += 1
    _0.alloc_expr(_4,_28,_29,True,_30)
    _56=_4
    _57=(_0.ptr_base)
    _58=(_0.nidxs_base)
    _59=(_0.shape_base)
    _60=(_0.sp_base)
    _61=(_0.cof_base)
    _62=(_0.code_base)
    _63=(_0.codeptr_base)
    _64=(_0.cconst_base)
    _65=(_0.i32)
    _66=(_0.i64)
    _67=(_0.f64)
    for _68 in range(0,_4):
     _65[(_59 + _68)] = _17[(_9 + _68)]
    _65[_57] = 0
    if (_30 > 0):
     _65[_63] = 0
    _69=0
    _70=0
    _71=0
    _72=0
    _73=0
    _65[_57] = 0
    while ((_73 < _6) or (_72 < _6)):
     _74=_26[(_38 + _72)]
     if ((_73 < _6) and ((_72==_6) or (_18[(_15 + _73)] < _27[(_25 + _74)]))):
      if (_30==0):
       for _75 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _75)]
        _67[(_61 + _69)] = (_19[(_16 + _75)] * 0.5)
        _69 += 1
      else:
       for _76 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _76)]
        _67[(_61 + _69)] = (_19[(_16 + _76)] * 0.5)
        for _77 in range(_17[(_12 + _76)],_17[((_12 + _76) + 1)]):
         _65[(_62 + _70)] = _17[(_11 + _77)]
         _67[(_64 + _70)] = _19[(_13 + _77)]
         _70 += 1
        _65[(_62 + _70)] = 2
        _67[(_64 + _70)] = 0.5
        _70 += 1
        _65[(_62 + _70)] = 5
        _70 += 1
        _65[((_63 + _69) + 1)] = _70
        _69 += 1
      _66[(_60 + _71)] = _18[(_15 + _73)]
      _65[((_57 + _71) + 1)] = _69
      _71 += 1
      _73 += 1
     elif ((_72 < _6) and ((_73==_6) or (_18[(_15 + _73)] > _27[(_25 + _74)]))): # bld/docker-win/final/default/src/fusion/ExprShape.monty:401:22-81
      if (_30==0):
       for _78 in range(_17[(_10 + _74)],_17[((_10 + _74) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _78)]
        _67[(_61 + _69)] = (_19[(_16 + _78)] * 0.5)
        _69 += 1
      else:
       for _79 in range(_17[(_10 + _74)],_17[((_10 + _74) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _79)]
        _67[(_61 + _69)] = (_19[(_16 + _79)] * 0.5)
        for _80 in range(_17[(_12 + _79)],_17[((_12 + _79) + 1)]):
         _65[(_62 + _70)] = _17[(_11 + _80)]
         _67[(_64 + _70)] = _19[(_13 + _80)]
         _70 += 1
        _65[(_62 + _70)] = 2
        _67[(_64 + _70)] = 0.5
        _70 += 1
        _65[(_62 + _70)] = 5
        _70 += 1
        _65[((_63 + _69) + 1)] = _70
        _69 += 1
      _66[(_60 + _71)] = _18[(_25 + _74)]
      _65[((_57 + _71) + 1)] = _69
      _71 += 1
      _72 += 1
     elif (_18[(_15 + _73)]!=_27[(_25 + _74)]): # bld/docker-win/final/default/src/fusion/ExprShape.monty:437:22-49
      if (_30==0):
       for _81 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _81)]
        _67[(_61 + _69)] = (_19[(_16 + _81)] * 0.5)
        _69 += 1
       for _82 in range(_17[(_10 + _74)],_17[((_10 + _74) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _82)]
        _67[(_61 + _69)] = (_19[(_16 + _82)] * 0.5)
        _69 += 1
      else:
       for _83 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _83)]
        _67[(_61 + _69)] = (_19[(_16 + _83)] * 0.5)
        for _84 in range(_17[(_12 + _83)],_17[((_12 + _83) + 1)]):
         _65[(_62 + _70)] = _17[(_11 + _84)]
         _67[(_64 + _70)] = _19[(_13 + _84)]
         _70 += 1
        _65[(_62 + _70)] = 2
        _67[(_64 + _70)] = 0.5
        _70 += 1
        _65[(_62 + _70)] = 5
        _70 += 1
        _65[((_63 + _69) + 1)] = _70
        _69 += 1
       for _85 in range(_17[(_10 + _74)],_17[((_10 + _74) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _85)]
        _67[(_61 + _69)] = (_19[(_16 + _85)] * 0.5)
        for _86 in range(_17[(_12 + _85)],_17[((_12 + _85) + 1)]):
         _65[(_62 + _70)] = _17[(_11 + _86)]
         _67[(_64 + _70)] = _19[(_13 + _86)]
         _70 += 1
        _65[(_62 + _70)] = 2
        _67[(_64 + _70)] = 0.5
        _70 += 1
        _65[(_62 + _70)] = 5
        _70 += 1
        _65[((_63 + _69) + 1)] = _70
        _69 += 1
      _66[(_60 + _71)] = _18[(_15 + _73)]
      _65[((_57 + _71) + 1)] = _69
      _71 += 1
      _72 += 1
      _73 += 1
     else:
      if (_30==0):
       for _87 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _87)]
        _67[(_61 + _69)] = _19[(_16 + _87)]
        _69 += 1
      else:
       for _88 in range(_17[(_10 + _73)],_17[((_10 + _73) + 1)]):
        _66[(_58 + _69)] = _18[(_14 + _88)]
        _67[(_61 + _69)] = _19[(_16 + _88)]
        for _89 in range(_17[(_12 + _88)],_17[((_12 + _88) + 1)]):
         _65[(_62 + _70)] = _17[(_11 + _89)]
         _67[(_64 + _70)] = _19[(_13 + _89)]
         _70 += 1
        _65[((_63 + _69) + 1)] = _70
        _69 += 1
      _66[(_60 + _71)] = _18[(_15 + _73)]
      _65[((_57 + _71) + 1)] = _69
      _71 += 1
      _72 += 1
      _73 += 1
    if (_69!=_29):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nzi")
   else:
    _28 = _6
    _29 = (_5 * 2)
    _30 = (((2 * _7) + ((2 * 2) * _5)) if ((_7 > 0) ) else 0)
    for _90 in range(0,_31[0]):
     for _91 in range(0,_31[2]):
      for _92 in range(0,_31[4]):
       for _93 in range(0,_31[1]):
        _94=(((((_33[0] * _90) + (_33[1] * _93)) + (_33[2] * _91)) + (_33[3] * _93)) + (_33[4] * _92))
        _29 -= (_17[((_10 + _94) + 1)] - _17[(_10 + _94)])
        if (_7 > 0):
         _30 -= ((_17[(_12 + _17[((_10 + _94) + 1)])] - _17[(_12 + _17[(_10 + _94)])]) + ((2 * 2) * (_17[((_10 + _94) + 1)] - _17[(_10 + _94)])))
    _0.alloc_expr(_4,_28,_29,False,_30)
    _95=(_0.ptr_base)
    _96=(_0.shape_base)
    _97=(_0.code_base)
    _98=(_0.codeptr_base)
    _99=(_0.nidxs_base)
    _100=(_0.sp_base)
    _101=(_0.cof_base)
    _102=(_0.cconst_base)
    _103=(_0.i32)
    _104=(_0.i64)
    _105=(_0.f64)
    _106=0
    _107=0
    _108=0
    for _109 in range(0,_4):
     _103[(_96 + _109)] = _17[(_9 + _109)]
    _103[_95] = 0
    if (_30 > 0):
     _103[_98] = 0
    _110=0
    for _111 in range(0,_31[0]):
     for _112 in range(0,_31[1]):
      for _113 in range(0,_31[2]):
       for _114 in range(0,_31[3]):
        for _115 in range(0,_31[4]):
         if (_112==_114):
          if (_30==0):
           for _116 in range(_17[(_10 + _110)],_17[((_10 + _110) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _116)]
            _105[(_101 + _106)] = _19[(_16 + _116)]
            _106 += 1
          else:
           for _117 in range(_17[(_10 + _110)],_17[((_10 + _110) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _117)]
            _105[(_101 + _106)] = _19[(_16 + _117)]
            for _118 in range(_17[(_12 + _117)],_17[((_12 + _117) + 1)]):
             _103[(_97 + _108)] = _17[(_11 + _118)]
             _105[(_102 + _108)] = _19[(_13 + _118)]
             _108 += 1
            _103[((_98 + _106) + 1)] = _108
            _106 += 1
          _103[((_95 + _107) + 1)] = _106
          _110 += 1
         else:
          _119=(((((_111 * _33[0]) + (_114 * _33[1])) + (_113 * _33[2])) + (_112 * _33[3])) + _115)
          if (_30==0):
           for _120 in range(_17[(_10 + _110)],_17[((_10 + _110) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _120)]
            _105[(_101 + _106)] = (_19[(_16 + _120)] * 0.5)
            _106 += 1
           for _121 in range(_17[(_10 + _119)],_17[((_10 + _119) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _121)]
            _105[(_101 + _106)] = (_19[(_16 + _121)] * 0.5)
            _106 += 1
          else:
           for _122 in range(_17[(_10 + _110)],_17[((_10 + _110) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _122)]
            _105[(_101 + _106)] = (_19[(_16 + _122)] * 0.5)
            for _123 in range(_17[(_12 + _122)],_17[((_12 + _122) + 1)]):
             _103[(_97 + _108)] = _17[(_11 + _123)]
             _105[(_102 + _108)] = _19[(_13 + _123)]
             _108 += 1
            _103[(_97 + _108)] = 2
            _105[(_102 + _108)] = 0.5
            _108 += 1
            _103[(_97 + _108)] = 5
            _108 += 1
            _103[((_98 + _106) + 1)] = _108
            _106 += 1
           for _124 in range(_17[(_10 + _119)],_17[((_10 + _119) + 1)]):
            _104[(_99 + _106)] = _18[(_14 + _124)]
            _105[(_101 + _106)] = (_19[(_16 + _124)] * 0.5)
            for _125 in range(_17[(_12 + _124)],_17[((_12 + _124) + 1)]):
             _103[(_97 + _108)] = _17[(_11 + _125)]
             _105[(_102 + _108)] = _19[(_13 + _125)]
             _108 += 1
            _103[(_97 + _108)] = 2
            _105[(_102 + _108)] = 0.5
            _108 += 1
            _103[(_97 + _108)] = 5
            _108 += 1
            _103[((_98 + _106) + 1)] = _108
            _106 += 1
          _103[((_95 + _107) + 1)] = _106
          _110 += 1
         _107 += 1
    if (_106!=_29):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nnz")
    if (_107!=_28):
     raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid nelem")
   _2.clear()
   _0.peek_expr()
   if ((_0.nnz)!=(_0.i32)[((_0.ptr_base) + (_0.nelem))]):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid ptr")
   if ((_0.i32)[(_0.ptr_base)]!=0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: Invalid ptr")
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprSymmetrize(symdim=(")._a_I(self.__dim0)._a_S(",")._a_I(self.__dim1)._a_S("),")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprSymmetrize
mosek_fusion_ExprSymmetrize=__mk_mosek_fusion_ExprSymmetrize()
del __mk_mosek_fusion_ExprSymmetrize
def __mk_mosek_fusion_ExprCondense():
 class ExprCondense(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprCondense__expr']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Expression_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprCondense.ctor(mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprCondense._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprCondense._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCondense.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprCondense._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprCondense._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprCondense.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprCondense: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(expr):
    o = ExprCondense.__new__(ExprCondense)
    o._ctor_init_Lmosek_4fusion_4Expression_2(expr)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(expr))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    expr, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(expr))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,expr):
    self._ctor_init_Lmosek_4fusion_4Expression_2(expr)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,expr):
   mosek_fusion_BaseExpression._ctor_init__3I(self,expr.getShape())
   (self.__expr) = expr
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   self.__expr.eval(_0,_1,_2)
   _0.peek_expr()
   if (_0.hassp):
    _3=_0.popi32()
    _0.popi32(_3)
    _4=_0.popi32()
    _5=_0.popi32()
    _0.popi32()
    _0.popi64(_4)
    _0.pushi32(0)
    _0.pushi32(_5)
    _0.pushi32(_4)
    _0.pushi32(_4)
    _0.pushi32(1)
    _0.peek_expr()
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("ExprCondense(")._a_S(self.__expr.toString())._a_S(")")._toString_())
 return ExprCondense
mosek_fusion_ExprCondense=__mk_mosek_fusion_ExprCondense()
del __mk_mosek_fusion_ExprCondense
def __mk_mosek_fusion_ExprFromVar():
 class ExprFromVar(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprFromVar__x']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_Lmosek_4fusion_4Variable_2(*args): 
      self._ctor_init_Lmosek_4fusion_4Variable_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4Variable_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4Variable_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprFromVar.ctor(mosek.fusion.Variable)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprFromVar._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprFromVar._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprFromVar.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprFromVar._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprFromVar._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprFromVar.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprFromVar: '+self._toString_()
  @staticmethod
  def _ctor_Lmosek_4fusion_4Variable_2(x):
    o = ExprFromVar.__new__(ExprFromVar)
    o._ctor_init_Lmosek_4fusion_4Variable_2(x)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    x, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(x))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    x, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(x))
  def _ctor_alt_init_Lmosek_4fusion_4Variable_2(self,x):
    self._ctor_init_Lmosek_4fusion_4Variable_2(x)
  def _ctor_init_Lmosek_4fusion_4Variable_2(self,x):
   mosek_fusion_BaseExpression._ctor_init__3I(self,x.getShape())
   (self.__x) = x
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=self.getShape()
   _4=mosek.fusion.Set._size__3I(_3)
   _5=self.__x.numInst()
   _6=_5
   _7=(_4 > _5)
   _0.alloc_expr(int((_3).shape[0]),_5,_6,_7)
   _8=(_0.ptr_base)
   _9=(_0.nidxs_base)
   _10=(_0.sp_base)
   _11=(_0.cof_base)
   _12=(_0.shape_base)
   _13=(_0.i32)
   _14=(_0.i64)
   _15=(_0.f64)
   for _16 in range(0,int((_3).shape[0])):
    _13[(_12 + _16)] = _3[_16]
   for _17 in range(0,(_5 + 1)):
    _13[(_8 + _17)] = _17
   for _18 in range(0,_6):
    _15[(_11 + _18)] = 1.0
   if _7:
    self.__x.inst(_10,_14,_9,_14)
   else:
    self.__x.inst(_9,_14)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return (mosek.fusion.Utils.StringBuffer()._a_S("Expr(")._a_S(self.__x.toString())._a_S(")")._toString_())
 return ExprFromVar
mosek_fusion_ExprFromVar=__mk_mosek_fusion_ExprFromVar()
del __mk_mosek_fusion_ExprFromVar
def __mk_mosek_fusion_ExprReshape():
 class ExprReshape(mosek_fusion_BaseExpression):
  __slots__ = ['_ExprReshape__e']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3ILmosek_4fusion_4Expression_2(*args): 
      self._ctor_init__3ILmosek_4fusion_4Expression_2(*args)
    elif self.__match_alt_ctor__3ILmosek_4fusion_4Expression_2(*args):
      self._ctor_alt_init__3ILmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.ExprReshape.ctor(array(int32,ndim=1),mosek.fusion.Expression)')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_ExprReshape._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_ExprReshape._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprReshape.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_ExprReshape._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_ExprReshape._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.ExprReshape.toString()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.ExprReshape: '+self._toString_()
  @staticmethod
  def _ctor__3ILmosek_4fusion_4Expression_2(shape,e):
    o = ExprReshape.__new__(ExprReshape)
    o._ctor_init__3ILmosek_4fusion_4Expression_2(shape,e)
    return o
  @staticmethod
  def __match_ctor__3ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    shape,e, = args
    return (__arg_match__3I__(shape) and __arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor__3ILmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    shape,e, = args
    return (__arg_alt_match__3I__(shape) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init__3ILmosek_4fusion_4Expression_2(self,shape,e):
    self._ctor_init__3ILmosek_4fusion_4Expression_2(numpy.array(shape,dtype=numpy.dtype(numpy.int32)),e)
  def _ctor_init__3ILmosek_4fusion_4Expression_2(self,shape,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,mosek.fusion.Utils.Tools._arraycopy__3I(shape))
   _0=e.getSize()
   if (mosek.fusion.Set._size__3I(shape)!=e.getSize()):
    raise mosek_fusion_LengthError._ctor_S("Cannot reshape to mismatching shape")
   (self.__e) = e
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=self.getShape()
   self.__e.eval(_0,_1,_2)
   _0.peek_expr()
   _4=_0.popi32()
   _5=1
   for _6 in range(0,_4):
    _5 *= _0.popi32()
   if (_5!=self.getSize()):
    raise mosek_fusion_DimensionError._ctor_S("The two shapes have different sizes")
   for _7 in range(0,int((_3).shape[0])):
    _0.pushi32(_3[_7])
   _0.pushi32(int((_3).shape[0]))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()._a_S("ExprReshape((")
   if (self.getND() > 0):
    _0._a_I(self.getDim(0))
    for _1 in range(1,self.getND()):
     _0._a_S(",")._a_I(self.getDim(_1))
   _0._a_S("),")._a_S(self.__e.toString())._a_S(")")
   return (_0._toString_())
 return ExprReshape
mosek_fusion_ExprReshape=__mk_mosek_fusion_ExprReshape()
del __mk_mosek_fusion_ExprReshape
def __mk_mosek_fusion_Expr():
 class Expr(mosek_fusion_BaseExpression):
  __slots__ = ['_Expr__inst','_Expr__cof_v','_Expr__subj','_Expr__ptrb','_Expr__bfix','_Expr__shape']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor__3J_3J_3D_3D_3I_3J(*args): 
      self._ctor_init__3J_3J_3D_3D_3I_3J(*args)
    elif self.__match_alt_ctor__3J_3J_3D_3D_3I_3J(*args):
      self._ctor_alt_init__3J_3J_3D_3D_3I_3J(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.Expr.ctor(array(int64,ndim=1),array(int64,ndim=1),array(double,ndim=1),array(double,ndim=1),array(int32,ndim=1),array(int64,ndim=1))')
  @staticmethod
  def mul(*args):
    if False: pass
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Variable_2_3_5D(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Variable_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Variable_2_3_5D(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Variable_2_3_5D(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_mul__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mul__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mul_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_alt_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mul__3_5DLmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mul__3_5DLmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_mul__3_5DLmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mul_alt__3_5DLmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_mul__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mul__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mul_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_mul_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_mul_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._mul_alt_Lmosek_4fusion_4Expression_2D(*args)
    else:
      raise ValueError('Invalid argument list mul('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.mul(mosek.fusion.Variable,array(double,ndim=2))\n\tmosek.fusion.Expr.mul(mosek.fusion.Matrix,mosek.fusion.Variable)\n\tmosek.fusion.Expr.mul(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.mul(double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mul(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.Expr.mul(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mul(mosek.fusion.Parameter,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mul(array(double,ndim=2),mosek.fusion.Variable)\n\tmosek.fusion.Expr.mul(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.mul(mosek.fusion.Variable,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.mul(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.mul(mosek.fusion.Expression,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.mul(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.mul(mosek.fusion.Expression,double)')
  @staticmethod
  def add(*args):
    if False: pass
    elif mosek_fusion_Expr._match_add__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._add__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_add__3Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._add_alt__3Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    else:
      raise ValueError('Invalid argument list add('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.add(array(mosek.fusion.Expression,ndim=1))\n\tmosek.fusion.Expr.add(array(mosek.fusion.Variable,ndim=1))\n\tmosek.fusion.Expr.add(mosek.fusion.NDSparseArray,mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.add(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.add(mosek.fusion.Expression,mosek.fusion.NDSparseArray)')
  @staticmethod
  def constTerm(*args):
    if False: pass
    elif mosek_fusion_Expr._match_constTerm__3D(*args): 
      return mosek_fusion_Expr._constTerm__3D(*args)
    elif mosek_fusion_Expr._match_alt_constTerm__3D(*args): 
      return mosek_fusion_Expr._constTerm_alt__3D(*args)
    elif mosek_fusion_Expr._match_constTerm_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._constTerm_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_constTerm_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._constTerm_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_constTerm_D(*args): 
      return mosek_fusion_Expr._constTerm_D(*args)
    elif mosek_fusion_Expr._match_alt_constTerm_D(*args): 
      return mosek_fusion_Expr._constTerm_alt_D(*args)
    elif mosek_fusion_Expr._match_constTerm_Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_alt_constTerm_Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._constTerm_alt_Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_constTerm__3_5D(*args): 
      return mosek_fusion_Expr._constTerm__3_5D(*args)
    elif mosek_fusion_Expr._match_alt_constTerm__3_5D(*args): 
      return mosek_fusion_Expr._constTerm_alt__3_5D(*args)
    elif mosek_fusion_Expr._match_constTerm_ID(*args): 
      return mosek_fusion_Expr._constTerm_ID(*args)
    elif mosek_fusion_Expr._match_alt_constTerm_ID(*args): 
      return mosek_fusion_Expr._constTerm_alt_ID(*args)
    elif mosek_fusion_Expr._match_constTerm__3ID(*args): 
      return mosek_fusion_Expr._constTerm__3ID(*args)
    elif mosek_fusion_Expr._match_alt_constTerm__3ID(*args): 
      return mosek_fusion_Expr._constTerm_alt__3ID(*args)
    elif mosek_fusion_Expr._match_constTerm__3I_3_5ID(*args): 
      return mosek_fusion_Expr._constTerm__3I_3_5ID(*args)
    elif mosek_fusion_Expr._match_alt_constTerm__3I_3_5ID(*args): 
      return mosek_fusion_Expr._constTerm_alt__3I_3_5ID(*args)
    elif mosek_fusion_Expr._match_constTerm__3I_3_5I_3D(*args): 
      return mosek_fusion_Expr._constTerm__3I_3_5I_3D(*args)
    elif mosek_fusion_Expr._match_alt_constTerm__3I_3_5I_3D(*args): 
      return mosek_fusion_Expr._constTerm_alt__3I_3_5I_3D(*args)
    else:
      raise ValueError('Invalid argument list constTerm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.constTerm(array(double,ndim=1))\n\tmosek.fusion.Expr.constTerm(mosek.fusion.Matrix)\n\tmosek.fusion.Expr.constTerm(double)\n\tmosek.fusion.Expr.constTerm(mosek.fusion.NDSparseArray)\n\tmosek.fusion.Expr.constTerm(array(double,ndim=2))\n\tmosek.fusion.Expr.constTerm(int32,double)\n\tmosek.fusion.Expr.constTerm(array(int32,ndim=1),double)\n\tmosek.fusion.Expr.constTerm(array(int32,ndim=1),array(int32,ndim=2),double)\n\tmosek.fusion.Expr.constTerm(array(int32,ndim=1),array(int32,ndim=2),array(double,ndim=1))')
  @staticmethod
  def neg(*args):
    if False: pass
    elif mosek_fusion_Expr._match_neg_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._neg_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_neg_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._neg_alt_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list neg('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.neg(mosek.fusion.Expression)')
  @staticmethod
  def ones(*args):
    if False: pass
    elif mosek_fusion_Expr._match_ones_(*args): 
      return mosek_fusion_Expr._ones_(*args)
    elif mosek_fusion_Expr._match_alt_ones_(*args): 
      return mosek_fusion_Expr._ones_alt_(*args)
    elif mosek_fusion_Expr._match_ones__3I(*args): 
      return mosek_fusion_Expr._ones__3I(*args)
    elif mosek_fusion_Expr._match_alt_ones__3I(*args): 
      return mosek_fusion_Expr._ones_alt__3I(*args)
    elif mosek_fusion_Expr._match_ones_I(*args): 
      return mosek_fusion_Expr._ones_I(*args)
    elif mosek_fusion_Expr._match_alt_ones_I(*args): 
      return mosek_fusion_Expr._ones_alt_I(*args)
    elif mosek_fusion_Expr._match_ones__3I_3_5I(*args): 
      return mosek_fusion_Expr._ones__3I_3_5I(*args)
    elif mosek_fusion_Expr._match_alt_ones__3I_3_5I(*args): 
      return mosek_fusion_Expr._ones_alt__3I_3_5I(*args)
    else:
      raise ValueError('Invalid argument list ones('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.ones()\n\tmosek.fusion.Expr.ones(array(int32,ndim=1))\n\tmosek.fusion.Expr.ones(int32)\n\tmosek.fusion.Expr.ones(array(int32,ndim=1),array(int32,ndim=2))')
  def eval(self,*args):
    if False: pass
    elif mosek_fusion_Expr._match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_Expr._match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args): 
      return self._eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list eval('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.eval(mosek.fusion.WorkStack,mosek.fusion.WorkStack,mosek.fusion.WorkStack)')
  @staticmethod
  def reshape(*args):
    if False: pass
    elif mosek_fusion_Expr._match_reshape_Lmosek_4fusion_4Expression_2_3I(*args): 
      return mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2_3I(*args)
    elif mosek_fusion_Expr._match_alt_reshape_Lmosek_4fusion_4Expression_2_3I(*args): 
      return mosek_fusion_Expr._reshape_alt_Lmosek_4fusion_4Expression_2_3I(*args)
    elif mosek_fusion_Expr._match_reshape_Lmosek_4fusion_4Expression_2I(*args): 
      return mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2I(*args)
    elif mosek_fusion_Expr._match_alt_reshape_Lmosek_4fusion_4Expression_2I(*args): 
      return mosek_fusion_Expr._reshape_alt_Lmosek_4fusion_4Expression_2I(*args)
    elif mosek_fusion_Expr._match_reshape_Lmosek_4fusion_4Expression_2II(*args): 
      return mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2II(*args)
    elif mosek_fusion_Expr._match_alt_reshape_Lmosek_4fusion_4Expression_2II(*args): 
      return mosek_fusion_Expr._reshape_alt_Lmosek_4fusion_4Expression_2II(*args)
    else:
      raise ValueError('Invalid argument list reshape('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.reshape(mosek.fusion.Expression,array(int32,ndim=1))\n\tmosek.fusion.Expr.reshape(mosek.fusion.Expression,int32)\n\tmosek.fusion.Expr.reshape(mosek.fusion.Expression,int32,int32)')
  @staticmethod
  def mulDiag(*args):
    if False: pass
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Variable_2_3_5D(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Variable_2_3_5D(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Variable_2_3_5D(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulDiag__3_5DLmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag__3_5DLmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag__3_5DLmosek_4fusion_4Variable_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt__3_5DLmosek_4fusion_4Variable_2(*args)
    elif mosek_fusion_Expr._match_mulDiag__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulDiag_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    else:
      raise ValueError('Invalid argument list mulDiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Variable,array(double,ndim=2))\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Parameter,mosek.fusion.Variable)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Matrix,mosek.fusion.Variable)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Parameter,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulDiag(array(double,ndim=2),mosek.fusion.Variable)\n\tmosek.fusion.Expr.mulDiag(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Variable,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Variable,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Expression,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.mulDiag(mosek.fusion.Expression,mosek.fusion.Matrix)')
  @staticmethod
  def zeros(*args):
    if False: pass
    elif mosek_fusion_Expr._match_zeros_I(*args): 
      return mosek_fusion_Expr._zeros_I(*args)
    elif mosek_fusion_Expr._match_alt_zeros_I(*args): 
      return mosek_fusion_Expr._zeros_alt_I(*args)
    elif mosek_fusion_Expr._match_zeros__3I(*args): 
      return mosek_fusion_Expr._zeros__3I(*args)
    elif mosek_fusion_Expr._match_alt_zeros__3I(*args): 
      return mosek_fusion_Expr._zeros_alt__3I(*args)
    else:
      raise ValueError('Invalid argument list zeros('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.zeros(int32)\n\tmosek.fusion.Expr.zeros(array(int32,ndim=1))')
  @staticmethod
  def outer(*args):
    if False: pass
    elif mosek_fusion_Expr._match_outer__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_outer__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._outer_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._outer_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._outer_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_outer_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_outer_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._outer_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    else:
      raise ValueError('Invalid argument list outer('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.outer(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.outer(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.outer(mosek.fusion.Expression,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.outer(mosek.fusion.Parameter,mosek.fusion.Expression)\n\tmosek.fusion.Expr.outer(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.outer(mosek.fusion.Expression,array(double,ndim=1))')
  @staticmethod
  def dot(*args):
    if False: pass
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_dot__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_dot__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_dot__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_dot__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._dot_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    else:
      raise ValueError('Invalid argument list dot('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.dot(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.Expr.dot(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.dot(mosek.fusion.NDSparseArray,mosek.fusion.Expression)\n\tmosek.fusion.Expr.dot(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.dot(mosek.fusion.Expression,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.dot(mosek.fusion.Parameter,mosek.fusion.Expression)\n\tmosek.fusion.Expr.dot(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.dot(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.dot(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.dot(mosek.fusion.Expression,mosek.fusion.NDSparseArray)')
  @staticmethod
  def vstack(*args):
    if False: pass
    elif mosek_fusion_Expr._match_vstack__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_vstack_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_DLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_vstack_DLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_alt_DLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_vstack_DDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_DDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_DDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_DDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_vstack_DDD(*args): 
      return mosek_fusion_Expr._vstack_DDD(*args)
    elif mosek_fusion_Expr._match_alt_vstack_DDD(*args): 
      return mosek_fusion_Expr._vstack_alt_DDD(*args)
    elif mosek_fusion_Expr._match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list vstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.vstack(array(mosek.fusion.Expression,ndim=1))\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.vstack(double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.vstack(double,mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.vstack(double,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,double,double)\n\tmosek.fusion.Expr.vstack(double,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.vstack(double,double,double)\n\tmosek.fusion.Expr.vstack(mosek.fusion.Expression,mosek.fusion.Expression,mosek.fusion.Expression)')
  @staticmethod
  def condense(*args):
    if False: pass
    elif mosek_fusion_Expr._match_condense_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._condense_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_condense_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._condense_alt_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list condense('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.condense(mosek.fusion.Expression)')
  @staticmethod
  def sub(*args):
    if False: pass
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_sub__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sub__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sub_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    else:
      raise ValueError('Invalid argument list sub('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.Expr.sub(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(mosek.fusion.NDSparseArray,mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.sub(mosek.fusion.Expression,mosek.fusion.NDSparseArray)')
  @staticmethod
  def sum(*args):
    if False: pass
    elif mosek_fusion_Expr._match_sum_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sum_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_sum_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._sum_alt_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_sum_Lmosek_4fusion_4Expression_2I(*args): 
      return mosek_fusion_Expr._sum_Lmosek_4fusion_4Expression_2I(*args)
    elif mosek_fusion_Expr._match_alt_sum_Lmosek_4fusion_4Expression_2I(*args): 
      return mosek_fusion_Expr._sum_alt_Lmosek_4fusion_4Expression_2I(*args)
    else:
      raise ValueError('Invalid argument list sum('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.sum(mosek.fusion.Expression)\n\tmosek.fusion.Expr.sum(mosek.fusion.Expression,int32)')
  @staticmethod
  def transpose(*args):
    if False: pass
    elif mosek_fusion_Expr._match_transpose_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._transpose_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_transpose_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._transpose_alt_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.transpose(mosek.fusion.Expression)')
  @staticmethod
  def flatten(*args):
    if False: pass
    elif mosek_fusion_Expr._match_flatten_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._flatten_Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_flatten_Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._flatten_alt_Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list flatten('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.flatten(mosek.fusion.Expression)')
  @staticmethod
  def stack(*args):
    if False: pass
    elif mosek_fusion_Expr._match_stack__3_3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack__3_3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack__3_3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt__3_3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_I_3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_I_3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_I_3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_I_3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_IDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_IDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_IDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_stack_IDLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_stack_IDLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._stack_alt_IDLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_stack_IDDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_IDDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_IDDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_IDDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._stack_alt_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list stack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.stack(array(array(mosek.fusion.Expression,ndim=1),ndim=1))\n\tmosek.fusion.Expr.stack(int32,array(mosek.fusion.Expression,ndim=1))\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.stack(int32,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.stack(int32,double,mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,double,double)\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.stack(int32,double,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.stack(int32,double,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.stack(int32,mosek.fusion.Expression,double,mosek.fusion.Expression)')
  @staticmethod
  def mulElm(*args):
    if False: pass
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Expression_2_3D(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Expression_2_3D(*args)
    elif mosek_fusion_Expr._match_mulElm__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm__3DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_alt__3DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulElm__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm__3_5DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._mulElm_alt__3_5DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Expression_2_3_5D(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Expression_2_3_5D(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Expr._match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    elif mosek_fusion_Expr._match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args): 
      return mosek_fusion_Expr._mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args)
    else:
      raise ValueError('Invalid argument list mulElm('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Expression,array(double,ndim=1))\n\tmosek.fusion.Expr.mulElm(array(double,ndim=1),mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.NDSparseArray,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Matrix,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Expression,mosek.fusion.Parameter)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Parameter,mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulElm(array(double,ndim=2),mosek.fusion.Expression)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Expression,array(double,ndim=2))\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Expression,mosek.fusion.Matrix)\n\tmosek.fusion.Expr.mulElm(mosek.fusion.Expression,mosek.fusion.NDSparseArray)')
  @staticmethod
  def repeat(*args):
    if False: pass
    elif mosek_fusion_Expr._match_repeat_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Expr._repeat_Lmosek_4fusion_4Variable_2II(*args)
    elif mosek_fusion_Expr._match_alt_repeat_Lmosek_4fusion_4Variable_2II(*args): 
      return mosek_fusion_Expr._repeat_alt_Lmosek_4fusion_4Variable_2II(*args)
    elif mosek_fusion_Expr._match_repeat_Lmosek_4fusion_4Expression_2II(*args): 
      return mosek_fusion_Expr._repeat_Lmosek_4fusion_4Expression_2II(*args)
    elif mosek_fusion_Expr._match_alt_repeat_Lmosek_4fusion_4Expression_2II(*args): 
      return mosek_fusion_Expr._repeat_alt_Lmosek_4fusion_4Expression_2II(*args)
    else:
      raise ValueError('Invalid argument list repeat('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.repeat(mosek.fusion.Variable,int32,int32)\n\tmosek.fusion.Expr.repeat(mosek.fusion.Expression,int32,int32)')
  @staticmethod
  def hstack(*args):
    if False: pass
    elif mosek_fusion_Expr._match_hstack__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack__3Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt__3Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_hstack_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_DLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_hstack_DLmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_alt_DLmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2DD(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2DD(*args)
    elif mosek_fusion_Expr._match_hstack_DDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_DDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_DDLmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_DDLmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    elif mosek_fusion_Expr._match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args): 
      return mosek_fusion_Expr._hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args)
    else:
      raise ValueError('Invalid argument list hstack('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Expr.hstack(array(mosek.fusion.Expression,ndim=1))\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.hstack(double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.hstack(double,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,mosek.fusion.Expression,double)\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,double,double)\n\tmosek.fusion.Expr.hstack(double,double,mosek.fusion.Expression)\n\tmosek.fusion.Expr.hstack(double,mosek.fusion.Expression,mosek.fusion.Expression)\n\tmosek.fusion.Expr.hstack(mosek.fusion.Expression,mosek.fusion.Expression,mosek.fusion.Expression)')
  def __repr__(self): return 'mosek.fusion.Expr'
  @staticmethod
  def _ctor__3J_3J_3D_3D_3I_3J(ptrb,subj,cof,bfix,shape,inst):
    o = Expr.__new__(Expr)
    o._ctor_init__3J_3J_3D_3D_3I_3J(ptrb,subj,cof,bfix,shape,inst)
    return o
  @staticmethod
  def __match_ctor__3J_3J_3D_3D_3I_3J(*args):
    if len(args) != 6: return False
    ptrb,subj,cof,bfix,shape,inst, = args
    return (__arg_match__3J__(ptrb) and __arg_match__3J__(subj) and __arg_match__3D__(cof) and __arg_match__3D__(bfix) and __arg_match__3I__(shape) and __arg_match__3J__(inst))
  @staticmethod
  def __match_alt_ctor__3J_3J_3D_3D_3I_3J(*args):
    if len(args) != 6: return False
    ptrb,subj,cof,bfix,shape,inst, = args
    return (__arg_alt_match__3J__(ptrb) and __arg_alt_match__3J__(subj) and __arg_alt_match__3D__(cof) and __arg_alt_match__3D__(bfix) and __arg_alt_match__3I__(shape) and __arg_alt_match__3J__(inst))
  def _ctor_alt_init__3J_3J_3D_3D_3I_3J(self,ptrb,subj,cof,bfix,shape,inst):
    self._ctor_init__3J_3J_3D_3D_3I_3J(numpy.array(ptrb,dtype=numpy.dtype(numpy.int64)),numpy.array(subj,dtype=numpy.dtype(numpy.int64)),numpy.array(cof,dtype=numpy.dtype(numpy.float64)),numpy.array(bfix,dtype=numpy.dtype(numpy.float64)),numpy.array(shape,dtype=numpy.dtype(numpy.int32)),numpy.array(inst,dtype=numpy.dtype(numpy.int64)))
  def _ctor_init__3J_3J_3D_3D_3I_3J(self,ptrb,subj,cof,bfix,shape,inst):
   mosek_fusion_Expr._ctor_init__3J_3J_3D_3D_3I_3JI(self,mosek.fusion.Utils.Tools._arraycopy__3J(ptrb),mosek.fusion.Utils.Tools._arraycopy__3J(subj),mosek.fusion.Utils.Tools._arraycopy__3D(cof),mosek.fusion.Utils.Tools._arraycopy__3D(bfix),(mosek.fusion.Utils.Tools._arraycopy__3I(shape) if ((shape is not None) ) else numpy.array([(int((ptrb).shape[0]) - 1)], dtype=numpy.dtype(numpy.int32))),(mosek.fusion.Utils.Tools._arraycopy__3J(inst) if ((inst is not None) ) else None),1)
   _0=(int((ptrb).shape[0]) - 1)
   if (_0 < 0):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid ptrb")
   _1=ptrb[_0]
   if ((_1 < 0) or ((_1!=int((cof).shape[0])) or (_1!=int((subj).shape[0])))):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid ptrb construction")
   _2=True
   _3=True
   _4=True
   _5=(self.__shape)
   _6=mosek.fusion.Set._size__3I(_5)
   for _7 in range(0,int((_5).shape[0])):
    _3 = (_3 and (_5[_7] >= 0))
   for _8 in range(0,_0):
    _2 = (_2 and (ptrb[_8] <= ptrb[(_8 + 1)]))
   if ((inst is not None) and (int((inst).shape[0]) > 0)):
    _4 = ((inst[0] >= 0) and (inst[(_0 - 1)] < _6))
    for _9 in range(0,(_0 - 1)):
     _4 = (_4 and (inst[_9] < inst[(_9 + 1)]))
   if (not _3):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid shape")
   if (not _2):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid ptrb")
   if (not _4):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid sparsity pattern")
  @staticmethod
  def _ctor__3J_3J_3D_3D_3I_3JI(ptrb,subj,cof,bfix,shp,inst,unchecked_):
    o = Expr.__new__(Expr)
    o._ctor_init__3J_3J_3D_3D_3I_3JI(ptrb,subj,cof,bfix,shp,inst,unchecked_)
    return o
  @staticmethod
  def __match_ctor__3J_3J_3D_3D_3I_3JI(*args):
    if len(args) != 7: return False
    ptrb,subj,cof,bfix,shp,inst,unchecked_, = args
    return (__arg_match__3J__(ptrb) and __arg_match__3J__(subj) and __arg_match__3D__(cof) and __arg_match__3D__(bfix) and __arg_match__3I__(shp) and __arg_match__3J__(inst) and __arg_match_I__(unchecked_))
  @staticmethod
  def __match_alt_ctor__3J_3J_3D_3D_3I_3JI(*args):
    if len(args) != 7: return False
    ptrb,subj,cof,bfix,shp,inst,unchecked_, = args
    return (__arg_alt_match__3J__(ptrb) and __arg_alt_match__3J__(subj) and __arg_alt_match__3D__(cof) and __arg_alt_match__3D__(bfix) and __arg_alt_match__3I__(shp) and __arg_alt_match__3J__(inst) and __arg_alt_match_I__(unchecked_))
  def _ctor_alt_init__3J_3J_3D_3D_3I_3JI(self,ptrb,subj,cof,bfix,shp,inst,unchecked_):
    self._ctor_init__3J_3J_3D_3D_3I_3JI(numpy.array(ptrb,dtype=numpy.dtype(numpy.int64)),numpy.array(subj,dtype=numpy.dtype(numpy.int64)),numpy.array(cof,dtype=numpy.dtype(numpy.float64)),numpy.array(bfix,dtype=numpy.dtype(numpy.float64)),numpy.array(shp,dtype=numpy.dtype(numpy.int32)),numpy.array(inst,dtype=numpy.dtype(numpy.int64)),numpy.int32(unchecked_))
  def _ctor_init__3J_3J_3D_3D_3I_3JI(self,ptrb,subj,cof,bfix,shp,inst,unchecked_):
   mosek_fusion_BaseExpression._ctor_init__3I(self,shp)
   (self.__shape) = shp
   (self.__ptrb) = ptrb
   (self.__subj) = subj
   (self.__cof_v) = cof
   (self.__bfix) = bfix
   (self.__inst) = inst
   if ((self.__shape) is None):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: NULL shape")
  @staticmethod
  def _ctor_Lmosek_4fusion_4Expression_2(e):
    o = Expr.__new__(Expr)
    o._ctor_init_Lmosek_4fusion_4Expression_2(e)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    e, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(e))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    e, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(e))
  def _ctor_alt_init_Lmosek_4fusion_4Expression_2(self,e):
    self._ctor_init_Lmosek_4fusion_4Expression_2(e)
  def _ctor_init_Lmosek_4fusion_4Expression_2(self,e):
   mosek_fusion_BaseExpression._ctor_init__3I(self,e.getShape())
   _1=e
   if   isinstance(_1,mosek_fusion_Expr):
    ee=_1
    self.__shape = (ee.__shape)
    self.__ptrb = (ee.__ptrb)
    self.__subj = (ee.__subj)
    self.__cof_v = (ee.__cof_v)
    self.__bfix = (ee.__bfix)
    self.__inst = (ee.__inst)
   else:
    ee=_1
    _1=mosek_fusion_WorkStack._ctor_()
    _2=mosek_fusion_WorkStack._ctor_()
    _3=mosek_fusion_WorkStack._ctor_()
    ee.eval(_3,_2,_1)
    _4=_3.popi32()
    _5=_3.popi32(_4)
    _6=_3.popi32()
    _7=_3.popi32()
    _8=(_3.popi32()!=0)
    _9=_3.popi32((_6 + 1))
    _10=(_3.popi64(_6) if (_8 ) else 0)
    _11=_3.popi64(_7)
    _12=_3.popf64(_6)
    _13=_3.popf64(_7)
    _14=(_3.i32)
    _15=(_3.i64)
    _16=(_3.f64)
    self.__shape = numpy.array([_14[(_5 + _17)] for _17 in range(0,_4)], dtype=numpy.dtype(numpy.int32))
    self.__ptrb = numpy.array([_14[(_9 + _18)] for _18 in range(0,(_6 + 1))], dtype=numpy.dtype(numpy.int64))
    self.__subj = numpy.array([_15[(_11 + _19)] for _19 in range(0,_7)], dtype=numpy.dtype(numpy.int64))
    self.__cof_v = numpy.array([_16[(_13 + _20)] for _20 in range(0,_7)], dtype=numpy.dtype(numpy.float64))
    self.__bfix = numpy.array([_16[(_12 + _21)] for _21 in range(0,_7)], dtype=numpy.dtype(numpy.float64))
    self.__inst = (numpy.array([_15[(_10 + _22)] for _22 in range(0,_7)], dtype=numpy.dtype(numpy.int64)) if (_8 ) else None)
   if (self.__shape is None):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: NULL shape")
  def __prod_alt__3I(self,_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = self.__prod__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def __prod__3I(self,_0):
   _1=1
   for _2 in range(0,int((_0).shape[0])):
    _1 *= _0[_2]
   return numpy.int32(_1)
  @staticmethod
  def __varstack_alt__3_3Lmosek_4fusion_4Variable_2(_t__0):
   _0=_monty.makeJaggedArray(_t__0,(1,1),numpy.dtype(object))
   _1_res = mosek_fusion_Expr.__varstack__3_3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __varstack__3_3Lmosek_4fusion_4Variable_2(_0):
   return (numpy.array([_0[_1][_2] for _1 in range(0,int((_0).shape[0])) for _2 in range(0,int((_0[_1]).shape[0]))], dtype=numpy.dtype(object)))
  @staticmethod
  def __varstack_alt__3Lmosek_4fusion_4Variable_2_3Lmosek_4fusion_4Variable_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr.__varstack__3Lmosek_4fusion_4Variable_2_3Lmosek_4fusion_4Variable_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __varstack__3Lmosek_4fusion_4Variable_2_3Lmosek_4fusion_4Variable_2(_0,_1):
   if (_0 is None):
    return (_1)
   elif (_1 is None): # bld/docker-win/final/default/src/fusion/Expr.mbi:1770:16-26
    return (_0)
   else:
    _2=numpy.ndarray(((int((_0).shape[0]) + int((_1).shape[0])),), dtype=numpy.dtype(object))
    for _3 in range(0,int((_0).shape[0])):
     _2[_3] = _0[_3]
    for _4 in range(0,int((_1).shape[0])):
     _2[(_4 + int((_0).shape[0]))] = _1[_4]
    return (_2)
  @staticmethod
  def _match_condense_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_condense_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _condense_alt_Lmosek_4fusion_4Expression_2(_t__0):
    return mosek_fusion_Expr._condense_Lmosek_4fusion_4Expression_2(_0)
  @staticmethod
  def _condense_Lmosek_4fusion_4Expression_2(_0):
   return (mosek_fusion_ExprCondense._ctor_Lmosek_4fusion_4Expression_2(_0))
  @staticmethod
  def _match_flatten_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_flatten_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _flatten_alt_Lmosek_4fusion_4Expression_2(_t__0):
    return mosek_fusion_Expr._flatten_Lmosek_4fusion_4Expression_2(_0)
  @staticmethod
  def _flatten_Lmosek_4fusion_4Expression_2(_0):
   if (_0 is None):
    raise ValueError("Arguments for flatten may not be null")
   _1=_0.getSize()
   if (not (_1 <= 2147483647)):
    raise mosek_fusion_LengthError._ctor_S("Maximum dimension size exceeded")
   return (mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2I(_0,numpy.int32(_1)))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Expression_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _reshape_Lmosek_4fusion_4Expression_2II(_0,_1,_2):
   if (_0 is None):
    raise ValueError("Arguments for reshape may not be null")
   return (mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2_3I(_0,mosek.fusion.Set._make_II(_1,_2)))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Expression_2I(_t__0,_t__1):
    return mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2I(_0,numpy.int32(__1))
  @staticmethod
  def _reshape_Lmosek_4fusion_4Expression_2I(_0,_1):
   if (_0 is None):
    raise ValueError("Arguments for reshape may not be null")
   return (mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2_3I(_0,mosek.fusion.Set._make_I(_1)))
  @staticmethod
  def _match_reshape_Lmosek_4fusion_4Expression_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3I__(_1))
  @staticmethod
  def _match_alt_reshape_Lmosek_4fusion_4Expression_2_3I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3I__(_1))
  @staticmethod
  def _reshape_alt_Lmosek_4fusion_4Expression_2_3I(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Expr._reshape_Lmosek_4fusion_4Expression_2_3I(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _reshape_Lmosek_4fusion_4Expression_2_3I(_0,_1):
   return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_zeros__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_zeros__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _zeros_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Expr._zeros__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _zeros__3I(_0):
   return (mosek.fusion.Expr._constTerm__3ID(_0,0))
  @staticmethod
  def _match_zeros_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_zeros_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _zeros_alt_I(_t__0):
    return mosek_fusion_Expr._zeros_I(numpy.int32(__0))
  @staticmethod
  def _zeros_I(_0):
   return (mosek.fusion.Expr._constTerm_ID(_0,0))
  @staticmethod
  def _match_ones_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_ones_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _ones_alt_():
    return mosek_fusion_Expr._ones_()
  @staticmethod
  def _ones_():
   return (mosek.fusion.Expr._constTerm_D(1))
  @staticmethod
  def _match_ones__3I_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match__3_5I__(_1))
  @staticmethod
  def _match_alt_ones__3I_3_5I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3_5I__(_1))
  @staticmethod
  def _ones_alt__3I_3_5I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Expr._ones__3I_3_5I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _ones__3I_3_5I(_0,_1):
   return (mosek.fusion.Expr._constTerm__3I_3_5ID(_0,_1,1))
  @staticmethod
  def _match_ones__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3I__(_0))
  @staticmethod
  def _match_alt_ones__3I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3I__(_0))
  @staticmethod
  def _ones_alt__3I(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1_res = mosek_fusion_Expr._ones__3I(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _ones__3I(_0):
   return (mosek.fusion.Expr._constTerm__3ID(_0,1))
  @staticmethod
  def _match_ones_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_ones_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _ones_alt_I(_t__0):
    return mosek_fusion_Expr._ones_I(numpy.int32(__0))
  @staticmethod
  def _ones_I(_0):
   return (mosek.fusion.Expr._constTerm_ID(_0,1))
  @staticmethod
  def _match_constTerm_Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4NDSparseArray_2__(_0))
  @staticmethod
  def _match_alt_constTerm_Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_0))
  @staticmethod
  def _constTerm_alt_Lmosek_4fusion_4NDSparseArray_2(_t__0):
    return mosek_fusion_Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(_0)
  @staticmethod
  def _constTerm_Lmosek_4fusion_4NDSparseArray_2(_0):
   return (mosek_fusion_ExprConst._ctor__3I_3J_3D((_0._dims),(_0._inst),(_0._cof)))
  @staticmethod
  def _match_constTerm_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_constTerm_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _constTerm_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Expr._constTerm_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _constTerm_Lmosek_4fusion_4Matrix_2(_0):
   _1=_0.numRows()
   _2=_0.numColumns()
   _3=mosek.fusion.Set._make_II(_1,_2)
   if _0.isSparse():
    _4=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
    _5=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
    _0.getDataAsTriplets(_6,_5,_4)
    _7=numpy.array([((_6[_8] * _2) + _5[_8]) for _8 in range(0,int((_5).shape[0]))], dtype=numpy.dtype(numpy.int64))
    return (mosek_fusion_ExprConst._ctor__3I_3J_3D(_3,_7,_4))
   else:
    return (mosek_fusion_ExprConst._ctor__3I_3J_3D(_3,None,_0.getDataAsArray()))
  @staticmethod
  def _match_constTerm_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_constTerm_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  @staticmethod
  def _constTerm_alt_D(_t__0):
    return mosek_fusion_Expr._constTerm_D(numpy.float64(__0))
  @staticmethod
  def _constTerm_D(_0):
   return (mosek_fusion_ExprConst._ctor__3I_3JD(numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),None,_0))
  @staticmethod
  def _match_constTerm__3I_3_5ID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3_5I__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_constTerm__3I_3_5ID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3_5I__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _constTerm_alt__3I_3_5ID(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _2=numpy.float64(_t__2)
   _1_res = mosek_fusion_Expr._constTerm__3I_3_5ID(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _constTerm__3I_3_5ID(_0,_1,_2):
   _3=int((_1).shape[0])
   _4=int((_0).shape[0])
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
   _6[(_4 - 1)] = 1
   for _7 in range(1,_4):
    _6[((_4 - _7) - 1)] = (_6[(_4 - _7)] * _0[(_4 - _7)])
   for _8 in range(0,_3):
    for _9 in range(0,_4):
     _5[_8] += (_6[_9] * _1[_8,_9])
   return (mosek_fusion_ExprConst._ctor__3I_3JD(_0,_5,_2))
  @staticmethod
  def _match_constTerm__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3_5I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_constTerm__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3_5I__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _constTerm_alt__3I_3_5I_3D(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._constTerm__3I_3_5I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _constTerm__3I_3_5I_3D(_0,_1,_2):
   _3=int((_1).shape[0])
   _4=int((_0).shape[0])
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int64))
   _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int64))
   _6[(_4 - 1)] = 1
   for _7 in range(1,_4):
    _6[((_4 - _7) - 1)] = (_6[(_4 - _7)] * _0[(_4 - _7)])
   for _8 in range(0,_3):
    for _9 in range(0,_4):
     _5[_8] += (_6[_9] * _1[_8,_9])
   return (mosek_fusion_ExprConst._ctor__3I_3J_3D(_0,_5,_2))
  @staticmethod
  def _match_constTerm__3ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3I__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_constTerm__3ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _constTerm_alt__3ID(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.float64(_t__1)
   _1_res = mosek_fusion_Expr._constTerm__3ID(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _constTerm__3ID(_0,_1):
   return (mosek_fusion_ExprConst._ctor__3I_3JD(_0,None,_1))
  @staticmethod
  def _match_constTerm_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_constTerm_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _constTerm_alt_ID(_t__0,_t__1):
    return mosek_fusion_Expr._constTerm_ID(numpy.int32(__0),numpy.float64(__1))
  @staticmethod
  def _constTerm_ID(_0,_1):
   return (mosek_fusion_ExprConst._ctor__3I_3J_3D(numpy.array([_0], dtype=numpy.dtype(numpy.int32)),None,numpy.array([_1 for _2 in range(0,_0)], dtype=numpy.dtype(numpy.float64))))
  @staticmethod
  def _match_constTerm__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_constTerm__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _constTerm_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._constTerm__3_5D(_0)
   return _1_res
  @staticmethod
  def _constTerm__3_5D(_0):
   return (mosek_fusion_ExprConst._ctor__3I_3J_3D(numpy.array([int((_0).shape[0]),int((_0).shape[1])], dtype=numpy.dtype(numpy.int32)),None,numpy.array([_0[_1,_2] for _1 in range(0,int((_0).shape[0])) for _2 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64))))
  @staticmethod
  def _match_constTerm__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_constTerm__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _constTerm_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._constTerm__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _constTerm__3D(_0):
   return (mosek_fusion_ExprConst._ctor__3I_3J_3D(numpy.array([int((_0).shape[0])], dtype=numpy.dtype(numpy.int32)),None,_0))
  @staticmethod
  def _match_sum_Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_sum_Lmosek_4fusion_4Expression_2I(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _sum_alt_Lmosek_4fusion_4Expression_2I(_t__0,_t__1):
    return mosek_fusion_Expr._sum_Lmosek_4fusion_4Expression_2I(_0,numpy.int32(__1))
  @staticmethod
  def _sum_Lmosek_4fusion_4Expression_2I(_0,_1):
   return (mosek_fusion_ExprSumReduce._ctor_ILmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_sum_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_sum_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _sum_alt_Lmosek_4fusion_4Expression_2(_t__0):
    return mosek_fusion_Expr._sum_Lmosek_4fusion_4Expression_2(_0)
  @staticmethod
  def _sum_Lmosek_4fusion_4Expression_2(_0):
   return (mosek_fusion_ExprSumReduce._ctor_ILmosek_4fusion_4Expression_2(0,mosek.fusion.Expr._flatten_Lmosek_4fusion_4Expression_2(_0)))
  @staticmethod
  def _match_neg_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_neg_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _neg_alt_Lmosek_4fusion_4Expression_2(_t__0):
    return mosek_fusion_Expr._neg_Lmosek_4fusion_4Expression_2(_0)
  @staticmethod
  def _neg_Lmosek_4fusion_4Expression_2(_0):
   return (mosek_fusion_ExprMulScalarConst._ctor_DLmosek_4fusion_4Expression_2((- 1),_0))
  @staticmethod
  def __mulDiag_alt_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr.__mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1,_2)
  @staticmethod
  def __mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   _3=_1.numNonzeros()
   _4=_1.numRows()
   _5=_1.numColumns()
   _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
   _7=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _8=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _1.getDataAsTriplets(_8,_7,_6)
   if _0:
    return (mosek_fusion_ExprMulDiagLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_4,_5,_8,_7,_6,_2))
   else:
    return (mosek_fusion_ExprMulDiagRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_4,_5,_8,_7,_6,_2))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek_fusion_ExprMulParamDiagRight._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0.asExpr(),_1))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Variable_2(_0,_1):
   return (mosek_fusion_ExprMulParamDiagLeft._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1.asExpr()))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek_fusion_ExprMulParamDiagRight._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek_fusion_ExprMulParamDiagLeft._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(False,_1,_0.asExpr()))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_0,_1):
   return (mosek.fusion.Expr.__mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(True,_0,_1.asExpr()))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(False,_1,_0))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mulDiag_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(True,_0,_1))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Variable_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Variable_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Variable_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Variable_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Variable_2_3_5D(_0,_1):
   return (mosek_fusion_ExprMulDiagRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(int((_1).shape[0]),int((_1).shape[1]),numpy.array([_2 for _2 in range(0,int((_1).shape[0])) for _3 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_5 for _4 in range(0,int((_1).shape[0])) for _5 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_1[_6,_7] for _6 in range(0,int((_1).shape[0])) for _7 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.float64)),_0.asExpr()))
  @staticmethod
  def _match_mulDiag_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_mulDiag_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _mulDiag_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mulDiag_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _mulDiag_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek_fusion_ExprMulDiagRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(int((_1).shape[0]),int((_1).shape[1]),numpy.array([_2 for _2 in range(0,int((_1).shape[0])) for _3 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_5 for _4 in range(0,int((_1).shape[0])) for _5 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_1[_6,_7] for _6 in range(0,int((_1).shape[0])) for _7 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.float64)),_0))
  @staticmethod
  def _match_mulDiag__3_5DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_mulDiag__3_5DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _mulDiag_alt__3_5DLmosek_4fusion_4Variable_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mulDiag__3_5DLmosek_4fusion_4Variable_2(_0,_1)
   return _1_res
  @staticmethod
  def _mulDiag__3_5DLmosek_4fusion_4Variable_2(_0,_1):
   return (mosek_fusion_ExprMulDiagLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(int((_0).shape[0]),int((_0).shape[1]),numpy.array([_2 for _2 in range(0,int((_0).shape[0])) for _3 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_5 for _4 in range(0,int((_0).shape[0])) for _5 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_0[_6,_7] for _6 in range(0,int((_0).shape[0])) for _7 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64)),_1.asExpr()))
  @staticmethod
  def _match_mulDiag__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulDiag__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulDiag_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mulDiag__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _mulDiag__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek_fusion_ExprMulDiagLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(int((_0).shape[0]),int((_0).shape[1]),numpy.array([_2 for _2 in range(0,int((_0).shape[0])) for _3 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_5 for _4 in range(0,int((_0).shape[0])) for _5 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.int32)),numpy.array([_0[_6,_7] for _6 in range(0,int((_0).shape[0])) for _7 in range(0,int((_0).shape[1]))], dtype=numpy.dtype(numpy.float64)),_1))
  @staticmethod
  def __mulElm_1_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr.__mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def __mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   _2=_1.getShape()
   _3=_1
   if (int((_2).shape[0])==1):
    _2 = numpy.array([_2[0],1], dtype=numpy.dtype(numpy.int32))
    _3 = mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_2,_1)
   if ((int((_2).shape[0])!=2) or ((_0.numRows()!=_2[0]) or (_0.numColumns()!=_2[1]))):
    raise mosek_fusion_DimensionError._ctor_S("Dimensions of operands do not match")
   _4=_0.numColumns()
   _5=_0.numNonzeros()
   _6=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _8=numpy.zeros((_5,), dtype=numpy.dtype(numpy.float64))
   _0.getDataAsTriplets(_6,_7,_8)
   return (mosek_fusion_ExprMulElement._ctor__3D_3JLmosek_4fusion_4Expression_2I(_8,numpy.array([((_6[_9] * _4) + _7[_9]) for _9 in range(0,_5)], dtype=numpy.dtype(numpy.int64)),_3,1))
  @staticmethod
  def __mulElm_1_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr.__mulElm_1__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __mulElm_1__3DLmosek_4fusion_4Expression_2(_0,_1):
   if ((_0 is None) or (_1 is None)):
    raise ValueError("Arguments for mulElm may not be null")
   if ((_1.getND()==0) and (int((_0).shape[0])==1)):
    return (mosek_fusion_ExprMulScalarConst._ctor_DLmosek_4fusion_4Expression_2(_0[0],_1))
   elif ((_1.getND()!=1) or (_1.getDim(0)!=int((_0).shape[0]))): # bld/docker-win/final/default/src/fusion/Expr.mbi:1556:16-1557:40
    raise mosek_fusion_DimensionError._ctor_S("Dimensions of operands do not match")
   else:
    return (mosek_fusion_ExprMulElement._ctor__3D_3JLmosek_4fusion_4Expression_2(_0,numpy.array([_2 for _2 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.int64)),_1))
  @staticmethod
  def __mulElm_1_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr.__mulElm_1_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def __mulElm_1_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1):
   if ((_0 is None) or (_1 is None)):
    raise ValueError("Arguments for mulElm may not be null")
   _2=_1.getShape()
   if (int((_2).shape[0])!=int(((_0._dims)).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Dimension mismatch")
   for _3 in range(0,int(((_0._dims)).shape[0])):
    if ((_0._dims)[_3]!=_2[_3]):
     raise mosek_fusion_DimensionError._ctor_S("Dimensions of operands do not match")
   return (mosek_fusion_ExprMulElement._ctor__3D_3JLmosek_4fusion_4Expression_2((_0._cof),(_0._inst),_1))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Expression_2D(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2D(_0,numpy.float64(__1))
  @staticmethod
  def _mul_Lmosek_4fusion_4Expression_2D(_0,_1):
   return (mosek_fusion_ExprMulScalarConst._ctor_DLmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_mul_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mul_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mul_alt_DLmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_DLmosek_4fusion_4Expression_2(numpy.float64(__0),_1)
  @staticmethod
  def _mul_DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek_fusion_ExprMulScalarConst._ctor_DLmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _mul_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   return (mosek.fusion.Expr.__mul_Z_3DLmosek_4fusion_4Expression_2(False,_1,_0))
  @staticmethod
  def _match_mul__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mul__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mul_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mul__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _mul__3DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mul_Z_3DLmosek_4fusion_4Expression_2(True,_0,_1))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _mul_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek.fusion.Expr.__mul_Z_3_5DLmosek_4fusion_4Expression_2(False,_1,_0))
  @staticmethod
  def _match_mul__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mul__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mul_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mul__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _mul__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mul_Z_3_5DLmosek_4fusion_4Expression_2(True,_0,_1))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__mul_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(False,_1,_0))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mul_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(True,_0,_1))
  @staticmethod
  def __mul_alt_Z_3DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = mosek_fusion_Expr.__mul_Z_3DLmosek_4fusion_4Expression_2(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __mul_Z_3DLmosek_4fusion_4Expression_2(_0,_1,_2):
   _3=int((_1).shape[0])
   _4=_3
   _5=mosek.fusion.Utils.Tools._arraycopy__3D(_1)
   _6=_2.getND()
   if (_6==0):
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_3], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprScalarMul._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(_3,1,numpy.array([_7 for _7 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),numpy.array([0 for _8 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),_5,_2,1)))
   elif (_6!=2): # bld/docker-win/final/default/src/fusion/Expr.mbi:1515:16-23
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions")
   elif (_0 and (_2.getDim(0)==int((_1).shape[0]))): # bld/docker-win/final/default/src/fusion/Expr.mbi:1517:21-52
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_2.getDim(1)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(1,_3,numpy.array([0 for _9 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),numpy.array([_10 for _10 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),_5,_2)))
   elif (_0 and (_2.getDim(0)==1)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1519:17-42
    return (mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(_3,1,numpy.array([_11 for _11 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),numpy.array([0 for _12 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),_5,_2,1))
   elif ((not _0) and (_2.getDim(1)==_3)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1521:17-50
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_2.getDim(0)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_3,1,numpy.array([_13 for _13 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),numpy.array([0 for _14 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),_5,_2)))
   elif ((not _0) and (_2.getDim(1)==1)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1523:17-46
    return (mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(1,_3,numpy.array([0 for _15 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),numpy.array([_16 for _16 in range(0,_3)], dtype=numpy.dtype(numpy.int32)),_5,_2,1))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
  @staticmethod
  def __mul_alt_Z_3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _2=_t__2
   _1_res = mosek_fusion_Expr.__mul_Z_3_5DLmosek_4fusion_4Expression_2(_0,_1,_2)
   return _1_res
  @staticmethod
  def __mul_Z_3_5DLmosek_4fusion_4Expression_2(_0,_1,_2):
   _3=int((_1).shape[0])
   _4=int((_1).shape[1])
   _5=(_3 * _4)
   _6=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _8=numpy.zeros((_5,), dtype=numpy.dtype(numpy.float64))
   _9=0
   for _10 in range(0,_3):
    for _11 in range(0,_4):
     _6[_9] = _10
     _7[_9] = _11
     _8[_9] = _1[_10,_11]
     _9 += 1
   _12=_2.getSize()
   _13=_2.getShape()
   if (int((_13).shape[0])==0):
    return (mosek_fusion_ExprScalarMul._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2I(_3,_4,_6,_7,_8,_2,1))
   elif _0: # bld/docker-win/final/default/src/fusion/Expr.mbi:1489:16-20
    if (int((_13).shape[0])==1):
     return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([int((_1).shape[0])], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_3,_4,_6,_7,_8,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_13[0],1], dtype=numpy.dtype(numpy.int32)),_2))))
    elif (int((_13).shape[0])==2): # bld/docker-win/final/default/src/fusion/Expr.mbi:1492:18-34
     return (mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_3,_4,_6,_7,_8,_2))
    else:
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
   else:
    if (int((_13).shape[0])==1):
     return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([int((_1).shape[1])], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_3,_4,_6,_7,_8,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([1,_13[0]], dtype=numpy.dtype(numpy.int32)),_2))))
    elif (int((_13).shape[0])==2): # bld/docker-win/final/default/src/fusion/Expr.mbi:1500:18-34
     return (mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_3,_4,_6,_7,_8,_2))
    else:
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
  @staticmethod
  def __mul_alt_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr.__mul_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1,_2)
  @staticmethod
  def __mul_ZLmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   _3=_1.numNonzeros()
   _4=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
   _7=_1.numRows()
   _8=_1.numColumns()
   _1.getDataAsTriplets(_4,_5,_6)
   _9=_2.getND()
   if (_9==0):
    return (mosek_fusion_ExprScalarMul._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_7,_8,_4,_5,_6,_2))
   elif (_9==1): # bld/docker-win/final/default/src/fusion/Expr.mbi:1443:16-23
    _10=_2.getShape()
    if _0:
     return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_7], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_7,_8,_4,_5,_6,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_10[0],1], dtype=numpy.dtype(numpy.int32)),_2))))
    else:
     return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_8], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_7,_8,_4,_5,_6,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([1,_10[0]], dtype=numpy.dtype(numpy.int32)),_2))))
   elif (_9==2): # bld/docker-win/final/default/src/fusion/Expr.mbi:1450:16-23
    if _0:
     return (mosek_fusion_ExprMulLeft._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_7,_8,_4,_5,_6,_2))
    else:
     return (mosek_fusion_ExprMulRight._ctor_II_3I_3I_3DLmosek_4fusion_4Expression_2(_7,_8,_4,_5,_6,_2))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions for multiplication")
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Variable_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Variable_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Variable_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mul_Lmosek_4fusion_4Variable_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _mul_Lmosek_4fusion_4Variable_2_3_5D(_0,_1):
   _2=int((_1).shape[0])
   _3=int((_1).shape[1])
   _4=(_2 * _3)
   _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   _8=0
   for _9 in range(0,_2):
    for _10 in range(0,_3):
     _5[_8] = _9
     _6[_8] = _10
     _7[_8] = _1[_9,_10]
     _8 += 1
   return (mosek.fusion.Expr.__mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(False,_2,_3,_5,_6,_7,_0))
  @staticmethod
  def _match_mul__3_5DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_mul__3_5DLmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _mul_alt__3_5DLmosek_4fusion_4Variable_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mul__3_5DLmosek_4fusion_4Variable_2(_0,_1)
   return _1_res
  @staticmethod
  def _mul__3_5DLmosek_4fusion_4Variable_2(_0,_1):
   _2=int((_0).shape[0])
   _3=int((_0).shape[1])
   _4=(_2 * _3)
   _5=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   _8=0
   for _9 in range(0,_2):
    for _10 in range(0,_3):
     _5[_8] = _9
     _6[_8] = _10
     _7[_8] = _0[_9,_10]
     _8 += 1
   return (mosek.fusion.Expr.__mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(True,_2,_3,_5,_6,_7,_1))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Variable_2Lmosek_4fusion_4Matrix_2(_0,_1):
   _2=_1.numRows()
   _3=_1.numColumns()
   _4=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
   _5=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_1.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _1.getDataAsTriplets(_6,_5,_4)
   return (mosek.fusion.Expr.__mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(False,_2,_3,_6,_5,_4,_0))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Variable_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Variable_2(_0,_1):
   _2=_0.numRows()
   _3=_0.numColumns()
   _4=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
   _5=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _0.getDataAsTriplets(_6,_5,_4)
   return (mosek.fusion.Expr.__mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(True,_2,_3,_6,_5,_4,_1))
  @staticmethod
  def __mul_alt_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6):
   _0=_t__0
   _1=numpy.int32(_t__1)
   _2=numpy.int32(_t__2)
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.float64))
   _6=_t__6
   _1_res = mosek_fusion_Expr.__mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(_0,_1,_2,_3,_4,_5,_6)
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __mul_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(_0,_1,_2,_3,_4,_5,_6):
   if (_6.getND()==0):
    return (mosek_fusion_ExprMulScalarVar._ctor_II_3I_3I_3DLmosek_4fusion_4Variable_2(_1,_2,_3,_4,_5,_6))
   elif (_6.getND()==1): # bld/docker-win/final/default/src/fusion/Expr.mbi:1344:16-30
    _7=_6.getShape()
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([(_1 if (_0 ) else _2)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulVar._ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(_0,_1,_2,_3,_4,_5,mosek.fusion.Var._reshape_Lmosek_4fusion_4Variable_2_3I(_6,(numpy.array([_7[0],1], dtype=numpy.dtype(numpy.int32)) if (_0 ) else numpy.array([1,_7[0]], dtype=numpy.dtype(numpy.int32)))))))
   else:
    return (mosek_fusion_ExprMulVar._ctor_ZII_3I_3I_3DLmosek_4fusion_4Variable_2(_0,_1,_2,_3,_4,_5,_6))
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1):
   if ((_1.getND()==2) and (_0.getND()==2)):
    return (mosek_fusion_ExprMulParamRight._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1))
   elif ((_1.getND()==1) and (_0.getND()==2)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1329:16-52
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_0.getDim(0)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulParamRight._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1.reshape(numpy.array([_1.getDim(0),1], dtype=numpy.dtype(numpy.int32))))))
   elif ((_1.getND()==2) and (_0.getND()==1)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1331:16-52
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_1.getDim(1)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulParamRight._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([1,_0.getDim(0)], dtype=numpy.dtype(numpy.int32)),_0),_1)))
   elif (_1.getND()==0): # bld/docker-win/final/default/src/fusion/Expr.mbi:1333:16-30
    return (mosek_fusion_ExprMulParamScalar._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_1,_0))
   elif (_0.getND()==0): # bld/docker-win/final/default/src/fusion/Expr.mbi:1335:16-33
    return (mosek_fusion_ExprMulParamScalarExpr._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_1,_0))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mul_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1):
   if ((_0.getND()==2) and (_1.getND()==2)):
    return (mosek_fusion_ExprMulParamLeft._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
   elif ((_0.getND()==1) and (_1.getND()==2)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1315:16-52
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_1.getDim(1)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulParamLeft._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0.reshape(numpy.array([1,_0.getDim(0)], dtype=numpy.dtype(numpy.int32))),_1)))
   elif ((_0.getND()==2) and (_1.getND()==1)): # bld/docker-win/final/default/src/fusion/Expr.mbi:1317:16-52
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_0.getDim(0)], dtype=numpy.dtype(numpy.int32)),mosek_fusion_ExprMulParamLeft._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([_1.getDim(0),1], dtype=numpy.dtype(numpy.int32)),_1))))
   elif (_0.getND()==0): # bld/docker-win/final/default/src/fusion/Expr.mbi:1319:16-30
    return (mosek_fusion_ExprMulParamScalar._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
   elif (_1.getND()==0): # bld/docker-win/final/default/src/fusion/Expr.mbi:1321:16-33
    return (mosek_fusion_ExprMulParamScalarExpr._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Invalid operand dimensions for multiplication")
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   _2=_1.numNonzeros()
   if (not _1.isSparse()):
    return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3J_3D(_0,numpy.array([_3 for _3 in range(0,_2)], dtype=numpy.dtype(numpy.int64)),_1.getDataAsArray()))
   else:
    _4=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _5=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _6=numpy.zeros((_2,), dtype=numpy.dtype(numpy.float64))
    _7=_1.numColumns()
    _1.getDataAsTriplets(_4,_5,_6)
    return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3J_3D(_0,numpy.array([((_4[_8] * _7) + _5[_8]) for _8 in range(0,int((_4).shape[0]))], dtype=numpy.dtype(numpy.int64)),_6))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _dot_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3J_3D(_0,numpy.array([_2 for _2 in range(0,(int((_1).shape[0]) * int((_1).shape[1])))], dtype=numpy.dtype(numpy.int64)),numpy.array([_1[_3,_4] for _3 in range(0,int((_1).shape[0])) for _4 in range(0,int((_1).shape[1]))], dtype=numpy.dtype(numpy.float64))))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1):
   return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3J_3D(_0,(_1._inst),(_1._cof)))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dot_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   _2=_0.getShape()
   if ((_0.getSize()==int((_1).shape[0])) and (int((_2).shape[0]) > 1)):
    _3=0
    for _4 in range(0,int((_2).shape[0])):
     if (_2[_4] > 1):
      _3 += 1
    if (_3 > 1):
     raise mosek_fusion_DimensionError._ctor_S("Mismatching operand shapes")
    else:
     _5=numpy.array([numpy.int32(_0.getSize())], dtype=numpy.dtype(numpy.int32))
     return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3D(mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_5,_0),_1))
   else:
    return (mosek_fusion_ExprInner._ctor_Lmosek_4fusion_4Expression_2_3D(_0,_1))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_1,_0))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_1,_0))
  @staticmethod
  def _match_dot__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_dot__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _dot_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._dot__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _dot__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr._dot_Lmosek_4fusion_4Expression_2_3_5D(_1,_0))
  @staticmethod
  def _match_dot__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_dot__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _dot_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._dot__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dot__3DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr._dot_Lmosek_4fusion_4Expression_2_3D(_1,_0))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek_fusion_ExprDotParam._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _dot_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _dot_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek_fusion_ExprDotParam._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _outer_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _outer_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1):
   _2=_1.getShape()
   if (not ((int((_2).shape[0])==1) or ((int((_2).shape[0])==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   _3=_0.getShape()
   if (not ((_0.getND()==1) or ((_0.getND()==2) and (_3[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Parameter argument must be one-dimensional")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0.reshape(numpy.array([_3[0],1], dtype=numpy.dtype(numpy.int32))),mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_1,1,_2[0])))
  @staticmethod
  def _match_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _outer_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1):
   _2=_0.getShape()
   if (not ((_0.getND()==1) or ((_0.getND()==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   _3=_1.getShape()
   if (not ((_1.getND()==1) or ((_1.getND()==2) and (_3[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Parameter argument must be one-dimensional")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_0,_2[0],1),_1.reshape(numpy.array([1,_3[0]], dtype=numpy.dtype(numpy.int32)))))
  @staticmethod
  def _match_outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _outer_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _outer_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   _2=_1.getShape()
   if (not ((int((_2).shape[0])==1) or ((int((_2).shape[0])==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   if ((_0._dimj)!=1):
    raise mosek_fusion_DimensionError._ctor_S("Constant matrix must be a column-vector")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_1,1,_2[0])))
  @staticmethod
  def _match_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _outer_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _outer_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   _2=_0.getShape()
   if (not ((_0.getND()==1) or ((_0.getND()==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   if ((_1._dimj)!=1):
    raise mosek_fusion_DimensionError._ctor_S("Constant matrix must be a column-vector")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_0,_2[0],1),_1.transpose()))
  @staticmethod
  def _match_outer__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_outer__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _outer_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._outer__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _outer__3DLmosek_4fusion_4Expression_2(_0,_1):
   _2=_1.getShape()
   if (not ((_1.getND()==1) or ((_1.getND()==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(mosek.fusion.Matrix._dense_II_3D(int((_0).shape[0]),1,_0),mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_1,1,_2[0])))
  @staticmethod
  def _match_outer_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_outer_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _outer_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._outer_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _outer_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   _2=_0.getShape()
   if (not ((_0.getND()==1) or ((_0.getND()==2) and (_2[1]==1)))):
    raise mosek_fusion_DimensionError._ctor_S("Expression argument must be one-dimensional")
   return (mosek.fusion.Expr._mul_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2II(_0,_2[0],1),mosek.fusion.Matrix._dense_II_3D(1,int((_1).shape[0]),_1)))
  @staticmethod
  def __outer_1_alt_I_3J_3J_3D_3D_3J_3D_3IIZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5,_t__6,_t__7,_t__8,_t__9):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int64))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.float64))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int64))
   _6=numpy.array(_t__6,dtype=numpy.dtype(numpy.float64))
   _7=numpy.array(_t__7,dtype=numpy.dtype(numpy.int32))
   _8=numpy.int32(_t__8)
   _9=_t__9
   _1_res = mosek_fusion_Expr.__outer_1_I_3J_3J_3D_3D_3J_3D_3IIZ(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__6[:] = _6
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__7[:] = _7
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __outer_1_I_3J_3J_3D_3D_3J_3D_3IIZ(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9):
   _10=(mosek.fusion.Set._make_II(_0,_8) if ((not _9) ) else mosek.fusion.Set._make_II(_8,_0))
   _11=(int((_6).shape[0]) * int((_5).shape[0]))
   _12=(int((_6).shape[0]) * int((_2).shape[0]))
   _13=numpy.zeros((_11,), dtype=numpy.dtype(numpy.int64))
   _14=(numpy.zeros((_11,), dtype=numpy.dtype(numpy.float64)) if ((_4 is not None) ) else None)
   _15=numpy.zeros((_12,), dtype=numpy.dtype(numpy.float64))
   _16=numpy.zeros((_12,), dtype=numpy.dtype(numpy.int64))
   _17=numpy.zeros(((_11 + 1),), dtype=numpy.dtype(numpy.int64))
   _18=numpy.int32(_17[(int((_17).shape[0]) - 1)])
   if (not _9):
    _19=0
    _20=0
    for _21 in range(0,int((_5).shape[0])):
     _22=(_1[(_21 + 1)] - _1[_21])
     for _23 in range(0,int((_6).shape[0])):
      _5[_19] = ((_5[_21] * _8) + _7[_23])
      _17[(_19 + 1)] = (_17[_19] + _22)
      _19 += 1
      for _24 in range(_1[_21],_1[(_21 + 1)]):
       _16[_20] = _2[_24]
       _15[_20] = (_3[_24] * _6[_23])
       _20 += 1
    if (_14 is not None):
     _25=0
     for _26 in range(0,int((_5).shape[0])):
      for _27 in range(0,int((_6).shape[0])):
       _14[_25] = (_6[_27] * _4[_26])
       _25 += 1
   else:
    _28=0
    _29=0
    for _30 in range(0,int((_6).shape[0])):
     _31=_6[_30]
     mosek.fusion.Utils.Tools._arraycopy__3JJ_3JJJ(_2,0,_16,_29,_18)
     for _32 in range(0,_18):
      _15[(_29 + _32)] = (_3[_32] * _6[_30])
     for _33 in range(0,int((_5).shape[0])):
      _34=(_1[(_33 + 1)] - _1[_33])
      _5[_28] = ((_5[_33] * _8) + _7[_30])
      _17[(_28 + 1)] = (_17[_28] + _34)
      _28 += 1
     _29 += _18
    if (_14 is not None):
     _35=0
     for _36 in range(0,int((_6).shape[0])):
      _37=_6[_36]
      for _38 in range(0,int((_5).shape[0])):
       _14[_35] = (_4[_38] * _37)
       _35 += 1
   return (mosek_fusion_Expr._ctor__3J_3J_3D_3D_3I_3J(_17,_16,_15,_14,_10,_13))
  @staticmethod
  def __outer_1_alt_Lmosek_4fusion_4Variable_2I_3D_3IIZ(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=_t__0
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.int32(_t__4)
   _5=_t__5
   _1_res = mosek_fusion_Expr.__outer_1_Lmosek_4fusion_4Variable_2I_3D_3IIZ(_0,_1,_2,_3,_4,_5)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __outer_1_Lmosek_4fusion_4Variable_2I_3D_3IIZ(_0,_1,_2,_3,_4,_5):
   _6=(mosek.fusion.Set._make_II(_1,_4) if ((not _5) ) else mosek.fusion.Set._make_II(_4,_1))
   _7=(None if ((_4==int((_2).shape[0])) ) else numpy.zeros(((int((_2).shape[0]) * _1),), dtype=numpy.dtype(numpy.int64)))
   _8=numpy.zeros(((int((_2).shape[0]) * _1),), dtype=numpy.dtype(numpy.float64))
   _9=numpy.zeros(((int((_2).shape[0]) * _1),), dtype=numpy.dtype(numpy.float64))
   _10=numpy.zeros(((int((_2).shape[0]) * _1),), dtype=numpy.dtype(numpy.int64))
   _11=numpy.zeros((((int((_2).shape[0]) * _1) + 1),), dtype=numpy.dtype(numpy.int64))
   if (_4==int((_2).shape[0])):
    _12=0
    if (not _5):
     for _13 in range(0,_1):
      for _14 in range(0,_4):
       _11[(_12 + 1)] = (_12 + 1)
       _10[_12] = numpy.int64(_13)
       _9[_12] = _2[_14]
       _12 += 1
    else:
     for _15 in range(0,_4):
      for _16 in range(0,_1):
       _11[(_12 + 1)] = (_12 + 1)
       _10[_12] = numpy.int64(_16)
       _9[_12] = _2[_15]
       _12 += 1
   else:
    _17=0
    if (not _5):
     for _18 in range(0,_1):
      for _19 in range(0,int((_2).shape[0])):
       _11[(_17 + 1)] = (_17 + 1)
       _10[_17] = numpy.int64(_18)
       _9[_17] = _2[_19]
       _7[_17] = ((_18 * _4) + _3[_19])
       _17 += 1
    else:
     for _20 in range(0,int((_2).shape[0])):
      for _21 in range(0,_1):
       _11[(_17 + 1)] = (_17 + 1)
       _10[_17] = numpy.int64(_21)
       _9[_17] = _2[_20]
       _7[_17] = ((_3[_20] * _1) + _21)
       _17 += 1
   return (mosek_fusion_Expr._ctor__3J_3J_3D_3D_3I_3J(_11,_10,_9,_8,_6,_7))
  @staticmethod
  def _match_stack__3_3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_stack__3_3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _stack_alt__3_3Lmosek_4fusion_4Expression_2(_t__0):
   _0=_monty.makeJaggedArray(_t__0,(1,1),numpy.dtype(object))
   _1_res = mosek_fusion_Expr._stack__3_3Lmosek_4fusion_4Expression_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack__3_3Lmosek_4fusion_4Expression_2(_0):
   if (_0 is None):
    raise ValueError("Argument exprs may not be null")
   for _1 in range(0,int((_0).shape[0])):
    _2=_0[_1]
    if (_2 is None):
     raise ValueError("Arguments for stack may not be null")
    for _3 in range(0,int((_2).shape[0])):
     if (_2[_3] is None):
      raise ValueError("Arguments for stack may not be null")
   _4=numpy.array([mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_0[_5],1) for _5 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(object))
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_4,0))
  @staticmethod
  def _match_vstack_DDD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_D__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_vstack_DDD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _vstack_alt_DDD(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_DDD(numpy.float64(__0),numpy.float64(__1),numpy.float64(__2))
  @staticmethod
  def _vstack_DDD(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),mosek.fusion.Expr._constTerm_D(_1),mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_DDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_vstack_DDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _vstack_alt_DDLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_DDLmosek_4fusion_4Expression_2(numpy.float64(__0),numpy.float64(__1),_2)
  @staticmethod
  def _vstack_DDLmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),mosek.fusion.Expr._constTerm_D(_1),_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_DLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_vstack_DLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _vstack_alt_DLmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2D(numpy.float64(__0),_1,numpy.float64(__2))
  @staticmethod
  def _vstack_DLmosek_4fusion_4Expression_2D(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1,mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _vstack_alt_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(numpy.float64(__0),_1,_2)
  @staticmethod
  def _vstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1,_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2DD(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2DD(_0,numpy.float64(__1),numpy.float64(__2))
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2DD(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1),mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_0,numpy.float64(__1),_2)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1),_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_0,_1,numpy.float64(__2))
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1,mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_vstack_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _vstack_alt_DLmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._vstack_DLmosek_4fusion_4Expression_2(numpy.float64(__0),_1)
  @staticmethod
  def _vstack_DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2D(_t__0,_t__1):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2D(_0,numpy.float64(__1))
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2D(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1)], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _vstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _vstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),0))
  @staticmethod
  def _match_vstack__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_vstack__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _vstack_alt__3Lmosek_4fusion_4Expression_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr._vstack__3Lmosek_4fusion_4Expression_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _vstack__3Lmosek_4fusion_4Expression_2(_0):
   if (_0 is None):
    raise ValueError("Argument exprs may not be null")
   for _1 in range(0,int((_0).shape[0])):
    if (_0[_1] is None):
     raise ValueError("Arguments for vstack may not be null")
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_0,0))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   if ((_0 is None) or ((_1 is None) or (_2 is None))):
    raise ValueError("Arguments e1, e2 and e3 may not be null")
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1,_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_0,_1,numpy.float64(__2))
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1,mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_0,numpy.float64(__1),_2)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1),_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2DD(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2DD(_0,numpy.float64(__1),numpy.float64(__2))
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2DD(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1),mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _hstack_alt_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(numpy.float64(__0),_1,_2)
  @staticmethod
  def _hstack_DLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1,_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_DLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_hstack_DLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _hstack_alt_DLmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2D(numpy.float64(__0),_1,numpy.float64(__2))
  @staticmethod
  def _hstack_DLmosek_4fusion_4Expression_2D(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1,mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_DDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_D__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_hstack_DDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _hstack_alt_DDLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._hstack_DDLmosek_4fusion_4Expression_2(numpy.float64(__0),numpy.float64(__1),_2)
  @staticmethod
  def _hstack_DDLmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),mosek.fusion.Expr._constTerm_D(_1),_2], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_hstack_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _hstack_alt_DLmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._hstack_DLmosek_4fusion_4Expression_2(numpy.float64(__0),_1)
  @staticmethod
  def _hstack_DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_0),_1], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2D(_t__0,_t__1):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2D(_0,numpy.float64(__1))
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2D(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,mosek.fusion.Expr._constTerm_D(_1)], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _hstack_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _hstack_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_0,_1], dtype=numpy.dtype(object)),1))
  @staticmethod
  def _match_hstack__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_hstack__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _hstack_alt__3Lmosek_4fusion_4Expression_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr._hstack__3Lmosek_4fusion_4Expression_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _hstack__3Lmosek_4fusion_4Expression_2(_0):
   if (_0 is None):
    raise ValueError("Argument exprs may not be null")
   for _1 in range(0,int((_0).shape[0])):
    if (_0[_1] is None):
     raise ValueError("Arguments for hstack may not be null")
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_0,1))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(numpy.int32(__0),_1,_2,_3)
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,_2,_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_match_D__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_alt_match_D__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(numpy.int32(__0),_1,_2,numpy.float64(__3))
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2D(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,_2,mosek.fusion.Expr._constTerm_D(_3)], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2) and __arg_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(numpy.int32(__0),_1,numpy.float64(__2),_3)
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,mosek.fusion.Expr._constTerm_D(_2),_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2) and __arg_match_D__(_3))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2DD(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2) and __arg_alt_match_D__(_3))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2DD(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2DD(numpy.int32(__0),_1,numpy.float64(__2),numpy.float64(__3))
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2DD(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,mosek.fusion.Expr._constTerm_D(_2),mosek.fusion.Expr._constTerm_D(_3)], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _match_alt_stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _stack_alt_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(numpy.int32(__0),numpy.float64(__1),_2,_3)
  @staticmethod
  def _stack_IDLmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_1),_2,_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_IDLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_match_D__(_3))
  @staticmethod
  def _match_alt_stack_IDLmosek_4fusion_4Expression_2D(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2) and __arg_alt_match_D__(_3))
  @staticmethod
  def _stack_alt_IDLmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2D(numpy.int32(__0),numpy.float64(__1),_2,numpy.float64(__3))
  @staticmethod
  def _stack_IDLmosek_4fusion_4Expression_2D(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_1),_2,mosek.fusion.Expr._constTerm_D(_3)], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_IDDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_D__(_2) and __arg_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _match_alt_stack_IDDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_D__(_2) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_3))
  @staticmethod
  def _stack_alt_IDDLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr._stack_IDDLmosek_4fusion_4Expression_2(numpy.int32(__0),numpy.float64(__1),numpy.float64(__2),_3)
  @staticmethod
  def _stack_IDDLmosek_4fusion_4Expression_2(_0,_1,_2,_3):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_1),mosek.fusion.Expr._constTerm_D(_2),_3], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_IDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_stack_IDLmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _stack_alt_IDLmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._stack_IDLmosek_4fusion_4Expression_2(numpy.int32(__0),numpy.float64(__1),_2)
  @staticmethod
  def _stack_IDLmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([mosek.fusion.Expr._constTerm_D(_1),_2], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2D(numpy.int32(__0),_1,numpy.float64(__2))
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2D(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,mosek.fusion.Expr._constTerm_D(_2)], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _match_alt_stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_2))
  @staticmethod
  def _stack_alt_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(numpy.int32(__0),_1,_2)
  @staticmethod
  def _stack_ILmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1,_2):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(numpy.array([_1,_2], dtype=numpy.dtype(object)),_0))
  @staticmethod
  def _match_stack_I_3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match__3Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_stack_I_3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _stack_alt_I_3Lmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr._stack_I_3Lmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _stack_I_3Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_1,_0))
  @staticmethod
  def __stack_1_alt__3Lmosek_4fusion_4Expression_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Expr.__stack_1__3Lmosek_4fusion_4Expression_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __stack_1__3Lmosek_4fusion_4Expression_2I(_0,_1):
   if (int((_0).shape[0])==1):
    return (_0[0])
   else:
    return (mosek_fusion_ExprStack._ctor__3Lmosek_4fusion_4Expression_2I(mosek.fusion.Expr.__promote__3Lmosek_4fusion_4Expression_2I(_0,_1),_1))
  @staticmethod
  def __promote_alt__3Lmosek_4fusion_4Expression_2I(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Expr.__promote__3Lmosek_4fusion_4Expression_2I(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __promote__3Lmosek_4fusion_4Expression_2I(_0,_1):
   _2=int((_0).shape[0])
   _3=numpy.array([_0[_4].getND() for _4 in range(0,_2)], dtype=numpy.dtype(numpy.int32))
   _5=_3[0]
   _6=_3[0]
   for _7 in range(1,_2):
    if (_3[_7] < _6):
     _6 = _3[_7]
    if (_3[_7] > _5):
     _5 = _3[_7]
   if (_5 < _1):
    _5 = _1
   if (_6 < _5):
    _8=numpy.ndarray((_2,), dtype=numpy.dtype(object))
    _9=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
    for _10 in range(0,_2):
     if (_0[_10].getND()==_5):
      _8[_10] = _0[_10]
     else:
      _11=_0[_10].getShape()
      for _12 in range(0,int((_11).shape[0])):
       _9[_12] = _11[_12]
      for _13 in range(int((_11).shape[0]),_5):
       _9[_13] = 1
      _8[_10] = mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_9,_0[_10])
    return (_8)
   else:
    return (_0)
  @staticmethod
  def _match_repeat_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_repeat_Lmosek_4fusion_4Variable_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Variable_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _repeat_alt_Lmosek_4fusion_4Variable_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._repeat_Lmosek_4fusion_4Variable_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _repeat_Lmosek_4fusion_4Variable_2II(_0,_1,_2):
   return (mosek.fusion.Expr._repeat_Lmosek_4fusion_4Expression_2II(_0.asExpr(),_1,_2))
  @staticmethod
  def _match_repeat_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_repeat_Lmosek_4fusion_4Expression_2II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _repeat_alt_Lmosek_4fusion_4Expression_2II(_t__0,_t__1,_t__2):
    return mosek_fusion_Expr._repeat_Lmosek_4fusion_4Expression_2II(_0,numpy.int32(__1),numpy.int32(__2))
  @staticmethod
  def _repeat_Lmosek_4fusion_4Expression_2II(_0,_1,_2):
   if (_1 <= 0):
    raise mosek_fusion_DimensionError._ctor_S("Cannot repeat Expression 0 or less times")
   if ((_2 < 0) or (_2 > _0.getND())):
    raise mosek_fusion_DimensionError._ctor_S("Invalid stacking dimension")
   else:
    if (_2==_0.getND()):
     _3=numpy.zeros(((_2 + 1),), dtype=numpy.dtype(numpy.int32))
     for _4 in range(0,_2):
      _3[_4] = _0.getDim(_4)
     _3[_2] = 1
     return (mosek_fusion_ExprRepeat._ctor_Lmosek_4fusion_4Expression_2II(mosek.fusion.Expr._reshape_Lmosek_4fusion_4Expression_2_3I(_0,_3),_2,_1))
    else:
     return (mosek_fusion_ExprRepeat._ctor_Lmosek_4fusion_4Expression_2II(_0,_2,_1))
  @staticmethod
  def _match_add__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_add__3Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _add_alt__3Lmosek_4fusion_4Expression_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr._add__3Lmosek_4fusion_4Expression_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _add__3Lmosek_4fusion_4Expression_2(_0):
   return (mosek_fusion_ExprWSum._ctor__3Lmosek_4fusion_4Expression_2_3D(_0,numpy.array([1.0 for _1 in range(0,int((_0).shape[0]))], dtype=numpy.dtype(numpy.float64))))
  @staticmethod
  def _match_add__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _match_alt_add__3Lmosek_4fusion_4Variable_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Variable_2__(_0))
  @staticmethod
  def _add_alt__3Lmosek_4fusion_4Variable_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr._add__3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _add__3Lmosek_4fusion_4Variable_2(_0):
   if (_0 is None):
    raise ValueError("Argument vs may not be null")
   if (int((_0).shape[0])==0):
    return (mosek_fusion_Expr._ctor__3J_3J_3D_3D_3I_3JI(numpy.array([0], dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),numpy.zeros((0,), dtype=numpy.dtype(numpy.float64)),None,mosek.fusion.Set._make_I(0),numpy.zeros((0,), dtype=numpy.dtype(numpy.int64)),1))
   if ((int((_0).shape[0]) > 0) and (_0[0] is None)):
    raise ValueError("Argument vs may contain null")
   _1=_0[0].getND()
   for _2 in range(1,int((_0).shape[0])):
    if (_1 < _0[_2].getND()):
     _1 = _0[_2].getND()
   _3=numpy.zeros((int((_0).shape[0]),_1,), dtype=numpy.dtype(numpy.int32))
   for _4 in range(0,int((_0).shape[0])):
    _5=_0[_4].getShape()
    for _6 in range(0,int((_5).shape[0])):
     _3[_4,_6] = _5[_6]
    for _7 in range(int((_5).shape[0]),_1):
     _3[_4,_7] = 1
   for _8 in range(1,int((_0).shape[0])):
    for _9 in range(0,_1):
     if (_3[0,_9]!=_3[_8,_9]):
      raise mosek_fusion_DimensionError._ctor_S("Mismatching operand dimensions")
   _10=numpy.array([_3[0,_11] for _11 in range(0,_1)], dtype=numpy.dtype(numpy.int32))
   _12=1
   for _13 in range(0,_1):
    _12 *= _10[_13]
   _14=0
   _15=0
   for _16 in range(0,int((_0).shape[0])):
    _17=_0[_16].numInst()
    _14 += _17
    _15 = (_15 if ((_15 > _17) ) else _17)
   _18=numpy.zeros(((_12 + 1),), dtype=numpy.dtype(numpy.int64))
   _19=numpy.zeros((_14,), dtype=numpy.dtype(numpy.int64))
   _20=numpy.array([1.0 for _21 in range(0,_14)], dtype=numpy.dtype(numpy.float64))
   _22=numpy.zeros((_15,), dtype=numpy.dtype(numpy.int64))
   _23=numpy.zeros((_15,), dtype=numpy.dtype(numpy.int64))
   for _24 in range(0,int((_0).shape[0])):
    _25=_0[_24].inst(0,_22,0,_23)
    for _26 in range(0,_25):
     _18[(_22[_26] + 1)] += 1
   for _27 in range(0,_12):
    _18[(_27 + 1)] += _18[_27]
   for _28 in range(0,int((_0).shape[0])):
    _29=_0[_28].inst(0,_22,0,_23)
    for _30 in range(0,_29):
     _19[_18[_22[_30]]] = _23[_30]
     _18[_22[_30]] += 1
   for _31 in range(0,_12):
    _18[(_12 - _31)] = _18[((_12 - _31) - 1)]
   _18[0] = 0
   return (mosek_fusion_Expr._ctor__3J_3J_3D_3D_3I_3JI(_18,_19,_20,numpy.array([0.0 for _32 in range(0,_12)], dtype=numpy.dtype(numpy.float64)),_10,None,1))
  @staticmethod
  def __add_1_alt_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_t__0,_t__1,_t__2,_t__3):
    return mosek_fusion_Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,numpy.float64(__1),_2,numpy.float64(__3))
  @staticmethod
  def __add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,_1,_2,_3):
   _4=_0.getND()
   _5=_2.getND()
   if (_4==_5):
    return (mosek_fusion_ExprAdd._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(_0,_2,_1,_3))
   else:
    _6=(_4 if ((_4 > _5) ) else _5)
    _7=numpy.zeros((_6,), dtype=numpy.dtype(numpy.int32))
    if (_4 < _5):
     _8=_0.getShape()
     for _9 in range(0,_4):
      _7[_9] = _8[_9]
     for _10 in range(_4,_6):
      _7[_10] = 1
     return (mosek_fusion_ExprAdd._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_7,_0),_2,_1,_3))
    else:
     _11=_2.getShape()
     for _12 in range(0,_5):
      _7[_12] = _11[_12]
     for _13 in range(_5,_6):
      _7[_13] = 1
     return (mosek_fusion_ExprAdd._ctor_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2DD(_0,mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(_7,_2),_1,_3))
  @staticmethod
  def _match_transpose_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _match_alt_transpose_Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0))
  @staticmethod
  def _transpose_alt_Lmosek_4fusion_4Expression_2(_t__0):
    return mosek_fusion_Expr._transpose_Lmosek_4fusion_4Expression_2(_0)
  @staticmethod
  def _transpose_Lmosek_4fusion_4Expression_2(_0):
   if (_0.getND()==0):
    return (_0)
   elif (_0.getND()==1): # bld/docker-win/final/default/src/fusion/Expr.mbi:702:16-30
    return (mosek_fusion_ExprReshape._ctor__3ILmosek_4fusion_4Expression_2(numpy.array([1,_0.getDim(0)], dtype=numpy.dtype(numpy.int32)),_0))
   elif (_0.getND()==2): # bld/docker-win/final/default/src/fusion/Expr.mbi:704:16-30
    return (mosek_fusion_ExprTranspose._ctor_Lmosek_4fusion_4Expression_2(_0))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Incorrect number of dimensions for transpose")
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mulElm__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulElm__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulElm_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mulElm__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _mulElm__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(mosek.fusion.Matrix._dense__3_5D(_0),_1))
  @staticmethod
  def _match_mulElm__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulElm__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulElm_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._mulElm__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _mulElm__3DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1__3DLmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(mosek.fusion.Matrix._dense__3_5D(_1),_0))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1__3DLmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1):
   return (mosek.fusion.Expr.__mulElm_1_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Parameter_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek_fusion_ExprMulParamElem._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_0,_1))
  @staticmethod
  def _match_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _match_alt_mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Parameter_2__(_1))
  @staticmethod
  def _mulElm_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_t__0,_t__1):
    return mosek_fusion_Expr._mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1)
  @staticmethod
  def _mulElm_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Parameter_2(_0,_1):
   return (mosek_fusion_ExprMulParamElem._ctor_Lmosek_4fusion_4Parameter_2Lmosek_4fusion_4Expression_2(_1,_0))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _sub_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(mosek.fusion.Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(_0),1.0,_1,(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1)
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(_1),(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _sub_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(mosek.fusion.Expr._constTerm_Lmosek_4fusion_4Matrix_2(_0),1.0,_1,(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4Matrix_2(_1),(- 1.0)))
  @staticmethod
  def _match_sub_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt_DLmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_DLmosek_4fusion_4Expression_2(numpy.float64(__0),_1)
  @staticmethod
  def _sub_DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(mosek.fusion.Expr._constTerm__3ID(_1.getShape(),_0),1.0,_1,(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2D(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2D(_0,numpy.float64(__1))
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3ID(_0.getShape(),_1),(- 1.0)))
  @staticmethod
  def _match_sub__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._sub__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _sub__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(mosek.fusion.Expr._constTerm__3_5D(_0),1.0,_1,(- 1.0)))
  @staticmethod
  def _match_sub__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._sub__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sub__3DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(mosek.fusion.Expr._constTerm__3D(_0),1.0,_1,(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3_5D(_1),(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3D(_1),(- 1.0)))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _sub_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _sub_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,_1,(- 1.0)))
  @staticmethod
  def _match_add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _add_Lmosek_4fusion_4NDSparseArray_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_1,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(_0),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1)
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4NDSparseArray_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4NDSparseArray_2(_1),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _add_Lmosek_4fusion_4Matrix_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_1,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4Matrix_2(_0),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1)
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm_Lmosek_4fusion_4Matrix_2(_1),1.0))
  @staticmethod
  def _match_add_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add_DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt_DLmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_DLmosek_4fusion_4Expression_2(numpy.float64(__0),_1)
  @staticmethod
  def _add_DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_1,1.0,mosek.fusion.Expr._constTerm__3ID(_1.getShape(),_0),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2D(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2D(_0,numpy.float64(__1))
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3ID(_0.getShape(),_1),1.0))
  @staticmethod
  def _match_add__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3_5D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add__3_5DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3_5D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt__3_5DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._add__3_5DLmosek_4fusion_4Expression_2(_0,_1)
   return _1_res
  @staticmethod
  def _add__3_5DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_1,1.0,mosek.fusion.Expr._constTerm__3_5D(_0),1.0))
  @staticmethod
  def _match_add__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add__3DLmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt__3DLmosek_4fusion_4Expression_2(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=_t__1
   _1_res = mosek_fusion_Expr._add__3DLmosek_4fusion_4Expression_2(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _add__3DLmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_1,1.0,mosek.fusion.Expr._constTerm__3D(_0),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3_5D__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2_3_5D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3_5D__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2_3_5D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2_3_5D(_0,_1)
   return _1_res
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2_3_5D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3_5D(_1),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match__3D__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2_3D(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match__3D__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2_3D(_t__0,_t__1):
   _0=_t__0
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2_3D(_0,_1)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2_3D(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,mosek.fusion.Expr._constTerm__3D(_1),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_Lmosek_4fusion_4Expression_2__(_0) and __arg_alt_match_Lmosek_4fusion_4Expression_2__(_1))
  @staticmethod
  def _add_alt_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_t__0,_t__1):
    return mosek_fusion_Expr._add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1)
  @staticmethod
  def _add_Lmosek_4fusion_4Expression_2Lmosek_4fusion_4Expression_2(_0,_1):
   return (mosek.fusion.Expr.__add_1_Lmosek_4fusion_4Expression_2DLmosek_4fusion_4Expression_2D(_0,1.0,_1,1.0))
  @staticmethod
  def _match_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_match_Lmosek_4fusion_4WorkStack_2__(_2))
  @staticmethod
  def _match_alt_eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_1) and __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_2))
  def _eval_alt_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_t__0,_t__1,_t__2):
    return self._eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(_0,_1,_2)
  def _eval_Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2Lmosek_4fusion_4WorkStack_2(self,_0,_1,_2):
   _3=(int((self.__ptrb).shape[0]) - 1)
   _4=(numpy.int32(self.__ptrb[_3]) + _3)
   _5=int((self.__shape).shape[0])
   _0.alloc_expr(_5,_3,_4,(self.__inst is not None))
   _6=(_0.ptr_base)
   _7=(_0.nidxs_base)
   _8=(_0.sp_base)
   _9=(_0.cof_base)
   _10=(_0.shape_base)
   _11=(_0.i32)
   _12=(_0.i64)
   _13=(_0.f64)
   for _14 in range(0,_5):
    _11[(_10 + _14)] = self.__shape[_14]
   _11[_6] = 0
   _15=0
   for _16 in range(0,_3):
    for _17 in range(self.__ptrb[_16],self.__ptrb[(_16 + 1)]):
     _12[(_7 + _15)] = self.__subj[_17]
     _13[(_9 + _15)] = self.__cof_v[_17]
     _15 += 1
    _12[(_7 + _15)] = 0
    _13[(_9 + _15)] = self.__bfix[_16]
    _15 += 1
    _11[((_6 + _16) + 1)] = _15
  @staticmethod
  def __validateData_alt__3J_3J_3D_3D_3I_3J(_t__0,_t__1,_t__2,_t__3,_t__4,_t__5):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int64))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.float64))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.int32))
   _5=numpy.array(_t__5,dtype=numpy.dtype(numpy.int64))
   _1_res = mosek_fusion_Expr.__validateData__3J_3J_3D_3D_3I_3J(_0,_1,_2,_3,_4,_5)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__5[:] = _5
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __validateData__3J_3J_3D_3D_3I_3J(_0,_1,_2,_3,_4,_5):
   if (_4 is None):
    raise mosek_fusion_ExpressionError._ctor_S("Array 'shape' in expression is null")
   _6=(int((_0).shape[0]) - 1)
   _7=_0[(int((_0).shape[0]) - 1)]
   _8=int((_4).shape[0])
   _9=1
   for _10 in range(0,_8):
    _9 *= _4[_10]
   if (int((_0).shape[0]) < 1):
    raise mosek_fusion_ExpressionError._ctor_S("Array 'ptrb' in expression has wrong size")
   if (_7!=int((_1).shape[0])):
    raise mosek_fusion_ExpressionError._ctor_S("Array 'subj' in expression has wrong size")
   if (_7!=int((_2).shape[0])):
    raise mosek_fusion_ExpressionError._ctor_S("Array 'cof' in expression has wrong size")
   if ((_3 is None) or (_6!=int((_3).shape[0]))):
    raise mosek_fusion_ExpressionError._ctor_S("Array 'bfix' in expression has wrong length")
   if ((_5 is not None) and (int((_5).shape[0]) < _9)):
    if (int((_5).shape[0])!=(int((_0).shape[0]) - 1)):
     raise mosek_fusion_ExpressionError._ctor_S("Array 'inst' in expression has wrong length")
    if (int((_5).shape[0]) > 0):
     if ((_5[0] < 0) or (_5[0] >= _9)):
      raise mosek_fusion_ExpressionError._ctor_S("Array 'inst' contains an invalid index")
     _11=True
     _12=_9
     for _13 in range(1,int((_5).shape[0])):
      _11 = (_11 and ((_5[_13] >= 0) and ((_5[_13] < _12) and (_5[_13] > _5[(_13 - 1)]))))
     if (not _11):
      raise mosek_fusion_ExpressionError._ctor_S("Invalid array 'inst'")
   else:
    if (_9!=(int((_0).shape[0]) - 1)):
     raise mosek_fusion_ExpressionError._ctor_S("Array 'ptrb' in expression has wrong length")
   _14=False
   _15=False
   if (_0[0]!=0):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid 'ptrb' argument in expression")
   _16=True
   for _17 in range(0,_6):
    _16 = (_16 and (_0[_17] <= _0[(_17 + 1)]))
   if (not _16):
    raise mosek_fusion_ExpressionError._ctor_S("Invalid 'ptrb' argument in expression")
  @staticmethod
  def __extractModel_alt__3Lmosek_4fusion_4Variable_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Expr.__extractModel__3Lmosek_4fusion_4Variable_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def __extractModel__3Lmosek_4fusion_4Variable_2(_0):
   return ((None if (((_0 is None) or (int((_0).shape[0])==0)) ) else _0[0].getModel()))
 return Expr
mosek_fusion_Expr=__mk_mosek_fusion_Expr()
del __mk_mosek_fusion_Expr
def __mk_mosek_fusion_WorkStack():
 class WorkStack(object):
  __slots__ = ['code_base','cconst_base','codeptr_base','cof_base','nidxs_base','sp_base','shape_base','ptr_base','hassp','ncodeatom','nelem','nnz','nd','pf64','pi64','pi32','f64','i64','i32']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.WorkStack.ctor()')
  def ensurei64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_ensurei64_I(*args): 
      return self._ensurei64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_ensurei64_I(*args): 
      return self._ensurei64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list ensurei64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.ensurei64(int32)')
  def allocf64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_allocf64_I(*args): 
      return self._allocf64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_allocf64_I(*args): 
      return self._allocf64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list allocf64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.allocf64(int32)')
  def peek_nd(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1nd_(*args): 
      return self._peek_1nd_(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1nd_(*args): 
      return self._peek_1nd_alt_(*args)
    else:
      raise ValueError('Invalid argument list peek_nd('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_nd()')
  def pushf64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_pushf64_D(*args): 
      return self._pushf64_D(*args)
    elif mosek_fusion_WorkStack._match_alt_pushf64_D(*args): 
      return self._pushf64_alt_D(*args)
    else:
      raise ValueError('Invalid argument list pushf64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.pushf64(double)')
  def peeki64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peeki64_(*args): 
      return self._peeki64_(*args)
    elif mosek_fusion_WorkStack._match_alt_peeki64_(*args): 
      return self._peeki64_alt_(*args)
    elif mosek_fusion_WorkStack._match_peeki64_I(*args): 
      return self._peeki64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_peeki64_I(*args): 
      return self._peeki64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list peeki64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peeki64()\n\tmosek.fusion.WorkStack.peeki64(int32)')
  def pop_expr(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_pop_1expr_(*args): 
      return self._pop_1expr_(*args)
    elif mosek_fusion_WorkStack._match_alt_pop_1expr_(*args): 
      return self._pop_1expr_alt_(*args)
    else:
      raise ValueError('Invalid argument list pop_expr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.pop_expr()')
  def popi64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_popi64_(*args): 
      return self._popi64_(*args)
    elif mosek_fusion_WorkStack._match_alt_popi64_(*args): 
      return self._popi64_alt_(*args)
    elif mosek_fusion_WorkStack._match_popi64_I(*args): 
      return self._popi64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_popi64_I(*args): 
      return self._popi64_alt_I(*args)
    elif mosek_fusion_WorkStack._match_popi64_I_3JI(*args): 
      return self._popi64_I_3JI(*args)
    elif mosek_fusion_WorkStack._match_alt_popi64_I_3JI(*args): 
      return self._popi64_alt_I_3JI(*args)
    else:
      raise ValueError('Invalid argument list popi64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.popi64()\n\tmosek.fusion.WorkStack.popi64(int32)\n\tmosek.fusion.WorkStack.popi64(int32,array(int64,ndim=1),int32)')
  def peek_dim(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1dim_I(*args): 
      return self._peek_1dim_I(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1dim_I(*args): 
      return self._peek_1dim_alt_I(*args)
    else:
      raise ValueError('Invalid argument list peek_dim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_dim(int32)')
  def ensuref64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_ensuref64_I(*args): 
      return self._ensuref64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_ensuref64_I(*args): 
      return self._ensuref64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list ensuref64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.ensuref64(int32)')
  def peekf64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peekf64_(*args): 
      return self._peekf64_(*args)
    elif mosek_fusion_WorkStack._match_alt_peekf64_(*args): 
      return self._peekf64_alt_(*args)
    elif mosek_fusion_WorkStack._match_peekf64_I(*args): 
      return self._peekf64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_peekf64_I(*args): 
      return self._peekf64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list peekf64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peekf64()\n\tmosek.fusion.WorkStack.peekf64(int32)')
  def peek_nnz(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1nnz_(*args): 
      return self._peek_1nnz_(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1nnz_(*args): 
      return self._peek_1nnz_alt_(*args)
    else:
      raise ValueError('Invalid argument list peek_nnz('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_nnz()')
  def peeki32(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peeki32_(*args): 
      return self._peeki32_(*args)
    elif mosek_fusion_WorkStack._match_alt_peeki32_(*args): 
      return self._peeki32_alt_(*args)
    elif mosek_fusion_WorkStack._match_peeki32_I(*args): 
      return self._peeki32_I(*args)
    elif mosek_fusion_WorkStack._match_alt_peeki32_I(*args): 
      return self._peeki32_alt_I(*args)
    else:
      raise ValueError('Invalid argument list peeki32('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peeki32()\n\tmosek.fusion.WorkStack.peeki32(int32)')
  def ensure_sparsity(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_ensure_1sparsity_(*args): 
      return self._ensure_1sparsity_(*args)
    elif mosek_fusion_WorkStack._match_alt_ensure_1sparsity_(*args): 
      return self._ensure_1sparsity_alt_(*args)
    else:
      raise ValueError('Invalid argument list ensure_sparsity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.ensure_sparsity()')
  def peek_nelem(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1nelem_(*args): 
      return self._peek_1nelem_(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1nelem_(*args): 
      return self._peek_1nelem_alt_(*args)
    else:
      raise ValueError('Invalid argument list peek_nelem('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_nelem()')
  def alloci64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_alloci64_I(*args): 
      return self._alloci64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_alloci64_I(*args): 
      return self._alloci64_alt_I(*args)
    else:
      raise ValueError('Invalid argument list alloci64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.alloci64(int32)')
  def clear(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_clear_(*args): 
      return self._clear_(*args)
    elif mosek_fusion_WorkStack._match_alt_clear_(*args): 
      return self._clear_alt_(*args)
    else:
      raise ValueError('Invalid argument list clear('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.clear()')
  def pushi32(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_pushi32_I(*args): 
      return self._pushi32_I(*args)
    elif mosek_fusion_WorkStack._match_alt_pushi32_I(*args): 
      return self._pushi32_alt_I(*args)
    else:
      raise ValueError('Invalid argument list pushi32('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.pushi32(int32)')
  def popi32(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_popi32_(*args): 
      return self._popi32_(*args)
    elif mosek_fusion_WorkStack._match_alt_popi32_(*args): 
      return self._popi32_alt_(*args)
    elif mosek_fusion_WorkStack._match_popi32_I(*args): 
      return self._popi32_I(*args)
    elif mosek_fusion_WorkStack._match_alt_popi32_I(*args): 
      return self._popi32_alt_I(*args)
    elif mosek_fusion_WorkStack._match_popi32_I_3II(*args): 
      return self._popi32_I_3II(*args)
    elif mosek_fusion_WorkStack._match_alt_popi32_I_3II(*args): 
      return self._popi32_alt_I_3II(*args)
    else:
      raise ValueError('Invalid argument list popi32('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.popi32()\n\tmosek.fusion.WorkStack.popi32(int32)\n\tmosek.fusion.WorkStack.popi32(int32,array(int32,ndim=1),int32)')
  def pushi64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_pushi64_J(*args): 
      return self._pushi64_J(*args)
    elif mosek_fusion_WorkStack._match_alt_pushi64_J(*args): 
      return self._pushi64_alt_J(*args)
    else:
      raise ValueError('Invalid argument list pushi64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.pushi64(int64)')
  def peek_expr(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1expr_(*args): 
      return self._peek_1expr_(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1expr_(*args): 
      return self._peek_1expr_alt_(*args)
    else:
      raise ValueError('Invalid argument list peek_expr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_expr()')
  def ensurei32(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_ensurei32_I(*args): 
      return self._ensurei32_I(*args)
    elif mosek_fusion_WorkStack._match_alt_ensurei32_I(*args): 
      return self._ensurei32_alt_I(*args)
    else:
      raise ValueError('Invalid argument list ensurei32('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.ensurei32(int32)')
  def popf64(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_popf64_(*args): 
      return self._popf64_(*args)
    elif mosek_fusion_WorkStack._match_alt_popf64_(*args): 
      return self._popf64_alt_(*args)
    elif mosek_fusion_WorkStack._match_popf64_I(*args): 
      return self._popf64_I(*args)
    elif mosek_fusion_WorkStack._match_alt_popf64_I(*args): 
      return self._popf64_alt_I(*args)
    elif mosek_fusion_WorkStack._match_popf64_I_3DI(*args): 
      return self._popf64_I_3DI(*args)
    elif mosek_fusion_WorkStack._match_alt_popf64_I_3DI(*args): 
      return self._popf64_alt_I_3DI(*args)
    else:
      raise ValueError('Invalid argument list popf64('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.popf64()\n\tmosek.fusion.WorkStack.popf64(int32)\n\tmosek.fusion.WorkStack.popf64(int32,array(double,ndim=1),int32)')
  def alloc_expr(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_alloc_1expr_IIIZ(*args): 
      return self._alloc_1expr_IIIZ(*args)
    elif mosek_fusion_WorkStack._match_alt_alloc_1expr_IIIZ(*args): 
      return self._alloc_1expr_alt_IIIZ(*args)
    elif mosek_fusion_WorkStack._match_alloc_1expr_IIIZI(*args): 
      return self._alloc_1expr_IIIZI(*args)
    elif mosek_fusion_WorkStack._match_alt_alloc_1expr_IIIZI(*args): 
      return self._alloc_1expr_alt_IIIZI(*args)
    else:
      raise ValueError('Invalid argument list alloc_expr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.alloc_expr(int32,int32,int32,bool)\n\tmosek.fusion.WorkStack.alloc_expr(int32,int32,int32,bool,int32)')
  def formatCurrent(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_formatCurrent_(*args): 
      return self._formatCurrent_(*args)
    elif mosek_fusion_WorkStack._match_alt_formatCurrent_(*args): 
      return self._formatCurrent_alt_(*args)
    else:
      raise ValueError('Invalid argument list formatCurrent('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.formatCurrent()')
  def peek_hassp(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_peek_1hassp_(*args): 
      return self._peek_1hassp_(*args)
    elif mosek_fusion_WorkStack._match_alt_peek_1hassp_(*args): 
      return self._peek_1hassp_alt_(*args)
    else:
      raise ValueError('Invalid argument list peek_hassp('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.peek_hassp()')
  def move_expr(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_move_1expr_Lmosek_4fusion_4WorkStack_2(*args): 
      return self._move_1expr_Lmosek_4fusion_4WorkStack_2(*args)
    elif mosek_fusion_WorkStack._match_alt_move_1expr_Lmosek_4fusion_4WorkStack_2(*args): 
      return self._move_1expr_alt_Lmosek_4fusion_4WorkStack_2(*args)
    else:
      raise ValueError('Invalid argument list move_expr('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.move_expr(mosek.fusion.WorkStack)')
  def alloci32(self,*args):
    if False: pass
    elif mosek_fusion_WorkStack._match_alloci32_I(*args): 
      return self._alloci32_I(*args)
    elif mosek_fusion_WorkStack._match_alt_alloci32_I(*args): 
      return self._alloci32_alt_I(*args)
    else:
      raise ValueError('Invalid argument list alloci32('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.WorkStack.alloci32(int32)')
  def __repr__(self): return 'mosek.fusion.WorkStack'
  @staticmethod
  def _ctor_():
    o = WorkStack.__new__(WorkStack)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   self.i32 = numpy.zeros((128,), dtype=numpy.dtype(numpy.int32))
   self.i64 = numpy.zeros((128,), dtype=numpy.dtype(numpy.int64))
   self.f64 = numpy.zeros((128,), dtype=numpy.dtype(numpy.float64))
   self.pi32 = 0
   self.pi64 = 0
   self.pf64 = 0
   self.nd = 0
   self.nnz = 0
   self.nelem = 0
   self.hassp = False
   self.ncodeatom = 0
   self.ptr_base = 0
   self.shape_base = 0
   self.sp_base = 0
   self.nidxs_base = 0
   self.cof_base = 0
   self.cconst_base = 0
   self.code_base = 0
   self.codeptr_base = 0
  @staticmethod
  def _match_formatCurrent_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_formatCurrent_(*args):
    if len(args) != 0: return False
    return True
  def _formatCurrent_alt_(self,):
    return self._formatCurrent_()
  def _formatCurrent_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("  nelem     = ")._a_I(self.nelem)._a_S("\n")._a_S("  nnz       = ")._a_I(self.nnz)._a_S("\n")._a_S("  hassp     = ")._a_Z(self.hassp)._a_S(" / ")._a_Z(self.hassp)._a_S("\n")._a_S("  shape     = ")._a__3I(numpy.array([self.i32[(self.shape_base + _1)] for _1 in range(0,self.nd)], dtype=numpy.dtype(numpy.int32)))._a_S("\n")._a_S("  ptr       = ")._a__3I(numpy.array([self.i32[(self.ptr_base + _2)] for _2 in range(0,(self.nelem + 1))], dtype=numpy.dtype(numpy.int32)))._a_S("\n")
   if (self.ncodeatom > 0):
    _0._a_S("  codeptr   = ")._a__3I(numpy.array([self.i32[(self.codeptr_base + _3)] for _3 in range(0,(self.nnz + 1))], dtype=numpy.dtype(numpy.int32)))._a_S("\n")
   if self.hassp:
    _0._a_S("  sp        = ")._a__3J(numpy.array([self.i64[(self.sp_base + _4)] for _4 in range(0,self.nelem)], dtype=numpy.dtype(numpy.int64)))._a_S("\n")
   for _5 in range(0,self.nelem):
    _0._a_S("  row[")._a_I(_5)._a_S("]")._a_S("\n")._a_S("    nidx : ")._a__3J(numpy.array([self.i64[(self.nidxs_base + _6)] for _6 in range(self.i32[(self.ptr_base + _5)],self.i32[((self.ptr_base + _5) + 1)])], dtype=numpy.dtype(numpy.int64)))._a_S("\n")._a_S("    cof  : ")._a__3D(numpy.array([self.f64[(self.cof_base + _7)] for _7 in range(self.i32[(self.ptr_base + _5)],self.i32[((self.ptr_base + _5) + 1)])], dtype=numpy.dtype(numpy.float64)))._a_S("\n")
    if (self.ncodeatom > 0):
     for _8 in range(self.i32[(self.ptr_base + _5)],self.i32[((self.ptr_base + _5) + 1)]):
      _0._a_S("      code[")._a_J(self.i64[(self.nidxs_base + _8)])._a_S("] ")._a__3I(numpy.array([self.i32[(self.code_base + _9)] for _9 in range(self.i32[(self.codeptr_base + _8)],self.i32[((self.codeptr_base + _8) + 1)])], dtype=numpy.dtype(numpy.int32)))._a__3D(numpy.array([self.f64[(self.cconst_base + _10)] for _10 in range(self.i32[(self.codeptr_base + _8)],self.i32[((self.codeptr_base + _8) + 1)])], dtype=numpy.dtype(numpy.float64)))._a_S("\n")
   return (_0._toString_())
  @staticmethod
  def _match_peek_1hassp_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peek_1hassp_(*args):
    if len(args) != 0: return False
    return True
  def _peek_1hassp_alt_(self,):
    return self._peek_1hassp_()
  def _peek_1hassp_(self,):
   return ((self.peeki32((3 + self.peek_nd()))!=0))
  @staticmethod
  def _match_peek_1nnz_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peek_1nnz_(*args):
    if len(args) != 0: return False
    return True
  def _peek_1nnz_alt_(self,):
    return self._peek_1nnz_()
  def _peek_1nnz_(self,):
   return numpy.int32(self.peeki32((2 + self.peek_nd())))
  @staticmethod
  def _match_peek_1nelem_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peek_1nelem_(*args):
    if len(args) != 0: return False
    return True
  def _peek_1nelem_alt_(self,):
    return self._peek_1nelem_()
  def _peek_1nelem_(self,):
   return numpy.int32(self.peeki32((1 + self.peek_nd())))
  @staticmethod
  def _match_peek_1dim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_peek_1dim_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _peek_1dim_alt_I(self,_t__0):
    return self._peek_1dim_I(numpy.int32(__0))
  def _peek_1dim_I(self,_0):
   return numpy.int32(self.peeki32((_0 + 1)))
  @staticmethod
  def _match_peek_1nd_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peek_1nd_(*args):
    if len(args) != 0: return False
    return True
  def _peek_1nd_alt_(self,):
    return self._peek_1nd_()
  def _peek_1nd_(self,):
   return numpy.int32(self.peeki32())
  @staticmethod
  def _match_alloc_1expr_IIIZ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_Z__(_3))
  @staticmethod
  def _match_alt_alloc_1expr_IIIZ(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_Z__(_3))
  def _alloc_1expr_alt_IIIZ(self,_t__0,_t__1,_t__2,_t__3):
    return self._alloc_1expr_IIIZ(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2),_3)
  def _alloc_1expr_IIIZ(self,_0,_1,_2,_3):
   self.alloc_expr(_0,_1,_2,_3,0)
  @staticmethod
  def _match_alloc_1expr_IIIZI(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_I__(_2) and __arg_match_Z__(_3) and __arg_match_I__(_4))
  @staticmethod
  def _match_alt_alloc_1expr_IIIZI(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_I__(_2) and __arg_alt_match_Z__(_3) and __arg_alt_match_I__(_4))
  def _alloc_1expr_alt_IIIZI(self,_t__0,_t__1,_t__2,_t__3,_t__4):
    return self._alloc_1expr_IIIZI(numpy.int32(__0),numpy.int32(__1),numpy.int32(__2),_3,numpy.int32(__4))
  def _alloc_1expr_IIIZI(self,_0,_1,_2,_3,_4):
   self.cof_base = self.allocf64(_2)
   self.cconst_base = self.allocf64(_4)
   self.nidxs_base = self.alloci64(_2)
   self.sp_base = (self.alloci64(_1) if (_3 ) else (- 9999))
   self.code_base = self.alloci32(_4)
   self.codeptr_base = (self.alloci32((_2 + 1)) if ((_4 > 0) ) else (- 9999))
   self.ptr_base = self.alloci32((_1 + 1))
   self.pushi32(_4)
   self.pushi32((1 if (_3 ) else 0))
   self.pushi32(_2)
   self.pushi32(_1)
   self.shape_base = self.alloci32(_0)
   self.pushi32(_0)
   (self.ncodeatom) = _4
   (self.nd) = _0
   (self.nelem) = _1
   (self.nnz) = _2
   (self.hassp) = _3
  @staticmethod
  def _match_pop_1expr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_pop_1expr_(*args):
    if len(args) != 0: return False
    return True
  def _pop_1expr_alt_(self,):
    return self._pop_1expr_()
  def _pop_1expr_(self,):
   self.nd = self.popi32()
   self.shape_base = self.popi32(self.nd)
   self.nelem = self.popi32()
   self.nnz = self.popi32()
   self.hassp = (self.popi32()!=0)
   self.ncodeatom = self.popi32()
   self.ptr_base = self.popi32((self.nelem + 1))
   self.codeptr_base = (self.popi32((self.nnz + 1)) if ((self.ncodeatom > 0) ) else (- 9999))
   self.code_base = self.popi32(self.ncodeatom)
   self.sp_base = (self.popi64(self.nelem) if (self.hassp ) else (- 9999))
   self.nidxs_base = self.popi64(self.nnz)
   self.cconst_base = self.popf64(self.ncodeatom)
   self.cof_base = self.popf64(self.nnz)
  @staticmethod
  def _match_move_1expr_Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4WorkStack_2__(_0))
  @staticmethod
  def _match_alt_move_1expr_Lmosek_4fusion_4WorkStack_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4WorkStack_2__(_0))
  def _move_1expr_alt_Lmosek_4fusion_4WorkStack_2(self,_t__0):
    return self._move_1expr_Lmosek_4fusion_4WorkStack_2(_0)
  def _move_1expr_Lmosek_4fusion_4WorkStack_2(self,_0):
   _1=self.pi32
   _2=self.pi64
   _3=self.pf64
   self.pop_expr()
   _4=_0.alloci32((_1 - self.pi32))
   _5=_0.alloci64((_2 - self.pi64))
   _6=_0.allocf64((_3 - self.pf64))
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.i32,self.pi32,(_0.i32),_4,(_1 - self.pi32))
   mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.i64,self.pi64,(_0.i64),_5,(_2 - self.pi64))
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.f64,self.pf64,(_0.f64),_6,(_3 - self.pf64))
  @staticmethod
  def _match_peek_1expr_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peek_1expr_(*args):
    if len(args) != 0: return False
    return True
  def _peek_1expr_alt_(self,):
    return self._peek_1expr_()
  def _peek_1expr_(self,):
   _0=self.pi32
   _1=self.pi64
   _2=self.pf64
   self.pop_expr()
   self.pi32 = _0
   self.pi64 = _1
   self.pf64 = _2
  @staticmethod
  def _match_ensure_1sparsity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_ensure_1sparsity_(*args):
    if len(args) != 0: return False
    return True
  def _ensure_1sparsity_alt_(self,):
    return self._ensure_1sparsity_()
  def _ensure_1sparsity_(self,):
   _0=self.i32[(self.pi32 - 1)]
   _1=(self.i32[((self.pi32 - _0) - 3)]!=0)
   _2=self.i32[((self.pi32 - _0) - 1)]
   if (not _1):
    self.i32[((self.pi32 - _0) - 3)] = 1
    _3=self.alloci64(_2)
    for _4 in range(0,_2):
     self.i64[_3] = _4
  @staticmethod
  def _match_clear_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_clear_(*args):
    if len(args) != 0: return False
    return True
  def _clear_alt_(self,):
    return self._clear_()
  def _clear_(self,):
   self.pi32 = 0
   self.pi64 = 0
   self.pf64 = 0
  @staticmethod
  def _match_allocf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_allocf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _allocf64_alt_I(self,_t__0):
    return self._allocf64_I(numpy.int32(__0))
  def _allocf64_I(self,_0):
   self.ensuref64(_0)
   _1=self.pf64
   for _2 in range(self.pf64,(self.pf64 + _0)):
    self.f64[_2] = 99997
   self.pf64 += _0
   return numpy.int32(_1)
  @staticmethod
  def _match_alloci64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_alloci64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _alloci64_alt_I(self,_t__0):
    return self._alloci64_I(numpy.int32(__0))
  def _alloci64_I(self,_0):
   self.ensurei64(_0)
   _1=self.pi64
   for _2 in range(self.pi64,(self.pi64 + _0)):
    self.i64[_2] = 99998
   self.pi64 += _0
   return numpy.int32(_1)
  @staticmethod
  def _match_alloci32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_alloci32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _alloci32_alt_I(self,_t__0):
    return self._alloci32_I(numpy.int32(__0))
  def _alloci32_I(self,_0):
   if (_0 > 0):
    self.ensurei32(_0)
    _1=self.pi32
    for _2 in range(self.pi32,(self.pi32 + _0)):
     self.i32[_2] = 99999
    self.pi32 += _0
    return numpy.int32(_1)
   else:
    return numpy.int32(0)
  @staticmethod
  def _match_pushf64_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_pushf64_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  def _pushf64_alt_D(self,_t__0):
    return self._pushf64_D(numpy.float64(__0))
  def _pushf64_D(self,_0):
   self.ensuref64(1)
   self.f64[self.pf64] = _0
   self.pf64 += 1
  @staticmethod
  def _match_pushi64_J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_J__(_0))
  @staticmethod
  def _match_alt_pushi64_J(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_J__(_0))
  def _pushi64_alt_J(self,_t__0):
    return self._pushi64_J(numpy.int64(__0))
  def _pushi64_J(self,_0):
   self.ensurei64(1)
   self.i64[self.pi64] = _0
   self.pi64 += 1
  @staticmethod
  def _match_pushi32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_pushi32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _pushi32_alt_I(self,_t__0):
    return self._pushi32_I(numpy.int32(__0))
  def _pushi32_I(self,_0):
   self.ensurei32(1)
   self.i32[self.pi32] = _0
   self.pi32 += 1
  @staticmethod
  def _match_ensuref64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_ensuref64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _ensuref64_alt_I(self,_t__0):
    return self._ensuref64_I(numpy.int32(__0))
  def _ensuref64_I(self,_0):
   if ((self.pf64 + _0) > int((self.f64).shape[0])):
    _1=((int((self.f64).shape[0]) * 2) if (((_0 < int((self.f64).shape[0])) and (int((self.f64).shape[0]) < 1073741823)) ) else (int((self.f64).shape[0]) + _0))
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.float64))
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.f64,0,_2,0,self.pf64)
    self.f64 = _2
  @staticmethod
  def _match_ensurei64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_ensurei64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _ensurei64_alt_I(self,_t__0):
    return self._ensurei64_I(numpy.int32(__0))
  def _ensurei64_I(self,_0):
   if ((self.pi64 + _0) > int((self.i64).shape[0])):
    _1=(int((self.i64).shape[0]) + (int((self.i64).shape[0]) if (((_0 < int((self.i64).shape[0])) and (int((self.i64).shape[0]) < 1073741823)) ) else _0))
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int64))
    mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.i64,0,_2,0,self.pi64)
    self.i64 = _2
  @staticmethod
  def _match_ensurei32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_ensurei32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _ensurei32_alt_I(self,_t__0):
    return self._ensurei32_I(numpy.int32(__0))
  def _ensurei32_I(self,_0):
   if ((self.pi32 + _0) > int((self.i32).shape[0])):
    _1=((int((self.i32).shape[0]) * 2) if (((_0 < int((self.i32).shape[0])) and (int((self.i32).shape[0]) < 1073741823)) ) else (int((self.i32).shape[0]) + _0))
    _2=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.i32,0,_2,0,self.pi32)
    self.i32 = _2
  @staticmethod
  def _match_popf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_popf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _popf64_alt_I(self,_t__0):
    return self._popf64_I(numpy.int32(__0))
  def _popf64_I(self,_0):
   self.pf64 -= _0
   if (self.pf64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   return numpy.int32(self.pf64)
  @staticmethod
  def _match_popi64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_popi64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _popi64_alt_I(self,_t__0):
    return self._popi64_I(numpy.int32(__0))
  def _popi64_I(self,_0):
   self.pi64 -= _0
   if (self.pi64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   return numpy.int32(self.pi64)
  @staticmethod
  def _match_popi32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_popi32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _popi32_alt_I(self,_t__0):
    return self._popi32_I(numpy.int32(__0))
  def _popi32_I(self,_0):
   self.pi32 -= _0
   if (self.pi32 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   return numpy.int32(self.pi32)
  @staticmethod
  def _match_popf64_I_3DI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3D__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_popf64_I_3DI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3D__(_1) and __arg_alt_match_I__(_2))
  def _popf64_alt_I_3DI(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.float64))
   _2=numpy.int32(_t__2)
   _1_res = self._popf64_I_3DI(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _popf64_I_3DI(self,_0,_1,_2):
   self.pf64 -= _0
   if (self.pf64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.f64,self.pf64,_1,_2,_0)
  @staticmethod
  def _match_popi64_I_3JI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3J__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_popi64_I_3JI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match_I__(_2))
  def _popi64_alt_I_3JI(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.int32(_t__2)
   _1_res = self._popi64_I_3JI(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _popi64_I_3JI(self,_0,_1,_2):
   self.pi64 -= _0
   if (self.pi64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   mosek.fusion.Utils.Tools._arraycopy__3JI_3JII(self.i64,self.pi64,_1,_2,_0)
  @staticmethod
  def _match_popi32_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_popi32_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_I__(_2))
  def _popi32_alt_I_3II(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _1_res = self._popi32_I_3II(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _popi32_I_3II(self,_0,_1,_2):
   self.pi32 -= _0
   if (self.pi32 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.i32,self.pi32,_1,_2,_0)
  @staticmethod
  def _match_popf64_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_popf64_(*args):
    if len(args) != 0: return False
    return True
  def _popf64_alt_(self,):
    return self._popf64_()
  def _popf64_(self,):
   self.pf64 -= 1
   if (self.pf64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   return numpy.float64(self.f64[self.pf64])
  @staticmethod
  def _match_popi64_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_popi64_(*args):
    if len(args) != 0: return False
    return True
  def _popi64_alt_(self,):
    return self._popi64_()
  def _popi64_(self,):
   if (self.pi64 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   self.pi64 -= 1
   return numpy.int64(self.i64[self.pi64])
  @staticmethod
  def _match_popi32_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_popi32_(*args):
    if len(args) != 0: return False
    return True
  def _popi32_alt_(self,):
    return self._popi32_()
  def _popi32_(self,):
   self.pi32 -= 1
   if (self.pi32 < 0):
    raise mosek_fusion_UnexpectedError._ctor_S("Internal: stack underflow")
   return numpy.int32(self.i32[self.pi32])
  @staticmethod
  def _match_peekf64_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peekf64_(*args):
    if len(args) != 0: return False
    return True
  def _peekf64_alt_(self,):
    return self._peekf64_()
  def _peekf64_(self,):
   return numpy.float64(self.f64[(self.pf64 - 1)])
  @staticmethod
  def _match_peeki64_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peeki64_(*args):
    if len(args) != 0: return False
    return True
  def _peeki64_alt_(self,):
    return self._peeki64_()
  def _peeki64_(self,):
   return numpy.int64(self.i64[(self.pi64 - 1)])
  @staticmethod
  def _match_peeki32_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_peeki32_(*args):
    if len(args) != 0: return False
    return True
  def _peeki32_alt_(self,):
    return self._peeki32_()
  def _peeki32_(self,):
   return numpy.int32(self.i32[(self.pi32 - 1)])
  @staticmethod
  def _match_peekf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_peekf64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _peekf64_alt_I(self,_t__0):
    return self._peekf64_I(numpy.int32(__0))
  def _peekf64_I(self,_0):
   return numpy.float64(self.f64[((self.pf64 - _0) - 1)])
  @staticmethod
  def _match_peeki64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_peeki64_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _peeki64_alt_I(self,_t__0):
    return self._peeki64_I(numpy.int32(__0))
  def _peeki64_I(self,_0):
   return numpy.int64(self.i64[((self.pi64 - _0) - 1)])
  @staticmethod
  def _match_peeki32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_peeki32_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _peeki32_alt_I(self,_t__0):
    return self._peeki32_I(numpy.int32(__0))
  def _peeki32_I(self,_0):
   return numpy.int32(self.i32[((self.pi32 - _0) - 1)])
 return WorkStack
mosek_fusion_WorkStack=__mk_mosek_fusion_WorkStack()
del __mk_mosek_fusion_WorkStack
def __mk_mosek_fusion_SymmetricMatrix():
 class SymmetricMatrix(object):
  __slots__ = ['_SymmetricMatrix__nnz','_SymmetricMatrix__scale','_SymmetricMatrix__vval','_SymmetricMatrix__vsubj','_SymmetricMatrix__vsubi','_SymmetricMatrix__uval','_SymmetricMatrix__usubj','_SymmetricMatrix__usubi','_SymmetricMatrix__d1','_SymmetricMatrix__d0']
  @staticmethod
  def rankOne(*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_rankOne__3D(*args): 
      return mosek_fusion_SymmetricMatrix._rankOne__3D(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_rankOne__3D(*args): 
      return mosek_fusion_SymmetricMatrix._rankOne_alt__3D(*args)
    elif mosek_fusion_SymmetricMatrix._match_rankOne_I_3I_3D(*args): 
      return mosek_fusion_SymmetricMatrix._rankOne_I_3I_3D(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_rankOne_I_3I_3D(*args): 
      return mosek_fusion_SymmetricMatrix._rankOne_alt_I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list rankOne('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.rankOne(array(double,ndim=1))\n\tmosek.fusion.SymmetricMatrix.rankOne(int32,array(int32,ndim=1),array(double,ndim=1))')
  def sub(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_sub_Lmosek_4fusion_4SymmetricMatrix_2(*args): 
      return self._sub_Lmosek_4fusion_4SymmetricMatrix_2(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_sub_Lmosek_4fusion_4SymmetricMatrix_2(*args): 
      return self._sub_alt_Lmosek_4fusion_4SymmetricMatrix_2(*args)
    else:
      raise ValueError('Invalid argument list sub('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.sub(mosek.fusion.SymmetricMatrix)')
  def getdim(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_getdim_(*args): 
      return self._getdim_(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_getdim_(*args): 
      return self._getdim_alt_(*args)
    else:
      raise ValueError('Invalid argument list getdim('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.getdim()')
  def mul(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_mul_D(*args): 
      return self._mul_D(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_mul_D(*args): 
      return self._mul_alt_D(*args)
    else:
      raise ValueError('Invalid argument list mul('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.mul(double)')
  @staticmethod
  def diag(*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_diag__3D(*args): 
      return mosek_fusion_SymmetricMatrix._diag__3D(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_diag__3D(*args): 
      return mosek_fusion_SymmetricMatrix._diag_alt__3D(*args)
    else:
      raise ValueError('Invalid argument list diag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.diag(array(double,ndim=1))')
  def add(self,*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_add_Lmosek_4fusion_4SymmetricMatrix_2(*args): 
      return self._add_Lmosek_4fusion_4SymmetricMatrix_2(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_add_Lmosek_4fusion_4SymmetricMatrix_2(*args): 
      return self._add_alt_Lmosek_4fusion_4SymmetricMatrix_2(*args)
    else:
      raise ValueError('Invalid argument list add('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.add(mosek.fusion.SymmetricMatrix)')
  @staticmethod
  def antiDiag(*args):
    if False: pass
    elif mosek_fusion_SymmetricMatrix._match_antiDiag__3D(*args): 
      return mosek_fusion_SymmetricMatrix._antiDiag__3D(*args)
    elif mosek_fusion_SymmetricMatrix._match_alt_antiDiag__3D(*args): 
      return mosek_fusion_SymmetricMatrix._antiDiag_alt__3D(*args)
    else:
      raise ValueError('Invalid argument list antiDiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SymmetricMatrix.antiDiag(array(double,ndim=1))')
  def __repr__(self): return 'mosek.fusion.SymmetricMatrix'
  @staticmethod
  def _ctor_II_3I_3I_3D_3I_3I_3DD(dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale):
    o = SymmetricMatrix.__new__(SymmetricMatrix)
    o._ctor_init_II_3I_3I_3D_3I_3I_3DD(dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3D_3I_3I_3DD(*args):
    if len(args) != 9: return False
    dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale, = args
    return (__arg_match_I__(dim0) and __arg_match_I__(dim1) and __arg_match__3I__(usubi) and __arg_match__3I__(usubj) and __arg_match__3D__(uval) and __arg_match__3I__(vsubi) and __arg_match__3I__(vsubj) and __arg_match__3D__(vval) and __arg_match_D__(scale))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3D_3I_3I_3DD(*args):
    if len(args) != 9: return False
    dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale, = args
    return (__arg_alt_match_I__(dim0) and __arg_alt_match_I__(dim1) and __arg_alt_match__3I__(usubi) and __arg_alt_match__3I__(usubj) and __arg_alt_match__3D__(uval) and __arg_alt_match__3I__(vsubi) and __arg_alt_match__3I__(vsubj) and __arg_alt_match__3D__(vval) and __arg_alt_match_D__(scale))
  def _ctor_alt_init_II_3I_3I_3D_3I_3I_3DD(self,dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale):
    self._ctor_init_II_3I_3I_3D_3I_3I_3DD(numpy.int32(dim0),numpy.int32(dim1),numpy.array(usubi,dtype=numpy.dtype(numpy.int32)),numpy.array(usubj,dtype=numpy.dtype(numpy.int32)),numpy.array(uval,dtype=numpy.dtype(numpy.float64)),numpy.array(vsubi,dtype=numpy.dtype(numpy.int32)),numpy.array(vsubj,dtype=numpy.dtype(numpy.int32)),numpy.array(vval,dtype=numpy.dtype(numpy.float64)),numpy.float64(scale))
  def _ctor_init_II_3I_3I_3D_3I_3I_3DD(self,dim0,dim1,usubi,usubj,uval,vsubi,vsubj,vval,scale):
   (self.__d0) = dim0
   (self.__d1) = dim1
   (self.__usubi) = usubi
   (self.__usubj) = usubj
   (self.__uval) = uval
   (self.__vsubi) = vsubi
   (self.__vsubj) = vsubj
   (self.__vval) = vval
   (self.__scale) = scale
   self.__nnz = (- 1)
  @staticmethod
  def _match_rankOne_I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_rankOne_I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _rankOne_alt_I_3I_3D(_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_SymmetricMatrix._rankOne_I_3I_3D(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _rankOne_I_3I_3D(_0,_1,_2):
   if (int((_1).shape[0])!=int((_2).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Mismatching array lengths")
   for _3 in range(0,int((_1).shape[0])):
    if ((_1[_3] < 0) or (_1[_3] >= _0)):
     raise mosek_fusion_LengthError._ctor_S("Invalid index in argument 'sub'")
   _4=numpy.array([_1[_5] for _5 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))
   _6=numpy.array([1 for _7 in range(0,int((_1).shape[0]))], dtype=numpy.dtype(numpy.int32))
   _8=numpy.array([_2[_9] for _9 in range(0,int((_2).shape[0]))], dtype=numpy.dtype(numpy.float64))
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(_0,1,_4,_6,_8,_4,_6,_8,1.0))
  @staticmethod
  def _match_rankOne__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_rankOne__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _rankOne_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_SymmetricMatrix._rankOne__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _rankOne__3D(_0):
   _1=int((_0).shape[0])
   _2=numpy.array([_3 for _3 in range(0,_1)], dtype=numpy.dtype(numpy.int32))
   _4=numpy.array([1 for _5 in range(0,_1)], dtype=numpy.dtype(numpy.int32))
   _6=numpy.array([_0[_7] for _7 in range(0,_1)], dtype=numpy.dtype(numpy.float64))
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(_1,1,_2,_4,_6,_2,_4,_6,1.0))
  @staticmethod
  def _match_antiDiag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_antiDiag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _antiDiag_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_SymmetricMatrix._antiDiag__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _antiDiag__3D(_0):
   _1=int((_0).shape[0])
   _2=numpy.array([_3 for _3 in range(0,_1)], dtype=numpy.dtype(numpy.int32))
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(_1,_1,_2,numpy.array([(_1 - _4) for _4 in range(0,_1)], dtype=numpy.dtype(numpy.int32)),numpy.array([_0[_5] for _5 in range(0,_1)], dtype=numpy.dtype(numpy.float64)),_2,_2,numpy.array([1.0 for _6 in range(0,_1)], dtype=numpy.dtype(numpy.float64)),1.0))
  @staticmethod
  def _match_diag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_diag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _diag_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_SymmetricMatrix._diag__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _diag__3D(_0):
   _1=int((_0).shape[0])
   _2=numpy.array([_3 for _3 in range(0,_1)], dtype=numpy.dtype(numpy.int32))
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(_1,_1,_2,_2,numpy.array([_0[_4] for _4 in range(0,_1)], dtype=numpy.dtype(numpy.float64)),_2,_2,numpy.array([1.0 for _5 in range(0,_1)], dtype=numpy.dtype(numpy.float64)),1.0))
  @staticmethod
  def _match_add_Lmosek_4fusion_4SymmetricMatrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4SymmetricMatrix_2__(_0))
  @staticmethod
  def _match_alt_add_Lmosek_4fusion_4SymmetricMatrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4SymmetricMatrix_2__(_0))
  def _add_alt_Lmosek_4fusion_4SymmetricMatrix_2(self,_t__0):
    return self._add_Lmosek_4fusion_4SymmetricMatrix_2(_0)
  def _add_Lmosek_4fusion_4SymmetricMatrix_2(self,_0):
   _1=self.getdim()
   if (_0.getdim()!=_1):
    raise mosek_fusion_DimensionError._ctor_S("Mismatching dimensions")
   _2=int((self.__usubi).shape[0])
   _3=int(((_0.__usubi)).shape[0])
   _4=(_2 + _3)
   _5=int((self.__vsubi).shape[0])
   _6=int(((_0.__vsubi)).shape[0])
   _7=(_5 + _6)
   _8=numpy.zeros((_7,), dtype=numpy.dtype(numpy.float64))
   _9=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int32))
   _10=numpy.zeros((_7,), dtype=numpy.dtype(numpy.int32))
   _11=numpy.zeros((_4,), dtype=numpy.dtype(numpy.float64))
   _12=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   _13=numpy.zeros((_4,), dtype=numpy.dtype(numpy.int32))
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__usubi,0,_13,0,_2)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III((_0.__usubi),0,_13,_2,_3)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__usubj,0,_12,0,_2)
   for _14 in range(0,_3):
    _12[(_14 + _2)] = ((_0.__usubj)[_14] + self.__d1)
   if ((self.__scale > 1.0) or (self.__scale < 1.0)):
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.__uval,0,_11,0,_2)
   else:
    for _15 in range(0,_2):
     _11[_15] = (self.__scale * self.__uval[_15])
   if (((_0.__scale) > 1.0) or ((_0.__scale) < 1.0)):
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII((_0.__uval),0,_11,_2,_3)
   else:
    for _16 in range(0,_3):
     _11[(_16 + _2)] = ((_0.__scale) * (_0.__uval)[_16])
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__usubi,0,_13,0,_2)
   for _17 in range(0,_6):
    _10[(_17 + _5)] = ((_0.__vsubi)[_17] + (_0.__d1))
   mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__vsubj,0,_9,0,_5)
   mosek.fusion.Utils.Tools._arraycopy__3II_3III((_0.__vsubj),_5,_9,_5,_6)
   if ((self.__scale > 1.0) or (self.__scale < 1.0)):
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self.__vval,0,_8,0,_5)
   else:
    for _18 in range(0,_5):
     _8[_18] = (self.__scale * self.__vval[_18])
   if (((_0.__scale) > 1.0) or ((_0.__scale) < 1.0)):
    mosek.fusion.Utils.Tools._arraycopy__3DI_3DII((_0.__vval),0,_8,_5,_6)
   else:
    for _19 in range(0,_6):
     _8[(_19 + _5)] = ((_0.__scale) * (_0.__vval)[_19])
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(self.__d0,(self.__d1 + (_0.__d1)),_13,_12,_11,_10,_9,_8,1.0))
  @staticmethod
  def _match_sub_Lmosek_4fusion_4SymmetricMatrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4SymmetricMatrix_2__(_0))
  @staticmethod
  def _match_alt_sub_Lmosek_4fusion_4SymmetricMatrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4SymmetricMatrix_2__(_0))
  def _sub_alt_Lmosek_4fusion_4SymmetricMatrix_2(self,_t__0):
    return self._sub_Lmosek_4fusion_4SymmetricMatrix_2(_0)
  def _sub_Lmosek_4fusion_4SymmetricMatrix_2(self,_0):
   return (self.add(_0.mul((- 1.0))))
  @staticmethod
  def _match_mul_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_D__(_0))
  @staticmethod
  def _match_alt_mul_D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_D__(_0))
  def _mul_alt_D(self,_t__0):
    return self._mul_D(numpy.float64(__0))
  def _mul_D(self,_0):
   return (mosek_fusion_SymmetricMatrix._ctor_II_3I_3I_3D_3I_3I_3DD(self.__d0,self.__d1,self.__usubi,self.__usubj,self.__uval,self.__vsubi,self.__vsubj,self.__vval,(self.__scale * _0)))
  @staticmethod
  def _match_getdim_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getdim_(*args):
    if len(args) != 0: return False
    return True
  def _getdim_alt_(self,):
    return self._getdim_()
  def _getdim_(self,):
   return numpy.int32(self.__d0)
 return SymmetricMatrix
mosek_fusion_SymmetricMatrix=__mk_mosek_fusion_SymmetricMatrix()
del __mk_mosek_fusion_SymmetricMatrix
def __mk_mosek_fusion_NDSparseArray():
 class NDSparseArray(object):
  __slots__ = ['_cof','_inst','_dims','_size']
  @staticmethod
  def make(*args):
    if False: pass
    elif mosek_fusion_NDSparseArray._match_make_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_NDSparseArray._make_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_NDSparseArray._match_alt_make_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_NDSparseArray._make_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_NDSparseArray._match_make__3I_3J_3D(*args): 
      return mosek_fusion_NDSparseArray._make__3I_3J_3D(*args)
    elif mosek_fusion_NDSparseArray._match_alt_make__3I_3J_3D(*args): 
      return mosek_fusion_NDSparseArray._make_alt__3I_3J_3D(*args)
    elif mosek_fusion_NDSparseArray._match_make__3I_3_5I_3D(*args): 
      return mosek_fusion_NDSparseArray._make__3I_3_5I_3D(*args)
    elif mosek_fusion_NDSparseArray._match_alt_make__3I_3_5I_3D(*args): 
      return mosek_fusion_NDSparseArray._make_alt__3I_3_5I_3D(*args)
    else:
      raise ValueError('Invalid argument list make('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.NDSparseArray.make(mosek.fusion.Matrix)\n\tmosek.fusion.NDSparseArray.make(array(int32,ndim=1),array(int64,ndim=1),array(double,ndim=1))\n\tmosek.fusion.NDSparseArray.make(array(int32,ndim=1),array(int32,ndim=2),array(double,ndim=1))')
  def __repr__(self): return 'mosek.fusion.NDSparseArray'
  @staticmethod
  def _ctor__3I_3_5I_3D(dims_,sub,cof_):
    o = NDSparseArray.__new__(NDSparseArray)
    o._ctor_init__3I_3_5I_3D(dims_,sub,cof_)
    return o
  @staticmethod
  def __match_ctor__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    dims_,sub,cof_, = args
    return (__arg_match__3I__(dims_) and __arg_match__3_5I__(sub) and __arg_match__3D__(cof_))
  @staticmethod
  def __match_alt_ctor__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    dims_,sub,cof_, = args
    return (__arg_alt_match__3I__(dims_) and __arg_alt_match__3_5I__(sub) and __arg_alt_match__3D__(cof_))
  def _ctor_alt_init__3I_3_5I_3D(self,dims_,sub,cof_):
    self._ctor_init__3I_3_5I_3D(numpy.array(dims_,dtype=numpy.dtype(numpy.int32)),numpy.array(sub,dtype=numpy.dtype(numpy.int32)),numpy.array(cof_,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init__3I_3_5I_3D(self,dims_,sub,cof_):
   _0=numpy.zeros((int((sub).shape[0]),), dtype=numpy.dtype(numpy.int64))
   self._size = 1
   for _1 in range(0,int((dims_).shape[0])):
    self._size = (self._size * dims_[_1])
   _2=int((dims_).shape[0])
   if (int((sub).shape[0])!=int((cof_).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Mismatching data array length")
   if (int((sub).shape[1])!=_2):
    raise mosek_fusion_IndexError._ctor_S("An index key in sub has wrong length")
   _3=False
   for _4 in range(0,int((sub).shape[0])):
    for _5 in range(0,int((sub).shape[1])):
     if ((sub[_4,_5] < 0) or (sub[_4,_5] >= dims_[_5])):
      _3 = True
   if _3:
    raise mosek_fusion_IndexError._ctor_S("An index in sub is out of bounds")
   for _6 in range(0,int((sub).shape[0])):
    _7=0
    for _8 in range(0,int((sub).shape[1])):
     _7 = ((_7 * dims_[_8]) + sub[_6,_8])
    _0[_6] = _7
   self._dims = mosek.fusion.Utils.Tools._arraycopy__3I(dims_)
   _9=True
   for _10 in range(1,int((_0).shape[0])):
    _9 = (_9 and (_0[_10] >= _0[(_10 - 1)]))
   if _9:
    _11=1
    for _12 in range(1,int((_0).shape[0])):
     if (_0[(_12 - 1)] < _0[_12]):
      _11 += 1
    if (_11==int((_0).shape[0])):
     self._inst = mosek.fusion.Utils.Tools._arraycopy__3J(_0)
     self._cof = mosek.fusion.Utils.Tools._arraycopy__3D(cof_)
    else:
     self._inst = numpy.zeros((_11,), dtype=numpy.dtype(numpy.int64))
     self._inst[0] = _0[0]
     self._cof = numpy.zeros((_11,), dtype=numpy.dtype(numpy.float64))
     self._cof[0] = cof_[0]
     _13=0
     for _14 in range(1,int((_0).shape[0])):
      if (_0[_14] > _0[(_14 - 1)]):
       _13 += 1
       self._inst[_13] = _0[_14]
       self._cof[_13] = cof_[_14]
      else:
       self._cof[_13] = (self._cof[_13] + cof_[_14])
   else:
    _15=mosek.fusion.Utils.Tools._range_J(int((_0).shape[0]))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_15,_0,None,0,int((_0).shape[0]))
    _16=1
    for _17 in range(1,int((_0).shape[0])):
     if (_0[_15[(_17 - 1)]] < _0[_15[_17]]):
      _16 += 1
    self._inst = numpy.zeros((_16,), dtype=numpy.dtype(numpy.int64))
    self._inst[0] = _0[_15[0]]
    self._cof = numpy.zeros((_16,), dtype=numpy.dtype(numpy.float64))
    self._cof[0] = cof_[_15[0]]
    _18=0
    for _19 in range(1,int((_0).shape[0])):
     if (_0[_15[_19]] > _0[_15[(_19 - 1)]]):
      _18 += 1
      self._inst[_18] = _0[_15[_19]]
      self._cof[_18] = cof_[_15[_19]]
     else:
      self._cof[_18] = (self._cof[_18] + cof_[_15[_19]])
  @staticmethod
  def _ctor__3I_3J_3D(dims_,inst_,cof_):
    o = NDSparseArray.__new__(NDSparseArray)
    o._ctor_init__3I_3J_3D(dims_,inst_,cof_)
    return o
  @staticmethod
  def __match_ctor__3I_3J_3D(*args):
    if len(args) != 3: return False
    dims_,inst_,cof_, = args
    return (__arg_match__3I__(dims_) and __arg_match__3J__(inst_) and __arg_match__3D__(cof_))
  @staticmethod
  def __match_alt_ctor__3I_3J_3D(*args):
    if len(args) != 3: return False
    dims_,inst_,cof_, = args
    return (__arg_alt_match__3I__(dims_) and __arg_alt_match__3J__(inst_) and __arg_alt_match__3D__(cof_))
  def _ctor_alt_init__3I_3J_3D(self,dims_,inst_,cof_):
    self._ctor_init__3I_3J_3D(numpy.array(dims_,dtype=numpy.dtype(numpy.int32)),numpy.array(inst_,dtype=numpy.dtype(numpy.int64)),numpy.array(cof_,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init__3I_3J_3D(self,dims_,inst_,cof_):
   self._size = 1
   for _0 in range(0,int((dims_).shape[0])):
    self._size = (self._size * dims_[_0])
   _1=int((inst_).shape[0])
   if (_1!=int((cof_).shape[0])):
    raise mosek_fusion_LengthError._ctor_S("Mismatching data array length")
   _2=False
   for _3 in range(0,_1):
    _2 = (_2 or ((inst_[_3] < 0) or (inst_[_3] >= self._size)))
   if _2:
    raise mosek_fusion_IndexError._ctor_S("An index in inst is out of bounds")
   self._dims = mosek.fusion.Utils.Tools._arraycopy__3I(dims_)
   _4=True
   for _5 in range(1,int((inst_).shape[0])):
    _4 = (_4 and (inst_[_5] >= inst_[(_5 - 1)]))
   if _4:
    _6=1
    for _7 in range(1,int((inst_).shape[0])):
     if (inst_[(_7 - 1)] < inst_[_7]):
      _6 += 1
    if (_6==int((inst_).shape[0])):
     self._inst = mosek.fusion.Utils.Tools._arraycopy__3J(inst_)
     self._cof = mosek.fusion.Utils.Tools._arraycopy__3D(cof_)
    else:
     self._inst = numpy.zeros((_6,), dtype=numpy.dtype(numpy.int64))
     self._inst[0] = inst_[0]
     self._cof = numpy.zeros((_6,), dtype=numpy.dtype(numpy.float64))
     self._cof[0] = cof_[0]
     _8=0
     for _9 in range(1,int((inst_).shape[0])):
      if (inst_[_9] > inst_[(_9 - 1)]):
       _8 += 1
       self._inst[_8] = inst_[_9]
       self._cof[_8] = cof_[_9]
      else:
       self._cof[_8] = (self._cof[_8] + cof_[_9])
   else:
    _10=mosek.fusion.Utils.Tools._range_J(int((inst_).shape[0]))
    mosek.fusion.CommonTools._argQsort__3J_3J_3JJJ(_10,inst_,None,0,int((inst_).shape[0]))
    _11=1
    for _12 in range(1,int((inst_).shape[0])):
     if (inst_[_10[(_12 - 1)]] < inst_[_10[_12]]):
      _11 += 1
    self._inst = numpy.zeros((_11,), dtype=numpy.dtype(numpy.int64))
    self._inst[0] = inst_[_10[0]]
    self._cof = numpy.zeros((_11,), dtype=numpy.dtype(numpy.float64))
    self._cof[0] = cof_[_10[0]]
    _13=0
    for _14 in range(1,int((inst_).shape[0])):
     if (inst_[_10[_14]] > self._inst[_10[(_14 - 1)]]):
      _13 += 1
      self._inst[_13] = inst_[_10[_14]]
      self._cof[_13] = cof_[_10[_14]]
     else:
      self._cof[_13] = (self._cof[_13] + cof_[_10[_14]])
  @staticmethod
  def _ctor_Lmosek_4fusion_4Matrix_2(m):
    o = NDSparseArray.__new__(NDSparseArray)
    o._ctor_init_Lmosek_4fusion_4Matrix_2(m)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    m, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(m))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    m, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(m))
  def _ctor_alt_init_Lmosek_4fusion_4Matrix_2(self,m):
    self._ctor_init_Lmosek_4fusion_4Matrix_2(m)
  def _ctor_init_Lmosek_4fusion_4Matrix_2(self,m):
   _0=m.numNonzeros()
   _1=m.numColumns()
   _2=m.numRows()
   _3=numpy.zeros((_0,), dtype=numpy.dtype(numpy.float64))
   _4=numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
   _5=numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
   m.getDataAsTriplets(_5,_4,_3)
   self._size = (numpy.int64(m.numRows()) * numpy.int64(m.numColumns()))
   self._dims = numpy.array([_2,_1], dtype=numpy.dtype(numpy.int32))
   self._inst = numpy.array([((numpy.int64(_5[_6]) * _1) + numpy.int64(_4[_6])) for _6 in range(0,_0)], dtype=numpy.dtype(numpy.int64))
   self._cof = _3
  @staticmethod
  def _match_make_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_make_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _make_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_NDSparseArray._make_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _make_Lmosek_4fusion_4Matrix_2(_0):
   return (mosek_fusion_NDSparseArray._ctor_Lmosek_4fusion_4Matrix_2(_0))
  @staticmethod
  def _match_make__3I_3J_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3J__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_make__3I_3J_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3J__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _make_alt__3I_3J_3D(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int64))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_NDSparseArray._make__3I_3J_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _make__3I_3J_3D(_0,_1,_2):
   return (mosek_fusion_NDSparseArray._ctor__3I_3J_3D(_0,_1,_2))
  @staticmethod
  def _match_make__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3_5I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_make__3I_3_5I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3_5I__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _make_alt__3I_3_5I_3D(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,ndmin=_monty.checkShape(_t__1,2),dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_NDSparseArray._make__3I_3_5I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _make__3I_3_5I_3D(_0,_1,_2):
   return (mosek_fusion_NDSparseArray._ctor__3I_3_5I_3D(_0,_1,_2))
 return NDSparseArray
mosek_fusion_NDSparseArray=__mk_mosek_fusion_NDSparseArray()
del __mk_mosek_fusion_NDSparseArray
def __mk_mosek_fusion_Matrix():
 class Matrix(object):
  __slots__ = ['_dimj','_dimi']
  def get(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_get_II(*args): 
      return self._get_II(*args)
    elif mosek_fusion_Matrix._match_alt_get_II(*args): 
      return self._get_alt_II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.get(int32,int32)')
  def numNonzeros(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_numNonzeros_(*args): 
      return self._numNonzeros_(*args)
    elif mosek_fusion_Matrix._match_alt_numNonzeros_(*args): 
      return self._numNonzeros_alt_(*args)
    else:
      raise ValueError('Invalid argument list numNonzeros('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.numNonzeros()')
  def getDataAsTriplets(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets__3I_3I_3D(*args)
    elif mosek_fusion_Matrix._match_alt_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets_alt__3I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list getDataAsTriplets('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.getDataAsTriplets(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))')
  @staticmethod
  def ones(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_ones_II(*args): 
      return mosek_fusion_Matrix._ones_II(*args)
    elif mosek_fusion_Matrix._match_alt_ones_II(*args): 
      return mosek_fusion_Matrix._ones_alt_II(*args)
    else:
      raise ValueError('Invalid argument list ones('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.ones(int32,int32)')
  def isSparse(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_isSparse_(*args): 
      return self._isSparse_(*args)
    elif mosek_fusion_Matrix._match_alt_isSparse_(*args): 
      return self._isSparse_alt_(*args)
    else:
      raise ValueError('Invalid argument list isSparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.isSparse()')
  def numColumns(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_numColumns_(*args): 
      return self._numColumns_(*args)
    elif mosek_fusion_Matrix._match_alt_numColumns_(*args): 
      return self._numColumns_alt_(*args)
    else:
      raise ValueError('Invalid argument list numColumns('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.numColumns()')
  @staticmethod
  def diag(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_diag__3D(*args): 
      return mosek_fusion_Matrix._diag__3D(*args)
    elif mosek_fusion_Matrix._match_alt_diag__3D(*args): 
      return mosek_fusion_Matrix._diag_alt__3D(*args)
    elif mosek_fusion_Matrix._match_diag__3Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._diag__3Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_alt_diag__3Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._diag_alt__3Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_diag__3DI(*args): 
      return mosek_fusion_Matrix._diag__3DI(*args)
    elif mosek_fusion_Matrix._match_alt_diag__3DI(*args): 
      return mosek_fusion_Matrix._diag_alt__3DI(*args)
    elif mosek_fusion_Matrix._match_diag_ILmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._diag_ILmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_alt_diag_ILmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._diag_alt_ILmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_diag_ID(*args): 
      return mosek_fusion_Matrix._diag_ID(*args)
    elif mosek_fusion_Matrix._match_alt_diag_ID(*args): 
      return mosek_fusion_Matrix._diag_alt_ID(*args)
    elif mosek_fusion_Matrix._match_diag_IDI(*args): 
      return mosek_fusion_Matrix._diag_IDI(*args)
    elif mosek_fusion_Matrix._match_alt_diag_IDI(*args): 
      return mosek_fusion_Matrix._diag_alt_IDI(*args)
    else:
      raise ValueError('Invalid argument list diag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.diag(array(double,ndim=1))\n\tmosek.fusion.Matrix.diag(array(mosek.fusion.Matrix,ndim=1))\n\tmosek.fusion.Matrix.diag(array(double,ndim=1),int32)\n\tmosek.fusion.Matrix.diag(int32,mosek.fusion.Matrix)\n\tmosek.fusion.Matrix.diag(int32,double)\n\tmosek.fusion.Matrix.diag(int32,double,int32)')
  @staticmethod
  def antidiag(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_antidiag__3D(*args): 
      return mosek_fusion_Matrix._antidiag__3D(*args)
    elif mosek_fusion_Matrix._match_alt_antidiag__3D(*args): 
      return mosek_fusion_Matrix._antidiag_alt__3D(*args)
    elif mosek_fusion_Matrix._match_antidiag__3DI(*args): 
      return mosek_fusion_Matrix._antidiag__3DI(*args)
    elif mosek_fusion_Matrix._match_alt_antidiag__3DI(*args): 
      return mosek_fusion_Matrix._antidiag_alt__3DI(*args)
    elif mosek_fusion_Matrix._match_antidiag_ID(*args): 
      return mosek_fusion_Matrix._antidiag_ID(*args)
    elif mosek_fusion_Matrix._match_alt_antidiag_ID(*args): 
      return mosek_fusion_Matrix._antidiag_alt_ID(*args)
    elif mosek_fusion_Matrix._match_antidiag_IDI(*args): 
      return mosek_fusion_Matrix._antidiag_IDI(*args)
    elif mosek_fusion_Matrix._match_alt_antidiag_IDI(*args): 
      return mosek_fusion_Matrix._antidiag_alt_IDI(*args)
    else:
      raise ValueError('Invalid argument list antidiag('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.antidiag(array(double,ndim=1))\n\tmosek.fusion.Matrix.antidiag(array(double,ndim=1),int32)\n\tmosek.fusion.Matrix.antidiag(int32,double)\n\tmosek.fusion.Matrix.antidiag(int32,double,int32)')
  @staticmethod
  def eye(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_eye_I(*args): 
      return mosek_fusion_Matrix._eye_I(*args)
    elif mosek_fusion_Matrix._match_alt_eye_I(*args): 
      return mosek_fusion_Matrix._eye_alt_I(*args)
    else:
      raise ValueError('Invalid argument list eye('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.eye(int32)')
  def getDataAsArray(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_getDataAsArray_(*args): 
      return self._getDataAsArray_(*args)
    elif mosek_fusion_Matrix._match_alt_getDataAsArray_(*args): 
      return self._getDataAsArray_alt_(*args)
    else:
      raise ValueError('Invalid argument list getDataAsArray('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.getDataAsArray()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_Matrix._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.toString()')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_Matrix._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.transpose()')
  @staticmethod
  def dense(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_dense__3_5D(*args): 
      return mosek_fusion_Matrix._dense__3_5D(*args)
    elif mosek_fusion_Matrix._match_alt_dense__3_5D(*args): 
      return mosek_fusion_Matrix._dense_alt__3_5D(*args)
    elif mosek_fusion_Matrix._match_dense_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._dense_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_alt_dense_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._dense_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_dense_IID(*args): 
      return mosek_fusion_Matrix._dense_IID(*args)
    elif mosek_fusion_Matrix._match_alt_dense_IID(*args): 
      return mosek_fusion_Matrix._dense_alt_IID(*args)
    elif mosek_fusion_Matrix._match_dense_II_3D(*args): 
      return mosek_fusion_Matrix._dense_II_3D(*args)
    elif mosek_fusion_Matrix._match_alt_dense_II_3D(*args): 
      return mosek_fusion_Matrix._dense_alt_II_3D(*args)
    else:
      raise ValueError('Invalid argument list dense('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.dense(array(double,ndim=2))\n\tmosek.fusion.Matrix.dense(mosek.fusion.Matrix)\n\tmosek.fusion.Matrix.dense(int32,int32,double)\n\tmosek.fusion.Matrix.dense(int32,int32,array(double,ndim=1))')
  def numRows(self,*args):
    if False: pass
    elif mosek_fusion_Matrix._match_numRows_(*args): 
      return self._numRows_(*args)
    elif mosek_fusion_Matrix._match_alt_numRows_(*args): 
      return self._numRows_alt_(*args)
    else:
      raise ValueError('Invalid argument list numRows('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.numRows()')
  @staticmethod
  def sparse(*args):
    if False: pass
    elif mosek_fusion_Matrix._match_sparse__3_5D(*args): 
      return mosek_fusion_Matrix._sparse__3_5D(*args)
    elif mosek_fusion_Matrix._match_alt_sparse__3_5D(*args): 
      return mosek_fusion_Matrix._sparse_alt__3_5D(*args)
    elif mosek_fusion_Matrix._match_sparse__3_3Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._sparse__3_3Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_alt_sparse__3_3Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._sparse_alt__3_3Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_sparse_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._sparse_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_alt_sparse_Lmosek_4fusion_4Matrix_2(*args): 
      return mosek_fusion_Matrix._sparse_alt_Lmosek_4fusion_4Matrix_2(*args)
    elif mosek_fusion_Matrix._match_sparse_II(*args): 
      return mosek_fusion_Matrix._sparse_II(*args)
    elif mosek_fusion_Matrix._match_alt_sparse_II(*args): 
      return mosek_fusion_Matrix._sparse_alt_II(*args)
    elif mosek_fusion_Matrix._match_sparse__3I_3I_3D(*args): 
      return mosek_fusion_Matrix._sparse__3I_3I_3D(*args)
    elif mosek_fusion_Matrix._match_alt_sparse__3I_3I_3D(*args): 
      return mosek_fusion_Matrix._sparse_alt__3I_3I_3D(*args)
    elif mosek_fusion_Matrix._match_sparse__3I_3ID(*args): 
      return mosek_fusion_Matrix._sparse__3I_3ID(*args)
    elif mosek_fusion_Matrix._match_alt_sparse__3I_3ID(*args): 
      return mosek_fusion_Matrix._sparse_alt__3I_3ID(*args)
    elif mosek_fusion_Matrix._match_sparse_II_3I_3ID(*args): 
      return mosek_fusion_Matrix._sparse_II_3I_3ID(*args)
    elif mosek_fusion_Matrix._match_alt_sparse_II_3I_3ID(*args): 
      return mosek_fusion_Matrix._sparse_alt_II_3I_3ID(*args)
    elif mosek_fusion_Matrix._match_sparse_II_3I_3I_3D(*args): 
      return mosek_fusion_Matrix._sparse_II_3I_3I_3D(*args)
    elif mosek_fusion_Matrix._match_alt_sparse_II_3I_3I_3D(*args): 
      return mosek_fusion_Matrix._sparse_alt_II_3I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list sparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Matrix.sparse(array(double,ndim=2))\n\tmosek.fusion.Matrix.sparse(array(array(mosek.fusion.Matrix,ndim=1),ndim=1))\n\tmosek.fusion.Matrix.sparse(mosek.fusion.Matrix)\n\tmosek.fusion.Matrix.sparse(int32,int32)\n\tmosek.fusion.Matrix.sparse(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))\n\tmosek.fusion.Matrix.sparse(array(int32,ndim=1),array(int32,ndim=1),double)\n\tmosek.fusion.Matrix.sparse(int32,int32,array(int32,ndim=1),array(int32,ndim=1),double)\n\tmosek.fusion.Matrix.sparse(int32,int32,array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.Matrix: '+self._toString_()
  @staticmethod
  def _ctor_II(di,dj):
    o = Matrix.__new__(Matrix)
    o._ctor_init_II(di,dj)
    return o
  @staticmethod
  def __match_ctor_II(*args):
    if len(args) != 2: return False
    di,dj, = args
    return (__arg_match_I__(di) and __arg_match_I__(dj))
  @staticmethod
  def __match_alt_ctor_II(*args):
    if len(args) != 2: return False
    di,dj, = args
    return (__arg_alt_match_I__(di) and __arg_alt_match_I__(dj))
  def _ctor_alt_init_II(self,di,dj):
    self._ctor_init_II(numpy.int32(di),numpy.int32(dj))
  def _ctor_init_II(self,di,dj):
   if ((di < 0) or (dj < 0)):
    raise mosek_fusion_DimensionError._ctor_S("Invalid dimensions")
   self._dimi = di
   self._dimj = dj
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   return ("")
  def _switchDims_alt_(self,):
    return self._switchDims_()
  def _switchDims_(self,):
   _0=self._dimi
   self._dimi = self._dimj
   self._dimj = _0
  @staticmethod
  def _match_diag_ILmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _match_alt_diag_ILmosek_4fusion_4Matrix_2(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_Lmosek_4fusion_4Matrix_2__(_1))
  @staticmethod
  def _diag_alt_ILmosek_4fusion_4Matrix_2(_t__0,_t__1):
    return mosek_fusion_Matrix._diag_ILmosek_4fusion_4Matrix_2(numpy.int32(__0),_1)
  @staticmethod
  def _diag_ILmosek_4fusion_4Matrix_2(_0,_1):
   return (mosek.fusion.Matrix._diag__3Lmosek_4fusion_4Matrix_2(numpy.array([_1 for _2 in range(0,_0)], dtype=numpy.dtype(object))))
  @staticmethod
  def _match_diag__3Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_diag__3Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _diag_alt__3Lmosek_4fusion_4Matrix_2(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(object))
   _1_res = mosek_fusion_Matrix._diag__3Lmosek_4fusion_4Matrix_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _diag__3Lmosek_4fusion_4Matrix_2(_0):
   _1=_0
   _2=0
   _3=0
   _4=0
   for _5 in range(0,int((_0).shape[0])):
    _4 = (_4 + (_0[_5]._dimi))
    _3 = (_3 + (_0[_5]._dimj))
    _2 = (_2 + _0[_5].numNonzeros())
   _6=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
   _8=numpy.zeros((_2,), dtype=numpy.dtype(numpy.float64))
   _9=0
   _10=0
   _11=0
   for _12 in range(0,int((_0).shape[0])):
    _13=_0[_12].numNonzeros()
    _14=numpy.zeros((_13,), dtype=numpy.dtype(numpy.float64))
    _15=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int32))
    _16=numpy.zeros((_13,), dtype=numpy.dtype(numpy.int32))
    _0[_12].getDataAsTriplets(_16,_15,_14)
    mosek.fusion.Utils.Tools._arraycopy__3DJ_3DJJ(_14,0,_8,_11,_13)
    for _17 in range(0,_13):
     _6[(_11 + _17)] = (_16[_17] + _10)
     _7[(_11 + _17)] = (_16[_17] + _9)
    _11 = (_11 + _13)
    _10 = (_10 + (_0[_12]._dimi))
    _9 = (_9 + (_0[_12]._dimj))
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_4,_3,_6,_7,_8))
  @staticmethod
  def _match_antidiag_IDI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_antidiag_IDI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _antidiag_alt_IDI(_t__0,_t__1,_t__2):
    return mosek_fusion_Matrix._antidiag_IDI(numpy.int32(__0),numpy.float64(__1),numpy.int32(__2))
  @staticmethod
  def _antidiag_IDI(_0,_1,_2):
   if ((_2 < _0) and (_2 >= 0)):
    return (mosek.fusion.Matrix._antidiag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,(_0 - _2)),_2))
   elif ((_2 > (- _0)) and (_2 < 0)): # bld/docker-win/final/default/src/fusion/Matrix.mbi:489:16-32
    return (mosek.fusion.Matrix._antidiag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,(_0 + _2)),_2))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Diagonal index out of bounds")
  @staticmethod
  def _match_antidiag_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_antidiag_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _antidiag_alt_ID(_t__0,_t__1):
    return mosek_fusion_Matrix._antidiag_ID(numpy.int32(__0),numpy.float64(__1))
  @staticmethod
  def _antidiag_ID(_0,_1):
   return (mosek.fusion.Matrix._antidiag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,_0),0))
  @staticmethod
  def _match_diag_IDI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_diag_IDI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _diag_alt_IDI(_t__0,_t__1,_t__2):
    return mosek_fusion_Matrix._diag_IDI(numpy.int32(__0),numpy.float64(__1),numpy.int32(__2))
  @staticmethod
  def _diag_IDI(_0,_1,_2):
   if ((_2 < _0) and (_2 >= 0)):
    return (mosek.fusion.Matrix._diag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,(_0 - _2)),_2))
   elif ((_2 > (- _0)) and (_2 < 0)): # bld/docker-win/final/default/src/fusion/Matrix.mbi:473:16-32
    return (mosek.fusion.Matrix._diag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,(_0 + _2)),_2))
   else:
    raise mosek_fusion_DimensionError._ctor_S("Diagonal index out of bounds")
  @staticmethod
  def _match_diag_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_D__(_1))
  @staticmethod
  def _match_alt_diag_ID(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_D__(_1))
  @staticmethod
  def _diag_alt_ID(_t__0,_t__1):
    return mosek_fusion_Matrix._diag_ID(numpy.int32(__0),numpy.float64(__1))
  @staticmethod
  def _diag_ID(_0,_1):
   return (mosek.fusion.Matrix._diag__3DI(mosek.fusion.Utils.Tools._makevector_DI(_1,_0),0))
  @staticmethod
  def _match_antidiag__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_antidiag__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _antidiag_alt__3DI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Matrix._antidiag__3DI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _antidiag__3DI(_0,_1):
   _2=(_1 if ((_1 > 0) ) else (- _1))
   _3=(int((_0).shape[0]) + _2)
   _4=int((_0).shape[0])
   if (_1 >= 0):
    _5=mosek.fusion.Utils.Tools._range_II(_1,(_4 + _1))
    _6=numpy.array([((_4 + _1) - _7) for _7 in range(1,(_4 + 1))], dtype=numpy.dtype(numpy.int32))
    return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_3,_3,_5,_6,_0))
   else:
    _8=mosek.fusion.Utils.Tools._range_II(0,_4)
    _9=numpy.array([(_4 - _10) for _10 in range(1,(_4 + 1))], dtype=numpy.dtype(numpy.int32))
    return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_3,_3,_8,_9,_0))
  @staticmethod
  def _match_antidiag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_antidiag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _antidiag_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._antidiag__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _antidiag__3D(_0):
   return (mosek.fusion.Matrix._antidiag__3DI(_0,0))
  @staticmethod
  def _match_diag__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match__3D__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_diag__3DI(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match__3D__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _diag_alt__3DI(_t__0,_t__1):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1=numpy.int32(_t__1)
   _1_res = mosek_fusion_Matrix._diag__3DI(_0,_1)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _diag__3DI(_0,_1):
   _2=(_1 if ((_1 > 0) ) else (- _1))
   _3=(int((_0).shape[0]) + _2)
   _4=int((_0).shape[0])
   if (_1 >= 0):
    _5=mosek.fusion.Utils.Tools._range_II(0,_4)
    _6=mosek.fusion.Utils.Tools._range_II(_2,(_4 + _2))
    return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_3,_3,_5,_6,_0))
   else:
    _7=mosek.fusion.Utils.Tools._range_II(_2,(_4 + _2))
    _8=mosek.fusion.Utils.Tools._range_II(0,_4)
    return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_3,_3,_7,_8,_0))
  @staticmethod
  def _match_diag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3D__(_0))
  @staticmethod
  def _match_alt_diag__3D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3D__(_0))
  @staticmethod
  def _diag_alt__3D(_t__0):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._diag__3D(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _diag__3D(_0):
   return (mosek.fusion.Matrix._diag__3DI(_0,0))
  @staticmethod
  def _match_ones_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_ones_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _ones_alt_II(_t__0,_t__1):
    return mosek_fusion_Matrix._ones_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _ones_II(_0,_1):
   return (mosek.fusion.Matrix._dense_IID(_0,_1,1.0))
  @staticmethod
  def _match_eye_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_eye_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  @staticmethod
  def _eye_alt_I(_t__0):
    return mosek_fusion_Matrix._eye_I(numpy.int32(__0))
  @staticmethod
  def _eye_I(_0):
   return (mosek.fusion.Matrix._diag__3D(numpy.array([1.0 for _1 in range(0,_0)], dtype=numpy.dtype(numpy.float64))))
  @staticmethod
  def _match_dense_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_dense_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _dense_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Matrix._dense_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _dense_Lmosek_4fusion_4Matrix_2(_0):
   return (mosek_fusion_DenseMatrix._ctor_Lmosek_4fusion_4Matrix_2(_0))
  @staticmethod
  def _match_dense_IID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_dense_IID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _dense_alt_IID(_t__0,_t__1,_t__2):
    return mosek_fusion_Matrix._dense_IID(numpy.int32(__0),numpy.int32(__1),numpy.float64(__2))
  @staticmethod
  def _dense_IID(_0,_1,_2):
   return (mosek_fusion_DenseMatrix._ctor_IID(_0,_1,_2))
  @staticmethod
  def _match_dense_II_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_dense_II_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _dense_alt_II_3D(_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._dense_II_3D(_0,_1,_2)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _dense_II_3D(_0,_1,_2):
   return (mosek_fusion_DenseMatrix._ctor_II_3D(_0,_1,_2))
  @staticmethod
  def _match_dense__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_dense__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _dense_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._dense__3_5D(_0)
   return _1_res
  @staticmethod
  def _dense__3_5D(_0):
   return (mosek_fusion_DenseMatrix._ctor__3_5D(_0))
  @staticmethod
  def _match_sparse_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_sparse_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _sparse_alt_Lmosek_4fusion_4Matrix_2(_t__0):
    return mosek_fusion_Matrix._sparse_Lmosek_4fusion_4Matrix_2(_0)
  @staticmethod
  def _sparse_Lmosek_4fusion_4Matrix_2(_0):
   _1=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _2=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.int32))
   _3=numpy.zeros((_0.numNonzeros(),), dtype=numpy.dtype(numpy.float64))
   _0.getDataAsTriplets(_1,_2,_3)
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_0.numRows(),_0.numColumns(),_1,_2,_3))
  @staticmethod
  def _match_sparse__3_3Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_3Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _match_alt_sparse__3_3Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_3Lmosek_4fusion_4Matrix_2__(_0))
  @staticmethod
  def _sparse_alt__3_3Lmosek_4fusion_4Matrix_2(_t__0):
   _0=_monty.makeJaggedArray(_t__0,(1,1),numpy.dtype(object))
   _1_res = mosek_fusion_Matrix._sparse__3_3Lmosek_4fusion_4Matrix_2(_0)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse__3_3Lmosek_4fusion_4Matrix_2(_0):
   _1=int((_0).shape[0])
   _2=int((_0[0]).shape[0])
   _3=numpy.zeros((_1,), dtype=numpy.dtype(numpy.int32))
   _4=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
   _5=0
   _6=0
   _7=0
   while (_7 < _1):
    _8=0
    while (_8 < _2):
     _9=_0[_7][_8]
     if (_9 is not None):
      if (_4[_8]==0):
       _4[_8] = (_9._dimj)
      elif (_4[_8]!=(_9._dimj)): # bld/docker-win/final/default/src/fusion/Matrix.mbi:253:23-41
       raise mosek_fusion_SparseFormatError._ctor_S("Sparse matrix construction blocks are not aligned")
      if (_3[_7]==0):
       _3[_7] = (_9._dimi)
      elif (_3[_7]!=(_9._dimi)): # bld/docker-win/final/default/src/fusion/Matrix.mbi:262:23-41
       raise mosek_fusion_SparseFormatError._ctor_S("Sparse matrix construction blocks are not aligned")
      _5 = (_5 + _9.numNonzeros())
     _6 += 1
     _8 += 1
    _7 += 1
   _10=numpy.zeros((_5,), dtype=numpy.dtype(numpy.float64))
   _11=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _12=numpy.zeros((_5,), dtype=numpy.dtype(numpy.int32))
   _13=0
   _14=0
   _15=0
   while (_15 < _1):
    _16=numpy.zeros((_2,), dtype=numpy.dtype(numpy.int32))
    _17=0
    while (_17 < _3[_15]):
     _18=0
     _19=0
     while (_19 < _2):
      _20=_0[_15][_19]
      if (_20 is not None):
       _22=_20
       if   isinstance(_22,mosek_fusion_DenseMatrix):
        m=_22
        _22=_16[_19]
        _23=0
        while (_23 < (m._dimj)):
         _10[_13] = (m._data)[_22]
         _11[_13] = (_14 + _17)
         _12[_13] = (_18 + _23)
         _22 += 1
         _13 += 1
         _23 += 1
        _16[_19] = _22
       elif isinstance(_22,mosek_fusion_SparseMatrix):
        _24=_22
        _25 = _16[_19]
        while ((_25 < (_24._nnz)) and ((_24._subi)[_25]==_17)):
         _10[_13] = (_24._val)[_25]
         _12[_13] = ((_24._subj)[_25] + _18)
         _11[_13] = (_14 + _17)
         _13 += 1
         _25 += 1
        _16[_19] = _25
       else:
        m=_22
        raise mosek_fusion_MatrixError._ctor_S("Unknown matrix type.")
      _18 = (_18 + _4[_19])
      _19 += 1
     _17 += 1
    _14 = (_14 + _3[_15])
    _15 += 1
   _26=0
   _27=0
   _28=0
   while (_28 < _1):
    _26 = (_26 + _3[_28])
    _28 += 1
   _29=0
   while (_29 < _2):
    _27 = (_27 + _4[_29])
    _29 += 1
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_26,_27,_11,_12,_10))
  @staticmethod
  def _match_sparse__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match__3_5D__(_0))
  @staticmethod
  def _match_alt_sparse__3_5D(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match__3_5D__(_0))
  @staticmethod
  def _sparse_alt__3_5D(_t__0):
   _0=numpy.array(_t__0,ndmin=_monty.checkShape(_t__0,2),dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._sparse__3_5D(_0)
   return _1_res
  @staticmethod
  def _sparse__3_5D(_0):
   _1=int((_0).shape[0])
   _2=int((_0).shape[1])
   _3=numpy.int64((_1 * _2))
   _4=0
   _5=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _6=numpy.zeros((_3,), dtype=numpy.dtype(numpy.int32))
   _7=numpy.zeros((_3,), dtype=numpy.dtype(numpy.float64))
   _8=0
   while (_8 < _1):
    _9=0
    while (_9 < _2):
     _5[_4] = _8
     _6[_4] = _9
     _7[_4] = _0[_8,_9]
     _4 += 1
     _9 += 1
    _8 += 1
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3D(_1,_2,_5,_6,_7))
  @staticmethod
  def _match_sparse_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_sparse_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  @staticmethod
  def _sparse_alt_II(_t__0,_t__1):
    return mosek_fusion_Matrix._sparse_II(numpy.int32(__0),numpy.int32(__1))
  @staticmethod
  def _sparse_II(_0,_1):
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3DJ(_0,_1,numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)),numpy.zeros((0,), dtype=numpy.dtype(numpy.float64)),0))
  @staticmethod
  def _match_sparse_II_3I_3ID(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match__3I__(_2) and __arg_match__3I__(_3) and __arg_match_D__(_4))
  @staticmethod
  def _match_alt_sparse_II_3I_3ID(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match__3I__(_3) and __arg_alt_match_D__(_4))
  @staticmethod
  def _sparse_alt_II_3I_3ID(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.float64(_t__4)
   _1_res = mosek_fusion_Matrix._sparse_II_3I_3ID(_0,_1,_2,_3,_4)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse_II_3I_3ID(_0,_1,_2,_3,_4):
   _5=0
   if (_2 is not None):
    _5 = int((_2).shape[0])
   elif (_3 is not None): # bld/docker-win/final/default/src/fusion/Matrix.mbi:197:16-28
    _5 = int((_3).shape[0])
   return (mosek.fusion.Matrix._sparse_II_3I_3I_3D(_0,_1,_2,_3,mosek.fusion.Utils.Tools._makevector_DI(_4,_5)))
  @staticmethod
  def _match_sparse__3I_3ID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_sparse__3I_3ID(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _sparse_alt__3I_3ID(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.float64(_t__2)
   _1_res = mosek_fusion_Matrix._sparse__3I_3ID(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse__3I_3ID(_0,_1,_2):
   _3=0
   _4=0
   _5=int((_0).shape[0])
   if (_5 > int((_1).shape[0])):
    _5 = int((_1).shape[0])
   for _6 in range(0,_5):
    if (_4 < _0[_6]):
     _4 = _0[_6]
    if (_3 < _1[_6]):
     _3 = _1[_6]
   return (mosek.fusion.Matrix._sparse_II_3I_3ID((_4 + 1),(_3 + 1),_0,_1,_2))
  @staticmethod
  def _match_sparse__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_sparse__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2))
  @staticmethod
  def _sparse_alt__3I_3I_3D(_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._sparse__3I_3I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse__3I_3I_3D(_0,_1,_2):
   _3=0
   _4=0
   _5=int((_0).shape[0])
   if (_5 > int((_1).shape[0])):
    _5 = int((_1).shape[0])
   if (_5 > int((_2).shape[0])):
    _5 = int((_2).shape[0])
   for _6 in range(0,_5):
    if (_4 < _0[_6]):
     _4 = _0[_6]
    if (_3 < _1[_6]):
     _3 = _1[_6]
   return (mosek.fusion.Matrix._sparse_II_3I_3I_3D((_4 + 1),(_3 + 1),_0,_1,_2))
  @staticmethod
  def _match_sparse_II_3I_3I_3D(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match__3I__(_2) and __arg_match__3I__(_3) and __arg_match__3D__(_4))
  @staticmethod
  def _match_alt_sparse_II_3I_3I_3D(*args):
    if len(args) != 5: return False
    _0,_1,_2,_3,_4, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match__3I__(_3) and __arg_alt_match__3D__(_4))
  @staticmethod
  def _sparse_alt_II_3I_3I_3D(_t__0,_t__1,_t__2,_t__3,_t__4):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.array(_t__3,dtype=numpy.dtype(numpy.int32))
   _4=numpy.array(_t__4,dtype=numpy.dtype(numpy.float64))
   _1_res = mosek_fusion_Matrix._sparse_II_3I_3I_3D(_0,_1,_2,_3,_4)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__3[:] = _3
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__4[:] = _4
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  @staticmethod
  def _sparse_II_3I_3I_3D(_0,_1,_2,_3,_4):
   _5=(_4 if ((_4 is not None) ) else numpy.zeros((0,), dtype=numpy.dtype(numpy.float64)))
   _6=(_3 if ((_3 is not None) ) else numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
   _7=(_2 if ((_2 is not None) ) else numpy.zeros((0,), dtype=numpy.dtype(numpy.int32)))
   _8=int((_7).shape[0])
   if ((int((_6).shape[0])!=_8) or (int((_5).shape[0])!=_8)):
    raise mosek_fusion_SparseFormatError._ctor_S("Arrays defining sparse data have different lengths")
   return (mosek_fusion_SparseMatrix._ctor_II_3I_3I_3DJ(_0,_1,_7,_6,_5,_8))
  @staticmethod
  def _match_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _get_alt_II(self,_t__0,_t__1):
    return self._get_II(numpy.int32(__0),numpy.int32(__1))
  def _get_II(self,_0,_1):
   pass
  @staticmethod
  def _match_isSparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isSparse_(*args):
    if len(args) != 0: return False
    return True
  def _isSparse_alt_(self,):
    return self._isSparse_()
  def _isSparse_(self,):
   pass
  @staticmethod
  def _match_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  def _getDataAsArray_alt_(self,):
    return self._getDataAsArray_()
  def _getDataAsArray_(self,):
   pass
  @staticmethod
  def _match_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2))
  def _getDataAsTriplets_alt__3I_3I_3D(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = self._getDataAsTriplets__3I_3I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getDataAsTriplets__3I_3I_3D(self,_0,_1,_2):
   pass
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   pass
  @staticmethod
  def _match_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  def _numNonzeros_alt_(self,):
    return self._numNonzeros_()
  def _numNonzeros_(self,):
   pass
  @staticmethod
  def _match_numColumns_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numColumns_(*args):
    if len(args) != 0: return False
    return True
  def _numColumns_alt_(self,):
    return self._numColumns_()
  def _numColumns_(self,):
   return numpy.int32(self._dimj)
  @staticmethod
  def _match_numRows_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numRows_(*args):
    if len(args) != 0: return False
    return True
  def _numRows_alt_(self,):
    return self._numRows_()
  def _numRows_(self,):
   return numpy.int32(self._dimi)
 return Matrix
mosek_fusion_Matrix=__mk_mosek_fusion_Matrix()
del __mk_mosek_fusion_Matrix
def __mk_mosek_fusion_DenseMatrix():
 class DenseMatrix(mosek_fusion_Matrix):
  __slots__ = ['_nnz','_data']
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_DenseMatrix._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.toString()')
  def getDataAsTriplets(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets__3I_3I_3D(*args)
    elif mosek_fusion_DenseMatrix._match_alt_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets_alt__3I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list getDataAsTriplets('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.getDataAsTriplets(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))')
  def getDataAsArray(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_getDataAsArray_(*args): 
      return self._getDataAsArray_(*args)
    elif mosek_fusion_DenseMatrix._match_alt_getDataAsArray_(*args): 
      return self._getDataAsArray_alt_(*args)
    else:
      raise ValueError('Invalid argument list getDataAsArray('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.getDataAsArray()')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_get_II(*args): 
      return self._get_II(*args)
    elif mosek_fusion_DenseMatrix._match_alt_get_II(*args): 
      return self._get_alt_II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.get(int32,int32)')
  def numNonzeros(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_numNonzeros_(*args): 
      return self._numNonzeros_(*args)
    elif mosek_fusion_DenseMatrix._match_alt_numNonzeros_(*args): 
      return self._numNonzeros_alt_(*args)
    else:
      raise ValueError('Invalid argument list numNonzeros('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.numNonzeros()')
  def isSparse(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_isSparse_(*args): 
      return self._isSparse_(*args)
    elif mosek_fusion_DenseMatrix._match_alt_isSparse_(*args): 
      return self._isSparse_alt_(*args)
    else:
      raise ValueError('Invalid argument list isSparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.isSparse()')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_DenseMatrix._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_DenseMatrix._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.DenseMatrix.transpose()')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.DenseMatrix: '+self._toString_()
  @staticmethod
  def _ctor_II_3D(dimi_,dimj_,cof):
    o = DenseMatrix.__new__(DenseMatrix)
    o._ctor_init_II_3D(dimi_,dimj_,cof)
    return o
  @staticmethod
  def __match_ctor_II_3D(*args):
    if len(args) != 3: return False
    dimi_,dimj_,cof, = args
    return (__arg_match_I__(dimi_) and __arg_match_I__(dimj_) and __arg_match__3D__(cof))
  @staticmethod
  def __match_alt_ctor_II_3D(*args):
    if len(args) != 3: return False
    dimi_,dimj_,cof, = args
    return (__arg_alt_match_I__(dimi_) and __arg_alt_match_I__(dimj_) and __arg_alt_match__3D__(cof))
  def _ctor_alt_init_II_3D(self,dimi_,dimj_,cof):
    self._ctor_init_II_3D(numpy.int32(dimi_),numpy.int32(dimj_),numpy.array(cof,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init_II_3D(self,dimi_,dimj_,cof):
   mosek_fusion_Matrix._ctor_init_II(self,dimi_,dimj_)
   self._nnz = numpy.int64((dimi_ * dimj_))
   self._data = numpy.zeros(((dimi_ * dimj_),), dtype=numpy.dtype(numpy.float64))
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(cof,0,self._data,0,(dimi_ * dimj_))
  @staticmethod
  def _ctor_Lmosek_4fusion_4Matrix_2(m_):
    o = DenseMatrix.__new__(DenseMatrix)
    o._ctor_init_Lmosek_4fusion_4Matrix_2(m_)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    m_, = args
    return (__arg_match_Lmosek_4fusion_4Matrix_2__(m_))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4Matrix_2(*args):
    if len(args) != 1: return False
    m_, = args
    return (__arg_alt_match_Lmosek_4fusion_4Matrix_2__(m_))
  def _ctor_alt_init_Lmosek_4fusion_4Matrix_2(self,m_):
    self._ctor_init_Lmosek_4fusion_4Matrix_2(m_)
  def _ctor_init_Lmosek_4fusion_4Matrix_2(self,m_):
   mosek_fusion_Matrix._ctor_init_II(self,(m_._dimi),(m_._dimj))
   _1=m_
   if   isinstance(_1,mosek_fusion_DenseMatrix):
    m=_1
    self._data = mosek.fusion.Utils.Tools._arraycopy__3D((m._data))
   elif isinstance(_1,mosek_fusion_SparseMatrix):
    _1=_1
    self._data = mosek.fusion.Utils.Tools._zeros_I(((_1._dimi) * (_1._dimj)))
    for _2 in range(0,(_1._nnz)):
     self._data[(((_1._subi)[_2] * self._dimj) + (_1._subj)[_2])] = (_1._val)[_2]
   else:
    m=_1
    raise mosek_fusion_MatrixError._ctor_S("Unknown matrix type.")
   self._nnz = numpy.int64((self._dimi * self._dimj))
  @staticmethod
  def _ctor__3_5D(d):
    o = DenseMatrix.__new__(DenseMatrix)
    o._ctor_init__3_5D(d)
    return o
  @staticmethod
  def __match_ctor__3_5D(*args):
    if len(args) != 1: return False
    d, = args
    return (__arg_match__3_5D__(d))
  @staticmethod
  def __match_alt_ctor__3_5D(*args):
    if len(args) != 1: return False
    d, = args
    return (__arg_alt_match__3_5D__(d))
  def _ctor_alt_init__3_5D(self,d):
    self._ctor_init__3_5D(numpy.array(d,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init__3_5D(self,d):
   mosek_fusion_Matrix._ctor_init_II(self,int((d).shape[0]),int((d).shape[1]))
   self._data = numpy.array([d[_0,_1] for _0 in range(0,self._dimi) for _1 in range(0,self._dimj)], dtype=numpy.dtype(numpy.float64))
   self._nnz = numpy.int64((self._dimi * self._dimj))
  @staticmethod
  def _ctor_IID(dimi_,dimj_,value_):
    o = DenseMatrix.__new__(DenseMatrix)
    o._ctor_init_IID(dimi_,dimj_,value_)
    return o
  @staticmethod
  def __match_ctor_IID(*args):
    if len(args) != 3: return False
    dimi_,dimj_,value_, = args
    return (__arg_match_I__(dimi_) and __arg_match_I__(dimj_) and __arg_match_D__(value_))
  @staticmethod
  def __match_alt_ctor_IID(*args):
    if len(args) != 3: return False
    dimi_,dimj_,value_, = args
    return (__arg_alt_match_I__(dimi_) and __arg_alt_match_I__(dimj_) and __arg_alt_match_D__(value_))
  def _ctor_alt_init_IID(self,dimi_,dimj_,value_):
    self._ctor_init_IID(numpy.int32(dimi_),numpy.int32(dimj_),numpy.float64(value_))
  def _ctor_init_IID(self,dimi_,dimj_,value_):
   mosek_fusion_Matrix._ctor_init_II(self,dimi_,dimj_)
   self._data = numpy.array([value_ for _0 in range(0,dimi_) for _1 in range(0,dimj_)], dtype=numpy.dtype(numpy.float64))
   self._nnz = numpy.int64((dimi_ * dimj_))
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("DenseMatrix(")
   _0._a_I(self._dimi)
   _0._a_S(",")
   _0._a_I(self._dimj)
   _0._a_S(": ")
   _1=0
   _2=0
   while (_2 < self._dimi):
    if (_2 > 0):
     _0._a_S(",")
    _0._a_S("[ ")
    _0._a_D(self._data[_1])
    _1 += 1
    _3=1
    while (_3 < self._dimj):
     _0._a_S(",")
     _0._a_D(self._data[_1])
     _1 += 1
     _3 += 1
    _0._a_S(" ]")
    _2 += 1
   _0._a_S(")")
   return (_0._toString_())
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   _0=numpy.zeros(((self._dimi * self._dimj),), dtype=numpy.dtype(numpy.float64))
   _1=0
   _2=self._dimi
   for _3 in range(0,self._dimi):
    _4=_3
    for _5 in range(0,self._dimj):
     _0[_4] = self._data[_1]
     _4 = (_4 + _2)
     _1 += 1
   return (mosek_fusion_DenseMatrix._ctor_II_3D(self._dimj,self._dimi,_0))
  @staticmethod
  def _match_isSparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isSparse_(*args):
    if len(args) != 0: return False
    return True
  def _isSparse_alt_(self,):
    return self._isSparse_()
  def _isSparse_(self,):
   return (False)
  @staticmethod
  def _match_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  def _getDataAsArray_alt_(self,):
    return self._getDataAsArray_()
  def _getDataAsArray_(self,):
   return (mosek.fusion.Utils.Tools._arraycopy__3D(self._data))
  @staticmethod
  def _match_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2))
  def _getDataAsTriplets_alt__3I_3I_3D(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = self._getDataAsTriplets__3I_3I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getDataAsTriplets__3I_3I_3D(self,_0,_1,_2):
   if ((int((_0).shape[0]) < self._nnz) or ((int((_1).shape[0]) < self._nnz) or (int((_2).shape[0]) < self._nnz))):
    raise mosek_fusion_LengthError._ctor_S("Output arrays are not long enough.")
   mosek.fusion.Utils.Tools._arraycopy__3DI_3DII(self._data,0,_2,0,int((self._data).shape[0]))
   _3=0
   for _4 in range(0,self._dimi):
    for _5 in range(0,self._dimj):
     _0[_3] = _4
     _1[_3] = _5
     _3 += 1
  @staticmethod
  def _match_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _get_alt_II(self,_t__0,_t__1):
    return self._get_II(numpy.int32(__0),numpy.int32(__1))
  def _get_II(self,_0,_1):
   return numpy.float64(self._data[((_0 * self._dimj) + _1)])
  @staticmethod
  def _match_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  def _numNonzeros_alt_(self,):
    return self._numNonzeros_()
  def _numNonzeros_(self,):
   return numpy.int64(numpy.int64((self._dimi * self._dimj)))
 return DenseMatrix
mosek_fusion_DenseMatrix=__mk_mosek_fusion_DenseMatrix()
del __mk_mosek_fusion_DenseMatrix
def __mk_mosek_fusion_SparseMatrix():
 class SparseMatrix(mosek_fusion_Matrix):
  __slots__ = ['_nnz','_val','_subj','_subi']
  def isSparse(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_isSparse_(*args): 
      return self._isSparse_(*args)
    elif mosek_fusion_SparseMatrix._match_alt_isSparse_(*args): 
      return self._isSparse_alt_(*args)
    else:
      raise ValueError('Invalid argument list isSparse('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.isSparse()')
  def getDataAsArray(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_getDataAsArray_(*args): 
      return self._getDataAsArray_(*args)
    elif mosek_fusion_SparseMatrix._match_alt_getDataAsArray_(*args): 
      return self._getDataAsArray_alt_(*args)
    else:
      raise ValueError('Invalid argument list getDataAsArray('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.getDataAsArray()')
  def numNonzeros(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_numNonzeros_(*args): 
      return self._numNonzeros_(*args)
    elif mosek_fusion_SparseMatrix._match_alt_numNonzeros_(*args): 
      return self._numNonzeros_alt_(*args)
    else:
      raise ValueError('Invalid argument list numNonzeros('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.numNonzeros()')
  def toString(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_toString_(*args): 
      return self._toString_(*args)
    elif mosek_fusion_SparseMatrix._match_alt_toString_(*args): 
      return self._toString_alt_(*args)
    else:
      raise ValueError('Invalid argument list toString('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.toString()')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_get_II(*args): 
      return self._get_II(*args)
    elif mosek_fusion_SparseMatrix._match_alt_get_II(*args): 
      return self._get_alt_II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.get(int32,int32)')
  def transpose(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_transpose_(*args): 
      return self._transpose_(*args)
    elif mosek_fusion_SparseMatrix._match_alt_transpose_(*args): 
      return self._transpose_alt_(*args)
    else:
      raise ValueError('Invalid argument list transpose('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.transpose()')
  def getDataAsTriplets(self,*args):
    if False: pass
    elif mosek_fusion_SparseMatrix._match_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets__3I_3I_3D(*args)
    elif mosek_fusion_SparseMatrix._match_alt_getDataAsTriplets__3I_3I_3D(*args): 
      return self._getDataAsTriplets_alt__3I_3I_3D(*args)
    else:
      raise ValueError('Invalid argument list getDataAsTriplets('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.SparseMatrix.getDataAsTriplets(array(int32,ndim=1),array(int32,ndim=1),array(double,ndim=1))')
  def __str__(self): return self._toString_()
  def __repr__(self): return 'mosek.fusion.SparseMatrix: '+self._toString_()
  @staticmethod
  def _ctor_II_3I_3I_3DJ(dimi_,dimj_,subi_,subj_,val_,nelm):
    o = SparseMatrix.__new__(SparseMatrix)
    o._ctor_init_II_3I_3I_3DJ(dimi_,dimj_,subi_,subj_,val_,nelm)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3DJ(*args):
    if len(args) != 6: return False
    dimi_,dimj_,subi_,subj_,val_,nelm, = args
    return (__arg_match_I__(dimi_) and __arg_match_I__(dimj_) and __arg_match__3I__(subi_) and __arg_match__3I__(subj_) and __arg_match__3D__(val_) and __arg_match_J__(nelm))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3DJ(*args):
    if len(args) != 6: return False
    dimi_,dimj_,subi_,subj_,val_,nelm, = args
    return (__arg_alt_match_I__(dimi_) and __arg_alt_match_I__(dimj_) and __arg_alt_match__3I__(subi_) and __arg_alt_match__3I__(subj_) and __arg_alt_match__3D__(val_) and __arg_alt_match_J__(nelm))
  def _ctor_alt_init_II_3I_3I_3DJ(self,dimi_,dimj_,subi_,subj_,val_,nelm):
    self._ctor_init_II_3I_3I_3DJ(numpy.int32(dimi_),numpy.int32(dimj_),numpy.array(subi_,dtype=numpy.dtype(numpy.int32)),numpy.array(subj_,dtype=numpy.dtype(numpy.int32)),numpy.array(val_,dtype=numpy.dtype(numpy.float64)),numpy.int64(nelm))
  def _ctor_init_II_3I_3I_3DJ(self,dimi_,dimj_,subi_,subj_,val_,nelm):
   mosek_fusion_Matrix._ctor_init_II(self,dimi_,dimj_)
   if (nelm > 0):
    if ((int((subi_).shape[0]) < nelm) or ((int((subj_).shape[0]) < nelm) or (int((val_).shape[0]) < nelm))):
     raise mosek_fusion_SparseFormatError._ctor_S("Mismatching arrays in sparse data.")
    _0=False
    for _1 in range(0,nelm):
     if ((subi_[_1] < 0) or ((subi_[_1] >= self._dimi) or ((subj_[_1] < 0) or (subj_[_1] >= self._dimj)))):
      _0 = True
    if _0:
     raise mosek_fusion_SparseFormatError._ctor_S("Subscript out of bounds.")
    _2=numpy.ndarray((1,), dtype=numpy.dtype(object))
    _3=numpy.ndarray((1,), dtype=numpy.dtype(object))
    _4=numpy.ndarray((1,), dtype=numpy.dtype(object))
    mosek.fusion.CommonTools._tripletSort__3I_3I_3D_3_3I_3_3I_3_3DJII(subi_,subj_,val_,_2,_3,_4,nelm,self._dimi,self._dimj)
    self._subi = _2[0]
    self._subj = _3[0]
    self._val = _4[0]
    self._nnz = int((self._val).shape[0])
   else:
    self._subi = numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))
    self._subj = numpy.zeros((0,), dtype=numpy.dtype(numpy.int32))
    self._val = numpy.zeros((0,), dtype=numpy.dtype(numpy.float64))
    self._nnz = 0
  @staticmethod
  def _ctor_II_3I_3I_3D(dimi_,dimj_,subi_,subj_,val_):
    o = SparseMatrix.__new__(SparseMatrix)
    o._ctor_init_II_3I_3I_3D(dimi_,dimj_,subi_,subj_,val_)
    return o
  @staticmethod
  def __match_ctor_II_3I_3I_3D(*args):
    if len(args) != 5: return False
    dimi_,dimj_,subi_,subj_,val_, = args
    return (__arg_match_I__(dimi_) and __arg_match_I__(dimj_) and __arg_match__3I__(subi_) and __arg_match__3I__(subj_) and __arg_match__3D__(val_))
  @staticmethod
  def __match_alt_ctor_II_3I_3I_3D(*args):
    if len(args) != 5: return False
    dimi_,dimj_,subi_,subj_,val_, = args
    return (__arg_alt_match_I__(dimi_) and __arg_alt_match_I__(dimj_) and __arg_alt_match__3I__(subi_) and __arg_alt_match__3I__(subj_) and __arg_alt_match__3D__(val_))
  def _ctor_alt_init_II_3I_3I_3D(self,dimi_,dimj_,subi_,subj_,val_):
    self._ctor_init_II_3I_3I_3D(numpy.int32(dimi_),numpy.int32(dimj_),numpy.array(subi_,dtype=numpy.dtype(numpy.int32)),numpy.array(subj_,dtype=numpy.dtype(numpy.int32)),numpy.array(val_,dtype=numpy.dtype(numpy.float64)))
  def _ctor_init_II_3I_3I_3D(self,dimi_,dimj_,subi_,subj_,val_):
   mosek_fusion_Matrix._ctor_init_II(self,dimi_,dimj_)
   _0=0
   for _1 in range(0,int((val_).shape[0])):
    if ((val_[_1] > 0) or (val_[_1] < 0)):
     _0 += 1
   if ((_0 > 0) and (_0 < int((subi_).shape[0]))):
    self._subi = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
    self._subj = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
    self._val = numpy.zeros((_0,), dtype=numpy.dtype(numpy.float64))
    self._nnz = _0
    _2=0
    for _3 in range(0,int((val_).shape[0])):
     if ((val_[_3] < 0) or (val_[_3] > 0)):
      self._val[_2] = val_[_3]
      self._subj[_2] = subj_[_3]
      self._subi[_2] = subi_[_3]
      _2 += 1
   else:
    self._subi = subi_
    self._subj = subj_
    self._val = val_
    if (subi_ is None):
     self._nnz = 0
    else:
     self._nnz = int((self._subi).shape[0])
  def _formPtrb_alt_(self,):
    return self._formPtrb_()
  def _formPtrb_(self,):
   _0=numpy.zeros(((self._dimi + 1),), dtype=numpy.dtype(numpy.int64))
   _1=0
   for _2 in range(0,self._dimi):
    _0[_2] = _1
    while ((_1 < self._nnz) and (self._subi[_1]==_2)):
     pass
     _1 += 1
   _0[self._dimi] = _1
   return (_0)
  @staticmethod
  def _match_toString_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_toString_(*args):
    if len(args) != 0: return False
    return True
  def _toString_alt_(self,):
    return self._toString_()
  def _toString_(self,):
   _0=mosek.fusion.Utils.StringBuffer()
   _0._a_S("SparseMatrix(")._a_I(self._dimi)._a_S(",")._a_I(self._dimj)._a_S(", [")
   if ((self._subi is not None) and (int((self._subi).shape[0]) > 0)):
    _0._a_S("(")._a_I(self._subi[0])._a_S(",")._a_I(self._subj[0])._a_S(",")._a_D(self._val[0])._a_S(")")
    for _1 in range(1,int((self._subi).shape[0])):
     _0._a_S(",(")._a_I(self._subi[_1])._a_S(",")._a_I(self._subj[_1])._a_S(",")._a_D(self._val[_1])._a_S(")")
   _0._a_S(" ])")
   return (_0._toString_())
  @staticmethod
  def _match_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numNonzeros_(*args):
    if len(args) != 0: return False
    return True
  def _numNonzeros_alt_(self,):
    return self._numNonzeros_()
  def _numNonzeros_(self,):
   return numpy.int64(self._nnz)
  @staticmethod
  def _match_transpose_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_transpose_(*args):
    if len(args) != 0: return False
    return True
  def _transpose_alt_(self,):
    return self._transpose_()
  def _transpose_(self,):
   return (mosek.fusion.Matrix._sparse_II_3I_3I_3D(self._dimj,self._dimi,self._subj,self._subi,self._val))
  @staticmethod
  def _match_isSparse_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_isSparse_(*args):
    if len(args) != 0: return False
    return True
  def _isSparse_alt_(self,):
    return self._isSparse_()
  def _isSparse_(self,):
   return (True)
  @staticmethod
  def _match_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_getDataAsArray_(*args):
    if len(args) != 0: return False
    return True
  def _getDataAsArray_alt_(self,):
    return self._getDataAsArray_()
  def _getDataAsArray_(self,):
   _0=numpy.zeros(((self._dimi * self._dimj),), dtype=numpy.dtype(numpy.float64))
   for _1 in range(0,int((self._subi).shape[0])):
    _0[((self._subi[_1] * self._dimj) + self._subj[_1])] = self._val[_1]
   return (_0)
  @staticmethod
  def _match_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match__3I__(_0) and __arg_match__3I__(_1) and __arg_match__3D__(_2))
  @staticmethod
  def _match_alt_getDataAsTriplets__3I_3I_3D(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match__3I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match__3D__(_2))
  def _getDataAsTriplets_alt__3I_3I_3D(self,_t__0,_t__1,_t__2):
   _0=numpy.array(_t__0,dtype=numpy.dtype(numpy.int32))
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.float64))
   _1_res = self._getDataAsTriplets__3I_3I_3D(_0,_1,_2)
   try:
     _t__0[:] = _0
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _getDataAsTriplets__3I_3I_3D(self,_0,_1,_2):
   if ((int((_0).shape[0]) < self._nnz) or ((int((_1).shape[0]) < self._nnz) or (int((_2).shape[0]) < self._nnz))):
    raise mosek_fusion_LengthError._ctor_S("Output arrays are not long enough.")
   if ((self._subi is not None) and (int((self._subi).shape[0]) > 0)):
    mosek.fusion.Utils.Tools._arraycopy__3IJ_3IJJ(self._subi,0,_0,0,self._nnz)
    mosek.fusion.Utils.Tools._arraycopy__3IJ_3IJJ(self._subj,0,_1,0,self._nnz)
    mosek.fusion.Utils.Tools._arraycopy__3DJ_3DJJ(self._val,0,_2,0,self._nnz)
  @staticmethod
  def _match_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_get_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _get_alt_II(self,_t__0,_t__1):
    return self._get_II(numpy.int32(__0),numpy.int32(__1))
  def _get_II(self,_0,_1):
   if ((_0 < 0) or ((_0 >= self._dimi) or ((_1 < 0) or (_1 >= self._dimj)))):
    raise mosek_fusion_IndexError._ctor_S("Index out if bounds")
   _2=int((self._subi).shape[0])
   _3=0
   while ((_2 - _3) > 1):
    _4=((_3 + _2) // 2)
    if ((self._subi[_4] < _0) or ((self._subi[_4]==_0) and (self._subj[_4] < _1))):
     _3 = _4
    elif ((self._subi[_4] > _0) or ((self._subi[_4]==_0) and (self._subj[_4] > _1))): # bld/docker-win/final/default/src/fusion/Matrix.mbi:600:18-63
     _2 = _4
    else:
     return numpy.float64(self._val[_4])
   if ((self._subi[_3]==_0) and (self._subj[_3]==_1)):
    return numpy.float64(self._val[_3])
   else:
    return numpy.float64(0.0)
 return SparseMatrix
mosek_fusion_SparseMatrix=__mk_mosek_fusion_SparseMatrix()
del __mk_mosek_fusion_SparseMatrix
def __mk_mosek_fusion_LinkedBlocks():
 class LinkedBlocks(object):
  __slots__ = ['_LinkedBlocks__bfirst','_LinkedBlocks__bsize','_LinkedBlocks__blocks','_LinkedBlocks__ints']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_I(*args): 
      self._ctor_init_I(*args)
    elif self.__match_alt_ctor_I(*args):
      self._ctor_alt_init_I(*args)
    elif self.__match_ctor_Lmosek_4fusion_4LinkedBlocks_2(*args): 
      self._ctor_init_Lmosek_4fusion_4LinkedBlocks_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4LinkedBlocks_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4LinkedBlocks_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.LinkedBlocks.ctor()\n\tmosek.fusion.LinkedBlocks.ctor(int32)\n\tmosek.fusion.LinkedBlocks.ctor(mosek.fusion.LinkedBlocks)')
  def blocksize(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_blocksize_I(*args): 
      return self._blocksize_I(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_blocksize_I(*args): 
      return self._blocksize_alt_I(*args)
    else:
      raise ValueError('Invalid argument list blocksize('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.blocksize(int32)')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_get_I_3II(*args): 
      return self._get_I_3II(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_get_I_3II(*args): 
      return self._get_alt_I_3II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.get(int32,array(int32,ndim=1),int32)')
  def numallocated(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_numallocated_(*args): 
      return self._numallocated_(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_numallocated_(*args): 
      return self._numallocated_alt_(*args)
    else:
      raise ValueError('Invalid argument list numallocated('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.numallocated()')
  def capacity(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_capacity_(*args): 
      return self._capacity_(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_capacity_(*args): 
      return self._capacity_alt_(*args)
    else:
      raise ValueError('Invalid argument list capacity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.capacity()')
  def numblocks(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_numblocks_(*args): 
      return self._numblocks_(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_numblocks_(*args): 
      return self._numblocks_alt_(*args)
    else:
      raise ValueError('Invalid argument list numblocks('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.numblocks()')
  def alloc(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_alloc_I(*args): 
      return self._alloc_I(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_alloc_I(*args): 
      return self._alloc_alt_I(*args)
    else:
      raise ValueError('Invalid argument list alloc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.alloc(int32)')
  def free(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_free_I(*args): 
      return self._free_I(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_free_I(*args): 
      return self._free_alt_I(*args)
    else:
      raise ValueError('Invalid argument list free('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.free(int32)')
  def maxidx(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_maxidx_I(*args): 
      return self._maxidx_I(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_maxidx_I(*args): 
      return self._maxidx_alt_I(*args)
    else:
      raise ValueError('Invalid argument list maxidx('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.maxidx(int32)')
  def validate(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_validate_(*args): 
      return self._validate_(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_validate_(*args): 
      return self._validate_alt_(*args)
    else:
      raise ValueError('Invalid argument list validate('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.validate()')
  def block_capacity(self,*args):
    if False: pass
    elif mosek_fusion_LinkedBlocks._match_block_1capacity_(*args): 
      return self._block_1capacity_(*args)
    elif mosek_fusion_LinkedBlocks._match_alt_block_1capacity_(*args): 
      return self._block_1capacity_alt_(*args)
    else:
      raise ValueError('Invalid argument list block_capacity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedBlocks.block_capacity()')
  def __repr__(self): return 'mosek.fusion.LinkedBlocks'
  @staticmethod
  def _ctor_():
    o = LinkedBlocks.__new__(LinkedBlocks)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_LinkedBlocks._ctor_init_I(self,0)
  @staticmethod
  def _ctor_I(n):
    o = LinkedBlocks.__new__(LinkedBlocks)
    o._ctor_init_I(n)
    return o
  @staticmethod
  def __match_ctor_I(*args):
    if len(args) != 1: return False
    n, = args
    return (__arg_match_I__(n))
  @staticmethod
  def __match_alt_ctor_I(*args):
    if len(args) != 1: return False
    n, = args
    return (__arg_alt_match_I__(n))
  def _ctor_alt_init_I(self,n):
    self._ctor_init_I(numpy.int32(n))
  def _ctor_init_I(self,n):
   _0=128
   self.__ints = mosek_fusion_LinkedInts._ctor_I(n)
   self.__blocks = mosek_fusion_LinkedInts._ctor_I(_0)
   self.__bsize = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
   self.__bfirst = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinkedBlocks_2(other):
    o = LinkedBlocks.__new__(LinkedBlocks)
    o._ctor_init_Lmosek_4fusion_4LinkedBlocks_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinkedBlocks_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4LinkedBlocks_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinkedBlocks_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinkedBlocks_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4LinkedBlocks_2(self,other):
    self._ctor_init_Lmosek_4fusion_4LinkedBlocks_2(other)
  def _ctor_init_Lmosek_4fusion_4LinkedBlocks_2(self,other):
   self.__ints = mosek_fusion_LinkedInts._ctor_Lmosek_4fusion_4LinkedInts_2((other.__ints))
   self.__blocks = mosek_fusion_LinkedInts._ctor_Lmosek_4fusion_4LinkedInts_2((other.__blocks))
   self.__bsize = mosek.fusion.Utils.Tools._arraycopy__3I((other.__bsize))
   self.__bfirst = mosek.fusion.Utils.Tools._arraycopy__3I((other.__bfirst))
  @staticmethod
  def _match_free_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_free_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _free_alt_I(self,_t__0):
    return self._free_I(numpy.int32(__0))
  def _free_I(self,_0):
   _1=self.__bfirst[_0]
   self.__ints.free(_1,self.__bsize[_0])
   self.__bsize[_0] = (- 1)
   self.__bfirst[_0] = (- 1)
   self.__blocks.free(_0,1)
  @staticmethod
  def _match_alloc_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_alloc_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _alloc_alt_I(self,_t__0):
    return self._alloc_I(numpy.int32(__0))
  def _alloc_I(self,_0):
   _1=(self.__ints.alloc(_0) if ((_0 > 0) ) else (- 1))
   _2=self.__blocks.alloc()
   if (self.__blocks.capacity() > int((self.__bsize).shape[0])):
    _3=numpy.zeros((self.__blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    _4=numpy.zeros((self.__blocks.capacity(),), dtype=numpy.dtype(numpy.int32))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__bsize,0,_3,0,int((self.__bsize).shape[0]))
    mosek.fusion.Utils.Tools._arraycopy__3II_3III(self.__bfirst,0,_4,0,int((self.__bfirst).shape[0]))
    self.__bsize = _3
    self.__bfirst = _4
   self.__bfirst[_2] = _1
   self.__bsize[_2] = _0
   return numpy.int32(_2)
  @staticmethod
  def _match_maxidx_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_maxidx_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _maxidx_alt_I(self,_t__0):
    return self._maxidx_I(numpy.int32(__0))
  def _maxidx_I(self,_0):
   return numpy.int32(self.__ints.maxidx(self.__bfirst[_0],self.__bsize[_0]))
  @staticmethod
  def _match_numallocated_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numallocated_(*args):
    if len(args) != 0: return False
    return True
  def _numallocated_alt_(self,):
    return self._numallocated_()
  def _numallocated_(self,):
   return numpy.int32(self.__ints.numallocated())
  @staticmethod
  def _match_get_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_get_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_I__(_2))
  def _get_alt_I_3II(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _1_res = self._get_I_3II(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _get_I_3II(self,_0,_1,_2):
   self.__ints.get(self.__bfirst[_0],self.__bsize[_0],_1,_2)
  @staticmethod
  def _match_numblocks_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numblocks_(*args):
    if len(args) != 0: return False
    return True
  def _numblocks_alt_(self,):
    return self._numblocks_()
  def _numblocks_(self,):
   return numpy.int32(int((self.__bsize).shape[0]))
  @staticmethod
  def _match_blocksize_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_blocksize_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _blocksize_alt_I(self,_t__0):
    return self._blocksize_I(numpy.int32(__0))
  def _blocksize_I(self,_0):
   return numpy.int32(self.__bsize[_0])
  @staticmethod
  def _match_block_1capacity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_block_1capacity_(*args):
    if len(args) != 0: return False
    return True
  def _block_1capacity_alt_(self,):
    return self._block_1capacity_()
  def _block_1capacity_(self,):
   return numpy.int32(self.__blocks.capacity())
  @staticmethod
  def _match_capacity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_capacity_(*args):
    if len(args) != 0: return False
    return True
  def _capacity_alt_(self,):
    return self._capacity_()
  def _capacity_(self,):
   return numpy.int32(self.__ints.capacity())
  @staticmethod
  def _match_validate_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_validate_(*args):
    if len(args) != 0: return False
    return True
  def _validate_alt_(self,):
    return self._validate_()
  def _validate_(self,):
   return ((self.__ints.validate() and self.__blocks.validate()))
 return LinkedBlocks
mosek_fusion_LinkedBlocks=__mk_mosek_fusion_LinkedBlocks()
del __mk_mosek_fusion_LinkedBlocks
def __mk_mosek_fusion_LinkedInts():
 class LinkedInts(object):
  __slots__ = ['_LinkedInts__nfree','_LinkedInts__last_free','_LinkedInts__first_free','_LinkedInts__first_used','_LinkedInts__prev','_LinkedInts__next']
  def __init__(self,*args):
    if False: pass
    elif self.__match_ctor_(*args): 
      self._ctor_init_(*args)
    elif self.__match_alt_ctor_(*args):
      self._ctor_alt_init_(*args)
    elif self.__match_ctor_I(*args): 
      self._ctor_init_I(*args)
    elif self.__match_alt_ctor_I(*args):
      self._ctor_alt_init_I(*args)
    elif self.__match_ctor_Lmosek_4fusion_4LinkedInts_2(*args): 
      self._ctor_init_Lmosek_4fusion_4LinkedInts_2(*args)
    elif self.__match_alt_ctor_Lmosek_4fusion_4LinkedInts_2(*args):
      self._ctor_alt_init_Lmosek_4fusion_4LinkedInts_2(*args)
    else:
      raise ValueError('Invalid argument list for constructor. Candidates are:\n\tmosek.fusion.LinkedInts.ctor()\n\tmosek.fusion.LinkedInts.ctor(int32)\n\tmosek.fusion.LinkedInts.ctor(mosek.fusion.LinkedInts)')
  def alloc(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_alloc_(*args): 
      return self._alloc_(*args)
    elif mosek_fusion_LinkedInts._match_alt_alloc_(*args): 
      return self._alloc_alt_(*args)
    elif mosek_fusion_LinkedInts._match_alloc_I(*args): 
      return self._alloc_I(*args)
    elif mosek_fusion_LinkedInts._match_alt_alloc_I(*args): 
      return self._alloc_alt_I(*args)
    elif mosek_fusion_LinkedInts._match_alloc_I_3II(*args): 
      return self._alloc_I_3II(*args)
    elif mosek_fusion_LinkedInts._match_alt_alloc_I_3II(*args): 
      return self._alloc_alt_I_3II(*args)
    else:
      raise ValueError('Invalid argument list alloc('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.alloc()\n\tmosek.fusion.LinkedInts.alloc(int32)\n\tmosek.fusion.LinkedInts.alloc(int32,array(int32,ndim=1),int32)')
  def validate(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_validate_(*args): 
      return self._validate_(*args)
    elif mosek_fusion_LinkedInts._match_alt_validate_(*args): 
      return self._validate_alt_(*args)
    else:
      raise ValueError('Invalid argument list validate('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.validate()')
  def numallocated(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_numallocated_(*args): 
      return self._numallocated_(*args)
    elif mosek_fusion_LinkedInts._match_alt_numallocated_(*args): 
      return self._numallocated_alt_(*args)
    else:
      raise ValueError('Invalid argument list numallocated('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.numallocated()')
  def get(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_get_II_3II(*args): 
      return self._get_II_3II(*args)
    elif mosek_fusion_LinkedInts._match_alt_get_II_3II(*args): 
      return self._get_alt_II_3II(*args)
    else:
      raise ValueError('Invalid argument list get('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.get(int32,int32,array(int32,ndim=1),int32)')
  def free(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_free_II(*args): 
      return self._free_II(*args)
    elif mosek_fusion_LinkedInts._match_alt_free_II(*args): 
      return self._free_alt_II(*args)
    else:
      raise ValueError('Invalid argument list free('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.free(int32,int32)')
  def maxidx(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_maxidx_II(*args): 
      return self._maxidx_II(*args)
    elif mosek_fusion_LinkedInts._match_alt_maxidx_II(*args): 
      return self._maxidx_alt_II(*args)
    else:
      raise ValueError('Invalid argument list maxidx('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.maxidx(int32,int32)')
  def capacity(self,*args):
    if False: pass
    elif mosek_fusion_LinkedInts._match_capacity_(*args): 
      return self._capacity_(*args)
    elif mosek_fusion_LinkedInts._match_alt_capacity_(*args): 
      return self._capacity_alt_(*args)
    else:
      raise ValueError('Invalid argument list capacity('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.LinkedInts.capacity()')
  def __repr__(self): return 'mosek.fusion.LinkedInts'
  @staticmethod
  def _ctor_I(cap_):
    o = LinkedInts.__new__(LinkedInts)
    o._ctor_init_I(cap_)
    return o
  @staticmethod
  def __match_ctor_I(*args):
    if len(args) != 1: return False
    cap_, = args
    return (__arg_match_I__(cap_))
  @staticmethod
  def __match_alt_ctor_I(*args):
    if len(args) != 1: return False
    cap_, = args
    return (__arg_alt_match_I__(cap_))
  def _ctor_alt_init_I(self,cap_):
    self._ctor_init_I(numpy.int32(cap_))
  def _ctor_init_I(self,cap_):
   _0=(cap_ if ((cap_ > 0) ) else 128)
   self.__next = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
   self.__prev = numpy.zeros((_0,), dtype=numpy.dtype(numpy.int32))
   self.__first_used = (- 1)
   self.__first_free = 0
   self.__last_free = (_0 - 1)
   for _1 in range(1,_0):
    self.__prev[_1] = (_1 - 1)
    self.__next[(_1 - 1)] = _1
   self.__prev[0] = (- 1)
   self.__next[(_0 - 1)] = (- 1)
   self.__nfree = _0
  @staticmethod
  def _ctor_():
    o = LinkedInts.__new__(LinkedInts)
    o._ctor_init_()
    return o
  @staticmethod
  def __match_ctor_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def __match_alt_ctor_(*args):
    if len(args) != 0: return False
    return True
  def _ctor_alt_init_(self,):
    self._ctor_init_()
  def _ctor_init_(self,):
   mosek_fusion_LinkedInts._ctor_init_I(self,128)
  @staticmethod
  def _ctor_Lmosek_4fusion_4LinkedInts_2(other):
    o = LinkedInts.__new__(LinkedInts)
    o._ctor_init_Lmosek_4fusion_4LinkedInts_2(other)
    return o
  @staticmethod
  def __match_ctor_Lmosek_4fusion_4LinkedInts_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_match_Lmosek_4fusion_4LinkedInts_2__(other))
  @staticmethod
  def __match_alt_ctor_Lmosek_4fusion_4LinkedInts_2(*args):
    if len(args) != 1: return False
    other, = args
    return (__arg_alt_match_Lmosek_4fusion_4LinkedInts_2__(other))
  def _ctor_alt_init_Lmosek_4fusion_4LinkedInts_2(self,other):
    self._ctor_init_Lmosek_4fusion_4LinkedInts_2(other)
  def _ctor_init_Lmosek_4fusion_4LinkedInts_2(self,other):
   self.__next = mosek.fusion.Utils.Tools._arraycopy__3I((other.__next))
   self.__prev = mosek.fusion.Utils.Tools._arraycopy__3I((other.__prev))
   self.__first_used = (other.__first_used)
   self.__first_free = (other.__first_free)
   self.__last_free = (other.__last_free)
   self.__nfree = (other.__nfree)
  @staticmethod
  def _match_free_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_free_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _free_alt_II(self,_t__0,_t__1):
    return self._free_II(numpy.int32(__0),numpy.int32(__1))
  def _free_II(self,_0,_1):
   _2=_0
   _3=_2
   for _4 in range(0,(_1 - 1)):
    _3 = self.__next[_3]
   _5=self.__prev[_2]
   _6=self.__next[_3]
   if (_5 >= 0):
    self.__next[_5] = _6
   else:
    self.__first_used = _6
   if (_6 >= 0):
    self.__prev[_6] = _5
   self.__prev[_2] = (- 1)
   self.__next[_3] = self.__first_free
   if (self.__first_free >= 0):
    self.__prev[self.__first_free] = _3
   self.__first_free = _2
   if (self.__last_free < 0):
    self.__last_free = _3
   self.__nfree += _1
  @staticmethod
  def _match_alloc_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_alloc_(*args):
    if len(args) != 0: return False
    return True
  def _alloc_alt_(self,):
    return self._alloc_()
  def _alloc_(self,):
   return numpy.int32(self.__allocblock_I(1))
  @staticmethod
  def _match_alloc_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_match_I__(_0))
  @staticmethod
  def _match_alt_alloc_I(*args):
    if len(args) != 1: return False
    _0, = args
    return (__arg_alt_match_I__(_0))
  def _alloc_alt_I(self,_t__0):
    return self._alloc_I(numpy.int32(__0))
  def _alloc_I(self,_0):
   return numpy.int32(self.__allocblock_I(_0))
  @staticmethod
  def _match_alloc_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_I__(_0) and __arg_match__3I__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_alloc_I_3II(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match__3I__(_1) and __arg_alt_match_I__(_2))
  def _alloc_alt_I_3II(self,_t__0,_t__1,_t__2):
   _0=numpy.int32(_t__0)
   _1=numpy.array(_t__1,dtype=numpy.dtype(numpy.int32))
   _2=numpy.int32(_t__2)
   _1_res = self._alloc_I_3II(_0,_1,_2)
   try:
     _t__1[:] = _1
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _alloc_I_3II(self,_0,_1,_2):
   _3=self.__allocblock_I(_0)
   for _4 in range(0,_0):
    _1[(_4 + _2)] = _3
    _3 = self.__next[_3]
  @staticmethod
  def _match_get_II_3II(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1) and __arg_match__3I__(_2) and __arg_match_I__(_3))
  @staticmethod
  def _match_alt_get_II_3II(*args):
    if len(args) != 4: return False
    _0,_1,_2,_3, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1) and __arg_alt_match__3I__(_2) and __arg_alt_match_I__(_3))
  def _get_alt_II_3II(self,_t__0,_t__1,_t__2,_t__3):
   _0=numpy.int32(_t__0)
   _1=numpy.int32(_t__1)
   _2=numpy.array(_t__2,dtype=numpy.dtype(numpy.int32))
   _3=numpy.int32(_t__3)
   _1_res = self._get_II_3II(_0,_1,_2,_3)
   try:
     _t__2[:] = _2
   except TypeError:
     pass # if we cannot copy back - ignore it
   return _1_res
  def _get_II_3II(self,_0,_1,_2,_3):
   _4=_0
   for _5 in range(0,_1):
    _2[(_5 + _3)] = _4
    _4 = self.__next[_4]
  @staticmethod
  def _match_numallocated_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_numallocated_(*args):
    if len(args) != 0: return False
    return True
  def _numallocated_alt_(self,):
    return self._numallocated_()
  def _numallocated_(self,):
   return numpy.int32((int((self.__next).shape[0]) - self.__nfree))
  @staticmethod
  def _match_maxidx_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_match_I__(_0) and __arg_match_I__(_1))
  @staticmethod
  def _match_alt_maxidx_II(*args):
    if len(args) != 2: return False
    _0,_1, = args
    return (__arg_alt_match_I__(_0) and __arg_alt_match_I__(_1))
  def _maxidx_alt_II(self,_t__0,_t__1):
    return self._maxidx_II(numpy.int32(__0),numpy.int32(__1))
  def _maxidx_II(self,_0,_1):
   _2=_0
   _3=_0
   for _4 in range(1,_1):
    _3 = self.__next[_3]
    if (_2 < _3):
     _2 = _3
   return numpy.int32(_2)
  def __allocblock_alt_I(self,_t__0):
    return self.__allocblock_I(numpy.int32(__0))
  def __allocblock_I(self,_0):
   _1=int((self.__next).shape[0])
   if (self.__nfree < _0):
    _2=(_0 - self.__nfree)
    if (_2 < _1):
     _2 = _1
    self.__recap_I((_2 + _1))
   _3=self.__first_free
   _4=_3
   for _5 in range(0,(_0 - 1)):
    _4 = self.__next[_4]
   self.__first_free = self.__next[_4]
   if (self.__first_free < 0):
    self.__last_free = (- 1)
   else:
    self.__prev[self.__first_free] = (- 1)
   self.__next[_4] = self.__first_used
   if (self.__first_used >= 0):
    self.__prev[self.__first_used] = _4
   self.__first_used = _3
   self.__nfree -= _0
   return numpy.int32(_3)
  def __recap_alt_I(self,_t__0):
    return self.__recap_I(numpy.int32(__0))
  def __recap_I(self,_0):
   _1=int((self.__next).shape[0])
   if (_0 > _1):
    self.__next = mosek.fusion.CommonTools._resize__3II(self.__next,_0)
    self.__prev = mosek.fusion.CommonTools._resize__3II(self.__prev,_0)
    for _2 in range(_1,(_0 - 1)):
     self.__next[_2] = (_2 + 1)
     self.__prev[(_2 + 1)] = _2
    self.__next[(_0 - 1)] = (- 1)
    self.__prev[_1] = self.__last_free
    if (self.__last_free < 0):
     self.__first_free = _1
    else:
     self.__next[self.__last_free] = _1
    self.__last_free = (_0 - 1)
    self.__nfree += (_0 - _1)
  @staticmethod
  def _match_capacity_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_capacity_(*args):
    if len(args) != 0: return False
    return True
  def _capacity_alt_(self,):
    return self._capacity_()
  def _capacity_(self,):
   return numpy.int32(int((self.__next).shape[0]))
  @staticmethod
  def _match_validate_(*args):
    if len(args) != 0: return False
    return True
  @staticmethod
  def _match_alt_validate_(*args):
    if len(args) != 0: return False
    return True
  def _validate_alt_(self,):
    return self._validate_()
  def _validate_(self,):
   _0=numpy.zeros((int((self.__next).shape[0]),), dtype=numpy.dtype(bool))
   _1=self.__first_used
   while (_1 >= 0):
    _0[_1] = True
    _1 = self.__next[_1]
    if ((_1 >= 0) and _0[_1]):
     raise mosek_fusion_UnexpectedError._ctor_S("used list/next is inconsistent")
   _1 = self.__first_free
   _2=0
   while (_1 >= 0):
    _2 += 1
    _0[_1] = True
    _1 = self.__next[_1]
    if ((_1 >= 0) and _0[_1]):
     raise mosek_fusion_UnexpectedError._ctor_S("free list/next is inconsistent")
   if (_2!=self.__nfree):
    raise mosek_fusion_UnexpectedError._ctor_S("free next list did not contain nfree elements")
   for _3 in range(0,int((_0).shape[0])):
    if (not _0[_1]):
     raise mosek_fusion_UnexpectedError._ctor_S("elements missing from used+free list")
   for _4 in range(0,int((_0).shape[0])):
    _0[_4] = False
   _1 = self.__last_free
   _5=0
   while (_1 >= 0):
    _5 += 1
    _0[_1] = True
    _1 = self.__prev[_1]
    if ((_1 >= 0) and _0[_1]):
     raise mosek_fusion_UnexpectedError._ctor_S("prev list is inconsistent")
   if (_5!=self.__nfree):
    raise mosek_fusion_UnexpectedError._ctor_S("free prev list did not contain nfree elements")
   return (True)
 return LinkedInts
mosek_fusion_LinkedInts=__mk_mosek_fusion_LinkedInts()
del __mk_mosek_fusion_LinkedInts
def __mk_mosek_fusion_Parameters():
 class Parameters(object):
  @staticmethod
  def setParameter(*args):
    if False: pass
    elif mosek_fusion_Parameters._match_setParameter_Lmosek_4fusion_4Model_2SS(*args): 
      return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SS(*args)
    elif mosek_fusion_Parameters._match_alt_setParameter_Lmosek_4fusion_4Model_2SS(*args): 
      return mosek_fusion_Parameters._setParameter_alt_Lmosek_4fusion_4Model_2SS(*args)
    elif mosek_fusion_Parameters._match_setParameter_Lmosek_4fusion_4Model_2SI(*args): 
      return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SI(*args)
    elif mosek_fusion_Parameters._match_alt_setParameter_Lmosek_4fusion_4Model_2SI(*args): 
      return mosek_fusion_Parameters._setParameter_alt_Lmosek_4fusion_4Model_2SI(*args)
    elif mosek_fusion_Parameters._match_setParameter_Lmosek_4fusion_4Model_2SD(*args): 
      return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SD(*args)
    elif mosek_fusion_Parameters._match_alt_setParameter_Lmosek_4fusion_4Model_2SD(*args): 
      return mosek_fusion_Parameters._setParameter_alt_Lmosek_4fusion_4Model_2SD(*args)
    else:
      raise ValueError('Invalid argument list setParameter('+','.join(map(repr,args))+'). Candidates are\n\tmosek.fusion.Parameters.setParameter(mosek.fusion.Model,string,string)\n\tmosek.fusion.Parameters.setParameter(mosek.fusion.Model,string,int32)\n\tmosek.fusion.Parameters.setParameter(mosek.fusion.Model,string,double)')
  def __repr__(self): return 'mosek.fusion.Parameters'
  @staticmethod
  def _match_setParameter_Lmosek_4fusion_4Model_2SD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(_0) and __arg_match_S__(_1) and __arg_match_D__(_2))
  @staticmethod
  def _match_alt_setParameter_Lmosek_4fusion_4Model_2SD(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(_0) and __arg_alt_match_S__(_1) and __arg_alt_match_D__(_2))
  @staticmethod
  def _setParameter_alt_Lmosek_4fusion_4Model_2SD(_t__0,_t__1,_t__2):
    return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SD(_0,_1,numpy.float64(__2))
  @staticmethod
  def _setParameter_Lmosek_4fusion_4Model_2SD(_0,_1,_2):
   if False:
    pass
   elif (_1=="autoUpdateSolInfo"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4866:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (autoUpdateSolInfo)")
   elif (_1=="removeUnusedSolutions"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4868:10-41
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (removeUnusedSolutions)")
   if (_1=="numThreads"):
    if ((_2 - numpy.int32(_2))==0.0):
     _3=_2
     if (0 <= _3):
      _0._task_1put_1param_SD("MSK_IPAR_NUM_THREADS",_3)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (numThreads)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (numThreads)")
   if (_1=="mtSpincount"):
    if ((_2 - numpy.int32(_2))==0.0):
     _4=_2
     if ((0 <= _4) and (_4 <= 1000000000)):
      _0._task_1put_1param_SD("MSK_IPAR_MT_SPINCOUNT",_4)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mtSpincount)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mtSpincount)")
   elif (_1=="optimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4900:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizer)")
   if (_1=="biMaxIterations"):
    if ((_2 - numpy.int32(_2))==0.0):
     _5=_2
     if (0 <= _5):
      _0._task_1put_1param_SD("MSK_IPAR_BI_MAX_ITERATIONS",_5)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biMaxIterations)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biMaxIterations)")
   if (_1=="licenseTrhExpiryWrn"):
    if ((_2 - numpy.int32(_2))==0.0):
     _6=_2
     if (0 <= _6):
      _0._task_1put_1param_SD("MSK_IPAR_LICENSE_TRH_EXPIRY_WRN",_6)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseTrhExpiryWrn)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseTrhExpiryWrn)")
   if (_1=="logCutSecondOpt"):
    if ((_2 - numpy.int32(_2))==0.0):
     _7=_2
     if (0 <= _7):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_CUT_SECOND_OPT",_7)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logCutSecondOpt)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logCutSecondOpt)")
   if (_1=="logResponse"):
    if ((_2 - numpy.int32(_2))==0.0):
     _8=_2
     if (0 <= _8):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_RESPONSE",_8)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logResponse)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logResponse)")
   elif (_1=="logLocalInfo"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4962:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logLocalInfo)")
   if (_1=="logBi"):
    if ((_2 - numpy.int32(_2))==0.0):
     _9=_2
     if (0 <= _9):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_BI",_9)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBi)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBi)")
   if (_1=="logBiFreq"):
    if ((_2 - numpy.int32(_2))==0.0):
     _10=_2
     if (0 <= _10):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_BI_FREQ",_10)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBiFreq)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBiFreq)")
   elif (_1=="biCleanOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4994:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biCleanOptimizer)")
   elif (_1=="intpntStartingPoint"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4996:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntStartingPoint)")
   elif (_1=="intpntDiffStep"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4998:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntDiffStep)")
   elif (_1=="intpntScaling"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5000:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntScaling)")
   elif (_1=="intpntSolveForm"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5002:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntSolveForm)")
   if (_1=="logIntpnt"):
    if ((_2 - numpy.int32(_2))==0.0):
     _11=_2
     if (0 <= _11):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_INTPNT",_11)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logIntpnt)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logIntpnt)")
   if (_1=="intpntMaxIterations"):
    if ((_2 - numpy.int32(_2))==0.0):
     _12=_2
     if (0 <= _12):
      _0._task_1put_1param_SD("MSK_IPAR_INTPNT_MAX_ITERATIONS",_12)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxIterations)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxIterations)")
   if (_1=="intpntOffColTrh"):
    if ((_2 - numpy.int32(_2))==0.0):
     _13=_2
     if (0 <= _13):
      _0._task_1put_1param_SD("MSK_IPAR_INTPNT_OFF_COL_TRH",_13)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOffColTrh)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOffColTrh)")
   elif (_1=="intpntOrderMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5049:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderMethod)")
   if (_1=="intpntOrderGpNumSeeds"):
    if ((_2 - numpy.int32(_2))==0.0):
     _14=_2
     if (0 <= _14):
      _0._task_1put_1param_SD("MSK_IPAR_INTPNT_ORDER_GP_NUM_SEEDS",_14)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderGpNumSeeds)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderGpNumSeeds)")
   elif (_1=="intpntBasis"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5066:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntBasis)")
   elif (_1=="biIgnoreMaxIter"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5068:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreMaxIter)")
   elif (_1=="biIgnoreNumError"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5070:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreNumError)")
   if (_1=="intpntMaxNumCor"):
    if ((_2 - numpy.int32(_2))==0.0):
     _15=_2
     if ((- 1) <= _15):
      _0._task_1put_1param_SD("MSK_IPAR_INTPNT_MAX_NUM_COR",_15)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxNumCor)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxNumCor)")
   elif (_1=="presolveUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5087:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveUse)")
   if (_1=="presolveLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _16=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_LEVEL",_16)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLevel)")
   if (_1=="logPresolve"):
    if ((_2 - numpy.int32(_2))==0.0):
     _17=_2
     if (0 <= _17):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_PRESOLVE",_17)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logPresolve)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logPresolve)")
   elif (_1=="presolveLindepUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5119:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepUse)")
   elif (_1=="presolveLindepNew"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5121:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepNew)")
   if (_1=="presolveMaxNumPass"):
    if ((_2 - numpy.int32(_2))==0.0):
     _18=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_MAX_NUM_PASS",_18)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveMaxNumPass)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveMaxNumPass)")
   if (_1=="presolveEliminatorMaxNumTries"):
    if ((_2 - numpy.int32(_2))==0.0):
     _19=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_NUM_TRIES",_19)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxNumTries)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxNumTries)")
   if (_1=="presolveEliminatorMaxFill"):
    if ((_2 - numpy.int32(_2))==0.0):
     _20=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_FILL",_20)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxFill)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxFill)")
   if (_1=="simPrimalCrash"):
    if ((_2 - numpy.int32(_2))==0.0):
     _21=_2
     if (0 <= _21):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_PRIMAL_CRASH",_21)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalCrash)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalCrash)")
   if (_1=="logSim"):
    if ((_2 - numpy.int32(_2))==0.0):
     _22=_2
     if (0 <= _22):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_SIM",_22)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSim)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSim)")
   if (_1=="logSimMinor"):
    if ((_2 - numpy.int32(_2))==0.0):
     _23=_2
     if (0 <= _23):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_SIM_MINOR",_23)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimMinor)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimMinor)")
   if (_1=="logSimFreq"):
    if ((_2 - numpy.int32(_2))==0.0):
     _24=_2
     if (0 <= _24):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_SIM_FREQ",_24)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimFreq)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimFreq)")
   if (_1=="simPrimalRestrictSelection"):
    if ((_2 - numpy.int32(_2))==0.0):
     _25=_2
     if ((0 <= _25) and (_25 <= 100)):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_PRIMAL_RESTRICT_SELECTION",_25)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalRestrictSelection)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalRestrictSelection)")
   elif (_1=="simPrimalSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5243:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalSelection)")
   if (_1=="simDualRestrictSelection"):
    if ((_2 - numpy.int32(_2))==0.0):
     _26=_2
     if ((0 <= _26) and (_26 <= 100)):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_DUAL_RESTRICT_SELECTION",_26)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualRestrictSelection)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualRestrictSelection)")
   elif (_1=="simDualSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5260:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualSelection)")
   if (_1=="simMaxIterations"):
    if ((_2 - numpy.int32(_2))==0.0):
     _27=_2
     if (0 <= _27):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_MAX_ITERATIONS",_27)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxIterations)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxIterations)")
   elif (_1=="simHotstartLu"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5277:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstartLu)")
   if (_1=="simRefactorFreq"):
    if ((_2 - numpy.int32(_2))==0.0):
     _28=_2
     if (0 <= _28):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_REFACTOR_FREQ",_28)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simRefactorFreq)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simRefactorFreq)")
   if (_1=="simSeed"):
    if ((_2 - numpy.int32(_2))==0.0):
     _29=_2
     if ((0 <= _29) and (_29 <= 32749)):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_SEED",_29)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSeed)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSeed)")
   elif (_1=="mioMode"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5309:10-27
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMode)")
   if (_1=="logMio"):
    if ((_2 - numpy.int32(_2))==0.0):
     _30=_2
     if (0 <= _30):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_MIO",_30)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMio)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMio)")
   if (_1=="logMioFreq"):
    if ((_2 - numpy.int32(_2))==0.0):
     _31=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_LOG_MIO_FREQ",_31)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMioFreq)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMioFreq)")
   if (_1=="mioMaxNumRelaxs"):
    if ((_2 - numpy.int32(_2))==0.0):
     _32=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MAX_NUM_RELAXS",_32)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRelaxs)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRelaxs)")
   if (_1=="mioMaxNumBranches"):
    if ((_2 - numpy.int32(_2))==0.0):
     _33=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MAX_NUM_BRANCHES",_33)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumBranches)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumBranches)")
   if (_1=="mioMaxNumRestarts"):
    if ((_2 - numpy.int32(_2))==0.0):
     _34=_2
     if (0 <= _34):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MAX_NUM_RESTARTS",_34)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRestarts)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRestarts)")
   if (_1=="mioMaxNumRootCutRounds"):
    if ((_2 - numpy.int32(_2))==0.0):
     _35=_2
     if (0 <= _35):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MAX_NUM_ROOT_CUT_ROUNDS",_35)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRootCutRounds)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRootCutRounds)")
   if (_1=="mioMaxNumSolutions"):
    if ((_2 - numpy.int32(_2))==0.0):
     _36=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MAX_NUM_SOLUTIONS",_36)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumSolutions)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumSolutions)")
   elif (_1=="mioNodeSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5416:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeSelection)")
   elif (_1=="mioVarSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5418:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVarSelection)")
   if (_1=="mioMinRel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _37=_2
     if (0 <= _37):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MIN_REL",_37)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMinRel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMinRel)")
   if (_1=="mioHeuristicLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _38=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_MIO_HEURISTIC_LEVEL",_38)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioHeuristicLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioHeuristicLevel)")
   if (_1=="mioProbingLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _39=_2
     if (((- 1) <= _39) and (_39 <= 3)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_PROBING_LEVEL",_39)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioProbingLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioProbingLevel)")
   if (_1=="mioSymmetryLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _40=_2
     if (((- 1) <= _40) and (_40 <= 4)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_SYMMETRY_LEVEL",_40)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSymmetryLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSymmetryLevel)")
   if (_1=="mioDualRayAnalysisLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _41=_2
     if (((- 1) <= _41) and (_41 <= 2)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_DUAL_RAY_ANALYSIS_LEVEL",_41)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDualRayAnalysisLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDualRayAnalysisLevel)")
   elif (_1=="mioPresolveAggregatorUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5495:10-44
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPresolveAggregatorUse)")
   if (_1=="mioNumericalEmphasisLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _42=_2
     if ((0 <= _42) and (_42 <= 2)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_NUMERICAL_EMPHASIS_LEVEL",_42)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNumericalEmphasisLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNumericalEmphasisLevel)")
   if (_1=="mioMemoryEmphasisLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _43=_2
     if ((0 <= _43) and (_43 <= 1)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_MEMORY_EMPHASIS_LEVEL",_43)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMemoryEmphasisLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMemoryEmphasisLevel)")
   if (_1=="mioCutSelectionLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _44=_2
     if (((- 1) <= _44) and (_44 <= 1)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_CUT_SELECTION_LEVEL",_44)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutSelectionLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutSelectionLevel)")
   if (_1=="mioVbDetectionLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _45=_2
     if (((- 1) <= _45) and (_45 <= 2)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_VB_DETECTION_LEVEL",_45)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVbDetectionLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVbDetectionLevel)")
   elif (_1=="mioBranchDir"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5557:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioBranchDir)")
   elif (_1=="mioRootOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5559:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootOptimizer)")
   elif (_1=="mioNodeOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5561:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeOptimizer)")
   elif (_1=="mioPerspectiveReformulate"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5563:10-45
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPerspectiveReformulate)")
   elif (_1=="mioPropagateObjectiveConstraint"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5565:10-51
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPropagateObjectiveConstraint)")
   if (_1=="mioSeed"):
    if ((_2 - numpy.int32(_2))==0.0):
     _46=_2
     if (0 <= _46):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_SEED",_46)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSeed)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSeed)")
   elif (_1=="mioConicOuterApproximation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5582:10-46
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConicOuterApproximation)")
   elif (_1=="mioQcqoReformulationMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5584:10-46
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioQcqoReformulationMethod)")
   elif (_1=="mioDataPermutationMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5586:10-44
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDataPermutationMethod)")
   if (_1=="writeLpLineWidth"):
    if ((_2 - numpy.int32(_2))==0.0):
     _47=_2
     if (40 <= _47):
      _0._task_1put_1param_SD("MSK_IPAR_WRITE_LP_LINE_WIDTH",_47)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpLineWidth)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpLineWidth)")
   elif (_1=="writeLpFullObj"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5603:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpFullObj)")
   elif (_1=="writeJsonIndentation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5605:10-40
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeJsonIndentation)")
   elif (_1=="infeasReportAuto"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5607:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasReportAuto)")
   if (_1=="logInfeasAna"):
    if ((_2 - numpy.int32(_2))==0.0):
     _48=_2
     if (0 <= _48):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_INFEAS_ANA",_48)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logInfeasAna)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logInfeasAna)")
   elif (_1=="licenseWait"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5624:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseWait)")
   elif (_1=="licenseSuppressExpireWrns"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5626:10-45
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseSuppressExpireWrns)")
   if (_1=="licensePauseTime"):
    if ((_2 - numpy.int32(_2))==0.0):
     _49=_2
     if ((0 <= _49) and (_49 <= 1000000)):
      _0._task_1put_1param_SD("MSK_IPAR_LICENSE_PAUSE_TIME",_49)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licensePauseTime)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licensePauseTime)")
   elif (_1=="licenseDebug"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5643:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseDebug)")
   if (_1=="log"):
    if ((_2 - numpy.int32(_2))==0.0):
     _50=_2
     if (0 <= _50):
      _0._task_1put_1param_SD("MSK_IPAR_LOG",_50)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (log)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (log)")
   if (_1=="logExpand"):
    if ((_2 - numpy.int32(_2))==0.0):
     _51=_2
     if (0 <= _51):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_EXPAND",_51)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logExpand)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logExpand)")
   if (_1=="logFile"):
    if ((_2 - numpy.int32(_2))==0.0):
     _52=_2
     if (0 <= _52):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_FILE",_52)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logFile)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logFile)")
   if (_1=="logOrder"):
    if ((_2 - numpy.int32(_2))==0.0):
     _53=_2
     if (0 <= _53):
      _0._task_1put_1param_SD("MSK_IPAR_LOG_ORDER",_53)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logOrder)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logOrder)")
   elif (_1=="simScaling"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5705:10-30
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScaling)")
   elif (_1=="simScalingMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5707:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScalingMethod)")
   if (_1=="simPrimalPhaseoneMethod"):
    if ((_2 - numpy.int32(_2))==0.0):
     _54=_2
     if ((0 <= _54) and (_54 <= 10)):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_PRIMAL_PHASEONE_METHOD",_54)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalPhaseoneMethod)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalPhaseoneMethod)")
   if (_1=="simDualPhaseoneMethod"):
    if ((_2 - numpy.int32(_2))==0.0):
     _55=_2
     if ((0 <= _55) and (_55 <= 10)):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_DUAL_PHASEONE_METHOD",_55)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualPhaseoneMethod)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualPhaseoneMethod)")
   if (_1=="simMaxNumSetbacks"):
    if ((_2 - numpy.int32(_2))==0.0):
     _56=_2
     if (0 <= _56):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_MAX_NUM_SETBACKS",_56)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxNumSetbacks)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxNumSetbacks)")
   elif (_1=="simHotstart"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5754:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstart)")
   elif (_1=="simBasisFactorUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5756:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simBasisFactorUse)")
   elif (_1=="simDegen"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5758:10-28
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDegen)")
   elif (_1=="simReformulation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5760:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simReformulation)")
   elif (_1=="simExploitDupvec"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5762:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simExploitDupvec)")
   elif (_1=="simSaveLu"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5764:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSaveLu)")
   elif (_1=="simNonSingular"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5766:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simNonSingular)")
   if (_1=="simDualCrash"):
    if ((_2 - numpy.int32(_2))==0.0):
     _57=_2
     if (0 <= _57):
      _0._task_1put_1param_SD("MSK_IPAR_SIM_DUAL_CRASH",_57)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualCrash)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualCrash)")
   elif (_1=="infeasPreferPrimal"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5783:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasPreferPrimal)")
   if (_1=="mioRootRepeatPresolveLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _58=_2
     if (((- 1) <= _58) and (_58 <= 1)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_ROOT_REPEAT_PRESOLVE_LEVEL",_58)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootRepeatPresolveLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootRepeatPresolveLevel)")
   elif (_1=="mioCutCmir"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5800:10-30
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutCmir)")
   elif (_1=="mioCutClique"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5802:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutClique)")
   elif (_1=="mioCutImpliedBound"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5804:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutImpliedBound)")
   elif (_1=="mioCutKnapsackCover"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5806:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutKnapsackCover)")
   elif (_1=="mioCutGmi"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5808:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutGmi)")
   elif (_1=="mioCutLipro"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5810:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutLipro)")
   elif (_1=="mioConstructSol"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5812:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConstructSol)")
   if (_1=="presolveLindepRelWorkTrh"):
    if ((_2 - numpy.int32(_2))==0.0):
     _59=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_LINDEP_REL_WORK_TRH",_59)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepRelWorkTrh)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepRelWorkTrh)")
   if (_1=="presolveLindepAbsWorkTrh"):
    if ((_2 - numpy.int32(_2))==0.0):
     _60=_2
     if True:
      _0._task_1put_1param_SD("MSK_IPAR_PRESOLVE_LINDEP_ABS_WORK_TRH",_60)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepAbsWorkTrh)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepAbsWorkTrh)")
   elif (_1=="cacheLicense"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5844:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (cacheLicense)")
   elif (_1=="intpntRegularizationUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5846:10-43
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntRegularizationUse)")
   elif (_1=="simSolveForm"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5848:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSolveForm)")
   elif (_1=="simSwitchOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5850:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSwitchOptimizer)")
   if (_1=="mioRinsMaxNodes"):
    if ((_2 - numpy.int32(_2))==0.0):
     _61=_2
     if ((- 1) <= _61):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_RINS_MAX_NODES",_61)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRinsMaxNodes)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRinsMaxNodes)")
   if (_1=="mioFeaspumpLevel"):
    if ((_2 - numpy.int32(_2))==0.0):
     _62=_2
     if (((- 1) <= _62) and (_62 <= 2)):
      _0._task_1put_1param_SD("MSK_IPAR_MIO_FEASPUMP_LEVEL",_62)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioFeaspumpLevel)")
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioFeaspumpLevel)")
   elif (_1=="remoteUseCompression"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:5882:10-40
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteUseCompression)")
   if (_1=="optimizerMaxTime"):
    _63=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TIME",_63)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTime)")
   if (_1=="optimizerMaxTicks"):
    _64=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TICKS",_64)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTicks)")
   if (_1=="lowerObjCut"):
    _65=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT",_65)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCut)")
   if (_1=="upperObjCut"):
    _66=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT",_66)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCut)")
   if (_1=="upperObjCutFiniteTrh"):
    _67=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT_FINITE_TRH",_67)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCutFiniteTrh)")
   if (_1=="lowerObjCutFiniteTrh"):
    _68=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT_FINITE_TRH",_68)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCutFiniteTrh)")
   if (_1=="intpntTolRelGap"):
    _69=_2
    if (1.000000e-14 <= _69):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_GAP",_69)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelGap)")
   if (_1=="intpntTolStepSize"):
    _70=_2
    if ((0.000000e+00 <= _70) and (_70 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_STEP_SIZE",_70)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolStepSize)")
   if (_1=="simLuTolRelPiv"):
    _71=_2
    if ((1.000000e-06 <= _71) and (_71 <= 9.999990e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_SIM_LU_TOL_REL_PIV",_71)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simLuTolRelPiv)")
   if (_1=="intpntTolRelStep"):
    _72=_2
    if ((1.000000e-04 <= _72) and (_72 <= 9.999990e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_STEP",_72)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelStep)")
   if (_1=="intpntTolPath"):
    _73=_2
    if ((0.000000e+00 <= _73) and (_73 <= 9.999000e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PATH",_73)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPath)")
   if (_1=="intpntTolPfeas"):
    _74=_2
    if ((0.000000e+00 <= _74) and (_74 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PFEAS",_74)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPfeas)")
   if (_1=="intpntTolDfeas"):
    _75=_2
    if ((0.000000e+00 <= _75) and (_75 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DFEAS",_75)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDfeas)")
   if (_1=="intpntTolMuRed"):
    _76=_2
    if ((0.000000e+00 <= _76) and (_76 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_MU_RED",_76)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolMuRed)")
   if (_1=="intpntTolInfeas"):
    _77=_2
    if ((0.000000e+00 <= _77) and (_77 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_INFEAS",_77)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolInfeas)")
   if (_1=="intpntCoTolRelGap"):
    _78=_2
    if ((0.000000e+00 <= _78) and (_78 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_REL_GAP",_78)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolRelGap)")
   if (_1=="intpntCoTolPfeas"):
    _79=_2
    if ((0.000000e+00 <= _79) and (_79 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_PFEAS",_79)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolPfeas)")
   if (_1=="intpntCoTolDfeas"):
    _80=_2
    if ((0.000000e+00 <= _80) and (_80 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_DFEAS",_80)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolDfeas)")
   if (_1=="intpntCoTolMuRed"):
    _81=_2
    if ((0.000000e+00 <= _81) and (_81 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_MU_RED",_81)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolMuRed)")
   if (_1=="intpntCoTolNearRel"):
    _82=_2
    if (1.000000e+00 <= _82):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_NEAR_REL",_82)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolNearRel)")
   if (_1=="intpntCoTolInfeas"):
    _83=_2
    if ((0.000000e+00 <= _83) and (_83 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_INFEAS",_83)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolInfeas)")
   if (_1=="intpntTolPsafe"):
    _84=_2
    if (1.000000e-04 <= _84):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PSAFE",_84)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPsafe)")
   if (_1=="intpntTolDsafe"):
    _85=_2
    if (1.000000e-04 <= _85):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DSAFE",_85)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDsafe)")
   if (_1=="mioMaxTime"):
    _86=_2
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_MIO_MAX_TIME",_86)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxTime)")
   if (_1=="mioRelGapConst"):
    _87=_2
    if (1.000000e-15 <= _87):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_REL_GAP_CONST",_87)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRelGapConst)")
   if (_1=="mioTolRelGap"):
    _88=_2
    if (0.000000e+00 <= _88):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_GAP",_88)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelGap)")
   if (_1=="mioTolAbsGap"):
    _89=_2
    if (0.000000e+00 <= _89):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_GAP",_89)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsGap)")
   if (_1=="mioTolAbsRelaxInt"):
    _90=_2
    if (1.000000e-09 <= _90):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_RELAX_INT",_90)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsRelaxInt)")
   if (_1=="mioDjcMaxBigm"):
    _91=_2
    if (0.000000e+00 <= _91):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_DJC_MAX_BIGM",_91)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDjcMaxBigm)")
   if (_1=="basisTolX"):
    _92=_2
    if (1.000000e-09 <= _92):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_X",_92)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolX)")
   if (_1=="basisTolS"):
    _93=_2
    if (1.000000e-09 <= _93):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_S",_93)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolS)")
   if (_1=="basisRelTolS"):
    _94=_2
    if (0.000000e+00 <= _94):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_REL_TOL_S",_94)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisRelTolS)")
   if (_1=="presolveTolX"):
    _95=_2
    if (0.000000e+00 <= _95):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_X",_95)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolX)")
   if (_1=="presolveTolPrimalInfeasPerturbation"):
    _96=_2
    if (0.000000e+00 <= _96):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_PRIMAL_INFEAS_PERTURBATION",_96)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolPrimalInfeasPerturbation)")
   if (_1=="presolveTolS"):
    _97=_2
    if (0.000000e+00 <= _97):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_S",_97)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolS)")
   if (_1=="presolveTolAij"):
    _98=_2
    if (1.000000e-15 <= _98):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_AIJ",_98)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAij)")
   if (_1=="presolveTolAbsLindep"):
    _99=_2
    if (0.000000e+00 <= _99):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_ABS_LINDEP",_99)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAbsLindep)")
   if (_1=="presolveTolRelLindep"):
    _100=_2
    if (0.000000e+00 <= _100):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_REL_LINDEP",_100)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolRelLindep)")
   if (_1=="simplexAbsTolPiv"):
    _101=_2
    if (1.000000e-12 <= _101):
     _0._task_1put_1param_SD("MSK_DPAR_SIMPLEX_ABS_TOL_PIV",_101)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simplexAbsTolPiv)")
   if (_1=="mioTolFeas"):
    _102=_2
    if ((1.000000e-09 <= _102) and (_102 <= 1.000000e-03)):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_FEAS",_102)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolFeas)")
   if (_1=="mioTolRelDualBoundImprovement"):
    _103=_2
    if ((0.000000e+00 <= _103) and (_103 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_DUAL_BOUND_IMPROVEMENT",_103)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelDualBoundImprovement)")
   elif (_1=="dataFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6294:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (dataFileName)")
   elif (_1=="basSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6296:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basSolFileName)")
   elif (_1=="itrSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6298:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (itrSolFileName)")
   elif (_1=="intSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6300:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intSolFileName)")
   elif (_1=="writeLpGenVarName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6302:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpGenVarName)")
   elif (_1=="remoteOptserverHost"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6304:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteOptserverHost)")
   elif (_1=="remoteTlsCertPath"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6306:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteTlsCertPath)")
   elif (_1=="remoteTlsCert"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:6308:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteTlsCert)")
   raise mosek_fusion_ParameterError._ctor_S("Unknown parameter")
  @staticmethod
  def _match_setParameter_Lmosek_4fusion_4Model_2SI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(_0) and __arg_match_S__(_1) and __arg_match_I__(_2))
  @staticmethod
  def _match_alt_setParameter_Lmosek_4fusion_4Model_2SI(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(_0) and __arg_alt_match_S__(_1) and __arg_alt_match_I__(_2))
  @staticmethod
  def _setParameter_alt_Lmosek_4fusion_4Model_2SI(_t__0,_t__1,_t__2):
    return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SI(_0,_1,numpy.int32(__2))
  @staticmethod
  def _setParameter_Lmosek_4fusion_4Model_2SI(_0,_1,_2):
   if False:
    pass
   elif (_1=="autoUpdateSolInfo"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3716:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (autoUpdateSolInfo)")
   elif (_1=="removeUnusedSolutions"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3718:10-41
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (removeUnusedSolutions)")
   if (_1=="numThreads"):
    _3=_2
    if (0 <= _3):
     _0._task_1put_1param_SI("MSK_IPAR_NUM_THREADS",_3)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (numThreads)")
   if (_1=="mtSpincount"):
    _4=_2
    if ((0 <= _4) and (_4 <= 1000000000)):
     _0._task_1put_1param_SI("MSK_IPAR_MT_SPINCOUNT",_4)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mtSpincount)")
   elif (_1=="optimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3740:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizer)")
   if (_1=="biMaxIterations"):
    _5=_2
    if (0 <= _5):
     _0._task_1put_1param_SI("MSK_IPAR_BI_MAX_ITERATIONS",_5)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biMaxIterations)")
   if (_1=="licenseTrhExpiryWrn"):
    _6=_2
    if (0 <= _6):
     _0._task_1put_1param_SI("MSK_IPAR_LICENSE_TRH_EXPIRY_WRN",_6)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseTrhExpiryWrn)")
   if (_1=="logCutSecondOpt"):
    _7=_2
    if (0 <= _7):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_CUT_SECOND_OPT",_7)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logCutSecondOpt)")
   if (_1=="logResponse"):
    _8=_2
    if (0 <= _8):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_RESPONSE",_8)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logResponse)")
   elif (_1=="logLocalInfo"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3782:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logLocalInfo)")
   if (_1=="logBi"):
    _9=_2
    if (0 <= _9):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_BI",_9)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBi)")
   if (_1=="logBiFreq"):
    _10=_2
    if (0 <= _10):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_BI_FREQ",_10)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBiFreq)")
   elif (_1=="biCleanOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3804:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biCleanOptimizer)")
   elif (_1=="intpntStartingPoint"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3806:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntStartingPoint)")
   elif (_1=="intpntDiffStep"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3808:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntDiffStep)")
   elif (_1=="intpntScaling"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3810:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntScaling)")
   elif (_1=="intpntSolveForm"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3812:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntSolveForm)")
   if (_1=="logIntpnt"):
    _11=_2
    if (0 <= _11):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_INTPNT",_11)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logIntpnt)")
   if (_1=="intpntMaxIterations"):
    _12=_2
    if (0 <= _12):
     _0._task_1put_1param_SI("MSK_IPAR_INTPNT_MAX_ITERATIONS",_12)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxIterations)")
   if (_1=="intpntOffColTrh"):
    _13=_2
    if (0 <= _13):
     _0._task_1put_1param_SI("MSK_IPAR_INTPNT_OFF_COL_TRH",_13)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOffColTrh)")
   elif (_1=="intpntOrderMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3844:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderMethod)")
   if (_1=="intpntOrderGpNumSeeds"):
    _14=_2
    if (0 <= _14):
     _0._task_1put_1param_SI("MSK_IPAR_INTPNT_ORDER_GP_NUM_SEEDS",_14)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderGpNumSeeds)")
   elif (_1=="intpntBasis"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3856:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntBasis)")
   elif (_1=="biIgnoreMaxIter"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3858:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreMaxIter)")
   elif (_1=="biIgnoreNumError"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3860:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreNumError)")
   if (_1=="intpntMaxNumCor"):
    _15=_2
    if ((- 1) <= _15):
     _0._task_1put_1param_SI("MSK_IPAR_INTPNT_MAX_NUM_COR",_15)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxNumCor)")
   elif (_1=="presolveUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3872:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveUse)")
   if (_1=="presolveLevel"):
    _16=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LEVEL",_16)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLevel)")
   if (_1=="logPresolve"):
    _17=_2
    if (0 <= _17):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_PRESOLVE",_17)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logPresolve)")
   elif (_1=="presolveLindepUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3894:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepUse)")
   elif (_1=="presolveLindepNew"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3896:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepNew)")
   if (_1=="presolveMaxNumPass"):
    _18=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_MAX_NUM_PASS",_18)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveMaxNumPass)")
   if (_1=="presolveEliminatorMaxNumTries"):
    _19=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_NUM_TRIES",_19)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxNumTries)")
   if (_1=="presolveEliminatorMaxFill"):
    _20=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_FILL",_20)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxFill)")
   if (_1=="simPrimalCrash"):
    _21=_2
    if (0 <= _21):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_CRASH",_21)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalCrash)")
   if (_1=="logSim"):
    _22=_2
    if (0 <= _22):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM",_22)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSim)")
   if (_1=="logSimMinor"):
    _23=_2
    if (0 <= _23):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM_MINOR",_23)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimMinor)")
   if (_1=="logSimFreq"):
    _24=_2
    if (0 <= _24):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM_FREQ",_24)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimFreq)")
   if (_1=="simPrimalRestrictSelection"):
    _25=_2
    if ((0 <= _25) and (_25 <= 100)):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_RESTRICT_SELECTION",_25)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalRestrictSelection)")
   elif (_1=="simPrimalSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3978:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalSelection)")
   if (_1=="simDualRestrictSelection"):
    _26=_2
    if ((0 <= _26) and (_26 <= 100)):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_RESTRICT_SELECTION",_26)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualRestrictSelection)")
   elif (_1=="simDualSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:3990:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualSelection)")
   if (_1=="simMaxIterations"):
    _27=_2
    if (0 <= _27):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_MAX_ITERATIONS",_27)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxIterations)")
   elif (_1=="simHotstartLu"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4002:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstartLu)")
   if (_1=="simRefactorFreq"):
    _28=_2
    if (0 <= _28):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_REFACTOR_FREQ",_28)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simRefactorFreq)")
   if (_1=="simSeed"):
    _29=_2
    if ((0 <= _29) and (_29 <= 32749)):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_SEED",_29)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSeed)")
   elif (_1=="mioMode"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4024:10-27
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMode)")
   if (_1=="logMio"):
    _30=_2
    if (0 <= _30):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_MIO",_30)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMio)")
   if (_1=="logMioFreq"):
    _31=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_LOG_MIO_FREQ",_31)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMioFreq)")
   if (_1=="mioMaxNumRelaxs"):
    _32=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_RELAXS",_32)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRelaxs)")
   if (_1=="mioMaxNumBranches"):
    _33=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_BRANCHES",_33)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumBranches)")
   if (_1=="mioMaxNumRestarts"):
    _34=_2
    if (0 <= _34):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_RESTARTS",_34)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRestarts)")
   if (_1=="mioMaxNumRootCutRounds"):
    _35=_2
    if (0 <= _35):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_ROOT_CUT_ROUNDS",_35)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRootCutRounds)")
   if (_1=="mioMaxNumSolutions"):
    _36=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_SOLUTIONS",_36)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumSolutions)")
   elif (_1=="mioNodeSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4096:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeSelection)")
   elif (_1=="mioVarSelection"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4098:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVarSelection)")
   if (_1=="mioMinRel"):
    _37=_2
    if (0 <= _37):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MIN_REL",_37)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMinRel)")
   if (_1=="mioHeuristicLevel"):
    _38=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_MIO_HEURISTIC_LEVEL",_38)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioHeuristicLevel)")
   if (_1=="mioProbingLevel"):
    _39=_2
    if (((- 1) <= _39) and (_39 <= 3)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_PROBING_LEVEL",_39)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioProbingLevel)")
   if (_1=="mioSymmetryLevel"):
    _40=_2
    if (((- 1) <= _40) and (_40 <= 4)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_SYMMETRY_LEVEL",_40)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSymmetryLevel)")
   if (_1=="mioDualRayAnalysisLevel"):
    _41=_2
    if (((- 1) <= _41) and (_41 <= 2)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_DUAL_RAY_ANALYSIS_LEVEL",_41)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDualRayAnalysisLevel)")
   elif (_1=="mioPresolveAggregatorUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4150:10-44
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPresolveAggregatorUse)")
   if (_1=="mioNumericalEmphasisLevel"):
    _42=_2
    if ((0 <= _42) and (_42 <= 2)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_NUMERICAL_EMPHASIS_LEVEL",_42)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNumericalEmphasisLevel)")
   if (_1=="mioMemoryEmphasisLevel"):
    _43=_2
    if ((0 <= _43) and (_43 <= 1)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_MEMORY_EMPHASIS_LEVEL",_43)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMemoryEmphasisLevel)")
   if (_1=="mioCutSelectionLevel"):
    _44=_2
    if (((- 1) <= _44) and (_44 <= 1)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_SELECTION_LEVEL",_44)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutSelectionLevel)")
   if (_1=="mioVbDetectionLevel"):
    _45=_2
    if (((- 1) <= _45) and (_45 <= 2)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_VB_DETECTION_LEVEL",_45)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVbDetectionLevel)")
   elif (_1=="mioBranchDir"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4192:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioBranchDir)")
   elif (_1=="mioRootOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4194:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootOptimizer)")
   elif (_1=="mioNodeOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4196:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeOptimizer)")
   elif (_1=="mioPerspectiveReformulate"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4198:10-45
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPerspectiveReformulate)")
   elif (_1=="mioPropagateObjectiveConstraint"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4200:10-51
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPropagateObjectiveConstraint)")
   if (_1=="mioSeed"):
    _46=_2
    if (0 <= _46):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_SEED",_46)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSeed)")
   elif (_1=="mioConicOuterApproximation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4212:10-46
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConicOuterApproximation)")
   elif (_1=="mioQcqoReformulationMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4214:10-46
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioQcqoReformulationMethod)")
   elif (_1=="mioDataPermutationMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4216:10-44
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDataPermutationMethod)")
   if (_1=="writeLpLineWidth"):
    _47=_2
    if (40 <= _47):
     _0._task_1put_1param_SI("MSK_IPAR_WRITE_LP_LINE_WIDTH",_47)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpLineWidth)")
   elif (_1=="writeLpFullObj"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4228:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpFullObj)")
   elif (_1=="writeJsonIndentation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4230:10-40
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeJsonIndentation)")
   elif (_1=="infeasReportAuto"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4232:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasReportAuto)")
   if (_1=="logInfeasAna"):
    _48=_2
    if (0 <= _48):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_INFEAS_ANA",_48)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logInfeasAna)")
   elif (_1=="licenseWait"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4244:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseWait)")
   elif (_1=="licenseSuppressExpireWrns"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4246:10-45
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseSuppressExpireWrns)")
   if (_1=="licensePauseTime"):
    _49=_2
    if ((0 <= _49) and (_49 <= 1000000)):
     _0._task_1put_1param_SI("MSK_IPAR_LICENSE_PAUSE_TIME",_49)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licensePauseTime)")
   elif (_1=="licenseDebug"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4258:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseDebug)")
   if (_1=="log"):
    _50=_2
    if (0 <= _50):
     _0._task_1put_1param_SI("MSK_IPAR_LOG",_50)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (log)")
   if (_1=="logExpand"):
    _51=_2
    if (0 <= _51):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_EXPAND",_51)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logExpand)")
   if (_1=="logFile"):
    _52=_2
    if (0 <= _52):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_FILE",_52)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logFile)")
   if (_1=="logOrder"):
    _53=_2
    if (0 <= _53):
     _0._task_1put_1param_SI("MSK_IPAR_LOG_ORDER",_53)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logOrder)")
   elif (_1=="simScaling"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4300:10-30
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScaling)")
   elif (_1=="simScalingMethod"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4302:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScalingMethod)")
   if (_1=="simPrimalPhaseoneMethod"):
    _54=_2
    if ((0 <= _54) and (_54 <= 10)):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_PHASEONE_METHOD",_54)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalPhaseoneMethod)")
   if (_1=="simDualPhaseoneMethod"):
    _55=_2
    if ((0 <= _55) and (_55 <= 10)):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_PHASEONE_METHOD",_55)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualPhaseoneMethod)")
   if (_1=="simMaxNumSetbacks"):
    _56=_2
    if (0 <= _56):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_MAX_NUM_SETBACKS",_56)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxNumSetbacks)")
   elif (_1=="simHotstart"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4334:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstart)")
   elif (_1=="simBasisFactorUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4336:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simBasisFactorUse)")
   elif (_1=="simDegen"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4338:10-28
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDegen)")
   elif (_1=="simReformulation"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4340:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simReformulation)")
   elif (_1=="simExploitDupvec"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4342:10-36
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simExploitDupvec)")
   elif (_1=="simSaveLu"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4344:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSaveLu)")
   elif (_1=="simNonSingular"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4346:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simNonSingular)")
   if (_1=="simDualCrash"):
    _57=_2
    if (0 <= _57):
     _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_CRASH",_57)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualCrash)")
   elif (_1=="infeasPreferPrimal"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4358:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasPreferPrimal)")
   if (_1=="mioRootRepeatPresolveLevel"):
    _58=_2
    if (((- 1) <= _58) and (_58 <= 1)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_ROOT_REPEAT_PRESOLVE_LEVEL",_58)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootRepeatPresolveLevel)")
   elif (_1=="mioCutCmir"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4370:10-30
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutCmir)")
   elif (_1=="mioCutClique"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4372:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutClique)")
   elif (_1=="mioCutImpliedBound"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4374:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutImpliedBound)")
   elif (_1=="mioCutKnapsackCover"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4376:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutKnapsackCover)")
   elif (_1=="mioCutGmi"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4378:10-29
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutGmi)")
   elif (_1=="mioCutLipro"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4380:10-31
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutLipro)")
   elif (_1=="mioConstructSol"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4382:10-35
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConstructSol)")
   if (_1=="presolveLindepRelWorkTrh"):
    _59=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_REL_WORK_TRH",_59)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepRelWorkTrh)")
   if (_1=="presolveLindepAbsWorkTrh"):
    _60=_2
    if True:
     _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_ABS_WORK_TRH",_60)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepAbsWorkTrh)")
   elif (_1=="cacheLicense"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4404:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (cacheLicense)")
   elif (_1=="intpntRegularizationUse"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4406:10-43
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntRegularizationUse)")
   elif (_1=="simSolveForm"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4408:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSolveForm)")
   elif (_1=="simSwitchOptimizer"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4410:10-38
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSwitchOptimizer)")
   if (_1=="mioRinsMaxNodes"):
    _61=_2
    if ((- 1) <= _61):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_RINS_MAX_NODES",_61)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRinsMaxNodes)")
   if (_1=="mioFeaspumpLevel"):
    _62=_2
    if (((- 1) <= _62) and (_62 <= 2)):
     _0._task_1put_1param_SI("MSK_IPAR_MIO_FEASPUMP_LEVEL",_62)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioFeaspumpLevel)")
   elif (_1=="remoteUseCompression"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4432:10-40
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteUseCompression)")
   if (_1=="optimizerMaxTime"):
    _63=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TIME",_63)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTime)")
   if (_1=="optimizerMaxTicks"):
    _64=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TICKS",_64)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTicks)")
   if (_1=="lowerObjCut"):
    _65=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT",_65)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCut)")
   if (_1=="upperObjCut"):
    _66=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT",_66)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCut)")
   if (_1=="upperObjCutFiniteTrh"):
    _67=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT_FINITE_TRH",_67)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCutFiniteTrh)")
   if (_1=="lowerObjCutFiniteTrh"):
    _68=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT_FINITE_TRH",_68)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCutFiniteTrh)")
   if (_1=="intpntTolRelGap"):
    _69=numpy.float64(_2)
    if (1.000000e-14 <= _69):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_GAP",_69)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelGap)")
   if (_1=="intpntTolStepSize"):
    _70=numpy.float64(_2)
    if ((0.000000e+00 <= _70) and (_70 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_STEP_SIZE",_70)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolStepSize)")
   if (_1=="simLuTolRelPiv"):
    _71=numpy.float64(_2)
    if ((1.000000e-06 <= _71) and (_71 <= 9.999990e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_SIM_LU_TOL_REL_PIV",_71)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simLuTolRelPiv)")
   if (_1=="intpntTolRelStep"):
    _72=numpy.float64(_2)
    if ((1.000000e-04 <= _72) and (_72 <= 9.999990e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_STEP",_72)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelStep)")
   if (_1=="intpntTolPath"):
    _73=numpy.float64(_2)
    if ((0.000000e+00 <= _73) and (_73 <= 9.999000e-01)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PATH",_73)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPath)")
   if (_1=="intpntTolPfeas"):
    _74=numpy.float64(_2)
    if ((0.000000e+00 <= _74) and (_74 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PFEAS",_74)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPfeas)")
   if (_1=="intpntTolDfeas"):
    _75=numpy.float64(_2)
    if ((0.000000e+00 <= _75) and (_75 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DFEAS",_75)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDfeas)")
   if (_1=="intpntTolMuRed"):
    _76=numpy.float64(_2)
    if ((0.000000e+00 <= _76) and (_76 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_MU_RED",_76)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolMuRed)")
   if (_1=="intpntTolInfeas"):
    _77=numpy.float64(_2)
    if ((0.000000e+00 <= _77) and (_77 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_INFEAS",_77)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolInfeas)")
   if (_1=="intpntCoTolRelGap"):
    _78=numpy.float64(_2)
    if ((0.000000e+00 <= _78) and (_78 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_REL_GAP",_78)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolRelGap)")
   if (_1=="intpntCoTolPfeas"):
    _79=numpy.float64(_2)
    if ((0.000000e+00 <= _79) and (_79 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_PFEAS",_79)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolPfeas)")
   if (_1=="intpntCoTolDfeas"):
    _80=numpy.float64(_2)
    if ((0.000000e+00 <= _80) and (_80 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_DFEAS",_80)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolDfeas)")
   if (_1=="intpntCoTolMuRed"):
    _81=numpy.float64(_2)
    if ((0.000000e+00 <= _81) and (_81 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_MU_RED",_81)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolMuRed)")
   if (_1=="intpntCoTolNearRel"):
    _82=numpy.float64(_2)
    if (1.000000e+00 <= _82):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_NEAR_REL",_82)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolNearRel)")
   if (_1=="intpntCoTolInfeas"):
    _83=numpy.float64(_2)
    if ((0.000000e+00 <= _83) and (_83 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_INFEAS",_83)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolInfeas)")
   if (_1=="intpntTolPsafe"):
    _84=numpy.float64(_2)
    if (1.000000e-04 <= _84):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PSAFE",_84)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPsafe)")
   if (_1=="intpntTolDsafe"):
    _85=numpy.float64(_2)
    if (1.000000e-04 <= _85):
     _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DSAFE",_85)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDsafe)")
   if (_1=="mioMaxTime"):
    _86=numpy.float64(_2)
    if True:
     _0._task_1put_1param_SD("MSK_DPAR_MIO_MAX_TIME",_86)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxTime)")
   if (_1=="mioRelGapConst"):
    _87=numpy.float64(_2)
    if (1.000000e-15 <= _87):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_REL_GAP_CONST",_87)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRelGapConst)")
   if (_1=="mioTolRelGap"):
    _88=numpy.float64(_2)
    if (0.000000e+00 <= _88):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_GAP",_88)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelGap)")
   if (_1=="mioTolAbsGap"):
    _89=numpy.float64(_2)
    if (0.000000e+00 <= _89):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_GAP",_89)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsGap)")
   if (_1=="mioTolAbsRelaxInt"):
    _90=numpy.float64(_2)
    if (1.000000e-09 <= _90):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_RELAX_INT",_90)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsRelaxInt)")
   if (_1=="mioDjcMaxBigm"):
    _91=numpy.float64(_2)
    if (0.000000e+00 <= _91):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_DJC_MAX_BIGM",_91)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDjcMaxBigm)")
   if (_1=="basisTolX"):
    _92=numpy.float64(_2)
    if (1.000000e-09 <= _92):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_X",_92)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolX)")
   if (_1=="basisTolS"):
    _93=numpy.float64(_2)
    if (1.000000e-09 <= _93):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_S",_93)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolS)")
   if (_1=="basisRelTolS"):
    _94=numpy.float64(_2)
    if (0.000000e+00 <= _94):
     _0._task_1put_1param_SD("MSK_DPAR_BASIS_REL_TOL_S",_94)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisRelTolS)")
   if (_1=="presolveTolX"):
    _95=numpy.float64(_2)
    if (0.000000e+00 <= _95):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_X",_95)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolX)")
   if (_1=="presolveTolPrimalInfeasPerturbation"):
    _96=numpy.float64(_2)
    if (0.000000e+00 <= _96):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_PRIMAL_INFEAS_PERTURBATION",_96)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolPrimalInfeasPerturbation)")
   if (_1=="presolveTolS"):
    _97=numpy.float64(_2)
    if (0.000000e+00 <= _97):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_S",_97)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolS)")
   if (_1=="presolveTolAij"):
    _98=numpy.float64(_2)
    if (1.000000e-15 <= _98):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_AIJ",_98)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAij)")
   if (_1=="presolveTolAbsLindep"):
    _99=numpy.float64(_2)
    if (0.000000e+00 <= _99):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_ABS_LINDEP",_99)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAbsLindep)")
   if (_1=="presolveTolRelLindep"):
    _100=numpy.float64(_2)
    if (0.000000e+00 <= _100):
     _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_REL_LINDEP",_100)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolRelLindep)")
   if (_1=="simplexAbsTolPiv"):
    _101=numpy.float64(_2)
    if (1.000000e-12 <= _101):
     _0._task_1put_1param_SD("MSK_DPAR_SIMPLEX_ABS_TOL_PIV",_101)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simplexAbsTolPiv)")
   if (_1=="mioTolFeas"):
    _102=numpy.float64(_2)
    if ((1.000000e-09 <= _102) and (_102 <= 1.000000e-03)):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_FEAS",_102)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolFeas)")
   if (_1=="mioTolRelDualBoundImprovement"):
    _103=numpy.float64(_2)
    if ((0.000000e+00 <= _103) and (_103 <= 1.000000e+00)):
     _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_DUAL_BOUND_IMPROVEMENT",_103)
     return 
    else:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelDualBoundImprovement)")
   elif (_1=="dataFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4844:10-32
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (dataFileName)")
   elif (_1=="basSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4846:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basSolFileName)")
   elif (_1=="itrSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4848:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (itrSolFileName)")
   elif (_1=="intSolFileName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4850:10-34
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intSolFileName)")
   elif (_1=="writeLpGenVarName"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4852:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpGenVarName)")
   elif (_1=="remoteOptserverHost"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4854:10-39
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteOptserverHost)")
   elif (_1=="remoteTlsCertPath"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4856:10-37
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteTlsCertPath)")
   elif (_1=="remoteTlsCert"): # bld/docker-win/final/default/src/fusion/Parameters.mbi:4858:10-33
    raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteTlsCert)")
   raise mosek_fusion_ParameterError._ctor_S("Unknown parameter")
  @staticmethod
  def _match_setParameter_Lmosek_4fusion_4Model_2SS(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_match_Lmosek_4fusion_4Model_2__(_0) and __arg_match_S__(_1) and __arg_match_S__(_2))
  @staticmethod
  def _match_alt_setParameter_Lmosek_4fusion_4Model_2SS(*args):
    if len(args) != 3: return False
    _0,_1,_2, = args
    return (__arg_alt_match_Lmosek_4fusion_4Model_2__(_0) and __arg_alt_match_S__(_1) and __arg_alt_match_S__(_2))
  @staticmethod
  def _setParameter_alt_Lmosek_4fusion_4Model_2SS(_t__0,_t__1,_t__2):
    return mosek_fusion_Parameters._setParameter_Lmosek_4fusion_4Model_2SS(_0,_1,_2)
  @staticmethod
  def _setParameter_Lmosek_4fusion_4Model_2SS(_0,_1,_2):
   if False:
    pass
   if (_1=="autoUpdateSolInfo"):
    _3=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_3 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (autoUpdateSolInfo)")
    _0._task_1put_1param_SI("MSK_IPAR_AUTO_UPDATE_SOL_INFO",_3)
    return 
   if (_1=="removeUnusedSolutions"):
    _4=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_4 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (removeUnusedSolutions)")
    _0._task_1put_1param_SI("MSK_IPAR_REMOVE_UNUSED_SOLUTIONS",_4)
    return 
   if (_1=="numThreads"):
    try:
     _5=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _5):
      _0._task_1put_1param_SI("MSK_IPAR_NUM_THREADS",_5)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (numThreads)")
    except mosek_fusion_ValueConversionError as _6:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (numThreads)")
   if (_1=="mtSpincount"):
    try:
     _7=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _7) and (_7 <= 1000000000)):
      _0._task_1put_1param_SI("MSK_IPAR_MT_SPINCOUNT",_7)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mtSpincount)")
    except mosek_fusion_ValueConversionError as _8:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mtSpincount)")
   if (_1=="optimizer"):
    _9=mosek.fusion.Parameters.__string_1to_1optimizertype_1value_S(_2)
    if (_9 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizer)")
    _0._task_1put_1param_SI("MSK_IPAR_OPTIMIZER",_9)
    return 
   if (_1=="biMaxIterations"):
    try:
     _10=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _10):
      _0._task_1put_1param_SI("MSK_IPAR_BI_MAX_ITERATIONS",_10)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biMaxIterations)")
    except mosek_fusion_ValueConversionError as _11:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biMaxIterations)")
   if (_1=="licenseTrhExpiryWrn"):
    try:
     _12=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _12):
      _0._task_1put_1param_SI("MSK_IPAR_LICENSE_TRH_EXPIRY_WRN",_12)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseTrhExpiryWrn)")
    except mosek_fusion_ValueConversionError as _13:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseTrhExpiryWrn)")
   if (_1=="logCutSecondOpt"):
    try:
     _14=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _14):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_CUT_SECOND_OPT",_14)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logCutSecondOpt)")
    except mosek_fusion_ValueConversionError as _15:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logCutSecondOpt)")
   if (_1=="logResponse"):
    try:
     _16=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _16):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_RESPONSE",_16)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logResponse)")
    except mosek_fusion_ValueConversionError as _17:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logResponse)")
   if (_1=="logLocalInfo"):
    _18=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_18 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logLocalInfo)")
    _0._task_1put_1param_SI("MSK_IPAR_LOG_LOCAL_INFO",_18)
    return 
   if (_1=="logBi"):
    try:
     _19=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _19):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_BI",_19)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBi)")
    except mosek_fusion_ValueConversionError as _20:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBi)")
   if (_1=="logBiFreq"):
    try:
     _21=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _21):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_BI_FREQ",_21)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBiFreq)")
    except mosek_fusion_ValueConversionError as _22:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logBiFreq)")
   if (_1=="biCleanOptimizer"):
    _23=mosek.fusion.Parameters.__string_1to_1optimizertype_1value_S(_2)
    if (_23 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biCleanOptimizer)")
    _0._task_1put_1param_SI("MSK_IPAR_BI_CLEAN_OPTIMIZER",_23)
    return 
   if (_1=="intpntStartingPoint"):
    _24=mosek.fusion.Parameters.__string_1to_1startpointtype_1value_S(_2)
    if (_24 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntStartingPoint)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_STARTING_POINT",_24)
    return 
   if (_1=="intpntDiffStep"):
    _25=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_25 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntDiffStep)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_DIFF_STEP",_25)
    return 
   if (_1=="intpntScaling"):
    _26=mosek.fusion.Parameters.__string_1to_1scalingtype_1value_S(_2)
    if (_26 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntScaling)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_SCALING",_26)
    return 
   if (_1=="intpntSolveForm"):
    _27=mosek.fusion.Parameters.__string_1to_1solveform_1value_S(_2)
    if (_27 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntSolveForm)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_SOLVE_FORM",_27)
    return 
   if (_1=="logIntpnt"):
    try:
     _28=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _28):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_INTPNT",_28)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logIntpnt)")
    except mosek_fusion_ValueConversionError as _29:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logIntpnt)")
   if (_1=="intpntMaxIterations"):
    try:
     _30=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _30):
      _0._task_1put_1param_SI("MSK_IPAR_INTPNT_MAX_ITERATIONS",_30)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxIterations)")
    except mosek_fusion_ValueConversionError as _31:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxIterations)")
   if (_1=="intpntOffColTrh"):
    try:
     _32=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _32):
      _0._task_1put_1param_SI("MSK_IPAR_INTPNT_OFF_COL_TRH",_32)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOffColTrh)")
    except mosek_fusion_ValueConversionError as _33:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOffColTrh)")
   if (_1=="intpntOrderMethod"):
    _34=mosek.fusion.Parameters.__string_1to_1orderingtype_1value_S(_2)
    if (_34 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderMethod)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_ORDER_METHOD",_34)
    return 
   if (_1=="intpntOrderGpNumSeeds"):
    try:
     _35=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _35):
      _0._task_1put_1param_SI("MSK_IPAR_INTPNT_ORDER_GP_NUM_SEEDS",_35)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderGpNumSeeds)")
    except mosek_fusion_ValueConversionError as _36:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntOrderGpNumSeeds)")
   if (_1=="intpntBasis"):
    _37=mosek.fusion.Parameters.__string_1to_1basindtype_1value_S(_2)
    if (_37 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntBasis)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_BASIS",_37)
    return 
   if (_1=="biIgnoreMaxIter"):
    _38=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_38 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreMaxIter)")
    _0._task_1put_1param_SI("MSK_IPAR_BI_IGNORE_MAX_ITER",_38)
    return 
   if (_1=="biIgnoreNumError"):
    _39=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_39 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (biIgnoreNumError)")
    _0._task_1put_1param_SI("MSK_IPAR_BI_IGNORE_NUM_ERROR",_39)
    return 
   if (_1=="intpntMaxNumCor"):
    try:
     _40=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((- 1) <= _40):
      _0._task_1put_1param_SI("MSK_IPAR_INTPNT_MAX_NUM_COR",_40)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxNumCor)")
    except mosek_fusion_ValueConversionError as _41:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntMaxNumCor)")
   if (_1=="presolveUse"):
    _42=mosek.fusion.Parameters.__string_1to_1presolvemode_1value_S(_2)
    if (_42 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveUse)")
    _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_USE",_42)
    return 
   if (_1=="presolveLevel"):
    try:
     _43=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LEVEL",_43)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLevel)")
    except mosek_fusion_ValueConversionError as _44:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLevel)")
   if (_1=="logPresolve"):
    try:
     _45=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _45):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_PRESOLVE",_45)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logPresolve)")
    except mosek_fusion_ValueConversionError as _46:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logPresolve)")
   if (_1=="presolveLindepUse"):
    _47=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_47 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepUse)")
    _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_USE",_47)
    return 
   if (_1=="presolveLindepNew"):
    _48=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_48 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepNew)")
    _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_NEW",_48)
    return 
   if (_1=="presolveMaxNumPass"):
    try:
     _49=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_MAX_NUM_PASS",_49)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveMaxNumPass)")
    except mosek_fusion_ValueConversionError as _50:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveMaxNumPass)")
   if (_1=="presolveEliminatorMaxNumTries"):
    try:
     _51=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_NUM_TRIES",_51)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxNumTries)")
    except mosek_fusion_ValueConversionError as _52:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxNumTries)")
   if (_1=="presolveEliminatorMaxFill"):
    try:
     _53=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_ELIMINATOR_MAX_FILL",_53)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxFill)")
    except mosek_fusion_ValueConversionError as _54:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveEliminatorMaxFill)")
   if (_1=="simPrimalCrash"):
    try:
     _55=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _55):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_CRASH",_55)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalCrash)")
    except mosek_fusion_ValueConversionError as _56:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalCrash)")
   if (_1=="logSim"):
    try:
     _57=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _57):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM",_57)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSim)")
    except mosek_fusion_ValueConversionError as _58:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSim)")
   if (_1=="logSimMinor"):
    try:
     _59=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _59):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM_MINOR",_59)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimMinor)")
    except mosek_fusion_ValueConversionError as _60:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimMinor)")
   if (_1=="logSimFreq"):
    try:
     _61=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _61):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_SIM_FREQ",_61)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimFreq)")
    except mosek_fusion_ValueConversionError as _62:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logSimFreq)")
   if (_1=="simPrimalRestrictSelection"):
    try:
     _63=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _63) and (_63 <= 100)):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_RESTRICT_SELECTION",_63)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalRestrictSelection)")
    except mosek_fusion_ValueConversionError as _64:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalRestrictSelection)")
   if (_1=="simPrimalSelection"):
    _65=mosek.fusion.Parameters.__string_1to_1simseltype_1value_S(_2)
    if (_65 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalSelection)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_SELECTION",_65)
    return 
   if (_1=="simDualRestrictSelection"):
    try:
     _66=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _66) and (_66 <= 100)):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_RESTRICT_SELECTION",_66)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualRestrictSelection)")
    except mosek_fusion_ValueConversionError as _67:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualRestrictSelection)")
   if (_1=="simDualSelection"):
    _68=mosek.fusion.Parameters.__string_1to_1simseltype_1value_S(_2)
    if (_68 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualSelection)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_SELECTION",_68)
    return 
   if (_1=="simMaxIterations"):
    try:
     _69=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _69):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_MAX_ITERATIONS",_69)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxIterations)")
    except mosek_fusion_ValueConversionError as _70:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxIterations)")
   if (_1=="simHotstartLu"):
    _71=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_71 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstartLu)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_HOTSTART_LU",_71)
    return 
   if (_1=="simRefactorFreq"):
    try:
     _72=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _72):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_REFACTOR_FREQ",_72)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simRefactorFreq)")
    except mosek_fusion_ValueConversionError as _73:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simRefactorFreq)")
   if (_1=="simSeed"):
    try:
     _74=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _74) and (_74 <= 32749)):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_SEED",_74)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSeed)")
    except mosek_fusion_ValueConversionError as _75:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSeed)")
   if (_1=="mioMode"):
    _76=mosek.fusion.Parameters.__string_1to_1miomode_1value_S(_2)
    if (_76 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMode)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_MODE",_76)
    return 
   if (_1=="logMio"):
    try:
     _77=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _77):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_MIO",_77)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMio)")
    except mosek_fusion_ValueConversionError as _78:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMio)")
   if (_1=="logMioFreq"):
    try:
     _79=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_LOG_MIO_FREQ",_79)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMioFreq)")
    except mosek_fusion_ValueConversionError as _80:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logMioFreq)")
   if (_1=="mioMaxNumRelaxs"):
    try:
     _81=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_RELAXS",_81)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRelaxs)")
    except mosek_fusion_ValueConversionError as _82:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRelaxs)")
   if (_1=="mioMaxNumBranches"):
    try:
     _83=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_BRANCHES",_83)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumBranches)")
    except mosek_fusion_ValueConversionError as _84:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumBranches)")
   if (_1=="mioMaxNumRestarts"):
    try:
     _85=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _85):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_RESTARTS",_85)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRestarts)")
    except mosek_fusion_ValueConversionError as _86:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRestarts)")
   if (_1=="mioMaxNumRootCutRounds"):
    try:
     _87=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _87):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_ROOT_CUT_ROUNDS",_87)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRootCutRounds)")
    except mosek_fusion_ValueConversionError as _88:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumRootCutRounds)")
   if (_1=="mioMaxNumSolutions"):
    try:
     _89=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MAX_NUM_SOLUTIONS",_89)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumSolutions)")
    except mosek_fusion_ValueConversionError as _90:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxNumSolutions)")
   if (_1=="mioNodeSelection"):
    _91=mosek.fusion.Parameters.__string_1to_1mionodeseltype_1value_S(_2)
    if (_91 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeSelection)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_NODE_SELECTION",_91)
    return 
   if (_1=="mioVarSelection"):
    _92=mosek.fusion.Parameters.__string_1to_1miovarseltype_1value_S(_2)
    if (_92 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVarSelection)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_VAR_SELECTION",_92)
    return 
   if (_1=="mioMinRel"):
    try:
     _93=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _93):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MIN_REL",_93)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMinRel)")
    except mosek_fusion_ValueConversionError as _94:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMinRel)")
   if (_1=="mioHeuristicLevel"):
    try:
     _95=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_MIO_HEURISTIC_LEVEL",_95)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioHeuristicLevel)")
    except mosek_fusion_ValueConversionError as _96:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioHeuristicLevel)")
   if (_1=="mioProbingLevel"):
    try:
     _97=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _97) and (_97 <= 3)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_PROBING_LEVEL",_97)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioProbingLevel)")
    except mosek_fusion_ValueConversionError as _98:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioProbingLevel)")
   if (_1=="mioSymmetryLevel"):
    try:
     _99=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _99) and (_99 <= 4)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_SYMMETRY_LEVEL",_99)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSymmetryLevel)")
    except mosek_fusion_ValueConversionError as _100:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSymmetryLevel)")
   if (_1=="mioDualRayAnalysisLevel"):
    try:
     _101=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _101) and (_101 <= 2)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_DUAL_RAY_ANALYSIS_LEVEL",_101)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDualRayAnalysisLevel)")
    except mosek_fusion_ValueConversionError as _102:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDualRayAnalysisLevel)")
   if (_1=="mioPresolveAggregatorUse"):
    _103=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_103 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPresolveAggregatorUse)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_PRESOLVE_AGGREGATOR_USE",_103)
    return 
   if (_1=="mioNumericalEmphasisLevel"):
    try:
     _104=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _104) and (_104 <= 2)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_NUMERICAL_EMPHASIS_LEVEL",_104)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNumericalEmphasisLevel)")
    except mosek_fusion_ValueConversionError as _105:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNumericalEmphasisLevel)")
   if (_1=="mioMemoryEmphasisLevel"):
    try:
     _106=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _106) and (_106 <= 1)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_MEMORY_EMPHASIS_LEVEL",_106)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMemoryEmphasisLevel)")
    except mosek_fusion_ValueConversionError as _107:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMemoryEmphasisLevel)")
   if (_1=="mioCutSelectionLevel"):
    try:
     _108=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _108) and (_108 <= 1)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_SELECTION_LEVEL",_108)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutSelectionLevel)")
    except mosek_fusion_ValueConversionError as _109:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutSelectionLevel)")
   if (_1=="mioVbDetectionLevel"):
    try:
     _110=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _110) and (_110 <= 2)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_VB_DETECTION_LEVEL",_110)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVbDetectionLevel)")
    except mosek_fusion_ValueConversionError as _111:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioVbDetectionLevel)")
   if (_1=="mioBranchDir"):
    _112=mosek.fusion.Parameters.__string_1to_1branchdir_1value_S(_2)
    if (_112 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioBranchDir)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_BRANCH_DIR",_112)
    return 
   if (_1=="mioRootOptimizer"):
    _113=mosek.fusion.Parameters.__string_1to_1optimizertype_1value_S(_2)
    if (_113 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootOptimizer)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_ROOT_OPTIMIZER",_113)
    return 
   if (_1=="mioNodeOptimizer"):
    _114=mosek.fusion.Parameters.__string_1to_1optimizertype_1value_S(_2)
    if (_114 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioNodeOptimizer)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_NODE_OPTIMIZER",_114)
    return 
   if (_1=="mioPerspectiveReformulate"):
    _115=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_115 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPerspectiveReformulate)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_PERSPECTIVE_REFORMULATE",_115)
    return 
   if (_1=="mioPropagateObjectiveConstraint"):
    _116=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_116 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioPropagateObjectiveConstraint)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_PROPAGATE_OBJECTIVE_CONSTRAINT",_116)
    return 
   if (_1=="mioSeed"):
    try:
     _117=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _117):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_SEED",_117)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSeed)")
    except mosek_fusion_ValueConversionError as _118:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioSeed)")
   if (_1=="mioConicOuterApproximation"):
    _119=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_119 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConicOuterApproximation)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CONIC_OUTER_APPROXIMATION",_119)
    return 
   if (_1=="mioQcqoReformulationMethod"):
    _120=mosek.fusion.Parameters.__string_1to_1miqcqoreformmethod_1value_S(_2)
    if (_120 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioQcqoReformulationMethod)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_QCQO_REFORMULATION_METHOD",_120)
    return 
   if (_1=="mioDataPermutationMethod"):
    _121=mosek.fusion.Parameters.__string_1to_1miodatapermmethod_1value_S(_2)
    if (_121 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDataPermutationMethod)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_DATA_PERMUTATION_METHOD",_121)
    return 
   if (_1=="writeLpLineWidth"):
    try:
     _122=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (40 <= _122):
      _0._task_1put_1param_SI("MSK_IPAR_WRITE_LP_LINE_WIDTH",_122)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpLineWidth)")
    except mosek_fusion_ValueConversionError as _123:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpLineWidth)")
   if (_1=="writeLpFullObj"):
    _124=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_124 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeLpFullObj)")
    _0._task_1put_1param_SI("MSK_IPAR_WRITE_LP_FULL_OBJ",_124)
    return 
   if (_1=="writeJsonIndentation"):
    _125=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_125 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (writeJsonIndentation)")
    _0._task_1put_1param_SI("MSK_IPAR_WRITE_JSON_INDENTATION",_125)
    return 
   if (_1=="infeasReportAuto"):
    _126=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_126 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasReportAuto)")
    _0._task_1put_1param_SI("MSK_IPAR_INFEAS_REPORT_AUTO",_126)
    return 
   if (_1=="logInfeasAna"):
    try:
     _127=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _127):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_INFEAS_ANA",_127)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logInfeasAna)")
    except mosek_fusion_ValueConversionError as _128:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logInfeasAna)")
   if (_1=="licenseWait"):
    _129=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_129 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseWait)")
    _0._task_1put_1param_SI("MSK_IPAR_LICENSE_WAIT",_129)
    return 
   if (_1=="licenseSuppressExpireWrns"):
    _130=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_130 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseSuppressExpireWrns)")
    _0._task_1put_1param_SI("MSK_IPAR_LICENSE_SUPPRESS_EXPIRE_WRNS",_130)
    return 
   if (_1=="licensePauseTime"):
    try:
     _131=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _131) and (_131 <= 1000000)):
      _0._task_1put_1param_SI("MSK_IPAR_LICENSE_PAUSE_TIME",_131)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licensePauseTime)")
    except mosek_fusion_ValueConversionError as _132:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licensePauseTime)")
   if (_1=="licenseDebug"):
    _133=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_133 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (licenseDebug)")
    _0._task_1put_1param_SI("MSK_IPAR_LICENSE_DEBUG",_133)
    return 
   if (_1=="log"):
    try:
     _134=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _134):
      _0._task_1put_1param_SI("MSK_IPAR_LOG",_134)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (log)")
    except mosek_fusion_ValueConversionError as _135:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (log)")
   if (_1=="logExpand"):
    try:
     _136=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _136):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_EXPAND",_136)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logExpand)")
    except mosek_fusion_ValueConversionError as _137:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logExpand)")
   if (_1=="logFile"):
    try:
     _138=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _138):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_FILE",_138)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logFile)")
    except mosek_fusion_ValueConversionError as _139:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logFile)")
   if (_1=="logOrder"):
    try:
     _140=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _140):
      _0._task_1put_1param_SI("MSK_IPAR_LOG_ORDER",_140)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logOrder)")
    except mosek_fusion_ValueConversionError as _141:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (logOrder)")
   if (_1=="simScaling"):
    _142=mosek.fusion.Parameters.__string_1to_1scalingtype_1value_S(_2)
    if (_142 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScaling)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_SCALING",_142)
    return 
   if (_1=="simScalingMethod"):
    _143=mosek.fusion.Parameters.__string_1to_1scalingmethod_1value_S(_2)
    if (_143 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simScalingMethod)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_SCALING_METHOD",_143)
    return 
   if (_1=="simPrimalPhaseoneMethod"):
    try:
     _144=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _144) and (_144 <= 10)):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_PRIMAL_PHASEONE_METHOD",_144)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalPhaseoneMethod)")
    except mosek_fusion_ValueConversionError as _145:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simPrimalPhaseoneMethod)")
   if (_1=="simDualPhaseoneMethod"):
    try:
     _146=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((0 <= _146) and (_146 <= 10)):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_PHASEONE_METHOD",_146)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualPhaseoneMethod)")
    except mosek_fusion_ValueConversionError as _147:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualPhaseoneMethod)")
   if (_1=="simMaxNumSetbacks"):
    try:
     _148=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _148):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_MAX_NUM_SETBACKS",_148)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxNumSetbacks)")
    except mosek_fusion_ValueConversionError as _149:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simMaxNumSetbacks)")
   if (_1=="simHotstart"):
    _150=mosek.fusion.Parameters.__string_1to_1simhotstart_1value_S(_2)
    if (_150 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simHotstart)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_HOTSTART",_150)
    return 
   if (_1=="simBasisFactorUse"):
    _151=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_151 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simBasisFactorUse)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_BASIS_FACTOR_USE",_151)
    return 
   if (_1=="simDegen"):
    _152=mosek.fusion.Parameters.__string_1to_1simdegen_1value_S(_2)
    if (_152 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDegen)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_DEGEN",_152)
    return 
   if (_1=="simReformulation"):
    _153=mosek.fusion.Parameters.__string_1to_1simreform_1value_S(_2)
    if (_153 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simReformulation)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_REFORMULATION",_153)
    return 
   if (_1=="simExploitDupvec"):
    _154=mosek.fusion.Parameters.__string_1to_1simdupvec_1value_S(_2)
    if (_154 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simExploitDupvec)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_EXPLOIT_DUPVEC",_154)
    return 
   if (_1=="simSaveLu"):
    _155=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_155 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSaveLu)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_SAVE_LU",_155)
    return 
   if (_1=="simNonSingular"):
    _156=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_156 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simNonSingular)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_NON_SINGULAR",_156)
    return 
   if (_1=="simDualCrash"):
    try:
     _157=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (0 <= _157):
      _0._task_1put_1param_SI("MSK_IPAR_SIM_DUAL_CRASH",_157)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualCrash)")
    except mosek_fusion_ValueConversionError as _158:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simDualCrash)")
   if (_1=="infeasPreferPrimal"):
    _159=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_159 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (infeasPreferPrimal)")
    _0._task_1put_1param_SI("MSK_IPAR_INFEAS_PREFER_PRIMAL",_159)
    return 
   if (_1=="mioRootRepeatPresolveLevel"):
    try:
     _160=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _160) and (_160 <= 1)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_ROOT_REPEAT_PRESOLVE_LEVEL",_160)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootRepeatPresolveLevel)")
    except mosek_fusion_ValueConversionError as _161:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRootRepeatPresolveLevel)")
   if (_1=="mioCutCmir"):
    _162=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_162 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutCmir)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_CMIR",_162)
    return 
   if (_1=="mioCutClique"):
    _163=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_163 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutClique)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_CLIQUE",_163)
    return 
   if (_1=="mioCutImpliedBound"):
    _164=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_164 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutImpliedBound)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_IMPLIED_BOUND",_164)
    return 
   if (_1=="mioCutKnapsackCover"):
    _165=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_165 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutKnapsackCover)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_KNAPSACK_COVER",_165)
    return 
   if (_1=="mioCutGmi"):
    _166=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_166 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutGmi)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_GMI",_166)
    return 
   if (_1=="mioCutLipro"):
    _167=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_167 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioCutLipro)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CUT_LIPRO",_167)
    return 
   if (_1=="mioConstructSol"):
    _168=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_168 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioConstructSol)")
    _0._task_1put_1param_SI("MSK_IPAR_MIO_CONSTRUCT_SOL",_168)
    return 
   if (_1=="presolveLindepRelWorkTrh"):
    try:
     _169=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_REL_WORK_TRH",_169)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepRelWorkTrh)")
    except mosek_fusion_ValueConversionError as _170:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepRelWorkTrh)")
   if (_1=="presolveLindepAbsWorkTrh"):
    try:
     _171=mosek.fusion.Utils.Tools._toInt_S(_2)
     if True:
      _0._task_1put_1param_SI("MSK_IPAR_PRESOLVE_LINDEP_ABS_WORK_TRH",_171)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepAbsWorkTrh)")
    except mosek_fusion_ValueConversionError as _172:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveLindepAbsWorkTrh)")
   if (_1=="cacheLicense"):
    _173=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_173 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (cacheLicense)")
    _0._task_1put_1param_SI("MSK_IPAR_CACHE_LICENSE",_173)
    return 
   if (_1=="intpntRegularizationUse"):
    _174=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_174 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntRegularizationUse)")
    _0._task_1put_1param_SI("MSK_IPAR_INTPNT_REGULARIZATION_USE",_174)
    return 
   if (_1=="simSolveForm"):
    _175=mosek.fusion.Parameters.__string_1to_1solveform_1value_S(_2)
    if (_175 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSolveForm)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_SOLVE_FORM",_175)
    return 
   if (_1=="simSwitchOptimizer"):
    _176=mosek.fusion.Parameters.__string_1to_1onoffkey_1value_S(_2)
    if (_176 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simSwitchOptimizer)")
    _0._task_1put_1param_SI("MSK_IPAR_SIM_SWITCH_OPTIMIZER",_176)
    return 
   if (_1=="mioRinsMaxNodes"):
    try:
     _177=mosek.fusion.Utils.Tools._toInt_S(_2)
     if ((- 1) <= _177):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_RINS_MAX_NODES",_177)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRinsMaxNodes)")
    except mosek_fusion_ValueConversionError as _178:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRinsMaxNodes)")
   if (_1=="mioFeaspumpLevel"):
    try:
     _179=mosek.fusion.Utils.Tools._toInt_S(_2)
     if (((- 1) <= _179) and (_179 <= 2)):
      _0._task_1put_1param_SI("MSK_IPAR_MIO_FEASPUMP_LEVEL",_179)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioFeaspumpLevel)")
    except mosek_fusion_ValueConversionError as _180:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioFeaspumpLevel)")
   if (_1=="remoteUseCompression"):
    _181=mosek.fusion.Parameters.__string_1to_1compresstype_1value_S(_2)
    if (_181 < 0):
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (remoteUseCompression)")
    _0._task_1put_1param_SI("MSK_IPAR_REMOTE_USE_COMPRESSION",_181)
    return 
   if (_1=="optimizerMaxTime"):
    try:
     _182=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TIME",_182)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTime)")
    except mosek_fusion_ValueConversionError as _183:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTime)")
   if (_1=="optimizerMaxTicks"):
    try:
     _184=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_OPTIMIZER_MAX_TICKS",_184)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTicks)")
    except mosek_fusion_ValueConversionError as _185:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (optimizerMaxTicks)")
   if (_1=="lowerObjCut"):
    try:
     _186=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT",_186)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCut)")
    except mosek_fusion_ValueConversionError as _187:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCut)")
   if (_1=="upperObjCut"):
    try:
     _188=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT",_188)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCut)")
    except mosek_fusion_ValueConversionError as _189:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCut)")
   if (_1=="upperObjCutFiniteTrh"):
    try:
     _190=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_UPPER_OBJ_CUT_FINITE_TRH",_190)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCutFiniteTrh)")
    except mosek_fusion_ValueConversionError as _191:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (upperObjCutFiniteTrh)")
   if (_1=="lowerObjCutFiniteTrh"):
    try:
     _192=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_LOWER_OBJ_CUT_FINITE_TRH",_192)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCutFiniteTrh)")
    except mosek_fusion_ValueConversionError as _193:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (lowerObjCutFiniteTrh)")
   if (_1=="intpntTolRelGap"):
    try:
     _194=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-14 <= _194):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_GAP",_194)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelGap)")
    except mosek_fusion_ValueConversionError as _195:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelGap)")
   if (_1=="intpntTolStepSize"):
    try:
     _196=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _196) and (_196 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_STEP_SIZE",_196)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolStepSize)")
    except mosek_fusion_ValueConversionError as _197:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolStepSize)")
   if (_1=="simLuTolRelPiv"):
    try:
     _198=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((1.000000e-06 <= _198) and (_198 <= 9.999990e-01)):
      _0._task_1put_1param_SD("MSK_DPAR_SIM_LU_TOL_REL_PIV",_198)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simLuTolRelPiv)")
    except mosek_fusion_ValueConversionError as _199:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simLuTolRelPiv)")
   if (_1=="intpntTolRelStep"):
    try:
     _200=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((1.000000e-04 <= _200) and (_200 <= 9.999990e-01)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_REL_STEP",_200)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelStep)")
    except mosek_fusion_ValueConversionError as _201:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolRelStep)")
   if (_1=="intpntTolPath"):
    try:
     _202=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _202) and (_202 <= 9.999000e-01)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PATH",_202)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPath)")
    except mosek_fusion_ValueConversionError as _203:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPath)")
   if (_1=="intpntTolPfeas"):
    try:
     _204=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _204) and (_204 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PFEAS",_204)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPfeas)")
    except mosek_fusion_ValueConversionError as _205:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPfeas)")
   if (_1=="intpntTolDfeas"):
    try:
     _206=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _206) and (_206 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DFEAS",_206)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDfeas)")
    except mosek_fusion_ValueConversionError as _207:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDfeas)")
   if (_1=="intpntTolMuRed"):
    try:
     _208=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _208) and (_208 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_MU_RED",_208)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolMuRed)")
    except mosek_fusion_ValueConversionError as _209:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolMuRed)")
   if (_1=="intpntTolInfeas"):
    try:
     _210=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _210) and (_210 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_INFEAS",_210)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolInfeas)")
    except mosek_fusion_ValueConversionError as _211:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolInfeas)")
   if (_1=="intpntCoTolRelGap"):
    try:
     _212=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _212) and (_212 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_REL_GAP",_212)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolRelGap)")
    except mosek_fusion_ValueConversionError as _213:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolRelGap)")
   if (_1=="intpntCoTolPfeas"):
    try:
     _214=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _214) and (_214 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_PFEAS",_214)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolPfeas)")
    except mosek_fusion_ValueConversionError as _215:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolPfeas)")
   if (_1=="intpntCoTolDfeas"):
    try:
     _216=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _216) and (_216 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_DFEAS",_216)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolDfeas)")
    except mosek_fusion_ValueConversionError as _217:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolDfeas)")
   if (_1=="intpntCoTolMuRed"):
    try:
     _218=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _218) and (_218 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_MU_RED",_218)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolMuRed)")
    except mosek_fusion_ValueConversionError as _219:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolMuRed)")
   if (_1=="intpntCoTolNearRel"):
    try:
     _220=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e+00 <= _220):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_NEAR_REL",_220)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolNearRel)")
    except mosek_fusion_ValueConversionError as _221:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolNearRel)")
   if (_1=="intpntCoTolInfeas"):
    try:
     _222=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _222) and (_222 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_CO_TOL_INFEAS",_222)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolInfeas)")
    except mosek_fusion_ValueConversionError as _223:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntCoTolInfeas)")
   if (_1=="intpntTolPsafe"):
    try:
     _224=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-04 <= _224):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_PSAFE",_224)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPsafe)")
    except mosek_fusion_ValueConversionError as _225:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolPsafe)")
   if (_1=="intpntTolDsafe"):
    try:
     _226=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-04 <= _226):
      _0._task_1put_1param_SD("MSK_DPAR_INTPNT_TOL_DSAFE",_226)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDsafe)")
    except mosek_fusion_ValueConversionError as _227:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (intpntTolDsafe)")
   if (_1=="mioMaxTime"):
    try:
     _228=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if True:
      _0._task_1put_1param_SD("MSK_DPAR_MIO_MAX_TIME",_228)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxTime)")
    except mosek_fusion_ValueConversionError as _229:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioMaxTime)")
   if (_1=="mioRelGapConst"):
    try:
     _230=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-15 <= _230):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_REL_GAP_CONST",_230)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRelGapConst)")
    except mosek_fusion_ValueConversionError as _231:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioRelGapConst)")
   if (_1=="mioTolRelGap"):
    try:
     _232=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _232):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_GAP",_232)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelGap)")
    except mosek_fusion_ValueConversionError as _233:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelGap)")
   if (_1=="mioTolAbsGap"):
    try:
     _234=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _234):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_GAP",_234)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsGap)")
    except mosek_fusion_ValueConversionError as _235:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsGap)")
   if (_1=="mioTolAbsRelaxInt"):
    try:
     _236=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-09 <= _236):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_ABS_RELAX_INT",_236)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsRelaxInt)")
    except mosek_fusion_ValueConversionError as _237:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolAbsRelaxInt)")
   if (_1=="mioDjcMaxBigm"):
    try:
     _238=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _238):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_DJC_MAX_BIGM",_238)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDjcMaxBigm)")
    except mosek_fusion_ValueConversionError as _239:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioDjcMaxBigm)")
   if (_1=="basisTolX"):
    try:
     _240=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-09 <= _240):
      _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_X",_240)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolX)")
    except mosek_fusion_ValueConversionError as _241:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolX)")
   if (_1=="basisTolS"):
    try:
     _242=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-09 <= _242):
      _0._task_1put_1param_SD("MSK_DPAR_BASIS_TOL_S",_242)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolS)")
    except mosek_fusion_ValueConversionError as _243:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisTolS)")
   if (_1=="basisRelTolS"):
    try:
     _244=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _244):
      _0._task_1put_1param_SD("MSK_DPAR_BASIS_REL_TOL_S",_244)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisRelTolS)")
    except mosek_fusion_ValueConversionError as _245:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (basisRelTolS)")
   if (_1=="presolveTolX"):
    try:
     _246=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _246):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_X",_246)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolX)")
    except mosek_fusion_ValueConversionError as _247:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolX)")
   if (_1=="presolveTolPrimalInfeasPerturbation"):
    try:
     _248=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _248):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_PRIMAL_INFEAS_PERTURBATION",_248)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolPrimalInfeasPerturbation)")
    except mosek_fusion_ValueConversionError as _249:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolPrimalInfeasPerturbation)")
   if (_1=="presolveTolS"):
    try:
     _250=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _250):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_S",_250)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolS)")
    except mosek_fusion_ValueConversionError as _251:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolS)")
   if (_1=="presolveTolAij"):
    try:
     _252=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-15 <= _252):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_AIJ",_252)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAij)")
    except mosek_fusion_ValueConversionError as _253:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAij)")
   if (_1=="presolveTolAbsLindep"):
    try:
     _254=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _254):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_ABS_LINDEP",_254)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAbsLindep)")
    except mosek_fusion_ValueConversionError as _255:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolAbsLindep)")
   if (_1=="presolveTolRelLindep"):
    try:
     _256=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (0.000000e+00 <= _256):
      _0._task_1put_1param_SD("MSK_DPAR_PRESOLVE_TOL_REL_LINDEP",_256)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolRelLindep)")
    except mosek_fusion_ValueConversionError as _257:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (presolveTolRelLindep)")
   if (_1=="simplexAbsTolPiv"):
    try:
     _258=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if (1.000000e-12 <= _258):
      _0._task_1put_1param_SD("MSK_DPAR_SIMPLEX_ABS_TOL_PIV",_258)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simplexAbsTolPiv)")
    except mosek_fusion_ValueConversionError as _259:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (simplexAbsTolPiv)")
   if (_1=="mioTolFeas"):
    try:
     _260=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((1.000000e-09 <= _260) and (_260 <= 1.000000e-03)):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_FEAS",_260)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolFeas)")
    except mosek_fusion_ValueConversionError as _261:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolFeas)")
   if (_1=="mioTolRelDualBoundImprovement"):
    try:
     _262=mosek.fusion.Utils.Tools._toDouble_S(_2)
     if ((0.000000e+00 <= _262) and (_262 <= 1.000000e+00)):
      _0._task_1put_1param_SD("MSK_DPAR_MIO_TOL_REL_DUAL_BOUND_IMPROVEMENT",_262)
      return 
     else:
      raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelDualBoundImprovement)")
    except mosek_fusion_ValueConversionError as _263:
     raise mosek_fusion_ParameterError._ctor_S("Invalid value for parameter (mioTolRelDualBoundImprovement)")
   if (_1=="dataFileName"):
    _0._task_1put_1param_SS("MSK_SPAR_DATA_FILE_NAME",_2)
    return 
   if (_1=="basSolFileName"):
    _0._task_1put_1param_SS("MSK_SPAR_BAS_SOL_FILE_NAME",_2)
    return 
   if (_1=="itrSolFileName"):
    _0._task_1put_1param_SS("MSK_SPAR_ITR_SOL_FILE_NAME",_2)
    return 
   if (_1=="intSolFileName"):
    _0._task_1put_1param_SS("MSK_SPAR_INT_SOL_FILE_NAME",_2)
    return 
   if (_1=="writeLpGenVarName"):
    _0._task_1put_1param_SS("MSK_SPAR_WRITE_LP_GEN_VAR_NAME",_2)
    return 
   if (_1=="remoteOptserverHost"):
    _0._task_1put_1param_SS("MSK_SPAR_REMOTE_OPTSERVER_HOST",_2)
    return 
   if (_1=="remoteTlsCertPath"):
    _0._task_1put_1param_SS("MSK_SPAR_REMOTE_TLS_CERT_PATH",_2)
    return 
   if (_1=="remoteTlsCert"):
    _0._task_1put_1param_SS("MSK_SPAR_REMOTE_TLS_CERT",_2)
    return 
   raise mosek_fusion_ParameterError._ctor_S("Unknown parameter")
  @staticmethod
  def __string_1to_1variabletype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1variabletype_1value_S(_0)
  @staticmethod
  def __string_1to_1variabletype_1value_S(_0):
   if (_0=="typeCont"):
    return numpy.int32(0)
   if (_0=="typeInt"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1value_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1value_1value_S(_0)
  @staticmethod
  def __string_1to_1value_1value_S(_0):
   if (_0=="maxStrLen"):
    return numpy.int32(1024)
   if (_0=="licenseBufferLength"):
    return numpy.int32(21)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1streamtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1streamtype_1value_S(_0)
  @staticmethod
  def __string_1to_1streamtype_1value_S(_0):
   if (_0=="log"):
    return numpy.int32(0)
   if (_0=="msg"):
    return numpy.int32(1)
   if (_0=="err"):
    return numpy.int32(2)
   if (_0=="wrn"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1startpointtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1startpointtype_1value_S(_0)
  @staticmethod
  def __string_1to_1startpointtype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="guess"):
    return numpy.int32(1)
   if (_0=="constant"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1stakey_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1stakey_1value_S(_0)
  @staticmethod
  def __string_1to_1stakey_1value_S(_0):
   if (_0=="unk"):
    return numpy.int32(0)
   if (_0=="bas"):
    return numpy.int32(1)
   if (_0=="supbas"):
    return numpy.int32(2)
   if (_0=="low"):
    return numpy.int32(3)
   if (_0=="upr"):
    return numpy.int32(4)
   if (_0=="fix"):
    return numpy.int32(5)
   if (_0=="inf"):
    return numpy.int32(6)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1sparam_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1sparam_1value_S(_0)
  @staticmethod
  def __string_1to_1sparam_1value_S(_0):
   if (_0=="dataFileName"):
    return numpy.int32(1)
   if (_0=="paramReadFileName"):
    return numpy.int32(7)
   if (_0=="paramWriteFileName"):
    return numpy.int32(8)
   if (_0=="paramCommentSign"):
    return numpy.int32(6)
   if (_0=="debugFileName"):
    return numpy.int32(2)
   if (_0=="basSolFileName"):
    return numpy.int32(0)
   if (_0=="itrSolFileName"):
    return numpy.int32(4)
   if (_0=="intSolFileName"):
    return numpy.int32(3)
   if (_0=="solFilterXcLow"):
    return numpy.int32(18)
   if (_0=="solFilterXcUpr"):
    return numpy.int32(19)
   if (_0=="solFilterXxLow"):
    return numpy.int32(20)
   if (_0=="solFilterXxUpr"):
    return numpy.int32(21)
   if (_0=="readMpsObjName"):
    return numpy.int32(10)
   if (_0=="readMpsRanName"):
    return numpy.int32(11)
   if (_0=="readMpsRhsName"):
    return numpy.int32(12)
   if (_0=="readMpsBouName"):
    return numpy.int32(9)
   if (_0=="statName"):
    return numpy.int32(23)
   if (_0=="statKey"):
    return numpy.int32(22)
   if (_0=="writeLpGenVarName"):
    return numpy.int32(24)
   if (_0=="sensitivityResFileName"):
    return numpy.int32(17)
   if (_0=="sensitivityFileName"):
    return numpy.int32(16)
   if (_0=="mioDebugString"):
    return numpy.int32(5)
   if (_0=="remoteOptserverHost"):
    return numpy.int32(13)
   if (_0=="remoteTlsCertPath"):
    return numpy.int32(15)
   if (_0=="remoteTlsCert"):
    return numpy.int32(14)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1solveform_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1solveform_1value_S(_0)
  @staticmethod
  def __string_1to_1solveform_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="primal"):
    return numpy.int32(1)
   if (_0=="dual"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1soltype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1soltype_1value_S(_0)
  @staticmethod
  def __string_1to_1soltype_1value_S(_0):
   if (_0=="bas"):
    return numpy.int32(1)
   if (_0=="itr"):
    return numpy.int32(0)
   if (_0=="itg"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1solsta_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1solsta_1value_S(_0)
  @staticmethod
  def __string_1to_1solsta_1value_S(_0):
   if (_0=="unknown"):
    return numpy.int32(0)
   if (_0=="optimal"):
    return numpy.int32(1)
   if (_0=="primFeas"):
    return numpy.int32(2)
   if (_0=="dualFeas"):
    return numpy.int32(3)
   if (_0=="primAndDualFeas"):
    return numpy.int32(4)
   if (_0=="primInfeasCer"):
    return numpy.int32(5)
   if (_0=="dualInfeasCer"):
    return numpy.int32(6)
   if (_0=="primIllposedCer"):
    return numpy.int32(7)
   if (_0=="dualIllposedCer"):
    return numpy.int32(8)
   if (_0=="integerOptimal"):
    return numpy.int32(9)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1solitem_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1solitem_1value_S(_0)
  @staticmethod
  def __string_1to_1solitem_1value_S(_0):
   if (_0=="xc"):
    return numpy.int32(0)
   if (_0=="xx"):
    return numpy.int32(1)
   if (_0=="y"):
    return numpy.int32(2)
   if (_0=="slc"):
    return numpy.int32(3)
   if (_0=="suc"):
    return numpy.int32(4)
   if (_0=="slx"):
    return numpy.int32(5)
   if (_0=="sux"):
    return numpy.int32(6)
   if (_0=="snx"):
    return numpy.int32(7)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1simseltype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1simseltype_1value_S(_0)
  @staticmethod
  def __string_1to_1simseltype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="full"):
    return numpy.int32(1)
   if (_0=="ase"):
    return numpy.int32(2)
   if (_0=="devex"):
    return numpy.int32(3)
   if (_0=="se"):
    return numpy.int32(4)
   if (_0=="partial"):
    return numpy.int32(5)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1sensitivitytype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1sensitivitytype_1value_S(_0)
  @staticmethod
  def __string_1to_1sensitivitytype_1value_S(_0):
   if (_0=="basis"):
    return numpy.int32(0)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1scalingmethod_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1scalingmethod_1value_S(_0)
  @staticmethod
  def __string_1to_1scalingmethod_1value_S(_0):
   if (_0=="pow2"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1scalingtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1scalingtype_1value_S(_0)
  @staticmethod
  def __string_1to_1scalingtype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="none"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1rescodetype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1rescodetype_1value_S(_0)
  @staticmethod
  def __string_1to_1rescodetype_1value_S(_0):
   if (_0=="ok"):
    return numpy.int32(0)
   if (_0=="wrn"):
    return numpy.int32(1)
   if (_0=="trm"):
    return numpy.int32(2)
   if (_0=="err"):
    return numpy.int32(3)
   if (_0=="unk"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1rescode_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1rescode_1value_S(_0)
  @staticmethod
  def __string_1to_1rescode_1value_S(_0):
   if (_0=="ok"):
    return numpy.int32(0)
   if (_0=="wrnOpenParamFile"):
    return numpy.int32(50)
   if (_0=="wrnLargeBound"):
    return numpy.int32(51)
   if (_0=="wrnLargeLoBound"):
    return numpy.int32(52)
   if (_0=="wrnLargeUpBound"):
    return numpy.int32(53)
   if (_0=="wrnLargeConFx"):
    return numpy.int32(54)
   if (_0=="wrnLargeCj"):
    return numpy.int32(57)
   if (_0=="wrnLargeAij"):
    return numpy.int32(62)
   if (_0=="wrnZeroAij"):
    return numpy.int32(63)
   if (_0=="wrnNameMaxLen"):
    return numpy.int32(65)
   if (_0=="wrnSparMaxLen"):
    return numpy.int32(66)
   if (_0=="wrnMpsSplitRhsVector"):
    return numpy.int32(70)
   if (_0=="wrnMpsSplitRanVector"):
    return numpy.int32(71)
   if (_0=="wrnMpsSplitBouVector"):
    return numpy.int32(72)
   if (_0=="wrnLpOldQuadFormat"):
    return numpy.int32(80)
   if (_0=="wrnLpDropVariable"):
    return numpy.int32(85)
   if (_0=="wrnNzInUprTri"):
    return numpy.int32(200)
   if (_0=="wrnDroppedNzQobj"):
    return numpy.int32(201)
   if (_0=="wrnIgnoreInteger"):
    return numpy.int32(250)
   if (_0=="wrnNoGlobalOptimizer"):
    return numpy.int32(251)
   if (_0=="wrnMioInfeasibleFinal"):
    return numpy.int32(270)
   if (_0=="wrnSolFilter"):
    return numpy.int32(300)
   if (_0=="wrnUndefSolFileName"):
    return numpy.int32(350)
   if (_0=="wrnSolFileIgnoredCon"):
    return numpy.int32(351)
   if (_0=="wrnSolFileIgnoredVar"):
    return numpy.int32(352)
   if (_0=="wrnTooFewBasisVars"):
    return numpy.int32(400)
   if (_0=="wrnTooManyBasisVars"):
    return numpy.int32(405)
   if (_0=="wrnLicenseExpire"):
    return numpy.int32(500)
   if (_0=="wrnLicenseServer"):
    return numpy.int32(501)
   if (_0=="wrnEmptyName"):
    return numpy.int32(502)
   if (_0=="wrnUsingGenericNames"):
    return numpy.int32(503)
   if (_0=="wrnInvalidMpsName"):
    return numpy.int32(504)
   if (_0=="wrnInvalidMpsObjName"):
    return numpy.int32(505)
   if (_0=="wrnLicenseFeatureExpire"):
    return numpy.int32(509)
   if (_0=="wrnParamNameDou"):
    return numpy.int32(510)
   if (_0=="wrnParamNameInt"):
    return numpy.int32(511)
   if (_0=="wrnParamNameStr"):
    return numpy.int32(512)
   if (_0=="wrnParamStrValue"):
    return numpy.int32(515)
   if (_0=="wrnParamIgnoredCmio"):
    return numpy.int32(516)
   if (_0=="wrnZerosInSparseRow"):
    return numpy.int32(705)
   if (_0=="wrnZerosInSparseCol"):
    return numpy.int32(710)
   if (_0=="wrnIncompleteLinearDependencyCheck"):
    return numpy.int32(800)
   if (_0=="wrnEliminatorSpace"):
    return numpy.int32(801)
   if (_0=="wrnPresolveOutofspace"):
    return numpy.int32(802)
   if (_0=="wrnPresolvePrimalPertubations"):
    return numpy.int32(803)
   if (_0=="wrnWriteChangedNames"):
    return numpy.int32(830)
   if (_0=="wrnWriteDiscardedCfix"):
    return numpy.int32(831)
   if (_0=="wrnDuplicateConstraintNames"):
    return numpy.int32(850)
   if (_0=="wrnDuplicateVariableNames"):
    return numpy.int32(851)
   if (_0=="wrnDuplicateBarvariableNames"):
    return numpy.int32(852)
   if (_0=="wrnDuplicateConeNames"):
    return numpy.int32(853)
   if (_0=="wrnWriteLpInvalidVarNames"):
    return numpy.int32(854)
   if (_0=="wrnWriteLpDuplicateVarNames"):
    return numpy.int32(855)
   if (_0=="wrnWriteLpInvalidConNames"):
    return numpy.int32(856)
   if (_0=="wrnWriteLpDuplicateConNames"):
    return numpy.int32(857)
   if (_0=="wrnAnaLargeBounds"):
    return numpy.int32(900)
   if (_0=="wrnAnaCZero"):
    return numpy.int32(901)
   if (_0=="wrnAnaEmptyCols"):
    return numpy.int32(902)
   if (_0=="wrnAnaCloseBounds"):
    return numpy.int32(903)
   if (_0=="wrnAnaAlmostIntBounds"):
    return numpy.int32(904)
   if (_0=="wrnNoInfeasibilityReportWhenMatrixVariables"):
    return numpy.int32(930)
   if (_0=="wrnNoDualizer"):
    return numpy.int32(950)
   if (_0=="wrnSymMatLarge"):
    return numpy.int32(960)
   if (_0=="wrnModifiedDoubleParameter"):
    return numpy.int32(970)
   if (_0=="wrnLargeFij"):
    return numpy.int32(980)
   if (_0=="errLicense"):
    return numpy.int32(1000)
   if (_0=="errLicenseExpired"):
    return numpy.int32(1001)
   if (_0=="errLicenseVersion"):
    return numpy.int32(1002)
   if (_0=="errLicenseOldServerVersion"):
    return numpy.int32(1003)
   if (_0=="errSizeLicense"):
    return numpy.int32(1005)
   if (_0=="errProbLicense"):
    return numpy.int32(1006)
   if (_0=="errFileLicense"):
    return numpy.int32(1007)
   if (_0=="errMissingLicenseFile"):
    return numpy.int32(1008)
   if (_0=="errSizeLicenseCon"):
    return numpy.int32(1010)
   if (_0=="errSizeLicenseVar"):
    return numpy.int32(1011)
   if (_0=="errSizeLicenseIntvar"):
    return numpy.int32(1012)
   if (_0=="errOptimizerLicense"):
    return numpy.int32(1013)
   if (_0=="errFlexlm"):
    return numpy.int32(1014)
   if (_0=="errLicenseServer"):
    return numpy.int32(1015)
   if (_0=="errLicenseMax"):
    return numpy.int32(1016)
   if (_0=="errLicenseMoseklmDaemon"):
    return numpy.int32(1017)
   if (_0=="errLicenseFeature"):
    return numpy.int32(1018)
   if (_0=="errPlatformNotLicensed"):
    return numpy.int32(1019)
   if (_0=="errLicenseCannotAllocate"):
    return numpy.int32(1020)
   if (_0=="errLicenseCannotConnect"):
    return numpy.int32(1021)
   if (_0=="errLicenseInvalidHostid"):
    return numpy.int32(1025)
   if (_0=="errLicenseServerVersion"):
    return numpy.int32(1026)
   if (_0=="errLicenseNoServerSupport"):
    return numpy.int32(1027)
   if (_0=="errLicenseNoServerLine"):
    return numpy.int32(1028)
   if (_0=="errOlderDll"):
    return numpy.int32(1035)
   if (_0=="errNewerDll"):
    return numpy.int32(1036)
   if (_0=="errLinkFileDll"):
    return numpy.int32(1040)
   if (_0=="errThreadMutexInit"):
    return numpy.int32(1045)
   if (_0=="errThreadMutexLock"):
    return numpy.int32(1046)
   if (_0=="errThreadMutexUnlock"):
    return numpy.int32(1047)
   if (_0=="errThreadCreate"):
    return numpy.int32(1048)
   if (_0=="errThreadCondInit"):
    return numpy.int32(1049)
   if (_0=="errUnknown"):
    return numpy.int32(1050)
   if (_0=="errSpace"):
    return numpy.int32(1051)
   if (_0=="errFileOpen"):
    return numpy.int32(1052)
   if (_0=="errFileRead"):
    return numpy.int32(1053)
   if (_0=="errFileWrite"):
    return numpy.int32(1054)
   if (_0=="errDataFileExt"):
    return numpy.int32(1055)
   if (_0=="errInvalidFileName"):
    return numpy.int32(1056)
   if (_0=="errInvalidSolFileName"):
    return numpy.int32(1057)
   if (_0=="errEndOfFile"):
    return numpy.int32(1059)
   if (_0=="errNullEnv"):
    return numpy.int32(1060)
   if (_0=="errNullTask"):
    return numpy.int32(1061)
   if (_0=="errInvalidStream"):
    return numpy.int32(1062)
   if (_0=="errNoInitEnv"):
    return numpy.int32(1063)
   if (_0=="errInvalidTask"):
    return numpy.int32(1064)
   if (_0=="errNullPointer"):
    return numpy.int32(1065)
   if (_0=="errLivingTasks"):
    return numpy.int32(1066)
   if (_0=="errReadGzip"):
    return numpy.int32(1067)
   if (_0=="errReadZstd"):
    return numpy.int32(1068)
   if (_0=="errBlankName"):
    return numpy.int32(1070)
   if (_0=="errDupName"):
    return numpy.int32(1071)
   if (_0=="errFormatString"):
    return numpy.int32(1072)
   if (_0=="errSparsitySpecification"):
    return numpy.int32(1073)
   if (_0=="errMismatchingDimension"):
    return numpy.int32(1074)
   if (_0=="errInvalidObjName"):
    return numpy.int32(1075)
   if (_0=="errInvalidConName"):
    return numpy.int32(1076)
   if (_0=="errInvalidVarName"):
    return numpy.int32(1077)
   if (_0=="errInvalidConeName"):
    return numpy.int32(1078)
   if (_0=="errInvalidBarvarName"):
    return numpy.int32(1079)
   if (_0=="errSpaceLeaking"):
    return numpy.int32(1080)
   if (_0=="errSpaceNoInfo"):
    return numpy.int32(1081)
   if (_0=="errDimensionSpecification"):
    return numpy.int32(1082)
   if (_0=="errAxisNameSpecification"):
    return numpy.int32(1083)
   if (_0=="errReadFormat"):
    return numpy.int32(1090)
   if (_0=="errMpsFile"):
    return numpy.int32(1100)
   if (_0=="errMpsInvField"):
    return numpy.int32(1101)
   if (_0=="errMpsInvMarker"):
    return numpy.int32(1102)
   if (_0=="errMpsNullConName"):
    return numpy.int32(1103)
   if (_0=="errMpsNullVarName"):
    return numpy.int32(1104)
   if (_0=="errMpsUndefConName"):
    return numpy.int32(1105)
   if (_0=="errMpsUndefVarName"):
    return numpy.int32(1106)
   if (_0=="errMpsInvalidConKey"):
    return numpy.int32(1107)
   if (_0=="errMpsInvalidBoundKey"):
    return numpy.int32(1108)
   if (_0=="errMpsInvalidSecName"):
    return numpy.int32(1109)
   if (_0=="errMpsNoObjective"):
    return numpy.int32(1110)
   if (_0=="errMpsSplittedVar"):
    return numpy.int32(1111)
   if (_0=="errMpsMulConName"):
    return numpy.int32(1112)
   if (_0=="errMpsMulQsec"):
    return numpy.int32(1113)
   if (_0=="errMpsMulQobj"):
    return numpy.int32(1114)
   if (_0=="errMpsInvSecOrder"):
    return numpy.int32(1115)
   if (_0=="errMpsMulCsec"):
    return numpy.int32(1116)
   if (_0=="errMpsConeType"):
    return numpy.int32(1117)
   if (_0=="errMpsConeOverlap"):
    return numpy.int32(1118)
   if (_0=="errMpsConeRepeat"):
    return numpy.int32(1119)
   if (_0=="errMpsNonSymmetricQ"):
    return numpy.int32(1120)
   if (_0=="errMpsDuplicateQElement"):
    return numpy.int32(1121)
   if (_0=="errMpsInvalidObjsense"):
    return numpy.int32(1122)
   if (_0=="errMpsTabInField2"):
    return numpy.int32(1125)
   if (_0=="errMpsTabInField3"):
    return numpy.int32(1126)
   if (_0=="errMpsTabInField5"):
    return numpy.int32(1127)
   if (_0=="errMpsInvalidObjName"):
    return numpy.int32(1128)
   if (_0=="errMpsInvalidKey"):
    return numpy.int32(1129)
   if (_0=="errMpsInvalidIndicatorConstraint"):
    return numpy.int32(1130)
   if (_0=="errMpsInvalidIndicatorVariable"):
    return numpy.int32(1131)
   if (_0=="errMpsInvalidIndicatorValue"):
    return numpy.int32(1132)
   if (_0=="errMpsInvalidIndicatorQuadraticConstraint"):
    return numpy.int32(1133)
   if (_0=="errOpfSyntax"):
    return numpy.int32(1134)
   if (_0=="errOpfPrematureEof"):
    return numpy.int32(1136)
   if (_0=="errOpfMismatchedTag"):
    return numpy.int32(1137)
   if (_0=="errOpfDuplicateBound"):
    return numpy.int32(1138)
   if (_0=="errOpfDuplicateConstraintName"):
    return numpy.int32(1139)
   if (_0=="errOpfInvalidConeType"):
    return numpy.int32(1140)
   if (_0=="errOpfIncorrectTagParam"):
    return numpy.int32(1141)
   if (_0=="errOpfInvalidTag"):
    return numpy.int32(1142)
   if (_0=="errOpfDuplicateConeEntry"):
    return numpy.int32(1143)
   if (_0=="errOpfTooLarge"):
    return numpy.int32(1144)
   if (_0=="errOpfDualIntegerSolution"):
    return numpy.int32(1146)
   if (_0=="errLpEmpty"):
    return numpy.int32(1151)
   if (_0=="errWriteMpsInvalidName"):
    return numpy.int32(1153)
   if (_0=="errLpInvalidVarName"):
    return numpy.int32(1154)
   if (_0=="errWriteOpfInvalidVarName"):
    return numpy.int32(1156)
   if (_0=="errLpFileFormat"):
    return numpy.int32(1157)
   if (_0=="errLpExpectedNumber"):
    return numpy.int32(1158)
   if (_0=="errReadLpMissingEndTag"):
    return numpy.int32(1159)
   if (_0=="errLpIndicatorVar"):
    return numpy.int32(1160)
   if (_0=="errLpExpectedObjective"):
    return numpy.int32(1161)
   if (_0=="errLpExpectedConstraintRelation"):
    return numpy.int32(1162)
   if (_0=="errLpAmbiguousConstraintBound"):
    return numpy.int32(1163)
   if (_0=="errLpDuplicateSection"):
    return numpy.int32(1164)
   if (_0=="errReadLpDelayedRowsNotSupported"):
    return numpy.int32(1165)
   if (_0=="errWritingFile"):
    return numpy.int32(1166)
   if (_0=="errInvalidNameInSolFile"):
    return numpy.int32(1170)
   if (_0=="errJsonSyntax"):
    return numpy.int32(1175)
   if (_0=="errJsonString"):
    return numpy.int32(1176)
   if (_0=="errJsonNumberOverflow"):
    return numpy.int32(1177)
   if (_0=="errJsonFormat"):
    return numpy.int32(1178)
   if (_0=="errJsonData"):
    return numpy.int32(1179)
   if (_0=="errJsonMissingData"):
    return numpy.int32(1180)
   if (_0=="errPtfIncompatibility"):
    return numpy.int32(1181)
   if (_0=="errPtfUndefinedItem"):
    return numpy.int32(1182)
   if (_0=="errPtfInconsistency"):
    return numpy.int32(1183)
   if (_0=="errPtfFormat"):
    return numpy.int32(1184)
   if (_0=="errArgumentLenneq"):
    return numpy.int32(1197)
   if (_0=="errArgumentType"):
    return numpy.int32(1198)
   if (_0=="errNumArguments"):
    return numpy.int32(1199)
   if (_0=="errInArgument"):
    return numpy.int32(1200)
   if (_0=="errArgumentDimension"):
    return numpy.int32(1201)
   if (_0=="errShapeIsTooLarge"):
    return numpy.int32(1202)
   if (_0=="errIndexIsTooSmall"):
    return numpy.int32(1203)
   if (_0=="errIndexIsTooLarge"):
    return numpy.int32(1204)
   if (_0=="errIndexIsNotUnique"):
    return numpy.int32(1205)
   if (_0=="errParamName"):
    return numpy.int32(1206)
   if (_0=="errParamNameDou"):
    return numpy.int32(1207)
   if (_0=="errParamNameInt"):
    return numpy.int32(1208)
   if (_0=="errParamNameStr"):
    return numpy.int32(1209)
   if (_0=="errParamIndex"):
    return numpy.int32(1210)
   if (_0=="errParamIsTooLarge"):
    return numpy.int32(1215)
   if (_0=="errParamIsTooSmall"):
    return numpy.int32(1216)
   if (_0=="errParamValueStr"):
    return numpy.int32(1217)
   if (_0=="errParamType"):
    return numpy.int32(1218)
   if (_0=="errInfDouIndex"):
    return numpy.int32(1219)
   if (_0=="errInfIntIndex"):
    return numpy.int32(1220)
   if (_0=="errIndexArrIsTooSmall"):
    return numpy.int32(1221)
   if (_0=="errIndexArrIsTooLarge"):
    return numpy.int32(1222)
   if (_0=="errInfLintIndex"):
    return numpy.int32(1225)
   if (_0=="errArgIsTooSmall"):
    return numpy.int32(1226)
   if (_0=="errArgIsTooLarge"):
    return numpy.int32(1227)
   if (_0=="errInvalidWhichsol"):
    return numpy.int32(1228)
   if (_0=="errInfDouName"):
    return numpy.int32(1230)
   if (_0=="errInfIntName"):
    return numpy.int32(1231)
   if (_0=="errInfType"):
    return numpy.int32(1232)
   if (_0=="errInfLintName"):
    return numpy.int32(1234)
   if (_0=="errIndex"):
    return numpy.int32(1235)
   if (_0=="errWhichsol"):
    return numpy.int32(1236)
   if (_0=="errSolitem"):
    return numpy.int32(1237)
   if (_0=="errWhichitemNotAllowed"):
    return numpy.int32(1238)
   if (_0=="errMaxnumcon"):
    return numpy.int32(1240)
   if (_0=="errMaxnumvar"):
    return numpy.int32(1241)
   if (_0=="errMaxnumbarvar"):
    return numpy.int32(1242)
   if (_0=="errMaxnumqnz"):
    return numpy.int32(1243)
   if (_0=="errTooSmallMaxNumNz"):
    return numpy.int32(1245)
   if (_0=="errInvalidIdx"):
    return numpy.int32(1246)
   if (_0=="errInvalidMaxNum"):
    return numpy.int32(1247)
   if (_0=="errUnallowedWhichsol"):
    return numpy.int32(1248)
   if (_0=="errNumconlim"):
    return numpy.int32(1250)
   if (_0=="errNumvarlim"):
    return numpy.int32(1251)
   if (_0=="errTooSmallMaxnumanz"):
    return numpy.int32(1252)
   if (_0=="errInvAptre"):
    return numpy.int32(1253)
   if (_0=="errMulAElement"):
    return numpy.int32(1254)
   if (_0=="errInvBk"):
    return numpy.int32(1255)
   if (_0=="errInvBkc"):
    return numpy.int32(1256)
   if (_0=="errInvBkx"):
    return numpy.int32(1257)
   if (_0=="errInvVarType"):
    return numpy.int32(1258)
   if (_0=="errSolverProbtype"):
    return numpy.int32(1259)
   if (_0=="errObjectiveRange"):
    return numpy.int32(1260)
   if (_0=="errInvRescode"):
    return numpy.int32(1261)
   if (_0=="errInvIinf"):
    return numpy.int32(1262)
   if (_0=="errInvLiinf"):
    return numpy.int32(1263)
   if (_0=="errInvDinf"):
    return numpy.int32(1264)
   if (_0=="errBasis"):
    return numpy.int32(1266)
   if (_0=="errInvSkc"):
    return numpy.int32(1267)
   if (_0=="errInvSkx"):
    return numpy.int32(1268)
   if (_0=="errInvSkn"):
    return numpy.int32(1274)
   if (_0=="errInvSkStr"):
    return numpy.int32(1269)
   if (_0=="errInvSk"):
    return numpy.int32(1270)
   if (_0=="errInvConeTypeStr"):
    return numpy.int32(1271)
   if (_0=="errInvConeType"):
    return numpy.int32(1272)
   if (_0=="errInvalidSurplus"):
    return numpy.int32(1275)
   if (_0=="errInvNameItem"):
    return numpy.int32(1280)
   if (_0=="errProItem"):
    return numpy.int32(1281)
   if (_0=="errInvalidFormatType"):
    return numpy.int32(1283)
   if (_0=="errFirsti"):
    return numpy.int32(1285)
   if (_0=="errLasti"):
    return numpy.int32(1286)
   if (_0=="errFirstj"):
    return numpy.int32(1287)
   if (_0=="errLastj"):
    return numpy.int32(1288)
   if (_0=="errMaxLenIsTooSmall"):
    return numpy.int32(1289)
   if (_0=="errNonlinearEquality"):
    return numpy.int32(1290)
   if (_0=="errNonconvex"):
    return numpy.int32(1291)
   if (_0=="errNonlinearRanged"):
    return numpy.int32(1292)
   if (_0=="errConQNotPsd"):
    return numpy.int32(1293)
   if (_0=="errConQNotNsd"):
    return numpy.int32(1294)
   if (_0=="errObjQNotPsd"):
    return numpy.int32(1295)
   if (_0=="errObjQNotNsd"):
    return numpy.int32(1296)
   if (_0=="errArgumentPermArray"):
    return numpy.int32(1299)
   if (_0=="errConeIndex"):
    return numpy.int32(1300)
   if (_0=="errConeSize"):
    return numpy.int32(1301)
   if (_0=="errConeOverlap"):
    return numpy.int32(1302)
   if (_0=="errConeRepVar"):
    return numpy.int32(1303)
   if (_0=="errMaxnumcone"):
    return numpy.int32(1304)
   if (_0=="errConeType"):
    return numpy.int32(1305)
   if (_0=="errConeTypeStr"):
    return numpy.int32(1306)
   if (_0=="errConeOverlapAppend"):
    return numpy.int32(1307)
   if (_0=="errRemoveConeVariable"):
    return numpy.int32(1310)
   if (_0=="errAppendingTooBigCone"):
    return numpy.int32(1311)
   if (_0=="errConeParameter"):
    return numpy.int32(1320)
   if (_0=="errSolFileInvalidNumber"):
    return numpy.int32(1350)
   if (_0=="errHugeC"):
    return numpy.int32(1375)
   if (_0=="errHugeAij"):
    return numpy.int32(1380)
   if (_0=="errDuplicateAij"):
    return numpy.int32(1385)
   if (_0=="errLowerBoundIsANan"):
    return numpy.int32(1390)
   if (_0=="errUpperBoundIsANan"):
    return numpy.int32(1391)
   if (_0=="errInfiniteBound"):
    return numpy.int32(1400)
   if (_0=="errInvQobjSubi"):
    return numpy.int32(1401)
   if (_0=="errInvQobjSubj"):
    return numpy.int32(1402)
   if (_0=="errInvQobjVal"):
    return numpy.int32(1403)
   if (_0=="errInvQconSubk"):
    return numpy.int32(1404)
   if (_0=="errInvQconSubi"):
    return numpy.int32(1405)
   if (_0=="errInvQconSubj"):
    return numpy.int32(1406)
   if (_0=="errInvQconVal"):
    return numpy.int32(1407)
   if (_0=="errQconSubiTooSmall"):
    return numpy.int32(1408)
   if (_0=="errQconSubiTooLarge"):
    return numpy.int32(1409)
   if (_0=="errQobjUpperTriangle"):
    return numpy.int32(1415)
   if (_0=="errQconUpperTriangle"):
    return numpy.int32(1417)
   if (_0=="errFixedBoundValues"):
    return numpy.int32(1420)
   if (_0=="errTooSmallATruncationValue"):
    return numpy.int32(1421)
   if (_0=="errInvalidObjectiveSense"):
    return numpy.int32(1445)
   if (_0=="errUndefinedObjectiveSense"):
    return numpy.int32(1446)
   if (_0=="errYIsUndefined"):
    return numpy.int32(1449)
   if (_0=="errNanInDoubleData"):
    return numpy.int32(1450)
   if (_0=="errInfInDoubleData"):
    return numpy.int32(1451)
   if (_0=="errNanInBlc"):
    return numpy.int32(1461)
   if (_0=="errNanInBuc"):
    return numpy.int32(1462)
   if (_0=="errInvalidCfix"):
    return numpy.int32(1469)
   if (_0=="errNanInC"):
    return numpy.int32(1470)
   if (_0=="errNanInBlx"):
    return numpy.int32(1471)
   if (_0=="errNanInBux"):
    return numpy.int32(1472)
   if (_0=="errInvalidAij"):
    return numpy.int32(1473)
   if (_0=="errInvalidCj"):
    return numpy.int32(1474)
   if (_0=="errSymMatInvalid"):
    return numpy.int32(1480)
   if (_0=="errSymMatHuge"):
    return numpy.int32(1482)
   if (_0=="errInvProblem"):
    return numpy.int32(1500)
   if (_0=="errMixedConicAndNl"):
    return numpy.int32(1501)
   if (_0=="errGlobalInvConicProblem"):
    return numpy.int32(1503)
   if (_0=="errInvOptimizer"):
    return numpy.int32(1550)
   if (_0=="errMioNoOptimizer"):
    return numpy.int32(1551)
   if (_0=="errNoOptimizerVarType"):
    return numpy.int32(1552)
   if (_0=="errFinalSolution"):
    return numpy.int32(1560)
   if (_0=="errFirst"):
    return numpy.int32(1570)
   if (_0=="errLast"):
    return numpy.int32(1571)
   if (_0=="errSliceSize"):
    return numpy.int32(1572)
   if (_0=="errNegativeSurplus"):
    return numpy.int32(1573)
   if (_0=="errNegativeAppend"):
    return numpy.int32(1578)
   if (_0=="errPostsolve"):
    return numpy.int32(1580)
   if (_0=="errOverflow"):
    return numpy.int32(1590)
   if (_0=="errNoBasisSol"):
    return numpy.int32(1600)
   if (_0=="errBasisFactor"):
    return numpy.int32(1610)
   if (_0=="errBasisSingular"):
    return numpy.int32(1615)
   if (_0=="errFactor"):
    return numpy.int32(1650)
   if (_0=="errFeasrepairCannotRelax"):
    return numpy.int32(1700)
   if (_0=="errFeasrepairSolvingRelaxed"):
    return numpy.int32(1701)
   if (_0=="errFeasrepairInconsistentBound"):
    return numpy.int32(1702)
   if (_0=="errRepairInvalidProblem"):
    return numpy.int32(1710)
   if (_0=="errRepairOptimizationFailed"):
    return numpy.int32(1711)
   if (_0=="errNameMaxLen"):
    return numpy.int32(1750)
   if (_0=="errNameIsNull"):
    return numpy.int32(1760)
   if (_0=="errInvalidCompression"):
    return numpy.int32(1800)
   if (_0=="errInvalidIomode"):
    return numpy.int32(1801)
   if (_0=="errNoPrimalInfeasCer"):
    return numpy.int32(2000)
   if (_0=="errNoDualInfeasCer"):
    return numpy.int32(2001)
   if (_0=="errNoSolutionInCallback"):
    return numpy.int32(2500)
   if (_0=="errInvMarki"):
    return numpy.int32(2501)
   if (_0=="errInvMarkj"):
    return numpy.int32(2502)
   if (_0=="errInvNumi"):
    return numpy.int32(2503)
   if (_0=="errInvNumj"):
    return numpy.int32(2504)
   if (_0=="errTaskIncompatible"):
    return numpy.int32(2560)
   if (_0=="errTaskInvalid"):
    return numpy.int32(2561)
   if (_0=="errTaskWrite"):
    return numpy.int32(2562)
   if (_0=="errLuMaxNumTries"):
    return numpy.int32(2800)
   if (_0=="errInvalidUtf8"):
    return numpy.int32(2900)
   if (_0=="errInvalidWchar"):
    return numpy.int32(2901)
   if (_0=="errNoDualForItgSol"):
    return numpy.int32(2950)
   if (_0=="errNoSnxForBasSol"):
    return numpy.int32(2953)
   if (_0=="errInternal"):
    return numpy.int32(3000)
   if (_0=="errApiArrayTooSmall"):
    return numpy.int32(3001)
   if (_0=="errApiCbConnect"):
    return numpy.int32(3002)
   if (_0=="errApiFatalError"):
    return numpy.int32(3005)
   if (_0=="errApiInternal"):
    return numpy.int32(3999)
   if (_0=="errSenFormat"):
    return numpy.int32(3050)
   if (_0=="errSenUndefName"):
    return numpy.int32(3051)
   if (_0=="errSenIndexRange"):
    return numpy.int32(3052)
   if (_0=="errSenBoundInvalidUp"):
    return numpy.int32(3053)
   if (_0=="errSenBoundInvalidLo"):
    return numpy.int32(3054)
   if (_0=="errSenIndexInvalid"):
    return numpy.int32(3055)
   if (_0=="errSenInvalidRegexp"):
    return numpy.int32(3056)
   if (_0=="errSenSolutionStatus"):
    return numpy.int32(3057)
   if (_0=="errSenNumerical"):
    return numpy.int32(3058)
   if (_0=="errSenUnhandledProblemType"):
    return numpy.int32(3080)
   if (_0=="errUnbStepSize"):
    return numpy.int32(3100)
   if (_0=="errIdenticalTasks"):
    return numpy.int32(3101)
   if (_0=="errAdInvalidCodelist"):
    return numpy.int32(3102)
   if (_0=="errInternalTestFailed"):
    return numpy.int32(3500)
   if (_0=="errXmlInvalidProblemType"):
    return numpy.int32(3600)
   if (_0=="errInvalidAmplStub"):
    return numpy.int32(3700)
   if (_0=="errInt64ToInt32Cast"):
    return numpy.int32(3800)
   if (_0=="errSizeLicenseNumcores"):
    return numpy.int32(3900)
   if (_0=="errInfeasUndefined"):
    return numpy.int32(3910)
   if (_0=="errNoBarxForSolution"):
    return numpy.int32(3915)
   if (_0=="errNoBarsForSolution"):
    return numpy.int32(3916)
   if (_0=="errBarVarDim"):
    return numpy.int32(3920)
   if (_0=="errSymMatInvalidRowIndex"):
    return numpy.int32(3940)
   if (_0=="errSymMatInvalidColIndex"):
    return numpy.int32(3941)
   if (_0=="errSymMatNotLowerTringular"):
    return numpy.int32(3942)
   if (_0=="errSymMatInvalidValue"):
    return numpy.int32(3943)
   if (_0=="errSymMatDuplicate"):
    return numpy.int32(3944)
   if (_0=="errInvalidSymMatDim"):
    return numpy.int32(3950)
   if (_0=="errInvalidFileFormatForSymMat"):
    return numpy.int32(4000)
   if (_0=="errInvalidFileFormatForCfix"):
    return numpy.int32(4001)
   if (_0=="errInvalidFileFormatForRangedConstraints"):
    return numpy.int32(4002)
   if (_0=="errInvalidFileFormatForFreeConstraints"):
    return numpy.int32(4003)
   if (_0=="errInvalidFileFormatForCones"):
    return numpy.int32(4005)
   if (_0=="errInvalidFileFormatForQuadraticTerms"):
    return numpy.int32(4006)
   if (_0=="errInvalidFileFormatForNonlinear"):
    return numpy.int32(4010)
   if (_0=="errInvalidFileFormatForDisjunctiveConstraints"):
    return numpy.int32(4011)
   if (_0=="errInvalidFileFormatForAffineConicConstraints"):
    return numpy.int32(4012)
   if (_0=="errDuplicateConstraintNames"):
    return numpy.int32(4500)
   if (_0=="errDuplicateVariableNames"):
    return numpy.int32(4501)
   if (_0=="errDuplicateBarvariableNames"):
    return numpy.int32(4502)
   if (_0=="errDuplicateConeNames"):
    return numpy.int32(4503)
   if (_0=="errDuplicateDomainNames"):
    return numpy.int32(4504)
   if (_0=="errDuplicateDjcNames"):
    return numpy.int32(4505)
   if (_0=="errNonUniqueArray"):
    return numpy.int32(5000)
   if (_0=="errArgumentIsTooSmall"):
    return numpy.int32(5004)
   if (_0=="errArgumentIsTooLarge"):
    return numpy.int32(5005)
   if (_0=="errMioInternal"):
    return numpy.int32(5010)
   if (_0=="errInvalidProblemType"):
    return numpy.int32(6000)
   if (_0=="errUnhandledSolutionStatus"):
    return numpy.int32(6010)
   if (_0=="errUpperTriangle"):
    return numpy.int32(6020)
   if (_0=="errLauSingularMatrix"):
    return numpy.int32(7000)
   if (_0=="errLauNotPositiveDefinite"):
    return numpy.int32(7001)
   if (_0=="errLauInvalidLowerTriangularMatrix"):
    return numpy.int32(7002)
   if (_0=="errLauUnknown"):
    return numpy.int32(7005)
   if (_0=="errLauArgM"):
    return numpy.int32(7010)
   if (_0=="errLauArgN"):
    return numpy.int32(7011)
   if (_0=="errLauArgK"):
    return numpy.int32(7012)
   if (_0=="errLauArgTransa"):
    return numpy.int32(7015)
   if (_0=="errLauArgTransb"):
    return numpy.int32(7016)
   if (_0=="errLauArgUplo"):
    return numpy.int32(7017)
   if (_0=="errLauArgTrans"):
    return numpy.int32(7018)
   if (_0=="errLauInvalidSparseSymmetricMatrix"):
    return numpy.int32(7019)
   if (_0=="errCbfParse"):
    return numpy.int32(7100)
   if (_0=="errCbfObjSense"):
    return numpy.int32(7101)
   if (_0=="errCbfNoVariables"):
    return numpy.int32(7102)
   if (_0=="errCbfTooManyConstraints"):
    return numpy.int32(7103)
   if (_0=="errCbfTooManyVariables"):
    return numpy.int32(7104)
   if (_0=="errCbfNoVersionSpecified"):
    return numpy.int32(7105)
   if (_0=="errCbfSyntax"):
    return numpy.int32(7106)
   if (_0=="errCbfDuplicateObj"):
    return numpy.int32(7107)
   if (_0=="errCbfDuplicateCon"):
    return numpy.int32(7108)
   if (_0=="errCbfDuplicateVar"):
    return numpy.int32(7110)
   if (_0=="errCbfDuplicateInt"):
    return numpy.int32(7111)
   if (_0=="errCbfInvalidVarType"):
    return numpy.int32(7112)
   if (_0=="errCbfInvalidConType"):
    return numpy.int32(7113)
   if (_0=="errCbfInvalidDomainDimension"):
    return numpy.int32(7114)
   if (_0=="errCbfDuplicateObjacoord"):
    return numpy.int32(7115)
   if (_0=="errCbfDuplicateBcoord"):
    return numpy.int32(7116)
   if (_0=="errCbfDuplicateAcoord"):
    return numpy.int32(7117)
   if (_0=="errCbfTooFewVariables"):
    return numpy.int32(7118)
   if (_0=="errCbfTooFewConstraints"):
    return numpy.int32(7119)
   if (_0=="errCbfTooFewInts"):
    return numpy.int32(7120)
   if (_0=="errCbfTooManyInts"):
    return numpy.int32(7121)
   if (_0=="errCbfInvalidIntIndex"):
    return numpy.int32(7122)
   if (_0=="errCbfUnsupported"):
    return numpy.int32(7123)
   if (_0=="errCbfDuplicatePsdvar"):
    return numpy.int32(7124)
   if (_0=="errCbfInvalidPsdvarDimension"):
    return numpy.int32(7125)
   if (_0=="errCbfTooFewPsdvar"):
    return numpy.int32(7126)
   if (_0=="errCbfInvalidExpDimension"):
    return numpy.int32(7127)
   if (_0=="errCbfDuplicatePowCones"):
    return numpy.int32(7130)
   if (_0=="errCbfDuplicatePowStarCones"):
    return numpy.int32(7131)
   if (_0=="errCbfInvalidPower"):
    return numpy.int32(7132)
   if (_0=="errCbfPowerConeIsTooLong"):
    return numpy.int32(7133)
   if (_0=="errCbfInvalidPowerConeIndex"):
    return numpy.int32(7134)
   if (_0=="errCbfInvalidPowerStarConeIndex"):
    return numpy.int32(7135)
   if (_0=="errCbfUnhandledPowerConeType"):
    return numpy.int32(7136)
   if (_0=="errCbfUnhandledPowerStarConeType"):
    return numpy.int32(7137)
   if (_0=="errCbfPowerConeMismatch"):
    return numpy.int32(7138)
   if (_0=="errCbfPowerStarConeMismatch"):
    return numpy.int32(7139)
   if (_0=="errCbfInvalidNumberOfCones"):
    return numpy.int32(7140)
   if (_0=="errCbfInvalidDimensionOfCones"):
    return numpy.int32(7141)
   if (_0=="errCbfInvalidNumObjacoord"):
    return numpy.int32(7150)
   if (_0=="errCbfInvalidNumObjfcoord"):
    return numpy.int32(7151)
   if (_0=="errCbfInvalidNumAcoord"):
    return numpy.int32(7152)
   if (_0=="errCbfInvalidNumBcoord"):
    return numpy.int32(7153)
   if (_0=="errCbfInvalidNumFcoord"):
    return numpy.int32(7155)
   if (_0=="errCbfInvalidNumHcoord"):
    return numpy.int32(7156)
   if (_0=="errCbfInvalidNumDcoord"):
    return numpy.int32(7157)
   if (_0=="errCbfExpectedAKeyword"):
    return numpy.int32(7158)
   if (_0=="errCbfInvalidNumPsdcon"):
    return numpy.int32(7200)
   if (_0=="errCbfDuplicatePsdcon"):
    return numpy.int32(7201)
   if (_0=="errCbfInvalidDimensionOfPsdcon"):
    return numpy.int32(7202)
   if (_0=="errCbfInvalidPsdconIndex"):
    return numpy.int32(7203)
   if (_0=="errCbfInvalidPsdconVariableIndex"):
    return numpy.int32(7204)
   if (_0=="errCbfInvalidPsdconBlockIndex"):
    return numpy.int32(7205)
   if (_0=="errCbfUnsupportedChange"):
    return numpy.int32(7210)
   if (_0=="errMioInvalidRootOptimizer"):
    return numpy.int32(7700)
   if (_0=="errMioInvalidNodeOptimizer"):
    return numpy.int32(7701)
   if (_0=="errMpsWriteCplexInvalidConeType"):
    return numpy.int32(7750)
   if (_0=="errToconicConstrQNotPsd"):
    return numpy.int32(7800)
   if (_0=="errToconicConstraintFx"):
    return numpy.int32(7801)
   if (_0=="errToconicConstraintRa"):
    return numpy.int32(7802)
   if (_0=="errToconicConstrNotConic"):
    return numpy.int32(7803)
   if (_0=="errToconicObjectiveNotPsd"):
    return numpy.int32(7804)
   if (_0=="errServerConnect"):
    return numpy.int32(8000)
   if (_0=="errServerProtocol"):
    return numpy.int32(8001)
   if (_0=="errServerStatus"):
    return numpy.int32(8002)
   if (_0=="errServerToken"):
    return numpy.int32(8003)
   if (_0=="errServerAddress"):
    return numpy.int32(8004)
   if (_0=="errServerCertificate"):
    return numpy.int32(8005)
   if (_0=="errServerTlsClient"):
    return numpy.int32(8006)
   if (_0=="errServerAccessToken"):
    return numpy.int32(8007)
   if (_0=="errServerProblemSize"):
    return numpy.int32(8008)
   if (_0=="errDuplicateIndexInASparseMatrix"):
    return numpy.int32(20050)
   if (_0=="errDuplicateIndexInAfeidxList"):
    return numpy.int32(20060)
   if (_0=="errDuplicateFij"):
    return numpy.int32(20100)
   if (_0=="errInvalidFij"):
    return numpy.int32(20101)
   if (_0=="errHugeFij"):
    return numpy.int32(20102)
   if (_0=="errInvalidG"):
    return numpy.int32(20103)
   if (_0=="errInvalidB"):
    return numpy.int32(20150)
   if (_0=="errDomainInvalidIndex"):
    return numpy.int32(20400)
   if (_0=="errDomainDimension"):
    return numpy.int32(20401)
   if (_0=="errDomainDimensionPsd"):
    return numpy.int32(20402)
   if (_0=="errNotPowerDomain"):
    return numpy.int32(20403)
   if (_0=="errDomainPowerInvalidAlpha"):
    return numpy.int32(20404)
   if (_0=="errDomainPowerNegativeAlpha"):
    return numpy.int32(20405)
   if (_0=="errDomainPowerNleft"):
    return numpy.int32(20406)
   if (_0=="errAfeInvalidIndex"):
    return numpy.int32(20500)
   if (_0=="errAccInvalidIndex"):
    return numpy.int32(20600)
   if (_0=="errAccInvalidEntryIndex"):
    return numpy.int32(20601)
   if (_0=="errAccAfeDomainMismatch"):
    return numpy.int32(20602)
   if (_0=="errDjcInvalidIndex"):
    return numpy.int32(20700)
   if (_0=="errDjcUnsupportedDomainType"):
    return numpy.int32(20701)
   if (_0=="errDjcAfeDomainMismatch"):
    return numpy.int32(20702)
   if (_0=="errDjcInvalidTermSize"):
    return numpy.int32(20703)
   if (_0=="errDjcDomainTermsizeMismatch"):
    return numpy.int32(20704)
   if (_0=="errDjcTotalNumTermsMismatch"):
    return numpy.int32(20705)
   if (_0=="errUndefSolution"):
    return numpy.int32(22000)
   if (_0=="errNoDoty"):
    return numpy.int32(22010)
   if (_0=="trmMaxIterations"):
    return numpy.int32(100000)
   if (_0=="trmMaxTime"):
    return numpy.int32(100001)
   if (_0=="trmObjectiveRange"):
    return numpy.int32(100002)
   if (_0=="trmMioNumRelaxs"):
    return numpy.int32(100008)
   if (_0=="trmMioNumBranches"):
    return numpy.int32(100009)
   if (_0=="trmNumMaxNumIntSolutions"):
    return numpy.int32(100015)
   if (_0=="trmStall"):
    return numpy.int32(100006)
   if (_0=="trmUserCallback"):
    return numpy.int32(100007)
   if (_0=="trmMaxNumSetbacks"):
    return numpy.int32(100020)
   if (_0=="trmNumericalProblem"):
    return numpy.int32(100025)
   if (_0=="trmLostRace"):
    return numpy.int32(100027)
   if (_0=="trmInternal"):
    return numpy.int32(100030)
   if (_0=="trmInternalStop"):
    return numpy.int32(100031)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1xmlwriteroutputtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1xmlwriteroutputtype_1value_S(_0)
  @staticmethod
  def __string_1to_1xmlwriteroutputtype_1value_S(_0):
   if (_0=="row"):
    return numpy.int32(0)
   if (_0=="col"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1prosta_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1prosta_1value_S(_0)
  @staticmethod
  def __string_1to_1prosta_1value_S(_0):
   if (_0=="unknown"):
    return numpy.int32(0)
   if (_0=="primAndDualFeas"):
    return numpy.int32(1)
   if (_0=="primFeas"):
    return numpy.int32(2)
   if (_0=="dualFeas"):
    return numpy.int32(3)
   if (_0=="primInfeas"):
    return numpy.int32(4)
   if (_0=="dualInfeas"):
    return numpy.int32(5)
   if (_0=="primAndDualInfeas"):
    return numpy.int32(6)
   if (_0=="illPosed"):
    return numpy.int32(7)
   if (_0=="primInfeasOrUnbounded"):
    return numpy.int32(8)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1problemtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1problemtype_1value_S(_0)
  @staticmethod
  def __string_1to_1problemtype_1value_S(_0):
   if (_0=="lo"):
    return numpy.int32(0)
   if (_0=="qo"):
    return numpy.int32(1)
   if (_0=="qcqo"):
    return numpy.int32(2)
   if (_0=="conic"):
    return numpy.int32(3)
   if (_0=="mixed"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1problemitem_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1problemitem_1value_S(_0)
  @staticmethod
  def __string_1to_1problemitem_1value_S(_0):
   if (_0=="var"):
    return numpy.int32(0)
   if (_0=="con"):
    return numpy.int32(1)
   if (_0=="cone"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1parametertype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1parametertype_1value_S(_0)
  @staticmethod
  def __string_1to_1parametertype_1value_S(_0):
   if (_0=="invalidType"):
    return numpy.int32(0)
   if (_0=="douType"):
    return numpy.int32(1)
   if (_0=="intType"):
    return numpy.int32(2)
   if (_0=="strType"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1presolvemode_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1presolvemode_1value_S(_0)
  @staticmethod
  def __string_1to_1presolvemode_1value_S(_0):
   if (_0=="off"):
    return numpy.int32(0)
   if (_0=="on"):
    return numpy.int32(1)
   if (_0=="free"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1orderingtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1orderingtype_1value_S(_0)
  @staticmethod
  def __string_1to_1orderingtype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="appminloc"):
    return numpy.int32(1)
   if (_0=="experimental"):
    return numpy.int32(2)
   if (_0=="tryGraphpar"):
    return numpy.int32(3)
   if (_0=="forceGraphpar"):
    return numpy.int32(4)
   if (_0=="none"):
    return numpy.int32(5)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1optimizertype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1optimizertype_1value_S(_0)
  @staticmethod
  def __string_1to_1optimizertype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(2)
   if (_0=="intpnt"):
    return numpy.int32(4)
   if (_0=="conic"):
    return numpy.int32(0)
   if (_0=="primalSimplex"):
    return numpy.int32(6)
   if (_0=="dualSimplex"):
    return numpy.int32(1)
   if (_0=="freeSimplex"):
    return numpy.int32(3)
   if (_0=="mixedInt"):
    return numpy.int32(5)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1onoffkey_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1onoffkey_1value_S(_0)
  @staticmethod
  def __string_1to_1onoffkey_1value_S(_0):
   if (_0=="on"):
    return numpy.int32(1)
   if (_0=="off"):
    return numpy.int32(0)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1objsense_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1objsense_1value_S(_0)
  @staticmethod
  def __string_1to_1objsense_1value_S(_0):
   if (_0=="minimize"):
    return numpy.int32(0)
   if (_0=="maximize"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1mpsformat_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1mpsformat_1value_S(_0)
  @staticmethod
  def __string_1to_1mpsformat_1value_S(_0):
   if (_0=="strict"):
    return numpy.int32(0)
   if (_0=="relaxed"):
    return numpy.int32(1)
   if (_0=="free"):
    return numpy.int32(2)
   if (_0=="cplex"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1miovarseltype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1miovarseltype_1value_S(_0)
  @staticmethod
  def __string_1to_1miovarseltype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="pseudocost"):
    return numpy.int32(1)
   if (_0=="strong"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1mionodeseltype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1mionodeseltype_1value_S(_0)
  @staticmethod
  def __string_1to_1mionodeseltype_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="first"):
    return numpy.int32(1)
   if (_0=="best"):
    return numpy.int32(2)
   if (_0=="pseudo"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1miomode_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1miomode_1value_S(_0)
  @staticmethod
  def __string_1to_1miomode_1value_S(_0):
   if (_0=="ignored"):
    return numpy.int32(0)
   if (_0=="satisfied"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1miocontsoltype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1miocontsoltype_1value_S(_0)
  @staticmethod
  def __string_1to_1miocontsoltype_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="root"):
    return numpy.int32(1)
   if (_0=="itg"):
    return numpy.int32(2)
   if (_0=="itgRel"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1miodatapermmethod_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1miodatapermmethod_1value_S(_0)
  @staticmethod
  def __string_1to_1miodatapermmethod_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="cyclicShift"):
    return numpy.int32(1)
   if (_0=="random"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1miqcqoreformmethod_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1miqcqoreformmethod_1value_S(_0)
  @staticmethod
  def __string_1to_1miqcqoreformmethod_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="none"):
    return numpy.int32(1)
   if (_0=="linearization"):
    return numpy.int32(2)
   if (_0=="eigenValMethod"):
    return numpy.int32(3)
   if (_0=="diagSdp"):
    return numpy.int32(4)
   if (_0=="relaxSdp"):
    return numpy.int32(5)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1branchdir_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1branchdir_1value_S(_0)
  @staticmethod
  def __string_1to_1branchdir_1value_S(_0):
   if (_0=="free"):
    return numpy.int32(0)
   if (_0=="up"):
    return numpy.int32(1)
   if (_0=="down"):
    return numpy.int32(2)
   if (_0=="near"):
    return numpy.int32(3)
   if (_0=="far"):
    return numpy.int32(4)
   if (_0=="rootLp"):
    return numpy.int32(5)
   if (_0=="guided"):
    return numpy.int32(6)
   if (_0=="pseudocost"):
    return numpy.int32(7)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1iparam_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1iparam_1value_S(_0)
  @staticmethod
  def __string_1to_1iparam_1value_S(_0):
   if (_0=="autoUpdateSolInfo"):
    return numpy.int32(3)
   if (_0=="removeUnusedSolutions"):
    return numpy.int32(130)
   if (_0=="intpntHotstart"):
    return numpy.int32(17)
   if (_0=="intpntPurify"):
    return numpy.int32(24)
   if (_0=="numThreads"):
    return numpy.int32(97)
   if (_0=="timingLevel"):
    return numpy.int32(165)
   if (_0=="mtSpincount"):
    return numpy.int32(95)
   if (_0=="maxNumWarnings"):
    return numpy.int32(57)
   if (_0=="optimizer"):
    return numpy.int32(107)
   if (_0=="biMaxIterations"):
    return numpy.int32(8)
   if (_0=="licenseTrhExpiryWrn"):
    return numpy.int32(32)
   if (_0=="logIncludeSummary"):
    return numpy.int32(42)
   if (_0=="logCutSecondOpt"):
    return numpy.int32(38)
   if (_0=="logAnaPro"):
    return numpy.int32(35)
   if (_0=="logResponse"):
    return numpy.int32(50)
   if (_0=="logLocalInfo"):
    return numpy.int32(45)
   if (_0=="logBi"):
    return numpy.int32(36)
   if (_0=="logBiFreq"):
    return numpy.int32(37)
   if (_0=="biCleanOptimizer"):
    return numpy.int32(5)
   if (_0=="intpntMaxNumRefinementSteps"):
    return numpy.int32(20)
   if (_0=="intpntStartingPoint"):
    return numpy.int32(28)
   if (_0=="intpntDiffStep"):
    return numpy.int32(16)
   if (_0=="intpntScaling"):
    return numpy.int32(26)
   if (_0=="intpntSolveForm"):
    return numpy.int32(27)
   if (_0=="logIntpnt"):
    return numpy.int32(44)
   if (_0=="intpntMaxIterations"):
    return numpy.int32(18)
   if (_0=="intpntOffColTrh"):
    return numpy.int32(21)
   if (_0=="intpntOrderMethod"):
    return numpy.int32(23)
   if (_0=="intpntOrderGpNumSeeds"):
    return numpy.int32(22)
   if (_0=="intpntBasis"):
    return numpy.int32(15)
   if (_0=="biIgnoreMaxIter"):
    return numpy.int32(6)
   if (_0=="biIgnoreNumError"):
    return numpy.int32(7)
   if (_0=="intpntMaxNumCor"):
    return numpy.int32(19)
   if (_0=="presolveUse"):
    return numpy.int32(119)
   if (_0=="presolveLevel"):
    return numpy.int32(112)
   if (_0=="logPresolve"):
    return numpy.int32(49)
   if (_0=="presolveLindepUse"):
    return numpy.int32(116)
   if (_0=="presolveLindepNew"):
    return numpy.int32(114)
   if (_0=="presolveMaxNumPass"):
    return numpy.int32(117)
   if (_0=="presolveEliminatorMaxNumTries"):
    return numpy.int32(111)
   if (_0=="presolveEliminatorMaxFill"):
    return numpy.int32(110)
   if (_0=="presolveMaxNumReductions"):
    return numpy.int32(118)
   if (_0=="simDetectPwl"):
    return numpy.int32(136)
   if (_0=="simStabilityPriority"):
    return numpy.int32(158)
   if (_0=="simPrimalCrash"):
    return numpy.int32(147)
   if (_0=="logSim"):
    return numpy.int32(53)
   if (_0=="logSimMinor"):
    return numpy.int32(55)
   if (_0=="logSimFreq"):
    return numpy.int32(54)
   if (_0=="simPrimalRestrictSelection"):
    return numpy.int32(149)
   if (_0=="simPrimalSelection"):
    return numpy.int32(150)
   if (_0=="simDualRestrictSelection"):
    return numpy.int32(139)
   if (_0=="simDualSelection"):
    return numpy.int32(140)
   if (_0=="simMaxIterations"):
    return numpy.int32(144)
   if (_0=="simHotstartLu"):
    return numpy.int32(143)
   if (_0=="simRefactorFreq"):
    return numpy.int32(151)
   if (_0=="simSeed"):
    return numpy.int32(156)
   if (_0=="mioMode"):
    return numpy.int32(79)
   if (_0=="logMio"):
    return numpy.int32(46)
   if (_0=="logMioFreq"):
    return numpy.int32(47)
   if (_0=="mioMaxNumRelaxs"):
    return numpy.int32(73)
   if (_0=="mioMaxNumBranches"):
    return numpy.int32(72)
   if (_0=="mioMaxNumRestarts"):
    return numpy.int32(74)
   if (_0=="mioMaxNumRootCutRounds"):
    return numpy.int32(75)
   if (_0=="mioMaxNumSolutions"):
    return numpy.int32(76)
   if (_0=="mioNodeSelection"):
    return numpy.int32(81)
   if (_0=="mioVarSelection"):
    return numpy.int32(93)
   if (_0=="mioMinRel"):
    return numpy.int32(78)
   if (_0=="mioHeuristicLevel"):
    return numpy.int32(71)
   if (_0=="mioProbingLevel"):
    return numpy.int32(85)
   if (_0=="mioSymmetryLevel"):
    return numpy.int32(92)
   if (_0=="mioDualRayAnalysisLevel"):
    return numpy.int32(69)
   if (_0=="mioPresolveAggregatorUse"):
    return numpy.int32(84)
   if (_0=="mioNumericalEmphasisLevel"):
    return numpy.int32(82)
   if (_0=="mioMemoryEmphasisLevel"):
    return numpy.int32(77)
   if (_0=="mioCutSelectionLevel"):
    return numpy.int32(67)
   if (_0=="mioVbDetectionLevel"):
    return numpy.int32(94)
   if (_0=="mioBranchDir"):
    return numpy.int32(58)
   if (_0=="mioRootOptimizer"):
    return numpy.int32(89)
   if (_0=="mioNodeOptimizer"):
    return numpy.int32(80)
   if (_0=="mioPerspectiveReformulate"):
    return numpy.int32(83)
   if (_0=="mioPropagateObjectiveConstraint"):
    return numpy.int32(86)
   if (_0=="mioSeed"):
    return numpy.int32(91)
   if (_0=="mioConicOuterApproximation"):
    return numpy.int32(59)
   if (_0=="mioQcqoReformulationMethod"):
    return numpy.int32(87)
   if (_0=="mioDataPermutationMethod"):
    return numpy.int32(68)
   if (_0=="readKeepFreeCon"):
    return numpy.int32(125)
   if (_0=="readMpsFormat"):
    return numpy.int32(126)
   if (_0=="writeMpsFormat"):
    return numpy.int32(181)
   if (_0=="readMpsWidth"):
    return numpy.int32(127)
   if (_0=="readDebug"):
    return numpy.int32(124)
   if (_0=="writeDataParam"):
    return numpy.int32(170)
   if (_0=="writeFreeCon"):
    return numpy.int32(171)
   if (_0=="writeGenericNames"):
    return numpy.int32(172)
   if (_0=="writeGenericNamesIo"):
    return numpy.int32(173)
   if (_0=="writeCompression"):
    return numpy.int32(169)
   if (_0=="writeMpsInt"):
    return numpy.int32(182)
   if (_0=="writeLpLineWidth"):
    return numpy.int32(180)
   if (_0=="writeLpFullObj"):
    return numpy.int32(179)
   if (_0=="writeJsonIndentation"):
    return numpy.int32(178)
   if (_0=="writeSolIgnoreInvalidNames"):
    return numpy.int32(186)
   if (_0=="writeSolHead"):
    return numpy.int32(185)
   if (_0=="writeSolConstraints"):
    return numpy.int32(184)
   if (_0=="writeSolVariables"):
    return numpy.int32(187)
   if (_0=="writeSolBarvariables"):
    return numpy.int32(183)
   if (_0=="writeBasHead"):
    return numpy.int32(167)
   if (_0=="writeBasConstraints"):
    return numpy.int32(166)
   if (_0=="writeBasVariables"):
    return numpy.int32(168)
   if (_0=="writeIntHead"):
    return numpy.int32(176)
   if (_0=="writeIntConstraints"):
    return numpy.int32(175)
   if (_0=="writeIntVariables"):
    return numpy.int32(177)
   if (_0=="solReadNameWidth"):
    return numpy.int32(162)
   if (_0=="solReadWidth"):
    return numpy.int32(163)
   if (_0=="infeasReportAuto"):
    return numpy.int32(13)
   if (_0=="infeasReportLevel"):
    return numpy.int32(14)
   if (_0=="infeasGenericNames"):
    return numpy.int32(11)
   if (_0=="logInfeasAna"):
    return numpy.int32(43)
   if (_0=="licenseWait"):
    return numpy.int32(33)
   if (_0=="licenseSuppressExpireWrns"):
    return numpy.int32(31)
   if (_0=="licensePauseTime"):
    return numpy.int32(30)
   if (_0=="licenseDebug"):
    return numpy.int32(29)
   if (_0=="solFilterKeepBasic"):
    return numpy.int32(160)
   if (_0=="solFilterKeepRanged"):
    return numpy.int32(161)
   if (_0=="log"):
    return numpy.int32(34)
   if (_0=="logExpand"):
    return numpy.int32(39)
   if (_0=="logFile"):
    return numpy.int32(41)
   if (_0=="logOrder"):
    return numpy.int32(48)
   if (_0=="logSensitivity"):
    return numpy.int32(51)
   if (_0=="logSensitivityOpt"):
    return numpy.int32(52)
   if (_0=="readTaskIgnoreParam"):
    return numpy.int32(128)
   if (_0=="writeTaskIncSol"):
    return numpy.int32(188)
   if (_0=="paramReadCaseName"):
    return numpy.int32(108)
   if (_0=="paramReadIgnError"):
    return numpy.int32(109)
   if (_0=="solutionCallback"):
    return numpy.int32(164)
   if (_0=="simScaling"):
    return numpy.int32(154)
   if (_0=="simScalingMethod"):
    return numpy.int32(155)
   if (_0=="simPrimalPhaseoneMethod"):
    return numpy.int32(148)
   if (_0=="simDualPhaseoneMethod"):
    return numpy.int32(138)
   if (_0=="simMaxNumSetbacks"):
    return numpy.int32(145)
   if (_0=="simHotstart"):
    return numpy.int32(142)
   if (_0=="simBasisFactorUse"):
    return numpy.int32(134)
   if (_0=="simDegen"):
    return numpy.int32(135)
   if (_0=="simReformulation"):
    return numpy.int32(152)
   if (_0=="simExploitDupvec"):
    return numpy.int32(141)
   if (_0=="simSaveLu"):
    return numpy.int32(153)
   if (_0=="simNonSingular"):
    return numpy.int32(146)
   if (_0=="simDualCrash"):
    return numpy.int32(137)
   if (_0=="logStorage"):
    return numpy.int32(56)
   if (_0=="infeasPreferPrimal"):
    return numpy.int32(12)
   if (_0=="opfWriteLineLength"):
    return numpy.int32(100)
   if (_0=="opfWriteHints"):
    return numpy.int32(99)
   if (_0=="opfWriteParameters"):
    return numpy.int32(101)
   if (_0=="opfWriteProblem"):
    return numpy.int32(102)
   if (_0=="opfWriteHeader"):
    return numpy.int32(98)
   if (_0=="opfWriteSolutions"):
    return numpy.int32(106)
   if (_0=="opfWriteSolBas"):
    return numpy.int32(103)
   if (_0=="opfWriteSolItg"):
    return numpy.int32(104)
   if (_0=="opfWriteSolItr"):
    return numpy.int32(105)
   if (_0=="ptfWriteTransform"):
    return numpy.int32(123)
   if (_0=="ptfWriteSolutions"):
    return numpy.int32(122)
   if (_0=="ptfWriteParameters"):
    return numpy.int32(121)
   if (_0=="primalRepairOptimizer"):
    return numpy.int32(120)
   if (_0=="mioRootRepeatPresolveLevel"):
    return numpy.int32(90)
   if (_0=="mioCutCmir"):
    return numpy.int32(62)
   if (_0=="mioCutClique"):
    return numpy.int32(61)
   if (_0=="mioCutImpliedBound"):
    return numpy.int32(64)
   if (_0=="mioCutKnapsackCover"):
    return numpy.int32(65)
   if (_0=="mioCutGmi"):
    return numpy.int32(63)
   if (_0=="mioCutLipro"):
    return numpy.int32(66)
   if (_0=="sensitivityType"):
    return numpy.int32(133)
   if (_0=="mioConstructSol"):
    return numpy.int32(60)
   if (_0=="presolveLindepRelWorkTrh"):
    return numpy.int32(115)
   if (_0=="presolveLindepAbsWorkTrh"):
    return numpy.int32(113)
   if (_0=="sensitivityAll"):
    return numpy.int32(131)
   if (_0=="logFeasRepair"):
    return numpy.int32(40)
   if (_0=="cacheLicense"):
    return numpy.int32(9)
   if (_0=="intpntRegularizationUse"):
    return numpy.int32(25)
   if (_0=="simSolveForm"):
    return numpy.int32(157)
   if (_0=="simSwitchOptimizer"):
    return numpy.int32(159)
   if (_0=="writeIgnoreIncompatibleItems"):
    return numpy.int32(174)
   if (_0=="autoSortABeforeOpt"):
    return numpy.int32(2)
   if (_0=="sensitivityOptimizer"):
    return numpy.int32(132)
   if (_0=="writeXmlMode"):
    return numpy.int32(189)
   if (_0=="anaSolBasis"):
    return numpy.int32(0)
   if (_0=="anaSolPrintViolated"):
    return numpy.int32(1)
   if (_0=="basisSolveUsePlusOne"):
    return numpy.int32(4)
   if (_0=="compressStatfile"):
    return numpy.int32(10)
   if (_0=="mioRinsMaxNodes"):
    return numpy.int32(88)
   if (_0=="mioFeaspumpLevel"):
    return numpy.int32(70)
   if (_0=="ng"):
    return numpy.int32(96)
   if (_0=="remoteUseCompression"):
    return numpy.int32(129)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1iomode_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1iomode_1value_S(_0)
  @staticmethod
  def __string_1to_1iomode_1value_S(_0):
   if (_0=="read"):
    return numpy.int32(0)
   if (_0=="write"):
    return numpy.int32(1)
   if (_0=="readwrite"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1internal_1iinf_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1internal_1iinf_1value_S(_0)
  @staticmethod
  def __string_1to_1internal_1iinf_1value_S(_0):
   if (_0=="versionMajor"):
    return numpy.int32(124)
   if (_0=="versionMinor"):
    return numpy.int32(125)
   if (_0=="versionRevision"):
    return numpy.int32(126)
   if (_0=="presolveLindepWork"):
    return numpy.int32(68)
   if (_0=="presolveLindepPivots"):
    return numpy.int32(66)
   if (_0=="presolveLindepSkipped"):
    return numpy.int32(67)
   if (_0=="presolveNumPrimalLinDepAttempts"):
    return numpy.int32(74)
   if (_0=="presolveNumPrimalLinDepSuccessAttempts"):
    return numpy.int32(75)
   if (_0=="presolveNumDualLinDepAttempts"):
    return numpy.int32(70)
   if (_0=="presolveNumDualLinDepSuccessAttempts"):
    return numpy.int32(71)
   if (_0=="presolveOutofspace"):
    return numpy.int32(93)
   if (_0=="optObjectiveSense"):
    return numpy.int32(38)
   if (_0=="optimizer"):
    return numpy.int32(39)
   if (_0=="intpntFirRefIter"):
    return numpy.int32(17)
   if (_0=="intpntNumRefSteps"):
    return numpy.int32(22)
   if (_0=="intpntFactorSchurNumDup"):
    return numpy.int32(15)
   if (_0=="intpntFactorSchurNumBlk"):
    return numpy.int32(14)
   if (_0=="intpntFactorSchurMinBlkDim"):
    return numpy.int32(13)
   if (_0=="intpntFactorSchurMaxBlkDim"):
    return numpy.int32(12)
   if (_0=="intpntFactorSchurNumSingular"):
    return numpy.int32(16)
   if (_0=="intpntFactorDim"):
    return numpy.int32(2)
   if (_0=="intpntFactorLDim"):
    return numpy.int32(3)
   if (_0=="intpntFactorOrderMlLNumDense"):
    return numpy.int32(11)
   if (_0=="intpntFactorOrderMlLMaxHeight"):
    return numpy.int32(10)
   if (_0=="intpntFactorOrderGpLMaxHeight"):
    return numpy.int32(9)
   if (_0=="intpntFactorNumDenseA"):
    return numpy.int32(5)
   if (_0=="intpntFactorNumDenseADup"):
    return numpy.int32(6)
   if (_0=="intpntFactorNumDenseW"):
    return numpy.int32(7)
   if (_0=="intpntNumcon"):
    return numpy.int32(29)
   if (_0=="intpntNumvar"):
    return numpy.int32(36)
   if (_0=="intpntNumbarvar"):
    return numpy.int32(23)
   if (_0=="intpntNumblo"):
    return numpy.int32(26)
   if (_0=="intpntNumbup"):
    return numpy.int32(28)
   if (_0=="intpntNumbfr"):
    return numpy.int32(24)
   if (_0=="intpntNumbfx"):
    return numpy.int32(25)
   if (_0=="intpntNumcone"):
    return numpy.int32(30)
   if (_0=="intpntNumconevar"):
    return numpy.int32(31)
   if (_0=="intpntNumbndcone"):
    return numpy.int32(27)
   if (_0=="intpntNumrqcones"):
    return numpy.int32(35)
   if (_0=="intpntNumqcones"):
    return numpy.int32(34)
   if (_0=="intpntNumpexpcones"):
    return numpy.int32(32)
   if (_0=="intpntNumppowcones"):
    return numpy.int32(33)
   if (_0=="intpntMinconedim"):
    return numpy.int32(21)
   if (_0=="intpntMaxconedim"):
    return numpy.int32(20)
   if (_0=="intpntMaxbarvardim"):
    return numpy.int32(19)
   if (_0=="presolveNumcon"):
    return numpy.int32(82)
   if (_0=="presolveNumcfr"):
    return numpy.int32(78)
   if (_0=="presolveNumcfx"):
    return numpy.int32(79)
   if (_0=="presolveNumclo"):
    return numpy.int32(80)
   if (_0=="presolveNumcup"):
    return numpy.int32(84)
   if (_0=="presolveNumcra"):
    return numpy.int32(83)
   if (_0=="presolveNumcnl"):
    return numpy.int32(81)
   if (_0=="presolveNumvar"):
    return numpy.int32(86)
   if (_0=="presolveNumvfr"):
    return numpy.int32(87)
   if (_0=="presolveNumvfx"):
    return numpy.int32(88)
   if (_0=="presolveNumvlo"):
    return numpy.int32(89)
   if (_0=="presolveNumvup"):
    return numpy.int32(92)
   if (_0=="presolveNumvra"):
    return numpy.int32(91)
   if (_0=="presolveNumvnl"):
    return numpy.int32(90)
   if (_0=="presolveNumnza"):
    return numpy.int32(85)
   if (_0=="presolveFnumcon"):
    return numpy.int32(49)
   if (_0=="presolveFnumcfr"):
    return numpy.int32(45)
   if (_0=="presolveFnumcfx"):
    return numpy.int32(46)
   if (_0=="presolveFnumclo"):
    return numpy.int32(47)
   if (_0=="presolveFnumcup"):
    return numpy.int32(51)
   if (_0=="presolveFnumcra"):
    return numpy.int32(50)
   if (_0=="presolveFnumcnl"):
    return numpy.int32(48)
   if (_0=="presolveFnumvar"):
    return numpy.int32(53)
   if (_0=="presolveFnumvfr"):
    return numpy.int32(54)
   if (_0=="presolveFnumvfx"):
    return numpy.int32(55)
   if (_0=="presolveFnumvlo"):
    return numpy.int32(56)
   if (_0=="presolveFnumvup"):
    return numpy.int32(59)
   if (_0=="presolveFnumvra"):
    return numpy.int32(58)
   if (_0=="presolveFnumvnl"):
    return numpy.int32(57)
   if (_0=="presolveFnumnza"):
    return numpy.int32(52)
   if (_0=="presolveNumElimns"):
    return numpy.int32(73)
   if (_0=="presolveEliNumTries"):
    return numpy.int32(44)
   if (_0=="presolveEliNumFreedCon"):
    return numpy.int32(42)
   if (_0=="presolveEliNumFreedConTotal"):
    return numpy.int32(43)
   if (_0=="presolveLindepNumTries"):
    return numpy.int32(64)
   if (_0=="presolveNumPrimalLinDeps"):
    return numpy.int32(76)
   if (_0=="presolveNumDualLinDeps"):
    return numpy.int32(72)
   if (_0=="presolveForceConNum"):
    return numpy.int32(60)
   if (_0=="presolveForceConNumVar"):
    return numpy.int32(61)
   if (_0=="presolveForceVarNum"):
    return numpy.int32(62)
   if (_0=="presolveForceVarNumCon"):
    return numpy.int32(63)
   if (_0=="presolvePivOnConNum"):
    return numpy.int32(94)
   if (_0=="presolveNumDouBlocks"):
    return numpy.int32(69)
   if (_0=="presolveNumSimplifiedDouBlocks"):
    return numpy.int32(77)
   if (_0=="presolveSizeSimplifiedDouBlocks"):
    return numpy.int32(95)
   if (_0=="presolveAccNumDupVarInNrmtwo"):
    return numpy.int32(41)
   if (_0=="presolveAccNumDoubletonChainInNrmtwo"):
    return numpy.int32(40)
   if (_0=="intpntFactorNum"):
    return numpy.int32(4)
   if (_0=="intpntFactorNumSolve"):
    return numpy.int32(8)
   if (_0=="simplexPrimalHotstartNumBasics"):
    return numpy.int32(114)
   if (_0=="simplexPrimalHotstartBasisRank"):
    return numpy.int32(113)
   if (_0=="simplexDualHotstartNumBasics"):
    return numpy.int32(109)
   if (_0=="simplexDualHotstartBasisRank"):
    return numpy.int32(108)
   if (_0=="intpntGpOrderEmployed"):
    return numpy.int32(18)
   if (_0=="numLuFactorizations"):
    return numpy.int32(37)
   if (_0=="simplexPwlNumPotential"):
    return numpy.int32(120)
   if (_0=="simplexPwlNumUsed"):
    return numpy.int32(121)
   if (_0=="simplexPwlNumVariables"):
    return numpy.int32(122)
   if (_0=="simplexPwlMinNumBreakpoints"):
    return numpy.int32(119)
   if (_0=="simplexPwlMaxNumBreakpoints"):
    return numpy.int32(117)
   if (_0=="simplexPwlMaxNz"):
    return numpy.int32(118)
   if (_0=="simplexPwlNzReduction"):
    return numpy.int32(123)
   if (_0=="simplexPrimalNumSetbacks"):
    return numpy.int32(115)
   if (_0=="simplexDualNumSetbacks"):
    return numpy.int32(110)
   if (_0=="simplexPrimalFeasNa"):
    return numpy.int32(112)
   if (_0=="simplexDualFeasNa"):
    return numpy.int32(107)
   if (_0=="simplexPrimalObjNa"):
    return numpy.int32(116)
   if (_0=="simplexDualObjNa"):
    return numpy.int32(111)
   if (_0=="simNumPrimalBoundswaps"):
    return numpy.int32(106)
   if (_0=="simNumDualBoundswaps"):
    return numpy.int32(104)
   if (_0=="simNumDualIntegerPivots"):
    return numpy.int32(105)
   if (_0=="purifyNumRow"):
    return numpy.int32(101)
   if (_0=="purifyPNumNullRow"):
    return numpy.int32(102)
   if (_0=="purifyPNumSingletonCol"):
    return numpy.int32(103)
   if (_0=="purifyCrashL11NumRow"):
    return numpy.int32(96)
   if (_0=="purifyCrashL22NumRow"):
    return numpy.int32(97)
   if (_0=="purifyCrashL33NumRow"):
    return numpy.int32(99)
   if (_0=="purifyCrashL33NumCol"):
    return numpy.int32(98)
   if (_0=="purifyCrashSingularity"):
    return numpy.int32(100)
   if (_0=="biPrimalInfo"):
    return numpy.int32(1)
   if (_0=="biDualInfo"):
    return numpy.int32(0)
   if (_0=="presolveLindepNumTruncTries"):
    return numpy.int32(65)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1internal_1dinf_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1internal_1dinf_1value_S(_0)
  @staticmethod
  def __string_1to_1internal_1dinf_1value_S(_0):
   if (_0=="sensitivityPrimalTime"):
    return numpy.int32(92)
   if (_0=="sensitivityDualTime"):
    return numpy.int32(91)
   if (_0=="intpntGfeas"):
    return numpy.int32(67)
   if (_0=="intpntMu"):
    return numpy.int32(74)
   if (_0=="intpntInitIterTime"):
    return numpy.int32(69)
   if (_0=="intpntFactorTime"):
    return numpy.int32(65)
   if (_0=="intpntInitSearchTime"):
    return numpy.int32(70)
   if (_0=="intpntFormSearchTime"):
    return numpy.int32(66)
   if (_0=="intpntCorrectorTime"):
    return numpy.int32(12)
   if (_0=="intpntUpdateTime"):
    return numpy.int32(79)
   if (_0=="intpntFactorSetupTime"):
    return numpy.int32(58)
   if (_0=="intpntFactorSchurTime"):
    return numpy.int32(51)
   if (_0=="intpntFactorHatSchurTime"):
    return numpy.int32(48)
   if (_0=="intpntFactorHatSchurPushTime"):
    return numpy.int32(47)
   if (_0=="intpntFactorHatSchurPullTime"):
    return numpy.int32(45)
   if (_0=="intpntFactorBarSchurTime"):
    return numpy.int32(17)
   if (_0=="intpntFactorBarSchurDeTabTime"):
    return numpy.int32(13)
   if (_0=="intpntFactorBarSchurSpTabTime"):
    return numpy.int32(16)
   if (_0=="intpntFactorSparseLTime"):
    return numpy.int32(62)
   if (_0=="intpntFactorSparseLUpdateLastTime"):
    return numpy.int32(64)
   if (_0=="intpntFactorSparseLFactorLastTime"):
    return numpy.int32(60)
   if (_0=="intpntFactorDenseLTime"):
    return numpy.int32(40)
   if (_0=="intpntFactorDenseTime"):
    return numpy.int32(41)
   if (_0=="intpntFactorDenseDotaTime"):
    return numpy.int32(28)
   if (_0=="intpntFactorDenseDotaSolveTime"):
    return numpy.int32(27)
   if (_0=="intpntFactorDenseDotatdotaTime"):
    return numpy.int32(30)
   if (_0=="intpntFactorDenseDotlInitTime"):
    return numpy.int32(37)
   if (_0=="intpntFactorDenseDotlFactorTime"):
    return numpy.int32(36)
   if (_0=="intpntFactorBarSchurUpdateTime"):
    return numpy.int32(25)
   if (_0=="intpntFactorBarSchurUpdateCompressedETime"):
    return numpy.int32(18)
   if (_0=="intpntFactorBarSchurUpdateSparseTime"):
    return numpy.int32(24)
   if (_0=="intpntFactorBarSchurUpdateSparseSyr2kTime"):
    return numpy.int32(23)
   if (_0=="intpntFactorBarSchurUpdateSparseDotTime"):
    return numpy.int32(22)
   if (_0=="intpntFactorBarSchurUpdateDenseTime"):
    return numpy.int32(21)
   if (_0=="intpntFactorBarSchurUpdateDenseSyr2kTime"):
    return numpy.int32(20)
   if (_0=="intpntFactorBarSchurUpdateDenseDotTime"):
    return numpy.int32(19)
   if (_0=="intpntFactorBarSchurPushTime"):
    return numpy.int32(15)
   if (_0=="intpntIterNonCorrectorFlops"):
    return numpy.int32(71)
   if (_0=="intpntIterOneCorrectorFlops"):
    return numpy.int32(72)
   if (_0=="intpntSolveTime"):
    return numpy.int32(78)
   if (_0=="intpntIterRefTime"):
    return numpy.int32(73)
   if (_0=="intpntSolveSparseLTime"):
    return numpy.int32(77)
   if (_0=="intpntSolveDenseLTime"):
    return numpy.int32(76)
   if (_0=="intpntFactorSetupFlops"):
    return numpy.int32(53)
   if (_0=="intpntFactorSetupHatSchurFlops"):
    return numpy.int32(56)
   if (_0=="intpntFactorSchurFlops"):
    return numpy.int32(50)
   if (_0=="intpntFactorHatSchurFlops"):
    return numpy.int32(43)
   if (_0=="intpntFactorHatSchurPushFlops"):
    return numpy.int32(46)
   if (_0=="intpntFactorHatSchurPullFlops"):
    return numpy.int32(44)
   if (_0=="intpntFactorBarSchurFlops"):
    return numpy.int32(14)
   if (_0=="intpntFactorSparseLFlops"):
    return numpy.int32(61)
   if (_0=="intpntFactorMlOrderSparseLFlops"):
    return numpy.int32(49)
   if (_0=="intpntFactorGpOrderSparseLFlops"):
    return numpy.int32(42)
   if (_0=="intpntFactorSparseLUpdateLastFlops"):
    return numpy.int32(63)
   if (_0=="intpntFactorSparseLFactorLastFlops"):
    return numpy.int32(59)
   if (_0=="intpntFactorDenseLFlops"):
    return numpy.int32(39)
   if (_0=="intpntFactorDenseFlops"):
    return numpy.int32(38)
   if (_0=="intpntFactorDenseDotaFlops"):
    return numpy.int32(26)
   if (_0=="intpntFactorDenseDotatdotaFlops"):
    return numpy.int32(29)
   if (_0=="intpntFactorDenseDotlFactor_initFlops"):
    return numpy.int32(34)
   if (_0=="intpntFactorDenseDotlFactorFlops"):
    return numpy.int32(35)
   if (_0=="intpntFactorDenseDotl11FactorFlops"):
    return numpy.int32(31)
   if (_0=="intpntFactorDenseDotl21FactorFlops"):
    return numpy.int32(32)
   if (_0=="intpntFactorDenseDotl22FactorFlops"):
    return numpy.int32(33)
   if (_0=="presolvePrimalLinDepTime"):
    return numpy.int32(86)
   if (_0=="presolveDualLinDepTime"):
    return numpy.int32(82)
   if (_0=="presolveAcoltTime"):
    return numpy.int32(80)
   if (_0=="presolveSetupTime"):
    return numpy.int32(87)
   if (_0=="presolveCheckproTime"):
    return numpy.int32(81)
   if (_0=="presolveDupconTime"):
    return numpy.int32(83)
   if (_0=="presolveDupvarTime"):
    return numpy.int32(84)
   if (_0=="presolveFinalTime"):
    return numpy.int32(85)
   if (_0=="presolveSubDomvarTime"):
    return numpy.int32(88)
   if (_0=="presolveSubRelaxTime"):
    return numpy.int32(89)
   if (_0=="primalSimplexInftime"):
    return numpy.int32(90)
   if (_0=="dualSimplexInftime"):
    return numpy.int32(11)
   if (_0=="intpntGpOrderSavedFlops"):
    return numpy.int32(68)
   if (_0=="intpntFactorSetupDetectDenseTime"):
    return numpy.int32(52)
   if (_0=="intpntFactorSetupMlOrderTime"):
    return numpy.int32(57)
   if (_0=="intpntFactorSetupGpOrderTime"):
    return numpy.int32(55)
   if (_0=="intpntFactorSetupGpOrderPostTime"):
    return numpy.int32(54)
   if (_0=="biCrashTime"):
    return numpy.int32(1)
   if (_0=="biCrashLuTime"):
    return numpy.int32(0)
   if (_0=="biFactorTime"):
    return numpy.int32(5)
   if (_0=="biFactorWork"):
    return numpy.int32(6)
   if (_0=="biPrimalDone"):
    return numpy.int32(8)
   if (_0=="biDualDone"):
    return numpy.int32(2)
   if (_0=="simplexBasiscondition"):
    return numpy.int32(93)
   if (_0=="simplexPrimalObj"):
    return numpy.int32(97)
   if (_0=="simplexPrimalFeas"):
    return numpy.int32(96)
   if (_0=="simplexDualObj"):
    return numpy.int32(95)
   if (_0=="simplexDualFeas"):
    return numpy.int32(94)
   if (_0=="biInitialBasisCond"):
    return numpy.int32(7)
   if (_0=="biPrimalObj"):
    return numpy.int32(10)
   if (_0=="biDualObj"):
    return numpy.int32(4)
   if (_0=="biPrimalFeas"):
    return numpy.int32(9)
   if (_0=="biDualFeas"):
    return numpy.int32(3)
   if (_0=="intpntPurifyTime"):
    return numpy.int32(75)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1inftype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1inftype_1value_S(_0)
  @staticmethod
  def __string_1to_1inftype_1value_S(_0):
   if (_0=="douType"):
    return numpy.int32(0)
   if (_0=="intType"):
    return numpy.int32(1)
   if (_0=="lintType"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1iinfitem_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1iinfitem_1value_S(_0)
  @staticmethod
  def __string_1to_1iinfitem_1value_S(_0):
   if (_0=="anaProNumCon"):
    return numpy.int32(0)
   if (_0=="anaProNumConLo"):
    return numpy.int32(3)
   if (_0=="anaProNumConUp"):
    return numpy.int32(5)
   if (_0=="anaProNumConRa"):
    return numpy.int32(4)
   if (_0=="anaProNumConEq"):
    return numpy.int32(1)
   if (_0=="anaProNumConFr"):
    return numpy.int32(2)
   if (_0=="anaProNumVar"):
    return numpy.int32(6)
   if (_0=="anaProNumVarLo"):
    return numpy.int32(12)
   if (_0=="anaProNumVarUp"):
    return numpy.int32(14)
   if (_0=="anaProNumVarRa"):
    return numpy.int32(13)
   if (_0=="anaProNumVarEq"):
    return numpy.int32(9)
   if (_0=="anaProNumVarFr"):
    return numpy.int32(10)
   if (_0=="anaProNumVarCont"):
    return numpy.int32(8)
   if (_0=="anaProNumVarBin"):
    return numpy.int32(7)
   if (_0=="anaProNumVarInt"):
    return numpy.int32(11)
   if (_0=="optimizeResponse"):
    return numpy.int32(86)
   if (_0=="presolveNumPrimalPerturbations"):
    return numpy.int32(87)
   if (_0=="intpntIter"):
    return numpy.int32(16)
   if (_0=="intpntFactorDimDense"):
    return numpy.int32(15)
   if (_0=="intpntSolveDual"):
    return numpy.int32(18)
   if (_0=="mioNodeDepth"):
    return numpy.int32(23)
   if (_0=="mioNumvar"):
    return numpy.int32(61)
   if (_0=="mioNumbin"):
    return numpy.int32(45)
   if (_0=="mioNumint"):
    return numpy.int32(55)
   if (_0=="mioNumcont"):
    return numpy.int32(50)
   if (_0=="mioNumcon"):
    return numpy.int32(47)
   if (_0=="mioNumcone"):
    return numpy.int32(48)
   if (_0=="mioNumqcones"):
    return numpy.int32(59)
   if (_0=="mioNumrqcones"):
    return numpy.int32(60)
   if (_0=="mioNumpexpcones"):
    return numpy.int32(57)
   if (_0=="mioNumdexpcones"):
    return numpy.int32(52)
   if (_0=="mioNumppowcones"):
    return numpy.int32(58)
   if (_0=="mioNumdpowcones"):
    return numpy.int32(54)
   if (_0=="mioNumconevar"):
    return numpy.int32(49)
   if (_0=="mioNumbinconevar"):
    return numpy.int32(46)
   if (_0=="mioNumintconevar"):
    return numpy.int32(56)
   if (_0=="mioNumcontconevar"):
    return numpy.int32(51)
   if (_0=="mioNumdjc"):
    return numpy.int32(53)
   if (_0=="mioPresolvedNumvar"):
    return numpy.int32(79)
   if (_0=="mioPresolvedNumbin"):
    return numpy.int32(63)
   if (_0=="mioPresolvedNumint"):
    return numpy.int32(73)
   if (_0=="mioPresolvedNumcont"):
    return numpy.int32(68)
   if (_0=="mioPresolvedNumcon"):
    return numpy.int32(65)
   if (_0=="mioPresolvedNumcone"):
    return numpy.int32(66)
   if (_0=="mioPresolvedNumqcones"):
    return numpy.int32(77)
   if (_0=="mioPresolvedNumrqcones"):
    return numpy.int32(78)
   if (_0=="mioPresolvedNumpexpcones"):
    return numpy.int32(75)
   if (_0=="mioPresolvedNumdexpcones"):
    return numpy.int32(70)
   if (_0=="mioPresolvedNumppowcones"):
    return numpy.int32(76)
   if (_0=="mioPresolvedNumdpowcones"):
    return numpy.int32(72)
   if (_0=="mioPresolvedNumconevar"):
    return numpy.int32(67)
   if (_0=="mioPresolvedNumbinconevar"):
    return numpy.int32(64)
   if (_0=="mioPresolvedNumintconevar"):
    return numpy.int32(74)
   if (_0=="mioPresolvedNumcontconevar"):
    return numpy.int32(69)
   if (_0=="mioPresolvedNumdjc"):
    return numpy.int32(71)
   if (_0=="mioCliqueTableSize"):
    return numpy.int32(20)
   if (_0=="mioConstructSolution"):
    return numpy.int32(21)
   if (_0=="mioInitialFeasibleSolution"):
    return numpy.int32(22)
   if (_0=="mioNumIntSolutions"):
    return numpy.int32(27)
   if (_0=="mioObjBoundDefined"):
    return numpy.int32(62)
   if (_0=="mioNumActiveNodes"):
    return numpy.int32(24)
   if (_0=="mioNumRelax"):
    return numpy.int32(28)
   if (_0=="mioNumSolvedNodes"):
    return numpy.int32(44)
   if (_0=="mioNumBranch"):
    return numpy.int32(26)
   if (_0=="mioNumRestarts"):
    return numpy.int32(30)
   if (_0=="mioNumRootCutRounds"):
    return numpy.int32(31)
   if (_0=="mioNumActiveRootCuts"):
    return numpy.int32(25)
   if (_0=="mioTotalNumSelectedCuts"):
    return numpy.int32(81)
   if (_0=="mioNumSelectedCmirCuts"):
    return numpy.int32(33)
   if (_0=="mioNumSelectedCliqueCuts"):
    return numpy.int32(32)
   if (_0=="mioNumSelectedImpliedBoundCuts"):
    return numpy.int32(35)
   if (_0=="mioNumSelectedKnapsackCoverCuts"):
    return numpy.int32(36)
   if (_0=="mioNumSelectedGomoryCuts"):
    return numpy.int32(34)
   if (_0=="mioNumSelectedLiproCuts"):
    return numpy.int32(37)
   if (_0=="mioTotalNumSeparatedCuts"):
    return numpy.int32(82)
   if (_0=="mioNumSeparatedCmirCuts"):
    return numpy.int32(39)
   if (_0=="mioNumSeparatedCliqueCuts"):
    return numpy.int32(38)
   if (_0=="mioNumSeparatedImpliedBoundCuts"):
    return numpy.int32(41)
   if (_0=="mioNumSeparatedKnapsackCoverCuts"):
    return numpy.int32(42)
   if (_0=="mioNumSeparatedGomoryCuts"):
    return numpy.int32(40)
   if (_0=="mioNumSeparatedLiproCuts"):
    return numpy.int32(43)
   if (_0=="mioNumRepeatedPresolve"):
    return numpy.int32(29)
   if (_0=="mioUserObjCut"):
    return numpy.int32(83)
   if (_0=="mioRelgapSatisfied"):
    return numpy.int32(80)
   if (_0=="mioAbsgapSatisfied"):
    return numpy.int32(19)
   if (_0=="rdProtype"):
    return numpy.int32(96)
   if (_0=="rdNumcon"):
    return numpy.int32(91)
   if (_0=="rdNumvar"):
    return numpy.int32(95)
   if (_0=="rdNumbarvar"):
    return numpy.int32(90)
   if (_0=="rdNumintvar"):
    return numpy.int32(93)
   if (_0=="rdNumq"):
    return numpy.int32(94)
   if (_0=="simDualDegIter"):
    return numpy.int32(97)
   if (_0=="simDualInfIter"):
    return numpy.int32(100)
   if (_0=="simDualHotstartLu"):
    return numpy.int32(99)
   if (_0=="simPrimalIter"):
    return numpy.int32(108)
   if (_0=="simDualIter"):
    return numpy.int32(101)
   if (_0=="intpntNumThreads"):
    return numpy.int32(17)
   if (_0=="simPrimalInfIter"):
    return numpy.int32(107)
   if (_0=="simPrimalDegIter"):
    return numpy.int32(104)
   if (_0=="simPrimalHotstart"):
    return numpy.int32(105)
   if (_0=="simPrimalHotstartLu"):
    return numpy.int32(106)
   if (_0=="simDualHotstart"):
    return numpy.int32(98)
   if (_0=="solItrProsta"):
    return numpy.int32(114)
   if (_0=="solItrSolsta"):
    return numpy.int32(115)
   if (_0=="solBasProsta"):
    return numpy.int32(110)
   if (_0=="solBasSolsta"):
    return numpy.int32(111)
   if (_0=="solItgProsta"):
    return numpy.int32(112)
   if (_0=="solItgSolsta"):
    return numpy.int32(113)
   if (_0=="simNumcon"):
    return numpy.int32(102)
   if (_0=="simNumvar"):
    return numpy.int32(103)
   if (_0=="optNumcon"):
    return numpy.int32(84)
   if (_0=="optNumvar"):
    return numpy.int32(85)
   if (_0=="stoNumARealloc"):
    return numpy.int32(116)
   if (_0=="rdNumcone"):
    return numpy.int32(92)
   if (_0=="simSolveDual"):
    return numpy.int32(109)
   if (_0=="purifyPrimalSuccess"):
    return numpy.int32(89)
   if (_0=="purifyDualSuccess"):
    return numpy.int32(88)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1internal_1liinf_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1internal_1liinf_1value_S(_0)
  @staticmethod
  def __string_1to_1internal_1liinf_1value_S(_0):
   if (_0=="intpntLenbarvar"):
    return numpy.int32(3)
   if (_0=="presolveStackSize"):
    return numpy.int32(4)
   if (_0=="intpntFactorNumNzBefore"):
    return numpy.int32(2)
   if (_0=="intpntFactorNumNzAfter"):
    return numpy.int32(1)
   if (_0=="intpntFactorGpOrderSavedNzs"):
    return numpy.int32(0)
   if (_0=="simplexPrimalIter"):
    return numpy.int32(15)
   if (_0=="simplexDualIter"):
    return numpy.int32(5)
   if (_0=="simplexPrimalNumTicks"):
    return numpy.int32(16)
   if (_0=="simplexDualNumTicks"):
    return numpy.int32(6)
   if (_0=="simplexNumDualIllposedCer"):
    return numpy.int32(10)
   if (_0=="simplexNumCand"):
    return numpy.int32(9)
   if (_0=="simplexNumProgressStall"):
    return numpy.int32(13)
   if (_0=="simplexNumSingularBases"):
    return numpy.int32(14)
   if (_0=="simplexNumFatalFeasibilityLoss"):
    return numpy.int32(11)
   if (_0=="simplexNumFatalGradientStall"):
    return numpy.int32(12)
   if (_0=="simplexLuFactorNumTicks"):
    return numpy.int32(7)
   if (_0=="simplexLuSolveNumTicks"):
    return numpy.int32(8)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1liinfitem_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1liinfitem_1value_S(_0)
  @staticmethod
  def __string_1to_1liinfitem_1value_S(_0):
   if (_0=="anaProScalarizedConstraintMatrixNumRows"):
    return numpy.int32(2)
   if (_0=="anaProScalarizedConstraintMatrixNumColumns"):
    return numpy.int32(0)
   if (_0=="anaProScalarizedConstraintMatrixNumNz"):
    return numpy.int32(1)
   if (_0=="mioAnz"):
    return numpy.int32(10)
   if (_0=="mioPresolvedAnz"):
    return numpy.int32(14)
   if (_0=="mioSimplexIter"):
    return numpy.int32(15)
   if (_0=="mioIntpntIter"):
    return numpy.int32(11)
   if (_0=="mioNumPrimIllposedCer"):
    return numpy.int32(13)
   if (_0=="mioNumDualIllposedCer"):
    return numpy.int32(12)
   if (_0=="biPrimalIter"):
    return numpy.int32(8)
   if (_0=="biDualIter"):
    return numpy.int32(7)
   if (_0=="biCleanPrimalIter"):
    return numpy.int32(6)
   if (_0=="biCleanDualIter"):
    return numpy.int32(4)
   if (_0=="biCleanPrimalDegIter"):
    return numpy.int32(5)
   if (_0=="biCleanDualDegIter"):
    return numpy.int32(3)
   if (_0=="intpntFactorNumNz"):
    return numpy.int32(9)
   if (_0=="rdNumacc"):
    return numpy.int32(16)
   if (_0=="rdNumdjc"):
    return numpy.int32(18)
   if (_0=="rdNumanz"):
    return numpy.int32(17)
   if (_0=="rdNumqnz"):
    return numpy.int32(19)
   if (_0=="simplexIter"):
    return numpy.int32(20)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1dparam_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1dparam_1value_S(_0)
  @staticmethod
  def __string_1to_1dparam_1value_S(_0):
   if (_0=="dataTolCjLarge"):
    return numpy.int32(13)
   if (_0=="dataTolCHuge"):
    return numpy.int32(12)
   if (_0=="dataTolAijLarge"):
    return numpy.int32(9)
   if (_0=="dataTolAijHuge"):
    return numpy.int32(8)
   if (_0=="dataSymMatTol"):
    return numpy.int32(5)
   if (_0=="dataSymMatTolLarge"):
    return numpy.int32(7)
   if (_0=="dataSymMatTolHuge"):
    return numpy.int32(6)
   if (_0=="dataTolBoundInf"):
    return numpy.int32(10)
   if (_0=="dataTolBoundWrn"):
    return numpy.int32(11)
   if (_0=="dataTolQij"):
    return numpy.int32(14)
   if (_0=="dataTolX"):
    return numpy.int32(15)
   if (_0=="semidefiniteTolApprox"):
    return numpy.int32(57)
   if (_0=="optimizerMaxTime"):
    return numpy.int32(49)
   if (_0=="optimizerMaxTicks"):
    return numpy.int32(48)
   if (_0=="lowerObjCut"):
    return numpy.int32(38)
   if (_0=="upperObjCut"):
    return numpy.int32(60)
   if (_0=="upperObjCutFiniteTrh"):
    return numpy.int32(61)
   if (_0=="lowerObjCutFiniteTrh"):
    return numpy.int32(39)
   if (_0=="intpntTolRelGap"):
    return numpy.int32(35)
   if (_0=="intpntTolStepSize"):
    return numpy.int32(37)
   if (_0=="simLuTolRelPiv"):
    return numpy.int32(58)
   if (_0=="intpntTolRelStep"):
    return numpy.int32(36)
   if (_0=="intpntTolPath"):
    return numpy.int32(32)
   if (_0=="intpntTolPfeas"):
    return numpy.int32(33)
   if (_0=="intpntTolDfeas"):
    return numpy.int32(28)
   if (_0=="intpntTolMuRed"):
    return numpy.int32(31)
   if (_0=="intpntTolInfeas"):
    return numpy.int32(30)
   if (_0=="intpntCoTolRelGap"):
    return numpy.int32(21)
   if (_0=="intpntCoTolPfeas"):
    return numpy.int32(20)
   if (_0=="intpntCoTolDfeas"):
    return numpy.int32(16)
   if (_0=="intpntCoTolMuRed"):
    return numpy.int32(18)
   if (_0=="intpntCoTolNearRel"):
    return numpy.int32(19)
   if (_0=="intpntCoTolInfeas"):
    return numpy.int32(17)
   if (_0=="intpntQoTolRelGap"):
    return numpy.int32(27)
   if (_0=="intpntQoTolPfeas"):
    return numpy.int32(26)
   if (_0=="intpntQoTolDfeas"):
    return numpy.int32(22)
   if (_0=="intpntQoTolMuRed"):
    return numpy.int32(24)
   if (_0=="intpntQoTolNearRel"):
    return numpy.int32(25)
   if (_0=="intpntQoTolInfeas"):
    return numpy.int32(23)
   if (_0=="intpntTolPsafe"):
    return numpy.int32(34)
   if (_0=="intpntTolDsafe"):
    return numpy.int32(29)
   if (_0=="mioMaxTime"):
    return numpy.int32(41)
   if (_0=="mioRelGapConst"):
    return numpy.int32(42)
   if (_0=="mioTolRelGap"):
    return numpy.int32(47)
   if (_0=="mioTolAbsGap"):
    return numpy.int32(43)
   if (_0=="mioTolAbsRelaxInt"):
    return numpy.int32(44)
   if (_0=="mioDjcMaxBigm"):
    return numpy.int32(40)
   if (_0=="basisTolX"):
    return numpy.int32(3)
   if (_0=="basisTolS"):
    return numpy.int32(2)
   if (_0=="basisRelTolS"):
    return numpy.int32(1)
   if (_0=="presolveTolX"):
    return numpy.int32(55)
   if (_0=="presolveTolPrimalInfeasPerturbation"):
    return numpy.int32(52)
   if (_0=="presolveTolS"):
    return numpy.int32(54)
   if (_0=="presolveTolAij"):
    return numpy.int32(51)
   if (_0=="presolveTolAbsLindep"):
    return numpy.int32(50)
   if (_0=="presolveTolRelLindep"):
    return numpy.int32(53)
   if (_0=="simplexAbsTolPiv"):
    return numpy.int32(59)
   if (_0=="mioTolFeas"):
    return numpy.int32(45)
   if (_0=="anaSolInfeasTol"):
    return numpy.int32(0)
   if (_0=="checkConvexityRelTol"):
    return numpy.int32(4)
   if (_0=="qcqoReformulateRelDropTol"):
    return numpy.int32(56)
   if (_0=="mioTolRelDualBoundImprovement"):
    return numpy.int32(46)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1feature_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1feature_1value_S(_0)
  @staticmethod
  def __string_1to_1feature_1value_S(_0):
   if (_0=="pts"):
    return numpy.int32(0)
   if (_0=="pton"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1dinfitem_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1dinfitem_1value_S(_0)
  @staticmethod
  def __string_1to_1dinfitem_1value_S(_0):
   if (_0=="anaProScalarizedConstraintMatrixDensity"):
    return numpy.int32(0)
   if (_0=="biTime"):
    return numpy.int32(6)
   if (_0=="biPrimalTime"):
    return numpy.int32(5)
   if (_0=="biDualTime"):
    return numpy.int32(4)
   if (_0=="biCleanTime"):
    return numpy.int32(3)
   if (_0=="biCleanPrimalTime"):
    return numpy.int32(2)
   if (_0=="biCleanDualTime"):
    return numpy.int32(1)
   if (_0=="intpntTime"):
    return numpy.int32(14)
   if (_0=="intpntOrderTime"):
    return numpy.int32(11)
   if (_0=="intpntPrimalObj"):
    return numpy.int32(13)
   if (_0=="intpntDualObj"):
    return numpy.int32(8)
   if (_0=="intpntPrimalFeas"):
    return numpy.int32(12)
   if (_0=="intpntDualFeas"):
    return numpy.int32(7)
   if (_0=="intpntOptStatus"):
    return numpy.int32(10)
   if (_0=="simTime"):
    return numpy.int32(61)
   if (_0=="simPrimalTime"):
    return numpy.int32(60)
   if (_0=="simDualTime"):
    return numpy.int32(57)
   if (_0=="simObj"):
    return numpy.int32(59)
   if (_0=="simFeas"):
    return numpy.int32(58)
   if (_0=="mioTime"):
    return numpy.int32(42)
   if (_0=="mioRootPresolveTime"):
    return numpy.int32(38)
   if (_0=="mioRootOptimizerTime"):
    return numpy.int32(37)
   if (_0=="mioRootTime"):
    return numpy.int32(39)
   if (_0=="toConicTime"):
    return numpy.int32(109)
   if (_0=="mioConstructSolutionObj"):
    return numpy.int32(19)
   if (_0=="mioInitialFeasibleSolutionObj"):
    return numpy.int32(25)
   if (_0=="mioObjInt"):
    return numpy.int32(32)
   if (_0=="mioObjBound"):
    return numpy.int32(31)
   if (_0=="mioObjRelGap"):
    return numpy.int32(33)
   if (_0=="mioObjAbsGap"):
    return numpy.int32(30)
   if (_0=="mioUserObjCut"):
    return numpy.int32(43)
   if (_0=="mioCmirSeparationTime"):
    return numpy.int32(18)
   if (_0=="mioCliqueSeparationTime"):
    return numpy.int32(16)
   if (_0=="mioKnapsackCoverSeparationTime"):
    return numpy.int32(27)
   if (_0=="mioGmiSeparationTime"):
    return numpy.int32(22)
   if (_0=="mioImpliedBoundSeparationTime"):
    return numpy.int32(24)
   if (_0=="mioLiproSeparationTime"):
    return numpy.int32(29)
   if (_0=="mioRootCutSeparationTime"):
    return numpy.int32(36)
   if (_0=="mioCmirSelectionTime"):
    return numpy.int32(17)
   if (_0=="mioCliqueSelectionTime"):
    return numpy.int32(15)
   if (_0=="mioKnapsackCoverSelectionTime"):
    return numpy.int32(26)
   if (_0=="mioGmiSelectionTime"):
    return numpy.int32(21)
   if (_0=="mioImpliedBoundSelectionTime"):
    return numpy.int32(23)
   if (_0=="mioLiproSelectionTime"):
    return numpy.int32(28)
   if (_0=="mioRootCutSelectionTime"):
    return numpy.int32(35)
   if (_0=="mioProbingTime"):
    return numpy.int32(34)
   if (_0=="mioSymmetryDetectionTime"):
    return numpy.int32(40)
   if (_0=="optimizerTime"):
    return numpy.int32(45)
   if (_0=="optimizerTicks"):
    return numpy.int32(44)
   if (_0=="presolveTime"):
    return numpy.int32(48)
   if (_0=="mioSymmetryFactor"):
    return numpy.int32(41)
   if (_0=="mioDualBoundAfterPresolve"):
    return numpy.int32(20)
   if (_0=="presolveEliTime"):
    return numpy.int32(46)
   if (_0=="presolveLindepTime"):
    return numpy.int32(47)
   if (_0=="readDataTime"):
    return numpy.int32(55)
   if (_0=="writeDataTime"):
    return numpy.int32(110)
   if (_0=="solItrPrimalObj"):
    return numpy.int32(103)
   if (_0=="solItrPviolcon"):
    return numpy.int32(106)
   if (_0=="solItrPviolvar"):
    return numpy.int32(108)
   if (_0=="solItrPviolbarvar"):
    return numpy.int32(105)
   if (_0=="solItrPviolcones"):
    return numpy.int32(107)
   if (_0=="solItrPviolacc"):
    return numpy.int32(104)
   if (_0=="solItrDualObj"):
    return numpy.int32(87)
   if (_0=="solItrDviolcon"):
    return numpy.int32(90)
   if (_0=="solItrDviolvar"):
    return numpy.int32(92)
   if (_0=="solItrDviolbarvar"):
    return numpy.int32(89)
   if (_0=="solItrDviolcones"):
    return numpy.int32(91)
   if (_0=="solItrDviolacc"):
    return numpy.int32(88)
   if (_0=="solItrNrmXc"):
    return numpy.int32(100)
   if (_0=="solItrNrmXx"):
    return numpy.int32(101)
   if (_0=="solItrNrmBarx"):
    return numpy.int32(94)
   if (_0=="solItrNrmY"):
    return numpy.int32(102)
   if (_0=="solItrNrmSlc"):
    return numpy.int32(95)
   if (_0=="solItrNrmSuc"):
    return numpy.int32(98)
   if (_0=="solItrNrmSlx"):
    return numpy.int32(96)
   if (_0=="solItrNrmSux"):
    return numpy.int32(99)
   if (_0=="solItrNrmSnx"):
    return numpy.int32(97)
   if (_0=="solItrNrmBars"):
    return numpy.int32(93)
   if (_0=="solBasPrimalObj"):
    return numpy.int32(73)
   if (_0=="solBasPviolcon"):
    return numpy.int32(74)
   if (_0=="solBasPviolvar"):
    return numpy.int32(75)
   if (_0=="solBasDualObj"):
    return numpy.int32(62)
   if (_0=="solBasDviolcon"):
    return numpy.int32(63)
   if (_0=="solBasDviolvar"):
    return numpy.int32(64)
   if (_0=="solBasNrmXc"):
    return numpy.int32(70)
   if (_0=="solBasNrmXx"):
    return numpy.int32(71)
   if (_0=="solBasNrmBarx"):
    return numpy.int32(65)
   if (_0=="solBasNrmY"):
    return numpy.int32(72)
   if (_0=="solBasNrmSlc"):
    return numpy.int32(66)
   if (_0=="solBasNrmSuc"):
    return numpy.int32(68)
   if (_0=="solBasNrmSlx"):
    return numpy.int32(67)
   if (_0=="solBasNrmSux"):
    return numpy.int32(69)
   if (_0=="solItgPrimalObj"):
    return numpy.int32(79)
   if (_0=="solItgPviolcon"):
    return numpy.int32(82)
   if (_0=="solItgPviolvar"):
    return numpy.int32(86)
   if (_0=="solItgPviolbarvar"):
    return numpy.int32(81)
   if (_0=="solItgPviolcones"):
    return numpy.int32(83)
   if (_0=="solItgPviolacc"):
    return numpy.int32(80)
   if (_0=="solItgPviolitg"):
    return numpy.int32(85)
   if (_0=="solItgPvioldjc"):
    return numpy.int32(84)
   if (_0=="solItgNrmXc"):
    return numpy.int32(77)
   if (_0=="solItgNrmXx"):
    return numpy.int32(78)
   if (_0=="solItgNrmBarx"):
    return numpy.int32(76)
   if (_0=="presolveTotalPrimalPerturbation"):
    return numpy.int32(49)
   if (_0=="intpntFactorNumFlops"):
    return numpy.int32(9)
   if (_0=="qcqoReformulateTime"):
    return numpy.int32(52)
   if (_0=="qcqoReformulateMaxPerturbation"):
    return numpy.int32(51)
   if (_0=="qcqoReformulateWorstCholeskyDiagScaling"):
    return numpy.int32(54)
   if (_0=="qcqoReformulateWorstCholeskyColumnScaling"):
    return numpy.int32(53)
   if (_0=="primalRepairPenaltyObj"):
    return numpy.int32(50)
   if (_0=="remoteTime"):
    return numpy.int32(56)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1solformat_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1solformat_1value_S(_0)
  @staticmethod
  def __string_1to_1solformat_1value_S(_0):
   if (_0=="extension"):
    return numpy.int32(0)
   if (_0=="b"):
    return numpy.int32(1)
   if (_0=="task"):
    return numpy.int32(2)
   if (_0=="jsonTask"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1dataformat_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1dataformat_1value_S(_0)
  @staticmethod
  def __string_1to_1dataformat_1value_S(_0):
   if (_0=="extension"):
    return numpy.int32(0)
   if (_0=="mps"):
    return numpy.int32(1)
   if (_0=="lp"):
    return numpy.int32(2)
   if (_0=="op"):
    return numpy.int32(3)
   if (_0=="freeMps"):
    return numpy.int32(4)
   if (_0=="task"):
    return numpy.int32(5)
   if (_0=="ptf"):
    return numpy.int32(6)
   if (_0=="cb"):
    return numpy.int32(7)
   if (_0=="jsonTask"):
    return numpy.int32(8)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1symmattype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1symmattype_1value_S(_0)
  @staticmethod
  def __string_1to_1symmattype_1value_S(_0):
   if (_0=="sparse"):
    return numpy.int32(0)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1nametype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1nametype_1value_S(_0)
  @staticmethod
  def __string_1to_1nametype_1value_S(_0):
   if (_0=="gen"):
    return numpy.int32(0)
   if (_0=="mps"):
    return numpy.int32(1)
   if (_0=="lp"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1domaintype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1domaintype_1value_S(_0)
  @staticmethod
  def __string_1to_1domaintype_1value_S(_0):
   if (_0=="r"):
    return numpy.int32(0)
   if (_0=="rzero"):
    return numpy.int32(1)
   if (_0=="rplus"):
    return numpy.int32(2)
   if (_0=="rminus"):
    return numpy.int32(3)
   if (_0=="quadraticCone"):
    return numpy.int32(4)
   if (_0=="rquadraticCone"):
    return numpy.int32(5)
   if (_0=="primalExpCone"):
    return numpy.int32(6)
   if (_0=="dualExpCone"):
    return numpy.int32(7)
   if (_0=="primalPowerCone"):
    return numpy.int32(8)
   if (_0=="dualPowerCone"):
    return numpy.int32(9)
   if (_0=="primalGeoMeanCone"):
    return numpy.int32(10)
   if (_0=="dualGeoMeanCone"):
    return numpy.int32(11)
   if (_0=="svecPsdCone"):
    return numpy.int32(12)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1conetype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1conetype_1value_S(_0)
  @staticmethod
  def __string_1to_1conetype_1value_S(_0):
   if (_0=="quad"):
    return numpy.int32(0)
   if (_0=="rquad"):
    return numpy.int32(1)
   if (_0=="pexp"):
    return numpy.int32(2)
   if (_0=="dexp"):
    return numpy.int32(3)
   if (_0=="ppow"):
    return numpy.int32(4)
   if (_0=="dpow"):
    return numpy.int32(5)
   if (_0=="zero"):
    return numpy.int32(6)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1compresstype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1compresstype_1value_S(_0)
  @staticmethod
  def __string_1to_1compresstype_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(1)
   if (_0=="gzip"):
    return numpy.int32(2)
   if (_0=="zstd"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1callbackcode_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1callbackcode_1value_S(_0)
  @staticmethod
  def __string_1to_1callbackcode_1value_S(_0):
   if (_0=="beginRootCutgen"):
    return numpy.int32(21)
   if (_0=="imRootCutgen"):
    return numpy.int32(75)
   if (_0=="endRootCutgen"):
    return numpy.int32(50)
   if (_0=="beginSolveRootRelax"):
    return numpy.int32(24)
   if (_0=="endSolveRootRelax"):
    return numpy.int32(53)
   if (_0=="beginOptimizer"):
    return numpy.int32(11)
   if (_0=="endOptimizer"):
    return numpy.int32(40)
   if (_0=="beginPresolve"):
    return numpy.int32(12)
   if (_0=="updatePresolve"):
    return numpy.int32(88)
   if (_0=="imPresolve"):
    return numpy.int32(69)
   if (_0=="endPresolve"):
    return numpy.int32(41)
   if (_0=="beginIntpnt"):
    return numpy.int32(8)
   if (_0=="intpnt"):
    return numpy.int32(78)
   if (_0=="imIntpnt"):
    return numpy.int32(61)
   if (_0=="endIntpnt"):
    return numpy.int32(37)
   if (_0=="beginConic"):
    return numpy.int32(1)
   if (_0=="conic"):
    return numpy.int32(27)
   if (_0=="imConic"):
    return numpy.int32(57)
   if (_0=="endConic"):
    return numpy.int32(30)
   if (_0=="primalSimplex"):
    return numpy.int32(80)
   if (_0=="dualSimplex"):
    return numpy.int32(28)
   if (_0=="beginBi"):
    return numpy.int32(0)
   if (_0=="imBi"):
    return numpy.int32(56)
   if (_0=="endBi"):
    return numpy.int32(29)
   if (_0=="beginPrimalBi"):
    return numpy.int32(13)
   if (_0=="imPrimalBi"):
    return numpy.int32(70)
   if (_0=="updatePrimalBi"):
    return numpy.int32(89)
   if (_0=="endPrimalBi"):
    return numpy.int32(42)
   if (_0=="beginDualBi"):
    return numpy.int32(2)
   if (_0=="imDualBi"):
    return numpy.int32(58)
   if (_0=="updateDualBi"):
    return numpy.int32(85)
   if (_0=="endDualBi"):
    return numpy.int32(31)
   if (_0=="beginSimplexBi"):
    return numpy.int32(23)
   if (_0=="imSimplexBi"):
    return numpy.int32(77)
   if (_0=="beginPrimalSimplexBi"):
    return numpy.int32(18)
   if (_0=="updatePrimalSimplexBi"):
    return numpy.int32(91)
   if (_0=="endPrimalSimplexBi"):
    return numpy.int32(47)
   if (_0=="beginDualSimplexBi"):
    return numpy.int32(6)
   if (_0=="updateDualSimplexBi"):
    return numpy.int32(87)
   if (_0=="endDualSimplexBi"):
    return numpy.int32(35)
   if (_0=="endSimplexBi"):
    return numpy.int32(52)
   if (_0=="beginMio"):
    return numpy.int32(10)
   if (_0=="imMio"):
    return numpy.int32(64)
   if (_0=="newIntMio"):
    return numpy.int32(79)
   if (_0=="endMio"):
    return numpy.int32(39)
   if (_0=="restartMio"):
    return numpy.int32(83)
   if (_0=="beginSimplex"):
    return numpy.int32(22)
   if (_0=="imSimplex"):
    return numpy.int32(76)
   if (_0=="updateSimplex"):
    return numpy.int32(92)
   if (_0=="beginDualSimplex"):
    return numpy.int32(5)
   if (_0=="imDualSimplex"):
    return numpy.int32(60)
   if (_0=="updateDualSimplex"):
    return numpy.int32(86)
   if (_0=="endDualSimplex"):
    return numpy.int32(34)
   if (_0=="beginPrimalSimplex"):
    return numpy.int32(17)
   if (_0=="imPrimalSimplex"):
    return numpy.int32(72)
   if (_0=="updatePrimalSimplex"):
    return numpy.int32(90)
   if (_0=="endPrimalSimplex"):
    return numpy.int32(46)
   if (_0=="endSimplex"):
    return numpy.int32(51)
   if (_0=="beginInfeasAna"):
    return numpy.int32(7)
   if (_0=="endInfeasAna"):
    return numpy.int32(36)
   if (_0=="imPrimalSensivity"):
    return numpy.int32(71)
   if (_0=="imDualSensivity"):
    return numpy.int32(59)
   if (_0=="imMioIntpnt"):
    return numpy.int32(66)
   if (_0=="imMioPrimalSimplex"):
    return numpy.int32(67)
   if (_0=="imMioDualSimplex"):
    return numpy.int32(65)
   if (_0=="beginPrimalSetupBi"):
    return numpy.int32(16)
   if (_0=="endPrimalSetupBi"):
    return numpy.int32(45)
   if (_0=="beginDualSetupBi"):
    return numpy.int32(4)
   if (_0=="endDualSetupBi"):
    return numpy.int32(33)
   if (_0=="beginPrimalSensitivity"):
    return numpy.int32(15)
   if (_0=="endPrimalSensitivity"):
    return numpy.int32(44)
   if (_0=="beginDualSensitivity"):
    return numpy.int32(3)
   if (_0=="endDualSensitivity"):
    return numpy.int32(32)
   if (_0=="beginLicenseWait"):
    return numpy.int32(9)
   if (_0=="endLicenseWait"):
    return numpy.int32(38)
   if (_0=="imLicenseWait"):
    return numpy.int32(62)
   if (_0=="beginQcqoReformulate"):
    return numpy.int32(19)
   if (_0=="endQcqoReformulate"):
    return numpy.int32(48)
   if (_0=="imQoReformulate"):
    return numpy.int32(73)
   if (_0=="beginToConic"):
    return numpy.int32(25)
   if (_0=="endToConic"):
    return numpy.int32(54)
   if (_0=="beginPrimalRepair"):
    return numpy.int32(14)
   if (_0=="endPrimalRepair"):
    return numpy.int32(43)
   if (_0=="beginRead"):
    return numpy.int32(20)
   if (_0=="imRead"):
    return numpy.int32(74)
   if (_0=="endRead"):
    return numpy.int32(49)
   if (_0=="beginWrite"):
    return numpy.int32(26)
   if (_0=="endWrite"):
    return numpy.int32(55)
   if (_0=="readOpfSection"):
    return numpy.int32(82)
   if (_0=="imLu"):
    return numpy.int32(63)
   if (_0=="imOrder"):
    return numpy.int32(68)
   if (_0=="readOpf"):
    return numpy.int32(81)
   if (_0=="writeOpf"):
    return numpy.int32(93)
   if (_0=="solvingRemote"):
    return numpy.int32(84)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1purify_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1purify_1value_S(_0)
  @staticmethod
  def __string_1to_1purify_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="primal"):
    return numpy.int32(1)
   if (_0=="dual"):
    return numpy.int32(2)
   if (_0=="primalDual"):
    return numpy.int32(3)
   if (_0=="auto"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1intpnthotstart_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1intpnthotstart_1value_S(_0)
  @staticmethod
  def __string_1to_1intpnthotstart_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="primal"):
    return numpy.int32(1)
   if (_0=="dual"):
    return numpy.int32(2)
   if (_0=="primalDual"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1simhotstart_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1simhotstart_1value_S(_0)
  @staticmethod
  def __string_1to_1simhotstart_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(1)
   if (_0=="statusKeys"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1simdupvec_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1simdupvec_1value_S(_0)
  @staticmethod
  def __string_1to_1simdupvec_1value_S(_0):
   if (_0=="on"):
    return numpy.int32(1)
   if (_0=="off"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(2)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1simreform_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1simreform_1value_S(_0)
  @staticmethod
  def __string_1to_1simreform_1value_S(_0):
   if (_0=="on"):
    return numpy.int32(1)
   if (_0=="off"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(2)
   if (_0=="aggressive"):
    return numpy.int32(3)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1uplo_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1uplo_1value_S(_0)
  @staticmethod
  def __string_1to_1uplo_1value_S(_0):
   if (_0=="lo"):
    return numpy.int32(0)
   if (_0=="up"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1transpose_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1transpose_1value_S(_0)
  @staticmethod
  def __string_1to_1transpose_1value_S(_0):
   if (_0=="no"):
    return numpy.int32(0)
   if (_0=="yes"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1simdegen_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1simdegen_1value_S(_0)
  @staticmethod
  def __string_1to_1simdegen_1value_S(_0):
   if (_0=="none"):
    return numpy.int32(0)
   if (_0=="free"):
    return numpy.int32(1)
   if (_0=="aggressive"):
    return numpy.int32(2)
   if (_0=="moderate"):
    return numpy.int32(3)
   if (_0=="minimum"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1mark_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1mark_1value_S(_0)
  @staticmethod
  def __string_1to_1mark_1value_S(_0):
   if (_0=="lo"):
    return numpy.int32(0)
   if (_0=="up"):
    return numpy.int32(1)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1boundkey_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1boundkey_1value_S(_0)
  @staticmethod
  def __string_1to_1boundkey_1value_S(_0):
   if (_0=="lo"):
    return numpy.int32(0)
   if (_0=="up"):
    return numpy.int32(1)
   if (_0=="fx"):
    return numpy.int32(2)
   if (_0=="fr"):
    return numpy.int32(3)
   if (_0=="ra"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1basindtype_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1basindtype_1value_S(_0)
  @staticmethod
  def __string_1to_1basindtype_1value_S(_0):
   if (_0=="never"):
    return numpy.int32(0)
   if (_0=="always"):
    return numpy.int32(1)
   if (_0=="noError"):
    return numpy.int32(2)
   if (_0=="ifFeasible"):
    return numpy.int32(3)
   if (_0=="reservered"):
    return numpy.int32(4)
   return numpy.int32((- 1))
  @staticmethod
  def __string_1to_1language_1value_alt_S(_t__0):
    return mosek_fusion_Parameters.__string_1to_1language_1value_S(_0)
  @staticmethod
  def __string_1to_1language_1value_S(_0):
   if (_0=="eng"):
    return numpy.int32(0)
   if (_0=="dan"):
    return numpy.int32(1)
   return numpy.int32((- 1))
 return Parameters
mosek_fusion_Parameters=__mk_mosek_fusion_Parameters()
del __mk_mosek_fusion_Parameters
def __mk_mosek_fusion_Utils_StringIntMap():
  class StringIntMap:
    def __init__ (self):
      self.__d = {}
    def _hasItem_S(self,key): return key in self.__d
    def _getItem_S(self,key): return self.__d[key]
    def _setItem_SI(self,key,val): self.__d[key] = val
    def _keys_(self): return numpy.array(list(self.__d.keys()))
    def _values_(self): return numpy.array(list(self.__d.values()))
    def _clone_(self):
      r = self.__class__()
      r.__d.update(self.__d)
      return r
  return StringIntMap
mosek_fusion_Utils_StringIntMap=__mk_mosek_fusion_Utils_StringIntMap()
def __mk_mosek_fusion_Utils_IntMap():
  class IntMap:
    def __init__ (self):
      self.__d = {}
    def _hasItem_J(self,key): return key in self.__d
    def _getItem_J(self,key): return self.__d[key]
    def _setItem_JI(self,key,val): self.__d[key] = val
    def _keys_(self): return numpy.array(list(self.__d.keys()))
    def _values_(self): return numpy.array(list(self.__d.values()))
    def _clone_(self):
      r = self.__class__()
      r.__d.update(self.__d)
      return r
  
  
  
  return IntMap
mosek_fusion_Utils_IntMap=__mk_mosek_fusion_Utils_IntMap()
def __mk_mosek_fusion_Utils_StringBuffer():
  class StringBuffer:
    def __init__(self):
      self.__buf = []
    def __a(self,v):
      self.__buf.append(str(v))
      return self
    def __a_array(self,v):
      if v is None: self.__buf.append("None")
      else: self.__buf.append(str(v))
      return self
  
    _a_Z   = __a
    _a_I   = __a
    _a_J   = __a
    _a_U   = __a
    _a_D   = __a
    _a_S   = __a
    _a_B   = __a
    _a__3I = __a_array
    def _a__3J(self,v):
      if v is not None: self.__buf.extend([ '[',','.join(['%i' % i for i in v]),']'])
      else:             self.__buf.append('None')
      return self
    def _a__3D(self,v):
      if v is not None: self.__buf.extend([ '[',','.join(['%g' % i for i in v]),']'])
      else:             self.__buf.append('None')
      return self
    _a__3S = __a_array
    def _lf_(self):
      self.__buf.append('\n')
      return self
    def _clear_ (self):
      self.__buf = []
      return self
    def _toString_(self):
      return ''.join(self.__buf)
    def _toString_(self):
      return ''.join(self.__buf)
    def _consolePrint_(self):
      print(self._toString_())
      self._clear_()
      return(self)
  return StringBuffer
mosek_fusion_Utils_StringBuffer=__mk_mosek_fusion_Utils_StringBuffer()
def __mk_mosek_fusion_Utils_Tools():
  
  import random,ctypes,math
  class Tools:
    @staticmethod
    def __arraycopy(src,srcoffset,tgt,tgtoffset,size):
      if len(tgt) < tgtoffset+size or len(src) < srcoffset+size:
        raise IndexError("Copy slice out of range")
      tgt[tgtoffset:tgtoffset+size] = src[srcoffset:srcoffset+size]
  
    _arraycopy__3II_3III =  __arraycopy
    _arraycopy__3JI_3JII = __arraycopy
    _arraycopy__3_3II_3_3III = __arraycopy
    _arraycopy__3_3DI_3_3DII = __arraycopy
    _arraycopy__3DI_3DII = __arraycopy
    _arraycopy__3IJ_3IJJ = __arraycopy
    _arraycopy__3JJ_3JJJ = __arraycopy
    _arraycopy__3DJ_3DJJ = __arraycopy
  
    @staticmethod
    def __arrayclone(a):
      if a is None:
        raise FatalError("Unexpected None passed to arraycopy. Cloning a None array is not allowed.")
      if isinstance(a,numpy.ndarray):
        return a.copy()
      else:      
        return numpy.array(a)
  
    _arraycopy__3D = __arrayclone
    _arraycopy__3I = __arrayclone
    _arraycopy__3J = __arrayclone
    _arraycopy__3S = __arrayclone
  
    @staticmethod
    def __arraylength(a): return len(a)
  
    _arraylength__3Lmosek_4fusion_4Variable_2   = __arraylength
    _arraylength__3Lmosek_4fusion_4Constranit_2 = __arraylength  
    _arraylength__3Lmosek_4fusion_4Matrix_2     = __arraylength  
    _arraylength__3S   = __arraylength  
    _arraylength__3I   = __arraylength  
    _arraylength__3J   = __arraylength  
    _arraylength__3D   = __arraylength  
    _arraylength__3_3D = __arraylength  
    _arraylength__3_3I = __arraylength  
    _uarraylength__3I  = __arraylength 
    _uarraylength__3J  = __arraylength 
    _uarraylength__3D  = __arraylength 
    _uarraylength__3Lmosek_4fusion_4Variable_2   = __arraylength 
    _uarraylength__3Lmosek_4fusion_4Constraint_2 = __arraylength 
    _uarraylength__3Lmosek_4fusion_4Matrix_2     = __arraylength 
    _uarraylength__3_3S = __arraylength 
    _uarraylength__3_3D = __arraylength 
    _uarraylength__3_3I = __arraylength 
  
    @staticmethod
    def __matrixheight(m): return m.shape[0]
    @staticmethod
    def __matrixwidth(m): return m.shape[1]
    
    _matrixheight__3_3D = __matrixheight
    _matrixwidth__3_3D  = __matrixwidth
    _matrixheight__3_3Lmosek_4fusion_4Matrix_2 = __matrixheight
    _matrixwidth__3_3Lmosek_4fusion_4Matrix_2  = __matrixwidth
   
    @staticmethod   
    def _range_J (last): return numpy.arange(last,dtype=numpy.int64)
    @staticmethod   
    def _range_JJ(first,last): return numpy.arange(first,last,dtype=numpy.int64)
    @staticmethod   
    def _range_JJJ(first,last,step): return numpy.arange(first,last,step,dtype=numpy.int64)
  
    @staticmethod   
    def _range_I (last): return numpy.arange(last,dtype=numpy.int32)
    @staticmethod   
    def _range_II(first,last): return numpy.arange(first,last,dtype=numpy.int32)
    @staticmethod   
    def _range_III(first,last,step): return numpy.arange(first,last,step,dtype=numpy.int32)
  
    @staticmethod   
    def _zeros_I (num): return  numpy.zeros((num,),dtype=numpy.float64)
    @staticmethod   
    def _zeros_II (dimi,dimj): return  numpy.zeros((dimi,dimj),dtype=numpy.float64)
    @staticmethod   
    def _ones_I(num):  return  numpy.ones((num,),numpy.float64)
    
    __rand = random.Random()
    @staticmethod   
    def _randInt_I(max):
      return Tools.__rand.randint(0,max-1)
      
    @staticmethod   
    def _argsort__3J_3I_3JII(perm,val1,val2,first,last):
      if last-first > 1:
        p = list(perm[first:last])
        p.sort(lambda lhs,rhs: cmp(val1[lhs],val1[rhs]) or cmp(val2[lhs],val2[rhs]))
        perm[first:last] = p
  
    @staticmethod   
    def _argsort__3J_3I_3I(perm,val1,val2):    
      Tools._argsort__3I_3I_3III(perm,val1,val2,0,len(perm))
    
    @staticmethod   
    def _argsort__3J_3I(perm,vals):
      Tools._argsort__3I_3III(perm,vals,0,len(perm))
  
    @staticmethod   
    def _argsort__3J_3III(perm,val,first,last):
      if last-first > 1:
        p = list(perm[first:last])
        p.sort(lambda lhs,rhs: cmp(val[lhs],val[rhs]))
        perm[first:last] = p
  
    @staticmethod
    def _sort__3I_II (vals,first,last):
      if last-first > 1:
        tmp = vals[first:last]
        tmp.sort()
        vals[first:last] = tmp
  
    @staticmethod   
    def _makevector_DI(val,num): 
      r = numpy.zeros((num,), numpy.float64)
      r[:] = val
      return r
    @staticmethod   
    def _makevector_II(val,num): 
      r = numpy.zeros((num,), numpy.int32)
      r[:] = val
      return r
    @staticmethod   
    def _makevector_JI(val,num): 
      r = numpy.zeros((num,), numpy.int64)
      r[:] = val
      return r
    @staticmethod   
    def _repeatrange_III(first,last,num):
      res = numpy.zeros(((last-first)*num,),numpy.int32)
      ra = numpy.arange(first,last)
      l = last-first
      for i in range(num):
        res[i*l:(i+1)*l] = ra
      return res
    @staticmethod   
    def _repeatrange_JJJ(first,last,num):
      res = numpy.zeros(((last-first)*num,),numpy.int64)
      ra = numpy.arange(first,last)
      l = last-first
      for i in range(num):
        res[i*l:(i+1)*l] = ra
      return res
    @staticmethod
    def  _stringvalue_I(v): return str(v)
    @staticmethod
    def  _stringvalue_J(v): return str(v)
  
    @staticmethod
    def _toDouble_S(v):    
      return float(v)
  
    @staticmethod
    def _sqrt_D(v):
      return math.sqrt(v)
    
    @staticmethod
    def _toInt_S(v):
      return int(v)
  
  
    @staticmethod 
    def _argsort2(perm,v,first,last):
      l = sorted(perm[first:last],key=lambda i: v[i])
      perm[first:last] = l
    
    @staticmethod 
    def _argsort2x(perm,v0,v1,first,last):
      l = sorted(perm[first:last],key=lambda i: (v0[i],v1[i]))
      perm[first:last] = l
  
  
  
    @staticmethod 
    def _argsort__3J_3IJJ(perm,v,first,last):
      return Tools._argsort2(perm,v,first,last)
    
    @staticmethod 
    def _argsort__3J_3JJJ(perm,v,first,last):
      return Tools._argsort2(perm,v,first,last)
  
    @staticmethod 
    def _argsort__3J_3I_3IJJ(perm,v0,v1,first,last):
      return Tools._argsort2x(perm,v0,v1,first,last)
    
    @staticmethod 
    def _argsort__3J_3J_3JJJ(perm,v0,v1,first,last):
      return Tools._argsort2x(perm,v0,v1,first,last)
  
    @staticmethod
    def _bucketsort__3JJJ_3III(perm,first,last,v,minval,maxval):
      if True:
        count = numpy.zeros((maxval-minval+2,),numpy.int64)
        for i in range(first,last): count[v[perm[i]]-minval+1] += 1
        ptrb = count.cumsum()
        rperm = numpy.zeros((last-first,),numpy.int64)
        for i in range(first,last):
          rperm[ptrb[v[perm[i]]-minval]] = perm[i]
          ptrb[v[perm[i]]-minval] += 1
        perm[first:last] = rperm
  
      else:
        perm_ct = perm.ctypes
        v_ct    = v.ctypes
        if perm_ct.strides[0] == 8:
          #print( perm_ct.strides[:], perm_ct.shape[:],perm_ct.get_data())
          arg_perm  = perm_ct.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_perm = False
        else:
          tmpperm = numpy.array(perm_ct[first:last],numpy.int64)
          arg_perm  = tmpperm.ctypes.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_perm = True
  
        if v_ct.strides[0] == 4:
          arg_v = v_ct.data_as(ctypes.POINTER(ctypes.c_int))
          copy_v = False
        else:
          tmpv = numpy.array(v_ct,numpy.int32)
          arg_v  = tmpv.ctypes.data_as(ctypes.POINTER(ctypes.c_int))
          copy_v = True
  
        n = last-first
        m = maxval - minval + 1
        workspace = (ctypes.c_longlong*(m+n))()
  
        mosek.__library__.MSK_bucketsort__3JS_3III_3V(arg_perm,first,last,arg_v,minval,maxval,workspace)
        del arg_perm,arg_v
  
        if copy_v: 
          v[:] = tmpv
          del tmpv
        if copy_perm: 
          perm[first:last] = tmpperm
          del tmpperm
  
      
    @staticmethod
    def _bucketsort__3JJJ_3JJJ(perm,first,last,v,minval,maxval):
      if True:
        count = numpy.zeros((maxval-minval+2,),numpy.int64)
        for i in range(first,last): count[v[perm[i]]-minval+1] += 1
        ptrb = count.cumsum()
        rperm = numpy.zeros((last-first,),numpy.int64)
        for i in range(first,last):
          rperm[ptrb[v[perm[i]]-minval]] = perm[i]
          ptrb[v[perm[i]]-minval] += 1
        perm[first:last] = rperm
        #print( rperm,v)
  
      else:
        perm_ct = perm.ctypes
        v_ct    = v.ctypes
        
       
        if perm_ct.strides[0] == 8:
          arg_perm  = perm_ct.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_perm = False
        else:
          tmpperm = numpy.array(perm_ct[first:last],numpy.int64)
          arg_perm  = tmpperm.ctypes.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_perm = True
  
  
        if v_ct.strides[0] == 8:
          arg_v = v_ct.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_v = False
        else:
          tmpv = numpy.array(v_ct,numpy.int64)
          arg_v  = tmpv.ctypes.data_as(ctypes.POINTER(ctypes.c_longlong))
          copy_v = True
  
        n = last-first
        m = maxval - minval + 1
        workspace = (ctypes.c_longlong*(m+n))()
  
        mosek.__library__.MSK_bucketsort__3JS_3JJJ_3V(arg_perm,first,last,arg_v,minval,maxval,workspace)
  
        if copy_v: v[:] = tmpv
        if copy_perm: perm[first:last] = tmpperm
  
  
  
  
  return Tools
mosek_fusion_Utils_Tools=__mk_mosek_fusion_Utils_Tools()
def __mk_mosek_fusion_SolverInfo():
  from bisect import bisect_left
  import mosek
  class SolverInfo:
    dinfnames  = [ "anaProScalarizedConstraintMatrixDensity","biCleanDualTime","biCleanPrimalTime","biCleanTime","biDualTime","biPrimalTime","biTime","intpntDualFeas","intpntDualObj","intpntFactorNumFlops","intpntOptStatus","intpntOrderTime","intpntPrimalFeas","intpntPrimalObj","intpntTime","mioCliqueSelectionTime","mioCliqueSeparationTime","mioCmirSelectionTime","mioCmirSeparationTime","mioConstructSolutionObj","mioDualBoundAfterPresolve","mioGmiSelectionTime","mioGmiSeparationTime","mioImpliedBoundSelectionTime","mioImpliedBoundSeparationTime","mioInitialFeasibleSolutionObj","mioKnapsackCoverSelectionTime","mioKnapsackCoverSeparationTime","mioLiproSelectionTime","mioLiproSeparationTime","mioObjAbsGap","mioObjBound","mioObjInt","mioObjRelGap","mioProbingTime","mioRootCutSelectionTime","mioRootCutSeparationTime","mioRootOptimizerTime","mioRootPresolveTime","mioRootTime","mioSymmetryDetectionTime","mioSymmetryFactor","mioTime","mioUserObjCut","optimizerTicks","optimizerTime","presolveEliTime","presolveLindepTime","presolveTime","presolveTotalPrimalPerturbation","primalRepairPenaltyObj","qcqoReformulateMaxPerturbation","qcqoReformulateTime","qcqoReformulateWorstCholeskyColumnScaling","qcqoReformulateWorstCholeskyDiagScaling","readDataTime","remoteTime","simDualTime","simFeas","simObj","simPrimalTime","simTime","solBasDualObj","solBasDviolcon","solBasDviolvar","solBasNrmBarx","solBasNrmSlc","solBasNrmSlx","solBasNrmSuc","solBasNrmSux","solBasNrmXc","solBasNrmXx","solBasNrmY","solBasPrimalObj","solBasPviolcon","solBasPviolvar","solItgNrmBarx","solItgNrmXc","solItgNrmXx","solItgPrimalObj","solItgPviolacc","solItgPviolbarvar","solItgPviolcon","solItgPviolcones","solItgPvioldjc","solItgPviolitg","solItgPviolvar","solItrDualObj","solItrDviolacc","solItrDviolbarvar","solItrDviolcon","solItrDviolcones","solItrDviolvar","solItrNrmBars","solItrNrmBarx","solItrNrmSlc","solItrNrmSlx","solItrNrmSnx","solItrNrmSuc","solItrNrmSux","solItrNrmXc","solItrNrmXx","solItrNrmY","solItrPrimalObj","solItrPviolacc","solItrPviolbarvar","solItrPviolcon","solItrPviolcones","solItrPviolvar","toConicTime","writeDataTime" ];
    iinfnames  = [ "anaProNumCon","anaProNumConEq","anaProNumConFr","anaProNumConLo","anaProNumConRa","anaProNumConUp","anaProNumVar","anaProNumVarBin","anaProNumVarCont","anaProNumVarEq","anaProNumVarFr","anaProNumVarInt","anaProNumVarLo","anaProNumVarRa","anaProNumVarUp","intpntFactorDimDense","intpntIter","intpntNumThreads","intpntSolveDual","mioAbsgapSatisfied","mioCliqueTableSize","mioConstructSolution","mioInitialFeasibleSolution","mioNodeDepth","mioNumActiveNodes","mioNumActiveRootCuts","mioNumBranch","mioNumIntSolutions","mioNumRelax","mioNumRepeatedPresolve","mioNumRestarts","mioNumRootCutRounds","mioNumSelectedCliqueCuts","mioNumSelectedCmirCuts","mioNumSelectedGomoryCuts","mioNumSelectedImpliedBoundCuts","mioNumSelectedKnapsackCoverCuts","mioNumSelectedLiproCuts","mioNumSeparatedCliqueCuts","mioNumSeparatedCmirCuts","mioNumSeparatedGomoryCuts","mioNumSeparatedImpliedBoundCuts","mioNumSeparatedKnapsackCoverCuts","mioNumSeparatedLiproCuts","mioNumSolvedNodes","mioNumbin","mioNumbinconevar","mioNumcon","mioNumcone","mioNumconevar","mioNumcont","mioNumcontconevar","mioNumdexpcones","mioNumdjc","mioNumdpowcones","mioNumint","mioNumintconevar","mioNumpexpcones","mioNumppowcones","mioNumqcones","mioNumrqcones","mioNumvar","mioObjBoundDefined","mioPresolvedNumbin","mioPresolvedNumbinconevar","mioPresolvedNumcon","mioPresolvedNumcone","mioPresolvedNumconevar","mioPresolvedNumcont","mioPresolvedNumcontconevar","mioPresolvedNumdexpcones","mioPresolvedNumdjc","mioPresolvedNumdpowcones","mioPresolvedNumint","mioPresolvedNumintconevar","mioPresolvedNumpexpcones","mioPresolvedNumppowcones","mioPresolvedNumqcones","mioPresolvedNumrqcones","mioPresolvedNumvar","mioRelgapSatisfied","mioTotalNumSelectedCuts","mioTotalNumSeparatedCuts","mioUserObjCut","optNumcon","optNumvar","optimizeResponse","presolveNumPrimalPerturbations","purifyDualSuccess","purifyPrimalSuccess","rdNumbarvar","rdNumcon","rdNumcone","rdNumintvar","rdNumq","rdNumvar","rdProtype","simDualDegIter","simDualHotstart","simDualHotstartLu","simDualInfIter","simDualIter","simNumcon","simNumvar","simPrimalDegIter","simPrimalHotstart","simPrimalHotstartLu","simPrimalInfIter","simPrimalIter","simSolveDual","solBasProsta","solBasSolsta","solItgProsta","solItgSolsta","solItrProsta","solItrSolsta","stoNumARealloc" ];
    liinfnames = [ "anaProScalarizedConstraintMatrixNumColumns","anaProScalarizedConstraintMatrixNumNz","anaProScalarizedConstraintMatrixNumRows","biCleanDualDegIter","biCleanDualIter","biCleanPrimalDegIter","biCleanPrimalIter","biDualIter","biPrimalIter","intpntFactorNumNz","mioAnz","mioIntpntIter","mioNumDualIllposedCer","mioNumPrimIllposedCer","mioPresolvedAnz","mioSimplexIter","rdNumacc","rdNumanz","rdNumdjc","rdNumqnz","simplexIter" ];
    dinfsyms   = [ mosek.dinfitem.ana_pro_scalarized_constraint_matrix_density,mosek.dinfitem.bi_clean_dual_time,mosek.dinfitem.bi_clean_primal_time,mosek.dinfitem.bi_clean_time,mosek.dinfitem.bi_dual_time,mosek.dinfitem.bi_primal_time,mosek.dinfitem.bi_time,mosek.dinfitem.intpnt_dual_feas,mosek.dinfitem.intpnt_dual_obj,mosek.dinfitem.intpnt_factor_num_flops,mosek.dinfitem.intpnt_opt_status,mosek.dinfitem.intpnt_order_time,mosek.dinfitem.intpnt_primal_feas,mosek.dinfitem.intpnt_primal_obj,mosek.dinfitem.intpnt_time,mosek.dinfitem.mio_clique_selection_time,mosek.dinfitem.mio_clique_separation_time,mosek.dinfitem.mio_cmir_selection_time,mosek.dinfitem.mio_cmir_separation_time,mosek.dinfitem.mio_construct_solution_obj,mosek.dinfitem.mio_dual_bound_after_presolve,mosek.dinfitem.mio_gmi_selection_time,mosek.dinfitem.mio_gmi_separation_time,mosek.dinfitem.mio_implied_bound_selection_time,mosek.dinfitem.mio_implied_bound_separation_time,mosek.dinfitem.mio_initial_feasible_solution_obj,mosek.dinfitem.mio_knapsack_cover_selection_time,mosek.dinfitem.mio_knapsack_cover_separation_time,mosek.dinfitem.mio_lipro_selection_time,mosek.dinfitem.mio_lipro_separation_time,mosek.dinfitem.mio_obj_abs_gap,mosek.dinfitem.mio_obj_bound,mosek.dinfitem.mio_obj_int,mosek.dinfitem.mio_obj_rel_gap,mosek.dinfitem.mio_probing_time,mosek.dinfitem.mio_root_cut_selection_time,mosek.dinfitem.mio_root_cut_separation_time,mosek.dinfitem.mio_root_optimizer_time,mosek.dinfitem.mio_root_presolve_time,mosek.dinfitem.mio_root_time,mosek.dinfitem.mio_symmetry_detection_time,mosek.dinfitem.mio_symmetry_factor,mosek.dinfitem.mio_time,mosek.dinfitem.mio_user_obj_cut,mosek.dinfitem.optimizer_ticks,mosek.dinfitem.optimizer_time,mosek.dinfitem.presolve_eli_time,mosek.dinfitem.presolve_lindep_time,mosek.dinfitem.presolve_time,mosek.dinfitem.presolve_total_primal_perturbation,mosek.dinfitem.primal_repair_penalty_obj,mosek.dinfitem.qcqo_reformulate_max_perturbation,mosek.dinfitem.qcqo_reformulate_time,mosek.dinfitem.qcqo_reformulate_worst_cholesky_column_scaling,mosek.dinfitem.qcqo_reformulate_worst_cholesky_diag_scaling,mosek.dinfitem.read_data_time,mosek.dinfitem.remote_time,mosek.dinfitem.sim_dual_time,mosek.dinfitem.sim_feas,mosek.dinfitem.sim_obj,mosek.dinfitem.sim_primal_time,mosek.dinfitem.sim_time,mosek.dinfitem.sol_bas_dual_obj,mosek.dinfitem.sol_bas_dviolcon,mosek.dinfitem.sol_bas_dviolvar,mosek.dinfitem.sol_bas_nrm_barx,mosek.dinfitem.sol_bas_nrm_slc,mosek.dinfitem.sol_bas_nrm_slx,mosek.dinfitem.sol_bas_nrm_suc,mosek.dinfitem.sol_bas_nrm_sux,mosek.dinfitem.sol_bas_nrm_xc,mosek.dinfitem.sol_bas_nrm_xx,mosek.dinfitem.sol_bas_nrm_y,mosek.dinfitem.sol_bas_primal_obj,mosek.dinfitem.sol_bas_pviolcon,mosek.dinfitem.sol_bas_pviolvar,mosek.dinfitem.sol_itg_nrm_barx,mosek.dinfitem.sol_itg_nrm_xc,mosek.dinfitem.sol_itg_nrm_xx,mosek.dinfitem.sol_itg_primal_obj,mosek.dinfitem.sol_itg_pviolacc,mosek.dinfitem.sol_itg_pviolbarvar,mosek.dinfitem.sol_itg_pviolcon,mosek.dinfitem.sol_itg_pviolcones,mosek.dinfitem.sol_itg_pvioldjc,mosek.dinfitem.sol_itg_pviolitg,mosek.dinfitem.sol_itg_pviolvar,mosek.dinfitem.sol_itr_dual_obj,mosek.dinfitem.sol_itr_dviolacc,mosek.dinfitem.sol_itr_dviolbarvar,mosek.dinfitem.sol_itr_dviolcon,mosek.dinfitem.sol_itr_dviolcones,mosek.dinfitem.sol_itr_dviolvar,mosek.dinfitem.sol_itr_nrm_bars,mosek.dinfitem.sol_itr_nrm_barx,mosek.dinfitem.sol_itr_nrm_slc,mosek.dinfitem.sol_itr_nrm_slx,mosek.dinfitem.sol_itr_nrm_snx,mosek.dinfitem.sol_itr_nrm_suc,mosek.dinfitem.sol_itr_nrm_sux,mosek.dinfitem.sol_itr_nrm_xc,mosek.dinfitem.sol_itr_nrm_xx,mosek.dinfitem.sol_itr_nrm_y,mosek.dinfitem.sol_itr_primal_obj,mosek.dinfitem.sol_itr_pviolacc,mosek.dinfitem.sol_itr_pviolbarvar,mosek.dinfitem.sol_itr_pviolcon,mosek.dinfitem.sol_itr_pviolcones,mosek.dinfitem.sol_itr_pviolvar,mosek.dinfitem.to_conic_time,mosek.dinfitem.write_data_time ];
    iinfsyms   = [ mosek.iinfitem.ana_pro_num_con,mosek.iinfitem.ana_pro_num_con_eq,mosek.iinfitem.ana_pro_num_con_fr,mosek.iinfitem.ana_pro_num_con_lo,mosek.iinfitem.ana_pro_num_con_ra,mosek.iinfitem.ana_pro_num_con_up,mosek.iinfitem.ana_pro_num_var,mosek.iinfitem.ana_pro_num_var_bin,mosek.iinfitem.ana_pro_num_var_cont,mosek.iinfitem.ana_pro_num_var_eq,mosek.iinfitem.ana_pro_num_var_fr,mosek.iinfitem.ana_pro_num_var_int,mosek.iinfitem.ana_pro_num_var_lo,mosek.iinfitem.ana_pro_num_var_ra,mosek.iinfitem.ana_pro_num_var_up,mosek.iinfitem.intpnt_factor_dim_dense,mosek.iinfitem.intpnt_iter,mosek.iinfitem.intpnt_num_threads,mosek.iinfitem.intpnt_solve_dual,mosek.iinfitem.mio_absgap_satisfied,mosek.iinfitem.mio_clique_table_size,mosek.iinfitem.mio_construct_solution,mosek.iinfitem.mio_initial_feasible_solution,mosek.iinfitem.mio_node_depth,mosek.iinfitem.mio_num_active_nodes,mosek.iinfitem.mio_num_active_root_cuts,mosek.iinfitem.mio_num_branch,mosek.iinfitem.mio_num_int_solutions,mosek.iinfitem.mio_num_relax,mosek.iinfitem.mio_num_repeated_presolve,mosek.iinfitem.mio_num_restarts,mosek.iinfitem.mio_num_root_cut_rounds,mosek.iinfitem.mio_num_selected_clique_cuts,mosek.iinfitem.mio_num_selected_cmir_cuts,mosek.iinfitem.mio_num_selected_gomory_cuts,mosek.iinfitem.mio_num_selected_implied_bound_cuts,mosek.iinfitem.mio_num_selected_knapsack_cover_cuts,mosek.iinfitem.mio_num_selected_lipro_cuts,mosek.iinfitem.mio_num_separated_clique_cuts,mosek.iinfitem.mio_num_separated_cmir_cuts,mosek.iinfitem.mio_num_separated_gomory_cuts,mosek.iinfitem.mio_num_separated_implied_bound_cuts,mosek.iinfitem.mio_num_separated_knapsack_cover_cuts,mosek.iinfitem.mio_num_separated_lipro_cuts,mosek.iinfitem.mio_num_solved_nodes,mosek.iinfitem.mio_numbin,mosek.iinfitem.mio_numbinconevar,mosek.iinfitem.mio_numcon,mosek.iinfitem.mio_numcone,mosek.iinfitem.mio_numconevar,mosek.iinfitem.mio_numcont,mosek.iinfitem.mio_numcontconevar,mosek.iinfitem.mio_numdexpcones,mosek.iinfitem.mio_numdjc,mosek.iinfitem.mio_numdpowcones,mosek.iinfitem.mio_numint,mosek.iinfitem.mio_numintconevar,mosek.iinfitem.mio_numpexpcones,mosek.iinfitem.mio_numppowcones,mosek.iinfitem.mio_numqcones,mosek.iinfitem.mio_numrqcones,mosek.iinfitem.mio_numvar,mosek.iinfitem.mio_obj_bound_defined,mosek.iinfitem.mio_presolved_numbin,mosek.iinfitem.mio_presolved_numbinconevar,mosek.iinfitem.mio_presolved_numcon,mosek.iinfitem.mio_presolved_numcone,mosek.iinfitem.mio_presolved_numconevar,mosek.iinfitem.mio_presolved_numcont,mosek.iinfitem.mio_presolved_numcontconevar,mosek.iinfitem.mio_presolved_numdexpcones,mosek.iinfitem.mio_presolved_numdjc,mosek.iinfitem.mio_presolved_numdpowcones,mosek.iinfitem.mio_presolved_numint,mosek.iinfitem.mio_presolved_numintconevar,mosek.iinfitem.mio_presolved_numpexpcones,mosek.iinfitem.mio_presolved_numppowcones,mosek.iinfitem.mio_presolved_numqcones,mosek.iinfitem.mio_presolved_numrqcones,mosek.iinfitem.mio_presolved_numvar,mosek.iinfitem.mio_relgap_satisfied,mosek.iinfitem.mio_total_num_selected_cuts,mosek.iinfitem.mio_total_num_separated_cuts,mosek.iinfitem.mio_user_obj_cut,mosek.iinfitem.opt_numcon,mosek.iinfitem.opt_numvar,mosek.iinfitem.optimize_response,mosek.iinfitem.presolve_num_primal_perturbations,mosek.iinfitem.purify_dual_success,mosek.iinfitem.purify_primal_success,mosek.iinfitem.rd_numbarvar,mosek.iinfitem.rd_numcon,mosek.iinfitem.rd_numcone,mosek.iinfitem.rd_numintvar,mosek.iinfitem.rd_numq,mosek.iinfitem.rd_numvar,mosek.iinfitem.rd_protype,mosek.iinfitem.sim_dual_deg_iter,mosek.iinfitem.sim_dual_hotstart,mosek.iinfitem.sim_dual_hotstart_lu,mosek.iinfitem.sim_dual_inf_iter,mosek.iinfitem.sim_dual_iter,mosek.iinfitem.sim_numcon,mosek.iinfitem.sim_numvar,mosek.iinfitem.sim_primal_deg_iter,mosek.iinfitem.sim_primal_hotstart,mosek.iinfitem.sim_primal_hotstart_lu,mosek.iinfitem.sim_primal_inf_iter,mosek.iinfitem.sim_primal_iter,mosek.iinfitem.sim_solve_dual,mosek.iinfitem.sol_bas_prosta,mosek.iinfitem.sol_bas_solsta,mosek.iinfitem.sol_itg_prosta,mosek.iinfitem.sol_itg_solsta,mosek.iinfitem.sol_itr_prosta,mosek.iinfitem.sol_itr_solsta,mosek.iinfitem.sto_num_a_realloc ];
    liinfsyms  = [ mosek.liinfitem.ana_pro_scalarized_constraint_matrix_num_columns,mosek.liinfitem.ana_pro_scalarized_constraint_matrix_num_nz,mosek.liinfitem.ana_pro_scalarized_constraint_matrix_num_rows,mosek.liinfitem.bi_clean_dual_deg_iter,mosek.liinfitem.bi_clean_dual_iter,mosek.liinfitem.bi_clean_primal_deg_iter,mosek.liinfitem.bi_clean_primal_iter,mosek.liinfitem.bi_dual_iter,mosek.liinfitem.bi_primal_iter,mosek.liinfitem.intpnt_factor_num_nz,mosek.liinfitem.mio_anz,mosek.liinfitem.mio_intpnt_iter,mosek.liinfitem.mio_num_dual_illposed_cer,mosek.liinfitem.mio_num_prim_illposed_cer,mosek.liinfitem.mio_presolved_anz,mosek.liinfitem.mio_simplex_iter,mosek.liinfitem.rd_numacc,mosek.liinfitem.rd_numanz,mosek.liinfitem.rd_numdjc,mosek.liinfitem.rd_numqnz,mosek.liinfitem.simplex_iter ];
    @staticmethod
    def _getdouinf(infname):
      idx = bisect_left(SolverInfo.dinfnames, infname)
      if idx != len(SolverInfo.dinfnames) and SolverInfo.dinfnames[idx] == infname:
        return SolverInfo.dinfsyms[idx]
      else:
        return None
    @staticmethod
    def _getintinf(infname):
      idx = bisect_left(SolverInfo.iinfnames, infname)
      if idx != len(SolverInfo.iinfnames) and SolverInfo.iinfnames[idx] == infname:
        return SolverInfo.iinfsyms[idx]
      else:
        return None
    @staticmethod
    def _getlintinf(infname):
      idx = bisect_left(SolverInfo.liinfnames, infname)
      if idx != len(SolverInfo.liinfnames) and SolverInfo.liinfnames[idx] == infname:
        return SolverInfo.liinfsyms[idx]
      else:
        return None
  return SolverInfo
mosek_fusion_SolverInfo=__mk_mosek_fusion_SolverInfo()
def __arg_match_Lmosek_4fusion_4PSDConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_PSDConstraint)
def __arg_alt_match_Lmosek_4fusion_4PSDConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4PSDConstraint_2__(v)
def __arg_match_Lmosek_4fusion_4RangedConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_RangedConstraint)
def __arg_alt_match_Lmosek_4fusion_4RangedConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4RangedConstraint_2__(v)
def __arg_match__3Lmosek_4fusion_4Variable_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Variable) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Variable_2__(v):
  return __arg_match__3Lmosek_4fusion_4Variable_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Variable_2__)
def __arg_match_LSystem_4DataStream_2__(v):
  return v is None or isinstance(v,object)
def __arg_alt_match_LSystem_4DataStream_2__(v):
  return __arg_match_LSystem_4DataStream_2__(v)
def __arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ExprRangeDomain)
def __arg_alt_match_Lmosek_4fusion_4ExprRangeDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ExprRangeDomain_2__(v)
def __arg_match_D__(v):
  return isinstance(v,numpy.float64) or isinstance(v,float) or isinstance(v,int) or isinstance(v,numpy.int32) or isinstance(v,numpy.int64)
def __arg_alt_match_D__(v):
  return __arg_match_D__(v)
def __arg_match_Lmosek_4fusion_4BaseExpression_2__(v):
  return v is None or isinstance(v,mosek_fusion_BaseExpression)
def __arg_alt_match_Lmosek_4fusion_4BaseExpression_2__(v):
  return __arg_match_Lmosek_4fusion_4BaseExpression_2__(v)
def __arg_match_Emosek_4fusion_4PSDKey_2__(v):
  return isinstance(v,mosek_fusion_PSDKey)
def __arg_alt_match_Emosek_4fusion_4PSDKey_2__(v):
  return isinstance(v,mosek_fusion_PSDKey)
def __arg_match_Emosek_4fusion_4SolutionType_2__(v):
  return isinstance(v,mosek_fusion_SolutionType)
def __arg_alt_match_Emosek_4fusion_4SolutionType_2__(v):
  return isinstance(v,mosek_fusion_SolutionType)
def __arg_match_Lmosek_4fusion_4RangedVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_RangedVariable)
def __arg_alt_match_Lmosek_4fusion_4RangedVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4RangedVariable_2__(v)
def __arg_match__3Lmosek_4fusion_4Term_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Term) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Term_2__(v):
  return __arg_match__3Lmosek_4fusion_4Term_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Term_2__)
def __arg_match_Lmosek_4fusion_4ExprPSDDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ExprPSDDomain)
def __arg_alt_match_Lmosek_4fusion_4ExprPSDDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ExprPSDDomain_2__(v)
def __arg_match_Lmosek_4fusion_4NDSparseArray_2__(v):
  return v is None or isinstance(v,mosek_fusion_NDSparseArray)
def __arg_alt_match_Lmosek_4fusion_4NDSparseArray_2__(v):
  return __arg_match_Lmosek_4fusion_4NDSparseArray_2__(v)
def __arg_match_Lmosek_4fusion_4SliceConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_SliceConstraint)
def __arg_alt_match_Lmosek_4fusion_4SliceConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4SliceConstraint_2__(v)
def __arg_match_Emosek_4fusion_4ProblemStatus_2__(v):
  return isinstance(v,mosek_fusion_ProblemStatus)
def __arg_alt_match_Emosek_4fusion_4ProblemStatus_2__(v):
  return isinstance(v,mosek_fusion_ProblemStatus)
def __arg_match__3_3D__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3D__(i) for i in v.flatten()])
def __arg_alt_match__3_3D__(v):
  return __arg_match__3_3D__(v) or __arg_match_listof__(v,__arg_alt_match__3D__)
def __arg_match_Lmosek_4fusion_4DJCDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_DJCDomain)
def __arg_alt_match_Lmosek_4fusion_4DJCDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4DJCDomain_2__(v)
def __arg_match_Lmosek_4fusion_4ModelVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_ModelVariable)
def __arg_alt_match_Lmosek_4fusion_4ModelVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4ModelVariable_2__(v)
def __arg_match_Lmosek_4fusion_4LinkedBlocks_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinkedBlocks)
def __arg_alt_match_Lmosek_4fusion_4LinkedBlocks_2__(v):
  return __arg_match_Lmosek_4fusion_4LinkedBlocks_2__(v)
def __arg_match__3Lmosek_4fusion_4DJCDomain_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_DJCDomain) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4DJCDomain_2__(v):
  return __arg_match__3Lmosek_4fusion_4DJCDomain_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4DJCDomain_2__)
def __arg_match__3_3Lmosek_4fusion_4Parameter_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3Lmosek_4fusion_4Parameter_2__(i) for i in v.flatten()])
def __arg_alt_match__3_3Lmosek_4fusion_4Parameter_2__(v):
  return __arg_match__3_3Lmosek_4fusion_4Parameter_2__(v) or __arg_match_listof__(v,__arg_alt_match__3Lmosek_4fusion_4Parameter_2__)
def __arg_match_Lmosek_4fusion_4SliceVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_SliceVariable)
def __arg_alt_match_Lmosek_4fusion_4SliceVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4SliceVariable_2__(v)
def __arg_match__3Lmosek_4fusion_4Expression_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Expression) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Expression_2__(v):
  return __arg_match__3Lmosek_4fusion_4Expression_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Expression_2__)
def __arg_match_J__(v):
  return isinstance(v,numpy.int64) or isinstance(v,int) or isinstance(v,numpy.int32)
def __arg_alt_match_J__(v):
  return __arg_match_J__(v)
def __arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(v):
  return v is None or isinstance(v,mosek_fusion_DisjunctionTerms)
def __arg_alt_match_Lmosek_4fusion_4DisjunctionTerms_2__(v):
  return __arg_match_Lmosek_4fusion_4DisjunctionTerms_2__(v)
def __arg_match_Lmosek_4fusion_4Constraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_Constraint)
def __arg_alt_match_Lmosek_4fusion_4Constraint_2__(v):
  return __arg_match_Lmosek_4fusion_4Constraint_2__(v)
def __arg_match__3J__(v):
  return v is None or (isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(numpy.int64))
def __arg_alt_match__3J__(v):
  return __arg_match__3J__(v) or __arg_match_listof__(v,__arg_alt_match_J__)
def __arg_match__3_3J__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3J__(i) for i in v.flatten()])
def __arg_alt_match__3_3J__(v):
  return __arg_match__3_3J__(v) or __arg_match_listof__(v,__arg_alt_match__3J__)
def __arg_match_Lmosek_4fusion_4LinearPSDConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinearPSDConstraint)
def __arg_alt_match_Lmosek_4fusion_4LinearPSDConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4LinearPSDConstraint_2__(v)
def __arg_match__3Lmosek_4fusion_4ExprDomain_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_ExprDomain) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4ExprDomain_2__(v):
  return __arg_match__3Lmosek_4fusion_4ExprDomain_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4ExprDomain_2__)
def __arg_match_Lmosek_4fusion_4LinearPSDVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinearPSDVariable)
def __arg_alt_match_Lmosek_4fusion_4LinearPSDVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4LinearPSDVariable_2__(v)
def __arg_match_Lmosek_4fusion_4SymmetricMatrix_2__(v):
  return v is None or isinstance(v,mosek_fusion_SymmetricMatrix)
def __arg_alt_match_Lmosek_4fusion_4SymmetricMatrix_2__(v):
  return __arg_match_Lmosek_4fusion_4SymmetricMatrix_2__(v)
def __arg_match__3D__(v):
  return v is None or (isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(numpy.float64))
def __arg_alt_match__3D__(v):
  return __arg_match__3D__(v) or __arg_match_listof__(v,__arg_alt_match_D__)
def __arg_match_Lmosek_4fusion_4ConicVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_ConicVariable)
def __arg_alt_match_Lmosek_4fusion_4ConicVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4ConicVariable_2__(v)
def __arg_match__3I__(v):
  return v is None or (isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(numpy.int32))
def __arg_alt_match__3I__(v):
  return __arg_match__3I__(v) or __arg_match_listof__(v,__arg_alt_match_I__) or isinstance(v,range)
def __arg_match__3_5D__(v):
  return v is None or (isinstance(v,numpy.ndarray) and v.ndim == 2 and v.dtype == numpy.dtype(numpy.float64))
def __arg_alt_match__3_5D__(v):
  return _monty.arg_match_sloppy_array(v,__arg_alt_match_D__,2)
def __arg_match_Lmosek_4fusion_4LinearVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinearVariable)
def __arg_alt_match_Lmosek_4fusion_4LinearVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4LinearVariable_2__(v)
def __arg_match__3Lmosek_4fusion_4Model_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Model) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Model_2__(v):
  return __arg_match__3Lmosek_4fusion_4Model_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Model_2__)
def __arg_match_Lmosek_4fusion_4RangeDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_RangeDomain)
def __arg_alt_match_Lmosek_4fusion_4RangeDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4RangeDomain_2__(v)
def __arg_match_LSystem_4StreamWriter_2__(v):
  return v is None or isinstance(v,object)
def __arg_alt_match_LSystem_4StreamWriter_2__(v):
  return __arg_match_LSystem_4StreamWriter_2__(v)
def __arg_match_Lmosek_4fusion_4RowBlockManager_2__(v):
  return v is None or isinstance(v,mosek_fusion_RowBlockManager)
def __arg_alt_match_Lmosek_4fusion_4RowBlockManager_2__(v):
  return __arg_match_Lmosek_4fusion_4RowBlockManager_2__(v)
def __arg_match_I__(v):
  return isinstance(v,numpy.int32) or isinstance(v,numpy.int64) or isinstance(v,int)
def __arg_alt_match_I__(v):
  return __arg_match_I__(v)
def __arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ExprLinearDomain)
def __arg_alt_match_Lmosek_4fusion_4ExprLinearDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ExprLinearDomain_2__(v)
def __arg_match__3S__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == object and all([isinstance(i0,str) for i0 in v ])
def __arg_alt_match__3S__(v):
  return __arg_match__3S__(v) or __arg_match_listof__(v,__arg_alt_match_S__)
def __arg_match_Lmosek_4fusion_4ExprConicDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ExprConicDomain)
def __arg_alt_match_Lmosek_4fusion_4ExprConicDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ExprConicDomain_2__(v)
def __arg_match_Lmosek_4fusion_4PSDDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_PSDDomain)
def __arg_alt_match_Lmosek_4fusion_4PSDDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4PSDDomain_2__(v)
def __arg_match__3_5I__(v):
  return v is None or (isinstance(v,numpy.ndarray) and v.ndim == 2 and v.dtype == numpy.dtype(numpy.int32))
def __arg_alt_match__3_5I__(v):
  return _monty.arg_match_sloppy_array(v,__arg_alt_match_I__,2)
def __arg_match_Lmosek_4fusion_4LinearDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinearDomain)
def __arg_alt_match_Lmosek_4fusion_4LinearDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4LinearDomain_2__(v)
def __arg_match_Lmosek_4fusion_4LinkedInts_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinkedInts)
def __arg_alt_match_Lmosek_4fusion_4LinkedInts_2__(v):
  return __arg_match_Lmosek_4fusion_4LinkedInts_2__(v)
def __arg_match_Emosek_4fusion_4DJCDomainType_2__(v):
  return isinstance(v,mosek_fusion_DJCDomainType)
def __arg_alt_match_Emosek_4fusion_4DJCDomainType_2__(v):
  return isinstance(v,mosek_fusion_DJCDomainType)
def __arg_match_Emosek_4fusion_4SolutionStatus_2__(v):
  return isinstance(v,mosek_fusion_SolutionStatus)
def __arg_alt_match_Emosek_4fusion_4SolutionStatus_2__(v):
  return isinstance(v,mosek_fusion_SolutionStatus)
def __arg_match_LSystem_4CallbackHandler_2__(v):
  return v is None or isinstance(v,object)
def __arg_alt_match_LSystem_4CallbackHandler_2__(v):
  return __arg_match_LSystem_4CallbackHandler_2__(v)
def __arg_match_Lmosek_4fusion_4Matrix_2__(v):
  return v is None or isinstance(v,mosek_fusion_Matrix)
def __arg_alt_match_Lmosek_4fusion_4Matrix_2__(v):
  return __arg_match_Lmosek_4fusion_4Matrix_2__(v)
def __arg_match_Emosek_4fusion_4AccSolutionStatus_2__(v):
  return isinstance(v,mosek_fusion_AccSolutionStatus)
def __arg_alt_match_Emosek_4fusion_4AccSolutionStatus_2__(v):
  return isinstance(v,mosek_fusion_AccSolutionStatus)
def __arg_match__3Lmosek_4fusion_4Constraint_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Constraint) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Constraint_2__(v):
  return __arg_match__3Lmosek_4fusion_4Constraint_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Constraint_2__)
def __arg_match_Lmosek_4fusion_4Parameter_2__(v):
  return v is None or isinstance(v,mosek_fusion_Parameter)
def __arg_alt_match_Lmosek_4fusion_4Parameter_2__(v):
  return __arg_match_Lmosek_4fusion_4Parameter_2__(v)
def __arg_match_Lmosek_4fusion_4ModelConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_ModelConstraint)
def __arg_alt_match_Lmosek_4fusion_4ModelConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4ModelConstraint_2__(v)
def __arg_match_Lmosek_4fusion_4PSDVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_PSDVariable)
def __arg_alt_match_Lmosek_4fusion_4PSDVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4PSDVariable_2__(v)
def __arg_match_Lmosek_4fusion_4Term_2__(v):
  return v is None or isinstance(v,mosek_fusion_Term)
def __arg_alt_match_Lmosek_4fusion_4Term_2__(v):
  return __arg_match_Lmosek_4fusion_4Term_2__(v)
def __arg_match__3_3S__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3S__(i) for i in v.flatten()])
def __arg_alt_match__3_3S__(v):
  return __arg_match__3_3S__(v) or __arg_match_listof__(v,__arg_alt_match__3S__)
def __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(v):
  return v is None or isinstance(v,mosek_fusion_Utils_StringBuffer)
def __arg_alt_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(v):
  return __arg_match_Lmosek_4fusion_4Utils_4StringBuffer_2__(v)
def __arg_match__3_3I__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3I__(i) for i in v.flatten()])
def __arg_alt_match__3_3I__(v):
  return __arg_match__3_3I__(v) or __arg_match_listof__(v,__arg_alt_match__3I__)
def __arg_match_Lmosek_4fusion_4BaseVariable_2__(v):
  return v is None or isinstance(v,mosek_fusion_BaseVariable)
def __arg_alt_match_Lmosek_4fusion_4BaseVariable_2__(v):
  return __arg_match_Lmosek_4fusion_4BaseVariable_2__(v)
def __arg_match_Lmosek_4fusion_4Model_2__(v):
  return v is None or isinstance(v,mosek_fusion_Model)
def __arg_alt_match_Lmosek_4fusion_4Model_2__(v):
  return __arg_match_Lmosek_4fusion_4Model_2__(v)
def __arg_match_Lmosek_4fusion_4FusionException_2__(v):
  return v is None or isinstance(v,mosek_fusion_FusionException)
def __arg_alt_match_Lmosek_4fusion_4FusionException_2__(v):
  return __arg_match_Lmosek_4fusion_4FusionException_2__(v)
def __arg_match_Lmosek_4fusion_4ExprDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ExprDomain)
def __arg_alt_match_Lmosek_4fusion_4ExprDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ExprDomain_2__(v)
def __arg_match_Lmosek_4fusion_4ParameterImpl_2__(v):
  return v is None or isinstance(v,mosek_fusion_ParameterImpl)
def __arg_alt_match_Lmosek_4fusion_4ParameterImpl_2__(v):
  return __arg_match_Lmosek_4fusion_4ParameterImpl_2__(v)
def __arg_match_Lmosek_4fusion_4SolutionStruct_2__(v):
  return v is None or isinstance(v,mosek_fusion_SolutionStruct)
def __arg_alt_match_Lmosek_4fusion_4SolutionStruct_2__(v):
  return __arg_match_Lmosek_4fusion_4SolutionStruct_2__(v)
def __arg_match_Emosek_4fusion_4RelationKey_2__(v):
  return isinstance(v,mosek_fusion_RelationKey)
def __arg_alt_match_Emosek_4fusion_4RelationKey_2__(v):
  return isinstance(v,mosek_fusion_RelationKey)
def __arg_match__3_3Lmosek_4fusion_4Expression_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3Lmosek_4fusion_4Expression_2__(i) for i in v.flatten()])
def __arg_alt_match__3_3Lmosek_4fusion_4Expression_2__(v):
  return __arg_match__3_3Lmosek_4fusion_4Expression_2__(v) or __arg_match_listof__(v,__arg_alt_match__3Lmosek_4fusion_4Expression_2__)
def __arg_match__3Lmosek_4fusion_4Parameter_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Parameter) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Parameter_2__(v):
  return __arg_match__3Lmosek_4fusion_4Parameter_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Parameter_2__)
def __arg_match__3_3Lmosek_4fusion_4Matrix_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3Lmosek_4fusion_4Matrix_2__(i) for i in v.flatten()])
def __arg_alt_match__3_3Lmosek_4fusion_4Matrix_2__(v):
  return __arg_match__3_3Lmosek_4fusion_4Matrix_2__(v) or __arg_match_listof__(v,__arg_alt_match__3Lmosek_4fusion_4Matrix_2__)
def __arg_match_Lmosek_4fusion_4LinearConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_LinearConstraint)
def __arg_alt_match_Lmosek_4fusion_4LinearConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4LinearConstraint_2__(v)
def __arg_match__3Lmosek_4fusion_4SimpleTerm_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_SimpleTerm) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4SimpleTerm_2__(v):
  return __arg_match__3Lmosek_4fusion_4SimpleTerm_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__)
def __arg_match_Emosek_4fusion_4QConeKey_2__(v):
  return isinstance(v,mosek_fusion_QConeKey)
def __arg_alt_match_Emosek_4fusion_4QConeKey_2__(v):
  return isinstance(v,mosek_fusion_QConeKey)
def __arg_match_Lmosek_4fusion_4SimpleTerm_2__(v):
  return v is None or isinstance(v,mosek_fusion_SimpleTerm)
def __arg_alt_match_Lmosek_4fusion_4SimpleTerm_2__(v):
  return __arg_match_Lmosek_4fusion_4SimpleTerm_2__(v)
def __arg_match_Lmosek_4fusion_4Variable_2__(v):
  return v is None or isinstance(v,mosek_fusion_Variable)
def __arg_alt_match_Lmosek_4fusion_4Variable_2__(v):
  return __arg_match_Lmosek_4fusion_4Variable_2__(v)
def __arg_match_LSystem_4DataCallbackHandler_2__(v):
  return v is None or isinstance(v,object)
def __arg_alt_match_LSystem_4DataCallbackHandler_2__(v):
  return __arg_match_LSystem_4DataCallbackHandler_2__(v)
def __arg_match_Lmosek_4fusion_4Expression_2__(v):
  return v is None or isinstance(v,mosek_fusion_Expression)
def __arg_alt_match_Lmosek_4fusion_4Expression_2__(v):
  return __arg_match_Lmosek_4fusion_4Expression_2__(v)
def __arg_match_Lmosek_4fusion_4WorkStack_2__(v):
  return v is None or isinstance(v,mosek_fusion_WorkStack)
def __arg_alt_match_Lmosek_4fusion_4WorkStack_2__(v):
  return __arg_match_Lmosek_4fusion_4WorkStack_2__(v)
def __arg_match_Emosek_4fusion_4ObjectiveSense_2__(v):
  return isinstance(v,mosek_fusion_ObjectiveSense)
def __arg_alt_match_Emosek_4fusion_4ObjectiveSense_2__(v):
  return isinstance(v,mosek_fusion_ObjectiveSense)
def __arg_match__3_3Lmosek_4fusion_4Variable_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([__arg_match__3Lmosek_4fusion_4Variable_2__(i) for i in v.flatten()])
def __arg_alt_match__3_3Lmosek_4fusion_4Variable_2__(v):
  return __arg_match__3_3Lmosek_4fusion_4Variable_2__(v) or __arg_match_listof__(v,__arg_alt_match__3Lmosek_4fusion_4Variable_2__)
def __arg_match_Lmosek_4fusion_4ConicConstraint_2__(v):
  return v is None or isinstance(v,mosek_fusion_ConicConstraint)
def __arg_alt_match_Lmosek_4fusion_4ConicConstraint_2__(v):
  return __arg_match_Lmosek_4fusion_4ConicConstraint_2__(v)
def __arg_match__3Lmosek_4fusion_4Matrix_2__(v):
  return isinstance(v,numpy.ndarray) and v.ndim == 1 and v.dtype == numpy.dtype(object) and all([isinstance(i,mosek_fusion_Matrix) for i in v.flatten()])
def __arg_alt_match__3Lmosek_4fusion_4Matrix_2__(v):
  return __arg_match__3Lmosek_4fusion_4Matrix_2__(v) or __arg_match_listof__(v,__arg_alt_match_Lmosek_4fusion_4Matrix_2__)
def __arg_match_Lmosek_4fusion_4ConeDomain_2__(v):
  return v is None or isinstance(v,mosek_fusion_ConeDomain)
def __arg_alt_match_Lmosek_4fusion_4ConeDomain_2__(v):
  return __arg_match_Lmosek_4fusion_4ConeDomain_2__(v)
def __arg_match_Z__(v):
  return isinstance(v,bool) or isinstance(v,numpy.bool_)
def __arg_alt_match_Z__(v):
  return __arg_match_Z__(v)
def __arg_match_S__(v):
  return isinstance(v,str)
def __arg_alt_match_S__(v):
  return __arg_match_S__(v)
def __arg_match_listof__(v,f): return isinstance(v,list) and all([ f(i) for i in v])
import mosek
import mosek.fusion
import mosek.fusion.Utils
