#include "Enum/EDbg.hpp"#include "Basic/Utilities.hpp"#include "Basic/VectorHelper.hpp"#include "Basic/Law.hpp"#include "Basic/Memory.hpp"#include <cmath>#include <map>Macros | |
| #define | LSTACK 1000 |
| #define | MINI 10 |
Functions | |
| bool | isInteger (double value, double eps) |
| int | getClosestInteger (double value) |
| bool | isMultiple (int nbig, int nsmall) |
| bool | isOdd (int number) |
| bool | isEven (int number) |
| bool | isZero (double value, double eps) |
| bool | areEqual (double v1, double v2, double eps) |
| bool | isOne (double value, double eps) |
| double | getMin (double val1, double val2) |
| double | getMax (double val1, double val2) |
| double | getTEST () |
| int | getITEST () |
| bool | FFFF (double value) |
| bool | IFFFF (int value) |
| double | ut_deg2rad (double angle) |
| double | ut_rad2deg (double angle) |
| void | ut_sort_double (int safe, int nech, int *ind, double *value) |
| StatResults | ut_statistics (int nech, const double *tab, const double *sel, const double *wgt) |
| void | ut_stats_mima_print (const char *title, int nech, double *tab, double *sel) |
| void | ut_facies_statistics (int nech, double *tab, double *sel, int *nval, int *mini, int *maxi) |
| void | ut_classify (int nech, const double *tab, double *sel, int nclass, double start, double pas, int *nmask, int *ntest, int *nout, int *classe) |
| double | ut_median (double *tab, int ntab) |
| double | ut_cnp (int n, int k) |
| MatrixSquareGeneral | ut_pascal (int ndim) |
| static void | st_combinations (int *v, int start, int n, int k, int maxk, int *ncomb, int **comb) |
| int * | ut_combinations (int n, int maxk, int *ncomb) |
| void | ut_shuffle_array (int nrow, int ncol, double *tab) |
| VectorInt | getListActiveToAbsolute (const VectorDouble &sel) |
| std::map< int, int > | getMapAbsoluteToRelative (const VectorDouble &sel, bool verbose) |
| int | getRankMapAbsoluteToRelative (const std::map< int, int > &map, int iabs) |
| int | getRankMapRelativeToAbsolute (const std::map< int, int > &map, int irel) |
| operate_function | operate_Identify (int oper) |
| double | operate_Identity (double x) |
| double | operate_Inverse (double x) |
| double | operate_Square (double x) |
| double | operate_InverseSquare (double x) |
| double | operate_Sqrt (double x) |
| double | operate_InverseSqrt (double x) |
| double | modifyOperator (const EOperator &oper, double oldval, double value) |
| double | roundZero (double value, double eps) |
| double | truncateDecimals (double value, int ndec) |
| double | truncateDigits (double value, int ndigits) |
| void | setInternalDebug (bool status) |
| bool | isInternalDebug () |
| void | print_range (const char *title, int ntab, const double *tab, const double *sel) |
Variables | |
| static EDbg | _debugOptions = EDbg::DB |
| static bool | _internalDebug = false |
| #define LSTACK 1000 |
| #define MINI 10 |
| bool areEqual | ( | double | v1, |
| double | v2, | ||
| double | eps | ||
| ) |
| bool FFFF | ( | double | value | ) |
Checks if a double value is TEST
| [in] | value | Value to be tested |
| int getClosestInteger | ( | double | value | ) |
| int getITEST | ( | ) |
| VectorInt getListActiveToAbsolute | ( | const VectorDouble & | sel | ) |
Returns the list of absolute indices for the only active samples A sample is active if its 'sel' value is equal to 1
| sel | Vector giving the status of all samples (Dimension: absolute) |
| std::map<int, int> getMapAbsoluteToRelative | ( | const VectorDouble & | sel, |
| bool | verbose | ||
| ) |
Returns the map such that MAP[iabs] = iact. A sample is active if its 'sel' value is equal to 1
| sel | Vector giving the status of all samples (Dimension: absolute) |
| verbose | Verbose flag |
| double getMax | ( | double | val1, |
| double | val2 | ||
| ) |
| double getMin | ( | double | val1, |
| double | val2 | ||
| ) |
| int getRankMapAbsoluteToRelative | ( | const std::map< int, int > & | map, |
| int | iabs | ||
| ) |
Returns the rank of the relative grid node from its absolute index using the Map
| map | The <int,int> map |
| iabs | Absolute rank of the grid node |
| int getRankMapRelativeToAbsolute | ( | const std::map< int, int > & | map, |
| int | irel | ||
| ) |
| double getTEST | ( | ) |
| bool IFFFF | ( | int | value | ) |
Checks if an integer value is TEST
| [in] | value | Value to be tested |
| bool isEven | ( | int | number | ) |
| bool isInteger | ( | double | value, |
| double | eps | ||
| ) |
| bool isInternalDebug | ( | ) |
| bool isMultiple | ( | int | nbig, |
| int | nsmall | ||
| ) |
| bool isOdd | ( | int | number | ) |
| bool isOne | ( | double | value, |
| double | eps | ||
| ) |
| bool isZero | ( | double | value, |
| double | eps | ||
| ) |
| double modifyOperator | ( | const EOperator & | oper, |
| double | oldval, | ||
| double | value | ||
| ) |
Update an Old by a New value according to 'oper'
| oper | A keywork of EOperator enum |
| oldval | Old value |
| value | New value |
| operate_function operate_Identify | ( | int | oper | ) |
Identify the pointer to a function with following functionality: y = f(x)
| oper | Gives the type of operation to be performed 1: returns the value itslef (no change) -1: returns its inverse 2: returns the squared value -2: returns the inverse of the squared value 3: returns its square root -3: returns the inverse of the square root |
| double operate_Identity | ( | double | x | ) |
| double operate_Inverse | ( | double | x | ) |
| double operate_InverseSqrt | ( | double | x | ) |
| double operate_InverseSquare | ( | double | x | ) |
| double operate_Sqrt | ( | double | x | ) |
| double operate_Square | ( | double | x | ) |
| void print_range | ( | const char * | title, |
| int | ntab, | ||
| const double * | tab, | ||
| const double * | sel | ||
| ) |
Print the range of values in an array
| [in] | title | optional title (NULL if not defined) |
| [in] | ntab | number of values |
| [in] | tab | array of values |
| [in] | sel | (optional) selection |
| double roundZero | ( | double | value, |
| double | eps | ||
| ) |
Round off the value if close enough to zero. This ensures that the printout of a very small value does not come out with a non-significant negative sign This trick should only serve to make printouts similar on different platforms.
| value | Input value |
| eps | Tolerance to check that the value is considered as small |
| void setInternalDebug | ( | bool | status | ) |
|
static |
Return all the combinations of k within n (local recursive routine)
| [in] | v | Array of indices to be sorted |
| [in] | start | Rank of the starting index |
| [in] | n | Total number of objects (>= 1) |
| [in] | k | Starting sorting index |
| [in] | maxk | Selected number of objects (>= 1) |
| [in,out] | ncomb | Current number of combinations |
| [in,out] | comb | Current array of combinations |
| double truncateDecimals | ( | double | value, |
| int | ndec | ||
| ) |
Rounding a double to a given number of decimals (from: https://stackoverflow.com/questions/304011/truncate-a-decimal-value-in-c/304013#304013)
| value | Value to be rounded up |
| ndec | Number of significant decimals |
| double truncateDigits | ( | double | value, |
| int | ndigits | ||
| ) |
Rounding a double to a given number of decimals
| value | Value to be rounded up |
| ndigits | Number of significant digits |
| void ut_classify | ( | int | nech, |
| const double * | tab, | ||
| double * | sel, | ||
| int | nclass, | ||
| double | start, | ||
| double | pas, | ||
| int * | nmask, | ||
| int * | ntest, | ||
| int * | nout, | ||
| int * | classe | ||
| ) |
Classify the samples into integer sieves
| [in] | nech | Number of samples |
| [in] | tab | Array of values |
| [in] | sel | Array containing the Selection or NULL |
| [in] | nclass | Number of sieve classes |
| [in] | start | Starting sieve value |
| [in] | pas | Width of the sieve |
| [out] | nmask | Number of masked values |
| [out] | ntest | Number of undefined values |
| [out] | nout | Number of values outside the classes |
| [out] | classe | Array for number of samples per sieve |
| double ut_cnp | ( | int | n, |
| int | k | ||
| ) |
Compute combinations(n,k)
| [in] | n | Total number of objects (>= 1) |
| [in] | k | Selected number of objects (>= 1) |
| int* ut_combinations | ( | int | n, |
| int | maxk, | ||
| int * | ncomb | ||
| ) |
Return all the combinations of k within n
| [in] | n | Total number of objects (>1) |
| [in] | maxk | Selected number of objects (1<=maxk<n) |
| [out] | ncomb | Number of combinations |
| double ut_deg2rad | ( | double | angle | ) |
Translates from degree to radian
| [in] | angle | Angle in degrees |
| void ut_facies_statistics | ( | int | nech, |
| double * | tab, | ||
| double * | sel, | ||
| int * | nval, | ||
| int * | mini, | ||
| int * | maxi | ||
| ) |
| double ut_median | ( | double * | tab, |
| int | ntab | ||
| ) |
Calculate the median from a table of values
| [in] | tab | Array of values |
| [in] | ntab | Number of samples |
| MatrixSquareGeneral ut_pascal | ( | int | ndim | ) |
Create the matrix containing the Pascal Triangle coefficients
| [in] | ndim | Size of the matrix |
| double ut_rad2deg | ( | double | angle | ) |
Translates from radian to degree
| [in] | angle | Angle in radian |
| void ut_shuffle_array | ( | int | nrow, |
| int | ncol, | ||
| double * | tab | ||
| ) |
Shuffle an array (by line)
| [in] | nrow | Number of rows |
| [in] | ncol | Number of columns |
| [in,out] | tab | Array to be suffled |
| void ut_sort_double | ( | int | safe, |
| int | nech, | ||
| int * | ind, | ||
| double * | value | ||
| ) |
Sorts the (double) array value() and the array ind() in the ascending order of value
| [in] | safe | 1 if the value array if preserved 0 if the value array is also sorted |
| [in] | nech | number of samples |
| [out] | ind | output int array |
| [out] | value | input and output array |
| StatResults ut_statistics | ( | int | nech, |
| const double * | tab, | ||
| const double * | sel, | ||
| const double * | wgt | ||
| ) |
Returns the statistics of an array in a StatResults structure
| void ut_stats_mima_print | ( | const char * | title, |
| int | nech, | ||
| double * | tab, | ||
| double * | sel | ||
| ) |
|
static |
|
static |