StructuredQR.h
Go to the documentation of this file.
1 /* Copyright 2020-2021 CNRS-AIST JRL */
2 
3 #pragma once
4 
5 #include <jrl-qp/api.h>
6 #include <jrl-qp/defs.h>
7 
13 
14 namespace jrl::qp::structured
15 {
17 {
18 public:
19  StructuredQR();
20 
21  void setL(const StructuredG & decomposedG);
22 
23  void reset();
24  void resize(int nbVar);
25 
26  internal::PartitionnedQ getPartitionnedQ() const;
27 
28  void setRToZero();
29  void RSolve(VectorRef out, const VectorConstRef & in) const;
30 
31  bool add(const VectorConstRef & d);
32  bool remove(int l);
33 
34 private:
35  void adjustLdR(int q) const;
36  auto getR(int q);
37  auto getR(int q) const;
38  auto getUpperTriangularR(int q) const;
39 
40  int q_ = 0; // size of R (that is the number of active constraints)
41  int nbVar_ = 0;
42  mutable int ldR_ = 1; // Leading dimension used for R
43  mutable internal::Workspace<> work_R_;
44  internal::Workspace<> work_essential_;
46  mutable internal::Workspace<> work_tmp_;
47 };
48 } // namespace jrl::qp::structured
jrl::qp::structured::StructuredQR
Definition: StructuredQR.h:16
Workspace.h
jrl::qp::internal::Workspace
Definition: Workspace.h:18
StructuredG.h
jrl::qp::VectorConstRef
Eigen::Ref< const Eigen::VectorXd > VectorConstRef
Definition: defs.h:13
StructuredC.h
jrl::qp::structured::StructuredG
Definition: StructuredG.h:14
jrl::qp::internal::PartitionnedQ
Definition: OrthonormalSequence.h:111
jrl::qp::internal::OrthonormalSequence
Definition: OrthonormalSequence.h:75
jrl::qp::structured
Definition: StructuredC.h:13
JRLQP_DLLAPI
#define JRLQP_DLLAPI
Definition: api.h:35
OrthonormalSequence.h
defs.h
SelectedConstraint.h
jrl::qp::VectorRef
Eigen::Ref< Eigen::VectorXd > VectorRef
Definition: defs.h:14
api.h