Add comments for traits.
This commit is contained in:
parent
699e4c5bb7
commit
7a58f2c66a
|
@ -134,8 +134,7 @@ LMul<NVec<D, T>> for NMat<D, T>
|
|||
|
||||
impl<D: Dim,
|
||||
T: Clone + Copy + Eq + One + Zero +
|
||||
Mul<T, T> + Quot<T, T> + Sub<T, T> + Neg<T>
|
||||
>
|
||||
Mul<T, T> + Quot<T, T> + Sub<T, T> + Neg<T>>
|
||||
Inv for NMat<D, T>
|
||||
{
|
||||
fn inverse(&self) -> NMat<D, T>
|
||||
|
@ -161,7 +160,7 @@ Inv for NMat<D, T>
|
|||
// instead?
|
||||
|
||||
// FIXME: this is kind of uggly…
|
||||
// … but we cannot use position_betwee since we are iterating on one
|
||||
// … but we cannot use position_between since we are iterating on one
|
||||
// columns
|
||||
let mut n0 = 0u; // index of a non-zero entry
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
pub trait Cross<Result>
|
||||
{
|
||||
/// Computes the cross product between two elements (usually vectors).
|
||||
fn cross(&self, other : &Self) -> Result;
|
||||
}
|
||||
|
|
|
@ -1,14 +1,25 @@
|
|||
pub trait Dim
|
||||
{
|
||||
/// The dimension of the object.
|
||||
fn dim() -> uint;
|
||||
}
|
||||
|
||||
// Some dimension token. Useful to restrict the dimension of n-dimensional
|
||||
// object at the type-level.
|
||||
/// Dimensional token for 0-dimensions. Dimensional tokens are the preferred
|
||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
||||
pub struct d0;
|
||||
/// Dimensional token for 1-dimension. Dimensional tokens are the preferred
|
||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
||||
pub struct d1;
|
||||
/// Dimensional token for 2-dimensions. Dimensional tokens are the preferred
|
||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
||||
pub struct d2;
|
||||
/// Dimensional token for 3-dimensions. Dimensional tokens are the preferred
|
||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
||||
pub struct d3;
|
||||
/// Dimensional token for 4-dimensions. Dimensional tokens are the preferred
|
||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
||||
pub struct d4;
|
||||
|
||||
impl Dim for d0
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
pub trait Dot<T>
|
||||
{
|
||||
/// Computes the dot (inner) product of two objects.
|
||||
fn dot(&self, &Self) -> T;
|
||||
/// Computes the norm a an object.
|
||||
fn norm(&self) -> T;
|
||||
/**
|
||||
* Computes the squared norm of an object.
|
||||
*
|
||||
* Computes the squared norm of an object. Computation of the squared norm
|
||||
* is usually faster than the norm itself.
|
||||
*/
|
||||
fn sqnorm(&self) -> T; // { self.dot(self); }
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
pub trait Inv
|
||||
{
|
||||
/// Returns the inverse of an element.
|
||||
fn inverse(&self) -> Self;
|
||||
/// Inplace version of `inverse`.
|
||||
fn invert(&mut self);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// FIXME: valid only for square matrices…
|
||||
pub trait Transpose
|
||||
{
|
||||
/// Computes the transpose of a matrix.
|
||||
fn transposed(&self) -> Self;
|
||||
/// Inplace version of `transposed`.
|
||||
fn transpose(&mut self);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue