25 constexpr size_t chunksize{1001};
28 std::vector<double> timepoints{};
29 timepoints.resize(chunksize);
30 linspace(timepoints, 0.0, stepsize);
31 std::vector<double> probabilities{checker.getProbabilitiesAtTimepoints(timepoints)};
36 double y1{0.0}, y2{0.0}, y3{1.0 - probabilities[0]};
38 auto currentStepsize{stepsize};
39 while (std::abs(delta) > precision) {
40 if (i + 1 >= probabilities.size()) {
41 double const start{timepoints.back()};
43 if (currentStepsize < 1e-3) {
46 linspace(timepoints, start, currentStepsize);
47 probabilities = checker.getProbabilitiesAtTimepoints(timepoints);
52 y2 = 1.0 - probabilities[i];
53 y3 = 1.0 - probabilities[i + 1];
56 delta = y1 + 4.0 * y2 + y3;
58 delta *= currentStepsize;
66 constexpr size_t chunksize{1001};
69 std::vector<double> timepoints{};
70 timepoints.resize(
static_cast<size_t>(1 / stepsize) - 1);
71 for (
size_t i{0}; i < timepoints.size(); ++i) {
72 double x = (i + 1) * stepsize;
80 for (
size_t i{0}; i < probabilities.size(); ++i) {
81 double x{(i + 1) * stepsize};
84 auto &p{probabilities[i]};
90 rval -= (probabilities.front() + probabilities.back()) / 2;
double MTTFHelperProceeding(std::shared_ptr< storm::dft::storage::DFT< double > > const dft, double const stepsize, double const precision)
Tries to numerically approximate the mttf of the given dft by integrating 1 - cdf(dft) with Simpson's...