arithmetic/src/linearalgebra/vector/VectorFast.ig


GENERIC INTERFACE VectorFast(R, V);
Arithmetic for Modula-3, see doc for details

TYPE T = V.TBody;

PROCEDURE IsZero (READONLY x: T; ): BOOLEAN;
PROCEDURE Equal (READONLY x, y: T; ): BOOLEAN;

PROCEDURE Add (READONLY x, y: T; ): V.T;
PROCEDURE Sub (READONLY x, y: T; ): V.T;
PROCEDURE Neg (READONLY x: T; ): V.T;

PROCEDURE Scale (READONLY x: T; y: R.T; ): V.T;
PROCEDURE Inner (READONLY x, y: T; ): R.T;
CONST Dot = Inner;

PROCEDURE Sum (READONLY x: T; ): R.T;
PROCEDURE Max (READONLY x: T; ): R.T;
PROCEDURE Min (READONLY x: T; ): R.T;

PROCEDURE ArithSeq (num: CARDINAL; from := R.Zero; by := R.One; ): V.T;
PROCEDURE GeomSeq (num: CARDINAL; from := R.One; by := R.Two; ): V.T;

END VectorFast.