def __new__(cls, *args, symmetric=False, hermitian=False, real=False, unitary=False): if args[1] != args[2]: if symmetric or hermitian or unitary: loggingCritical( "Matrix <" + args[0] + "> cannot be symmetric, hermitian or unitary since it is not a square matrix." ) exit() if not args[1] == args[2] == 1: obj = Symbol.__new__(cls, args[0], commutative=False, hermitian=hermitian) obj.is_symmetric = symmetric obj.is_realMatrix = real obj.is_unitary = unitary else: obj = Symbol.__new__(cls, args[0], real=real) obj.shape = (args[1], args[2]) return obj
def __new__(cls, constant: constants.Constant, is_natural_unit: bool = False): s = Symbol.__new__(cls, name=constant.abbrev) s._constant = constant s._is_natural_unit = is_natural_unit return s
def __new__(cls, name, dim=None): obj = Symbol.__new__(cls, name) obj.dim = dim obj._fields = None obj._field_names = None obj._constant_fields = None return obj
def __new__(cls, name, *karg, **kargs): # We use dbname as an "assumption" so that two symbols with same name are not equal if from separate DBs assumptions = dict() if 'dbname' in kargs and kargs['dbname']: assumptions[kargs['dbname']] = True return Symbol.__new__(cls, name, **assumptions)
def __new__(cls, i, label="sigma"): if not i in [1, 2, 3]: raise IndexError("Invalid Pauli index") obj = Symbol.__new__(cls, "%s%d" %(label,i), commutative=False, hermitian=True) obj.i = i obj.label = label return obj
def __new__(cls, name, constant=None, fundamental=None, substitution=None, substitution_atoms=None, datatype=None, **assumptions): from sympy import Symbol return Symbol.__new__(cls, name, **assumptions)
def __new__(cls, ten, rank=None, shape=None, has_inv=None, transposed=None, **kws): # Handle either str or change the behavior if isinstance(ten, str): name = ten if rank is None: raise ValueError("Must give rank with string arg.") if name in ['0', '1']: name = "%s_%d" % (name, rank) if name.startswith('0'): has_inv = False elif name.startswith('1') and rank in [0, 2]: has_inv = True elif rank == 0: has_inv = True elif has_inv is None: has_inv = False elif isinstance(ten, Tensor): name = ten.name if has_inv is None: has_inv = ten.has_inverse if not rank is None and rank != ten.rank: raise ValueError("Given rank and rank of ten don't match") if shape is None and transposed is None: shape = ten.shape if transposed is None: transposed = ten.transposed rank = ten.rank else: raise ValueError("Unable to create Tensor from a %s" \ % type(ten)) if rank > 0 and not kws.has_key("commutative"): kws['commutative'] = False if transposed is None: transposed = False if transposed: name += "'" obj = Symbol.__new__(cls, name, **kws) obj.rank = rank obj.has_inverse = has_inv obj.transposed = transposed obj._set_default_shape(shape) return obj
def __new__ (cls, ten, rank=None, shape=None, has_inv=None, transposed=None, **kws): # Handle either str or change the behavior if isinstance(ten, str): name = ten if rank is None: raise ValueError("Must give rank with string arg.") if name in ['0', '1']: name = "%s_%d" % (name, rank) if name.startswith('0'): has_inv = False elif name.startswith('1') and rank in [0, 2]: has_inv = True elif rank == 0: has_inv = True elif has_inv is None: has_inv = False elif isinstance(ten, Tensor): name = ten.name if has_inv is None: has_inv = ten.has_inverse if not rank is None and rank != ten.rank: raise ValueError("Given rank and rank of ten don't match") if shape is None and transposed is None: shape = ten.shape if transposed is None: transposed = ten.transposed rank = ten.rank else: raise ValueError("Unable to create Tensor from a %s" \ % type(ten)) if rank > 0 and not kws.has_key("commutative"): kws['commutative'] = False if transposed is None: transposed = False if transposed: name += "'" obj = Symbol.__new__(cls, name, **kws) obj.rank = rank obj.has_inverse = has_inv obj.transposed = transposed obj._set_default_shape(shape) return obj
def __new__(cls, name=None, longname=None): if name is None or name == "": name = "NoName_"+str(Quantity.dummy_count) Quantity.dummy_count += 1 self = Dummy.__new__(cls, name) else: self = Symbol.__new__(cls, name) self.count = Quantity.quantity_count Quantity.quantity_count += 1 self.abbrev = name self.name = name self.longname = longname self.value = None self.value_formula = None self.error = None self.error_formula = None self.prefer_unit = None self.dim = None return self
def __new__(cls, data, step_size=1.0): return Symbol.__new__( cls, 'lits%s_%s' % (hashlib.sha1(np.array(data)).hexdigest(), step_size))
def __new__(cls, name, rank=None, dim=1, space="L2"): obj = Symbol.__new__(cls, name) obj.dim = dim obj.space = space obj.rank = rank return obj
def __new__(cls, name: str, kernel_one_d: Kern): obj = Symbol.__new__(cls, name) obj.kernel_one_d = kernel_one_d return obj
def __new__(cls, name, rank=None, dim=None): obj = Symbol.__new__(cls, name) obj.rank = rank return obj
def __new__(cls, name, parent, **kwargs): newobj = Symbol.__new__(cls, name) assert isinstance(parent, Dimension) newobj.parent = parent newobj.modulo = kwargs.get('modulo', 2) return newobj
def __new__(cls, name, *args, **assumptions): return Symbol.__new__(cls, name.upper(), real=True, **assumptions)
def __new__(cls, name): self = Symbol.__new__(cls, name) self.abbrev = name self.name = name return self
def __new__(cls, data, step_size=1.0): return Symbol.__new__(cls, "lits%s_%s" % (hashlib.sha1(np.array(data)).hexdigest(), step_size))
def __new__(cls, i): if not i in [1,2,3]: raise IndexError("Invalid Pauli index") obj = Symbol.__new__(cls, "sigma%d"%i, commutative=False) obj.i=i return obj
def __new__(cls, name, **kwargs): newobj = Symbol.__new__(cls, name) newobj.size = kwargs.get('size', None) return newobj
def __new__(self, *args): obj = Symbol.__new__(self, str(tuple([str(el) for el in args]))) return obj
def __new__(cls, name, comment=None): return Symbol.__new__(cls, name)
def __new__(cls, name, *args): return Symbol.__new__(cls, name)
def __new__(cls, data, index='x', where=None): return Symbol.__new__( cls, 'spatarr%s_%s' % (hashlib.sha1(np.array(data)).hexdigest(), index))
def __new__(cls, name, **kwargs): newobj = Symbol.__new__(cls, name) newobj.size = kwargs.get('size', None) newobj.reverse = kwargs.get('reverse', False) newobj.spacing = kwargs.get('spacing', Symbol('h_%s' % name)) return newobj
def __new__(cls, name, constant=None, fundamental=None, substitution=None, substitution_atoms=None, datatype=None, **assumptions) : from sympy import Symbol return Symbol.__new__(cls, name, **assumptions)
def __new__(cls, name, buffered, offset, **kwargs): newobj = Symbol.__new__(cls, name) assert isinstance(buffered, BufferedDimension) newobj.buffered = buffered newobj.offset = offset return newobj
def __new__(cls, name): return Symbol.__new__(cls, name.upper(), nonnegative=True, real=True)
def __new__(cls, i): if not i in [1, 2, 3]: raise IndexError("Invalid Pauli index") obj = Symbol.__new__(cls, "sigma%d" % i, commutative=False) obj.i = i return obj
def __new__(cls, base): obj = Symbol.__new__(cls, base.label.name) obj.base = base obj.indices = () obj.function = base.function return obj