- Timestamp:
- 2015-06-11T14:56:03-07:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/f4grobner/division.lisp
r1237 r1238 68 68 (ring (ro-ring ring-and-order)) 69 69 (p-zero (make-poly-zero))) 70 "Loop invariant: c*f0=sum ai*fi+r+f, where f0 is the initial value of f" 70 "Check loop invariant of division algorithms, when we divide a 71 polynomial F by the list of polynomials FL. The invariant is the 72 identity C*F0=SUM AI*FI+R+F, where F0 is the initial value of F, A is 73 the list of partial quotients, R is the intermediate value of the 74 remainder, and F is the intermediate value which eventually becomes 75 0." 71 76 (flet ((p-add (p q) (poly-add ring-and-order p q)) 72 77 (p-sub (p q) (poly-sub ring-and-order p q)) … … 80 85 f)))))) 81 86 82 83 87 84 88 (defun poly-pseudo-divide (ring-and-order f fl … … 94 98 the quotients is initialized to default." 95 99 (declare (type poly f) (list fl)) 96 ;; Loop invariant: c*f0=sum ai*fi+r+ f, where f0 is the initial value of f100 ;; Loop invariant: c*f0=sum ai*fi+r+p, where f0 is the initial value of f 97 101 (do ((r (make-poly-zero)) 98 102 (c (funcall (ring-unit ring)))
Note:
See TracChangeset
for help on using the changeset viewer.