153 |
extern int Diderot_NumStrands; // the number of strands in the program |
extern int Diderot_NumStrands; // the number of strands in the program |
154 |
extern Strand_t Diderot_Strands[]; // array of NumStrands strand descriptors |
extern Strand_t Diderot_Strands[]; // array of NumStrands strand descriptors |
155 |
|
|
156 |
|
// initial strand description |
157 |
|
typedef struct { |
158 |
|
bool isArray; // is the initialization an array or collection? |
159 |
|
uint32_t nDims; // depth of iteration nesting |
160 |
|
int32_t *base; // nDims array of base indices |
161 |
|
uint32_t *size; // nDims array of iteration sizes |
162 |
|
} Diderot_Initially_t; |
163 |
|
|
164 |
|
typedef struct struct_world Diderot_World_t; |
165 |
|
|
166 |
extern void Diderot_InitGlobals (); |
extern void Diderot_InitGlobals (); |
167 |
|
extern Diderot_World_t *Diderot_Initially (); |
168 |
|
|
169 |
|
|
170 |
/* Diderot library functions */ |
/* Diderot library functions */ |
171 |
|
|
172 |
|
// block allocation of an initial collection of strands |
173 |
|
extern Diderot_World_t *Diderot_AllocInitially (Strand_t *strand, Diderot_Initially_t *init); |
174 |
|
|
175 |
|
// get strand state pointers |
176 |
|
extern void *Diderot_InState (Diderot_World_t *wrld, uint32_t i); |
177 |
|
extern void *Diderot_OutState (Diderot_World_t *wrld, uint32_t i); |
178 |
|
extern bool Diderot_IsActive (Diderot_World_t *wrld, uint32_t i); |
179 |
|
|
180 |
// strand allocation (no initializtion) |
// strand allocation (no initializtion) |
181 |
void *Diderot_AllocStrand (Strand_t *strand); |
extern void *Diderot_AllocStrand (Strand_t *strand); |
182 |
|
|
183 |
/* load image data from Nrrd files */ |
/* load image data from Nrrd files */ |
184 |
extern Status_t Diderot_LoadImage1D (Diderot_string_t name, Diderot_image1D_t **img); |
extern Status_t Diderot_LoadImage1D (Diderot_string_t name, Diderot_image1D_t **img); |