Apply clang-tidy11 to statistics
[alexxy/gromacs.git] / src / gromacs / statistics / statistics.h
index 818bdf317ae14ca2358b479c4d0f416d8643e3ef..0d3378a63edf1dadfeeebf2dc10d1f0308d68e69 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2010,2014,2015,2019, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014,2015,2019,2021, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 typedef struct gmx_stats* gmx_stats_t;
 
 //! Error codes returned by the routines
-enum
+enum class StatisticsStatus : int
 {
-    estatsOK,
-    estatsNO_POINTS,
-    estatsNO_MEMORY,
-    estatsERROR,
-    estatsINVALID_INPUT,
-    estatsNOT_IMPLEMENTED,
-    estatsNR
+    Ok,
+    NoPoints,
+    NoMemory,
+    Error,
+    InvalidInput,
+    NotImplemented,
+    Count
 };
 
 //! Enum for statistical weights
@@ -100,7 +100,7 @@ void gmx_stats_free(gmx_stats_t stats);
  * \param[in] level The sigma level
  * \return error code
  */
-int gmx_stats_remove_outliers(gmx_stats_t stats, double level);
+StatisticsStatus gmx_stats_remove_outliers(gmx_stats_t stats, double level);
 
 /*! \brief
  * Add a point to the data set
@@ -111,7 +111,7 @@ int gmx_stats_remove_outliers(gmx_stats_t stats, double level);
  * \param[in] dy  The error in the y value
  * \return error code
  */
-int gmx_stats_add_point(gmx_stats_t stats, double x, double y, double dx, double dy);
+StatisticsStatus gmx_stats_add_point(gmx_stats_t stats, double x, double y, double dx, double dy);
 
 /*! \brief
  * Add a series of datapoints at once. The arrays dx and dy may
@@ -125,7 +125,7 @@ int gmx_stats_add_point(gmx_stats_t stats, double x, double y, double dx, double
  * \param[in] dy  The error in the y value
  * \return error code
  */
-int gmx_stats_add_points(gmx_stats_t stats, int n, real* x, real* y, real* dx, real* dy);
+StatisticsStatus gmx_stats_add_points(gmx_stats_t stats, int n, real* x, real* y, real* dx, real* dy);
 
 /*! \brief
  * Delivers data points from the statistics.
@@ -146,7 +146,7 @@ int gmx_stats_add_points(gmx_stats_t stats, int n, real* x, real* y, real* dx, r
  * \param[in]  level sigma level (see above)
  * \return error code
  */
-int gmx_stats_get_point(gmx_stats_t stats, real* x, real* y, real* dx, real* dy, real level);
+StatisticsStatus gmx_stats_get_point(gmx_stats_t stats, real* x, real* y, real* dx, real* dy, real level);
 
 /*! \brief
  * Fit the data to y = ax + b, possibly weighted, if uncertainties
@@ -161,7 +161,8 @@ int gmx_stats_get_point(gmx_stats_t stats, real* x, real* y, real* dx, real* dy,
  * \param[out] Rfit correlation coefficient
  * \return error code
  */
-int gmx_stats_get_ab(gmx_stats_t stats, int weight, real* a, real* b, real* da, real* db, real* chi2, real* Rfit);
+StatisticsStatus
+gmx_stats_get_ab(gmx_stats_t stats, int weight, real* a, real* b, real* da, real* db, real* chi2, real* Rfit);
 
 /*! \brief
  * Fit the data to y = ax, possibly weighted, if uncertainties have
@@ -174,7 +175,7 @@ int gmx_stats_get_ab(gmx_stats_t stats, int weight, real* a, real* b, real* da,
  * \param[out] Rfit correlation coefficient
  * \return error code
  */
-int gmx_stats_get_a(gmx_stats_t stats, int weight, real* a, real* da, real* chi2, real* Rfit);
+StatisticsStatus gmx_stats_get_a(gmx_stats_t stats, int weight, real* a, real* da, real* chi2, real* Rfit);
 
 /*! \brief
  * Get the correlation coefficient.
@@ -182,7 +183,7 @@ int gmx_stats_get_a(gmx_stats_t stats, int weight, real* a, real* da, real* chi2
  * \param[out] R the correlation coefficient between the data (x and y) as input to the structure.
  * \return error code
  */
-int gmx_stats_get_corr_coeff(gmx_stats_t stats, real* R);
+StatisticsStatus gmx_stats_get_corr_coeff(gmx_stats_t stats, real* R);
 
 /*! \brief
  * Get the root mean square deviation.
@@ -190,7 +191,7 @@ int gmx_stats_get_corr_coeff(gmx_stats_t stats, real* R);
  * \param[out] rmsd  the root mean square deviation between x and y values.
  * \return error code
  */
-int gmx_stats_get_rmsd(gmx_stats_t stats, real* rmsd);
+StatisticsStatus gmx_stats_get_rmsd(gmx_stats_t stats, real* rmsd);
 
 /*! \brief
  * Get the number of points.
@@ -198,7 +199,7 @@ int gmx_stats_get_rmsd(gmx_stats_t stats, real* rmsd);
  * \param[out] N     number of data points
  * \return error code
  */
