"Public" functions in nalgfa.lisp



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