<> <> <<>> 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.