OOPS
linsysteigen.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2018 UCAR
3
*
4
* This software is licensed under the terms of the Apache Licence Version 2.0
5
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6
*/
7
8
#ifndef OOPS_ASSIMILATION_LINSYSTEIGEN_H_
9
#define OOPS_ASSIMILATION_LINSYSTEIGEN_H_
10
11
#include <Eigen/Dense>
12
13
namespace
oops
{
14
15
typedef
Eigen::MatrixXd
eigenmat_
;
16
typedef
Eigen::VectorXd
eigenvec_
;
17
18
eigenmat_
linsysteigen
(
const
eigenmat_
& AA,
const
eigenmat_
& YY) {
19
// Solve AX=Y (unknown X), A full square matrix, Y matrix
20
return
AA.fullPivLu().solve(YY);
21
}
22
23
eigenvec_
linsysteigen
(
const
eigenmat_
& AA,
const
eigenvec_
& yy) {
24
// Solve Ax=y (unknown x), A full square matrix, y vector
25
return
AA.fullPivLu().solve(yy);
26
}
27
28
eigenmat_
linsysteigentrans
(
const
eigenmat_
& UU,
const
eigenmat_
& II) {
29
// Solve LU=I (unknown L), U & I full square matrixes
30
eigenmat_
AA = UU.transpose();
31
eigenmat_
BB = II.transpose();
32
return
linsysteigen
(AA, BB).transpose();
33
}
34
35
}
// namespace oops
36
#endif // OOPS_ASSIMILATION_LINSYSTEIGEN_H_
oops
The namespace for the main oops code.
Definition:
ErrorCovarianceL95.cc:22
oops::eigenmat_
Eigen::MatrixXd eigenmat_
Definition:
linsysteigen.h:15
oops::linsysteigen
eigenmat_ linsysteigen(const eigenmat_ &AA, const eigenmat_ &YY)
Definition:
linsysteigen.h:18
oops::eigenvec_
Eigen::VectorXd eigenvec_
Definition:
linsysteigen.h:16
oops::linsysteigentrans
eigenmat_ linsysteigentrans(const eigenmat_ &UU, const eigenmat_ &II)
Definition:
linsysteigen.h:28
fv3-bundle
oops
src
oops
assimilation
linsysteigen.h
Generated on Sun Oct 25 2020 12:42:57 for OOPS by
1.8.18