DIRECTORY Rope, Vector2 USING [VEC], Basics, IO, AlgebraClasses, Points; Complexes: CEDAR DEFINITIONS = BEGIN OPEN AC: AlgebraClasses, PTS: Points; ROPE: TYPE = Rope.ROPE; Complex: TYPE = REF ComplexRep; ComplexRep: TYPE = RECORD [ val: Vector2.VEC ]; ComplexPoint: TYPE = PTS.Point; Complexes: AC.Structure; Read: PROC [in: IO.STREAM] RETURNS [out: Complex]; FromRope: PROC [in: Rope.ROPE] RETURNS [out: Complex]; ToRope: PROC [in: Complex] RETURNS [out: Rope.ROPE]; Write: PROC [stream: IO.STREAM, in: Complex]; FromPairREAL: PROC [realPart, imagPart: REAL] RETURNS [Complex]; ToPairREAL: PROC [in: Complex] RETURNS [realPart, imagPart: REAL]; Add: PROC [a, b: Complex] RETURNS [Complex]; Negate: PROC [a: Complex] RETURNS [result: Complex]; Subtract: PROC [a, b: Complex] RETURNS [Complex]; Multiply: PROC [a, b: Complex] RETURNS [result: Complex]; Conjugate: PROCEDURE [a: Complex] RETURNS [Complex]; ModulusSquared: PROCEDURE [a: Complex] RETURNS [REAL]; Modulus: PROCEDURE [a: Complex] RETURNS [REAL]; Invert: PROC [a: Complex] RETURNS [result: Complex]; Divide: PROC [a, b: Complex] RETURNS [result: Complex]; AlmostEqual: PROCEDURE [a: Complex, b: Complex, mag:[-126..0] _ -20] RETURNS [BOOLEAN]; FromPolar: PROCEDURE [r: REAL, radians: REAL] RETURNS [Complex]; Arg: PROCEDURE [a: Complex] RETURNS [REAL]; Exp: PROCEDURE [a: Complex] RETURNS [Complex]; Ln: PROCEDURE [a: Complex] RETURNS [Complex]; Sqr: PROCEDURE [a: Complex] RETURNS [Complex]; -- like Mul[a,a] SqRt: PROCEDURE [a: Complex] RETURNS [Complex]; -- complex square root END. θComplexes.mesa Last Edited by: Arnon, June 10, 1985 4:19:22 pm PDT Types and Variables I/O and Conversion Arithmetic returns the angle from the x axis to a, in radians. complex exponential function complex natural logarithm Κ=˜Jšœ™J™3J˜šΟk ˜ Jšœ˜Jšœœœ˜J˜Jšœ˜Jšœ˜Jšœ˜—J˜Ihead2šœ œ ˜Jš œœœœœ ˜.J˜headšΟn™codešœœœ˜M˜—Mšœ œœ ˜šœ œœ˜Mšœ ˜Mšœ˜—Jšœœœ˜J˜Jšœ œ ˜—šœ™š žœœœœœ˜2J˜—šžœœ œœ˜6J˜—šžœœœ œ˜4J˜—Jšžœœ œœ˜.J˜Mšž œœœœ ˜@M˜Mšž œœœœ˜B—šž ™ šžœœœ ˜,J˜—šžœœœ˜4J˜—šžœœœ ˜1J˜—šžœœœ˜9J˜—šž œ œœ ˜4J˜—šžœ œœœ˜6J˜—šžœ œœœ˜/J˜—šžœœœ˜4J˜—šžœœœ˜7J˜—Jšž œ œ/œœ˜WJ˜š ž œ œœ œœ ˜@J˜—šžœ œœœ˜+Jšœ3™3J˜—šžœ œœ ˜.Jšœ™J˜—šžœ œœ ˜-Jšœ™J˜—šžœ œœ Οc˜@J˜—Jšžœ œœ Ÿ˜F˜J˜J˜——J™J˜Jšœ˜—…—, Q