- Timestamp:
- 2015-06-12T15:30:53-07:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/f4grobner/gb-postprocessing.lisp
r1542 r1543 42 42 (declare (type ring-and-order ring-and-order)) 43 43 (do ((q plist) 44 (found t)) 44 (found t) 45 p) 45 46 ((not found) 46 47 (mapcar #'(lambda (x) (poly-primitive-part ring x)) q)) 47 ;;Find p in Q such that p is reducible mod Q\{p} 48 ;; 1) Find p in Q such that p is reducible mod Q\{p} 49 ;; 2) Replace p with remainder from division by Q\{p}, if 50 ;; non-zero, else set Q to Q\{p} 48 51 (setf found nil) 49 ( let ((x (find-if50 #'(lambda (y)51 (multiple-value-bind (h c div-count)52 (normal-form ring-and-order53 y54 (remove y q)55 nil #| not a top reduction! |#56 57 (declare (ignore h c)) 58 (plusp div-count))))))59 (when x 60 (setf found t61 q (delete x q)))))) 52 (dolist (x q) 53 (multiple-value-bind (h c div-count) 54 (normal-form ring-and-order x (remove x q) nil #| not a top reduction! |#) 55 (declare (ignore c)) 56 (when (plusp div-count) 57 (setf found t 58 p h) 59 (return)))) 60 (when found 61 (if (poly-zerop p) 62 (setf q q1) 63 (setf q (cons p q1)))))) 64 62 65 63 66 (defun minimization (plist)
Note:
See TracChangeset
for help on using the changeset viewer.