libROM  v1.0
Data-driven physical simulation library
IncrementalSVDStandard.h
1 
11 // Description: The concrete implementation of the incremental SVD algorithm
12 // that is equivalent to but computationally more expensive than
13 // the "fast update" method.
14 
15 #ifndef included_IncrementalSVDStandard_h
16 #define included_IncrementalSVDStandard_h
17 
18 #include "IncrementalSVD.h"
19 #include "linalg/Options.h"
20 
21 namespace CAROM {
22 
27 {
28 public:
33 
34 private:
35  friend class BasisGenerator;
36 
49  Options options,
50  const std::string& basis_file_name);
51 
56 
61  const IncrementalSVDStandard& other);
62 
67  operator = (
68  const IncrementalSVDStandard& rhs);
69 
79  void
80  buildInitialSVD(
81  double* u) override;
82 
86  void
87  computeBasis() override;
88 
96  void
97  addLinearlyDependentSample(
98  const Matrix & A,
99  const Matrix & W,
100  const Matrix & sigma);
101 
110  void
111  addNewSample(
112  const Vector & j,
113  const Matrix & A,
114  const Matrix & W,
115  const Matrix & sigma);
116 };
117 
118 }
119 
120 #endif