#include <iostream>
#include <vector>
#include <copp/copp.hpp>
int main()
{
std::vector<double> s{0.0, 0.5, 1.0};
std::vector<double> amax{1.0, 1.0, 1.0};
copp::Constraints constraints(1, s.size());
constraints.append_s(s).add_constraint_1st(amax, 0);
copp::solver::reach_set2::Problem problem{
constraints.ref(),
copp::IndexInterval{0, s.size() - 1},
copp::Boundary2{0.0, 0.0},
};
auto reach = copp::solver::reach_set2::bidirectional(problem);
std::cout << "ReachSet2 done.\n";
std::cout << "stations = " << reach.len() << "\n";
std::cout << "a_max(mid) = " << reach.a_max[1] << "\n";
return 0;
}