Overview Schemas Index

GEOMETRY_SCHEMA (jsdai.SGeometry_schema)


FUNCTION dot_product
          (arg1 : direction, arg2 : direction) : REAL;

LOCAL
     scalar : REAL;
     vec1, vec2: direction;
     ndim : INTEGER;
   END_LOCAL;
   
   IF  NOT  EXISTS  (arg1) OR NOT EXISTS (arg2) THEN
     scalar := ?;
     (* When FUNCTION  is called WITH  invalid data an indeterminate result
     is returned *)
   ELSE
     IF (arg1.dim <> arg2.dim) THEN
       scalar := ?;
     (* When FUNCTION is called WITH invalid data an indeterminate result
     is returned *)
     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);

END_FUNCTION; -- dot_product

public class FDot_product
          public static Value run(SdaiContext _context, Value arg1, Value arg2)