TVM  0.9.2
tvm::scheme::WeightedLeastSquares Class Reference

#include <tvm/scheme/WeightedLeastSquares.h>

Inheritance diagram for tvm::scheme::WeightedLeastSquares:
Collaboration diagram for tvm::scheme::WeightedLeastSquares:

Public Types

using ComputationDataType = Memory
 

Public Member Functions

template<class SolverFactory , typename std::enable_if< isFactory< SolverFactory >::value, int >::type = 0>
 WeightedLeastSquares (const SolverFactory &solverFactory, WeightedLeastSquaresOptions schemeOptions={})
 
template<class SolverOptions , typename std::enable_if< isLSSolverFactoryOption< SolverOptions >::value, int >::type = 0>
 WeightedLeastSquares (const SolverOptions &solverOptions, WeightedLeastSquaresOptions schemeOptions={})
 
template<typename T , typename std::enable_if<!isFactory< T >::value &&!isLSSolverFactoryOption< T >::value, int >::type = 0>
 WeightedLeastSquares (const T &, WeightedLeastSquaresOptions={})
 
 WeightedLeastSquares (const WeightedLeastSquares &)=delete
 
 WeightedLeastSquares (WeightedLeastSquares &&)=delete
 
WeightedLeastSquaresoperator= (const WeightedLeastSquares &)=delete
 
WeightedLeastSquaresoperator= (WeightedLeastSquares &&)=delete
 
bool solve_ (const LinearizedControlProblem &problem, internal::ProblemComputationData *data) const
 
void updateComputationData_ (const LinearizedControlProblem &problem, internal::ProblemComputationData *data) const
 
std::unique_ptr< Memory > createComputationData_ (const LinearizedControlProblem &problem) const
 
- Public Member Functions inherited from tvm::scheme::abstract::ResolutionScheme< WeightedLeastSquares >
bool solve (Problem &problem) const
 
std::unique_ptr< internal::ProblemComputationDatacreateComputationData (const Problem &problem) const
 
void updateComputationData (const Problem &problem, internal::ProblemComputationData *data) const
 
WeightedLeastSquaresderived ()
 
const WeightedLeastSquaresderived () const
 
- Public Member Functions inherited from tvm::scheme::internal::ResolutionSchemeBase
double big_number () const
 
void big_number (double big)
 
- Public Member Functions inherited from tvm::internal::ObjWithId
 ObjWithId (const ObjWithId &)=delete
 
 ObjWithId (ObjWithId &&other)
 
ObjWithIdoperator= (const ObjWithId &)=delete
 
ObjWithIdoperator= (ObjWithId &&other)
 
int id () const
 

Protected Member Functions

void resetComputationData (const LinearizedControlProblem &problem, Memory *memory) const
 
void processProblem (const LinearizedControlProblem &problem, Memory *memory) const
 
void addTask (const LinearizedControlProblem &problem, Memory *memory, const TaskWithRequirements &task, solver::internal::SolverEvents &se) const
 
void removeTask (const LinearizedControlProblem &problem, Memory *memory, const TaskWithRequirements &task, solver::internal::SolverEvents &se) const
 
- Protected Member Functions inherited from tvm::scheme::abstract::LinearResolutionScheme< WeightedLeastSquares >
 LinearResolutionScheme (internal::SchemeAbilities abilities, double big=constant::big_number)
 
- Protected Member Functions inherited from tvm::scheme::abstract::ResolutionScheme< WeightedLeastSquares >
 ResolutionScheme (internal::SchemeAbilities abilities, double big=constant::big_number)
 
- Protected Member Functions inherited from tvm::scheme::internal::ResolutionSchemeBase
 ResolutionSchemeBase (SchemeAbilities abilities, double big=constant::big_number)
 
- Protected Member Functions inherited from tvm::internal::ObjWithId
 ObjWithId ()
 

Protected Attributes

WeightedLeastSquaresOptions options_
 
std::unique_ptr< solver::abstract::LSSolverFactorysolverFactory_
 
- Protected Attributes inherited from tvm::scheme::internal::ResolutionSchemeBase
SchemeAbilities abilities_
 
double big_number_
 

Detailed Description

This class implements the classic weighted least square scheme.

Member Typedef Documentation

◆ ComputationDataType

