# [−][src]Trait alga::linear::FiniteDimInnerSpace

    pub trait FiniteDimInnerSpace: InnerSpace + FiniteDimVectorSpace<Field = Self::ComplexField> {
        fn orthonormalize(vs: &mut [Self]) -> usize;
        fn orthonormal_subspace_basis<F: FnMut(&Self) -> bool>(vs: &[Self], f: F);
    }

A finite-dimensional vector space equipped with an inner product that must coincide with the dot product.

## Required methods

### `fn orthonormalize(vs: &mut [Self]) -> usize`

Orthonormalizes the given family of vectors. The largest free family of vectors is moved at the beginning of the array and its size is returned. Vectors at an indices larger or equal to this length can be modified to an arbitrary value.

### `fn orthonormal_subspace_basis<F: FnMut(&Self) -> bool>(vs: &[Self], f: F)`

Applies the given closure to each element of the orthonormal basis of the subspace orthogonal to free family of vectors `vs`. If `vs` is not a free family, the result is unspecified.

Loading content...

## Implementors

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)