TVM  0.9.4
tvm::solver::LSSOLLeastSquareSolver Class Reference

#include <tvm/solver/LSSOLLeastSquareSolver.h>

Inheritance diagram for tvm::solver::LSSOLLeastSquareSolver:
Collaboration diagram for tvm::solver::LSSOLLeastSquareSolver:

Public Member Functions

 LSSOLLeastSquareSolver (const LSSOLLSSolverOptions &options={})
 
- Public Member Functions inherited from tvm::solver::abstract::LeastSquareSolver
 LeastSquareSolver (bool verbose=false)
 
 LeastSquareSolver (const LeastSquareSolver &)=delete
 
LeastSquareSolveroperator= (const LeastSquareSolver &)=delete
 
virtual ~LeastSquareSolver ()=default
 
void startBuild (const VariableVector &x, int nObj, int nEq, int nIneq, bool useBounds=true, const hint::internal::Substitutions *const subs=nullptr)
 
void finalizeBuild ()
 
void addBound (LinearConstraintPtr bound)
 
void addConstraint (LinearConstraintPtr cstr)
 
void addObjective (LinearConstraintPtr obj, SolvingRequirementsPtr req, double additionalWeight=1)
 
void setMinimumNorm ()
 
bool solve ()
 
const Eigen::VectorXd & result () const
 
int constraintSize (const constraint::abstract::LinearConstraint &c) const
 
void process (const internal::SolverEvents &se)
 

Protected Member Functions

void initializeBuild_ (int nObj, int nEq, int nIneq, bool useBounds) override
 
ImpactFromChanges resize_ (int nObj, int nEq, int nIneq, bool useBounds) override
 
void addBound_ (LinearConstraintPtr bound, RangePtr range, bool first) override
 
void addEqualityConstraint_ (LinearConstraintPtr cstr) override
 
void addIneqalityConstraint_ (LinearConstraintPtr cstr) override
 
void addObjective_ (LinearConstraintPtr cstr, SolvingRequirementsPtr req, double additionalWeight) 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_ (const constraint::abstract::LinearConstraint &cstr) const override
 
Range nextInequalityConstraintRange_ (const constraint::abstract::LinearConstraint &cstr) const override
 
Range nextObjectiveRange_ (const constraint::abstract::LinearConstraint &cstr) const override
 
void removeBounds_ (const Range &range) override
 
void updateEqualityTargetData (scheme::internal::AssignmentTarget &target) override
 
void updateInequalityTargetData (scheme::internal::AssignmentTarget &target) override
 
void updateBoundTargetData (scheme::internal::AssignmentTarget &target) override
 
void updateObjectiveTargetData (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::LeastSquareSolver
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::LeastSquareSolver
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::LeastSquareSolver
int nEq_
 
int nIneq_
 
int nObj_
 
int objSize_
 
int eqSize_
 
int ineqSize_
 

Detailed Description

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

Constructor & Destructor Documentation

◆ LSSOLLeastSquareSolver()

tvm::solver::LSSOLLeastSquareSolver::LSSOLLeastSquareSolver ( const LSSOLLSSolverOptions options = {})

Member Function Documentation

◆ addBound_()

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

◆ addEqualityConstraint_()

void tvm::solver::LSSOLLeastSquareSolver::addEqualityConstraint_ ( LinearConstraintPtr  cstr)
overrideprotectedvirtual

◆ addIneqalityConstraint_()

void tvm::solver::LSSOLLeastSquareSolver::addIneqalityConstraint_ ( LinearConstraintPtr  cstr)
overrideprotectedvirtual

◆ addObjective_()

void tvm::solver::LSSOLLeastSquareSolver::addObjective_ ( LinearConstraintPtr  cstr,
SolvingRequirementsPtr  req,
double  additionalWeight 
)
overrideprotectedvirtual

◆ applyImpactLogic()

void tvm::solver::LSSOLLeastSquareSolver::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::LeastSquareSolver.

◆ handleDoubleSidedConstraint_()

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

◆ initializeBuild_()

void tvm::solver::LSSOLLeastSquareSolver::initializeBuild_ ( int  nObj,
int  nEq,
int  nIneq,
bool  useBounds 
)
overrideprotectedvirtual

◆ nextEqualityConstraintRange_()

Range tvm::solver::LSSOLLeastSquareSolver::nextEqualityConstraintRange_ ( const constraint::abstract::LinearConstraint cstr) const
overrideprotectedvirtual

◆ nextInequalityConstraintRange_()

Range tvm::solver::LSSOLLeastSquareSolver::nextInequalityConstraintRange_ ( const constraint::abstract::LinearConstraint cstr) const
overrideprotectedvirtual

◆ nextObjectiveRange_()

Range tvm::solver::LSSOLLeastSquareSolver::nextObjectiveRange_ ( const constraint::abstract::LinearConstraint cstr) const
overrideprotectedvirtual

◆ postAssignmentProcess_()

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

◆ preAssignmentProcess_()

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

◆ printDiagnostic_()

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

◆ printProblemData_()

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

◆ removeBounds_()

void tvm::solver::LSSOLLeastSquareSolver::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::LeastSquareSolver.

◆ resetBounds_()

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

◆ resize_()

ImpactFromChanges tvm::solver::LSSOLLeastSquareSolver::resize_ ( int  nObj,
int  nEq,
int  nIneq,
bool  useBounds 
)
overrideprotectedvirtual

◆ result_()

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

◆ setMinimumNorm_()

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

◆ solve_()

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

◆ updateBoundTargetData()

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

◆ updateEqualityTargetData()

void tvm::solver::LSSOLLeastSquareSolver::updateEqualityTargetData ( scheme::internal::AssignmentTarget target)
overrideprotectedvirtual

◆ updateInequalityTargetData()

void tvm::solver::LSSOLLeastSquareSolver::updateInequalityTargetData ( scheme::internal::AssignmentTarget target)
overrideprotectedvirtual

◆ updateObjectiveTargetData()

void tvm::solver::LSSOLLeastSquareSolver::updateObjectiveTargetData ( scheme::internal::AssignmentTarget target)
overrideprotectedvirtual

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