TVM  0.9.4
tvm::function::BasicLinearFunction Class Reference

#include <tvm/function/BasicLinearFunction.h>

Inheritance diagram for tvm::function::BasicLinearFunction:
Collaboration diagram for tvm::function::BasicLinearFunction:

Public Member Functions

 BasicLinearFunction (const MatrixConstRef &A, VariablePtr x)
 
 BasicLinearFunction (const std::vector< MatrixConstRef > &A, const std::vector< VariablePtr > &x)
 
 BasicLinearFunction (const MatrixConstRef &A, VariablePtr x, const VectorConstRef &b)
 
 BasicLinearFunction (const std::vector< MatrixConstRef > &A, const std::vector< VariablePtr > &x, const VectorConstRef &b)
 
 BasicLinearFunction (int m, VariablePtr x)
 
 BasicLinearFunction (int m, const std::vector< VariablePtr > &x)
 
template<typename Derived >
 BasicLinearFunction (const utils::LinearExpr< Derived > &lin)
 
template<typename CstDerived , typename... Derived>
 BasicLinearFunction (const utils::AffineExpr< CstDerived, Derived... > &aff)
 
virtual void A (const MatrixConstRef &A, const Variable &x, const tvm::internal::MatrixProperties &p={})
 
virtual void A (const MatrixConstRef &A, const tvm::internal::MatrixProperties &p={})
 
virtual void b (const VectorConstRef &b, const tvm::internal::MatrixProperties &p={})
 
- Public Member Functions inherited from tvm::function::abstract::LinearFunction
void updateValue ()
 
void updateVelocity ()
 
void resizeCache () override
 
const tvm::internal::VectorWithPropertiesb () const
 
- Public Member Functions inherited from tvm::function::abstract::Function
virtual const Eigen::VectorXd & velocity () const
 
virtual const Eigen::VectorXd & normalAcceleration () const
 
virtual MatrixConstRef JDot (const Variable &x) const
 
- Public Member Functions inherited from tvm::internal::FirstOrderProvider
virtual const Eigen::VectorXd & value () const
 
virtual MatrixConstRefWithProperties jacobian (const Variable &x) const
 
bool linearIn (const Variable &x) const
 
const SpaceimageSpace () const
 
int size () const
 
int rSize () const
 
int tSize () const
 
const VariableVectorvariables () const
 
- Public Member Functions inherited from tvm::graph::internal::AbstractNode
template<typename EnumT >
bool isUpdateEnabled (EnumT e) const
 
virtual bool isUpdateStaticallyEnabled (int) const
 
virtual bool isUpdateCustomEnabled (int) const
 
virtual ~AbstractNode ()=default
 
void update (int i)
 
- Public Member Functions inherited from tvm::graph::internal::Inputs
virtual ~Inputs ()=default
 
template<typename T , typename EnumI , typename... Args>
void addInput (std::shared_ptr< T > source, EnumI i, Args... args)
 
template<typename T , typename EnumI , typename... Args, typename std::enable_if< std::is_base_of< abstract::Outputs, T >::value, int >::type = 0>
void addInput (T &source, EnumI i, Args... args)
 
template<typename T >
void removeInput (T *source)
 
template<typename T , typename... Args>
void removeInput (T *source, Args... args)
 
template<typename T >
Iterator getInput (T *source)
 
template<typename T >
Iterator getInput (const std::shared_ptr< T > &source)
 
- Public Member Functions inherited from tvm::graph::abstract::Outputs
virtual ~Outputs ()=default
 
template<typename EnumT >
bool isOutputEnabled (EnumT e) const
 
bool isOutputEnabled (int i) const
 
virtual bool isOutputStaticallyEnabled (int) const
 
virtual bool isOutputCustomEnabled (int) const
 

Additional Inherited Members

- Public Types inherited from tvm::graph::internal::AbstractNode
enum class  Update_
 
using UpdateParent = AbstractNode
 
using UpdateBase = AbstractNode
 
- Public Types inherited from tvm::graph::internal::Inputs
using inputs_t = std::unordered_map< abstract::Outputs *, std::set< int > >
 
using store_t = std::unordered_set< std::shared_ptr< abstract::Outputs > >
 
- Public Types inherited from tvm::graph::abstract::Outputs
enum class  Output_
 
using OutputParent = Outputs
 
using OutputBase = Outputs
 
- Static Public Member Functions inherited from tvm::graph::internal::AbstractNode
static constexpr const char * UpdateName (Update_)
 
template<typename EnumT >
static constexpr bool UpdateStaticallyEnabled (EnumT)
 
- Static Public Member Functions inherited from tvm::graph::abstract::Outputs
static constexpr const char * OutputName (Output_)
 
template<typename EnumT >
static constexpr bool OutputStaticallyEnabled (EnumT)
 
- Static Public Attributes inherited from tvm::graph::internal::AbstractNode
static constexpr unsigned int UpdateSize = 0
 
static constexpr auto UpdateBaseName = "AbstractNode"
 
- Static Public Attributes inherited from tvm::graph::abstract::Outputs
static constexpr unsigned int OutputSize = 0
 
static constexpr auto OutputBaseName = "Outputs"
 
- Protected Types inherited from tvm::graph::internal::AbstractNode
using input_dependency_t = std::map< Outputs *, std::set< int > >
 
- Protected Member Functions inherited from tvm::function::abstract::LinearFunction
 LinearFunction (int m)
 
virtual void updateValue_ ()
 
virtual void updateVelocity_ ()
 
void setDerivativesToZero ()
 
- Protected Member Functions inherited from tvm::function::abstract::Function
 Function (int m=0)
 
 Function (Space image)
 
