head 1.2; access; symbols; locks; strict; comment @;;; @; 1.2 date 2009.01.22.04.04.10; author marek; state Exp; branches; next 1.1; 1.1 date 2009.01.19.09.26.55; author marek; state Exp; branches; next ; desc @@ 1.2 log @*** empty log message *** @ text @;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: Grobner; Base: 10 -*- #| $Id$ *--------------------------------------------------------------------------* | Copyright (C) 1994, Marek Rychlik (e-mail: rychlik@@math.arizona.edu) | | Department of Mathematics, University of Arizona, Tucson, AZ 85721 | | | | Everyone is permitted to copy, distribute and modify the code in this | | directory, as long as this copyright note is preserved verbatim. | *--------------------------------------------------------------------------* |# (defpackage "MODULAR-POLY" (:export modular-trace modular-trace-1) (:use "MODULAR" "POLY" "COMMON-LISP")) (in-package "MODULAR-POLY") #+debug(proclaim '(optimize (speed 0) (debug 3))) #-debug(proclaim '(optimize (speed 3) (debug 0))) (defun modular-trace (plist modulus) "Return PLIST with coefficients reduced modulo prime MODULUS." (mapcar #'(lambda (p) (modular-trace-1 p modulus)) plist)) (defun modular-trace-1 (p modulus) "Return a polynomial P with coefficients reduced modulo prime MODULUS." (mapcar #'(lambda (term) (cons (car term) (mod (cdr term) modulus))) p)) (defun frobenius-kernel (n modulus) "Return a list of N polynomials of the form XI**MODULUS-XI, where XI is the I-th variable. Work in internal alist representation." (let* ((zero (make-list n :initial-element 0)) (plist (make-list n :initial-element (list (cons zero 1) (cons zero (- modulus 1)))))) (dotimes (i n plist) (setf (elt plist i) (copy-tree (elt plist i)) (elt (caar (elt plist i)) i) modulus (elt (caadr (elt plist i)) i) 1)))) @ 1.1 log @Initial revision @ text @d3 1 a3 1 $Id: modular-poly.lisp,v 1.6 1997/12/13 15:25:11 marek Exp $ d19 2 a20 2 ;;(proclaim '(optimize (speed 0) (debug 3))) (proclaim '(optimize (speed 3) (debug 0))) @