class POLYS_RAT < $STR,$IS_LT{POLYS_RAT}
****
POLYS_RAT is PID.


Ancestors
$IS_LT{_} $IS_EQ $STR



Public


Readable Attributes
attr arr: ARRAY{R}; .. Included as arr

Writable Attributes
attr arr: ARRAY{R}; .. Included as arr

Readonly Shareds
shared divmodForce0:BOOL; .. Included as divmodForce0
shared r_0:R; .. Included as r_0
shared r_1:R; .. Included as r_1

Writable Shareds
shared divmodForce0:BOOL; .. Included as divmodForce0
shared r_0:R; .. Included as r_0
shared r_1:R; .. Included as r_1

Features
aget(i:INT): R .. Included as aget
allocate(d:INT):SAME .. Included as allocate
**** degree "d"
array:ARRAY{R} .. Included as array
aset(i:INT, v:R) .. Included as aset
clear .. Included as clear
compare(other:SAME):INT .. Included as compare
**** <=>: -1 if "<", 0 if "=", 1 if ">" .
compare(other:SAME):INT .. Included as compare_o
**** <=>: -1 if "<", 0 if "=", 1 if ">" .
copy:SAME .. Included as copy
countSolution(a,b: R, countRedundancy:BOOL):INT .. Included as countSolution
countSolution(a,b: R, infty_n,infty:BOOL , countRedundancy:BOOL):INT .. Included as countSolution
**** count # of solution between a and b using Sturm's algorithm. infty_n : a is -infinity, infty : b is infinity R Rational,Float
countSturmChange(a:R,infty_n,infty:BOOL, sturm:ARRAY{SAME}):INT .. Included as countSturmChange
create(a:ARRAY{R}):SAME .. Included as create
create(c:R): SAME .. Included as create
**** same as create(c,0)
create(c:R,d:INT): SAME .. Included as create
**** c*x^(d)
create: SAME .. Included as create
**** same as create(r_0,c)
degree:INT .. Included as degree
derivative(n:INT):SAME .. Included as derivative
**** n-th derivative
derivative:SAME .. Included as derivative
div(other:SAME): SAME .. Included as div
divmod(force0:BOOL, divisor:SAME, out q:SAME, out r:SAME) .. Included as divmod
**** R be field or PID "force0" be true to force "0" at head of remainder. true: continuous field e.g.FLT,FLTD, CPX,CPXD... false: PID or discrete field or RAT e.g. INT,INTI,RAT,finite field
divmod(divisor:SAME, out q:SAME, out r:SAME) .. Included as divmod
evenly_divides(o:SAME):BOOL .. Included as evenly_divides
****
__self|o._True_if_self_evenly_divides_`o'.
exp_gen_func(a:ARRAY{R}):SAME .. Included as exp_gen_func
**** exponential generating function
extended_gcd(a:ARRAY{SAME},out factor:ARRAY{SAME}):SAME .. Included as extended_gcd
**** multi GCD. return GCD g. g = a . factor
extended_gcd(o:SAME,out f1: SAME, out f2:SAME):SAME .. Included as extended_gcd
**** gcd = self*f1 + o*f2
gcd(a:ARRAY{SAME}):SAME .. Included as gcd
**** multi GCD. return GCD of elements of a[].
gcd(o:SAME):SAME .. Included as gcd
gcd_coeff_num:INTI
**** gcd of numerator of coefficients as Rational
gen_func(a:ARRAY{R}):SAME .. Included as gen_func
**** generating function.
getSturm(out gcd_s:SAME,out sturm:ARRAY{SAME}) .. Included as getSturm
init
integral(n:INT):SAME .. Included as integral
**** integral n-times
integral:SAME .. Included as integral
is_SqrFree:BOOL
is_eq(other:SAME): BOOL .. Included as is_eq
is_eq(arg: $OB): BOOL .. Included as is_eq
**** Overloaded version of the is_eq routine that works with an argument of any type. If the type of the 'arg' is not the same as they type of 'self' then return false. Otherwise, deletegate to the 'real' is_eq(SAME):BOOL routine
is_lt(other:SAME): BOOL .. Included as is_lt
****
____expr1_<_expr2_____expr1.is_lt(expr2)
return degree<other.degree;
is_one:BOOL .. Included as is_one
is_zero: BOOL .. Included as is_zero
lc: R .. Included as lc
**** lc: leading coefficient
lcm(o:SAME):SAME .. Included as lcm
lcm_coeff_den:INTI
**** lcm of of denominator of coefficients as Rarional
low_deg:INT .. Included as low_deg
**** (lowest degree of non-zero term) or 0.
lp:SAME .. Included as lp
**** leading power product
lt:SAME .. Included as lt
**** leading term
mindeg:INT .. Included as mindeg
**** minimum degree of non-zero term
minus(other:INT):SAME .. Included as minus
minus(other:SAME):SAME .. Included as minus
minus(other:R):SAME .. Included as minus
mod(other:ARRAY{SAME}):SAME .. Included as mod
**** mod for multi division
mod(other:SAME): SAME .. Included as mod
monic .. Included as monic
**** make monic i.e. f(x/lc)*(lc^(degree-1))
negate:SAME .. Included as negate
normalize .. Included as normalize
**** destructive. ### Note that arr[0]==0 for polynomial "0".
normalize:SAME .. Included as normalize
one:SAME .. Included as one
plus(other:INT):SAME .. Included as plus
plus(other:SAME):SAME .. Included as plus
plus(other:R):SAME .. Included as plus
polys_inti:POLYS_INTI
****
pow(power:INT): SAME .. Included as pow
pow(power:INTI): SAME .. Included as pow
pseudo_monic(c:R) .. Included as pseudo_monic
**** f(x/c)*(c^degree)
reverseDeg:SAME .. Included as reverseDeg
shift0:SAME .. Included as shift0
shift_deg(d:INT):SAME .. Included as shift_deg
**** self * (x^d)
squareFreeDecomposition:ARRAY{SAME} .. Included as squareFreeDecomposition
str(format:STR, v:STR, r:BOOL): STR .. Included as str
**** needed "is_lt" in R. format: "text","tex", "texm", "prog" v: variable, r: switch of order. true:decreasing order. false:increasing order
str:STR .. Included as str
substitute(x:SAME):SAME .. Included as substitute
substitute(x:R):R .. Included as substitute
times(other:INT):SAME .. Included as times
times(other:SAME): SAME .. Included as times
times(other:R):SAME .. Included as times
x:SAME .. Included as x
zero:SAME .. Included as zero

The Sather Home Page