27 #include <queso/GpmsaComputerModel.h>
28 #include <queso/GenericScalarFunction.h>
29 #include <queso/SequentialVectorRealizer.h>
30 #include <queso/GslVector.h>
31 #include <queso/GslMatrix.h>
32 #include <queso/BayesianJointPdf.h>
36 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
47 m_env (simulationStorage.env()),
48 m_optionsObj (alternativeOptionsValues),
57 m_thereIsExperimentalData ((experimentStorage != NULL) && (experimentModel != NULL) && (thetaPriorRv != NULL)),
58 m_allOutputsAreScalar (simulationStorage.outputSpace().dimLocal() == 1),
60 m_cMatIsRankDefficient (false),
61 m_likelihoodFunction (NULL),
65 *
m_env.
subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
66 <<
": prefix = " << prefix
67 <<
", alternativeOptionsValues = " << alternativeOptionsValues
73 if ((experimentStorage == NULL) &&
74 (experimentModel == NULL) &&
75 (thetaPriorRv == NULL)) {
81 else if ((experimentStorage != NULL) &&
82 (experimentModel != NULL) &&
83 (thetaPriorRv != NULL)) {
97 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
98 <<
": prefix = " << prefix
120 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
121 <<
": prefix = " << prefix
183 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
184 <<
": finished instantiating m_s"
185 <<
", experimentStorage = " << experimentStorage
186 <<
", experimentModel = " << experimentModel
187 <<
", thetaPriorRv = " << thetaPriorRv
195 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
196 <<
": about to instantiate m_e"
206 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
207 <<
": finished instantiating m_e"
216 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
217 <<
": finished instantiating m_j"
221 if (m_allOutputsAreScalar) {
234 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
235 <<
": finished instantiating m_z"
242 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
243 <<
": finished instantiating m_t"
249 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
250 <<
": about to instantiate m_z (no experiments)"
258 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
259 <<
": finished instantiating m_z (no experiments)"
265 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
266 <<
": finished instantiating m_t (no experiments)"
272 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
273 <<
": finished instantiating non-tilde auxiliary structures"
286 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
287 <<
": m_z->m_Cmat_rank = " <<
m_z->m_Cmat_rank
288 <<
", m_z->m_Cmat = " <<
m_z->m_Cmat
289 <<
", m_z->m_Cmat->numCols() = " <<
m_z->m_Cmat->numCols()
320 m_zt =
new GcmZTildeInfo<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>(*gpmsaComputerModelOptions,*
m_j,*
m_z,*
m_st,*
m_jt);
323 queso_error_msg(
"incomplete code for the situation 'm_useTildeLogicForRankDefficientC == true' and 'm_thereIsExperimentalData == false'");
337 queso_error_msg(
"incomplete code for the situation 'm_useTildeLogicForRankDefficientC == false' and 'm_thereIsExperimentalData == false'");
349 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
350 <<
": finished instantiating tilde auxiliary structures"
380 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
381 <<
": finished generating prior sequence"
398 *
m_env.
subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
399 <<
": finished instantiating likelihood Function"
406 delete gpmsaComputerModelOptions;
412 *
m_env.
subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::constructor()"
418 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
421 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
422 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::destructor()..."
435 delete m_dataOutputFilePtrSet.ofsVar;
436 if (m_optionsObj)
delete m_optionsObj;
438 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
439 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::destructor()"
444 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
448 const P_V& totalInitialValues,
449 const P_M* totalInitialProposalCovMatrix)
451 struct timeval timevalBegin;
452 gettimeofday(&timevalBegin, NULL);
454 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
455 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMetropolisHastings()..."
456 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
457 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
458 <<
", my subRank = " << m_env.subRank()
459 <<
", totalInitialValues = " << totalInitialValues
463 m_env.fullComm().Barrier();
464 m_env.fullComm().syncPrintDebugMsg(
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMetropolisHastings()",1,3000000);
466 queso_require_equal_to_msg(m_t->m_totalPriorRv.imageSet().vectorSpace().dimLocal(), totalInitialValues.sizeLocal(),
"'m_totalPriorRv' and 'totalInitialValues' should have equal dimensions");
468 if (totalInitialProposalCovMatrix) {
469 queso_require_equal_to_msg(m_t->m_totalPriorRv.imageSet().vectorSpace().dimLocal(), totalInitialProposalCovMatrix->numRowsLocal(),
"'m_totalPriorRv' and 'totalInitialProposalCovMatrix' should have equal dimensions");
470 queso_require_equal_to_msg(totalInitialProposalCovMatrix->numCols(), totalInitialProposalCovMatrix->numRowsGlobal(),
"'totalInitialProposalCovMatrix' should be a square matrix");
474 P_V currPosition (totalInitialValues);
475 currPosition.cwSet(0.);
476 P_V epsilonVector (currPosition);
477 P_V plusVectorOfLnLikelihoods (currPosition);
478 P_V minusVectorOfLnLikelihoods(currPosition);
479 P_V deltaVectorOfLnLikelihoods(currPosition);
480 P_V vectorOfLnAbsGrads (currPosition);
482 currPosition = totalInitialValues;
483 double referenceValue = staticLikelihoodRoutine(currPosition,
490 for (
unsigned int paramId = 0; paramId < totalInitialValues.sizeLocal(); ++paramId) {
491 currPosition = totalInitialValues;
492 epsilonVector[paramId] = 1.e-8 * totalInitialValues[paramId];
493 if (epsilonVector[paramId] == 0.) epsilonVector[paramId] = 1.e-8;
495 currPosition[paramId] = totalInitialValues[paramId] + epsilonVector[paramId];
496 plusVectorOfLnLikelihoods[paramId] = staticLikelihoodRoutine(currPosition,
503 currPosition[paramId] = totalInitialValues[paramId] - epsilonVector[paramId];
504 minusVectorOfLnLikelihoods[paramId] = staticLikelihoodRoutine(currPosition,
511 deltaVectorOfLnLikelihoods[paramId] = plusVectorOfLnLikelihoods[paramId] - minusVectorOfLnLikelihoods[paramId];
512 if (deltaVectorOfLnLikelihoods[paramId] > 0.) {
513 vectorOfLnAbsGrads[paramId] = minusVectorOfLnLikelihoods[paramId] + std::log( std::exp( deltaVectorOfLnLikelihoods[paramId]) - 1. ) - std::log(2.*epsilonVector[paramId]);
515 else if (deltaVectorOfLnLikelihoods[paramId] == 0.) {
516 vectorOfLnAbsGrads[paramId] = -INFINITY;
519 vectorOfLnAbsGrads[paramId] = plusVectorOfLnLikelihoods [paramId] + std::log( std::exp(-deltaVectorOfLnLikelihoods[paramId]) - 1. ) - std::log(2.*epsilonVector[paramId]);
522 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
523 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMetropolisHastings()"
524 <<
": referenceValue = " << referenceValue
525 <<
"\n epsilonVector = " << epsilonVector
526 <<
"\n plusVectorOfLnLikelihoods = " << plusVectorOfLnLikelihoods
527 <<
"\n minusVectorOfLnLikelihoods = " << minusVectorOfLnLikelihoods
528 <<
"\n deltaVectorOfLnLikelihoods = " << deltaVectorOfLnLikelihoods
529 <<
"\n vectorOfLnAbsGrads = " << vectorOfLnAbsGrads
539 m_t->m_solutionDomain =
InstantiateIntersection(m_t->m_totalPriorRv.pdf().domainSet(),m_likelihoodFunction->domainSet());
546 m_t->m_totalPriorRv.pdf(),
547 *m_likelihoodFunction,
549 *(m_t->m_solutionDomain));
555 m_t->m_totalPostRv.setPdf(*(m_t->m_solutionPdf));
569 alternativeOptionsValues,
572 totalInitialProposalCovMatrix);
591 m_t->m_totalPostRv.setRealizer(*(m_t->m_solutionRealizer));
596 m_env.fullComm().Barrier();
599 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
600 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMetropolisHastings()..."
601 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
602 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
603 <<
", my subRank = " << m_env.subRank()
604 <<
", after " << totalTime
612 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
616 const P_V& totalInitialValues,
617 const P_M* totalInitialProposalCovMatrix)
619 struct timeval timevalBegin;
620 gettimeofday(&timevalBegin, NULL);
622 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
623 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithLanlMcmc()..."
624 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
625 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
626 <<
", my subRank = " << m_env.subRank()
627 <<
", totalInitialValues = " << totalInitialValues
631 m_env.fullComm().Barrier();
632 m_env.fullComm().syncPrintDebugMsg(
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithLanlMcmc()",1,3000000);
636 m_env.fullComm().syncPrintDebugMsg(
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithLanlMcmc()",1,3000000);
637 m_env.fullComm().Barrier();
640 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
641 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithLanlMcmc()..."
642 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
643 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
644 <<
", my subRank = " << m_env.subRank()
645 <<
", after " << totalTime
653 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
657 struct timeval timevalBegin;
658 gettimeofday(&timevalBegin, NULL);
660 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
661 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMLSampling()..."
662 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
663 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
664 <<
", my subRank = " << m_env.subRank()
668 m_env.fullComm().Barrier();
669 m_env.fullComm().syncPrintDebugMsg(
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMLSampling()",1,3000000);
672 m_t->m_solutionDomain =
InstantiateIntersection(m_t->m_totalPriorRv.pdf().domainSet(),m_likelihoodFunction->domainSet());
679 m_t->m_totalPriorRv.pdf(),
680 *m_likelihoodFunction,
682 *(m_t->m_solutionDomain));
688 m_t->m_totalPostRv.setPdf(*(m_t->m_solutionPdf));
703 *m_likelihoodFunction);
722 m_t->m_totalPostRv.setRealizer(*(m_t->m_solutionRealizer));
724 m_env.fullComm().syncPrintDebugMsg(
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMLSampling()",1,3000000);
725 m_env.fullComm().Barrier();
728 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
729 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::calibrateWithBayesMLSampling()..."
730 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
731 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
732 <<
", my subRank = " << m_env.subRank()
733 <<
", after " << totalTime
741 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
744 const S_V& newScenarioVec,
745 const P_V& newParameterVec,
753 struct timeval timevalBegin;
754 gettimeofday(&timevalBegin, NULL);
756 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
757 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
758 <<
", m_predVU_counter = " << m_j->m_predVU_counter
759 <<
", newScenarioVec = " << newScenarioVec
760 <<
", newParameterVec = " << newParameterVec
770 queso_require_equal_to_msg(vuCovMatrix.numRowsLocal(), (m_e->m_paper_p_delta + m_s->m_paper_p_eta),
"invalid 'vuCovMatrix.numRowsLocal()'");
772 queso_require_equal_to_msg(vuCovMatrix.numCols(), (m_e->m_paper_p_delta + m_s->m_paper_p_eta),
"invalid 'vuCovMatrix.numCols()'");
786 if (m_optionsObj->m_predVUsBySamplingRVs) {
789 if (m_optionsObj->m_predVUsBySummingRVs) {
790 unsigned int numSamples = (
unsigned int) ((
double) m_t->m_totalPostRv.realizer().subPeriod())/((
double) m_optionsObj->m_predLag);
791 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
792 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
793 <<
": m_t->m_totalPostRv.realizer().subPeriod() = " << m_t->m_totalPostRv.realizer().subPeriod()
794 <<
", m_optionsObj->m_predLag = " << m_optionsObj->m_predLag
799 P_M mean_of_unique_vu_covMatrices(m_j->m_unique_vu_space.zeroVector());
801 P_V totalSample(m_t->m_totalSpace.zeroVector());
802 P_V muVec1 (m_z->m_z_space.zeroVector());
803 P_V muVec2 (m_j->m_vu_space.zeroVector());
804 P_M sigmaMat11 (m_z->m_z_space.zeroVector());
805 P_M sigmaMat12 (m_env,muVec1.map(),muVec2.sizeGlobal());
806 P_M sigmaMat21 (m_env,muVec2.map(),muVec1.sizeGlobal());
807 P_M sigmaMat22 (m_j->m_vu_space.zeroVector());
809 P_M here_Smat_z_hat_v_asterisk (m_env, m_z->m_z_space.map(), m_e->m_paper_p_delta);
810 P_M here_Smat_z_hat_v_asterisk_t(m_env, m_e->m_unique_v_space.map(), m_z->m_z_size );
811 P_M here_Smat_z_hat_u_asterisk (m_env, m_z->m_z_space.map(), m_s->m_paper_p_eta );
812 P_M here_Smat_z_hat_u_asterisk_t(m_env, m_j->m_unique_u_space.map(), m_z->m_z_size );
817 std::vector<const P_M*> twoMats_uw(2,(P_M *)NULL);
818 std::vector<const P_M*> twoMats_12(2,(P_M *)NULL);
819 std::vector<const P_M*> twoMats_21(2,(P_M *)NULL);
820 std::vector<const P_M*> twoMats_22(2,(P_M *)NULL);
821 for (
unsigned int sampleId = 0; sampleId < numSamples; ++sampleId) {
822 m_j->m_predVU_counter++;
825 for (
unsigned int i = 1; i < m_optionsObj->m_predLag; ++i) {
826 m_t->m_totalPostRv.realizer().realization(totalSample);
829 m_t->m_totalPostRv.realizer().realization(totalSample);
831 unsigned int currPosition = 0;
832 totalSample.cwExtract(currPosition,m_s->m_tmp_1lambdaEtaVec);
833 currPosition += m_s->m_tmp_1lambdaEtaVec.sizeLocal();
834 totalSample.cwExtract(currPosition,m_s->m_tmp_2lambdaWVec);
835 currPosition += m_s->m_tmp_2lambdaWVec.sizeLocal();
836 totalSample.cwExtract(currPosition,m_s->m_tmp_3rhoWVec);
837 currPosition += m_s->m_tmp_3rhoWVec.sizeLocal();
838 totalSample.cwExtract(currPosition,m_s->m_tmp_4lambdaSVec);
839 currPosition += m_s->m_tmp_4lambdaSVec.sizeLocal();
840 totalSample.cwExtract(currPosition,m_e->m_tmp_5lambdaYVec);
841 currPosition += m_e->m_tmp_5lambdaYVec.sizeLocal();
842 totalSample.cwExtract(currPosition,m_e->m_tmp_6lambdaVVec);
843 currPosition += m_e->m_tmp_6lambdaVVec.sizeLocal();
844 totalSample.cwExtract(currPosition,m_e->m_tmp_7rhoVVec);
845 currPosition += m_e->m_tmp_7rhoVVec.sizeLocal();
846 totalSample.cwExtract(currPosition,m_e->m_tmp_8thetaVec);
847 currPosition += m_e->m_tmp_8thetaVec.sizeLocal();
848 queso_require_equal_to_msg(currPosition, totalSample.sizeLocal(),
"'currPosition' and 'totalSample.sizeLocal()' should be equal");
860 this->formSigma_z_hat(m_s->m_tmp_1lambdaEtaVec,
861 m_s->m_tmp_2lambdaWVec,
863 m_s->m_tmp_4lambdaSVec,
864 m_e->m_tmp_5lambdaYVec,
865 m_e->m_tmp_6lambdaVVec,
868 m_j->m_predVU_counter);
874 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
875 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
876 <<
", m_predVU_counter = " << m_j->m_predVU_counter
877 <<
": about to populate 'm_Smat_v_hat_v_asterisk'"
878 <<
", m_e->m_Smat_v_hat_v_asterisk_is.size() = " << m_e->m_Smat_v_hat_v_asterisk_is.size()
879 <<
", m_e->m_tmp_rho_v_vec.sizeLocal() = " << m_e->m_tmp_rho_v_vec.sizeLocal()
880 <<
", m_e->m_tmp_7rhoVVec.sizeLocal() = " << m_e->m_tmp_7rhoVVec.sizeLocal()
883 queso_require_equal_to_msg((m_e->m_Smat_v_hat_v_asterisk_is.size() * m_e->m_tmp_rho_v_vec.sizeLocal()), m_e->m_tmp_7rhoVVec.sizeLocal(),
"invalid size for 'v' variables");
884 unsigned int initialPos = 0;
885 for (
unsigned int i = 0; i < m_e->m_Smat_v_hat_v_asterisk_is.size(); ++i) {
886 m_e->m_tmp_7rhoVVec.cwExtract(initialPos,m_e->m_tmp_rho_v_vec);
887 initialPos += m_e->m_tmp_rho_v_vec.sizeLocal();
888 m_e->m_Rmat_v_hat_v_asterisk_is[i]->cwSet(0.);
889 this->fillR_formula2_for_Sigma_v_hat_v_asterisk(m_s->m_paper_xs_asterisks_standard,
890 m_s->m_paper_ts_asterisks_standard,
893 m_e->m_tmp_rho_v_vec,
894 *(m_e->m_Rmat_v_hat_v_asterisk_is[i]),
895 m_j->m_predVU_counter);
896 m_e->m_Smat_v_hat_v_asterisk_is[i]->cwSet(0.);
898 *(m_e->m_Smat_v_hat_v_asterisk_is[i]) = (1./m_e->m_tmp_6lambdaVVec[i]) * *(m_e->m_Rmat_v_hat_v_asterisk_is[i]);
900 m_e->m_Smat_v_hat_v_asterisk.cwSet(0.);
901 m_e->m_Smat_v_hat_v_asterisk.fillWithBlocksDiagonally(0,0,m_e->m_Smat_v_hat_v_asterisk_is,
true,
true);
902 m_e->m_Smat_v_hat_v_asterisk_t.fillWithTranspose(0,0,m_e->m_Smat_v_hat_v_asterisk,
true,
true);
904 here_Smat_z_hat_v_asterisk.cwSet(0.);
905 here_Smat_z_hat_v_asterisk.cwSet(0,0,m_e->m_Smat_v_hat_v_asterisk);
906 here_Smat_z_hat_v_asterisk_t.fillWithTranspose(0,0,here_Smat_z_hat_v_asterisk,
true,
true);
908 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
909 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
910 <<
", m_predVU_counter = " << m_j->m_predVU_counter
911 <<
": finished instantiating 'm_Smat_v_hat_v_asterisk'"
920 for (
unsigned int i = 0; i < m_j->m_Smat_u_hat_u_asterisk_is.size(); ++i) {
921 m_s->m_tmp_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
922 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
924 m_j->m_Rmat_u_hat_u_asterisk_is[i]->cwSet(0.);
925 this->fillR_formula1_for_Sigma_u_hat_u_asterisk(m_s->m_paper_xs_asterisks_standard,
926 m_s->m_paper_ts_asterisks_standard,
929 m_s->m_tmp_rho_w_vec,
930 *(m_j->m_Rmat_u_hat_u_asterisk_is[i]),
931 m_j->m_predVU_counter);
932 m_j->m_Smat_u_hat_u_asterisk_is[i]->cwSet(0.);
933 *(m_j->m_Smat_u_hat_u_asterisk_is[i]) = (1./m_s->m_tmp_2lambdaWVec[i]) * *(m_j->m_Rmat_u_hat_u_asterisk_is[i]);
935 m_j->m_Rmat_w_hat_u_asterisk_is[i]->cwSet(0.);
936 this->fillR_formula1_for_Sigma_w_hat_u_asterisk(m_s->m_paper_xs_asterisks_standard,
937 m_s->m_paper_ts_asterisks_standard,
940 m_s->m_tmp_rho_w_vec,
941 *(m_j->m_Rmat_w_hat_u_asterisk_is[i]),
942 m_j->m_predVU_counter);
943 m_j->m_Smat_w_hat_u_asterisk_is[i]->cwSet(0.);
944 *(m_j->m_Smat_w_hat_u_asterisk_is[i]) = (1./m_s->m_tmp_2lambdaWVec[i]) * *(m_j->m_Rmat_w_hat_u_asterisk_is[i]);
947 m_j->m_Smat_u_hat_u_asterisk.cwSet(0.);
948 m_j->m_Smat_u_hat_u_asterisk.fillWithBlocksDiagonally(0,0,m_j->m_Smat_u_hat_u_asterisk_is,
true,
true);
949 m_j->m_Smat_u_hat_u_asterisk_t.fillWithTranspose(0,0,m_j->m_Smat_u_hat_u_asterisk,
true,
true);
951 m_j->m_Smat_w_hat_u_asterisk.cwSet(0.);
952 m_j->m_Smat_w_hat_u_asterisk.fillWithBlocksDiagonally(0,0,m_j->m_Smat_w_hat_u_asterisk_is,
true,
true);
953 m_j->m_Smat_w_hat_u_asterisk_t.fillWithTranspose(0,0,m_j->m_Smat_w_hat_u_asterisk,
true,
true);
955 twoMats_uw[0] = &m_j->m_Smat_u_hat_u_asterisk;
956 twoMats_uw[1] = &m_j->m_Smat_w_hat_u_asterisk;
957 here_Smat_z_hat_u_asterisk.cwSet(0.);
958 here_Smat_z_hat_u_asterisk.fillWithBlocksVertically(m_e->m_v_size,0,twoMats_uw,
true,
true);
959 here_Smat_z_hat_u_asterisk_t.fillWithTranspose(0,0,here_Smat_z_hat_u_asterisk,
true,
true);
961 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
962 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
963 <<
", m_predVU_counter = " << m_j->m_predVU_counter
964 <<
": finished instantiating '>m_Smat_z_hat_u_asterisk'"
971 queso_require_equal_to_msg(m_e->m_Smat_v_asterisk_v_asterisk.numRowsLocal(), m_e->m_paper_p_delta,
"invalid 'm_Smat_v_asterisk_v_asterisk.numRowsLocal()'");
972 queso_require_equal_to_msg(m_e->m_tmp_6lambdaVVec.sizeLocal(), m_e->m_paper_p_delta,
"invalid 'm_tmp_6lambdaVVec.sizeLocal()'");
974 m_e->m_Smat_v_asterisk_v_asterisk.cwSet(0.);
975 for (
unsigned int i = 0; i < m_e->m_paper_p_delta; ++i) {
976 m_e->m_Smat_v_asterisk_v_asterisk(i,i) = 1./m_e->m_tmp_6lambdaVVec[i];
982 queso_require_equal_to_msg(m_j->m_Smat_u_asterisk_u_asterisk.numRowsLocal(), m_s->m_paper_p_eta,
"invalid 'm_Smat_u_asterisk_u_asterisk.numRowsLocal()'");
983 queso_require_equal_to_msg(m_s->m_tmp_2lambdaWVec.sizeLocal(), m_s->m_paper_p_eta,
"invalid 'm_tmp_2lambdaWVec.sizeLocal()'");
985 m_j->m_Smat_u_asterisk_u_asterisk.cwSet(0.);
986 for (
unsigned int i = 0; i < m_s->m_paper_p_eta; ++i) {
987 m_j->m_Smat_u_asterisk_u_asterisk(i,i) = 1./m_s->m_tmp_2lambdaWVec[i] + 1/m_s->m_tmp_4lambdaSVec[i];
995 P_V unique_vu_vec(m_j->m_unique_vu_space.zeroVector());
996 P_M unique_vu_mat(m_j->m_unique_vu_space.zeroVector());
998 twoMats_12[0] = &here_Smat_z_hat_v_asterisk_t;
999 twoMats_12[1] = &here_Smat_z_hat_u_asterisk_t;
1000 twoMats_21[0] = &here_Smat_z_hat_v_asterisk;
1001 twoMats_21[1] = &here_Smat_z_hat_u_asterisk;
1002 twoMats_22[0] = &m_e->m_Smat_v_asterisk_v_asterisk;
1003 twoMats_22[1] = &m_j->m_Smat_u_asterisk_u_asterisk;
1005 sigmaMat11 = m_z->m_tmp_Smat_z_hat;
1006 sigmaMat12.fillWithBlocksHorizontally(0,0,twoMats_12,
true,
true);
1007 sigmaMat21.fillWithBlocksVertically (0,0,twoMats_21,
true,
true);
1008 sigmaMat22.fillWithBlocksDiagonally (0,0,twoMats_22,
true,
true);
1012 m_j->m_predVU_summingRVs_mean_of_unique_vu_covMatrices += unique_vu_mat;
1018 m_j->m_predVU_summingRVs_mean_of_unique_vu_covMatrices *= (1./(double) numSamples);
1020 m_j->m_predVU_summingRVs_unique_vu_meanVec = unique_vu_means.
unifiedMeanPlain();
1022 m_j->m_predVU_summingRVs_covMatrix_of_unique_vu_means.cwSet(0.);
1023 m_j->m_predVU_summingRVs_corrMatrix_of_unique_vu_means.cwSet(0.);
1027 m_j->m_predVU_summingRVs_covMatrix_of_unique_vu_means,
1028 m_j->m_predVU_summingRVs_corrMatrix_of_unique_vu_means);
1030 vuMeanVec = m_j->m_predVU_summingRVs_unique_vu_meanVec;
1031 vuMeanVec.cwExtract(0,vMeanVec);
1032 vuMeanVec.cwExtract(m_e->m_paper_p_delta,uMeanVec);
1034 P_M vuCovMatrix(m_j->m_unique_vu_space.zeroVector());
1035 vuCovMatrix = m_j->m_predVU_summingRVs_mean_of_unique_vu_covMatrices + m_j->m_predVU_summingRVs_covMatrix_of_unique_vu_means;
1036 vuCovMatrix.cwExtract(0,0,vCovMatrix);
1037 vuCovMatrix.cwExtract(m_e->m_paper_p_delta,m_e->m_paper_p_delta,uCovMatrix);
1039 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1040 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
1041 <<
", m_predVU_counter = " << m_j->m_predVU_counter
1042 <<
": finished computing all means and covariances"
1043 <<
"\n vuMeanVec = " << vuMeanVec
1044 <<
"\n m_predW_summingRVs_covMatrix_of_unique_vu_means = " << m_j->m_predVU_summingRVs_covMatrix_of_unique_vu_means
1045 <<
"\n m_predW_summingRVs_mean_of_unique_vu_covMatrices = " << m_j->m_predVU_summingRVs_mean_of_unique_vu_covMatrices
1046 <<
"\n vuCovMatrix = " << vuCovMatrix
1051 mean_of_unique_vu_covMatrices *= (1./(double) numSamples);
1054 if (m_optionsObj->m_predVUsAtKeyPoints) {
1058 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1059 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictVUsAtGridPoint(1)"
1060 <<
", m_predVU_counter = " << m_j->m_predVU_counter
1061 <<
", newScenarioVec = " << newScenarioVec
1062 <<
", after " << totalTime
1070 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1073 const S_V& newScenarioVec,
1074 const P_V& newParameterVec,
1075 const P_V* forcingSampleVecForDebug,
1079 struct timeval timevalBegin;
1080 gettimeofday(&timevalBegin, NULL);
1082 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1083 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1084 <<
", m_predW_counter = " << m_s->m_predW_counter
1085 <<
", newScenarioVec = " << newScenarioVec
1086 <<
", newParameterVec = " << newParameterVec
1100 if (m_optionsObj->m_predWsBySamplingRVs) {
1103 if (m_optionsObj->m_predWsBySummingRVs) {
1104 unsigned int numSamples = (
unsigned int) ((
double) m_t->m_totalPostRv.realizer().subPeriod())/((
double) m_optionsObj->m_predLag);
1105 if (forcingSampleVecForDebug) {
1108 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1109 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1110 <<
": m_t->m_totalPostRv.realizer().subPeriod() = " << m_t->m_totalPostRv.realizer().subPeriod()
1111 <<
", m_optionsObj->m_predLag = " << m_optionsObj->m_predLag
1112 <<
", numSamples = " << numSamples
1118 P_V totalSample(m_t->m_totalSpace.zeroVector());
1119 P_V muVec1 (m_s->m_unique_w_space.zeroVector());
1120 P_V muVec2 (m_s->m_w_space.zeroVector());
1121 P_M sigmaMat11 (m_s->m_unique_w_space.zeroVector());
1122 P_M sigmaMat12 (m_env,muVec1.map(),muVec2.sizeGlobal());
1123 P_M sigmaMat21 (m_env,muVec2.map(),muVec1.sizeGlobal());
1124 P_M sigmaMat22 (m_s->m_w_space.zeroVector());
1125 for (
unsigned int sampleId = 0; sampleId < numSamples; ++sampleId) {
1126 m_s->m_predW_counter++;
1129 for (
unsigned int i = 1; i < m_optionsObj->m_predLag; ++i) {
1130 m_t->m_totalPostRv.realizer().realization(totalSample);
1133 m_t->m_totalPostRv.realizer().realization(totalSample);
1134 if (forcingSampleVecForDebug) {
1135 totalSample = *forcingSampleVecForDebug;
1138 unsigned int currPosition = 0;
1139 totalSample.cwExtract(currPosition,m_s->m_tmp_1lambdaEtaVec);
1140 currPosition += m_s->m_tmp_1lambdaEtaVec.sizeLocal();
1141 totalSample.cwExtract(currPosition,m_s->m_tmp_2lambdaWVec);
1142 currPosition += m_s->m_tmp_2lambdaWVec.sizeLocal();
1143 totalSample.cwExtract(currPosition,m_s->m_tmp_3rhoWVec);
1144 currPosition += m_s->m_tmp_3rhoWVec.sizeLocal();
1145 totalSample.cwExtract(currPosition,m_s->m_tmp_4lambdaSVec);
1146 currPosition += m_s->m_tmp_4lambdaSVec.sizeLocal();
1147 totalSample.cwExtract(currPosition,m_e->m_tmp_5lambdaYVec);
1148 currPosition += m_e->m_tmp_5lambdaYVec.sizeLocal();
1149 totalSample.cwExtract(currPosition,m_e->m_tmp_6lambdaVVec);
1150 currPosition += m_e->m_tmp_6lambdaVVec.sizeLocal();
1151 totalSample.cwExtract(currPosition,m_e->m_tmp_7rhoVVec);
1152 currPosition += m_e->m_tmp_7rhoVVec.sizeLocal();
1153 totalSample.cwExtract(currPosition,m_e->m_tmp_8thetaVec);
1154 currPosition += m_e->m_tmp_8thetaVec.sizeLocal();
1155 queso_require_equal_to_msg(currPosition, totalSample.sizeLocal(),
"'currPosition' and 'totalSample.sizeLocal()' should be equal");
1162 this->formSigma_w_hat(m_s->m_tmp_1lambdaEtaVec,
1163 m_s->m_tmp_2lambdaWVec,
1164 m_s->m_tmp_3rhoWVec,
1165 m_s->m_tmp_4lambdaSVec,
1167 m_s->m_predW_counter);
1169 if (forcingSampleVecForDebug) {
1170 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1171 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1172 <<
": m_s->m_Smat_w_hat = " << m_s->m_Smat_w_hat
1181 unsigned int initialPos = 0;
1182 for (
unsigned int i = 0; i < m_s->m_Smat_w_hat_w_asterisk_is.size(); ++i) {
1183 m_s->m_tmp_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
1184 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
1185 m_s->m_Rmat_w_hat_w_asterisk_is[i]->cwSet(0.);
1186 this->fillR_formula1_for_Sigma_w_hat_w_asterisk(m_s->m_paper_xs_asterisks_standard,
1187 m_s->m_paper_ts_asterisks_standard,
1190 m_s->m_tmp_rho_w_vec,
1191 *(m_s->m_Rmat_w_hat_w_asterisk_is[i]),
1192 m_s->m_predW_counter);
1193 m_s->m_Smat_w_hat_w_asterisk_is[i]->cwSet(0.);
1194 *(m_s->m_Smat_w_hat_w_asterisk_is[i]) = (1./m_s->m_tmp_2lambdaWVec[i]) * *(m_s->m_Rmat_w_hat_w_asterisk_is[i]);
1196 m_s->m_Smat_w_hat_w_asterisk.cwSet(0.);
1197 m_s->m_Smat_w_hat_w_asterisk.fillWithBlocksDiagonally(0,0,m_s->m_Smat_w_hat_w_asterisk_is,
true,
true);
1198 m_s->m_Smat_w_hat_w_asterisk_t.fillWithTranspose(0,0,m_s->m_Smat_w_hat_w_asterisk,
true,
true);
1199 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1200 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1201 <<
", m_predW_counter = " << m_s->m_predW_counter
1202 <<
": finished instantiating 'm_Smat_w_hat_w_asterisk'"
1206 if (forcingSampleVecForDebug) {
1207 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1208 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1209 <<
": m_s->m_Smat_w_hat_w_asterisk = " << m_s->m_Smat_w_hat_w_asterisk
1217 queso_require_equal_to_msg(m_s->m_Smat_w_asterisk_w_asterisk.numRowsLocal(), m_s->m_paper_p_eta,
"invalid 'm_Smat_w_asterisk_w_asterisk.numRowsLocal()'");
1218 queso_require_equal_to_msg(m_s->m_tmp_2lambdaWVec.sizeLocal(), m_s->m_paper_p_eta,
"invalid 'm_tmp_2lambdaWVec.sizeLocal()'");
1220 m_s->m_Smat_w_asterisk_w_asterisk.cwSet(0.);
1221 for (
unsigned int i = 0; i < m_s->m_paper_p_eta; ++i) {
1222 m_s->m_Smat_w_asterisk_w_asterisk(i,i) = 1./m_s->m_tmp_2lambdaWVec[i] + 1/m_s->m_tmp_4lambdaSVec[i];
1225 if (forcingSampleVecForDebug) {
1226 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1227 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1228 <<
": m_s->m_Smat_w_asterisk_w_asterisk = " << m_s->m_Smat_w_asterisk_w_asterisk
1238 if (forcingSampleVecForDebug) {
1239 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1240 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1241 <<
": muVec1 = " << muVec1
1242 <<
", muVec2 = " << muVec2
1243 <<
", m_s->m_Zvec_hat_w = " << m_s->m_Zvec_hat_w
1248 P_V unique_w_vec(m_s->m_unique_w_space.zeroVector());
1249 P_M unique_w_mat(m_s->m_unique_w_space.zeroVector());
1251 sigmaMat11 = m_s->m_Smat_w_asterisk_w_asterisk;
1252 sigmaMat12 = m_s->m_Smat_w_hat_w_asterisk_t;
1253 sigmaMat21 = m_s->m_Smat_w_hat_w_asterisk;
1254 sigmaMat22 = m_s->m_Smat_w_hat;
1257 if (forcingSampleVecForDebug) {
1258 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1259 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1260 <<
", unique_w_vec = " << unique_w_vec
1261 <<
", unique_w_mat = " << unique_w_mat
1267 m_s->m_predW_summingRVs_mean_of_unique_w_covMatrices += unique_w_mat;
1275 m_s->m_predW_summingRVs_mean_of_unique_w_covMatrices *= (1./(double) numSamples);
1277 m_s->m_predW_summingRVs_unique_w_meanVec = unique_w_means.
unifiedMeanPlain();
1279 m_s->m_predW_summingRVs_covMatrix_of_unique_w_means.cwSet(0.);
1280 m_s->m_predW_summingRVs_corrMatrix_of_unique_w_means.cwSet(0.);
1284 m_s->m_predW_summingRVs_covMatrix_of_unique_w_means,
1285 m_s->m_predW_summingRVs_corrMatrix_of_unique_w_means);
1287 wMeanVec = m_s->m_predW_summingRVs_unique_w_meanVec;
1288 wCovMatrix = m_s->m_predW_summingRVs_mean_of_unique_w_covMatrices + m_s->m_predW_summingRVs_covMatrix_of_unique_w_means;
1290 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1291 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1292 <<
", m_predW_counter = " << m_s->m_predW_counter
1293 <<
": finished computing all means and covariances"
1294 <<
"\n wMeanVec = " << wMeanVec
1295 <<
"\n m_predW_summingRVs_covMatrix_of_unique_w_means = " << m_s->m_predW_summingRVs_covMatrix_of_unique_w_means
1296 <<
"\n m_predW_summingRVs_mean_of_unique_w_covMatrices = " << m_s->m_predW_summingRVs_mean_of_unique_w_covMatrices
1297 <<
"\n wCovMatrix = " << wCovMatrix
1303 if (m_optionsObj->m_predWsAtKeyPoints) {
1307 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1308 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictWsAtGridPoint()"
1309 <<
", m_predW_counter = " << m_s->m_predW_counter
1310 <<
", newScenarioVec = " << newScenarioVec
1311 <<
", newParameterVec = " << newParameterVec
1312 <<
", after " << totalTime
1320 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1323 const S_V& newScenarioVec,
1324 const D_M& newKmat_interp,
1326 D_V& simulationOutputMeanVec,
1327 D_V& discrepancyMeanVec)
1329 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1330 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictExperimentResults()"
1336 queso_require_msg(!((newKmat_interp.numRowsLocal() != m_s->m_paper_n_eta) || (newKmat_interp.numCols() != m_s->m_paper_p_eta)),
"invalid 'newKmat_interp'");
1338 queso_require_msg(!((newDmat.numRowsLocal() != m_s->m_paper_n_eta) || (newDmat.numCols() != m_e->m_paper_p_delta)),
"invalid 'newDmat'");
1344 P_V vMeanVec (m_e->m_unique_v_space.zeroVector());
1345 P_M vCovMatrix(m_e->m_unique_v_space.zeroVector());
1349 P_V uMeanVec (m_s->m_unique_w_space.zeroVector());
1350 P_M uCovMatrix(m_s->m_unique_w_space.zeroVector());
1352 this->predictVUsAtGridPoint(newScenarioVec,
1358 simulationOutputMeanVec = newKmat_interp * uMeanVec;
1359 discrepancyMeanVec = newDmat * vMeanVec;
1361 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1362 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictExperimentResults()"
1369 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1372 const S_V& newScenarioVec,
1373 const P_V& newParameterVec,
1374 Q_V& simulationOutputMeanVec)
1376 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1377 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictSimulationOutputs()"
1387 P_V wMeanVec (m_s->m_unique_w_space.zeroVector());
1388 P_M wCovMatrix(m_s->m_unique_w_space.zeroVector());
1389 this->predictWsAtGridPoint(newScenarioVec,
1397 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1398 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::predictSimulationOutputs()"
1405 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1410 return m_t->m_totalSpace;
1413 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1418 return m_j->m_unique_vu_space;
1421 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1426 return m_t->m_totalPriorRv;
1429 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1434 return m_t->m_totalPostRv;
1437 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1444 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1449 std::cout <<
"Entering memoryCheck(), m_like_counter = " << m_like_counter <<
", codePositionId = " << codePositionId << std::endl;
1452 for (
unsigned int i = 0; i < m_z->m_tmp_Smat_z.numRowsLocal(); ++i) {
1454 for (
unsigned int j = 0; j < m_z->m_tmp_Smat_z.numCols(); ++j) {
1456 sumZ += m_z->m_tmp_Smat_z(i,j);
1462 for (
unsigned int i = 0; i < m_e->m_Smat_v.numRowsLocal(); ++i) {
1463 for (
unsigned int j = 0; j < m_e->m_Smat_v.numCols(); ++j) {
1464 sumV += m_e->m_Smat_v(i,j);
1469 for (
unsigned int i = 0; i < m_j->m_Smat_u.numRowsLocal(); ++i) {
1470 for (
unsigned int j = 0; j < m_j->m_Smat_u.numCols(); ++j) {
1471 sumU += m_j->m_Smat_u(i,j);
1476 for (
unsigned int i = 0; i < m_s->m_Smat_w.numRowsLocal(); ++i) {
1477 for (
unsigned int j = 0; j < m_s->m_Smat_w.numCols(); ++j) {
1478 sumW += m_s->m_Smat_w(i,j);
1483 for (
unsigned int i = 0; i < m_j->m_Smat_uw.numRowsLocal(); ++i) {
1484 for (
unsigned int j = 0; j < m_j->m_Smat_uw.numCols(); ++j) {
1485 sumUW += m_j->m_Smat_uw(i,j);
1489 double sumUW_T = 0.;
1490 for (
unsigned int i = 0; i < m_j->m_Smat_uw_t.numRowsLocal(); ++i) {
1491 for (
unsigned int j = 0; j < m_j->m_Smat_uw_t.numCols(); ++j) {
1492 sumUW_T += m_j->m_Smat_uw_t(i,j);
1496 std::cout <<
"Leaving memoryCheck(), m_like_counter = " << m_like_counter <<
", codePositionId = " << codePositionId << std::endl;
1501 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1505 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1506 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::generatePriorSeq()..."
1507 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
1508 <<
", m_optionsObj->m_priorSeqNumSamples = " << m_optionsObj->m_priorSeqNumSamples
1513 P_V totalSample(m_t->m_totalSpace.zeroVector());
1514 for (
unsigned int sampleId = 0; sampleId < m_optionsObj->m_priorSeqNumSamples; ++sampleId) {
1515 m_t->m_totalPriorRv.realizer().realization(totalSample);
1519 m_optionsObj->m_priorSeqDataOutputFileType);
1521 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1522 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::generatePriorSeq()..."
1523 <<
": m_optionsObj->m_prefix.c_str() = " << m_optionsObj->m_prefix.c_str()
1530 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1533 const P_V& totalValues,
1534 const P_V* totalDirection,
1535 const void* functionDataPtr,
1548 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
1551 const P_V& totalValues,
1552 const P_V* totalDirection,
1553 const void* functionDataPtr,
1558 struct timeval timevalBegin;
1559 gettimeofday(&timevalBegin, NULL);
1563 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1564 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()..."
1565 <<
": m_like_counter = " << m_like_counter
1566 <<
", totalValues = " << totalValues
1567 <<
", m_env.subComm().NumProc() = " << m_env.subComm().NumProc()
1568 <<
", my subRank = " << m_env.subRank()
1569 <<
", m_formCMatrix = " << m_formCMatrix
1570 <<
", m_cMatIsRankDefficient = " << m_cMatIsRankDefficient
1574 double lnLikelihoodValue = 0.;
1576 if (totalDirection &&
1590 m_s->m_paper_p_eta);
1593 (m_s->m_paper_p_eta*(m_s->m_paper_p_x+m_s->m_paper_p_t)));
1596 if (m_thereIsExperimentalData) {
1603 m_e->m_paper_F*m_s->m_paper_p_x);
1606 this->memoryCheck(50);
1608 unsigned int currPosition = 0;
1609 totalValues.cwExtract(currPosition,m_s->m_tmp_1lambdaEtaVec);
1610 currPosition += m_s->m_tmp_1lambdaEtaVec.sizeLocal();
1611 totalValues.cwExtract(currPosition,m_s->m_tmp_2lambdaWVec);
1612 currPosition += m_s->m_tmp_2lambdaWVec.sizeLocal();
1613 totalValues.cwExtract(currPosition,m_s->m_tmp_3rhoWVec);
1614 currPosition += m_s->m_tmp_3rhoWVec.sizeLocal();
1615 totalValues.cwExtract(currPosition,m_s->m_tmp_4lambdaSVec);
1616 currPosition += m_s->m_tmp_4lambdaSVec.sizeLocal();
1618 if (m_thereIsExperimentalData) {
1619 totalValues.cwExtract(currPosition,m_e->m_tmp_5lambdaYVec);
1620 currPosition += m_e->m_tmp_5lambdaYVec.sizeLocal();
1621 totalValues.cwExtract(currPosition,m_e->m_tmp_6lambdaVVec);
1622 currPosition += m_e->m_tmp_6lambdaVVec.sizeLocal();
1623 totalValues.cwExtract(currPosition,m_e->m_tmp_7rhoVVec);
1624 currPosition += m_e->m_tmp_7rhoVVec.sizeLocal();
1625 totalValues.cwExtract(currPosition,m_e->m_tmp_8thetaVec);
1626 currPosition += m_e->m_tmp_8thetaVec.sizeLocal();
1628 queso_require_equal_to_msg(currPosition, totalValues.sizeLocal(),
"'currPosition' and 'totalValues.sizeLocal()' should be equal");
1630 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
1631 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1632 <<
", m_like_counter = " << m_like_counter
1633 <<
": finished extracting components from 'totalValues'"
1634 <<
", m_tmp_1lambdaEtaVec = " << m_s->m_tmp_1lambdaEtaVec
1635 <<
", m_tmp_2lambdaWVec = " << m_s->m_tmp_2lambdaWVec
1636 <<
", m_tmp_3rhoWVec = " << m_s->m_tmp_3rhoWVec
1637 <<
", m_tmp_4lambdaSVec = " << m_s->m_tmp_4lambdaSVec;
1638 if (m_thereIsExperimentalData) {
1639 *m_env.subDisplayFile() <<
", m_tmp_5lambdaYVec = " << m_e->m_tmp_5lambdaYVec
1640 <<
", m_tmp_6lambdaVVec = " << m_e->m_tmp_6lambdaVVec
1641 <<
", m_tmp_7rhoVVec = " << m_e->m_tmp_7rhoVVec
1642 <<
", m_tmp_8thetaVec = " << m_e->m_tmp_8thetaVec;
1644 *m_env.subDisplayFile() << std::endl;
1650 bool here_1_repeats =
false;
1651 bool here_2_repeats =
false;
1652 bool here_3_repeats =
false;
1653 bool here_4_repeats =
false;
1654 bool here_5_repeats =
false;
1655 bool here_6_repeats =
false;
1656 bool here_7_repeats =
false;
1657 bool here_8_repeats =
false;
1658 if ((m_optionsObj->m_checkAgainstPreviousSample) &&
1659 (m_like_counter == 1 )) {
1660 here_1_repeats = (m_s->m_like_previous1 == m_s->m_tmp_1lambdaEtaVec);
1661 here_2_repeats = (m_s->m_like_previous2 == m_s->m_tmp_2lambdaWVec);
1662 here_3_repeats = (m_s->m_like_previous3 == m_s->m_tmp_3rhoWVec);
1663 here_4_repeats = (m_s->m_like_previous2 == m_s->m_tmp_4lambdaSVec);
1664 if (m_thereIsExperimentalData) {
1665 here_5_repeats = (m_e->m_like_previous5 == m_e->m_tmp_5lambdaYVec);
1666 here_6_repeats = (m_e->m_like_previous6 == m_e->m_tmp_6lambdaVVec);
1667 here_7_repeats = (m_e->m_like_previous7 == m_e->m_tmp_7rhoVVec);
1668 here_8_repeats = (m_e->m_like_previous8 == m_e->m_tmp_8thetaVec);
1670 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1671 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1672 <<
", m_like_counter = " << m_like_counter
1673 <<
"\n m_like_previous1 = " << m_s->m_like_previous1
1674 <<
"\n m_like_previous2 = " << m_s->m_like_previous2
1675 <<
"\n m_like_previous3 = " << m_s->m_like_previous3;
1676 if (m_thereIsExperimentalData) {
1677 *m_env.subDisplayFile() <<
"\n m_like_previous5 = " << m_e->m_like_previous5
1678 <<
"\n m_like_previous6 = " << m_e->m_like_previous6
1679 <<
"\n m_like_previous7 = " << m_e->m_like_previous7
1680 <<
"\n m_like_previous8 = " << m_e->m_like_previous8;
1682 *m_env.subDisplayFile() << std::endl;
1684 if (here_1_repeats ||
1694 lnLikelihoodValue = 0.;
1695 if ((m_formCMatrix ) &&
1696 (m_cMatIsRankDefficient)) {
1700 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1701 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1702 <<
", m_like_counter = " << m_like_counter
1703 <<
": going through true 'm_cMatIsRankDefficient' case"
1707 this->memoryCheck(57);
1709 if (m_optionsObj->m_useTildeLogicForRankDefficientC) {
1720 this->formSigma_z_tilde_hat(m_s->m_tmp_1lambdaEtaVec,
1721 m_s->m_tmp_2lambdaWVec,
1722 m_s->m_tmp_3rhoWVec,
1723 m_s->m_tmp_4lambdaSVec,
1724 m_e->m_tmp_5lambdaYVec,
1725 m_e->m_tmp_6lambdaVVec,
1726 m_e->m_tmp_7rhoVVec,
1727 m_e->m_tmp_8thetaVec,
1730 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1731 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1732 <<
", m_like_counter = " << m_like_counter
1733 <<
": finished computing 'm_tmp_Smat_z_tilde_hat' =\n" << m_zt->m_tmp_Smat_z_tilde_hat
1737 this->memoryCheck(58);
1742 double Smat_z_tilde_hat_lnDeterminant = m_zt->m_tmp_Smat_z_tilde_hat.lnDeterminant();
1744 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1745 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1746 <<
", m_like_counter = " << m_like_counter
1747 <<
": finished computing 'm_tmp_Smat_z_tilde_hat->lnDeterminant()' = " << Smat_z_tilde_hat_lnDeterminant
1750 lnLikelihoodValue += -0.5*Smat_z_tilde_hat_lnDeterminant;
1752 this->memoryCheck(59);
1757 double tmpValue1 =
scalarProduct(m_zt->m_Zvec_tilde_hat,m_zt->m_tmp_Smat_z_tilde_hat.invertMultiply(m_zt->m_Zvec_tilde_hat));
1758 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1759 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1760 <<
", m_like_counter = " << m_like_counter
1761 <<
": finished computing 'tmpValue1 = " << tmpValue1
1764 lnLikelihoodValue += -0.5*tmpValue1;
1766 this->memoryCheck(60);
1771 double tmpValue2 = m_st->m_a_eta_modifier_tilde*std::log(m_s->m_tmp_1lambdaEtaVec[0]) - m_st->m_b_eta_modifier_tilde*m_s->m_tmp_1lambdaEtaVec[0];
1772 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1773 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1774 <<
", m_like_counter = " << m_like_counter
1775 <<
": finished computing 'tmpValue2 = " << tmpValue2
1778 lnLikelihoodValue += tmpValue2;
1780 this->memoryCheck(61);
1782 double tmpValue3 = m_jt->m_a_y_modifier_tilde*std::log(m_e->m_tmp_5lambdaYVec[0]) - m_jt->m_b_y_modifier_tilde*m_e->m_tmp_5lambdaYVec[0];
1783 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1784 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(tilde)"
1785 <<
", m_like_counter = " << m_like_counter
1786 <<
": finished computing 'tmpValue3 = " << tmpValue3
1789 lnLikelihoodValue += tmpValue3;
1791 this->memoryCheck(62);
1794 queso_error_msg(
"incomplete code for situation 'm_useTildeLogicForRankDefficientC == false'");
1801 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
1802 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1803 <<
", m_like_counter = " << m_like_counter
1804 <<
": going through case where C matrix (i) does not exist or (ii) is full rank"
1805 <<
", m_thereIsExperimentalData = " << m_thereIsExperimentalData
1809 this->memoryCheck(51);
1822 if (m_thereIsExperimentalData) {
1823 this->formSigma_z_hat(m_s->m_tmp_1lambdaEtaVec,
1824 m_s->m_tmp_2lambdaWVec,
1825 m_s->m_tmp_3rhoWVec,
1826 m_s->m_tmp_4lambdaSVec,
1827 m_e->m_tmp_5lambdaYVec,
1828 m_e->m_tmp_6lambdaVVec,
1829 m_e->m_tmp_7rhoVVec,
1830 m_e->m_tmp_8thetaVec,
1834 queso_error_msg(
"incomplete code for situation 'm_thereIsExperimentalData == false'");
1836 this->formSigma_z_hat(m_s->m_tmp_1lambdaEtaVec,
1837 m_s->m_tmp_2lambdaWVec,
1838 m_s->m_tmp_3rhoWVec,
1839 m_s->m_tmp_4lambdaSVec,
1843 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
1844 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1845 <<
", m_like_counter = " << m_like_counter
1846 <<
": finished computing 'm_tmp_Smat_z_hat' =\n" << m_z->m_tmp_Smat_z_hat
1850 this->memoryCheck(52);
1855 double Smat_z_hat_lnDeterminant = m_z->m_tmp_Smat_z_hat.lnDeterminant();
1857 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1858 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1859 <<
", m_like_counter = " << m_like_counter
1860 <<
": finished computing 'm_tmp_Smat_z_hat.lnDeterminant()' = " << Smat_z_hat_lnDeterminant
1863 lnLikelihoodValue += -0.5*Smat_z_hat_lnDeterminant;
1865 this->memoryCheck(53);
1870 double tmpValue1 =
scalarProduct(m_z->m_Zvec_hat,m_z->m_tmp_Smat_z_hat.invertMultiply(m_z->m_Zvec_hat));
1871 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1872 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1873 <<
", m_like_counter = " << m_like_counter
1874 <<
": finished computing 'tmpValue1 = " << tmpValue1
1877 lnLikelihoodValue += -0.5*tmpValue1;
1879 this->memoryCheck(54);
1881 if (m_allOutputsAreScalar) {
1888 double tmpValue2 = m_s->m_a_eta_modifier*std::log(m_s->m_tmp_1lambdaEtaVec[0]) - m_s->m_b_eta_modifier*m_s->m_tmp_1lambdaEtaVec[0];
1889 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1890 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1891 <<
", m_like_counter = " << m_like_counter
1892 <<
": finished computing 'tmpValue2 = " << tmpValue2
1895 lnLikelihoodValue += tmpValue2;
1897 this->memoryCheck(55);
1899 double tmpValue3 = m_j->m_a_y_modifier*std::log(m_e->m_tmp_5lambdaYVec[0]) - m_j->m_b_y_modifier*m_e->m_tmp_5lambdaYVec[0];
1900 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1901 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine(non-tilde)"
1902 <<
", m_like_counter = " << m_like_counter
1903 <<
": finished computing 'tmpValue3 = " << tmpValue3
1906 lnLikelihoodValue += tmpValue3;
1908 this->memoryCheck(56);
1916 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 3)) {
1917 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1918 <<
", m_like_counter = " << m_like_counter
1919 <<
": finished computing ln(likelihood)"
1920 <<
", lnLikelihoodValue = " << lnLikelihoodValue
1924 this->memoryCheck(63);
1929 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
1930 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1931 <<
", m_like_counter = " << m_like_counter
1932 <<
": starting saving current samples as previous"
1936 m_t->m_like_previousTotal = totalValues;
1937 m_s->m_like_previous1 = m_s->m_tmp_1lambdaEtaVec;
1938 m_s->m_like_previous2 = m_s->m_tmp_2lambdaWVec;
1939 m_s->m_like_previous3 = m_s->m_tmp_3rhoWVec;
1940 m_s->m_like_previous2 = m_s->m_tmp_4lambdaSVec;
1941 m_e->m_like_previous5 = m_e->m_tmp_5lambdaYVec;
1942 m_e->m_like_previous6 = m_e->m_tmp_6lambdaVVec;
1943 m_e->m_like_previous7 = m_e->m_tmp_7rhoVVec;
1944 m_e->m_like_previous8 = m_e->m_tmp_8thetaVec;
1949 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
1950 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1951 <<
": m_like_counter = " << m_like_counter
1952 <<
", totalValues = " << totalValues
1953 <<
", lnLikelihoodValue = " << lnLikelihoodValue
1954 <<
" after " << totalTime
1959 if (m_env.subRank() == 0) {
1961 std::cout <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::likelihoodRoutine()"
1962 <<
", m_like_counter = " << m_like_counter
1963 <<
": totalValues = " << totalValues
1964 <<
", lnLikelihoodValue = " << lnLikelihoodValue
1965 <<
" after " << totalTime
1978 m_env.subComm().Barrier();
1981 if (gradVector->sizeLocal() >= 4) {
1982 (*gradVector)[0] = lnLikelihoodValue;
1983 (*gradVector)[1] = 0.;
1984 (*gradVector)[2] = 0.;
1985 (*gradVector)[3] = 0.;
1989 if (m_like_counter == 0) {
1994 return lnLikelihoodValue;
1997 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2000 const P_V& input_1lambdaEtaVec,
2001 const P_V& input_2lambdaWVec,
2002 const P_V& input_3rhoWVec,
2003 const P_V& input_4lambdaSVec,
2004 const P_V& input_5lambdaYVec,
2005 const P_V& input_6lambdaVVec,
2006 const P_V& input_7rhoVVec,
2007 const P_V& input_8thetaVec,
2008 unsigned int outerCounter)
2010 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2011 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2012 <<
", outerCounter = " << outerCounter
2013 <<
": m_formCMatrix = " << m_formCMatrix
2014 <<
", m_optionsObj->m_useTildeLogicForRankDefficientC = " << m_optionsObj->m_useTildeLogicForRankDefficientC
2015 <<
", m_Cmat = " << m_z->m_Cmat
2016 <<
", m_cMatIsRankDefficient = " << m_cMatIsRankDefficient
2021 "'m_useTildeLogicForRankDefficientC' should be 'false'");
2030 this->formSigma_z(input_2lambdaWVec,
2038 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2039 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2040 <<
", outerCounter = " << outerCounter
2041 <<
": finished forming 'm_tmp_Smat_z'"
2042 <<
"\n m_tmp_Smat_z contents = " << m_z->m_tmp_Smat_z
2046 if (m_env.displayVerbosity() >= 4) {
2047 double sigmaZLnDeterminant = m_z->m_tmp_Smat_z.lnDeterminant();
2048 unsigned int sigmaZRank = m_z->m_tmp_Smat_z.rank(0.,1.e-8 );
2049 unsigned int sigmaZRank14 = m_z->m_tmp_Smat_z.rank(0.,1.e-14);
2050 if (m_env.subDisplayFile()) {
2051 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2052 <<
", outerCounter = " << outerCounter
2053 <<
", m_tmp_Smat_z.numRowsLocal() = " << m_z->m_tmp_Smat_z.numRowsLocal()
2054 <<
", m_tmp_Smat_z.numCols() = " << m_z->m_tmp_Smat_z.numCols()
2055 <<
", m_tmp_Smat_z.lnDeterminant() = " << sigmaZLnDeterminant
2056 <<
", m_tmp_Smat_z.rank(0.,1.e-8) = " << sigmaZRank
2057 <<
", m_tmp_Smat_z.rank(0.,1.e-14) = " << sigmaZRank14
2062 std::set<unsigned int> tmpSet;
2063 tmpSet.insert(m_env.subId());
2064 if (outerCounter == 1) {
2065 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2066 m_z->m_tmp_Smat_z.subWriteContents(
"Sigma_z",
2076 if (m_allOutputsAreScalar) {
2080 m_z->m_tmp_Smat_extra.cwSet(0.);
2081 m_z->m_tmp_Smat_extra.cwSet( 0, 0,(1./input_5lambdaYVec [0]) * *m_j->m_Bop_t__Wy__Bop__inv);
2082 m_z->m_tmp_Smat_extra.cwSet(m_j->m_Bop_t__Wy__Bop__inv->numRowsLocal(),m_j->m_Bop_t__Wy__Bop__inv->numCols(),(1./input_1lambdaEtaVec[0]) * *m_s->m_Kt_K_inv );
2085 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2086 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2087 <<
", outerCounter = " << outerCounter
2088 <<
": finished forming 'm_tmp_Smat_extra'"
2089 <<
", input_5lambdaYVec[0] = " << input_5lambdaYVec[0]
2090 <<
", input_1lambdaEtaVec[0] = " << input_1lambdaEtaVec[0]
2091 <<
"\n m_Bop_t__Wy__Bop__inv = " << *m_j->m_Bop_t__Wy__Bop__inv
2092 <<
"\n m_Kt_K_inv = " << *m_s->m_Kt_K_inv
2093 <<
"\n m_tmp_Smat_extra contents = " << m_z->m_tmp_Smat_extra
2097 if (m_env.displayVerbosity() >= 4) {
2098 double extraLnDeterminant = m_z->m_tmp_Smat_extra.lnDeterminant();
2099 unsigned int extraRank = m_z->m_tmp_Smat_extra.rank(0.,1.e-8 );
2100 unsigned int extraRank14 = m_z->m_tmp_Smat_extra.rank(0.,1.e-14);
2101 if (m_env.subDisplayFile()) {
2102 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2103 <<
", outerCounter = " << outerCounter
2104 <<
", m_tmp_Smat_extra.numRowsLocal() = " << m_z->m_tmp_Smat_extra.numRowsLocal()
2105 <<
", m_tmp_Smat_extra.numCols() = " << m_z->m_tmp_Smat_extra.numCols()
2106 <<
", m_tmp_Smat_extra.lnDeterminant() = " << extraLnDeterminant
2107 <<
", m_tmp_Smat_extra.rank(0.,1.e-8) = " << extraRank
2108 <<
", m_tmp_Smat_extra.rank(0.,1.e-14) = " << extraRank14
2113 if (outerCounter == 1) {
2114 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2115 m_z->m_tmp_Smat_extra.subWriteContents(
"Sigma_extra",
2125 m_z->m_tmp_Smat_z_hat = m_z->m_tmp_Smat_z + m_z->m_tmp_Smat_extra;
2127 if (m_env.displayVerbosity() >= 4) {
2128 double zHatLnDeterminant = m_z->m_tmp_Smat_z_hat.lnDeterminant();
2129 unsigned int zHatRank = m_z->m_tmp_Smat_z_hat.rank(0.,1.e-8 );
2130 unsigned int zHatRank14 = m_z->m_tmp_Smat_z_hat.rank(0.,1.e-14);
2131 if (m_env.subDisplayFile()) {
2132 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2133 <<
", outerCounter = " << outerCounter
2134 <<
", m_tmp_Smat_z_hat.numRowsLocal() = " << m_z->m_tmp_Smat_z_hat.numRowsLocal()
2135 <<
", m_tmp_Smat_z_hat.numCols() = " << m_z->m_tmp_Smat_z_hat.numCols()
2136 <<
", m_tmp_Smat_z_hat.lnDeterminant() = " << zHatLnDeterminant
2137 <<
", m_tmp_Smat_z_hat.rank(0.,1.e-8) = " << zHatRank
2138 <<
", m_tmp_Smat_z_hat.rank(0.,1.e-14) = " << zHatRank14
2143 if (outerCounter == 1) {
2144 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2145 m_z->m_tmp_Smat_z_hat.subWriteContents(
"Sigma_z_hat",
2152 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2153 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(1)"
2154 <<
", outerCounter = " << outerCounter
2162 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2165 const P_V& input_1lambdaEtaVec,
2166 const P_V& input_2lambdaWVec,
2167 const P_V& input_3rhoWVec,
2168 const P_V& input_4lambdaSVec,
2169 unsigned int outerCounter)
2171 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2172 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2173 <<
", outerCounter = " << outerCounter
2174 <<
": m_formCMatrix = " << m_formCMatrix
2175 <<
", m_optionsObj->m_useTildeLogicForRankDefficientC = " << m_optionsObj->m_useTildeLogicForRankDefficientC
2176 <<
", m_Cmat = " << m_z->m_Cmat
2177 <<
", m_cMatIsRankDefficient = " << m_cMatIsRankDefficient
2182 "'m_useTildeLogicForRankDefficientC' should be 'false'");
2191 this->formSigma_z(input_2lambdaWVec,
2196 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2197 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2198 <<
", outerCounter = " << outerCounter
2199 <<
": finished forming 'm_tmp_Smat_z'"
2200 <<
"\n m_tmp_Smat_z contents = " << m_z->m_tmp_Smat_z
2204 if (m_env.displayVerbosity() >= 4) {
2205 double sigmaZLnDeterminant = m_z->m_tmp_Smat_z.lnDeterminant();
2206 unsigned int sigmaZRank = m_z->m_tmp_Smat_z.rank(0.,1.e-8 );
2207 unsigned int sigmaZRank14 = m_z->m_tmp_Smat_z.rank(0.,1.e-14);
2208 if (m_env.subDisplayFile()) {
2209 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2210 <<
", outerCounter = " << outerCounter
2211 <<
", m_tmp_Smat_z.numRowsLocal() = " << m_z->m_tmp_Smat_z.numRowsLocal()
2212 <<
", m_tmp_Smat_z.numCols() = " << m_z->m_tmp_Smat_z.numCols()
2213 <<
", m_tmp_Smat_z.lnDeterminant() = " << sigmaZLnDeterminant
2214 <<
", m_tmp_Smat_z.rank(0.,1.e-8) = " << sigmaZRank
2215 <<
", m_tmp_Smat_z.rank(0.,1.e-14) = " << sigmaZRank14
2220 #if 0 // Case with no experimental data // checar
2224 if (m_allOutputsAreScalar) {
2228 m_z->m_tmp_Smat_extra.cwSet(0.);
2229 m_z->m_tmp_Smat_extra.cwSet( 0, 0,(1./input_5lambdaYVec [0]) * *m_j->m_Bop_t__Wy__Bop__inv);
2230 m_z->m_tmp_Smat_extra.cwSet(m_j->m_Bop_t__Wy__Bop__inv->numRowsLocal(),m_j->m_Bop_t__Wy__Bop__inv->numCols(),(1./input_1lambdaEtaVec[0]) * *m_s->m_Kt_K_inv );
2233 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2234 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2235 <<
", outerCounter = " << outerCounter
2236 <<
": finished forming 'm_tmp_Smat_extra'"
2237 <<
", input_5lambdaYVec[0] = " << input_5lambdaYVec[0]
2238 <<
", input_1lambdaEtaVec[0] = " << input_1lambdaEtaVec[0]
2239 <<
"\n m_Bop_t__Wy__Bop__inv = " << *m_j->m_Bop_t__Wy__Bop__inv
2240 <<
"\n m_Kt_K_inv = " << *m_s->m_Kt_K_inv
2241 <<
"\n m_tmp_Smat_extra contents = " << m_z->m_tmp_Smat_extra
2245 if (m_env.displayVerbosity() >= 4) {
2246 double extraLnDeterminant = m_z->m_tmp_Smat_extra.lnDeterminant();
2247 unsigned int extraRank = m_z->m_tmp_Smat_extra.rank(0.,1.e-8 );
2248 unsigned int extraRank14 = m_z->m_tmp_Smat_extra.rank(0.,1.e-14);
2249 if (m_env.subDisplayFile()) {
2250 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2251 <<
", outerCounter = " << outerCounter
2252 <<
", m_tmp_Smat_extra.numRowsLocal() = " << m_z->m_tmp_Smat_extra.numRowsLocal()
2253 <<
", m_tmp_Smat_extra.numCols() = " << m_z->m_tmp_Smat_extra.numCols()
2254 <<
", m_tmp_Smat_extra.lnDeterminant() = " << extraLnDeterminant
2255 <<
", m_tmp_Smat_extra.rank(0.,1.e-8) = " << extraRank
2256 <<
", m_tmp_Smat_extra.rank(0.,1.e-14) = " << extraRank14
2264 m_z->m_tmp_Smat_z_hat = m_z->m_tmp_Smat_z + m_z->m_tmp_Smat_extra;
2266 if (m_env.displayVerbosity() >= 4) {
2267 double zHatLnDeterminant = m_z->m_tmp_Smat_z_hat.lnDeterminant();
2268 unsigned int zHatRank = m_z->m_tmp_Smat_z_hat.rank(0.,1.e-8 );
2269 unsigned int zHatRank14 = m_z->m_tmp_Smat_z_hat.rank(0.,1.e-14);
2270 if (m_env.subDisplayFile()) {
2271 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2272 <<
", outerCounter = " << outerCounter
2273 <<
", m_tmp_Smat_z_hat.numRowsLocal() = " << m_z->m_tmp_Smat_z_hat.numRowsLocal()
2274 <<
", m_tmp_Smat_z_hat.numCols() = " << m_z->m_tmp_Smat_z_hat.numCols()
2275 <<
", m_tmp_Smat_z_hat.lnDeterminant() = " << zHatLnDeterminant
2276 <<
", m_tmp_Smat_z_hat.rank(0.,1.e-8) = " << zHatRank
2277 <<
", m_tmp_Smat_z_hat.rank(0.,1.e-14) = " << zHatRank14
2282 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2283 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_hat(2)"
2284 <<
", outerCounter = " << outerCounter
2291 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2294 const P_V& input_1lambdaEtaVec,
2295 const P_V& input_2lambdaWVec,
2296 const P_V& input_3rhoWVec,
2297 const P_V& input_4lambdaSVec,
2298 const P_V& input_5lambdaYVec,
2299 const P_V& input_6lambdaVVec,
2300 const P_V& input_7rhoVVec,
2301 const P_V& input_8thetaVec,
2302 unsigned int outerCounter)
2304 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2305 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2306 <<
", outerCounter = " << outerCounter
2307 <<
": m_formCMatrix = " << m_formCMatrix
2308 <<
", m_optionsObj->m_useTildeLogicForRankDefficientC = " << m_optionsObj->m_useTildeLogicForRankDefficientC
2309 <<
", m_Cmat = " << m_z->m_Cmat
2310 <<
", m_cMatIsRankDefficient = " << m_cMatIsRankDefficient
2318 queso_require_msg(m_cMatIsRankDefficient,
"'m_Cmat' should be rank defficient");
2320 queso_require_msg(m_optionsObj->m_useTildeLogicForRankDefficientC,
"'m_useTildeLogicForRankDefficientC' should be 'true'");
2329 this->formSigma_z(input_2lambdaWVec,
2337 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2338 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2339 <<
", outerCounter = " << outerCounter
2340 <<
": finished forming 'm_tmp_Smat_z'"
2341 <<
"\n m_tmp_Smat_z contents = " << m_z->m_tmp_Smat_z
2345 if (m_env.displayVerbosity() >= 4) {
2346 double sigmaZLnDeterminant = m_z->m_tmp_Smat_z.lnDeterminant();
2347 unsigned int sigmaZRank = m_z->m_tmp_Smat_z.rank(0.,1.e-8 );
2348 unsigned int sigmaZRank14 = m_z->m_tmp_Smat_z.rank(0.,1.e-14);
2349 if (m_env.subDisplayFile()) {
2350 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2351 <<
", outerCounter = " << outerCounter
2352 <<
", m_tmp_Smat_z.numRowsLocal() = " << m_z->m_tmp_Smat_z.numRowsLocal()
2353 <<
", m_tmp_Smat_z.numCols() = " << m_z->m_tmp_Smat_z.numCols()
2354 <<
", m_tmp_Smat_z.lnDeterminant() = " << sigmaZLnDeterminant
2355 <<
", m_tmp_Smat_z.rank(0.,1.e-8) = " << sigmaZRank
2356 <<
", m_tmp_Smat_z.rank(0.,1.e-14) = " << sigmaZRank14
2364 m_zt->m_tmp_Smat_z_tilde = m_zt->m_Lmat * (m_z->m_tmp_Smat_z * m_zt->m_Lmat_t);
2366 if (m_env.displayVerbosity() >= 4) {
2367 double sigmaZTildeLnDeterminant = m_zt->m_tmp_Smat_z_tilde.lnDeterminant();
2368 unsigned int sigmaZTildeRank = m_zt->m_tmp_Smat_z_tilde.rank(0.,1.e-8 );
2369 unsigned int sigmaZTildeRank14 = m_zt->m_tmp_Smat_z_tilde.rank(0.,1.e-14);
2370 if (m_env.subDisplayFile()) {
2371 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2372 <<
", outerCounter = " << outerCounter
2373 <<
", m_tmp_Smat_z_tilde->numRowsLocal() = " << m_zt->m_tmp_Smat_z_tilde.numRowsLocal()
2374 <<
", m_tmp_Smat_z_tilde->numCols() = " << m_zt->m_tmp_Smat_z_tilde.numCols()
2375 <<
", m_tmp_Smat_z_tilde->lnDeterminant() = " << sigmaZTildeLnDeterminant
2376 <<
", m_tmp_Smat_z_tilde->rank(0.,1.e-8) = " << sigmaZTildeRank
2377 <<
", m_tmp_Smat_z_tilde->rank(0.,1.e-14) = " << sigmaZTildeRank14
2385 m_zt->m_tmp_Smat_extra_tilde.cwSet(0.);
2386 m_zt->m_tmp_Smat_extra_tilde.cwSet( 0, 0,(1./input_5lambdaYVec [0]) * (m_jt->m_Btildet_Wy_Btilde_inv));
2387 m_zt->m_tmp_Smat_extra_tilde.cwSet(m_jt->m_Btildet_Wy_Btilde_inv.numRowsLocal(),m_jt->m_Btildet_Wy_Btilde_inv.numCols(),(1./input_1lambdaEtaVec[0]) * (m_st->m_Ktildet_Ktilde_inv) );
2389 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
2390 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2391 <<
", outerCounter = " << outerCounter
2392 <<
": finished forming 'm_tmp_Smat_extra_tilde'"
2393 <<
", input_5lambdaYVec[0] = " << input_5lambdaYVec[0]
2394 <<
", input_1lambdaEtaVec[0] = " << input_1lambdaEtaVec[0]
2395 <<
"\n m_Btildet_Wy_Btilde_inv = " << m_jt->m_Btildet_Wy_Btilde_inv
2396 <<
"\n m_Ktildet_Ktilde_inv = " << m_st->m_Ktildet_Ktilde_inv
2397 <<
"\n m_tmp_Smat_extra_tilde contents = " << m_zt->m_tmp_Smat_extra_tilde
2401 if (m_env.displayVerbosity() >= 4) {
2402 double extraTildeLnDeterminant = m_zt->m_tmp_Smat_extra_tilde.lnDeterminant();
2403 unsigned int extraTildeRank = m_zt->m_tmp_Smat_extra_tilde.rank(0.,1.e-8 );
2404 unsigned int extraTildeRank14 = m_zt->m_tmp_Smat_extra_tilde.rank(0.,1.e-14);
2405 if (m_env.subDisplayFile()) {
2406 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2407 <<
", outerCounter = " << outerCounter
2408 <<
", m_tmp_Smat_extra_tilde.numRowsLocal() = " << m_zt->m_tmp_Smat_extra_tilde.numRowsLocal()
2409 <<
", m_tmp_Smat_extra_tilde.numCols() = " << m_zt->m_tmp_Smat_extra_tilde.numCols()
2410 <<
", m_tmp_Smat_extra_tilde.lnDeterminant() = " << extraTildeLnDeterminant
2411 <<
", m_tmp_Smat_extra_tilde.rank(0.,1.e-8) = " << extraTildeRank
2412 <<
", m_tmp_Smat_extra_tilde.rank(0.,1.e-14) = " << extraTildeRank14
2420 m_zt->m_tmp_Smat_z_tilde_hat = m_zt->m_tmp_Smat_z_tilde + m_zt->m_tmp_Smat_extra_tilde;
2422 if (m_env.displayVerbosity() >= 4) {
2423 double zTildeHatLnDeterminant = m_zt->m_tmp_Smat_z_tilde_hat.lnDeterminant();
2424 unsigned int zTildeHatRank = m_zt->m_tmp_Smat_z_tilde_hat.rank(0.,1.e-8 );
2425 unsigned int zTildeHatRank14 = m_zt->m_tmp_Smat_z_tilde_hat.rank(0.,1.e-14);
2426 if (m_env.subDisplayFile()) {
2427 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2428 <<
", outerCounter = " << outerCounter
2429 <<
", m_tmp_Smat_z_tilde_hat->numRowsLocal() = " << m_zt->m_tmp_Smat_z_tilde_hat.numRowsLocal()
2430 <<
", m_tmp_Smat_z_tilde_hat->numCols() = " << m_zt->m_tmp_Smat_z_tilde_hat.numCols()
2431 <<
", m_tmp_Smat_z_tilde_hat->lnDeterminant() = " << zTildeHatLnDeterminant
2432 <<
", m_tmp_Smat_z_tilde_hat->rank(0.,1.e-8) = " << zTildeHatRank
2433 <<
", m_tmp_Smat_z_tilde_hat->rank(0.,1.e-14) = " << zTildeHatRank14
2438 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2439 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z_tilde_hat()"
2440 <<
", outerCounter = " << outerCounter
2447 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2450 const P_V& input_2lambdaWVec,
2451 const P_V& input_3rhoWVec,
2452 const P_V& input_4lambdaSVec,
2453 const P_V& input_6lambdaVVec,
2454 const P_V& input_7rhoVVec,
2455 const P_V& input_8thetaVec,
2456 unsigned int outerCounter)
2458 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2459 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2460 <<
", outerCounter = " << outerCounter
2464 std::set<unsigned int> tmpSet;
2465 tmpSet.insert(m_env.subId());
2467 this->memoryCheck(90);
2496 unsigned int initialPos = 0;
2497 for (
unsigned int i = 0; i < m_e->m_Smat_v_i_spaces.size(); ++i) {
2498 input_7rhoVVec.cwExtract(initialPos,m_e->m_tmp_rho_v_vec);
2499 initialPos += m_e->m_tmp_rho_v_vec.sizeLocal();
2500 m_e->m_Rmat_v_is[i]->cwSet(0.);
2501 this->fillR_formula2_for_Sigma_v(m_e->m_paper_xs_standard,
2502 m_e->m_tmp_rho_v_vec,
2503 *(m_e->m_Rmat_v_is[i]),
2506 m_e->m_Smat_v_is[i]->cwSet(0.);
2507 m_e->m_Smat_v_is[i]->fillWithTensorProduct(0,0,*(m_e->m_Imat_v_is[i]),*(m_e->m_Rmat_v_is[i]),
true,
true);
2508 *(m_e->m_Smat_v_is[i]) *= (1./input_6lambdaVVec[i]);
2510 m_e->m_Smat_v.cwSet(0.);
2511 m_e->m_Smat_v.fillWithBlocksDiagonally(0,0,m_e->m_Smat_v_is,
true,
true);
2512 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2513 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2514 <<
", outerCounter = " << outerCounter
2515 <<
": finished instantiating 'm_Smat_v'"
2519 if (outerCounter == 1) {
2520 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2521 m_e->m_Smat_v.subWriteContents(
"Sigma_v",
2528 this->memoryCheck(91);
2531 for (
unsigned int i = 0; i < m_j->m_Smat_u_is.size(); ++i) {
2532 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2533 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2534 m_j->m_Rmat_u_is[i]->cwSet(0.);
2535 this->fillR_formula1_for_Sigma_u(m_e->m_paper_xs_standard,
2537 m_s->m_tmp_rho_w_vec,
2538 *(m_j->m_Rmat_u_is[i]),
2541 m_j->m_Smat_u_is[i]->cwSet(0.);
2542 *(m_j->m_Smat_u_is[i]) = (1./input_2lambdaWVec[i]) * *(m_j->m_Rmat_u_is[i]);
2543 for (
unsigned int j = 0; j < m_j->m_Smat_u_is[i]->numRowsLocal(); ++j) {
2544 (*(m_j->m_Smat_u_is[i]))(j,j) += 1/m_s->m_tmp_4lambdaSVec[i];
2547 m_j->m_Smat_u.cwSet(0.);
2548 m_j->m_Smat_u.fillWithBlocksDiagonally(0,0,m_j->m_Smat_u_is,
true,
true);
2549 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2550 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2551 <<
", outerCounter = " << outerCounter
2552 <<
": finished instantiating 'm_Smat_u'"
2556 if (outerCounter == 1) {
2557 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2558 m_j->m_Smat_u.subWriteContents(
"Sigma_u",
2565 this->memoryCheck(92);
2568 for (
unsigned int i = 0; i < m_s->m_Smat_w_is.size(); ++i) {
2569 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2570 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2571 m_s->m_Rmat_w_is[i]->cwSet(0.);
2572 this->fillR_formula1_for_Sigma_w(m_s->m_paper_xs_asterisks_standard,
2573 m_s->m_paper_ts_asterisks_standard,
2574 m_s->m_tmp_rho_w_vec,
2575 *(m_s->m_Rmat_w_is[i]),
2578 m_s->m_Smat_w_is[i]->cwSet(0.);
2579 *(m_s->m_Smat_w_is[i]) = (1./input_2lambdaWVec[i]) * *(m_s->m_Rmat_w_is[i]);
2581 if ((outerCounter == 1) &&
2583 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
2584 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2585 <<
", outerCounter = " << outerCounter
2586 <<
": during the calculation of 'm_Smat_w'"
2587 <<
"\n m_s->m_paper_xs_asterisks_standard.size() = " << m_s->m_paper_xs_asterisks_standard.size();
2588 for (
unsigned int tmpId = 0; tmpId < m_s->m_paper_xs_asterisks_standard.size(); ++tmpId) {
2589 *m_env.subDisplayFile() <<
"\n m_s->m_paper_xs_asterisks_standard[" << tmpId <<
"] = "
2590 << *(m_s->m_paper_xs_asterisks_standard[tmpId])
2593 *m_env.subDisplayFile() <<
"\n m_s->m_paper_ts_asterisks_standard.size() = " << m_s->m_paper_ts_asterisks_standard.size();
2594 for (
unsigned int tmpId = 0; tmpId < m_s->m_paper_ts_asterisks_standard.size(); ++tmpId) {
2595 *m_env.subDisplayFile() <<
"\n m_s->m_paper_ts_asterisks_standard[" << tmpId <<
"] = "
2596 << *(m_s->m_paper_ts_asterisks_standard[tmpId])
2599 *m_env.subDisplayFile() <<
"\n m_s->m_tmp_rho_w_vec = " << m_s->m_tmp_rho_w_vec
2600 <<
"\n (*(m_s->m_Rmat_w_is[i=0]))(0,0) = " << (*(m_s->m_Rmat_w_is[i]))(0,0)
2601 <<
"\n input_2lambdaWVec[i=0] = " << input_2lambdaWVec[i]
2602 <<
"\n (*(m_s->m_Smat_w_is[i=0]))(0,0) = " << (*(m_s->m_Smat_w_is[i]))(0,0)
2603 <<
"\n m_s->m_tmp_4lambdaSVec[i=0] = " << m_s->m_tmp_4lambdaSVec[i]
2608 for (
unsigned int j = 0; j < m_s->m_Smat_w_is[i]->numRowsLocal(); ++j) {
2609 (*(m_s->m_Smat_w_is[i]))(j,j) += 1/m_s->m_tmp_4lambdaSVec[i];
2612 if ((outerCounter == 1) &&
2614 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
2615 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2616 <<
", outerCounter = " << outerCounter
2617 <<
": during the calculation of 'm_Smat_w'"
2618 <<
"\n (*(m_s->m_Smat_w_is[i=0]))(0,0) = " << (*(m_s->m_Smat_w_is[i]))(0,0)
2623 m_s->m_Smat_w.cwSet(0.);
2624 m_s->m_Smat_w.fillWithBlocksDiagonally(0,0,m_s->m_Smat_w_is,
true,
true);
2625 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2626 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2627 <<
", outerCounter = " << outerCounter
2628 <<
": finished instantiating 'm_Smat_w'"
2632 if (outerCounter == 1) {
2633 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2634 m_s->m_Smat_w.subWriteContents(
"Sigma_w",
2641 this->memoryCheck(93);
2644 for (
unsigned int i = 0; i < m_j->m_Smat_uw_is.size(); ++i) {
2645 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2646 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2647 m_j->m_Rmat_uw_is[i]->cwSet(0.);
2648 this->fillR_formula1_for_Sigma_uw(m_e->m_paper_xs_standard,
2650 m_s->m_paper_xs_asterisks_standard,
2651 m_s->m_paper_ts_asterisks_standard,
2652 m_s->m_tmp_rho_w_vec,*(m_j->m_Rmat_uw_is[i]),
2655 m_j->m_Smat_uw_is[i]->cwSet(0.);
2656 *(m_j->m_Smat_uw_is[i]) = (1./input_2lambdaWVec[i]) * *(m_j->m_Rmat_uw_is[i]);
2658 m_j->m_Smat_uw.cwSet(0.);
2659 m_j->m_Smat_uw.fillWithBlocksDiagonally(0,0,m_j->m_Smat_uw_is,
true,
true);
2660 m_j->m_Smat_uw_t.fillWithTranspose(0,0,m_j->m_Smat_uw,
true,
true);
2661 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2662 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2663 <<
", outerCounter = " << outerCounter
2664 <<
": finished instantiating 'm_j->m_Smat_uw'"
2668 if (outerCounter == 1) {
2669 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2670 m_j->m_Smat_uw.subWriteContents(
"Sigma_uw",
2677 this->memoryCheck(94);
2682 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2683 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2684 <<
", outerCounter = " << outerCounter
2685 <<
": m_tmp_Smat_z.numRowsLocal() = " << m_z->m_tmp_Smat_z.numRowsLocal()
2686 <<
", m_tmp_Smat_z.numCols() = " << m_z->m_tmp_Smat_z.numCols()
2687 <<
", m_Smat_v.numRowsLocal() = " << m_e->m_Smat_v.numRowsLocal()
2688 <<
", m_Smat_v.numCols() = " << m_e->m_Smat_v.numCols()
2689 <<
", m_Smat_u.numRowsLocal() = " << m_j->m_Smat_u.numRowsLocal()
2690 <<
", m_Smat_u.numCols() = " << m_j->m_Smat_u.numCols()
2691 <<
", m_Smat_w.numRowsLocal() = " << m_s->m_Smat_w.numRowsLocal()
2692 <<
", m_Smat_w.numCols() = " << m_s->m_Smat_w.numCols()
2693 <<
", m_Smat_uw.numRowsLocal() = " << m_j->m_Smat_uw.numRowsLocal()
2694 <<
", m_Smat_uw.numCols() = " << m_j->m_Smat_uw.numCols()
2695 <<
", m_Smat_v_i_spaces.size() = " << m_e->m_Smat_v_i_spaces.size()
2696 <<
", m_Smat_u_is.size() = " << m_j->m_Smat_u_is.size()
2697 <<
", m_Smat_w_is.size() = " << m_s->m_Smat_w_is.size()
2701 this->memoryCheck(95);
2703 m_z->m_tmp_Smat_z.cwSet(0.);
2704 if (m_allOutputsAreScalar) {
2708 m_z->m_tmp_Smat_z.cwSet(0,0,m_e->m_Smat_v);
2709 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal(), m_e->m_Smat_v.numCols(), m_j->m_Smat_u);
2710 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal(), m_e->m_Smat_v.numCols()+m_j->m_Smat_u.numCols(),m_j->m_Smat_uw);
2711 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal()+m_j->m_Smat_u.numRowsLocal(),m_e->m_Smat_v.numCols(), m_j->m_Smat_uw_t);
2712 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal()+m_j->m_Smat_u.numRowsLocal(),m_e->m_Smat_v.numCols()+m_j->m_Smat_u.numCols(),m_s->m_Smat_w);
2715 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2716 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(1)"
2717 <<
", outerCounter = " << outerCounter
2725 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2728 const P_V& input_2lambdaWVec,
2729 const P_V& input_3rhoWVec,
2730 const P_V& input_4lambdaSVec,
2731 unsigned int outerCounter)
2733 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2734 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2735 <<
", outerCounter = " << outerCounter
2739 std::set<unsigned int> tmpSet;
2740 tmpSet.insert(m_env.subId());
2742 this->memoryCheck(90);
2771 #if 0 // Case with no experimental data // checar
2772 unsigned int initialPos = 0;
2773 for (
unsigned int i = 0; i < m_e->m_Smat_v_i_spaces.size(); ++i) {
2774 input_7rhoVVec.cwExtract(initialPos,m_e->m_tmp_rho_v_vec);
2775 initialPos += m_e->m_tmp_rho_v_vec.sizeLocal();
2776 m_e->m_Rmat_v_is[i]->cwSet(0.);
2777 this->fillR_formula2_for_Sigma_v(m_e->m_paper_xs_standard,
2778 m_e->m_tmp_rho_v_vec,
2779 *(m_e->m_Rmat_v_is[i]),
2782 m_e->m_Smat_v_is[i]->cwSet(0.);
2783 m_e->m_Smat_v_is[i]->fillWithTensorProduct(0,0,*(m_e->m_Imat_v_is[i]),*(m_e->m_Rmat_v_is[i]),
true,
true);
2784 *(m_e->m_Smat_v_is[i]) *= (1./input_6lambdaVVec[i]);
2786 m_e->m_Smat_v.cwSet(0.);
2787 m_e->m_Smat_v.fillWithBlocksDiagonally(0,0,m_e->m_Smat_v_is,
true,
true);
2788 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2789 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2790 <<
", outerCounter = " << outerCounter
2791 <<
": finished instantiating 'm_Smat_v'"
2795 if (outerCounter == 1) {
2796 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2797 m_e->m_Smat_v.subWriteContents(
"Sigma_v",
2803 this->memoryCheck(91);
2806 for (
unsigned int i = 0; i < m_j->m_Smat_u_is.size(); ++i) {
2807 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2808 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2809 m_j->m_Rmat_u_is[i]->cwSet(0.);
2810 this->fillR_formula1_for_Sigma_u(m_e->m_paper_xs_standard,
2812 m_s->m_tmp_rho_w_vec,
2813 *(m_j->m_Rmat_u_is[i]),
2816 m_j->m_Smat_u_is[i]->cwSet(0.);
2817 *(m_j->m_Smat_u_is[i]) = (1./input_2lambdaWVec[i]) * *(m_j->m_Rmat_u_is[i]);
2818 for (
unsigned int j = 0; j < m_j->m_Smat_u_is[i]->numRowsLocal(); ++j) {
2819 (*(m_j->m_Smat_u_is[i]))(j,j) += 1/m_s->m_tmp_4lambdaSVec[i];
2822 m_j->m_Smat_u.cwSet(0.);
2823 m_j->m_Smat_u.fillWithBlocksDiagonally(0,0,m_j->m_Smat_u_is,
true,
true);
2824 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2825 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2826 <<
", outerCounter = " << outerCounter
2827 <<
": finished instantiating 'm_Smat_u'"
2831 if (outerCounter == 1) {
2832 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2833 m_j->m_Smat_u.subWriteContents(
"Sigma_u",
2840 this->memoryCheck(92);
2843 for (
unsigned int i = 0; i < m_s->m_Smat_w_is.size(); ++i) {
2844 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2845 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2846 m_s->m_Rmat_w_is[i]->cwSet(0.);
2847 this->fillR_formula1_for_Sigma_w(m_s->m_paper_xs_asterisks_standard,
2848 m_s->m_paper_ts_asterisks_standard,
2849 m_s->m_tmp_rho_w_vec,
2850 *(m_s->m_Rmat_w_is[i]),
2853 m_s->m_Smat_w_is[i]->cwSet(0.);
2854 *(m_s->m_Smat_w_is[i]) = (1./input_2lambdaWVec[i]) * *(m_s->m_Rmat_w_is[i]);
2855 for (
unsigned int j = 0; j < m_s->m_Smat_w_is[i]->numRowsLocal(); ++j) {
2856 (*(m_s->m_Smat_w_is[i]))(j,j) += 1/m_s->m_tmp_4lambdaSVec[i];
2859 m_s->m_Smat_w.cwSet(0.);
2860 m_s->m_Smat_w.fillWithBlocksDiagonally(0,0,m_s->m_Smat_w_is,
true,
true);
2861 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2862 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2863 <<
", outerCounter = " << outerCounter
2864 <<
": finished instantiating 'm_Smat_w'"
2868 if (outerCounter == 1) {
2869 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2870 m_s->m_Smat_w.subWriteContents(
"Sigma_w",
2877 this->memoryCheck(93);
2880 for (
unsigned int i = 0; i < m_j->m_Smat_uw_is.size(); ++i) {
2881 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2882 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2883 m_j->m_Rmat_uw_is[i]->cwSet(0.);
2884 this->fillR_formula1_for_Sigma_uw(m_e->m_paper_xs_standard,
2886 m_s->m_paper_xs_asterisks_standard,
2887 m_s->m_paper_ts_asterisks_standard,
2888 m_s->m_tmp_rho_w_vec,*(m_j->m_Rmat_uw_is[i]),
2891 m_j->m_Smat_uw_is[i]->cwSet(0.);
2892 *(m_j->m_Smat_uw_is[i]) = (1./input_2lambdaWVec[i]) * *(m_j->m_Rmat_uw_is[i]);
2894 m_j->m_Smat_uw.cwSet(0.);
2895 m_j->m_Smat_uw.fillWithBlocksDiagonally(0,0,m_j->m_Smat_uw_is,
true,
true);
2896 m_j->m_Smat_uw_t.fillWithTranspose(0,0,m_j->m_Smat_uw,
true,
true);
2897 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2898 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2899 <<
", outerCounter = " << outerCounter
2900 <<
": finished instantiating 'm_j->m_Smat_uw'"
2904 if (outerCounter == 1) {
2905 if (m_optionsObj->m_dataOutputAllowedSet.find(m_env.subId()) != m_optionsObj->m_dataOutputAllowedSet.end()) {
2906 m_j->m_Smat_uw.subWriteContents(
"Sigma_uw",
2913 this->memoryCheck(94);
2918 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2919 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2920 <<
", outerCounter = " << outerCounter
2921 <<
": m_tmp_Smat_z.numRowsLocal() = " << m_z->m_tmp_Smat_z.numRowsLocal()
2922 <<
", m_tmp_Smat_z.numCols() = " << m_z->m_tmp_Smat_z.numCols()
2923 <<
", m_Smat_v.numRowsLocal() = " << m_e->m_Smat_v.numRowsLocal()
2924 <<
", m_Smat_v.numCols() = " << m_e->m_Smat_v.numCols()
2925 <<
", m_Smat_u.numRowsLocal() = " << m_j->m_Smat_u.numRowsLocal()
2926 <<
", m_Smat_u.numCols() = " << m_j->m_Smat_u.numCols()
2927 <<
", m_Smat_w.numRowsLocal() = " << m_s->m_Smat_w.numRowsLocal()
2928 <<
", m_Smat_w.numCols() = " << m_s->m_Smat_w.numCols()
2929 <<
", m_Smat_uw.numRowsLocal() = " << m_j->m_Smat_uw.numRowsLocal()
2930 <<
", m_Smat_uw.numCols() = " << m_j->m_Smat_uw.numCols()
2931 <<
", m_Smat_v_i_spaces.size() = " << m_e->m_Smat_v_i_spaces.size()
2932 <<
", m_Smat_u_is.size() = " << m_j->m_Smat_u_is.size()
2933 <<
", m_Smat_w_is.size() = " << m_s->m_Smat_w_is.size()
2937 this->memoryCheck(95);
2939 m_z->m_tmp_Smat_z.cwSet(0.);
2940 if (m_allOutputsAreScalar) {
2944 m_z->m_tmp_Smat_z.cwSet(0,0,m_e->m_Smat_v);
2945 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal(), m_e->m_Smat_v.numCols(), m_j->m_Smat_u);
2946 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal(), m_e->m_Smat_v.numCols()+m_j->m_Smat_u.numCols(),m_j->m_Smat_uw);
2947 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal()+m_j->m_Smat_u.numRowsLocal(),m_e->m_Smat_v.numCols(), m_j->m_Smat_uw_t);
2948 m_z->m_tmp_Smat_z.cwSet(m_e->m_Smat_v.numRowsLocal()+m_j->m_Smat_u.numRowsLocal(),m_e->m_Smat_v.numCols()+m_j->m_Smat_u.numCols(),m_s->m_Smat_w);
2951 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2952 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_z(2)"
2953 <<
", outerCounter = " << outerCounter
2960 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
2963 const P_V& input_1lambdaEtaVec,
2964 const P_V& input_2lambdaWVec,
2965 const P_V& input_3rhoWVec,
2966 const P_V& input_4lambdaSVec,
2967 const P_V& input_8thetaVec,
2968 unsigned int outerCounter)
2970 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2971 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_w_hat()"
2972 <<
", outerCounter = " << outerCounter
2976 unsigned int initialPos = 0;
2977 for (
unsigned int i = 0; i < m_s->m_Smat_w_is.size(); ++i) {
2978 input_3rhoWVec.cwExtract(initialPos,m_s->m_tmp_rho_w_vec);
2979 initialPos += m_s->m_tmp_rho_w_vec.sizeLocal();
2980 m_s->m_Rmat_w_is[i]->cwSet(0.);
2981 this->fillR_formula1_for_Sigma_w(m_s->m_paper_xs_asterisks_standard,
2982 m_s->m_paper_ts_asterisks_standard,
2983 m_s->m_tmp_rho_w_vec,
2984 *(m_s->m_Rmat_w_is[i]),
2987 m_s->m_Smat_w_is[i]->cwSet(0.);
2988 *(m_s->m_Smat_w_is[i]) = (1./input_2lambdaWVec[i]) * *(m_s->m_Rmat_w_is[i]);
2989 for (
unsigned int j = 0; j < m_s->m_Smat_w_is[i]->numRowsLocal(); ++j) {
2990 (*(m_s->m_Smat_w_is[i]))(j,j) += 1/m_s->m_tmp_4lambdaSVec[i];
2993 m_s->m_Smat_w.cwSet(0.);
2994 m_s->m_Smat_w.fillWithBlocksDiagonally(0,0,m_s->m_Smat_w_is,
true,
true);
2995 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
2996 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_w_hat()"
2997 <<
", outerCounter = " << outerCounter
2998 <<
": finished instantiating 'm_Smat_w'"
3002 if (m_allOutputsAreScalar) {
3006 m_s->m_Smat_w_hat = m_s->m_Smat_w + (1./input_1lambdaEtaVec[0]) * (*m_s->m_Kt_K_inv);
3009 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3010 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::formSigma_w_hat()"
3011 <<
", outerCounter = " << outerCounter
3018 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3021 const std::vector<const S_V* >& xVecs,
3022 const P_V& rho_v_vec,
3024 unsigned int outerCounter)
3026 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3027 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v()"
3028 <<
", outerCounter = " << outerCounter
3033 for (
unsigned int i = 0; i < xVecs.size(); ++i) {
3036 queso_require_msg(!((rho_v_vec.sizeLocal() == 0) || (rho_v_vec.sizeLocal() > m_s->m_paper_p_x)),
"rho_v_vec.sizeLocal() is wrong");
3040 S_V vecI(*(xVecs[0]));
3041 S_V vecJ(*(xVecs[0]));
3042 for (
unsigned int i = 0; i < m_e->m_paper_n; ++i) {
3044 for (
unsigned int j = 0; j < m_e->m_paper_n; ++j) {
3047 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3048 double diffTerm = vecI[
k] - vecJ[
k];
3049 Rmat(i,j) *= std::pow(rho_v_vec[
k],4.*diffTerm*diffTerm);
3050 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
3051 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v()"
3052 <<
", outerCounter = " << outerCounter
3056 <<
", vecI[k] = " << vecI[
k]
3057 <<
", vecJ[k] = " << vecJ[
k]
3058 <<
", diffTerm = " << diffTerm
3059 <<
", rho_v_vec[k] = " << rho_v_vec[
k]
3063 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
3064 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v()"
3065 <<
", outerCounter = " << outerCounter
3068 <<
", Rmat(i,j) = " << Rmat(i,j)
3074 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3075 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v()"
3076 <<
", outerCounter = " << outerCounter
3083 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3086 const std::vector<const S_V* >& xVecs,
3088 const P_V& rho_w_vec,
3090 unsigned int outerCounter)
3092 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3093 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_u()"
3094 <<
", outerCounter = " << outerCounter
3099 for (
unsigned int i = 0; i < xVecs.size(); ++i) {
3107 S_V vecI(*(xVecs[0]));
3108 S_V vecJ(*(xVecs[0]));
3109 for (
unsigned int i = 0; i < m_e->m_paper_n; ++i) {
3111 for (
unsigned int j = 0; j < m_e->m_paper_n; ++j) {
3114 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3115 double diffTerm = vecI[
k] - vecJ[
k];
3116 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3121 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3122 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_u()"
3123 <<
", outerCounter = " << outerCounter
3130 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3133 const std::vector<const S_V* >& xVecs,
3134 const std::vector<const P_V* >& tVecs,
3135 const P_V& rho_w_vec,
3137 unsigned int outerCounter)
3139 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3140 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w()"
3141 <<
", outerCounter = " << outerCounter
3146 for (
unsigned int i = 0; i < xVecs.size(); ++i) {
3150 for (
unsigned int i = 0; i < tVecs.size(); ++i) {
3157 S_V xVecI(*(xVecs[0]));
3158 S_V xVecJ(*(xVecs[0]));
3159 P_V tVecI(*(tVecs[0]));
3160 P_V tVecJ(*(tVecs[0]));
3161 for (
unsigned int i = 0; i < m_s->m_paper_m; ++i) {
3162 xVecI = *(xVecs[i]);
3163 tVecI = *(tVecs[i]);
3164 for (
unsigned int j = 0; j < m_s->m_paper_m; ++j) {
3165 xVecJ = *(xVecs[j]);
3166 tVecJ = *(tVecs[j]);
3168 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3169 double diffTerm = xVecI[
k] - xVecJ[
k];
3170 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3172 for (
unsigned int k = 0;
k < m_s->m_paper_p_t; ++
k) {
3173 double diffTerm = tVecI[
k] - tVecJ[
k];
3174 Rmat(i,j) *= std::pow(rho_w_vec[m_s->m_paper_p_x+
k],4.*diffTerm*diffTerm);
3179 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3180 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w()"
3181 <<
", outerCounter = " << outerCounter
3188 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3191 const std::vector<const S_V* >& xVecs1,
3193 const std::vector<const S_V* >& xVecs2,
3194 const std::vector<const P_V* >& tVecs2,
3195 const P_V& rho_w_vec,
3197 unsigned int outerCounter)
3199 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3200 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_uw()"
3201 <<
", outerCounter = " << outerCounter
3206 for (
unsigned int i = 0; i < xVecs1.size(); ++i) {
3211 for (
unsigned int i = 0; i < xVecs2.size(); ++i) {
3215 for (
unsigned int i = 0; i < tVecs2.size(); ++i) {
3222 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3223 *m_env.subDisplayFile() <<
"In GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_uw()"
3224 <<
", outerCounter = " << outerCounter
3228 S_V xVecI(*(xVecs1[0]));
3229 S_V xVecJ(*(xVecs2[0]));
3231 P_V tVecJ(*(tVecs2[0]));
3232 for (
unsigned int i = 0; i < m_e->m_paper_n; ++i) {
3233 xVecI = *(xVecs1[i]);
3235 for (
unsigned int j = 0; j < m_s->m_paper_m; ++j) {
3236 xVecJ = *(xVecs2[j]);
3237 tVecJ = *(tVecs2[j]);
3239 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3240 double diffTerm = xVecI[
k] - xVecJ[
k];
3241 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3243 for (
unsigned int k = 0;
k < m_s->m_paper_p_t; ++
k) {
3244 double diffTerm = tVecI[
k] - tVecJ[
k];
3245 Rmat(i,j) *= std::pow(rho_w_vec[m_s->m_paper_p_x+
k],4.*diffTerm*diffTerm);
3250 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3251 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_uw()"
3252 <<
", outerCounter = " << outerCounter
3259 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3262 const std::vector<const S_V* >& xVecs1,
3263 const std::vector<const P_V* >& tVecs1,
3266 const P_V& rho_v_vec,
3268 unsigned int outerCounter)
3270 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3271 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v_hat_v_asterisk()"
3272 <<
", outerCounter = " << outerCounter
3277 for (
unsigned int i = 0; i < xVecs1.size(); ++i) {
3281 for (
unsigned int i = 0; i < tVecs1.size(); ++i) {
3286 queso_require_msg(!((rho_v_vec.sizeLocal() == 0) || (rho_v_vec.sizeLocal() > m_s->m_paper_p_x)),
"rho_v_vec.sizeLocal() is wrong");
3290 S_V xVecI(*(xVecs1[0]));
3292 P_V tVecI(*(tVecs1[0]));
3294 for (
unsigned int i = 0; i < m_e->m_paper_n; ++i) {
3295 xVecI = *(xVecs1[i]);
3296 tVecI = *(tVecs1[i]);
3297 for (
unsigned int j = 0; j < 1; ++j) {
3302 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3303 double diffTerm = xVecI[
k] - xVecJ[
k];
3304 Rmat(i,j) *= std::pow(rho_v_vec[
k],4.*diffTerm*diffTerm);
3308 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3309 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula2_for_Sigma_v_hat_v_asterisk()"
3310 <<
", outerCounter = " << outerCounter
3317 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3320 const std::vector<const S_V* >& xVecs1,
3321 const std::vector<const P_V* >& tVecs1,
3324 const P_V& rho_w_vec,
3326 unsigned int outerCounter)
3328 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3329 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_u_hat_u_asterisk()"
3330 <<
", outerCounter = " << outerCounter
3334 for (
unsigned int i = 0; i < xVecs1.size(); ++i) {
3338 for (
unsigned int i = 0; i < tVecs1.size(); ++i) {
3347 S_V xVecI(*(xVecs1[0]));
3349 P_V tVecI(*(tVecs1[0]));
3351 for (
unsigned int i = 0; i < m_s->m_paper_m; ++i) {
3352 xVecI = *(xVecs1[i]);
3353 tVecI = *(tVecs1[i]);
3354 for (
unsigned int j = 0; j < 1; ++j) {
3359 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3360 double diffTerm = xVecI[
k] - xVecJ[
k];
3361 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3363 for (
unsigned int k = 0;
k < m_s->m_paper_p_t; ++
k) {
3364 double diffTerm = tVecI[
k] - tVecJ[
k];
3365 Rmat(i,j) *= std::pow(rho_w_vec[m_s->m_paper_p_x+
k],4.*diffTerm*diffTerm);
3369 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3370 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_u_hat_u_asterisk()"
3371 <<
", outerCounter = " << outerCounter
3378 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3381 const std::vector<const S_V* >& xVecs1,
3382 const std::vector<const P_V* >& tVecs1,
3385 const P_V& rho_w_vec,
3387 unsigned int outerCounter)
3389 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3390 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w_hat_u_asterisk()"
3391 <<
", outerCounter = " << outerCounter
3395 for (
unsigned int i = 0; i < xVecs1.size(); ++i) {
3399 for (
unsigned int i = 0; i < tVecs1.size(); ++i) {
3408 S_V xVecI(*(xVecs1[0]));
3410 P_V tVecI(*(tVecs1[0]));
3412 for (
unsigned int i = 0; i < m_s->m_paper_m; ++i) {
3413 xVecI = *(xVecs1[i]);
3414 tVecI = *(tVecs1[i]);
3415 for (
unsigned int j = 0; j < 1; ++j) {
3420 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3421 double diffTerm = xVecI[
k] - xVecJ[
k];
3422 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3424 for (
unsigned int k = 0;
k < m_s->m_paper_p_t; ++
k) {
3425 double diffTerm = tVecI[
k] - tVecJ[
k];
3426 Rmat(i,j) *= std::pow(rho_w_vec[m_s->m_paper_p_x+
k],4.*diffTerm*diffTerm);
3430 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3431 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w_hat_u_asterisk()"
3432 <<
", outerCounter = " << outerCounter
3439 template <
class S_V,
class S_M,
class D_V,
class D_M,
class P_V,
class P_M,
class Q_V,
class Q_M>
3442 const std::vector<const S_V* >& xVecs1,
3443 const std::vector<const P_V* >& tVecs1,
3446 const P_V& rho_w_vec,
3448 unsigned int outerCounter)
3450 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3451 *m_env.subDisplayFile() <<
"Entering GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w_hat_w_asterisk()"
3452 <<
", outerCounter = " << outerCounter
3457 for (
unsigned int i = 0; i < xVecs1.size(); ++i) {
3461 for (
unsigned int i = 0; i < tVecs1.size(); ++i) {
3470 S_V xVecI(*(xVecs1[0]));
3472 P_V tVecI(*(tVecs1[0]));
3474 for (
unsigned int i = 0; i < m_s->m_paper_m; ++i) {
3475 xVecI = *(xVecs1[i]);
3476 tVecI = *(tVecs1[i]);
3477 for (
unsigned int j = 0; j < 1; ++j) {
3481 for (
unsigned int k = 0;
k < m_s->m_paper_p_x; ++
k) {
3482 double diffTerm = xVecI[
k] - xVecJ[
k];
3483 Rmat(i,j) *= std::pow(rho_w_vec[
k],4.*diffTerm*diffTerm);
3485 for (
unsigned int k = 0;
k < m_s->m_paper_p_t; ++
k) {
3486 double diffTerm = tVecI[
k] - tVecJ[
k];
3487 Rmat(i,j) *= std::pow(rho_w_vec[m_s->m_paper_p_x+
k],4.*diffTerm*diffTerm);
3492 if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 4)) {
3493 *m_env.subDisplayFile() <<
"Leaving GpmsaComputerModel<S_V,S_M,D_V,D_M,P_V,P_M,Q_V,Q_M>::fillR_formula1_for_Sigma_w_hat_w_asterisk()"
3494 <<
", outerCounter = " << outerCounter
const GcmOptionsValues * m_optionsObj
GcmJointInfo< S_V, S_M, D_V, D_M, P_V, P_M, Q_V, Q_M > * m_j
const BaseVectorRV< P_V, P_M > & totalPriorRv() const
A class for handling sequential draws (sampling) from probability density distributions.
void predictSimulationOutputs(const S_V &newScenarioVec, const P_V &newParameterVec, Q_V &simulationOutputMeanVec)
void memoryCheck(unsigned int codePositionId)
void setPositionValues(unsigned int posId, const V &vec)
Set the values in vec at position posId of the sequence.
GcmJointTildeInfo< S_V, S_M, D_V, D_M, P_V, P_M, Q_V, Q_M > * m_jt
double MiscGetEllapsedSeconds(struct timeval *timeval0)
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
BaseScalarFunction< P_V, P_M > * m_likelihoodFunction
bool m_thereIsExperimentalData
std::string optionsInputFileName() const
Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the...
std::set< unsigned int > m_dataOutputAllowedSet
std::string m_dataOutputFileName
void fillR_formula1_for_Sigma_w_hat_u_asterisk(const std::vector< const S_V * > &xVecs1, const std::vector< const P_V * > &tVecs1, const S_V &xVec2, const P_V &tVec2, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
void formSigma_z_hat(const P_V &input_1lambdaEtaVec, const P_V &input_2lambdaWVec, const P_V &input_3rhoWVec, const P_V &input_4lambdaSVec, const P_V &input_5lambdaYVec, const P_V &input_6lambdaVVec, const P_V &input_7rhoVVec, const P_V &input_8thetaVec, unsigned int outerCounter)
VectorSet< V, M > * InstantiateIntersection(const VectorSet< V, M > &domain1, const VectorSet< V, M > &domain2)
This method calculates the intersection of domain1 and domain2.
unsigned int m_priorSeqNumSamples
A class for handling generic scalar functions.
void calibrateWithBayesMLSampling()
unsigned int subSequenceSize() const
Size of the sub-sequence of vectors.
void fillR_formula1_for_Sigma_uw(const std::vector< const S_V * > &xVecs1, const P_V &tVec1, const std::vector< const S_V * > &xVecs2, const std::vector< const P_V * > &tVecs2, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
#define queso_require_equal_to_msg(expr1, expr2, msg)
GcmSimulationInfo< S_V, S_M, P_V, P_M, Q_V, Q_M > * m_s
void calibrateWithLanlMcmc(const MhOptionsValues *alternativeOptionsValues, const P_V &totalInitialValues, const P_M *totalInitialProposalCovMatrix)
const std::vector< unsigned int > & n_ys_transformed() const
void ComputeConditionalGaussianVectorRV(const V &muVec1, const V &muVec2, const M &sigmaMat11, const M &sigmaMat12, const M &sigmaMat21, const M &sigmaMat22, const V &sampleVec2, V &muVec1_cond_on_2, M &sigmaMat11_cond_on_2)
unsigned int subId() const
Access function to the number of each sub-environment Id: m_subId.
unsigned int numExperiments() const
A templated class that represents a Metropolis-Hastings generator of samples.
void formSigma_z_tilde_hat(const P_V &input_1lambdaEtaVec, const P_V &input_2lambdaWVec, const P_V &input_3rhoWVec, const P_V &input_4lambdaSVec, const P_V &input_5lambdaYVec, const P_V &input_6lambdaVVec, const P_V &input_7rhoVVec, const P_V &input_8thetaVec, unsigned int outerCounter)
GcmTotalInfo< S_V, S_M, D_V, D_M, P_V, P_M, Q_V, Q_M > * m_t
void calibrateWithBayesMetropolisHastings(const MhOptionsValues *alternativeOptionsValues, const P_V &totalInitialValues, const P_M *totalInitialProposalCovMatrix)
GcmSimulationTildeInfo< S_V, S_M, P_V, P_M, Q_V, Q_M > * m_st
void formSigma_w_hat(const P_V &input_1lambdaEtaVec, const P_V &input_2lambdaWVec, const P_V &input_3rhoWVec, const P_V &input_4lambdaSVec, const P_V &input_8thetaVec, unsigned int outerCounter)
FilePtrSetStruct m_dataOutputFilePtrSet
void fillR_formula1_for_Sigma_u(const std::vector< const S_V * > &xVecs, const P_V &tVec, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
GcmExperimentInfo< S_V, S_M, D_V, D_M, P_V, P_M > * m_e
static double staticLikelihoodRoutine(const P_V &totalValues, const P_V *totalDirection, const void *functionDataPtr, P_V *gradVector, P_M *hessianMatrix, P_V *hessianEffect)
#define queso_require_equal_to(expr1, expr2)
void fillR_formula1_for_Sigma_w_hat_w_asterisk(const std::vector< const S_V * > &xVecs1, const std::vector< const P_V * > &tVecs1, const S_V &xVec2, const P_V &tVec2, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
GcmZInfo< S_V, S_M, D_V, D_M, P_V, P_M, Q_V, Q_M > * m_z
const VectorSpace< S_V, S_M > & scenarioSpace() const
void generateSequence(BaseVectorSequence< P_V, P_M > &workingChain, ScalarSequence< double > *workingLogLikelihoodValues, ScalarSequence< double > *workingLogTargetValues)
Method to generate the chain.
std::ofstream * ofsVar
Provides a stream interface to write data to files.
void unifiedWriteContents(const std::string &fileName, const std::string &fileType) const
bool openOutputFile(const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds, bool writeOver, FilePtrSetStruct &filePtrSet) const
Opens an output file for each sub-environment that was chosen to send data to the file...
double scalarProduct(const GslVector &x, const GslVector &y)
const BaseEnvironment & m_env
const VectorSpace< P_V, P_M > & unique_vu_space() const
unsigned int displayVerbosity() const
void print(std::ostream &os) const
#define UQ_FILE_EXTENSION_FOR_MATLAB_FORMAT
double likelihoodRoutine(const P_V &totalValues, const P_V *totalDirection, const void *functionDataPtr, P_V *gradVector, P_M *hessianMatrix, P_V *hessianEffect)
#define queso_require_msg(asserted, msg)
void fillR_formula1_for_Sigma_w(const std::vector< const S_V * > &xVecs, const std::vector< const P_V * > &tVecs, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
unsigned int MiscUintDebugMessage(unsigned int value, const char *message)
bool m_useTildeLogicForRankDefficientC
void ComputeCovCorrMatricesBetweenVectorSequences(const BaseVectorSequence< P_V, P_M > &subPSeq, const BaseVectorSequence< Q_V, Q_M > &subQSeq, unsigned int subNumSamples, P_M &pqCovMatrix, P_M &pqCorrMatrix)
const V & unifiedMeanPlain() const
Finds the mean value of the unified sequence.
const GenericVectorRV< P_V, P_M > & totalPostRv() const
GpmsaComputerModel(const char *prefix, const GcmOptionsValues *alternativeOptionsValues, const SimulationStorage< S_V, S_M, P_V, P_M, Q_V, Q_M > &simulationStorage, const SimulationModel< S_V, S_M, P_V, P_M, Q_V, Q_M > &simulationModel, const ExperimentStorage< S_V, S_M, D_V, D_M > *experimentStorage, const ExperimentModel< S_V, S_M, D_V, D_M > *experimentModel, const BaseVectorRV< P_V, P_M > *thetaPriorRv)
bool m_allOutputsAreScalar
void predictVUsAtGridPoint(const S_V &newScenarioVec, const P_V &newParameterVec, P_V &vuMeanVec, P_M &vuCovMatrix, P_V &vMeanVec, P_M &vCovMatrix, P_V &uMeanVec, P_M &uCovMatrix)
#define queso_error_msg(msg)
This class provides options for the Metropolis-Hastings generator of samples if no input file is avai...
void formSigma_z(const P_V &input_2lambdaWVec, const P_V &input_3rhoWVec, const P_V &input_4lambdaSVec, const P_V &input_6lambdaVVec, const P_V &input_7rhoVVec, const P_V &input_8thetaVec, unsigned int outerCounter)
unsigned int numBasis() const
void fillR_formula1_for_Sigma_u_hat_u_asterisk(const std::vector< const S_V * > &xVecs1, const std::vector< const P_V * > &tVecs1, const S_V &xVec2, const P_V &tVec2, const P_V &rho_w_vec, D_M &Rmat, unsigned int outerCounter)
void fillR_formula2_for_Sigma_v(const std::vector< const S_V * > &xVecs, const P_V &rho_v_vec, D_M &Rmat, unsigned int outerCounter)
bool m_cMatIsRankDefficient
void generateSequence(BaseVectorSequence< P_V, P_M > &workingChain, ScalarSequence< double > *workingLogLikelihoodValues, ScalarSequence< double > *workingLogTargetValues)
Method to generate the chain.
A templated class that represents a Multilevel generator of samples.
void predictWsAtGridPoint(const S_V &newScenarioVec, const P_V &newParameterVec, const P_V *forcingSampleVecForDebug, P_V &wMeanVec, P_M &wCovMatrix)
void fillR_formula2_for_Sigma_v_hat_v_asterisk(const std::vector< const S_V * > &xVecs1, const std::vector< const P_V * > &tVecs1, const S_V &xVec2, const P_V &tVec2, const P_V &rho_v_vec, D_M &Rmat, unsigned int outerCounter)
unsigned int numBasis() const
GcmZTildeInfo< S_V, S_M, D_V, D_M, P_V, P_M, Q_V, Q_M > * m_zt
const VectorSpace< P_V, P_M > & totalSpace() const
void predictExperimentResults(const S_V &newScenarioVec, const D_M &newKmat_interp, const D_M &newDmat, D_V &simulationOutputMeanVec, D_V &discrepancyMeanVec)
unsigned int dimLocal() const