void InitializeSimulations(int argc, char **argv) { int p = MPI::COMM_WORLD.Get_size(); int id = MPI::COMM_WORLD.Get_rank(); std::string simType = argv[2]; ESimulationType simT; if (simType == "MC") { simT = ESimulationType::MonteCarlo; } else if (simType == "LD") { simT = ESimulationType::LangevinDynamics; } else { std::cout << "Unknown simulation type " << simType << ". Exiting." << std::endl; return; } std::string simDataFileName = argv[1]; if (id == p-1) { InitTar(simDataFileName); } std::string samples = argv[3]; for (int i = 1; i <= std::stoi(samples); i++) { std::ifstream simDataFileStream(simDataFileName); cereal::JSONInputArchive simDataArchieve(simDataFileStream); std::shared_ptr<CBaseSimCtrl> sim; switch (simT) { case MonteCarlo: { CMonteCarloSimParams data; data.load(simDataArchieve); sim = std::make_shared<CMonteCarloSimCtrl>(CMonteCarloSimCtrl(data)); break; }; case LangevinDynamics: { CLangevinSimParams data; data.load(simDataArchieve); sim = std::make_shared<CLangevinSimCtrl>(CLangevinSimCtrl(data)); break; }; } std::string fullSaveFileName = "FullData_" + std::to_string(i) + "_" + simDataFileName; std::string miniSaveFileName = "MiniData_" + std::to_string(i) + "_" + simDataFileName; std::string pictSaveFileName = "PictData_" + std::to_string(i) + "_" + simDataFileName + ".eps"; SaveDataToFile(sim, fullSaveFileName, miniSaveFileName, simDataFileName, 0); RunSimulations(sim, fullSaveFileName, miniSaveFileName, pictSaveFileName, simDataFileName); printf("Sample N %i\n", i); } if (id == p-1) { FinishTar(simDataFileName); } }
int main() { SieveOfEratosthenes(Primes, 1000); srand(time(NULL)); char croaks[] = "PPPPNNPPPNPPNPN"; RunSimulations(); bignum numerator; bigset(numerator, 119); bignum denominator; bigset(denominator, 300); bignum temp1; bigset(temp1, 190); bignum temp2; bigset(temp2, 405); bignum temp3; biginit(temp3); bignum temp4; biginit(temp4); bignum temp5; biginit(temp5); int i; for(i = 1; i < 15; i++) { bigmulint(temp3,bigadd(temp3, temp1, temp2), 7695); bigsetbig(temp4, temp1); bigsetbig(temp5, temp2); bigadd(temp1, bigmulint(temp1, temp1, 81), bigmulint(temp5, temp5, 1805)); bigadd(temp2, bigmulint(temp2, temp2, 5890), bigmulint(temp4, temp4, 7614)); if(croaks[i] == 'P') bigmulint(temp1, temp1, 2); else bigmulint(temp2, temp2, 2); bigmul(numerator, numerator, bigadd(temp4, temp1, temp2)); bigmul(denominator, denominator, bigmulint(temp3,temp3,3)); char string1[1000]; char string2[1000]; biggetstr(string1, numerator); biggetstr(string2, denominator); printf("%s/%s\n", string1, string2); } char string1[1000]; char string2[1000]; biggetstr(string1, numerator); biggetstr(string2, denominator); printf("%s/%s\n", string1, string2); return 0; }