C++ify RandTest.*

Specifically:

  - Move implementation details into *.cc.

  - Const correctness: do not require superfluous cast.

  - Style: asterisk "binds" to type, not name.
This commit is contained in:
Matthias Vallentin 2012-12-13 18:39:29 -08:00
parent 483cc6bd9e
commit 86faab1e06
2 changed files with 21 additions and 17 deletions

View file

@ -1,28 +1,22 @@
#include <math.h>
#define log2of10 3.32192809488736234787
/* RT_LOG2 -- Calculate log to the base 2 */
static double rt_log2(double x)
{
return log2of10 * log10(x);
}
class EntropyVal;
#define RT_MONTEN 6 /* Bytes used as Monte Carlo
co-ordinates. This should be no more
bits than the mantissa of your "double"
floating point type. */
// RT_INCIRC = pow(pow(256.0, (double) (RT_MONTEN / 2)) - 1, 2.0);
#define RT_INCIRC 281474943156225.0
class RandTest {
public:
RandTest();
void add(void *buf, int bufl);
void end(double *r_ent, double *r_chisq, double *r_mean,
double *r_montepicalc, double *r_scc);
void add(const void* buf, int bufl);
void end(double* r_ent, double* r_chisq, double* r_mean,
double* r_montepicalc, double* r_scc);
private:
friend class EntropyVal;
long ccount[256]; /* Bins to count occurrences of values */
long totalc; /* Total bytes counted */
int mp;