DIRECTORY Rope USING [ROPE], IO, AlgebraClasses, RatIntervals, Polynomials; AlgebraicNumbers: CEDAR DEFINITIONS = BEGIN OPEN AC: AlgebraClasses, RI: RatIntervals, POL: Polynomials; AlgebraicNumber: TYPE = REF AlgebraicNumberRec; AlgebraicNumberRec: TYPE = RECORD [ minPolyRing: AC.Structure, -- a ring of univariate polynomials over any groundField. minimalPolynomial: POL.Polynomial, -- a monic elt of minPolyRing irreducible over groundField. real: BOOL _ FALSE, -- true iff groundField real isolatingInterval: RI.RatInterval _ NIL -- isolating interval for the unique root of minimalPolynomial which is this real algebraic number. ]; MakeAlgebraicNumber: PROC [minPolyRing: AC.Structure, minimalPolynomial: POL.Polynomial, real: BOOL _ FALSE, isolatingInterval: RI.RatInterval _ NIL] RETURNS [AlgebraicNumber]; ReadAlgebraicNumber: PROC [in: IO.STREAM, minPolyRing: AC.Structure, real: BOOL _ FALSE] RETURNS [out: AlgebraicNumber]; AlgebraicNumberFromRope: PROC [in: Rope.ROPE, minPolyRing: AC.Structure, real: BOOL _ FALSE] RETURNS [out: AlgebraicNumber]; AlgebraicNumberToRope: PROC [in: AlgebraicNumber] RETURNS [out: Rope.ROPE]; WriteAlgebraicNumber: PROC [in: AlgebraicNumber, out: IO.STREAM]; END. €AlgebraicNumbers.mesa Last Edited by: Arnon, June 10, 1985 4:19:22 pm PDT Types Constructors minPolyRing is a ring of univariate polynomials over any groundField, minimalPolynomial is a monic elt of minPolyRing irreducible over groundField. If real, then groundField is a real field, and isolatingInterval is an isolating interval for the unique root of minimalPolynomial which is this (real) algebraic number. IO ΚΨ˜Jšœ™J™3J˜šΟk ˜ Jšœœœ˜Jšœ˜Jšœ˜Jšœ ˜ Jšœ ˜ —J˜head2šœœ ˜#J˜—Jš œœœœœ˜Dhead™Jšœœœ˜/šœœœ˜#Jšœ œ Οc9˜TJšœœ ž;˜^Jšœœœž˜0Jšœœœžd˜Jšœ˜——šœ ™ codešΟnœœœœœœœœœ˜°Mšœž5œžTœžœz™½——™šŸœœœœœœœœ˜xJ˜—šŸœœ œœœœœ˜|J˜—šŸœœœ œ˜KJ˜—JšŸœœœœ˜BJ˜—J˜Jšœ˜—…—Δ@