PartialFraction RΒΆ
pfr.spad line 1 [edit on github]
The domain PartialFraction implements partial fractions over a euclidean domain R
. This requirement on the argument domain allows us to normalize the fractions. Of particular interest are the 2 forms for these fractions. The compact\ ``''
form has only one fractional term per prime in the denominator, while the ``p
-adic''
form expands each numerator p
-adically via the prime p
in the denominator. For computational efficiency, the compact form is used, though the p
-adic form may be gotten by calling the function padicFraction. For a general euclidean domain, it is not known how to factor the denominator. Thus the function partialFraction takes an element of Factored(R) as its second argument.
- 0: %
from AbelianMonoid
- 1: %
from MagmaWithUnit
- *: (%, %) -> %
from Magma
- *: (%, Fraction Integer) -> %
from RightModule Fraction Integer
- *: (%, R) -> %
from RightModule R
- *: (Fraction Integer, %) -> %
from LeftModule Fraction Integer
- *: (Integer, %) -> %
from AbelianGroup
- *: (NonNegativeInteger, %) -> %
from AbelianMonoid
- *: (PositiveInteger, %) -> %
from AbelianSemiGroup
- *: (R, %) -> %
from LeftModule R
- +: (%, %) -> %
from AbelianSemiGroup
- -: % -> %
from AbelianGroup
- -: (%, %) -> %
from AbelianGroup
- ^: (%, Integer) -> %
from DivisionRing
- ^: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
from Magma
- annihilate?: (%, %) -> Boolean
from Rng
- antiCommutator: (%, %) -> %
- associates?: (%, %) -> Boolean
from EntireRing
- associator: (%, %, %) -> %
from NonAssociativeRng
- characteristic: () -> NonNegativeInteger
from NonAssociativeRing
- coerce: % -> Fraction R
coerce(p)
sums up the components of the partial fraction and returns a single fraction.- coerce: % -> OutputForm
from CoercibleTo OutputForm
- coerce: Fraction Factored R -> %
coerce(f)
takes a fraction with numerator and denominator in factored form and creates a partial fraction. It is necessary for the parts to be factored because it is not known in general how to factor elements ofR
and this is needed to decompose into partial fractions.- coerce: Fraction Integer -> %
- coerce: Integer -> %
from NonAssociativeRing
- coerce: R -> %
from Algebra R
- commutator: (%, %) -> %
from NonAssociativeRng
- compactFraction: % -> %
compactFraction(p)
normalizes the partial fractionp
to the compact representation. In this form, the partial fraction has only one fractional term per prime in the denominator.
- divide: (%, %) -> Record(quotient: %, remainder: %)
from EuclideanDomain
- euclideanSize: % -> NonNegativeInteger
from EuclideanDomain
- expressIdealMember: (List %, %) -> Union(List %, failed)
from PrincipalIdealDomain
- exquo: (%, %) -> Union(%, failed)
from EntireRing
- extendedEuclidean: (%, %) -> Record(coef1: %, coef2: %, generator: %)
from EuclideanDomain
- extendedEuclidean: (%, %, %) -> Union(Record(coef1: %, coef2: %), failed)
from EuclideanDomain
- fractionalTerms: % -> List Record(num: R, d_fact: R, d_exp: NonNegativeInteger)
fractionalTerms(p)
extracts the fractional part ofp
to a list of Record(num :R
, den : FactoredR
). This returns [] if there is no fractional part.
- gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
from GcdDomain
- group_terms: List Record(num: R, d_fact: R, d_exp: NonNegativeInteger) -> List Record(num: R, d_fact: R, d_exp: NonNegativeInteger)
Should be local but conditional.
- inv: % -> %
from DivisionRing
- latex: % -> String
from SetCategory
- lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %)
from LeftOreRing
- leftPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
from Magma
- leftRecip: % -> Union(%, failed)
from MagmaWithUnit
- multiEuclidean: (List %, %) -> Union(List %, failed)
from EuclideanDomain
- numberOfFractionalTerms: % -> Integer
numberOfFractionalTerms(p)
computes the number of fractional terms inp
. This returns 0 if there is no fractional part.
- one?: % -> Boolean
from MagmaWithUnit
- opposite?: (%, %) -> Boolean
from AbelianMonoid
- padicallyExpand: (R, R) -> SparseUnivariatePolynomial R
padicallyExpand(p, x)
is a utility function that expands the second argumentx
``p
-adically''
in the first.
- padicFraction: % -> %
padicFraction(q)
expands the fractionp
-adically in the primesp
in the denominator ofq
. For example,padicFraction(3/(2^2)) = 1/2 + 1/(2^2)
. Use compactFraction to return to compact form.
- partialFraction: (R, Factored R) -> %
partialFraction(numer, denom)
is the main function for constructing partial fractions. The second argument is the denominator and should be factored.
- partialFraction: Fraction R -> % if R has UniqueFactorizationDomain
partialFraction(f)
is a user friendly interface for partial fractions whenf
is a fraction of UniqueFactorizationDomain.
- plenaryPower: (%, PositiveInteger) -> %
- principalIdeal: List % -> Record(coef: List %, generator: %)
from PrincipalIdealDomain
- quo: (%, %) -> %
from EuclideanDomain
- recip: % -> Union(%, failed)
from MagmaWithUnit
- rem: (%, %) -> %
from EuclideanDomain
- rightPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> %
from Magma
- rightRecip: % -> Union(%, failed)
from MagmaWithUnit
- sample: %
from AbelianMonoid
- sizeLess?: (%, %) -> Boolean
from EuclideanDomain
- squareFree: % -> Factored %
- squareFreePart: % -> %
- subtractIfCan: (%, %) -> Union(%, failed)
- unit?: % -> Boolean
from EntireRing
- unitCanonical: % -> %
from EntireRing
- unitNormal: % -> Record(unit: %, canonical: %, associate: %)
from EntireRing
- wholePart: % -> R
wholePart(p)
extracts the whole part of the partial fractionp
.
- zero?: % -> Boolean
from AbelianMonoid
Algebra %
Algebra R
BiModule(%, %)
BiModule(Fraction Integer, Fraction Integer)
BiModule(R, R)
Module %
Module R