pub struct LMIOracle { /* private fields */ }
Expand description
The LMIOracle
struct represents an oracle for a Linear Matrix Inequality (LMI) constraint.
It contains the necessary data to evaluate the LMI constraint, including the matrix mat_f
,
the matrix mat_f0
, and an LDLTMgr
instance for managing the Cholesky decomposition.
This oracle can be used to check the feasibility of a given point with respect to the LMI constraint.
Implementations§
Source§impl LMIOracle
impl LMIOracle
Sourcepub fn new(mat_f: Vec<Array2<f64>>, mat_b: Array2<f64>) -> Self
pub fn new(mat_f: Vec<Array2<f64>>, mat_b: Array2<f64>) -> Self
This function initializes a new LMIOracle struct with given matrices and an LDLTMgr instance.
Arguments:
mat_f
: Themat_f
parameter is a vector of 2D arrays of typef64
.mat_b
: Themat_b
parameter is anArray2<f64>
type, which represents a 2-dimensional array of f64 (floating point numbers).
Returns:
An instance of the LMIOracle
struct is being returned.
Trait Implementations§
Source§impl OracleFeas<ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>> for LMIOracle
impl OracleFeas<ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>> for LMIOracle
Source§fn assess_feas(&mut self, xc: &Array1<f64>) -> Option<Cut>
fn assess_feas(&mut self, xc: &Array1<f64>) -> Option<Cut>
The function assesses the feasibility of a solution by calculating the difference between elements of matrices based on input arrays.
Arguments:
mat_f0
:mat_f0
is a reference to a 2D array off64
values.mat_f
: Themat_f
parameter in theget_elem
function is a slice ofArray2<f64>
types. It represents an array of 2D matrices. Each element in the slice is a 2D matrix of f64 values.xc
: Thexc
parameter in theassess_feas
function is a reference to anArray1<f64>
, which represents a one-dimensional array of floating-point numbers. This array is used as input to the function for some calculations related to feasibility assessment.
type CutChoice = f64
Auto Trait Implementations§
impl Freeze for LMIOracle
impl RefUnwindSafe for LMIOracle
impl Send for LMIOracle
impl Sync for LMIOracle
impl Unpin for LMIOracle
impl UnwindSafe for LMIOracle
Blanket Implementations§
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