ElementaryFunctionStructurePackage(R, F)¶
efstruc.spad line 78 [edit on github]
R: Join(IntegralDomain, Comparable, RetractableTo Integer, LinearlyExplicitOver Integer)
F: Join(AlgebraicallyClosedField, TranscendentalFunctionCategory, FunctionSpace R)
ElementaryFunctionStructurePackage provides functions to test the algebraic independence of various elementary functions, using the Risch structure theorem (real and complex versions). It also provides transformations on elementary functions which are not considered simplifications.
- irootDep: Kernel F -> Union(vec: Vector Fraction Integer, func: F, fail: Boolean)
irootDep(k)is a local function with a conditional implementation.
- normalize: (F, Symbol) -> F
normalize(f, x)is normalize([f], [x])
- normalize: (List F, List Symbol) -> List F
normalize([f1, ..., fn], lx)rewritesf1, ..., fnusing the least possible number of real algebraically independent kernels. Additionally, it tries to ensure that any expression in resulting kernels which syntactically depends on a variablexfromlxhas nonzero derivative with respect tox.
- normalize: F -> F
normalize(f)rewritesfusing the least possible number of real algebraically independent kernels.
- realElementary: (F, Symbol) -> F
realElementary(f, x)rewrites the kernels offinvolvingxin terms of the 4 fundamental real transcendental elementary functions:log, exp, tan, atan.
- realElementary: F -> F
realElementary(f)rewritesfin terms of the 4 fundamental real transcendental elementary functions:log, exp, tan, atan.
- realLiouvillian: (F, Symbol) -> F
realLiouvillian(f, x)rewritesfelementary kernels offin terms 4 fundamental real elementary functions:log, exp, tan, atan. Additionally, it rewrites Liouvillian functions ofxas indefinite integrals to support better normalization.
- realLiouvillian: F -> F
realLiouvillian(f)rewritesfelementary kernels offin terms 4 fundamental real elementary functions:log, exp, tan, atan. Additionally, it rewrites Liouvillian functions as indefinite integrals to support better normalization.
- rischNormalize: (F, List Symbol) -> Record(func: F, kers: List Kernel F, vals: List F)
rischNormalize(f, lx)is rischNormalize([f],lx)
- rischNormalize: (F, Symbol) -> Record(func: F, kers: List Kernel F, vals: List F)
rischNormalize(f, x)is rischNormalize([f], [x]) rischNormalize(f,x) returns[g, [k1, ..., kn], [h1, ..., hn]]such thatg = normalize(f, x)and eachkiwas rewritten ashiduring the normalization.
- rischNormalize: (List F, List Symbol) -> Record(funcs: List F, kers: List Kernel F, vals: List F)
rischNormalize(lf, lx)returns[lg, [k1, ..., kn], [h1, ..., hn]]such thatlg = normalize(lf, lx)and eachkiwas rewritten ashiduring the normalization.
- rmap: (Kernel F -> F, F) -> F
rmap(f, e)rewritesereplacing each kernelkinebyf(k)
- rootNormalize: (F, Kernel F) -> F
rootNormalize(f, k)returnsfrewriting eitherkwhich must be annth-root in terms of radicals already inf, or some radicals infin terms ofk.