#include "interval.h" #include #include "plot.h" class Sequence { public: std::vector intervals; int size = 0; double consistency = 1000000; double robustness = 0; std::vector> robustness_to_check = {}; std::vector> consistency_to_check = {}; double start; double end; std::vector cumulative_cost; double initial_cost; bool updated_cumulative = false; bool updated_initial = false; Sequence(std::vector); Sequence(); Sequence copy(); void add_interval(Interval interval); void extend_left(); void extend_right(); void compute_cumulative(); void compute_initial_cost(); double compute_ratio(double t); Plot generate_ratio(double step, double from, double to); double find_minimum(double from, double to, double precision = 1e-6, bool check_end = false); double find_maximum(double from, double to, double precision = 1e-6, bool check_end = false); double get_consistency(double precision = 1e-6); void check_consistency(double from, double to, double precision = 1e-6, bool check_end = false); double get_robustness(double precision = 1e-6); void check_robustness(double from, double to, double precision = 1e-6, bool check_end = false); void display(double step); friend std::ostream& operator<<(std::ostream& os, const Sequence& seq); };