25 #include <queso/GcmSimulationTildeInfo.h>
26 #include <queso/GslVector.h>
27 #include <queso/GslMatrix.h>
31 template <
class S_V,
class S_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
37 m_Kmat_tilde (m_env,s.m_eta_space.map(),s.m_Kmat_rank),
38 m_w_tilde_space (m_env,
"w_tilde_", s.m_Kmat_rank, NULL),
39 m_Lkmat (m_env,m_w_tilde_space.map(),s.m_Kmat.numCols()),
40 m_Ktildet_Ktilde (m_w_tilde_space.zeroVector()),
41 m_Ktildet_Ktilde_inv (m_w_tilde_space.zeroVector()),
42 m_Zvec_tilde_hat_w (m_w_tilde_space.zeroVector()),
43 m_a_eta_modifier_tilde(0),
44 m_b_eta_modifier_tilde(0)
46 std::set<unsigned int> tmpSet;
55 Q_M matkU(s.
m_Kmat.svdMatU());
56 unsigned int kuMatRank = matkU.rank(0.,1.e-8 );
57 unsigned int kuMatRank14 = matkU.rank(0.,1.e-14);
59 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
60 <<
": matkU.numRowsLocal() = " << matkU.numRowsLocal()
61 <<
", matkU.numCols() = " << matkU.numCols()
62 <<
", matkU.rank(0.,1.e-8) = " << kuMatRank
63 <<
", matkU.rank(0.,1.e-14) = " << kuMatRank14
71 for (
unsigned int i = 0; i < matkU.numCols(); ++i) {
72 matkU.getColumn(i,vecI);
73 for (
unsigned int j = i; j < matkU.numCols(); ++j) {
74 matkU.getColumn(j,vecJ);
78 matkUcheck.setPrintHorizontally(
false);
80 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
81 <<
": matkUcheck.numRowsLocal() = " << matkUcheck.numRowsLocal()
82 <<
", matkUcheck.numCols() = " << matkUcheck.numCols()
84 <<
", matkUcheck =\n" << matkUcheck
91 matkU.getColumn(j,veckJ);
101 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
102 <<
": m_Kmat_tilde computed (1)"
115 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
116 <<
": m_Kmat_tilde computed (2)"
122 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
123 <<
": finished forming 'm_Kmat_tilde'"
124 <<
", m_Kmat_tilde.numRowsLocal() = " <<
m_Kmat_tilde.numRowsLocal()
125 <<
", m_Kmat_tilde.numCols() = " <<
m_Kmat_tilde.numCols()
131 m_Lkmat.subWriteContents(
"Lkmat",
137 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
138 <<
": m_Lkmat_tilde computed"
146 Ktildet.fillWithTranspose(0,0,s.
m_Kmat,
true,
true);
154 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
155 <<
": m_Kmat_tilde.numRowsLocal() = " <<
m_Kmat_tilde.numRowsLocal()
156 <<
", m_Kmat_tilde.numCols() = " <<
m_Kmat_tilde.numCols()
157 <<
", m_Kmat_tilde.rank(0.,1.e-8) = " << kTildeRank
158 <<
", m_Kmat_tilde.rank(0.,1.e-14) = " << kRank14
170 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
171 <<
": finished computing 'm_Ktildet_Ktilde'"
182 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
183 <<
": m_Ktildet_Ktilde computed"
191 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
192 <<
": m_Ktildet_Ktilde.numRowsLocal() = " <<
m_Ktildet_Ktilde.numRowsLocal()
194 <<
", m_Ktildet_Ktilde.lnDeterminant() = " << ktildetKtildeLnDeterminant
195 <<
", m_Ktildet_Ktilde.rank(0.,1.e-8) = " << ktildetKtildeRank
196 <<
", m_Ktildet_Ktilde.rank(0.,1.e-14) = " << ktildetKtildeRank14
203 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
204 <<
": finished computing 'm_Ktildet_Ktilde_inv'"
210 "Ktildet_Ktilde_inv",
215 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
216 <<
": m_Ktildet_Ktilde_inv computed"
224 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
227 <<
", m_Ktildet_Ktilde_inv.lnDeterminant() = " << ktildetKtildeInvLnDeterminant
228 <<
", m_Ktildet_Ktilde_inv.rank(0.,1.e-8) = " << ktildetKtildeInvRank
229 <<
", m_Ktildet_Ktilde_inv.rank(0.,1.e-14) = " << ktildetKtildeInvRank14
238 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
245 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
249 <<
", Ktildet.numRowsLocal() = " << Ktildet.numRowsLocal()
250 <<
", Ktildet.numCols() = " << Ktildet.numCols()
251 <<
", etaVec_transformed.sizeLocal() = " << etaVec_transformed.sizeLocal()
259 *
m_env.
subDisplayFile() <<
"In GcmSimulationTildeInfo<S_V,S_M,P_V,P_M,Q_V,Q_M>::constructor()"
265 template <
class S_V,
class S_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
unsigned int displayVerbosity() const
unsigned int m_b_eta_modifier_tilde
GcmSimulationTildeInfo(const GpmsaComputerModelOptions &gcmOptionsObj, const GcmSimulationInfo< S_V, S_M, P_V, P_M, Q_V, Q_M > &s)
const Map & map() const
Map.
#define queso_error_msg(msg)
unsigned int m_paper_n_eta
std::set< unsigned int > m_dataOutputAllowedSet
const V & zeroVector() const
Returns a vector filled with zeros.
unsigned int m_a_eta_modifier_tilde
#define queso_require_equal_to_msg(expr1, expr2, msg)
unsigned int m_paper_p_eta
const BaseEnvironment & m_env
~GcmSimulationTildeInfo()
double scalarProduct(const GslVector &x, const GslVector &y)
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
VectorSpace< Q_V, Q_M > m_w_space
VectorSpace< Q_V, Q_M > m_eta_space
unsigned int subId() const
Access function to the number of each sub-environment Id: m_subId.
const SimulationModel< S_V, S_M, P_V, P_M, Q_V, Q_M > & m_simulationModel
unsigned int checkingLevel() const
Access function to private attribute m_checkingLevel.
VectorSpace< Q_V, Q_M > m_w_tilde_space