File tree Expand file tree Collapse file tree 3 files changed +69
-13
lines changed
Expand file tree Collapse file tree 3 files changed +69
-13
lines changed Original file line number Diff line number Diff line change @@ -379,12 +379,30 @@ struct hkl_data
379379 {
380380 struct hkl_data const *pa = a;
381381 struct hkl_data const *pb = b;
382- double s = pa->tau - pb->tau;
383382
384- if (!s) return 0;
385- else return (s < 0 ? -1 : 1);
386- } /* PN_list_compare */
387-
383+ /* Sort by tau */
384+ if (pa->tau < pb->tau) return -1;
385+ if (pa->tau > pb->tau) return 1;
386+
387+ /* Sort by tau_x */
388+ if (pa->tau_x < pb->tau_x) return -1;
389+ if (pa->tau_x > pb->tau_x) return 1;
390+
391+ /* Sort by tau_y */
392+ if (pa->tau_y < pb->tau_y) return -1;
393+ if (pa->tau_y > pb->tau_y) return 1;
394+
395+ /* Sort by tau_z */
396+ if (pa->tau_z < pb->tau_z) return -1;
397+ if (pa->tau_z > pb->tau_z) return 1;
398+
399+ /* In case of tie, sort by F2 also */
400+ if (pa->F2 < pb->F2) return -1;
401+ if (pa->F2 > pb->F2) return 1;
402+
403+
404+ return 0;
405+ } /* SX_list_compare */
388406
389407#ifndef CIF2HKL
390408#define CIF2HKL
Original file line number Diff line number Diff line change @@ -167,11 +167,30 @@ SHARE
167167 {
168168 struct hkl_data_union const *pa = a;
169169 struct hkl_data_union const *pb = b;
170- double s = pa->tau - pb->tau;
171-
172- if (!s) return 0;
173- else return (s < 0 ? -1 : 1);
174- } /* PN_list_compare */
170+
171+ /* Sort by tau */
172+ if (pa->tau < pb->tau) return -1;
173+ if (pa->tau > pb->tau) return 1;
174+
175+ /* Sort by tau_x */
176+ if (pa->tau_x < pb->tau_x) return -1;
177+ if (pa->tau_x > pb->tau_x) return 1;
178+
179+ /* Sort by tau_y */
180+ if (pa->tau_y < pb->tau_y) return -1;
181+ if (pa->tau_y > pb->tau_y) return 1;
182+
183+ /* Sort by tau_z */
184+ if (pa->tau_z < pb->tau_z) return -1;
185+ if (pa->tau_z > pb->tau_z) return 1;
186+
187+ /* In case of tie, sort by F2 also */
188+ if (pa->F2 < pb->F2) return -1;
189+ if (pa->F2 > pb->F2) return 1;
190+
191+
192+ return 0;
193+ } /* SX_list_compare */
175194
176195 /* ------------------------------------------------------------------------ */
177196 int
Original file line number Diff line number Diff line change @@ -396,10 +396,29 @@ SHARE
396396 {
397397 struct hkl_data const *pa = a;
398398 struct hkl_data const *pb = b;
399- double s = pa->tau - pb->tau;
400399
401- if (!s) return 0;
402- else return (s < 0 ? -1 : 1);
400+ /* Sort by tau */
401+ if (pa->tau < pb->tau) return -1;
402+ if (pa->tau > pb->tau) return 1;
403+
404+ /* Sort by tau_x */
405+ if (pa->tau_x < pb->tau_x) return -1;
406+ if (pa->tau_x > pb->tau_x) return 1;
407+
408+ /* Sort by tau_y */
409+ if (pa->tau_y < pb->tau_y) return -1;
410+ if (pa->tau_y > pb->tau_y) return 1;
411+
412+ /* Sort by tau_z */
413+ if (pa->tau_z < pb->tau_z) return -1;
414+ if (pa->tau_z > pb->tau_z) return 1;
415+
416+ /* In case of tie, sort by F2 also */
417+ if (pa->F2 < pb->F2) return -1;
418+ if (pa->F2 > pb->F2) return 1;
419+
420+
421+ return 0;
403422 } /* SX_list_compare */
404423
405424#ifndef CIF2HKL
You can’t perform that action at this time.
0 commit comments