TVM  0.9.4
tvm::solver::LexLSHierarchicalLeastSquareSolver Class Reference

#include <tvm/solver/LexLSHierarchicalLeastSquareSolver.h>

Inheritance diagram for tvm::solver::LexLSHierarchicalLeastSquareSolver:
Collaboration diagram for tvm::solver::LexLSHierarchicalLeastSquareSolver:

Public Member Functions

 LexLSHierarchicalLeastSquareSolver (const LexLSHLSSolverOptions &options={})
 
- Public Member Functions inherited from tvm::solver::abstract::HierarchicalLeastSquareSolver
 HierarchicalLeastSquareSolver (bool verbose=false)
 
 HierarchicalLeastSquareSolver (const HierarchicalLeastSquareSolver &)=delete
 
HierarchicalLeastSquareSolveroperator= (const HierarchicalLeastSquareSolver &)=delete
 
virtual ~HierarchicalLeastSquareSolver ()=default
 
void startBuild (const VariableVector &x, const std::vector< int > &nEq, const std::vector< int > &nIneq, bool useBounds, const hint::internal::Substitutions *const subs=nullptr)
 
void finalizeBuild ()
 
void addBound (LinearConstraintPtr bound)
 
void addConstraint (LinearConstraintPtr cstr, SolvingRequirementsPtr req)
 
void setMinimumNorm ()
 
bool solve ()
 
const Eigen::VectorXd & result () const
 
int constraintSize (const constraint::abstract::LinearConstraint &c) const
 
void process (const internal::SolverEvents &se)
 
int numberOfLevels () const
 

Protected Member Functions

void initializeBuild_ (const std::vector< int > &nEq, const std::vector< int > &nIneq, bool useBounds) override
 
ImpactFromChanges resize_ (const std::vector< int > &nEq, const std::vector< int > &nIneq, bool useBounds) override
 
void addBound_ (LinearConstraintPtr bound, RangePtr range, bool first) override
 
void addEqualityConstraint_ (LinearConstraintPtr cstr, SolvingRequirementsPtr req) override
 
void addIneqalityConstraint_ (LinearConstraintPtr cstr, SolvingRequirementsPtr req) override
 
void setMinimumNorm_ () override
 
void resetBounds_ () override
 
void preAssignmentProcess_ () override
 
void postAssignmentProcess_ () override
 
bool solve_ () override
 
const Eigen::VectorXd & result_ () const override
 
bool handleDoubleSidedConstraint_ () const override
 
Range nextEqualityConstraintRange_ (int lvl, const constraint::abstract::LinearConstraint &cstr) const override
 
Range nextInequalityConstraintRange_ (int lvl, const constraint::abstract::LinearConstraint &cstr) const override
 
void removeBounds_ (const Range &range) override
 
void updateEqualityTargetData (int lvl, scheme::internal::AssignmentTarget &target) override
 
void updateInequalityTargetData (int lvl, scheme::internal::AssignmentTarget &target) override
 
void updateBoundTargetData (scheme::internal::AssignmentTarget &target) override
 
void applyImpactLogic (ImpactFromChanges &impact)
 
void printProblemData_ () const override
 
void printDiagnostic_ () const override
 
- Protected Member Functions inherited from tvm::solver::abstract::HierarchicalLeastSquareSolver
const VariableVectorvariables () const
 
const hint::internal::Substitutionssubstitutions () const
 
template<typename... Args>
void addAssignement (Args &&... args)
 

Additional Inherited Members

- Public Types inherited from tvm::solver::abstract::HierarchicalLeastSquareSolver
template<typename K , typename T >
using map = utils::internal::map< K, T >
 
using AssignmentVector = std::vector< std::unique_ptr< MarkedAssignment > >
 
using AssignmentPtrVector = std::vector< MarkedAssignment * >
 
using MapToAssignment = map< constraint::abstract::LinearConstraint *, AssignmentPtrVector >
 
- Protected Attributes inherited from tvm::solver::abstract::HierarchicalLeastSquareSolver
bool useBounds_ = false
 
std::vector< int > nEq_
 
std::vector< int > nIneq_
 
std::vector< int > eqSize_
 
std::vector< int > ineqSize_
 

