Operace + - * / jsou implementovány jako operátory, které dynamicky vytvoří příslušný objekt a zapojí jeho vstupy. Situace je stejná jako u běžných skalárních operátorů.
Přehled definovaných operátorů:
// binární operátory: Input3D operator + (Input3D a, Input3D b); // součet vektorů Input3D operator - (Input3D a, Input3D b); // rozdíl Input3D operator * (Input3D a, Input3D b); // součin Input3D operator * (Input3D a, Input b); // vektor * skalár Input3D operator * (Input a, Input3D b); // skalár * vektor Input3D operator / (Input3D a, Input b); // vektor / skalár // unární operátory: Input3D operator - (Input3D a); // unární -
Funkce v blokových výrazech 3D jsou definovány pouze pro základní operace s vektory:
// funkce: Input Abs(Input3D x); // absolutní hodnota vektoru Input3D UnitVector(Input3D x); // jednotkový vektor Input ScalarProduct(Input3D x, Input3D y); // skalární součin x.y Input Xpart(Input3D a); // složka x vektoru Input Ypart(Input3D a); // složka y vektoru Input Ypart(Input3D a); // složka z vektoru