From 65fa392bb1e02b52b05bea7b7c10efc6f421830a Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Sat, 3 Jan 2015 18:18:52 +0100 Subject: [PATCH] ... --- u1casc-ordinary/obs_diagcorr.hpp | 47 +++++++++++--------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/u1casc-ordinary/obs_diagcorr.hpp b/u1casc-ordinary/obs_diagcorr.hpp index 43d2132..57b835b 100644 --- a/u1casc-ordinary/obs_diagcorr.hpp +++ b/u1casc-ordinary/obs_diagcorr.hpp @@ -82,17 +82,13 @@ void obs_diagcorr::_meas(bool loadedobs, const int& nthmeas) { for (int icorr=0; icorr<4; icorr++) for (int jcorr=0; jcorr<4; jcorr++) for (int itsep=0; itsepcomargs.lsize[1]/2; itsep++) { - gsl_complex tmpc; - tmpc.dat[0] = OM[icorr*4+jcorr][itsep].real(); - tmpc.dat[1] = OM[icorr*4+jcorr][itsep].imag(); - gsl_matrix_complex_set(measurements[nthmeas][itsep], icorr, jcorr, tmpc); + gsl_matrix_complex_set(measurements[nthmeas][itsep], icorr, jcorr, + gsl_complex_rect( OM[icorr*4+jcorr][itsep].real(), OM[icorr*4+jcorr][itsep].imag() )); } - + for (int icorr=0; icorr<4; icorr++) { - gsl_complex tmpc; - tmpc.dat[0] = OM[16][icorr].real(); - tmpc.dat[1] = OM[16][icorr].imag(); - gsl_vector_complex_set(measurements_disco[nthmeas], icorr, tmpc); + gsl_vector_complex_set(measurements_disco[nthmeas], icorr, + gsl_complex_rect( OM[16][icorr].real(), OM[16][icorr].imag() ) ); } }; @@ -123,14 +119,9 @@ void obs_diagcorr::_finish() { for (int imeas=0; imeascomargs.nmeas; imeas++) gsl_matrix_complex_add( totalval, measurements[imeas][itsep] ); - - // compute mean // - gsl_complex tmpc2; - tmpc2.dat[0] = 1.0/O815->comargs.nmeas; - tmpc2.dat[1] = 0; + gsl_matrix_complex_memcpy (tmpmatrix, totalval); - gsl_matrix_complex_scale (tmpmatrix, tmpc2); - + gsl_matrix_complex_scale (tmpmatrix, gsl_complex_rect(1.0/O815->comargs.nmeas, 0.0) ); for (int icorr=0; icorr<4; icorr++) for (int jcorr=0; jcorr<4; jcorr++) { gsl_complex discopart = gsl_complex_mul( gsl_vector_complex_get(totaldisco, icorr), @@ -143,23 +134,14 @@ void obs_diagcorr::_finish() { ) ); } - cdiag(jackres, tmpmatrix); - // END for (int imeas=0; imeascomargs.nmeas; imeas++) { - gsl_complex tmpc; - tmpc.dat[0] = 1.0/(O815->comargs.nmeas-1); - tmpc.dat[1] = 0; - gsl_matrix_complex_memcpy (tmpmatrix, totalval); gsl_matrix_complex_sub (tmpmatrix, measurements[imeas][itsep]); - - gsl_matrix_complex_scale ( tmpmatrix, tmpc ); - + gsl_matrix_complex_scale ( tmpmatrix, gsl_complex_rect(1.0/(O815->comargs.nmeas-1), 0.0) ); gsl_vector_complex_memcpy( tmpvecc, totaldisco ); gsl_vector_complex_sub( tmpvecc, measurements_disco[imeas] ); - for (int icorr=0; icorr<4; icorr++) for (int jcorr=0; jcorr<4; jcorr++) { gsl_complex discopart = gsl_complex_mul( gsl_vector_complex_get(tmpvecc, icorr), @@ -172,16 +154,12 @@ void obs_diagcorr::_finish() { ) ); } - cdiag(tmpvec, tmpmatrix); - gsl_vector_sub(tmpvec, jackres); gsl_vector_memcpy(tmpvec2, tmpvec); gsl_vector_mul(tmpvec, tmpvec2); - gsl_vector_add(jackerrornorm, tmpvec); - } - + } gsl_vector_scale( jackerrornorm, (double)(O815->comargs.nmeas-1)/O815->comargs.nmeas ); @@ -195,6 +173,13 @@ void obs_diagcorr::_finish() { } gsl_matrix_complex_free(totalval); + gsl_matrix_complex_free(tmpmatrix); + gsl_vector_free(tmpvec); + gsl_vector_complex_free(tmpvecc); + gsl_vector_free(tmpvec2); + gsl_vector_free(jackres); + gsl_vector_free(jackerrornorm); + gsl_vector_complex_free(totaldisco); }; void obs_diagcorr::corrCompute() -- 2.39.5