      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165

    #[cfg(any(feature = "alloc", feature = "std"))]
    use crate::base::dimension::Dynamic;
    use crate::base::dimension::{U1, U2, U3, U4, U5, U6};
    #[cfg(any(feature = "std", feature = "alloc"))]
    use crate::base::vec_storage::VecStorage;
    use crate::base::storage::Owned;
    use crate::base::Matrix;

    /*
     *
     *
     * Column-major matrices.
     *
     *
     */
    /// A statically sized column-major matrix with `R` rows and `C` columns.
    #[deprecated(note = "This matrix name contains a typo. Use MatrixMN instead.")]
    pub type MatrixNM<N, R, C> = Matrix<N, R, C, Owned<N, R, C>>;

    /// A statically sized column-major matrix with `R` rows and `C` columns.
    pub type MatrixMN<N, R, C> = Matrix<N, R, C, Owned<N, R, C>>;

    /// A statically sized column-major square matrix with `D` rows and columns.
    pub type MatrixN<N, D> = MatrixMN<N, D, D>;

    /// A dynamically sized column-major matrix.
    #[cfg(any(feature = "std", feature = "alloc"))]
    pub type DMatrix<N> = MatrixN<N, Dynamic>;

    /// A stack-allocated, column-major, 1x1 square matrix.
    pub type Matrix1<N> = MatrixN<N, U1>;
    /// A stack-allocated, column-major, 2x2 square matrix.
    pub type Matrix2<N> = MatrixN<N, U2>;
    /// A stack-allocated, column-major, 3x3 square matrix.
    pub type Matrix3<N> = MatrixN<N, U3>;
    /// A stack-allocated, column-major, 4x4 square matrix.
    pub type Matrix4<N> = MatrixN<N, U4>;
    /// A stack-allocated, column-major, 5x5 square matrix.
    pub type Matrix5<N> = MatrixN<N, U5>;
    /// A stack-allocated, column-major, 6x6 square matrix.
    pub type Matrix6<N> = MatrixN<N, U6>;

    /// A stack-allocated, column-major, 1x2 matrix.
    pub type Matrix1x2<N> = MatrixMN<N, U1, U2>;
    /// A stack-allocated, column-major, 1x3 matrix.
    pub type Matrix1x3<N> = MatrixMN<N, U1, U3>;
    /// A stack-allocated, column-major, 1x4 matrix.
    pub type Matrix1x4<N> = MatrixMN<N, U1, U4>;
    /// A stack-allocated, column-major, 1x5 matrix.
    pub type Matrix1x5<N> = MatrixMN<N, U1, U5>;
    /// A stack-allocated, column-major, 1x6 matrix.
    pub type Matrix1x6<N> = MatrixMN<N, U1, U6>;

    /// A stack-allocated, column-major, 2x3 matrix.
    pub type Matrix2x3<N> = MatrixMN<N, U2, U3>;
    /// A stack-allocated, column-major, 2x4 matrix.
    pub type Matrix2x4<N> = MatrixMN<N, U2, U4>;
    /// A stack-allocated, column-major, 2x5 matrix.
    pub type Matrix2x5<N> = MatrixMN<N, U2, U5>;
    /// A stack-allocated, column-major, 2x6 matrix.
    pub type Matrix2x6<N> = MatrixMN<N, U2, U6>;

    /// A stack-allocated, column-major, 3x4 matrix.
    pub type Matrix3x4<N> = MatrixMN<N, U3, U4>;
    /// A stack-allocated, column-major, 3x5 matrix.
    pub type Matrix3x5<N> = MatrixMN<N, U3, U5>;
    /// A stack-allocated, column-major, 3x6 matrix.
    pub type Matrix3x6<N> = MatrixMN<N, U3, U6>;

    /// A stack-allocated, column-major, 4x5 matrix.
    pub type Matrix4x5<N> = MatrixMN<N, U4, U5>;
    /// A stack-allocated, column-major, 4x6 matrix.
    pub type Matrix4x6<N> = MatrixMN<N, U4, U6>;

    /// A stack-allocated, column-major, 5x6 matrix.
    pub type Matrix5x6<N> = MatrixMN<N, U5, U6>;

    /// A stack-allocated, column-major, 2x1 matrix.
    pub type Matrix2x1<N> = MatrixMN<N, U2, U1>;
    /// A stack-allocated, column-major, 3x1 matrix.
    pub type Matrix3x1<N> = MatrixMN<N, U3, U1>;
    /// A stack-allocated, column-major, 4x1 matrix.
    pub type Matrix4x1<N> = MatrixMN<N, U4, U1>;
    /// A stack-allocated, column-major, 5x1 matrix.
    pub type Matrix5x1<N> = MatrixMN<N, U5, U1>;
    /// A stack-allocated, column-major, 6x1 matrix.
    pub type Matrix6x1<N> = MatrixMN<N, U6, U1>;

    /// A stack-allocated, column-major, 3x2 matrix.
    pub type Matrix3x2<N> = MatrixMN<N, U3, U2>;
    /// A stack-allocated, column-major, 4x2 matrix.
    pub type Matrix4x2<N> = MatrixMN<N, U4, U2>;
    /// A stack-allocated, column-major, 5x2 matrix.
    pub type Matrix5x2<N> = MatrixMN<N, U5, U2>;
    /// A stack-allocated, column-major, 6x2 matrix.
    pub type Matrix6x2<N> = MatrixMN<N, U6, U2>;

    /// A stack-allocated, column-major, 4x3 matrix.
    pub type Matrix4x3<N> = MatrixMN<N, U4, U3>;
    /// A stack-allocated, column-major, 5x3 matrix.
    pub type Matrix5x3<N> = MatrixMN<N, U5, U3>;
    /// A stack-allocated, column-major, 6x3 matrix.
    pub type Matrix6x3<N> = MatrixMN<N, U6, U3>;

    /// A stack-allocated, column-major, 5x4 matrix.
    pub type Matrix5x4<N> = MatrixMN<N, U5, U4>;
    /// A stack-allocated, column-major, 6x4 matrix.
    pub type Matrix6x4<N> = MatrixMN<N, U6, U4>;

    /// A stack-allocated, column-major, 6x5 matrix.
    pub type Matrix6x5<N> = MatrixMN<N, U6, U5>;

    /*
     *
     *
     * Column vectors.
     *
     *
     */
    /// A dynamically sized column vector.
    #[cfg(any(feature = "std", feature = "alloc"))]
    pub type DVector<N> = Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>;

    /// A statically sized D-dimensional column vector.
    pub type VectorN<N, D> = MatrixMN<N, D, U1>;

    /// A stack-allocated, 1-dimensional column vector.
    pub type Vector1<N> = VectorN<N, U1>;
    /// A stack-allocated, 2-dimensional column vector.
    pub type Vector2<N> = VectorN<N, U2>;
    /// A stack-allocated, 3-dimensional column vector.
    pub type Vector3<N> = VectorN<N, U3>;
    /// A stack-allocated, 4-dimensional column vector.
    pub type Vector4<N> = VectorN<N, U4>;
    /// A stack-allocated, 5-dimensional column vector.
    pub type Vector5<N> = VectorN<N, U5>;
    /// A stack-allocated, 6-dimensional column vector.
    pub type Vector6<N> = VectorN<N, U6>;

    /*
     *
     *
     * Row vectors.
     *
     *
     */
    /// A dynamically sized row vector.
    #[cfg(any(feature = "std", feature = "alloc"))]
    pub type RowDVector<N> = Matrix<N, U1, Dynamic, VecStorage<N, U1, Dynamic>>;

    /// A statically sized D-dimensional row vector.
    pub type RowVectorN<N, D> = MatrixMN<N, U1, D>;

    /// A stack-allocated, 1-dimensional row vector.
    pub type RowVector1<N> = RowVectorN<N, U1>;
    /// A stack-allocated, 2-dimensional row vector.
    pub type RowVector2<N> = RowVectorN<N, U2>;
    /// A stack-allocated, 3-dimensional row vector.
    pub type RowVector3<N> = RowVectorN<N, U3>;
    /// A stack-allocated, 4-dimensional row vector.
    pub type RowVector4<N> = RowVectorN<N, U4>;
    /// A stack-allocated, 5-dimensional row vector.
    pub type RowVector5<N> = RowVectorN<N, U5>;
    /// A stack-allocated, 6-dimensional row vector.
    pub type RowVector6<N> = RowVectorN<N, U6>;

# 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`)