pub trait VectorSpace: Add<Output = Self> + Adjunct<Item = Self::Scalar> + Converged + Copy + Fold + PartialEq + Mul<Self::Scalar, Output = Self> + Neg<Output = Self> + ZipMap<Self::Scalar, Output = Self> {
type Scalar: AbsDiffEq + NumCast + Real;
Show 15 methods
fn scalar_component(&self, index: usize) -> Option<Self::Scalar>;
fn from_x(x: Self::Scalar) -> Self
where
Self: Basis + FiniteDimensional<N = U1>,
{ ... }
fn from_xy(x: Self::Scalar, y: Self::Scalar) -> Self
where
Self: Basis + FiniteDimensional<N = U2>,
{ ... }
fn from_xyz(x: Self::Scalar, y: Self::Scalar, z: Self::Scalar) -> Self
where
Self: Basis + FiniteDimensional<N = U3>,
{ ... }
fn into_x(self) -> Self::Scalar
where
Self: FiniteDimensional<N = U1>,
{ ... }
fn into_xy(self) -> (Self::Scalar, Self::Scalar)
where
Self: FiniteDimensional<N = U2>,
{ ... }
fn into_xyz(self) -> (Self::Scalar, Self::Scalar, Self::Scalar)
where
Self: FiniteDimensional<N = U3>,
{ ... }
fn x(&self) -> Self::Scalar
where
Self: FiniteDimensional,
Self::N: Cmp<U0, Output = Greater>,
{ ... }
fn y(&self) -> Self::Scalar
where
Self: FiniteDimensional,
Self::N: Cmp<U1, Output = Greater>,
{ ... }
fn z(&self) -> Self::Scalar
where
Self: FiniteDimensional,
Self::N: Cmp<U2, Output = Greater>,
{ ... }
fn zero() -> Self { ... }
fn is_zero(&self) -> bool { ... }
fn from_homogeneous(vector: Self::ProjectiveSpace) -> Option<Self>
where
Self: Homogeneous,
Self::ProjectiveSpace: Truncate<Self> + VectorSpace<Scalar = Self::Scalar>,
{ ... }
fn into_homogeneous(self) -> Self::ProjectiveSpace
where
Self: Homogeneous + Extend<<Self as Homogeneous>::ProjectiveSpace>,
Self::ProjectiveSpace: VectorSpace<Scalar = Self::Scalar>,
{ ... }
fn mean<I>(vectors: I) -> Option<Self>
where
I: IntoIterator<Item = Self>,
{ ... }
}