53 virtual const Eigen::VectorXd & value()
const;
60 bool linearIn(
const Variable & x)
const;
62 const Space & imageSpace()
const;
79 static bool get(
bool & b,
const Range &) {
return b; }
80 static bool get(
const bool & b,
const Range &) {
return b; }
175 { splitJacobian(J, vars.
variables(), keepProperties); }
179 utils::internal::MapWithVariableAsKey<MatrixWithProperties, slice_matrix, true>
jacobian_;
187 utils::internal::MapWithVariableAsKey<bool, slice_linear>
linear_;
193 {
return jacobian_.at(&x, tvm::utils::internal::with_sub{}); }
196 {
return linear_.at(&x, tvm::utils::internal::with_sub{}); }
#define SET_OUTPUTS(SelfT,...)
Definition: Outputs.h:113
#define TVM_DLLAPI
Definition: api.h:35
int dim
Definition: Range.h:24
int start
Definition: Range.h:23
Definition: VariableVector.h:41
const std::vector< VariablePtr > & variables() const
Definition: Variable.h:49
Definition: FirstOrderProvider.h:43
virtual void resizeCache()
int size() const
Definition: FirstOrderProvider.h:200
void resizeJacobianCache()
VariableVector variables_
Definition: FirstOrderProvider.h:186
int rSize() const
Definition: FirstOrderProvider.h:202
void addVariable(const VariableVector &v, bool linear)
virtual MatrixConstRefWithProperties jacobian(const Variable &x) const
Definition: FirstOrderProvider.h:192
utils::internal::MapWithVariableAsKey< MatrixWithProperties, slice_matrix, true > jacobian_
Definition: FirstOrderProvider.h:179
void splitJacobian(const MatrixConstRef &J, const std::vector< VariablePtr > &vars, bool keepProperties=false)
const VariableVector & variables() const
Definition: FirstOrderProvider.h:205
int tSize() const
Definition: FirstOrderProvider.h:203
utils::internal::MapWithVariableAsKey< bool, slice_linear > linear_
Definition: FirstOrderProvider.h:187
void addVariable(VariablePtr v, bool linear)
virtual const Eigen::VectorXd & value() const
Definition: FirstOrderProvider.h:190
FirstOrderProvider(Space image)
Eigen::VectorXd value_
Definition: FirstOrderProvider.h:178
virtual void addVariable_(VariablePtr)
Space imageSpace_
Definition: FirstOrderProvider.h:185
void removeVariable(VariablePtr v)
bool linearIn(const Variable &x) const
Definition: FirstOrderProvider.h:195
virtual void removeVariable_(VariablePtr)
void splitJacobian(const MatrixConstRef &J, const VariableVector &vars, bool keepProperties=false)
Definition: FirstOrderProvider.h:174
const Space & imageSpace() const
Definition: FirstOrderProvider.h:198
FirstOrderProvider(int m)
Definition: MatrixProperties.h:17
@ ZERO
Definition: MatrixProperties.h:39
bool isConstant() const
Definition: MatrixProperties.h:217
bool isZero() const
Definition: MatrixProperties.h:235
Definition: MatrixWithProperties.h:54
const MatrixProperties & properties() const
Definition: MatrixWithProperties.h:130
Definition: CallbackManager.h:12
ObjectWithProperties< Eigen::Ref< const Eigen::MatrixXd > > MatrixConstRefWithProperties
Definition: MatrixWithProperties.h:164
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65
Eigen::Ref< const Eigen::MatrixXd > MatrixConstRef
Definition: defs.h:48
Definition: FirstOrderProvider.h:76
static bool get(bool &b, const Range &)
Definition: FirstOrderProvider.h:79
bool ConstType
Definition: FirstOrderProvider.h:78
bool Type
Definition: FirstOrderProvider.h:77
static bool get(const bool &b, const Range &)
Definition: FirstOrderProvider.h:80
Definition: FirstOrderProvider.h:84
static MatrixProperties slice(const MatrixProperties &p)
Definition: FirstOrderProvider.h:87
static Type get(MatrixWithProperties &M, const Range &r)
Definition: FirstOrderProvider.h:94
static ConstType get(const MatrixWithProperties &M, const Range &r)
Definition: FirstOrderProvider.h:96
Definition: MatrixProperties.h:65