int main(int argc, char ** argv) { MPI_Init(&argc, &argv); QUESO::FullEnvironment env(MPI_COMM_WORLD, argv[1], "", NULL); QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> paramSpace(env, "param_", 2, NULL); double min_val = 0.0; double max_val = 1.0; QUESO::GslVector paramMins(paramSpace.zeroVector()); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); // Model parameter between 0 and 1 paramMins[0] = 0.0; paramMaxs[0] = 1.0; // Hyperparameter (multiplicative coefficient of observational error // covariance matrix) between 0.0 and \infty paramMins[1] = 0.0; paramMaxs[1] = INFINITY; QUESO::BoxSubset<QUESO::GslVector, QUESO::GslMatrix> paramDomain("param_", paramSpace, paramMins, paramMaxs); QUESO::UniformVectorRV<QUESO::GslVector, QUESO::GslMatrix> priorRv("prior_", paramDomain); // Set up observation space QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> obsSpace(env, "obs_", 2, NULL); // Fill up observation vector QUESO::GslVector observations(obsSpace.zeroVector()); observations[0] = 1.0; observations[1] = 1.0; // Fill up covariance 'matrix' QUESO::GslMatrix covariance(obsSpace.zeroVector()); covariance(0, 0) = 1.0; covariance(0, 1) = 0.0; covariance(1, 0) = 0.0; covariance(1, 1) = 1.0; // Pass in observations to Gaussian likelihood object Likelihood<QUESO::GslVector, QUESO::GslMatrix> lhood("llhd_", paramDomain, observations, covariance); QUESO::GenericVectorRV<QUESO::GslVector, QUESO::GslMatrix> postRv("post_", paramSpace); QUESO::StatisticalInverseProblem<QUESO::GslVector, QUESO::GslMatrix> ip("", NULL, priorRv, lhood, postRv); QUESO::GslVector paramInitials(paramSpace.zeroVector()); paramInitials[0] = 0.0; QUESO::GslMatrix proposalCovMatrix(paramSpace.zeroVector()); for (unsigned int i = 0; i < 1; i++) { proposalCovMatrix(i, i) = 0.1; } ip.solveWithBayesMetropolisHastings(NULL, paramInitials, &proposalCovMatrix); MPI_Finalize(); return 0; }
int main(int argc, char ** argv) { #ifdef QUESO_HAS_MPI MPI_Init(&argc, &argv); QUESO::FullEnvironment env(MPI_COMM_WORLD, argv[1], "", NULL); #else QUESO::FullEnvironment env(argv[1], "", NULL); #endif QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> paramSpace(env, "param_", 1, NULL); double min_val = 0.0; double max_val = 1.0; QUESO::GslVector paramMins(paramSpace.zeroVector()); paramMins.cwSet(min_val); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); paramMaxs.cwSet(max_val); QUESO::BoxSubset<QUESO::GslVector, QUESO::GslMatrix> paramDomain("param_", paramSpace, paramMins, paramMaxs); QUESO::UniformVectorRV<QUESO::GslVector, QUESO::GslMatrix> priorRv("prior_", paramDomain); // Set up observation space QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> obsSpace(env, "obs_", 2, NULL); // Fill up observation vector QUESO::GslVector observations(obsSpace.zeroVector()); observations[0] = 1.0; observations[1] = 1.0; // Pass in observations to Gaussian likelihood object Likelihood<QUESO::GslVector, QUESO::GslMatrix> lhood("llhd_", paramDomain, observations, 1.0); QUESO::GenericVectorRV<QUESO::GslVector, QUESO::GslMatrix> postRv("post_", paramSpace); QUESO::StatisticalInverseProblem<QUESO::GslVector, QUESO::GslMatrix> ip("", NULL, priorRv, lhood, postRv); QUESO::GslVector paramInitials(paramSpace.zeroVector()); paramInitials[0] = 0.0; QUESO::GslMatrix proposalCovMatrix(paramSpace.zeroVector()); for (unsigned int i = 0; i < 1; i++) { proposalCovMatrix(i, i) = 0.1; } ip.solveWithBayesMetropolisHastings(NULL, paramInitials, &proposalCovMatrix); #ifdef QUESO_HAS_MPI MPI_Finalize(); #endif return 0; }
int main(int argc, char ** argv) { MPI_Init(&argc, &argv); QUESO::FullEnvironment env(MPI_COMM_WORLD, "test_gaussian_likelihoods/queso_input.txt", "", NULL); QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> paramSpace(env, "param_", 1, NULL); double min_val = -INFINITY; double max_val = INFINITY; QUESO::GslVector paramMins(paramSpace.zeroVector()); paramMins.cwSet(min_val); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); paramMaxs.cwSet(max_val); QUESO::BoxSubset<QUESO::GslVector, QUESO::GslMatrix> paramDomain("param_", paramSpace, paramMins, paramMaxs); // Set up observation space QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> obsSpace(env, "obs_", 2, NULL); // Fill up observation vector QUESO::GslVector observations(obsSpace.zeroVector()); observations[0] = 1.0; observations[1] = 1.0; // Fill up covariance 'matrix' QUESO::GslVector covariance(obsSpace.zeroVector()); covariance[0] = 1.0; covariance[1] = 2.0; // Pass in observations to Gaussian likelihood object Likelihood<QUESO::GslVector, QUESO::GslMatrix> lhood("llhd_", paramDomain, observations, covariance); double lhood_value; double truth_value; QUESO::GslVector point(paramSpace.zeroVector()); point[0] = 0.0; lhood_value = lhood.actualValue(point, NULL, NULL, NULL, NULL); truth_value = std::exp(-3.0); if (std::abs(lhood_value - truth_value) > TOL) { std::cerr << "Scalar Gaussian test case failure." << std::endl; std::cerr << "Computed likelihood value is: " << lhood_value << std::endl; std::cerr << "Likelihood value should be: " << truth_value << std::endl; queso_error(); } point[0] = -2.0; lhood_value = lhood.actualValue(point, NULL, NULL, NULL, NULL); truth_value = 1.0; if (std::abs(lhood_value - truth_value) > TOL) { std::cerr << "Scalar Gaussian test case failure." << std::endl; std::cerr << "Computed likelihood value is: " << lhood_value << std::endl; std::cerr << "Likelihood value should be: " << truth_value << std::endl; queso_error(); } MPI_Finalize(); return 0; }
int main(int argc, char ** argv) { std::string inputFileName = "test_gaussian_likelihoods/queso_input.txt"; const char * test_srcdir = std::getenv("srcdir"); if (test_srcdir) inputFileName = test_srcdir + ('/' + inputFileName); #ifdef QUESO_HAS_MPI MPI_Init(&argc, &argv); QUESO::FullEnvironment env(MPI_COMM_WORLD, inputFileName, "", NULL); #else QUESO::FullEnvironment env(inputFileName, "", NULL); #endif QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> paramSpace(env, "param_", 1, NULL); double min_val = -INFINITY; double max_val = INFINITY; QUESO::GslVector paramMins(paramSpace.zeroVector()); paramMins.cwSet(min_val); QUESO::GslVector paramMaxs(paramSpace.zeroVector()); paramMaxs.cwSet(max_val); QUESO::BoxSubset<QUESO::GslVector, QUESO::GslMatrix> paramDomain("param_", paramSpace, paramMins, paramMaxs); // Set up observation space QUESO::VectorSpace<QUESO::GslVector, QUESO::GslMatrix> obsSpace(env, "obs_", 1, NULL); // Fill up observation vector QUESO::GslVector observations(obsSpace.zeroVector()); observations[0] = 1.0; // Pass in observations to Gaussian likelihood object Likelihood<QUESO::GslVector, QUESO::GslMatrix> lhood("llhd_", paramDomain, observations, 1.0); double lhood_value; double truth_value; QUESO::GslVector point(paramSpace.zeroVector()); point[0] = 0.0; lhood_value = lhood.actualValue(point, NULL, NULL, NULL, NULL); truth_value = std::exp(-2.0); if (std::abs(lhood_value - truth_value) > TOL) { std::cerr << "Scalar Gaussian test case failure." << std::endl; std::cerr << "Computed likelihood value is: " << lhood_value << std::endl; std::cerr << "Likelihood value should be: " << truth_value << std::endl; queso_error(); } point[0] = -2.0; lhood_value = lhood.actualValue(point, NULL, NULL, NULL, NULL); truth_value = 1.0; if (std::abs(lhood_value - truth_value) > TOL) { std::cerr << "Scalar Gaussian test case failure." << std::endl; std::cerr << "Computed likelihood value is: " << lhood_value << std::endl; std::cerr << "Likelihood value should be: " << truth_value << std::endl; queso_error(); } #ifdef QUESO_HAS_MPI MPI_Finalize(); #endif return 0; }