[1] | 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 | @
|
---|