Remove some code duplication in TRANSLATE-PREDICATE
[maxima.git] / src / pois2.lisp
blobb6fb86e947269c4b6e50476d609a2f97ad1596c1
1 ;;; -*- Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- ;;;;
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;;; The data in this file contains enhancments. ;;;;;
4 ;;; ;;;;;
5 ;;; Copyright (c) 1984,1987 by William Schelter,University of Texas ;;;;;
6 ;;; All rights reserved ;;;;;
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ;;; (c) Copyright 1981 Massachusetts Institute of Technology ;;;
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11 (in-package :maxima)
13 (macsyma-module pois2)
15 (declare-top (special poisvals poishift poistsm poissiz poists $poisz $pois1))
17 (defmspec mpois (x) x)
19 (defun poislim1 (uu n)
20 (declare (ignore uu))
21 (unless (fixnump n)
22 (merror (intl:gettext "poislim: argument must be an integer; found: ~M") n))
23 (setq poisvals nil)
24 (setq poists (ash 1 n))
25 (dotimes (j 6)
26 (push (expt poists j) poisvals))
27 (setq poissiz n
28 poistsm (expt 2 (1- n))
29 poishift (let ((sum 0))
30 (dotimes (i 6 sum)
31 (incf sum (* poistsm (expt poists i)))))
32 $poisz '((mpois simp) nil nil)
33 $pois1 (list '(mpois simp) nil (list poishift 1)))
36 (defun nonperiod (p)
37 (and (null (cadr p))
38 (= (caaddr p) poishift)
39 (null (cddr (caddr p)))))
41 (poislim1 nil 5)