Vector as string (default ouput format) $a => [ 1.000000000000E+00 2.000000000000E+00 5.000000000000E-01 ] Specified output format $a => { 1, 2, 0.5 } Modified default output format $a => [ 1.00000 2.00000 0.50000 ] General Vector Mathematics length 2.29128784747792 normalised [ 0.43644 0.87287 0.21822 ] string concat $a."**" = [ 1.00000 2.00000 0.50000 ]** vector constant X = [ 1.00000 0.00000 0.00000 ] subtraction $a - Z = [ 1.00000 2.00000 -0.50000 ] scalar divide $a / 3 = [ 0.33333 0.66667 0.16667 ] dot product $a . Y = 2 cross product $a x Y = [ -0.50000 0.00000 1.00000 ] Plane containing points X, $a, Z (in anti-clockwise order) normal = $n = [ 0.69631 -0.17408 0.69631 ] disance from O = $d = 0.696310623822791 Y axis intersect = $d/($n.Y) = -4 Conversions to MatrixReal objects Vector as a MatrixReal Row $r (vector -> matrix) => [ 1.000000000000E+00 2.000000000000E+00 5.000000000000E-01 ] Vector as a MatrixReal Col $c (vector -> matrix) => [ 1.000000000000E+00 ] [ 2.000000000000E+00 ] [ 5.000000000000E-01 ] Rotation Matrix from 3 Vectors $R => [ 4.364357804720E-01 8.728715609440E-01 2.182178902360E-01 ] [ 8.728715609440E-01 -4.364357804720E-01 0.000000000000E+00 ] [ 9.523809523810E-02 1.904761904762E-01 -9.523809523810E-01 ] Extract the Y row from the matrix as a VectorReal $R->matrix_row2vector(1) => [ 0.87287 -0.43644 0.00000 ] Rotate a vector with above rotation matrix $a * $R (vector -> vector) [ 2.22980 0.09524 -0.25797 ] Rotate a MatrixReal column (post multiply) (NB: matrix must be transposed (~) to match column format) ~$R * $c (col_matrix -> col_matrix) => [ 2.229797949979E+00 ] [ 9.523809523810E-02 ] [ -2.579725859545E-01 ]