diff --git a/CPP/analyzer.cpp b/CPP/analyzer.cpp index 9d2659e194aff612ba7e9c2ed5ab69f45c7e5863..fef345f8226c6e858e96ec0572d2af4783b521b6 100644 --- a/CPP/analyzer.cpp +++ b/CPP/analyzer.cpp @@ -8,14 +8,14 @@ void Analyzer::append(const double & x){ cumulative_square += x*x; } -double Analyzer::get_average_cost(){ +long double Analyzer::get_average_cost(){ if(cumulative_cost.empty()) throw std::runtime_error("List is empty"); return cumulative_cost.back()/cumulative_cost.size(); } -double Analyzer::get_variance(){ - double mean, mean_square; +long double Analyzer::get_variance(){ + long double mean, mean_square; mean = get_average_cost(); mean_square = mean * mean; return cumulative_square - mean_square; diff --git a/CPP/analyzer.hpp b/CPP/analyzer.hpp index 7eb9d04057b3e99e2d099cefe40c2ab68f683161..4772ff0ef47a9ee59603733e690feed8f52dfcaf 100644 --- a/CPP/analyzer.hpp +++ b/CPP/analyzer.hpp @@ -31,7 +31,7 @@ public: Complexité en temps/espace, meilleur cas : O(1) @returns la somme des coûts enregistrés dans cette analyse. */ - double get_total_cost(){ + long double get_total_cost(){ return cumulative_cost.back(); } @@ -41,7 +41,7 @@ public: @param pos est l'indice de l'opération pour laquelle on veut connaître le coût amorti. @returns le coût amorti d'une opération. */ - double get_amortized_cost(size_t pos){ + long double get_amortized_cost(size_t pos){ return (pos)? cumulative_cost.at(pos)/pos : cumulative_cost.at(pos); } @@ -50,21 +50,21 @@ public: Complexité en temps/espace, meilleur cas : O(1) @returns la moyenne des coûts de toutes les opérations enregistrées dans l'analyse. */ - double get_average_cost(); + long double get_average_cost(); /** Renvoie la variance des coûts de toutes les opérations enregistrées dans l'analyse. Complexité en temps/espace, meilleur cas : O(1) @returns la variance des coûts de toutes les opérations enregistrées dans l'analyse. */ - double get_variance(); + long double get_variance(); /** Renvoie l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse. Complexité en temps/espace, meilleur cas : O(1) @returns l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse. */ - double get_standard_deviation(){ + long double get_standard_deviation(){ return std::sqrt(get_variance()); }