Detailed Description

An encapsulation of the LexLS solver, to solve linear least-squares problems.

Constructor & Destructor Documentation

◆ LexLSHierarchicalLeastSquareSolver()

tvm::solver::LexLSHierarchicalLeastSquareSolver::LexLSHierarchicalLeastSquareSolver ( const LexLSHLSSolverOptions options = {})

Member Function Documentation

◆ addBound_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::addBound_ ( LinearConstraintPtr  bound,
RangePtr  range,
bool  first 
)
overrideprotectedvirtual

◆ addEqualityConstraint_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::addEqualityConstraint_ ( LinearConstraintPtr  cstr,
SolvingRequirementsPtr  req 
)
overrideprotectedvirtual

◆ addIneqalityConstraint_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::addIneqalityConstraint_ ( LinearConstraintPtr  cstr,
SolvingRequirementsPtr  req 
)
overrideprotectedvirtual

◆ applyImpactLogic()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::applyImpactLogic ( ImpactFromChanges impact)
protectedvirtual

If for a derived class, the change on a category implies the change on others, impact is changed accordingly.

Reimplemented from tvm::solver::abstract::HierarchicalLeastSquareSolver.

◆ handleDoubleSidedConstraint_()

bool tvm::solver::LexLSHierarchicalLeastSquareSolver::handleDoubleSidedConstraint_ ( ) const
inlineoverrideprotectedvirtual

◆ initializeBuild_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::initializeBuild_ ( const std::vector< int > &  nEq,
const std::vector< int > &  nIneq,
bool  useBounds 
)
overrideprotectedvirtual

◆ nextEqualityConstraintRange_()

Range tvm::solver::LexLSHierarchicalLeastSquareSolver::nextEqualityConstraintRange_ ( int  lvl,
const constraint::abstract::LinearConstraint cstr 
) const
overrideprotectedvirtual

◆ nextInequalityConstraintRange_()

Range tvm::solver::LexLSHierarchicalLeastSquareSolver::nextInequalityConstraintRange_ ( int  lvl,
const constraint::abstract::LinearConstraint cstr 
) const
overrideprotectedvirtual

◆ postAssignmentProcess_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::postAssignmentProcess_ ( )
overrideprotectedvirtual

◆ preAssignmentProcess_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::preAssignmentProcess_ ( )
overrideprotectedvirtual

◆ printDiagnostic_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::printDiagnostic_ ( ) const
overrideprotectedvirtual

◆ printProblemData_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::printProblemData_ ( ) const
overrideprotectedvirtual

◆ removeBounds_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::removeBounds_ ( const Range range)
overrideprotectedvirtual

Remove the bounds on variable at given range from the data passed to the solver (e.g. set the bounds to -/+Inf).

Implements tvm::solver::abstract::HierarchicalLeastSquareSolver.

◆ resetBounds_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::resetBounds_ ( )
overrideprotectedvirtual

◆ resize_()

ImpactFromChanges tvm::solver::LexLSHierarchicalLeastSquareSolver::resize_ ( const std::vector< int > &  nEq,
const std::vector< int > &  nIneq,
bool  useBounds 
)
overrideprotectedvirtual

◆ result_()

const Eigen::VectorXd& tvm::solver::LexLSHierarchicalLeastSquareSolver::result_ ( ) const
overrideprotectedvirtual

◆ setMinimumNorm_()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::setMinimumNorm_ ( )
overrideprotectedvirtual

◆ solve_()

bool tvm::solver::LexLSHierarchicalLeastSquareSolver::solve_ ( )
overrideprotectedvirtual

◆ updateBoundTargetData()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::updateBoundTargetData ( scheme::internal::AssignmentTarget target)
overrideprotectedvirtual

◆ updateEqualityTargetData()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::updateEqualityTargetData ( int  lvl,
scheme::internal::AssignmentTarget target 
)
overrideprotectedvirtual

◆ updateInequalityTargetData()

void tvm::solver::LexLSHierarchicalLeastSquareSolver::updateInequalityTargetData ( int  lvl,
scheme::internal::AssignmentTarget target 
)
overrideprotectedvirtual

The documentation for this class was generated from the following file: