Trait vikos::linear_algebra::Vector
[−]
[src]
pub trait Vector: Clone { type Scalar: Num + Zero + One + Copy + Encodable + Decodable + Default + Debug; fn dimension(&self) -> usize; fn at(&self, i: usize) -> Self::Scalar; fn mut_at(&mut self, i: usize) -> &mut Self::Scalar; fn dot(&self, other: &Self) -> Self::Scalar { ... } }
Vector whose dimension is known at runtime
Assumes the Vector
is represented as a
tuple of numbers representing its projection
along orthogonal base vectors
Associated Types
type Scalar: Num + Zero + One + Copy + Encodable + Decodable + Default + Debug
Underlying scalar type of Vector
type
Required Methods
fn dimension(&self) -> usize
Maximum allowed index for at
and mut_at
fn at(&self, i: usize) -> Self::Scalar
Length of projection along i
-th base
fn mut_at(&mut self, i: usize) -> &mut Self::Scalar
Mutable access to length of projection along i
-th base
Provided Methods
fn dot(&self, other: &Self) -> Self::Scalar
Scalar product
Default implementation using at
and dimension
is provided
Implementors
impl Vector for f64
impl Vector for [f64; 1]
impl Vector for [f64; 2]
impl Vector for [f64; 3]
impl Vector for [f64; 4]
impl Vector for [f64; 5]
impl Vector for [f64; 6]
impl Vector for [f64; 7]
impl Vector for [f64; 8]
impl Vector for [f64; 9]
impl Vector for [f64; 10]
impl Vector for [f64; 11]
impl Vector for [f64; 12]
impl Vector for [f64; 13]
impl Vector for [f64; 14]
impl Vector for [f64; 15]
impl Vector for [f64; 16]
impl Vector for [f64; 17]
impl Vector for [f64; 18]
impl Vector for [f64; 19]
impl Vector for [f64; 20]
impl Vector for [f64; 21]
impl Vector for [f64; 22]
impl Vector for [f64; 23]
impl Vector for [f64; 24]
impl Vector for [f64; 25]
impl Vector for [f64; 26]
impl Vector for [f64; 27]
impl Vector for [f64; 28]
impl Vector for [f64; 29]
impl Vector for [f64; 30]
impl Vector for [f64; 31]
impl Vector for [f64; 32]