/// <summary>
/// Rotate a vector with this matrix.
/// </summary>
public VectorND RotateVector( VectorND input )
{
VectorND result = new VectorND( 4 );
VectorND copy = input.Clone();
for( int i = 0; i < 4; i++ )
{
result.X[i] =
copy.X[0] * this[i, 0] +
copy.X[1] * this[i, 1] +
copy.X[2] * this[i, 2] +
copy.X[3] * this[i, 3];
}
return result;
}