login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

This package extends UnivariatePolynomialCommonDenominator? for arbitrary polynomial categories. In fact, I don't understand why the original package is so restrictive.

spad
)abbrev package PCDEN PolynomialCommonDenominator
PolynomialCommonDenominator(R, Q, P, E, VarSet): Exports == Impl where
  R : IntegralDomain
  Q : QuotientFieldCategory R
  E : OrderedAbelianMonoidSup
  VarSet: OrderedSet
  P: PolynomialCategory(Q, E,VarSet)
Exports ==> with commonDenominator: P -> R ++ commonDenominator(q) returns a common denominator d for ++ the coefficients of q. clearDenominator : P -> P ++ clearDenominator(q) returns p such that \spad{q = p/d} where d is ++ a common denominator for the coefficients of q. splitDenominator : P -> Record(num: P, den: R) ++ splitDenominator(q) returns \spad{[p, d]} such that \spad{q = p/d} and d ++ is a common denominator for the coefficients of q.
Impl ==> add import CommonDenominator(R, Q, List Q)
commonDenominator p == commonDenominator coefficients p
clearDenominator p == d := commonDenominator p map(numer(d * #1)::Q, p)
splitDenominator p == d := commonDenominator p [map(numer(d * #1)::Q, p), d]
spad
   Compiling FriCAS source code from file 
      /var/zope2/var/LatexWiki/3743324978057018076-25px001.spad using 
      old system compiler.
   PCDEN abbreviates package PolynomialCommonDenominator 
   processing macro definition Exports ==> -- the constructor category 
   processing macro definition Impl ==> -- the constructor capsule 
------------------------------------------------------------------------
   initializing NRLIB PCDEN for PolynomialCommonDenominator 
   compiling into NRLIB PCDEN 
   importing CommonDenominator(R,Q,List Q)
   compiling exported commonDenominator : P -> R
Time: 0.20 SEC.
compiling exported clearDenominator : P -> P Time: 0.01 SEC.
compiling exported splitDenominator : P -> Record(num: P,den: R) Time: 0 SEC.
(time taken in buildFunctor: 0)
;;; *** |PolynomialCommonDenominator| REDEFINED
;;; *** |PolynomialCommonDenominator| REDEFINED Time: 0 SEC.
Cumulative Statistics for Constructor PolynomialCommonDenominator Time: 0.21 seconds
finalizing NRLIB PCDEN Processing PolynomialCommonDenominator for Browser database: --------(commonDenominator (R P))--------- --------(clearDenominator (P P))--------- --------(splitDenominator ((Record (: num P) (: den R)) P))--------- --->-->PolynomialCommonDenominator(constructor): Not documented!!!! --->-->PolynomialCommonDenominator(): Missing Description ------------------------------------------------------------------------ PolynomialCommonDenominator is now explicitly exposed in frame initial PolynomialCommonDenominator will be automatically loaded when needed from /var/zope2/var/LatexWiki/PCDEN.NRLIB/code

Example use:

axiom
)set mess type off
dom:=DMP([x,y], FRAC DMP([z],INT));
p:dom:=x*y^3/(z^2-1) + 3*x*y/(z^3-1)
LatexWiki Image(1)
axiom
commonDenominator p
LatexWiki Image(2)
axiom
clearDenominator p
LatexWiki Image(3)
axiom
splitDenominator p
LatexWiki Image(4)




subject:
  ( 7 subscribers )  
Please rate this page: