((**
(#1=(F F #2=(|Fraction| #3=(|Integer|)))
(#3#
(|divide| #4=(|Record| (|:| |quotient| #3#) (|:| |remainder| #3#)) #3#
#3#))
(#2# (|numer| #3# #2#) (|denom| #3# #2#)) (|locals| (|qr| . #4#))
(|arguments| (|x| . F) (|q| . #2#))
(F (|coerce| . #5=(F #6=(|Integer|))) (** . #7=(F F (|Integer|)))
(* . #8=(F F F)))))
(UP2R
((#9=(|Union| #10=(|SparseUnivariatePolynomial| R) "failed")
#11=(|SparseUnivariatePolynomial| F))
(#12=(|Union| R #13="failed") (|case| #14=(|Boolean|) #12# #13#)
(|autoCoerce| R #12#))
(#9# (|autoCoerce| #9# #10#))
(#10# (|monomial| #10# R . #15=(#16=(|NonNegativeInteger|))) (|Zero| #10#)
(+ #10# #10# #10#))
(#11# (~= #17=(|Boolean|) #11# #11#) (|reductum| #11# #11#)
(|leadingCoefficient| F #11#) (|degree| #16# #11#) (|Zero| #11#))
(|locals| (|r| . #18=(|Union| R . #19=("failed"))) (|ans| . #10#))
(|arguments| (|p| . #11#)) (R (|Zero| . #20=(R)))
(F (|retractIfCan| . #21=(#18# F)) (|Zero| . #22=(F)))))
(|belong?|
(((|Boolean|) #23=(|BasicOperator|))
(#24=(|BasicOperator|) (|has?| #25=(|Boolean|) #24# #26=(|Identifier|)))
(|arguments| (|op| . #23#))))
(|constructor|
(NIL ((|CommonOperators|) (|operator| #24# (|Symbol|)))
((|BasicOperatorFunctions1| F)
(|evaluate| #27=(|BasicOperator|) #27# (|Mapping| F (|List| F)))
(|derivative| #27# #27# (|List| (|Mapping| F (|List| F)))))
(#24# (|setProperty| #24# #24# #26# (|None|)))
(|locals| (|oproot| . #24#) (|opalg| . #24#) (|dumvar| . F))
(F (|coerce| F #28=(|Symbol|)))
($ (|droot| . #29=(#30=(|OutputForm|) #31=(|List| F))))))
(|dalg|
(((|OutputForm|) #32=(|List| F)) (#32# (|second| F #32#))
(|arguments| (|l| . #32#)) (F (|coerce| . #33=((|OutputForm|) F)))))
(|definingPolynomial|
((F F)
(#34=(|Union| #35=(|Kernel| F) "failed") (|case| #14# #34# #35#)
(|autoCoerce| #35# #34#))
(#36=(|List| F) (|second| F #36#) (|first| F #36#))
(#35# (|is?| #37=(|Boolean|) #35# . #38=((|BasicOperator|)))
(|argument| #36# #35#))
(|locals| (|r| . #39=(|Union| (|Kernel| F) . #19#)) (|k| |Kernel| F)
(#:G560 . #37#) (#:G559 . #37#))
(|arguments| (|x| . F))
(F (|retractIfCan| #39# F) (|retract| . #40=(#6# F)) (- F F F) (** . #7#))))
(|droot|
(#29# (#30# (|root| #30# #30# #30#))
(#31# (|second| F #31#) (|first| F #31#))
(#41=(|Integer|) (|coerce| (|OutputForm|) #41#)
(= #42=(|Boolean|) #41# #41#))
(|locals| (|x| |OutputForm|) (|n| . F)) (|arguments| (|l| . #31#))
(F (|retract| . #40#) (|coerce| . #33#) (= . #43=(#44=(|Boolean|) F F)))))
(|dvalg|
((F #45=(|List| F) #46=(|Symbol|))
(#47=(|SparseUnivariatePolynomial| F) (|map| #47# (|Mapping| F F) #47#)
(|elt| F #47# F) (|differentiate| #47# #47#))
(#45# (|second| F #45#) (|first| F #45#))
(#48=(|Fraction| #47#) (|numer| #47# #48#))
(|locals| (|p| . #47#) (|alpha| . F))
(|arguments| (|x| . #46#) (|l| . #45#))
(F (|univariate| . #49=(#48# F (|Kernel| F)))
(|retract| . #50=((|Kernel| F) F))
(|kernel| . #51=(F (|BasicOperator|) (|List| F)))
(|differentiate| F F #28#) (/ . #52=(F F F)) (- . #53=(F F)))))
(|dvroot|
((F #54=(|List| F))
(#55=(|SparseMultivariatePolynomial| R (|Kernel| F)) (|One| #55#))
(#54# (|second| F #54#) (|first| F #54#))
(#56=(|Integer|) (|One| #56#) (- #56# #56# #56#)) (#2# (/ #2# #3# #3#))
(|locals| (|n| . #6#)) (|arguments| (|l| . #54#)) (R (|One| . #57=(R)))
(F (|retract| . #40#) (|coerce| . #5#) (|One| . #58=(F)) (/ . #52#))
($ (** . #1#))))
(|hackroot|
((F F #59=(|Integer|))
(#60=(|Union| #61=(|Integer|) "failed") (|case| #14# #60# #61#)
(|autoCoerce| #61# #60#))
(#62=(|SparseMultivariatePolynomial| R (|Kernel| F))
(|retractIfCan| #63=(|Union| (|Integer|) "failed") #62#)
(|one?| #64=(|Boolean|) #62#))
(#59# (|positive?| #42# #59#) (|One| #59#) (= #42# #59# #59#))
(#65=(|Fraction| (|Integer|)) (|coerce| #65# . #66=((|Integer|)))
(|One| #65#) (/ #65# #65# #65#))
(|locals| (|rx| . #63#) (|dx| . #62#) (#:G550 . #44#) (#:G549 . #42#)
(#:G548 . #64#))
(|arguments| (|x| . F) (|n| . #59#)) (R (|One| . #57#))
(F (|numer| . #67=(#68=(|SparseMultivariatePolynomial| R (|Kernel| F)) F))
(|kernel| . #51#) (|denom| . #69=(#62# F)) (|coerce| . #5#) (|One| . #58#)
(= . #43#) (/ . #52#) (- . #53#) (+ F F F))
($ (** . #1#))))
(|ialg|
((F #70=(|List| F)) (#47# (|degree| #16# #47#))
(#16# (|positive?| #71=(|Boolean|) #16#))
(#70# (|second| F #70#) (|first| F #70#))
(#48# (|numer| #47# #48#) (|denom| #47# #48#))
(|locals| (|x| . F) (|p| . F) (|f| . #48#) (#:G541 . #71#))
(|arguments| (|l| . #70#)) (F (|univariate| . #49#) (|retract| . #50#))
($ (|inrootof| . #72=(F #73=(|SparseUnivariatePolynomial| F) F)))))
(|inroot|
((F #74=(|List| F))
(#75=(|Union| R "failed") (|case| #14# #75# R) (|autoCoerce| R #75#))
(#76=(|Union|
#77=(|Record| (|:| |var| (|Kernel| F)) (|:| |exponent| (|Integer|)))
"failed")
(|case| #14# #76# #77#) (|autoCoerce| #77# #76#))
(#74# (|second| F #74#) (|first| F #74#) (|#| (|NonNegativeInteger|) #74#))
(#78=(|Kernel| F) (|is?| #37# #78# . #38#) (|argument| (|List| F) #78#))
(#79=(|Integer|) (|zero?| #42# #79#) (|one?| #42# #79#) (= #42# #79# #79#)
(* #79# (|Integer|) #79#))
(#2# (/ #2# #3# #3#)) (#14# (|false| #14#))
(|locals| (|x| . F) (|u| . #76#) (|r| . #18#)
(|pr| |Record| (|:| |var| #78#) (|:| |exponent| (|Integer|))) (|n| . #6#)
(#:G556 . #14#) (#:G555 . #42#) (#:G554 . #37#) (#:G553 . #42#)
(#:G552 . #80=(|Boolean|)) (#:G551 . #42#))
(|arguments| (|l| . #74#))
(F (|retractIfCan| . #21#) (|retract| . #40#) (|one?| #80# F)
(|isExpt| #76# F))
($ (|iroot| . #81=(F R #82=(|Integer|))) (** . #1#))))
(|inroot0|
((F F #83=(|Integer|) #84=(|Boolean|) #85=(|Boolean|))
(#86=(|Union| #87=(|Integer|) "failed") (|coerce| #87# #86#)
(|case| #14# #86# #87#) (|autoCoerce| #87# #86#))
(#68# (|retractIfCan| #63# #68#))
(#88=(|PolynomialRoots| (|IndexedExponents| (|Kernel| F)) (|Kernel| F) R
(|SparseMultivariatePolynomial| R (|Kernel| F)) F)
(|qroot|
#89=(|Record| #90=(|:| |exponent| #91=(|NonNegativeInteger|))
(|:| |coef| F) (|:| |radicand| F))
#92=(|Fraction| #93=(|Integer|)) #91#))
(#83# (|exquo| (|Union| #83# "failed") #83# #83#))
(#92# (|coerce| #92# . #66#) (/ #92# #93# #93#)) (#14# (|true| #14#))
(|locals| (|rn| . #63#) (|rec| . #89#) (|rd| . #63#))
(|arguments| (|x| . F) (|num?| . #84#) (|n| . #83#) (|den?| . #85#))
(F (|numer| . #67#) (|denom| . #69#)
(|coerce| F (|SparseMultivariatePolynomial| R (|Kernel| F))) (/ . #52#)
(** . #7#) (* . #8#))))
(|inrootof|
(#72#
(#94=(|Union| #95=(|Symbol|) "failed") (|case| #14# #94# #95#)
(|autoCoerce| #95# #94#))
(#9# (|case| #14# #9# #10#) (|autoCoerce| #10# #9#))
(#73# (|reductum| #73# #73#) (|monomial?| #17# #73#)
(|leadingCoefficient| F #73#) (|elt| F #73# F) (|degree| #16# #73#))
(#16# (|one?| #71# #16#) (|Zero| #16#) (<= #71# #16# #16#))
(|locals| (|rx| . #96=(|Union| #28# . #19#)) (|r| . #9#) (|d| . #16#)
(#:G547 . #71#) (#:G546 . #17#) (#:G545 . #71#) (#:G544 . #17#))
(|arguments| (|x| . F) (|q| . #73#))
(R (|rootOf| R (|SparseUnivariatePolynomial| R) (|Symbol|)) (|Zero| . #20#))
(F (|retractIfCan| #96# F) (|kernel| . #51#) (|coerce| . #97=(F R))
(|Zero| . #22#) (/ . #52#) (- . #53#))))
(|iroot|
(#81# (#82# (|odd?| #42# #82#)) (|locals| (#:G558 . #44#) (#:G557 . #42#))
(|arguments| (|r| . R) (|n| . #82#))
(R (|nthRoot| R R (|Integer|)) (|before?| #44# R R) (|Zero| . #20#))
(F (|coerce| . #97#) (|Zero| . #22#))))
(|iroot0|
((F R #98=(|Integer|))
(#88#
(|rroot| #99=(|Record| #90# (|:| |coef| F) (|:| |radicand| F)) R #91#))
(|locals| (|rec| . #99#)) (|arguments| (|r| . R) (|n| . #98#))
(F (* . #8#))))
(|lzero|
((F #100=(|List| F)) (|arguments| (|l| . #100#)) (F (|Zero| . #22#))))
(|minPoly|
((#101=(|SparseUnivariatePolynomial| F) #102=(|Kernel| F))
(#101# (|monomial| #101# F . #15#) (|coerce| #101# F) (- #101# #101# #101#))
(#16# (|One| #16#))
((|List| F) (|second| F #103=(|List| F)) (|first| F #103#))
(#102# (|is?| #37# #102# . #38#) (|argument| #103# #102#))
(#48# (|numer| #47# #48#))
(|locals| (#:G563 . #37#) (#:G562 . #37#) (#:G561 . #37#))
(|arguments| (|k| . #102#)) (R (|One| . #57#))
(F (|univariate| . #49#) (|retract| . #50#)
(|coerce| . #104=(F (|Kernel| F))) (|One| . #58#))))
(|operator|
(((|BasicOperator|) #105=(|BasicOperator|))
(#24# (|is?| #25# #24# (|Symbol|)))
(|locals| (#:G543 . #25#) (#:G542 . #25#)) (|arguments| (|op| . #105#))))
(|rootOf|
((F #106=(|SparseUnivariatePolynomial| F) #107=(|Symbol|))
(#108=(|Union| F #109="failed") (|case| #14# #108# #109#)
(|autoCoerce| F #108#))
(#106# (|retractIfCan| #110=(|Union| F "failed") #106#)
(|degree| #16# #106#))
(#16# (|positive?| #71# #16#))
(#111=(|Kernel| F) (|kernel| #111# (|Symbol|)))
(#48# (|numer| #47# #48#) (|denom| #47# #48#))
(|locals| (|r| . #110#) (|n| . #47#) (|k| . #111#) (|f| . #48#)
(#:G540 . #71#))
(|arguments| (|x| . #107#) (|p| . #106#))
(F (|univariate| . #49#) (|coerce| . #104#)) ($ (|inrootof| . #72#)))))