Dan Stanger <dan.stanger@ieee.org> writes:
> Does anyone know what the following functions in the file nalgfa.lisp
> do?
> $algtrace
> $algfac
> $pfactoralg
> $splitfield
> $algnorm
> $bdiscr
Clearly, the general setting is an algebraic extension L=K[X]/(p) of
K, where p is an irreducible polynomial in X and K is whatever happens
to be Maxima's idea of a base field. For simplicity, I will assume
that K = Q.
Now, here is a simple example.
(C1) p:x^3-2;
3
(D1) x - 2
(C2) algtrace(x,p,x);
(D2)/R/ 0
(C3) algtrace(x+1,p,x);
(D3)/R/ 3
(C4) algnorm(x,p,x);
(D4)/R/ - 2
(C5) algnorm(1/x,p,x);
1
(D5)/R/ ---
- 2
(C6) splitfield(p,x);
4 4 4
6 ALG1 + 18 ALG1 ALG1 ALG1 - 18 ALG1
(D6)/R/ [ALG1 + 108, - ---------------, -----, - ---------------]
36 18 36
(C7)
So I guess (I haven't looked very closely at the algorithms yet) that,
for some r contained in L, ALGTRACE(r,p,x) is (surprise!) the trace of
r wrt the extension L/K and ALGNORM(r,p,x) is the norm of r wrt L/K.
Further, SPLITFIELD(p,x) seems to return a list whose first element is
an irreducible polynomial q(Y) over K such that K[Y]/(q) is `the'
splitting field of L, and whose remaining elements are the zeros of p
expressed in terms of (the residue class of) Y. That is, we get the
various embeddings of L in its splitting field.
For BDISCR we have a comment in the sources, which explains that it
computes the discriminant of a basis (of L as a K-vector space). In
our example, 1, x, x^2 form a basis of L/K and I think
BDISCR(1,x,x^2,p) should give the discriminant wrt this basis (i.e.,
the discriminant of p), but it triggers an error (in Clisp).
For ALGFAC and PFACTORALG I have to look at the sources.
Wolfgang
--
wjenkner@inode.at