source: sans/XOP_Dev/MonteCarlo/MonteCarlo.r @ 790

Last change on this file since 790 was 790, checked in by srkline, 12 years ago

Adding Threadsafe declarations to Debye Sphere functions to allow binning of distances to be threaded.

File size: 4.4 KB
Line 
1#include "XOPStandardHeaders.r"
2
3resource 'vers' (1) {                                           /* XOP version info */
4        0x01, 0x00, final, 0x00, 0,                             /* version bytes and country integer */
5        "1.00",
6        "1.00, © 1993 WaveMetrics, Inc., all rights reserved."
7};
8
9resource 'vers' (2) {                                           /* Igor version info */
10        0x05, 0x00, release, 0x00, 0,                   /* version bytes and country integer */
11        "5.00",
12        "(for Igor 5.00 or later)"
13};
14
15resource 'STR#' (1100) {                                        /* custom error messages */
16        {
17                /* [1] */
18                "SANSMonteCarlo requires Igor Pro 6.1 or later.",
19                /* [2] */
20                "Wave does not exist.",
21                /* [3] */
22                "This function requires a 3D wave.",
23        }
24};
25
26/* no menu item */
27
28resource 'XOPI' (1100) {
29        XOP_VERSION,                                                    // XOP protocol version.
30        DEV_SYS_CODE,                                                   // Development system information.
31        0,                                                                              // Obsolete - set to zero.
32        0,                                                                              // Obsolete - set to zero.
33        XOP_TOOLKIT_VERSION,                                    // XOP Toolkit version.
34};
35
36resource 'XOPF' (1100) {
37        {
38                "Monte_SANSX",          /* function name */
39                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
40                NT_FP64,                                                        /* return value type */                 
41                {
42                        NT_FP64 + WAVE_TYPE,
43                        NT_FP64 + WAVE_TYPE,
44                        NT_FP64 + WAVE_TYPE,
45                        NT_FP64 + WAVE_TYPE,
46                        NT_FP64 + WAVE_TYPE,
47                        NT_FP64 + WAVE_TYPE,
48                        NT_FP64 + WAVE_TYPE,
49                        NT_FP64 + WAVE_TYPE,
50                },
51                "Monte_SANSX2",         /* function name */
52                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
53                NT_FP64,                                                        /* return value type */                 
54                {
55                        NT_FP64 + WAVE_TYPE,
56                        NT_FP64 + WAVE_TYPE,
57                        NT_FP64 + WAVE_TYPE,
58                        NT_FP64 + WAVE_TYPE,
59                        NT_FP64 + WAVE_TYPE,
60                        NT_FP64 + WAVE_TYPE,
61                        NT_FP64 + WAVE_TYPE,
62                        NT_FP64 + WAVE_TYPE,
63                },
64               
65                "DebyeSpheresX",                                                /* function name */
66                F_UTIL | F_THREADSAFE | F_EXTERNAL,                             /* function category == Utility */
67                NT_FP64,                                                        /* return value type */ 
68                {
69                                                NT_FP64,                        /* single precision wave (q-wave) */
70                        NT_FP64 + WAVE_TYPE,                            /* single precision wave (x coordinates) */
71                        NT_FP64 + WAVE_TYPE,                            /* single precision wave (y coordinates) */
72                        NT_FP64 + WAVE_TYPE,                            /* single precision wave (z coordinates) */
73                        NT_FP64 + WAVE_TYPE,                            /* single precision wave (rho at xyz) */
74                        NT_FP64,                                // Rprimary, the primary sphere radius
75                        NT_FP64,                                // grid, should be passed as 0.62*Rprimary
76                },
77               
78                "Monte_SANSX3",         /* function name */
79                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
80                NT_FP64,                                                        /* return value type */                 
81                {
82                        NT_FP64 + WAVE_TYPE,
83                        NT_FP64 + WAVE_TYPE,
84                        NT_FP64 + WAVE_TYPE,
85                        NT_FP64 + WAVE_TYPE,
86                        NT_FP64 + WAVE_TYPE,
87                        NT_FP64 + WAVE_TYPE,
88                        NT_FP64 + WAVE_TYPE,
89                        NT_FP64 + WAVE_TYPE,
90                },
91               
92                "Monte_SANSX4",         /* function name */
93                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
94                NT_FP64,                                                        /* return value type */                 
95                {
96                        NT_FP64 + WAVE_TYPE,
97                        NT_FP64 + WAVE_TYPE,
98                        NT_FP64 + WAVE_TYPE,
99                        NT_FP64 + WAVE_TYPE,
100                        NT_FP64 + WAVE_TYPE,
101                        NT_FP64 + WAVE_TYPE,
102                        NT_FP64 + WAVE_TYPE,
103                        NT_FP64 + WAVE_TYPE,
104                },
105               
106                "maxDistanceX",         /* function name */
107                F_UTIL | F_EXTERNAL,                                    /* function category == UTILITY */
108                NT_FP64,                                                        /* return value type */                 
109                {
110                        NT_FP64 + WAVE_TYPE,
111                        NT_FP64 + WAVE_TYPE,
112                        NT_FP64 + WAVE_TYPE,
113                },
114               
115                "binDistanceX",         /* function name */
116                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
117                NT_FP64,                                                        /* return value type */                 
118                {
119                        NT_FP64 + WAVE_TYPE,                    // XYZ waves
120                        NT_FP64 + WAVE_TYPE,
121                        NT_FP64 + WAVE_TYPE,
122                        NT_FP64 + WAVE_TYPE,                    // distance Bin wave (this is returned)
123                        NT_FP64,                                                // grid
124                        NT_FP64,                                                // bin width
125                        NT_FP64,                                                // start index
126                        NT_FP64,                                                // stop index
127                },
128               
129                "SobolX",               /* function name */
130                F_UTIL | F_EXTERNAL,                                    /* function category == UTILITY */
131                NT_FP64,                                                        /* return value type */                 
132                {
133                        NT_FP64,                                                // requested dimension (this is really an integer)
134                        NT_FP64 + WAVE_TYPE,                    // result wave
135                },
136               
137                "binSLDDistanceX",              /* function name */
138                F_UTIL | F_THREADSAFE | F_EXTERNAL,                                     /* function category == UTILITY */
139                NT_FP64,                                                        /* return value type */                 
140                {
141                        NT_FP64 + WAVE_TYPE,                    // XYZ waves
142                        NT_FP64 + WAVE_TYPE,
143                        NT_FP64 + WAVE_TYPE,
144                        NT_FP64 + WAVE_TYPE,                    // rho wave
145                        NT_FP64 + WAVE_TYPE,                    // distance Bin wave, 2D (this is returned)
146                        NT_FP64 + WAVE_TYPE,                    // SLD lookup
147                        NT_FP64 + WAVE_TYPE,                    // PSF id matrix
148                        NT_FP64,                                                // grid
149                        NT_FP64,                                                // bin width
150                        NT_FP64,                                                // start index
151                        NT_FP64,                                                // stop index
152                },
153               
154        }
155};
Note: See TracBrowser for help on using the repository browser.