  GNU-Darwin Web

## Files of user defined functions

There are several files of user defined functions under the standard library directory. (`/usr/local/lib/asir' by default.) Here, we explain some of them.

`fff'
Univariate factorizer over large finite fields (See section Finite fields.)
`gr'
Groebner basis package. (See section Groebner basis computation.)
`sp'
Operations over algebraic numbers and factorization, Splitting fields. (See section Algebraic numbers.)
`alpi'
`bgk'
`cyclic'
`katsura'
`kimura'
Example polynomial sets for benchmarks of Groebner basis computation. (See section `katsura`, `hkatsura`, `cyclic`, `hcyclic`.)
`defs.h'
Macro definitions. (See section preprocessor.)
`fctrtest'
Test program of factorization of integral polynomials. It includes `factor.tst' of REDUCE and several examples for large multiplicity factors. If this file is `load()`'ed, computation will begin immediately. You may use it as a first test whether Asir at you hand runs correctly.
`fctrdata'
This contains example polynomials for factorization. It includes polynomials used in `fctrtest'. Polynomials contained in vector `Alg[]` is for the algebraic factorization `af()`. (See section `asq`, `af`, `af_noalg`.)
``` load("sp")\$
 cputime(1)\$
0msec
 Alg;
x^9-15*x^6-87*x^3-125
0msec
 af(Alg,[newalg(Alg)]);
[[1,1],[75*x^2+(10*#0^7-175*#0^4-470*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],
[75*x^2+(-10*#0^7+175*#0^4+395*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],
[25*x^2+(25*#0)*x+(#0^8-15*#0^5-87*#0^2),1],[x^2+(#0)*x+(#0^2),1],
[x+(-#0),1]]
3.600sec + gc : 1.040sec
```
`ifplot'
Examples for plotting. (See section `ifplot`, `conplot`, `plot`, `polarplot`, `plotover`.) Vector `IS[]` contains several famous algebraic curves. Variables `H, D, C, S` contains something like the suits (Heart, Diamond, Club, and Spade) of cards.
`num'
Examples of simple operations on numbers.
`mat'
Examples of simple operations on matrices.
`ratint'
Indefinite integration of rational functions. For this, files `sp' and `gr' is necessary. A function `ratint()` is defined. Its returns a rather complex result.
``` load("gr")\$
In this example, indefinite integral of the rational function `x^6/(x^5+x+1)` is computed. The result is a list which comprises two elements: The first element is the rational part of the integral; The second part is the logarithmic part of the integral. The logarithmic part is again a list which comprises finite number of elements, each of which is of form `[root*log(poly),defpoly]`. This pair should be interpreted to sum up the expression `root*log(poly)` through all root's `root`'s of the `defpoly`. Here, `poly` contains `root`, and substitution for `root` is equally applied to `poly`. The logarithmic part in total is obtained by applying such interpretation to all element pairs in the second element of the result and then summing them up all.
Primary ideal decomposition of polynomial ideals and prime compotision of radicals (see section `primadec`, `primedec`).