-int gmx_stats_get_npoints(gmx_stats_t stats, int* N);
+StatisticsStatus gmx_stats_get_npoints(gmx_stats_t stats, int* N);
 
 /*! \brief
  * Computes and returns the average value.
@@ -206,7 +207,7 @@ int gmx_stats_get_npoints(gmx_stats_t stats, int* N);
  * \param[out] aver  Average value
  * \return error code
  */
-int gmx_stats_get_average(gmx_stats_t stats, real* aver);
+StatisticsStatus gmx_stats_get_average(gmx_stats_t stats, real* aver);
 
 /*! \brief
  * Computes and returns the standard deviation.
@@ -214,7 +215,7 @@ int gmx_stats_get_average(gmx_stats_t stats, real* aver);
  * \param[out] sigma  Standard deviation
  * \return error code
  */
-int gmx_stats_get_sigma(gmx_stats_t stats, real* sigma);
+StatisticsStatus gmx_stats_get_sigma(gmx_stats_t stats, real* sigma);
 
 /*! \brief
  * Computes and returns the standard error.
@@ -222,7 +223,7 @@ int gmx_stats_get_sigma(gmx_stats_t stats, real* sigma);
  * \param[out] error Standard error
  * \return error code
  */
-int gmx_stats_get_error(gmx_stats_t stats, real* error);
+StatisticsStatus gmx_stats_get_error(gmx_stats_t stats, real* error);
 
 /*! \brief
  * Pointers may be null, in which case no assignment will be done.
@@ -232,7 +233,7 @@ int gmx_stats_get_error(gmx_stats_t stats, real* error);
  * \param[out] error Standard error
  * \return error code
  */
-int gmx_stats_get_ase(gmx_stats_t stats, real* aver, real* sigma, real* error);
+StatisticsStatus gmx_stats_get_ase(gmx_stats_t stats, real* aver, real* sigma, real* error);
 
 /*! \brief
  * Dump the x, y, dx, dy data to a text file
@@ -240,7 +241,7 @@ int gmx_stats_get_ase(gmx_stats_t stats, real* aver, real* sigma, real* error);
  * \param[in] fp  File pointer
  * \return error code
  */
-int gmx_stats_dump_xy(gmx_stats_t stats, FILE* fp);
+StatisticsStatus gmx_stats_dump_xy(gmx_stats_t stats, FILE* fp);
 
 /*! \brief
  * Make a histogram of the data present.
@@ -263,19 +264,19 @@ int gmx_stats_dump_xy(gmx_stats_t stats, FILE* fp);
  * \param[out] y see above
  * \return error code
  */
-int gmx_stats_make_histogram(gmx_stats_t stats,
-                             real        binwidth,
-                             int*        nbins,
-                             int         ehisto,
-                             int         normalized,
-                             real**      x,
-                             real**      y);
+StatisticsStatus gmx_stats_make_histogram(gmx_stats_t stats,
+                                          real        binwidth,
+                                          int*        nbins,
+                                          int         ehisto,
+                                          int         normalized,
+                                          real**      x,
+                                          real**      y);
 
-/*! \brief
- * Return message belonging to error code
+/*! \brief Assert that statistics are OK
+ *
  * \param[in] estats error code
  */
-const char* gmx_stats_message(int estats);
+void gmx_stats_message([[maybe_unused]] StatisticsStatus estats);
 
 /****************************************************
  * Some statistics utilities for convenience: useful when a complete data
@@ -290,7 +291,7 @@ const char* gmx_stats_message(int estats);
  * \param[out] a slope
  * \return error code
  */
-int lsq_y_ax(int n, real x[], real y[], real* a);
+StatisticsStatus lsq_y_ax(int n, real x[], real y[], real* a);
 
 /*! \brief
  * Fit a straight line y=ax+b thru the n data points x, y.
@@ -303,11 +304,11 @@ int lsq_y_ax(int n, real x[], real y[], real* a);
  * \param[out] chi2 quality of fit
  * \return error code
  */
-int lsq_y_ax_b(int n, real x[], real y[], real* a, real* b, real* r, real* chi2);
+StatisticsStatus lsq_y_ax_b(int n, real x[], real y[], real* a, real* b, real* r, real* chi2);
 
 /*! \copydoc lsq_y_ax_b
  */
-int lsq_y_ax_b_xdouble(int n, double x[], real y[], real* a, real* b, real* r, real* chi2);
+StatisticsStatus lsq_y_ax_b_xdouble(int n, double x[], real y[], real* a, real* b, real* r, real* chi2);
 
 /*! \brief
  * Fit a straight line y=ax+b thru the n data points x, y.
@@ -323,6 +324,7 @@ int lsq_y_ax_b_xdouble(int n, double x[], real y[], real* a, real* b, real* r, r
  * \param[out] chi2 quality of fit
  * \return error code
  */
-int lsq_y_ax_b_error(int n, real x[], real y[], real dy[], real* a, real* b, real* da, real* db, real* r, real* chi2);
+StatisticsStatus
+lsq_y_ax_b_error(int n, real x[], real y[], real dy[], real* a, real* b, real* da, real* db, real* r, real* chi2);
 
 #endif