|
(arg1, arg2 : direction) : REAL;
LOCAL
scalar : REAL;
vec1, vec2: direction;
ndim : INTEGER;
END_LOCAL;
IF NOT EXISTS (arg1) OR NOT EXISTS (arg2) THEN
scalar := ?;
ELSE
IF (arg1.dim <> arg2.dim) THEN
scalar := ?;
ELSE
BEGIN
vec1 := normalise(arg1);
vec2 := normalise(arg2);
ndim := arg1.dim;
scalar := 0.0;
REPEAT i := 1 TO ndim;
scalar := scalar + vec1.direction_ratios[i]*vec2.direction_ratios[i];
END_REPEAT;
END;
END_IF;
END_IF;
RETURN (scalar);
|
|