1 |
|
---|
2 | ;;poly_grobner([x^3-x^2+2,y-2*x^2+1,z-3*x+5],[x,y,z]);
|
---|
3 | ;;[x^3-x^2+2,y-2*x^2+1,z-3*x+5,2*z^2+20*z-9*y+41,(-z^3)-12*z^2-45*z-104]
|
---|
4 |
|
---|
5 | (in-package :5am-buchberger)
|
---|
6 | (proclaim '(special fl ref-gb sp sp-rem gb))
|
---|
7 |
|
---|
8 | (setf grobner-debug::$poly_grobner_debug nil)
|
---|
9 |
|
---|
10 | (setf fl (cdr (string->poly "[x^3-x^2+2,y-2*x^2+1,z-3*x+5]" '(x y z)))
|
---|
11 | ref-gb (cdr (string->poly "[x^3-x^2+2,y-2*x^2+1,z-3*x+5,2*z^2+20*z-9*y+41,(-z^3)-12*z^2-45*z-104]" '(x y z))))
|
---|
12 |
|
---|
13 | (format t "~%")
|
---|
14 | (format t "FL --> ~A~2%" (poly->string (cons :[ fl)))
|
---|
15 | (format t "REF-GB --> ~A~2%" (poly->string (cons :[ ref-gb)))
|
---|
16 |
|
---|
17 | (loop for i from 0 below (length fl)
|
---|
18 | do
|
---|
19 | (loop for j from (1+ i) below (length fl)
|
---|
20 | do
|
---|
21 | (setf sp (s-polynomial (elt fl i) (elt fl j)))
|
---|
22 | (format t "SPOLY(~A,~A) --> ~A~2%"
|
---|
23 | (poly->string (elt fl i))
|
---|
24 | (poly->string (elt fl j))
|
---|
25 | (poly->string sp))
|
---|
26 | (setf sp-rem (normal-form sp fl))
|
---|
27 | (format t "NORMAL-FORM(~A,~A) --> ~A~2%"
|
---|
28 | (poly->string sp)
|
---|
29 | (poly->string (cons :[ fl))
|
---|
30 | (poly->string sp-rem))
|
---|
31 | )
|
---|
32 | )
|
---|
33 |
|
---|
34 |
|
---|
35 | ;;(setf gb (buchberger fl))
|
---|
36 | ;;(print (mapcar #'->sexp gb))
|
---|