Go to the previous, next section.

Vector Space Utilities

The `perpendicular` method takes a `fract_vector` as an argument. It returns `TRUE` if the dot product of its argument and each of the basis vectors in the space is 0. The `space_full` method checks to see if the vector space's basis vectors span the entire space.

The `proj_matrix` method calculates the projection matrix for the vector space. This matrix projects any vector `b` onto the vector space. Let the current vector space be the column space for a matrix `A`, and resulting matrix be `P`. Also, let `AT` be the transpose of `A`. The projection is calculated using: ```P = A * ((AT * A)^-1)*AT```.

The `beautify` method simplifies the basis vectors in the space. For example:

```{(3, 0, 0), (8, 0, -5)}  ==> {(1, 0, 0), (0, 0, 1)}
```

The `reduce_magnitude` method will try to maximally reduce the numerator of the fractions in the basis vectors of the space. The `fill_space` method increases the space dimension of the vector space to the value given as its argument.

The method `in` determines if its `fract_vector` argument is spanned by the vector space. The argument is factored with the LU decomposition of the vector space's matrix representation. If the resulting factored vector is dependent, then it is already in the vector space. Finally, the method `insert` will insert its `fract_vector` argument into the vector space, if the argument is not already in the space.

Go to the previous, next section.