7 #include <eigen-qld/QLDDirect.h>
16 class QLDLSSolverFactory;
48 virtual const Eigen::VectorXd &
result_()
const override;
65 using VectorXdTail = decltype(Eigen::VectorXd().tail(1));
66 using MatrixXdBottom = decltype(Eigen::MatrixXd().bottomRows(1));
77 MatrixXdBottom Aineq_;
80 Eigen::QLDDirect qld_;
81 Eigen::HouseholderQR<Eigen::MatrixXd> qr_;
84 bool underspecifiedObj_;
90 double choleskyDamping_;
100 std::unique_ptr<abstract::LSSolverFactory>
clone()
const override;
105 std::unique_ptr<abstract::LeastSquareSolver>
createSolver()
const override;
#define TVM_ADD_NON_DEFAULT_OPTION(optionName, defaultValue)
Definition: Option.h:30
#define TVM_DLLAPI
Definition: api.h:35
Definition: LinearConstraint.h:56
Definition: AssignmentTarget.h:37
Definition: QLDLeastSquareSolver.h:98
std::unique_ptr< abstract::LSSolverFactory > clone() const override
QLDLSSolverFactory(const QLDLSSolverOptions &options={})
std::unique_ptr< abstract::LeastSquareSolver > createSolver() const override
Definition: QLDLeastSquareSolver.h:20
Definition: QLDLeastSquareSolver.h:32
Range nextInequalityConstraintRange_(const constraint::abstract::LinearConstraint &cstr) const override
void addObjective_(LinearConstraintPtr cstr, SolvingRequirementsPtr req, double additionalWeight) override
bool handleDoubleSidedConstraint_() const override
Definition: QLDLeastSquareSolver.h:49
QLDLeastSquareSolver(const QLDLSSolverOptions &options={})
void updateBoundTargetData(scheme::internal::AssignmentTarget &target) override
virtual const Eigen::VectorXd & result_() const override
void addBound_(LinearConstraintPtr bound, RangePtr range, bool first) override
void preAssignmentProcess_() override
void printProblemData_() const override
void removeBounds_(const Range &r) override
void setMinimumNorm_() override
void updateObjectiveTargetData(scheme::internal::AssignmentTarget &target) override
void printDiagnostic_() const override
void resetBounds_() override
Range nextObjectiveRange_(const constraint::abstract::LinearConstraint &cstr) const override
void updateEqualityTargetData(scheme::internal::AssignmentTarget &target) override
void addIneqalityConstraint_(LinearConstraintPtr cstr) override
void initializeBuild_(int nObj, int nEq, int nIneq, bool useBounds) override
ImpactFromChanges resize_(int nObj, int nEq, int nIneq, bool useBounds) override
void addEqualityConstraint_(LinearConstraintPtr cstr) override
void postAssignmentProcess_() override
Range nextEqualityConstraintRange_(const constraint::abstract::LinearConstraint &cstr) const override
void updateInequalityTargetData(scheme::internal::AssignmentTarget &target) override
void applyImpactLogic(ImpactFromChanges &impact) override
Definition: LeastSquareSolver.h:220
Definition: LeastSquareSolver.h:37
std::shared_ptr< constraint::abstract::LinearConstraint > LinearConstraintPtr
Definition: defs.h:59
std::shared_ptr< Range > RangePtr
Definition: defs.h:61
std::shared_ptr< requirements::SolvingRequirementsWithCallbacks > SolvingRequirementsPtr
Definition: defs.h:63
Definition: LeastSquareSolver.h:111