void resizeVelocityCache ()
 
void resizeNormalAccelerationCache ()
 
void resizeJDotCache ()
 
void addVariable_ (VariablePtr v) override
 
void removeVariable_ (VariablePtr v) override
 
- Protected Member Functions inherited from tvm::internal::FirstOrderProvider
 FirstOrderProvider (int m)
 
 FirstOrderProvider (Space image)
 
void resizeValueCache ()
 
void resizeJacobianCache ()
 
void addVariable (VariablePtr v, bool linear)
 
void removeVariable (VariablePtr v)
 
void addVariable (const VariableVector &v, bool linear)
 
void splitJacobian (const MatrixConstRef &J, const std::vector< VariablePtr > &vars, bool keepProperties=false)
 
void splitJacobian (const MatrixConstRef &J, const VariableVector &vars, bool keepProperties=false)
 
void resize (int m)
 
- Protected Member Functions inherited from tvm::graph::abstract::Node< FirstOrderProvider >
void registerUpdates (EnumT u, void(U::*fn)(), Args... args)
 
void registerUpdates (EnumT u, void(U::*fn)())
 
void addOutputDependency (EnumO o, EnumU u)
 
void addOutputDependency (std::initializer_list< EnumO > os, EnumU u)
 
void addInternalDependency (EnumU1 uDependent, EnumU2 u)
 
void addInputDependency (EnumU u, std::shared_ptr< S > source, EnumO i, Args... args)
 
void addInputDependency (EnumU u, S &source, EnumO i, Args... args)
 
void addDirectDependency (EnumO o, std::shared_ptr< S > source, EnumI i)
 
void addDirectDependency (EnumO o, S &source, EnumI i)
 
- Protected Attributes inherited from tvm::function::abstract::LinearFunction
tvm::internal::VectorWithProperties b_
 
- Protected Attributes inherited from tvm::function::abstract::Function
Eigen::VectorXd velocity_
 
Eigen::VectorXd normalAcceleration_
 
utils::internal::MapWithVariableAsKey< Eigen::MatrixXd, slice_jdotJDot_
 
- Protected Attributes inherited from tvm::internal::FirstOrderProvider
Eigen::VectorXd value_
 
utils::internal::MapWithVariableAsKey< MatrixWithProperties, slice_matrix, true > jacobian_
 
Space imageSpace_
 
VariableVector variables_
 
utils::internal::MapWithVariableAsKey< bool, slice_linearlinear_
 
- Protected Attributes inherited from tvm::graph::internal::AbstractNode
std::map< int, std::function< void(AbstractNode &)> > updates_
 
std::map< int, std::vector< int > > outputDependencies_
 
std::map< int, std::vector< int > > internalDependencies_
 
std::map< int, input_dependency_tinputDependencies_
 
std::map< int, std::pair< Outputs *, int > > directDependencies_
 
- Protected Attributes inherited from tvm::graph::abstract::Outputs
bool is_node_ = false
 

Detailed Description

The most basic linear function f(x_1, ..., x_k) = sum A_i x_i + b where the matrices are constant.

Constructor & Destructor Documentation

◆ BasicLinearFunction() [1/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( const MatrixConstRef A,
VariablePtr  x 
)

A x (b = 0)

◆ BasicLinearFunction() [2/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( const std::vector< MatrixConstRef > &  A,
const std::vector< VariablePtr > &  x 
)

A1 x1 + ... An xn (b = 0)

◆ BasicLinearFunction() [3/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( const MatrixConstRef A,
VariablePtr  x,
const VectorConstRef b 
)

A x + b

◆ BasicLinearFunction() [4/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( const std::vector< MatrixConstRef > &  A,
const std::vector< VariablePtr > &  x,
const VectorConstRef b 
)

A1 x1 + ... An xn + b

◆ BasicLinearFunction() [5/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( int  m,
VariablePtr  x 
)

Uninitialized version for a function of size m with a single variable x Don't forget to initialize A and b

◆ BasicLinearFunction() [6/8]

tvm::function::BasicLinearFunction::BasicLinearFunction ( int  m,
const std::vector< VariablePtr > &  x 
)

Uninitialized version for a function of size m with multiple variables x1 ... xn Don't forget to initialize the Ai and b

◆ BasicLinearFunction() [7/8]

template<typename Derived >
tvm::function::BasicLinearFunction::BasicLinearFunction ( const utils::LinearExpr< Derived > &  lin)

Initialization from a utils::LinearExpr. Meant to be used by operators in ProtoTasks.h

◆ BasicLinearFunction() [8/8]

template<typename CstDerived , typename... Derived>
tvm::function::BasicLinearFunction::BasicLinearFunction ( const utils::AffineExpr< CstDerived, Derived... > &  aff)

Initialization from a utils::AffineExpr. Meant to be used by operators in ProtoTasks.h

Member Function Documentation

◆ A() [1/2]

virtual void tvm::function::BasicLinearFunction::A ( const MatrixConstRef A,
const tvm::internal::MatrixProperties p = {} 
)
virtual

Shortcut for when there is a single variable.

◆ A() [2/2]

virtual void tvm::function::BasicLinearFunction::A ( const MatrixConstRef A,
const Variable x,
const tvm::internal::MatrixProperties p = {} 
)
virtual

Set the matrix A corresponding to variable x and optionally the properties p of A.

◆ b()

virtual void tvm::function::BasicLinearFunction::b ( const VectorConstRef b,
const tvm::internal::MatrixProperties p = {} 
)
virtual

Set the constant term b, and optionally its properties p.


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