Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/lamont/test/implicit-surface/benchmark/genPosns.c
ViewVC logotype

Annotation of /branches/lamont/test/implicit-surface/benchmark/genPosns.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2261 - (view) (download) (as text)

1 : lamonts 2261 /*
2 :     * genPosns.c
3 :     *
4 :     * Generates random real numbers that represent postions on a unit circle.
5 :     *
6 :     */
7 :    
8 :     #include <stdlib.h>
9 :     #include <math.h>
10 :     #include <stdio.h>
11 :     #include <time.h>
12 :     #include <teem/nrrd.h>
13 :     #include <assert.h>
14 :     #include <sys/sysctl.h>
15 :     #include <sys/stat.h>
16 :    
17 :     #define PI 3.14159265359
18 :     #define HIGH 100.5
19 :     #define LO .5
20 :    
21 :     float randomReal(float min, float max){
22 :     return min + (float)rand()/((float)RAND_MAX/(max - min));
23 :     }
24 :     void generateNrdd(float * particles, const char * nrrdFileName, int numberOfParticles)
25 :     {
26 :     Nrrd *nval;
27 :     nval = nrrdNew();
28 :     int status;
29 :    
30 :     status = nrrdWrap_va(nval, particles, nrrdTypeFloat, 1, numberOfParticles);
31 :    
32 :     if(status){
33 :     printf("Error in trying to use nrddWar_va\n");
34 :     exit(1);
35 :     }
36 :    
37 :     status = nrrdSave(nrrdFileName, nval, NULL);
38 :    
39 :     if(status){
40 :     printf("Error in trying to use nrrdSave\n");
41 :     exit(1);
42 :     }
43 :    
44 :     nrrdNix(nval);
45 :     }
46 :     void generateTxt(float * particles, const char * txtFilename, int numberOfParticles)
47 :     {
48 :     FILE *fh = fopen(txtFilename, "w");
49 :    
50 :     if(fh == NULL){
51 :     printf("Error opening file:%s\n",txtFilename);
52 :     exit(1);
53 :     }
54 :    
55 :     int size = numberOfParticles;
56 :     for(int i =0; i <size; i++)
57 :     {
58 :     fprintf(fh,"%.2f\n",particles[i]);
59 :     }
60 :     fclose(fh);
61 :     }
62 :     int main(int argc, char * argv[])
63 :     {
64 :     float * strands;
65 :     srand(time(NULL));
66 :     int numberOfStrands = 0;
67 :     char * nrrdFilename;
68 :    
69 :     if(argc == 2) {
70 :     nrrdFilename = "posns.nrrd";
71 :     numberOfStrands = atoi(argv[1]);
72 :     strands = (float *) malloc(sizeof(float) * numberOfStrands * 2);
73 :    
74 :     for(int i = 0; i < (numberOfStrands * 2); i+=2)
75 :     {
76 :     float angle = randomReal(0,2*PI);
77 :     strands[i] = cos(angle);
78 :     strands[i+1] = sin(angle);
79 :     }
80 :    
81 :     generateNrdd(strands,nrrdFilename,numberOfStrands * 2);
82 :     //generateTxt(strands,"posns.txt",numberOfStrands * 2);
83 :     }else {
84 :     fprintf(stderr, "use genPart: [numberOfStrands]\n");
85 :     exit(1);
86 :     }
87 :    
88 :     return 0;
89 :     }
90 :    
91 :    
92 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0