def _multi_variate(base_ring, num_gens=None, names=None, order='negdeglex', default_prec=None, sparse=False): """ Construct multivariate power series ring. """ if names is None: raise TypeError("you must specify a variable name or names") if num_gens is None: if isinstance(names, str): num_gens = len(names.split(',')) elif isinstance(names, (list, tuple)): num_gens = len(names) else: raise TypeError("variable names must be a string, tuple or list") names = normalize_names(num_gens, names) num_gens = len(names) if default_prec is None: default_prec = 12 if base_ring not in commutative_rings.CommutativeRings(): raise TypeError("base_ring must be a commutative ring") from sage.rings.multi_power_series_ring import MPowerSeriesRing_generic R = MPowerSeriesRing_generic(base_ring, num_gens, names, order=order, default_prec=default_prec, sparse=sparse) return R
import laurent_series_ring_element import commutative_ring import integral_domain import integer from infinity import infinity import sage.misc.latex as latex from sage.structure.nonexact import Nonexact from sage.interfaces.magma import MagmaElement from sage.rings.fraction_field_element import FractionFieldElement from sage.misc.sage_eval import sage_eval from sage.structure.unique_representation import UniqueRepresentation from sage.structure.category_object import normalize_names import sage.categories.commutative_rings as commutative_rings _CommutativeRings = commutative_rings.CommutativeRings() import sage.categories.integral_domains as integral_domains _IntegralDomains = integral_domains.IntegralDomains() import sage.categories.fields as fields _Fields = fields.Fields() from sage.categories.complete_discrete_valuation import CompleteDiscreteValuationRings def PowerSeriesRing(base_ring, name=None, arg2=None, names=None, sparse=False, default_prec=None, order='negdeglex',