ds = gan_vec3_dot_q ( &v3x, &v3y ); /* macro, or */ ds = gan_vec3_dot_s ( &v3x, &v3y ); /* function call */Similarly, to compute the squared length of a 3-vector, use
ds = gan_vec3_sqrlen_q ( &v3x ); /* macro, or */ ds = gan_vec3_sqrlen_s ( &v3x ); /* function call */
For 3-vectors only we also have the cross product (vector product)
gan_vec3_cross_q ( &v3x, &v3y, &v3z ); /* macro */ v3z = gan_vec3_cross_s ( &v3x, &v3y ); /* function call */
There are also outer products formed by two vectors, producing a matrix. These functions are described in Section 126.96.36.199.