DIRECTORY Real USING [SqRt], Vector2; Vector2Impl: CEDAR PROGRAM IMPORTS Real, Vector2 EXPORTS Vector2 ~ BEGIN OPEN Vector2; Add: PUBLIC PROC[a, b: VEC] RETURNS[VEC] ~ { RETURN[InlineAdd[a, b]] }; Sub: PUBLIC PROC[a, b: VEC] RETURNS[VEC] ~ { RETURN[InlineSub[a, b]] }; Neg: PUBLIC PROC[a: VEC] RETURNS[VEC] ~ { RETURN[InlineNeg[a]] }; Mul: PUBLIC PROC[a: VEC, s: REAL] RETURNS[VEC] ~ { RETURN[InlineMul[a, s]] }; Div: PUBLIC PROC[a: VEC, s: REAL] RETURNS[VEC] ~ { RETURN[InlineDiv[a, s]] }; SqrMag: PUBLIC PROC[a: VEC] RETURNS[REAL] ~ { RETURN[InlineSqrMag[a]] }; Mag: PUBLIC PROC[a: VEC] RETURNS[REAL] ~ { RETURN[InlineMag[a]] }; Dot: PUBLIC PROC[a, b: VEC] RETURNS[REAL] ~ { RETURN[InlineDot[a, b]] }; Cross: PUBLIC PROC[a, b: VEC] RETURNS[REAL] ~ { RETURN[InlineCross[a, b]] }; Unit: PUBLIC PROC[a: VEC] RETURNS[VEC] ~ { RETURN[InlineUnit[a]] }; Normal: PUBLIC PROC[a: VEC] RETURNS[VEC] ~ { RETURN[InlineNormal[a]] }; END. xVector2Impl.mesa Doug Wyatt, July 3, 1984 12:28:38 pm PDT Vector sum, a+b. Vector difference, a-b. Vector complement, -a. Product of vector a and scalar s. Equivalent to Mul[a, 1/s]. Square of the magnitude of a. Magnitude of a. Dot (inner) product of a and b. Magnitude of the cross (outer) product of a and b. Unit vector in the direction of a. Vector normal to a. ÊD˜šœ™Jšœ(™(J™—šÏk ˜ Jšœœ˜Jšœ˜J˜—Jšœ œ˜Jšœ˜Jšœ˜Jšœœœ ˜J˜šÏnœœœœœœœ˜GJ™J˜—šžœœœœœœœ˜GJ™J˜—šžœœœœœœœ˜AJ™J˜—šžœœœœœœœœ˜MJ™!J˜—šžœœœœœœœœ˜MJ™J˜—šžœœœœœœœ˜HJ™J˜—šžœœœœœœœ˜BJ™J™—šžœœœœœœœ˜HJ™J˜—šžœœœœœœœ˜LJ™2J˜—šžœœœœœœœ˜CJ™"J˜—šžœœœœœœœ˜GJ™J˜—Jšœ˜—…—¬h