From b2fe958bdb5bda8e140b80735c67868d49e7faf3 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 22 Jun 2011 15:11:17 +0200 Subject: Clean up, fix matrix as symmetric --- src/post-refinement.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/post-refinement.c') diff --git a/src/post-refinement.c b/src/post-refinement.c index c1bc9314..a6dd5f75 100644 --- a/src/post-refinement.c +++ b/src/post-refinement.c @@ -341,12 +341,11 @@ static double pr_iterate(struct image *image, const RefList *full, /* Some reflections may have recently become scalable, but * scale_intensities() might not yet have been called, so the * full version may not have been calculated yet. */ - I_full = get_intensity(match); + I_full = image->osf * get_intensity(match); /* Actual measurement of this reflection from this pattern? */ I_partial = get_intensity(refl); p = get_partiality(refl); - delta_I = I_partial - (p * image->osf * I_full); /* Calculate all gradients for this reflection */ for ( k=0; k k ) continue; + M_c = gradients[g] * gradients[k]; M_c *= pow(image->osf * I_full, 2.0); - M_curr = gsl_matrix_get(M, g, k); + M_curr = gsl_matrix_get(M, k, g); + gsl_matrix_set(M, k, g, M_curr + M_c); gsl_matrix_set(M, g, k, M_curr + M_c); } - gr = gradients[k]; - v_c = delta_I * image->osf * I_full * gr; + delta_I = I_partial - (p * I_full); + v_c = delta_I * I_full * gradients[k]; v_curr = gsl_vector_get(v, k); gsl_vector_set(v, k, v_curr + v_c); -- cgit v1.2.3