pub trait KluIndex:
PartialEq
+ PartialOrd
+ Ord
+ Debug
+ Copy
+ Clone
+ Eq
+ Sealed
+ Add<Output = Self> {
type KluCommon: Debug;
type KluNumeric: Debug;
type KluSymbolic: Debug;
Show 20 methods
// Required methods
fn from_usize(val: usize) -> Self;
fn into_usize(self) -> usize;
unsafe fn klu_defaults(common: *mut Self::KluCommon) -> Self;
unsafe fn klu_analyze(
dim: Self,
colum_offsets: *const Self,
row_indices: *const Self,
common: *mut Self::KluCommon,
) -> *mut Self::KluSymbolic;
unsafe fn klu_free_symbolic(
symbolic: *mut *mut Self::KluSymbolic,
common: *mut Self::KluCommon,
);
unsafe fn klu_factor(
colum_offsets: *const Self,
row_indices: *const Self,
data: *mut f64,
symbolic: *mut Self::KluSymbolic,
common: *mut Self::KluCommon,
) -> *mut Self::KluNumeric;
unsafe fn klu_z_factor(
colum_offsets: *const Self,
row_indices: *const Self,
data: *mut f64,
symbolic: *mut Self::KluSymbolic,
common: *mut Self::KluCommon,
) -> *mut Self::KluNumeric;
unsafe fn klu_refactor(
colum_offsets: *const Self,
row_indices: *const Self,
data: *mut f64,
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_z_refactor(
colum_offsets: *const Self,
row_indices: *const Self,
data: *mut f64,
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_solve(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
rhs_dimension: Self,
number_rhs: Self,
rhs_data: *mut f64,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_tsolve(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
rhs_dimension: Self,
number_rhs: Self,
rhs_data: *mut f64,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_z_solve(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
rhs_dimension: Self,
number_rhs: Self,
rhs_data: *mut f64,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_z_tsolve(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
rhs_dimension: Self,
number_rhs: Self,
rhs_data: *mut f64,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_free_numeric(
numeric: *mut *mut Self::KluNumeric,
common: *mut Self::KluCommon,
);
unsafe fn klu_z_free_numeric(
numeric: *mut *mut Self::KluNumeric,
common: *mut Self::KluCommon,
);
fn check_status(common: &Self::KluCommon);
fn get_rcond(common: &Self::KluCommon) -> f64;
fn is_singular(common: &Self::KluCommon) -> bool;
unsafe fn klu_rcond(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
common: *mut Self::KluCommon,
) -> bool;
unsafe fn klu_z_rcond(
symbolic: *mut Self::KluSymbolic,
numeric: *mut Self::KluNumeric,
common: *mut Self::KluCommon,
) -> bool;
}Expand description
Values that can be used by the KLU solver. The functions of this trait are all unsafe because they directly call the underlying C implementation.
Required Associated Types§
Required Methods§
fn from_usize(val: usize) -> Self
fn into_usize(self) -> usize
unsafe fn klu_defaults(common: *mut Self::KluCommon) -> Self
unsafe fn klu_analyze( dim: Self, colum_offsets: *const Self, row_indices: *const Self, common: *mut Self::KluCommon, ) -> *mut Self::KluSymbolic
unsafe fn klu_free_symbolic( symbolic: *mut *mut Self::KluSymbolic, common: *mut Self::KluCommon, )
unsafe fn klu_factor( colum_offsets: *const Self, row_indices: *const Self, data: *mut f64, symbolic: *mut Self::KluSymbolic, common: *mut Self::KluCommon, ) -> *mut Self::KluNumeric
unsafe fn klu_z_factor( colum_offsets: *const Self, row_indices: *const Self, data: *mut f64, symbolic: *mut Self::KluSymbolic, common: *mut Self::KluCommon, ) -> *mut Self::KluNumeric
unsafe fn klu_refactor( colum_offsets: *const Self, row_indices: *const Self, data: *mut f64, symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_z_refactor( colum_offsets: *const Self, row_indices: *const Self, data: *mut f64, symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_solve( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, rhs_dimension: Self, number_rhs: Self, rhs_data: *mut f64, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_tsolve( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, rhs_dimension: Self, number_rhs: Self, rhs_data: *mut f64, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_z_solve( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, rhs_dimension: Self, number_rhs: Self, rhs_data: *mut f64, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_z_tsolve( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, rhs_dimension: Self, number_rhs: Self, rhs_data: *mut f64, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_free_numeric( numeric: *mut *mut Self::KluNumeric, common: *mut Self::KluCommon, )
unsafe fn klu_z_free_numeric( numeric: *mut *mut Self::KluNumeric, common: *mut Self::KluCommon, )
fn check_status(common: &Self::KluCommon)
fn get_rcond(common: &Self::KluCommon) -> f64
fn is_singular(common: &Self::KluCommon) -> bool
unsafe fn klu_rcond( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, common: *mut Self::KluCommon, ) -> bool
unsafe fn klu_z_rcond( symbolic: *mut Self::KluSymbolic, numeric: *mut Self::KluNumeric, common: *mut Self::KluCommon, ) -> bool
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.