Select Git revision
TopicTracking.rst
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
VectorVisualisation.mch 765 B
MACHINE VectorVisualisation
// Small visualisation to show two vectors and various operations on them
DEFINITIONS
NVECS==2;
VISB_JSON_FILE == "vector_visualisation_visb.json";
"LibrarySVG.def"
INCLUDES Vectors2
VARIABLES vectors
INVARIANT
vectors : 1..NVECS --> VEC
INITIALISATION vectors := [ [0.0, 2.0] , [2.0, 0.0] ]
OPERATIONS
TimesVec(i,k) = PRE i:dom(vectors) & k: {0.5, 0.75, 1.5, 2.0} THEN
vectors(i) := times_vec(k,vectors(i))
END;
AddVec = BEGIN vectors(1):= add_vec(vectors(1),vectors(2)) END;
MakeUnit(i) = PRE i:dom(vectors) THEN vectors(i):= unit_vec(vectors(i)) END;
SwapXY(i) = PRE i:dom(vectors) THEN vectors(i):= rev(vectors(i)) END;
Opposite(i) = PRE i:dom(vectors) THEN vectors(i):= [-vectors(i)(1),-vectors(i)(2)] END
END