26 #include "inverse.hpp" 
   32     "Inverse: matrix must be square, but you supllied " + x.
dim());
 
   38     return "inv(" + arg.at(0) + 
")";
 
   46                         std::vector<std::vector<MX> >& fsens)
 const {
 
   47     MX inv_X = shared_from_this<MX>();
 
   48     for (casadi_int d=0; d<fsens.size(); ++d) {
 
   49       fsens[d][0] = -mtimes(inv_X, mtimes(fseed[d][0], inv_X));
 
   54                         std::vector<std::vector<MX> >& asens)
 const {
 
   55     MX inv_X = shared_from_this<MX>();
 
   56     MX trans_inv_X = inv_X.
T();
 
   57     for (casadi_int d=0; d<aseed.size(); ++d) {
 
   58       asens[d][0] -= mtimes(trans_inv_X, mtimes(aseed[d][0], trans_inv_X));
 
casadi_int size2() const
Get the second dimension (i.e. number of columns)
 
casadi_int size1() const
Get the first dimension (i.e. number of rows)
 
std::string dim(bool with_nz=false) const
Get string representation of dimensions.
 
void eval_mx(const std::vector< MX > &arg, std::vector< MX > &res) const override
Evaluate symbolically (MX)
 
void ad_reverse(const std::vector< std::vector< MX > > &aseed, std::vector< std::vector< MX > > &asens) const override
Calculate reverse mode directional derivatives.
 
void ad_forward(const std::vector< std::vector< MX > > &fseed, std::vector< std::vector< MX > > &fsens) const override
Calculate forward mode directional derivatives.
 
Inverse(const MX &x)
Constructor.
 
std::string disp(const std::vector< std::string > &arg) const override
Print expression.
 
void set_sparsity(const Sparsity &sparsity)
Set the sparsity.
 
void set_dep(const MX &dep)
Set unary dependency.
 
MX T() const
Transpose the matrix.
 
static Sparsity dense(casadi_int nrow, casadi_int ncol=1)
Create a dense rectangular sparsity pattern *.