Struct tiny_solver::problem::Problem
source · pub struct Problem {
pub total_variable_dimension: usize,
pub total_residual_dimension: usize,
pub variable_name_to_col_idx_dict: HashMap<String, usize>,
/* private fields */
}Fields§
§total_variable_dimension: usize§total_residual_dimension: usize§variable_name_to_col_idx_dict: HashMap<String, usize>Implementations§
source§impl Problem
impl Problem
pub fn new() -> Problem
pub fn add_residual_block( &mut self, dim_residual: usize, variable_key_size_list: Vec<(String, usize)>, factor: Box<dyn Factor + Send> )
pub fn combine_variables( &self, variable_key_value_map: &HashMap<String, DVector<f64>> ) -> DVector<f64>
pub fn compute_residual_and_jacobian( &self, variable_key_value_map: &HashMap<String, DVector<f64>> ) -> (Mat<f64>, SparseColMat<usize, f64>)
Trait Implementations§
source§impl PyClassImpl for Problem
impl PyClassImpl for Problem
source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
#[pyclass(subclass)]
source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
§type ThreadChecker = SendablePyClass<Problem>
type ThreadChecker = SendablePyClass<Problem>
This handles following two situations: Read more
§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
source§impl PyClassNewTextSignature<Problem> for PyClassImplCollector<Problem>
impl PyClassNewTextSignature<Problem> for PyClassImplCollector<Problem>
fn new_text_signature(self) -> Option<&'static str>
source§impl PyMethods<Problem> for PyClassImplCollector<Problem>
impl PyMethods<Problem> for PyClassImplCollector<Problem>
fn py_methods(self) -> &'static PyClassItems
source§impl PyTypeInfo for Problem
impl PyTypeInfo for Problem
§type AsRefTarget = PyCell<Problem>
type AsRefTarget = PyCell<Problem>
Utility type to make Py::as_ref work.
source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
source§fn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
Returns the safe abstraction over the type object.
source§fn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
Checks if
object is an instance of this type or a subclass of this type.source§fn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
Checks if
object is an instance of this type.Auto Trait Implementations§
impl Freeze for Problem
impl !RefUnwindSafe for Problem
impl Send for Problem
impl Sync for Problem
impl Unpin for Problem
impl !UnwindSafe for Problem
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
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.