| 1 | ;;; -*-  Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- 
 | 
|---|
| 2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
|---|
| 3 | ;;;                                                                              
 | 
|---|
| 4 | ;;;  Copyright (C) 1999, 2002, 2009, 2015 Marek Rychlik <rychlik@u.arizona.edu>          
 | 
|---|
| 5 | ;;;                                                                              
 | 
|---|
| 6 | ;;;  This program is free software; you can redistribute it and/or modify        
 | 
|---|
| 7 | ;;;  it under the terms of the GNU General Public License as published by        
 | 
|---|
| 8 | ;;;  the Free Software Foundation; either version 2 of the License, or           
 | 
|---|
| 9 | ;;;  (at your option) any later version.                                         
 | 
|---|
| 10 | ;;;                                                                              
 | 
|---|
| 11 | ;;;  This program is distributed in the hope that it will be useful,             
 | 
|---|
| 12 | ;;;  but WITHOUT ANY WARRANTY; without even the implied warranty of              
 | 
|---|
| 13 | ;;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               
 | 
|---|
| 14 | ;;;  GNU General Public License for more details.                                
 | 
|---|
| 15 | ;;;                                                                              
 | 
|---|
| 16 | ;;;  You should have received a copy of the GNU General Public License           
 | 
|---|
| 17 | ;;;  along with this program; if not, write to the Free Software                 
 | 
|---|
| 18 | ;;;  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
 | 
|---|
| 19 | ;;;                                                                              
 | 
|---|
| 20 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
|---|
| 21 | 
 | 
|---|
| 22 | (defpackage "RING-AND-ORDER"
 | 
|---|
| 23 |   (:use :cl :ring :order)
 | 
|---|
| 24 |   (:export "RING-AND-ORDER"
 | 
|---|
| 25 |            "MAKE-RING-AND-ORDER"
 | 
|---|
| 26 |            "RO-ORDER"
 | 
|---|
| 27 |            "RO-RING"
 | 
|---|
| 28 |            "RO-ORDER"))
 | 
|---|
| 29 | 
 | 
|---|
| 30 | (in-package :ring-and-order)
 | 
|---|
| 31 | 
 | 
|---|
| 32 | (defstruct (ring-and-order 
 | 
|---|
| 33 |              (:conc-name ro-)
 | 
|---|
| 34 |              (:constructor make-ring-and-order 
 | 
|---|
| 35 |                            (&key 
 | 
|---|
| 36 |                             (ring *ring-of-integers*)
 | 
|---|
| 37 |                             (order #'lex>)
 | 
|---|
| 38 |                             (primary-elimination-order   order)
 | 
|---|
| 39 |                             (secondary_elimination_order order)
 | 
|---|
| 40 |                             (elimination-order-factory
 | 
|---|
| 41 |                              (make-elimination-order-factory primary-elimination-order
 | 
|---|
| 42 |                                                              secondary_elimination_order)))))
 | 
|---|
| 43 |   (ring  *ring-of-integers* :type ring)
 | 
|---|
| 44 |   (order nil :type function)
 | 
|---|
| 45 |   (elimination-order-factory nil :type function))
 | 
|---|
| 46 | 
 | 
|---|
| 47 | 
 | 
|---|