From 22f703cab05b7cd368f4de9e03991b7664dc5022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 13:56:46 +0200 Subject: Initial import of argyll version 1.5.1-8 --- numlib/sobol.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 numlib/sobol.h (limited to 'numlib/sobol.h') diff --git a/numlib/sobol.h b/numlib/sobol.h new file mode 100644 index 0000000..08ac5c0 --- /dev/null +++ b/numlib/sobol.h @@ -0,0 +1,52 @@ +#ifndef SOBOL_H +#define SOBOL_H + +#ifdef __cplusplus + extern "C" { +#endif + +#define SOBOL_MAXBIT 30 +#define SOBOL_MAXDIM 40 + +/* Object definition */ +struct _sobol { + /* Private: */ + int dim; /* dimension we're set for */ + unsigned int count; + double recipd; + int lastq[SOBOL_MAXDIM]; + int dir[SOBOL_MAXBIT][SOBOL_MAXDIM]; + + /* Public: */ + /* Methods */ + + /* Get the next sobol vector, return nz if we've run out */ + /* Values are between 0.0 and 1.0 */ + int (*next)(struct _sobol *s, double *v); + + /* Rest to the begining of the sequence */ + void (*reset)(struct _sobol *s); + + /* We're done with the object */ + void (*del)(struct _sobol *s); + +}; typedef struct _sobol sobol; + +/* Return NULL on error */ +sobol *new_sobol(int dim); + +#ifdef __cplusplus + } +#endif + +#endif /* SOBOL_H */ + + + + + + + + + + -- cgit v1.2.3