33 #ifndef covariance_matrix_h 34 #define covariance_matrix_h 83 std::shared_ptr<Matrix>
dense)
106 std::shared_ptr<Sparse> sparse)
144 return dense_->diagonal();
236 explicit operator Matrix()
const;
237 Matrix get_inverse()
const;
243 Index ndiagblocks()
const;
246 Index nblocks()
const;
322 bool is_consistent(
const Block &block)
const;
329 void compute_inverse()
const;
339 void add_correlation(
Block c);
349 void add_correlation_inverse(
Block c);
368 Vector inverse_diagonal()
const;
394 void generate_blocks(std::vector<std::vector<const Block *>> &)
const;
395 void invert_correlation_block(std::vector<Block> &inverses,
396 std::vector<const Block *> &blocks)
const;
397 bool has_inverse(
IndexPair indices)
const;
416 #endif // covariance_matrix_h std::pair< Index, Index > IndexPair
INDEX Index
The type to use for all integer numbers and indices.
std::shared_ptr< Sparse > sparse_
void solve(VectorView, const CovarianceMatrix &, ConstVectorView)
std::ostream & operator<<(std::ostream &os, const ConstVectorView &v)
Range get_column_range() const
friend void mult(MatrixView, ConstMatrixView, const Block &)
void xml_write_to_stream(ostream &os_xml, const ArrayOfAgenda &aa, bofstream *pbofs, const String &name, const Verbosity &)
Writes ArrayOfAgenda to XML output stream.
void mult_inv(MatrixView, ConstMatrixView, const CovarianceMatrix &)
invlib::Matrix< ArtsCovarianceMatrixWrapper > CovarianceMatrix
invlib wrapper type for ARTS the ARTS covariance class.
std::shared_ptr< Matrix > dense_
const Matrix & get_dense() const
Routines for setting up the jacobian.
const Sparse & get_sparse() const
Block & operator=(const Block &)=default
MatrixType get_matrix_type() const
Range & get_column_range()
std::vector< Block > & get_inverse_blocks()
Blocks of the inverse covariance matrix.
std::vector< Block > & get_blocks()
Block in the covariance matrix.
Header file for sparse matrices.
constexpr Index get_extent() const
Returns the extent of the range.
Binary output file stream class.
Block(Range row_range, Range column_range, IndexPair indices, std::shared_ptr< Sparse > sparse)
friend MatrixView & operator+=(MatrixView &, const Block &)
std::vector< Block > correlations_
Range get_row_range() const
void set_matrix(std::shared_ptr< Sparse > sparse)
Implementation of Matrix, Vector, and such stuff.
Block(Range row_range, Range column_range, IndexPair indices, std::shared_ptr< Matrix > dense)
void xml_read_from_stream(istream &is_xml, ArrayOfAgenda &aa, bifstream *pbifs, const Verbosity &)
Reads ArrayOfAgenda from XML input stream.
void add_inv(MatrixView A, const Block &)
A constant view of a Vector.
void set_matrix(std::shared_ptr< Matrix > dense)
Binary output file stream class.
A constant view of a Matrix.
void set_indices(Index f, Index s)
std::vector< Block > inverses_
IndexPair get_indices() const
invlib::Matrix< ArtsMatrix > Matrix
invlib wrapper type for ARTS matrices.