aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2018-05-03 15:04:58 +0200
committerThomas White <taw@physics.org>2018-05-07 10:08:02 +0200
commit734840568fd3cad8fc1a915f182247b75c7117fb (patch)
tree25f124c66f0cf95c582e3dcf951fbbac62fb94c8
parentdbf546c4d511ce96f5eab4558442b932931e5e9f (diff)
Implement scale_one_crystal(.., SCALE_NO_B)
-rw-r--r--src/scaling.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/scaling.c b/src/scaling.c
index c708e7d3..94d885ea 100644
--- a/src/scaling.c
+++ b/src/scaling.c
@@ -39,6 +39,7 @@
#include <gsl/gsl_eigen.h>
#include <gsl/gsl_blas.h>
#include <gsl/gsl_fit.h>
+#include <gsl/gsl_statistics_double.h>
#include "merge.h"
#include "post-refinement.h"
@@ -304,7 +305,13 @@ int scale_one_crystal(Crystal *cr, const RefList *listR, int flags)
return 1;
}
- r = gsl_fit_wlinear(x, 1, w, 1, y, 1, n, &G, &B, &cov00, &cov01, &cov11, &chisq);
+ if ( flags & SCALE_NO_B ) {
+ G = gsl_stats_wmean(w, 1, y, 1, n);
+ B = 0.0;
+ r = 0;
+ } else {
+ r = gsl_fit_wlinear(x, 1, w, 1, y, 1, n, &G, &B, &cov00, &cov01, &cov11, &chisq);
+ }
if ( r ) {
ERROR("Scaling failed.\n");