|
- class Unique(object):
- def __init__(self,name):
- self.name = name
-
- def __str__(self):
- return self.name
-
- def __repr__(self):
- return "Unique(\"%s\")" % self.name
-
- class Idealized(object):
- UNION = ["UNION"]
-
- def __init__(self, R, idealMap = 0, vars = {}):
- self.varnames = vars
- if not isinstance(idealMap,dict):
- idealMap = {()*R:idealMap}
- self.idealMap = idealMap
- self.R = R
- self._sqrt = None
- self._isqrt = None
-
- @staticmethod
- def uvar(x):
- return Idealized.var(Unique(x))
-
- @staticmethod
- def var(x):
- name = str(x)
- R = PolynomialRing(QQ,[name])
- rx = R.gens()[0]
- return Idealized(R,rx,{x:(name,rx)})
-
- @staticmethod
- def vars(xs):
- return tuple((Idealized.var(x) for x in xs))
-
- @staticmethod
- def uvars(xs):
- return tuple((Idealized.uvar(x) for x in xs))
-
- def __str__(self):
- def rep(I,x):
- x = str(x)
- gs = I.gens()
- gs = [g for g in gs if g != 0]
- if len(gs) == 0: return x
- else:
-
|