Constructor & Destructor Documentation

◆ WeightedLeastSquares() [1/5]

template<class SolverFactory , typename std::enable_if< isFactory< SolverFactory >::value, int >::type = 0>
tvm::scheme::WeightedLeastSquares::WeightedLeastSquares ( const SolverFactory &  solverFactory,
WeightedLeastSquaresOptions  schemeOptions = {} 
)
inline

Constructor from a LSSolverFactory

Template Parameters
SolverFactoryAny class deriving from LSSolverFactory.
Parameters
solverFactoryA factory for the solver that should be used in the resolution scheme.
schemeOptionsOptions for the schemes. See tvm::Scheme::WeightedLeastSquaresOptions.

◆ WeightedLeastSquares() [2/5]

template<class SolverOptions , typename std::enable_if< isLSSolverFactoryOption< SolverOptions >::value, int >::type = 0>
tvm::scheme::WeightedLeastSquares::WeightedLeastSquares ( const SolverOptions &  solverOptions,
WeightedLeastSquaresOptions  schemeOptions = {} 
)
inline

Constructor from a configuration class

Template Parameters
SolverOptionsAny class representing solver options. The class must have a member type Factory referring to a class C deriving from LSSolverFactory and such that C can be constructed from SolverOptions.
Parameters
solverOptionsA set of options for the solver to be used by the resolution scheme.
schemeOptionsOptions for the scheme. See tvm::Scheme::WeightedLeastSquaresOptions.

◆ WeightedLeastSquares() [3/5]

template<typename T , typename std::enable_if<!isFactory< T >::value &&!isLSSolverFactoryOption< T >::value, int >::type = 0>
tvm::scheme::WeightedLeastSquares::WeightedLeastSquares ( const T &  ,
WeightedLeastSquaresOptions  = {} 
)
inline

A fallback constructor that is enabled when none of the others are. It always fails at compilation time to provide a nice error message.

◆ WeightedLeastSquares() [4/5]

tvm::scheme::WeightedLeastSquares::WeightedLeastSquares ( const WeightedLeastSquares )
delete

◆ WeightedLeastSquares() [5/5]

tvm::scheme::WeightedLeastSquares::WeightedLeastSquares ( WeightedLeastSquares &&  )
delete

Member Function Documentation

◆ addTask()

void tvm::scheme::WeightedLeastSquares::addTask ( const LinearizedControlProblem problem,
Memory *  memory,
const TaskWithRequirements task,
solver::internal::SolverEvents se 
) const
protected

◆ createComputationData_()

std::unique_ptr<Memory> tvm::scheme::WeightedLeastSquares::createComputationData_ ( const LinearizedControlProblem problem) const

◆ operator=() [1/2]

WeightedLeastSquares& tvm::scheme::WeightedLeastSquares::operator= ( const WeightedLeastSquares )
delete

◆ operator=() [2/2]

WeightedLeastSquares& tvm::scheme::WeightedLeastSquares::operator= ( WeightedLeastSquares &&  )
delete

◆ processProblem()

void tvm::scheme::WeightedLeastSquares::processProblem ( const LinearizedControlProblem problem,
Memory *  memory 
) const
protected

◆ removeTask()

void tvm::scheme::WeightedLeastSquares::removeTask ( const LinearizedControlProblem problem,
Memory *  memory,
const TaskWithRequirements task,
solver::internal::SolverEvents se 
) const
protected

◆ resetComputationData()

void tvm::scheme::WeightedLeastSquares::resetComputationData ( const LinearizedControlProblem problem,
Memory *  memory 
) const
protected

◆ solve_()

bool tvm::scheme::WeightedLeastSquares::solve_ ( const LinearizedControlProblem problem,
internal::ProblemComputationData data 
) const

Private interface for CRTP

◆ updateComputationData_()

void tvm::scheme::WeightedLeastSquares::updateComputationData_ ( const LinearizedControlProblem problem,
internal::ProblemComputationData data 
) const

Member Data Documentation

◆ options_

WeightedLeastSquaresOptions tvm::scheme::WeightedLeastSquares::options_
protected

◆ solverFactory_

std::unique_ptr<solver::abstract::LSSolverFactory> tvm::scheme::WeightedLeastSquares::solverFactory_
protected

The factory to create solvers attached to each problem.


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