aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2014-07-25 18:06:45 +0200
committerThomas White <taw@physics.org>2014-08-04 14:23:57 +0200
commit18d00d8f6f82faf17067425b0f6ca6e271f18c7c (patch)
tree24df1f1ba15d00846ce48e2f9258a4d020189625 /data
parentbd760024d5dfb16d8beaac01ca4dec9102d236f1 (diff)
A better way of doing GPU symmetry
Diffstat (limited to 'data')
-rw-r--r--data/diffraction.cl148
1 files changed, 3 insertions, 145 deletions
diff --git a/data/diffraction.cl b/data/diffraction.cl
index 76c6b9d9..994e27db 100644
--- a/data/diffraction.cl
+++ b/data/diffraction.cl
@@ -136,7 +136,6 @@ float molecule_factor(global float *intensities, global float *flags,
float hf, kf, lf;
int h, k, l;
float val = 0.0;
- signed int i;
#ifdef FLAT_INTENSITIES
return 100.0;
@@ -149,150 +148,9 @@ float molecule_factor(global float *intensities, global float *flags,
h = round(hf);
k = round(kf);
l = round(lf);
- i = -h-k;
-
- #ifdef PG1
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- #endif /* PG1 */
-
- #ifdef PG1BAR
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, -l);
- #endif /* PG1BAR */
-
- #ifdef PGMMM
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, k, -l);
- #endif /* PGMMM */
-
- #ifdef PG4
- val += lookup_flagged_intensity(intensities, flags, -k, h, l);
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, k, -h, l);
- #endif /* PG4 */
-
- #ifdef PG422
- val += lookup_flagged_intensity(intensities, flags, -k, h, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, l);
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -k, -h, -l);
- val += lookup_flagged_intensity(intensities, flags, k, h, -l);
- val += lookup_flagged_intensity(intensities, flags, k, -h, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, -l);
- #endif /* PG422 */
-
- #ifdef PG321H
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, i, h, l);
- val += lookup_flagged_intensity(intensities, flags, k, h, -l);
- val += lookup_flagged_intensity(intensities, flags, k, i, l);
- val += lookup_flagged_intensity(intensities, flags, i, k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, i, -l);
- #endif /* PG321H */
-
- #ifdef PG6
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, i, h, l);
- val += lookup_flagged_intensity(intensities, flags, k, i, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -i, -h, l);
- val += lookup_flagged_intensity(intensities, flags, -k, -i, l);
- #endif /* PG6 */
-
- #ifdef PG6M
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, i, h, l);
- val += lookup_flagged_intensity(intensities, flags, k, i, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -i, -h, l);
- val += lookup_flagged_intensity(intensities, flags, -k, -i, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, -i, -h, -l);
- val += lookup_flagged_intensity(intensities, flags, -k, -i, -l);
- val += lookup_flagged_intensity(intensities, flags, h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, i, h, -l);
- val += lookup_flagged_intensity(intensities, flags, k, i, -l);
- #endif /* PG6M */
-
- #ifdef PG6MMM
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, i, h, l);
- val += lookup_flagged_intensity(intensities, flags, k, i, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -i, -h, l);
- val += lookup_flagged_intensity(intensities, flags, -k, -i, l);
- val += lookup_flagged_intensity(intensities, flags, k, h, -l);
- val += lookup_flagged_intensity(intensities, flags, h, i, -l);
- val += lookup_flagged_intensity(intensities, flags, i, k, -l);
- val += lookup_flagged_intensity(intensities, flags, -k, -h, -l);
- val += lookup_flagged_intensity(intensities, flags, -h, -i, -l);
- val += lookup_flagged_intensity(intensities, flags, -i, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, -i, -h, -l);
- val += lookup_flagged_intensity(intensities, flags, -k, i, -l);
- val += lookup_flagged_intensity(intensities, flags, h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, i, h, -l);
- val += lookup_flagged_intensity(intensities, flags, k, i, -l);
- val += lookup_flagged_intensity(intensities, flags, -k, -h, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -i, l);
- val += lookup_flagged_intensity(intensities, flags, -i, -k, l);
- val += lookup_flagged_intensity(intensities, flags, k, h, l);
- val += lookup_flagged_intensity(intensities, flags, h, i, l);
- val += lookup_flagged_intensity(intensities, flags, i, k, l);
- #endif /* PG6MMM */
-
- #ifdef PG23
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, k, l, h);
- val += lookup_flagged_intensity(intensities, flags, l, h, k);
- val += lookup_flagged_intensity(intensities, flags, -k, -l, h);
- val += lookup_flagged_intensity(intensities, flags, -l, -h, k);
- val += lookup_flagged_intensity(intensities, flags, -k, l, -h);
- val += lookup_flagged_intensity(intensities, flags, -l, h, -k);
- val += lookup_flagged_intensity(intensities, flags, k, -l, -h);
- val += lookup_flagged_intensity(intensities, flags, l, -h, -k);
- #endif /* PG23 */
-
- #ifdef PGM3
- val += lookup_flagged_intensity(intensities, flags, h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, k, l, h);
- val += lookup_flagged_intensity(intensities, flags, l, h, k);
- val += lookup_flagged_intensity(intensities, flags, -k, -l, h);
- val += lookup_flagged_intensity(intensities, flags, -l, -h, k);
- val += lookup_flagged_intensity(intensities, flags, -k, l, -h);
- val += lookup_flagged_intensity(intensities, flags, -l, h, -k);
- val += lookup_flagged_intensity(intensities, flags, k, -l, -h);
- val += lookup_flagged_intensity(intensities, flags, l, -h, -k);
-
- val += lookup_flagged_intensity(intensities, flags, -h, -k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, k, -l);
- val += lookup_flagged_intensity(intensities, flags, h, -k, l);
- val += lookup_flagged_intensity(intensities, flags, -h, k, l);
- val += lookup_flagged_intensity(intensities, flags, -k, -l, -h);
- val += lookup_flagged_intensity(intensities, flags, -l, -h, -k);
- val += lookup_flagged_intensity(intensities, flags, k, l, -h);
- val += lookup_flagged_intensity(intensities, flags, l, h, -k);
- val += lookup_flagged_intensity(intensities, flags, k, -l, h);
- val += lookup_flagged_intensity(intensities, flags, l, -h, k);
- val += lookup_flagged_intensity(intensities, flags, -k, l, h);
- val += lookup_flagged_intensity(intensities, flags, -l, h, k);
- #endif /* PGM3 */
-
- /* FIXME: Add the remaining point groups */
+
+ /* Symmetry stuff goes here */
+ INSERT_HERE
return val;
#endif /* FLAT_INTENSITIIES */