1 | head 1.2;
|
---|
2 | access;
|
---|
3 | symbols;
|
---|
4 | locks; strict;
|
---|
5 | comment @;;; @;
|
---|
6 |
|
---|
7 |
|
---|
8 | 1.2
|
---|
9 | date 2009.01.22.04.04.10; author marek; state Exp;
|
---|
10 | branches;
|
---|
11 | next 1.1;
|
---|
12 |
|
---|
13 | 1.1
|
---|
14 | date 2009.01.19.09.26.55; author marek; state Exp;
|
---|
15 | branches;
|
---|
16 | next ;
|
---|
17 |
|
---|
18 |
|
---|
19 | desc
|
---|
20 | @@
|
---|
21 |
|
---|
22 |
|
---|
23 | 1.2
|
---|
24 | log
|
---|
25 | @*** empty log message ***
|
---|
26 | @
|
---|
27 | text
|
---|
28 | @;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: Grobner; Base: 10 -*-
|
---|
29 | #|
|
---|
30 | $Id$
|
---|
31 | *--------------------------------------------------------------------------*
|
---|
32 | | Copyright (C) 1994, Marek Rychlik (e-mail: rychlik@@math.arizona.edu) |
|
---|
33 | | Department of Mathematics, University of Arizona, Tucson, AZ 85721 |
|
---|
34 | | |
|
---|
35 | | Everyone is permitted to copy, distribute and modify the code in this |
|
---|
36 | | directory, as long as this copyright note is preserved verbatim. |
|
---|
37 | *--------------------------------------------------------------------------*
|
---|
38 | |#
|
---|
39 |
|
---|
40 | (defpackage "MODULAR-POLY"
|
---|
41 | (:export modular-trace modular-trace-1)
|
---|
42 | (:use "MODULAR" "POLY" "COMMON-LISP"))
|
---|
43 |
|
---|
44 | (in-package "MODULAR-POLY")
|
---|
45 |
|
---|
46 | #+debug(proclaim '(optimize (speed 0) (debug 3)))
|
---|
47 | #-debug(proclaim '(optimize (speed 3) (debug 0)))
|
---|
48 |
|
---|
49 | (defun modular-trace (plist modulus)
|
---|
50 | "Return PLIST with coefficients reduced modulo prime MODULUS."
|
---|
51 | (mapcar #'(lambda (p) (modular-trace-1 p modulus)) plist))
|
---|
52 |
|
---|
53 | (defun modular-trace-1 (p modulus)
|
---|
54 | "Return a polynomial P with coefficients reduced modulo prime MODULUS."
|
---|
55 | (mapcar
|
---|
56 | #'(lambda (term) (cons (car term) (mod (cdr term) modulus)))
|
---|
57 | p))
|
---|
58 |
|
---|
59 | (defun frobenius-kernel (n modulus)
|
---|
60 | "Return a list of N polynomials of the form XI**MODULUS-XI, where
|
---|
61 | XI is the I-th variable. Work in internal alist representation."
|
---|
62 | (let* ((zero (make-list n :initial-element 0))
|
---|
63 | (plist (make-list n :initial-element (list (cons zero 1) (cons zero (- modulus 1))))))
|
---|
64 | (dotimes (i n plist)
|
---|
65 | (setf (elt plist i) (copy-tree (elt plist i))
|
---|
66 | (elt (caar (elt plist i)) i) modulus
|
---|
67 | (elt (caadr (elt plist i)) i) 1))))
|
---|
68 | @
|
---|
69 |
|
---|
70 |
|
---|
71 | 1.1
|
---|
72 | log
|
---|
73 | @Initial revision
|
---|
74 | @
|
---|
75 | text
|
---|
76 | @d3 1
|
---|
77 | a3 1
|
---|
78 | $Id: modular-poly.lisp,v 1.6 1997/12/13 15:25:11 marek Exp $
|
---|
79 | d19 2
|
---|
80 | a20 2
|
---|
81 | ;;(proclaim '(optimize (speed 0) (debug 3)))
|
---|
82 | (proclaim '(optimize (speed 3) (debug 0)))
|
---|
83 | @
|
---|