clQMC
An OpenCL library for quasi-Monte Carlo methods
clQMC_template.h
Go to the documentation of this file.
1 /*
2  * Authors:
3  *
4  * David Munger <mungerd@iro.umontreal.ca> (2015)
5  * Pierre L'Ecuyer <lecuyer@iro.umontreal.ca> (2015)
6  *
7  */
8 
9 #pragma once
10 #ifndef CLQMC_TEMPLATE_H
11 #define CLQMC_TEMPLATE_H
12 
13 #error This file is a template for point sets; it should not be included as is. Use a distribution-specific header such as poisson.h instead.
14 
15 #include <clQMC/clQMC.h>
16 
44 typedef struct clqmcPointset_ clqmcPointset;
45 
52 typedef struct clqmcPointsetStream_ clqmcPointsetStream;
53 
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
59 
66 cl_uint clqmcNumPoints(const clqmcPointset* pointset);
67 
68 
75 cl_uint clqmcDimension(const clqmcPointset* pointset);
76 
77 
91 clqmcPointset* clqmcCreate(..., size_t* objectSize, clqmcStatus* err);
92 
93 
100 clqmcStatus clqmcDestroy(clqmcPointset* pointset);
101 
102 
108 clqmcStatus clqmcWriteInfo(const clqmcPointset* pointset, FILE* file);
109 
110 
118 clqmcPointsetStream* clqmcCreateStream(const clqmcPointset* pointset, cl_uint partCount, cl_uint partIndex, const double* shift, clqmcStatus* err);
119 
120 
145 clqmcStatus clqmcCreateOverStream(clqmcPointsetStream* stream, const clqmcPointset* pointset, cl_uint partCount, cl_uint partIndex, const RandType* randomization);
146 
147 
152 clqmcStatus clqmcDestroyStream(clqmcPointsetStream* stream);
153 
154 
168 
169 
181 cl_uint clqmcNextPoint(clqmcPointsetStream* stream, double* coords);
182 
183 
193 
194 
201 cl_uint clqmcCurrentPointIndex(const clqmcPointsetStream* stream);
202 
203 
211 cl_uint clqmcCurrentCoordIndex(const clqmcPointsetStream* stream);
212 
213 #ifdef __cplusplus
214 }
215 #endif
216 
217 #endif
218 /*
219 vim: ft=c.doxygen
220 */
cl_uint clqmcDimension(const clqmcPointset *pointset)
Return the dimension of the point set [device].
cl_uint clqmcForwardToNextPoint(clqmcPointsetStream *stream)
Advance a stream to the next point [device].
cl_uint clqmcNumPoints(const clqmcPointset *pointset)
Return the number of point in the point set [device].
clqmcStatus clqmcCreateOverStream(clqmcPointsetStream *stream, const clqmcPointset *pointset, cl_uint partCount, cl_uint partIndex, const RandType *randomization)
Attach a new stream to a point set object in already allocated memory [device].
struct clqmcPointset_ clqmcPointset
Point set object [device].
Definition: clQMC_template.h:44
clqmcStatus clqmcDestroyStream(clqmcPointsetStream *stream)
Destroy a stream object.
clqmcPointset * clqmcCreate(..., size_t *objectSize, clqmcStatus *err)
Create a new point set object.
struct clqmcPointsetStream_ clqmcPointsetStream
Point set stream object [device].
Definition: clQMC_template.h:52
cl_uint clqmcCurrentPointIndex(const clqmcPointsetStream *stream)
Return the current point index of a stream [device].
clqmcPointsetStream * clqmcCreateStream(const clqmcPointset *pointset, cl_uint partCount, cl_uint partIndex, const double *shift, clqmcStatus *err)
Attach a new stream to a point set object.
clqmcStatus clqmcDestroy(clqmcPointset *pointset)
Destroy a point set object.
double clqmcNextCoordinate(clqmcPointsetStream *stream)
Return the value of the next coordinate [device].
cl_uint clqmcNextPoint(clqmcPointsetStream *stream, double *coords)
Retrieve all coordinates of the next point [device].
Library definitions.
clqmcStatus clqmcWriteInfo(const clqmcPointset *pointset, FILE *file)
Write information about a point set object.
cl_uint clqmcCurrentCoordIndex(const clqmcPointsetStream *stream)
Return the current coordinate index of a stream [device].