FLIQC_controller_core 1.0.2
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | Protected Attributes | List of all members
FLIQC_controller_core::LCQPow_bridge Class Reference

A bridge class to the LCQPow library. More...

#include <LCQPow_bridge.hpp>

Classes

class  LCQPow_impl
 Implementation of the LCQPow_bridge class. More...
 
struct  LCQPow_impl_deleter
 The deleter for LCQPow_impl. More...
 

Public Member Functions

 LCQPow_bridge ()
 Construct a new LCQPow_bridge object.
 
 ~LCQPow_bridge ()=default
 Destroy the LCQPow_bridge object.
 
void updateOptions (void)
 update the options for the solver. Call this when you change the option attributes.
 
void runSolver (const LCQProblemInput &input, LCQProblemOutput &output)
 run the solver and get the result
 
LCQProblemDebug getDebugStatistics (void)
 getDebugStatistics
 

Public Attributes

double stationarityTolerance = 1.0e-3
 Stationarity tolerance, tolerance for optimization.
 
double complementarityTolerance = 1.0e-3
 Complementarity tolerance, tolerance for complementarity vertical constraint.
 
double initialPenaltyParameter = 0.01
 Initial penalty parameter, initial penalty parameter for complementarity.
 
double penaltyUpdateFactor = 2.0
 Penalty update factor, factor for updating penaltised complementarity term.
 
int nVariables
 Number of variables.
 
int nConstraints
 Number of constraints.
 
int nComplementarity
 Number of complementarity variables.
 

Protected Attributes

std::unique_ptr< LCQPow_impl, LCQPow_impl_deleterpimpl
 Pointer to the implementation.
 

Detailed Description

A bridge class to the LCQPow library.

This class provides an interface to the LCQPow library for solving linear complementarity quadratic programming (LCQP) problems.

This class encapsulates the LCQPow implementation and provides methods to update options, run the solver, and retrieve debug statistics.

After initializing the LCQPow_bridge object, you can set several options and need to call updateOptions() before running the solver if you change some of the options.

Then you can call runSolver() with input to retrieve the output.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 260 of file LCQPow_bridge.hpp.

Constructor & Destructor Documentation

◆ LCQPow_bridge()

FLIQC_controller_core::LCQPow_bridge::LCQPow_bridge ( )

Construct a new LCQPow_bridge object.

Definition at line 234 of file LCQPow_bridge.cpp.

Member Function Documentation

◆ getDebugStatistics()

LCQProblemDebug FLIQC_controller_core::LCQPow_bridge::getDebugStatistics ( void  )

getDebugStatistics

Returns
LCQProblemDebug The statistics of the problem

Definition at line 280 of file LCQPow_bridge.cpp.

◆ runSolver()

void FLIQC_controller_core::LCQPow_bridge::runSolver ( const LCQProblemInput input,
LCQProblemOutput output 
)

run the solver and get the result

Parameters
[in]inputThe input of the problem.
[out]outputThe output of the problem.
Exceptions
LCQPowExceptionIf the solver fails to solve the problem, it will throw an exception.
Examples
Example_LCQPow_bridge.cpp.

Definition at line 247 of file LCQPow_bridge.cpp.

◆ updateOptions()

void FLIQC_controller_core::LCQPow_bridge::updateOptions ( void  )

update the options for the solver. Call this when you change the option attributes.

Options that could be initialized one time and used in each run (which needs updateOptions): stationarityTolerance, complementarityTolerance, initialPenaltyParameter, penaltyUpdateFactor

Options that will be initialized in each run (Which doesn't need updateOptions): nVariables, nConstraints, nComplementarity

Examples
Example_LCQPow_bridge.cpp.

Definition at line 240 of file LCQPow_bridge.cpp.

Member Data Documentation

◆ complementarityTolerance

double FLIQC_controller_core::LCQPow_bridge::complementarityTolerance = 1.0e-3

Complementarity tolerance, tolerance for complementarity vertical constraint.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 306 of file LCQPow_bridge.hpp.

◆ initialPenaltyParameter

double FLIQC_controller_core::LCQPow_bridge::initialPenaltyParameter = 0.01

Initial penalty parameter, initial penalty parameter for complementarity.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 307 of file LCQPow_bridge.hpp.

◆ nComplementarity

int FLIQC_controller_core::LCQPow_bridge::nComplementarity

Number of complementarity variables.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 311 of file LCQPow_bridge.hpp.

◆ nConstraints

int FLIQC_controller_core::LCQPow_bridge::nConstraints

Number of constraints.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 310 of file LCQPow_bridge.hpp.

◆ nVariables

int FLIQC_controller_core::LCQPow_bridge::nVariables

Number of variables.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 309 of file LCQPow_bridge.hpp.

◆ penaltyUpdateFactor

double FLIQC_controller_core::LCQPow_bridge::penaltyUpdateFactor = 2.0

Penalty update factor, factor for updating penaltised complementarity term.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 308 of file LCQPow_bridge.hpp.

◆ pimpl

std::unique_ptr<LCQPow_impl, LCQPow_impl_deleter> FLIQC_controller_core::LCQPow_bridge::pimpl
protected

Pointer to the implementation.

Definition at line 280 of file LCQPow_bridge.hpp.

◆ stationarityTolerance

double FLIQC_controller_core::LCQPow_bridge::stationarityTolerance = 1.0e-3

Stationarity tolerance, tolerance for optimization.

Examples
Example_LCQPow_bridge.cpp.

Definition at line 305 of file LCQPow_bridge.hpp.


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