TVM  0.9.4
MatrixAssignment.h
Go to the documentation of this file.
1 /* Copyright 2017-2020 CNRS-AIST JRL and CNRS-UM LIRMM */
2 
3 #pragma once
4 
5 #include <tvm/api.h>
6 #include <tvm/defs.h>
7 
8 #include <tvm/Variable.h> // Range
11 
12 #include <Eigen/Core>
13 
14 namespace tvm::scheme::internal
15 {
20 {
21 public:
25  using MatrixFunction = MatrixRef (AssignmentTarget::*)(int, int) const;
26 
31 
33  void updateTarget(const AssignmentTarget & target);
40  void updateMapping(const VariableVector & newVar, const AssignmentTarget & target, bool updateMatrixTarget);
41 };
42 
47 {
48 public:
54 
56  : assignment(a), getTargetVector(getTarget)
57  {}
58 
60  VectorFunction getTargetVector; // The way to retrieve the target vector part
61 };
62 
67 {
68 public:
72  using RHSFunction = const Eigen::VectorXd & (constraint::abstract::LinearConstraint::*)() const;
74 
76  bool useSource,
77  RHSFunction getSource,
78  VectorFunction getTarget)
79  : VectorSubstitutionAssignement(a, getTarget), useSource(useSource), getSourceVector(getSource)
80  {}
81 
82  bool useSource; // Whether or not this assignment uses a source
83  RHSFunction getSourceVector; // The way to retrieve the source vector.
84 };
85 } // namespace tvm::scheme::internal
#define TVM_DLLAPI
Definition: api.h:35
Definition: Range.h:19
Definition: VariableVector.h:41
Definition: Variable.h:49
Definition: LinearConstraint.h:56
Definition: AssignmentTarget.h:37
Definition: MatrixAssignment.h:20
void updateTarget(const AssignmentTarget &target)
MatrixRef(AssignmentTarget::*)(int, int) const MatrixFunction
Definition: MatrixAssignment.h:25
MatrixFunction getTargetMatrix
Definition: MatrixAssignment.h:30
Range colRange
Definition: MatrixAssignment.h:29
Variable * x
Definition: MatrixAssignment.h:28
CompiledAssignmentWrapper< Eigen::MatrixXd > assignment
Definition: MatrixAssignment.h:27
void updateMapping(const VariableVector &newVar, const AssignmentTarget &target, bool updateMatrixTarget)
Definition: MatrixAssignment.h:67
bool useSource
Definition: MatrixAssignment.h:82
const Eigen::VectorXd &(constraint::abstract::LinearConstraint::*)() const RHSFunction
Definition: MatrixAssignment.h:72
VectorAssignment(const CompiledAssignmentWrapper< Eigen::VectorXd > &a, bool useSource, RHSFunction getSource, VectorFunction getTarget)
Definition: MatrixAssignment.h:75
RHSFunction getSourceVector
Definition: MatrixAssignment.h:83
VectorRef(AssignmentTarget::*)() const VectorFunction
Definition: MatrixAssignment.h:53
CompiledAssignmentWrapper< Eigen::VectorXd > assignment
Definition: MatrixAssignment.h:59
VectorSubstitutionAssignement(const CompiledAssignmentWrapper< Eigen::VectorXd > &a, VectorFunction getTarget)
Definition: MatrixAssignment.h:55
VectorFunction getTargetVector
Definition: MatrixAssignment.h:60
Definition: Assignment.h:23
Eigen::Ref< Eigen::VectorXd > VectorRef
Definition: defs.h:51
Eigen::Ref< Eigen::MatrixXd > MatrixRef
Definition: defs.h:49