@Override public Polynomial expand(IdealFactory factory) { NumericPrimitive primitive = primitive(); Polynomial expandedPrimitive = primitive.expand(factory); if (primitive.equals(expandedPrimitive)) return this; return (Polynomial) factory.power(expandedPrimitive, exponent()); }
@Override public Polynomial denominator(IdealFactory factory) { return factory.one(type()); }
@Override public SymbolicMap<Monic, Monomial> termMap(IdealFactory factory) { return factory.singletonMap((Monic) this, (Monomial) this); }
@Override public Constant monomialConstant(IdealFactory factory) { return factory.one(type()); }
@Override public SymbolicMap<NumericPrimitive, PrimitivePower> monicFactors(IdealFactory factory) { return factory.singletonMap(primitive(), (PrimitivePower) this); }
@Override public Constant constantTerm(IdealFactory factory) { return factory.zero(type()); }