#[repr(C)]pub struct StaticLuDecomposition {
pub matrix: Matrix4x4,
pub permutation: [usize; 4],
pub parity: i32,
pub config: SolverConfig,
pub solver_state: SolverState,
}Expand description
Static LU decomposition solver
Fields§
§matrix: Matrix4x4Matrix being decomposed (overwritten with L and U)
permutation: [usize; 4]Permutation vector
parity: i32Determinant sign
config: SolverConfigSolver configuration
solver_state: SolverStateSolver state
Implementations§
Source§impl StaticLuDecomposition
impl StaticLuDecomposition
Sourcepub fn new(config: SolverConfig) -> Self
pub fn new(config: SolverConfig) -> Self
Create new LU decomposition solver
Sourcepub fn solve(
&mut self,
matrix: &Matrix4x4,
b: &Vector4,
) -> SolverResult<Vector4>
pub fn solve( &mut self, matrix: &Matrix4x4, b: &Vector4, ) -> SolverResult<Vector4>
Decompose matrix and solve linear system Ax = b
Sourcepub fn determinant(&self) -> f64
pub fn determinant(&self) -> f64
Calculate determinant from LU decomposition
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StaticLuDecomposition
impl RefUnwindSafe for StaticLuDecomposition
impl Send for StaticLuDecomposition
impl Sync for StaticLuDecomposition
impl Unpin for StaticLuDecomposition
impl UnsafeUnpin for StaticLuDecomposition
impl UnwindSafe for StaticLuDecomposition
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.