diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 8379697..53a2e3c 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -44454,7 +44454,229 @@ digraph pic { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{AlgebraicallyClosedField}{ACF} \pagepic{ps/v102algebraicallyclosedfield.ps}{ACF}{0.75} +<>= +)set break resume +)sys rm -f AlgebraicallyClosedField.output +)spool AlgebraicallyClosedField.output +)set message test on +)set message auto off +)clear all + +--S 1 of 14 +pi:Polynomial(Integer):=-3*x^3+2*x+13 +--R +--R +--R 3 +--R (1) - 3x + 2x + 13 +--R Type: Polynomial Integer +--E 1 +--S 2 of 14 +rootOf(pi) +--R +--R +--R (2) x +--R Type: AlgebraicNumber +--E 2 + +--S 3 of 14 +rootsOf(pi) +--R +--R +--R (3) [%x0,%x1,- %x1 - %x0] +--R Type: List AlgebraicNumber +--E 3 + +--S 4 of 14 +zeroOf(pi) +--R +--R +--R (4) x +--R Type: AlgebraicNumber +--E 4 + +--S 5 of 14 +zerosOf(pi) +--R +--R +--R +-------------+ +-------------+ +--R | 2 | 2 +--R - \|- 27%x3 + 24 - 3%x3 \|- 27%x3 + 24 - 3%x3 +--R (5) [%x3,-------------------------,-----------------------] +--R 6 6 +--R Type: List AlgebraicNumber +--E 5 + +--S 6 of 14 +sup:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 +--R +--R +--R 3 +--R (6) - 3? + 2? + 13 +--R Type: SparseUnivariatePolynomial Integer +--E 6 + +--S 7 of 14 +rootOf(sup) +--R +--R +--R (7) %B +--R Type: AlgebraicNumber +--E 7 + +--S 8 of 14 +rootOf(sup,x) +--R +--R +--R (8) x +--R Type: AlgebraicNumber +--E 8 + +--S 9 of 14 +rootsOf(sup) +--R +--R +--R (9) [%%C0,%%C1,- %%C1 - %%C0] +--R Type: List AlgebraicNumber +--E 9 + +--S 10 of 14 +rootsOf(sup,x) +--R +--R +--R (10) [%x6,%x7,- %x7 - %x6] +--R Type: List AlgebraicNumber +--E 10 + +--S 11 of 14 +zeroOf(sup) +--R +--R +--R (11) %D +--R Type: AlgebraicNumber +--E 11 + +--S 12 of 14 +zeroOf(sup,x) +--R +--R +--R (12) x +--R Type: AlgebraicNumber +--E 12 + +--S 13 of 14 +zerosOf(sup) +--R +--R +--R +--------------+ +--------------+ +--R | 2 | 2 +--R - \|- 27%%E0 + 24 - 3%%E0 \|- 27%%E0 + 24 - 3%%E0 +--R (13) [%%E0,---------------------------,-------------------------] +--R 6 6 +--R Type: List AlgebraicNumber +--E 13 + +--S 14 of 14 +zerosOf(sup,x) +--R +--R +--R +-------------+ +-------------+ +--R | 2 | 2 +--R - \|- 27%x9 + 24 - 3%x9 \|- 27%x9 + 24 - 3%x9 +--R (14) [%x9,-------------------------,-----------------------] +--R 6 6 +--R Type: List AlgebraicNumber +--E 14 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +AlgebraicallyClosedField examples +==================================================================== + +Given the polynomial: + +pi:Polynomial(Integer):=-3*x^3+2*x+13 + 3 + - 3x + 2x + 13 + + +rootOf(pi) + x + + +rootsOf(pi) + [%x0,%x1,- %x1 - %x0] + + +zeroOf(pi) + x + + +zerosOf(pi) + +-------------+ +-------------+ + | 2 | 2 + - \|- 27%x3 + 24 - 3%x3 \|- 27%x3 + 24 - 3%x3 + [%x3,-------------------------,-----------------------] + 6 6 + + +These functions can also be applied to Sparse Univariate Polynomials: + +sup:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + 3 + - 3? + 2? + 13 + + +rootOf(sup) + %B + + +rootOf(sup,x) + x + + +rootsOf(sup) + [%%C0,%%C1,- %%C1 - %%C0] + + +rootsOf(sup,x) + [%x6,%x7,- %x7 - %x6] + + +zeroOf(sup) + %D + + +zeroOf(sup,x) + x + + +zerosOf(sup) + +--------------+ +--------------+ + | 2 | 2 + - \|- 27%%E0 + 24 - 3%%E0 \|- 27%%E0 + 24 - 3%%E0 + [%%E0,---------------------------,-------------------------] + 6 6 + + +zerosOf(sup,x) + +-------------+ +-------------+ + | 2 | 2 + - \|- 27%x9 + 24 - 3%x9 \|- 27%x9 + 24 - 3%x9 + [%x9,-------------------------,-----------------------] + 6 6 + + + + + +See Also: +o )show AlgebraicallyClosedField + +@ {\bf See:}\\ \pageto{AlgebraicallyClosedFunctionSpace}{ACFS} \pagefrom{Field}{FIELD} @@ -44640,39 +44862,66 @@ AlgebraicallyClosedField(): Category == Join(Field,RadicalCategory) with rootOf: Polynomial $ -> $ ++ rootOf(p) returns y such that \spad{p(y) = 0}. ++ Error: if p has more than one variable y. + ++ + ++X a:Polynomial(Integer):=-3*x^3+2*x+13 + ++X rootOf(a) rootOf: SparseUnivariatePolynomial $ -> $ ++ rootOf(p) returns y such that \spad{p(y) = 0}. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X rootOf(a) rootOf: (SparseUnivariatePolynomial $, Symbol) -> $ ++ rootOf(p, y) returns y such that \spad{p(y) = 0}. ++ The object returned displays as \spad{'y}. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X rootOf(a,x) rootsOf: Polynomial $ -> List $ ++ rootsOf(p) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}. ++ Note: the returned symbols y1,...,yn are bound in the ++ interpreter to respective root values. ++ Error: if p has more than one variable y. + ++ + ++X a:Polynomial(Integer):=-3*x^3+2*x+13 + ++X rootsOf(a) rootsOf: SparseUnivariatePolynomial $ -> List $ ++ rootsOf(p) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}. ++ Note: the returned symbols y1,...,yn are bound in the interpreter ++ to respective root values. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X rootsOf(a) rootsOf: (SparseUnivariatePolynomial $, Symbol) -> List $ ++ rootsOf(p, y) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}; ++ The returned roots display as \spad{'y1},...,\spad{'yn}. ++ Note: the returned symbols y1,...,yn are bound in the interpreter ++ to respective root values. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X rootsOf(a,x) zeroOf: Polynomial $ -> $ ++ zeroOf(p) returns y such that \spad{p(y) = 0}. ++ If possible, y is expressed in terms of radicals. ++ Otherwise it is an implicit algebraic quantity. ++ Error: if p has more than one variable y. + ++ + ++X a:Polynomial(Integer):=-3*x^2+2*x-13 + ++X zeroOf(a) zeroOf: SparseUnivariatePolynomial $ -> $ ++ zeroOf(p) returns y such that \spad{p(y) = 0}; ++ if possible, y is expressed in terms of radicals. ++ Otherwise it is an implicit algebraic quantity. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X zeroOf(a) zeroOf: (SparseUnivariatePolynomial $, Symbol) -> $ ++ zeroOf(p, y) returns y such that \spad{p(y) = 0}; ++ if possible, y is expressed in terms of radicals. ++ Otherwise it is an implicit algebraic quantity which ++ displays as \spad{'y}. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X zeroOf(a,x) zerosOf: Polynomial $ -> List $ ++ zerosOf(p) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}. ++ The yi's are expressed in radicals if possible. @@ -44680,12 +44929,18 @@ AlgebraicallyClosedField(): Category == Join(Field,RadicalCategory) with ++ The returned symbols y1,...,yn are bound in the interpreter ++ to respective root values. ++ Error: if p has more than one variable y. + ++ + ++X a:Polynomial(Integer):=-3*x^2+2*x-13 + ++X zerosOf(a) zerosOf: SparseUnivariatePolynomial $ -> List $ ++ zerosOf(p) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}. ++ The yi's are expressed in radicals if possible, and otherwise ++ as implicit algebraic quantities. ++ The returned symbols y1,...,yn are bound in the interpreter ++ to respective root values. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X zerosOf(a) zerosOf: (SparseUnivariatePolynomial $, Symbol) -> List $ ++ zerosOf(p, y) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}. ++ The yi's are expressed in radicals if possible, and otherwise @@ -44693,6 +44948,9 @@ AlgebraicallyClosedField(): Category == Join(Field,RadicalCategory) with ++ which display as \spad{'yi}. ++ The returned symbols y1,...,yn are bound in the interpreter ++ to respective root values. + ++ + ++X a:SparseUnivariatePolynomial(Integer):=-3*x^3+2*x+13 + ++X zerosOf(a,x) add SUP ==> SparseUnivariatePolynomial $ diff --git a/changelog b/changelog index 7ad8d20..a75e6aa 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20091031 tpd src/axiom-website/patches.html 20091031.02.tpd.patch +20091031 tpd src/algebra/Makefile add AlgebraicallyClosedField.help +20091031 tpd books/bookvol10.2 AlgebraicallyClosedField input, help, examples 20091031 tpd src/axiom-website/patches.html 20091031.01.tpd.patch 20091031 tpd src/algebra/Makefile move help.help build to algebra 20091031 tpd src/interp/Makefile move help.help build to algebra diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 17f90b2..342297f 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -16444,6 +16444,7 @@ This keeps the regression test list in the algebra Makefile. HELPFILE=${HELP}/help.help SPADHELP=\ + ${HELP}/AlgebraicallyClosedField.help \ ${HELP}/Any.help \ ${HELP}/ApplicationProgramInterface.help \ ${HELP}/ArrayStack.help \ @@ -16589,7 +16590,9 @@ is put into a int/Makefile.algebra and then executed by make. <>= TESTSYS= ${OBJ}/${SYS}/bin/interpsys -REGRESS= Any.regress \ +REGRESS= \ + AlgebraicallyClosedField.regress \ + Any.regress \ ApplicationProgramInterface.regress \ ArrayStack.regress \ AssociationList.regress \ @@ -16733,8 +16736,20 @@ all: ${REGRESS} @echo algebra test cases complete. @ <>= +${HELP}/AlgebraicallyClosedField.help: ${BOOKS}/bookvol10.2.pamphlet + @echo 7000 create AlgebraicallyClosedField.help from \ + ${BOOKS}/bookvol10.2.pamphlet + @${TANGLE} -R"AlgebraicallyClosedField.help" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${HELP}/AlgebraicallyClosedField.help + @cp ${HELP}/AlgebraicallyClosedField.help ${HELP}/ACF.help + @${TANGLE} -R"AlgebraicallyClosedField.input" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${INPUT}/AlgebraicallyClosedField.input + @echo "AlgebraicallyClosedField (ACF)" >>${HELPFILE} + ${HELP}/Any.help: ${BOOKS}/bookvol10.3.pamphlet - @echo 7000 create Any.help from ${BOOKS}/bookvol10.3.pamphlet + @echo 7002 create Any.help from ${BOOKS}/bookvol10.3.pamphlet @${TANGLE} -R"Any.help" ${BOOKS}/bookvol10.3.pamphlet >${HELP}/Any.help @cp ${HELP}/Any.help ${HELP}/ANY.help @${TANGLE} -R"Any.input" ${BOOKS}/bookvol10.3.pamphlet \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 19d0c3d..9b48286 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2209,5 +2209,7 @@ books/bookvol10.3 partial fix OrderedFreeMonoid
books/bookvol10.3 more PartialFraction documentation
20091031.01.tpd.patch src/interp,algebra/Makefiles move help.help built to algebra
+20091031.02.tpd.patch +books/bookvol10.2 AlgebraicallyClosedField input, help, examples