Vectors and Matrices (Arrays)
In addition to scalars, Templex supports one- and two-dimensional arrays.
One-dimensional arrays can represent vectors (a row or a column), while two-dimensional arrays can represent matrices. Templex provides a number of functions and operators for performing vector and matrix mathematics, such as cross product, inversion, and concatenation.
Using vectors and matrices can simplify your templates. For instance, the coordinates
                for two points can be assigned to six
                variables:
            {pt1_x = 1.0}
{pt1_y = 2.0}
{pt1_z = 3.0}
{pt2_x = 4.0}
{pt2_y = 5.0}
{pt2_z = 6.0}{pt3_x = (pt1_x + pt2_x) / 2}
{pt3_y = (pt1_y + pt2_y) / 2}
{pt3_z = (pt1_z + pt2_z) / 2}These nine lines can be replaced with the following three by defining the points as
                vectors:
            {pt1 = {1.0, 2.0, 3.0} }
{pt2 = {4.0, 5.0, 6.0} }
{pt3 = (pt1 + p2) / 2}The following example illustrates the use of vector and matrix functions and
                operators:
        {
 pt = {1.0, 2.0}
 theta = PI/4
 c = cos(theta)
 s = sin(theta)
 rot = { {c , -s},  {s, c} }
 pt1 = pt * rot
 pt2 = pt1 * rot
 pt3 = pt2 * inverse(rot)
 if (pt1 == pt3) echo ("same")
}{
 filelist = {"file1", "file2", "file3"}
 foreach (filename = filelist)
    open(filename)
    filename
    close
 endloop
}