Loading src/catout.c +6 −5 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * Contents: functions for output of catalog data. * * Last modify: 24/09/2009 * Last modify: 29/09/2009 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ Loading Loading @@ -175,6 +175,7 @@ void updateparamflags() | FLAG(obj2.prof_disk_patternspiral); FLAG(obj2.prof_disk_scale) |= prefs.pattern_flag; FLAG(obj2.prof_concentration) |= FLAG(obj2.prof_concentrationerr); FLAG(obj2.poserraw_prof) |= FLAG(obj2.poserrbw_prof); FLAG(obj2.poserrcxxw_prof) |= FLAG(obj2.poserrcyyw_prof) | FLAG(obj2.poserrcxyw_prof); Loading Loading @@ -210,8 +211,8 @@ void updateparamflags() | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_class_star); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.fluxerr_prof) |= FLAG(obj2.magerr_prof) | FLAG(obj2.prof_concentrationerr); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); FLAG(obj2.prof_spheroid_mag) |= FLAG(obj2.prof_spheroid_magerr); FLAG(obj2.prof_spheroid_reff) |= FLAG(obj2.prof_spheroid_refferr); Loading Loading @@ -612,10 +613,10 @@ void dumpparams(void) for (i=0; *objkey[i].name ; i++) if (*objkey[i].unit) printf("#%-22.22s %-58.58s [%s]\n", printf("#%-24.24s %-57.57s [%s]\n", objkey[i].name, objkey[i].comment, objkey[i].unit); else printf("#%-22.22s %-58.58s\n", printf("#%-24.24s %-57.57s\n", objkey[i].name, objkey[i].comment); return; Loading src/fft.c +43 −13 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ #include "threads.h" #endif fftwf_plan fplan, bplan; int firsttimeflag; #ifdef USE_THREADS pthread_mutex_t fftmutex; #endif fftwf_complex *fdata1; #define SWAP(a,b) tempr=(a);(a)=(b);(b)=tempr /****** fft_init ************************************************************ Loading Loading @@ -98,6 +99,30 @@ void fft_end(void) } /****** fft_reset *********************************************************** PROTO void fft_reset(void) PURPOSE Reset the FFT plans INPUT -. OUTPUT -. NOTES -. AUTHOR E. Bertin (IAP) VERSION 26/06/2009 ***/ void fft_reset(void) { if (fplan) { QFFTWFREE(fdata1); fftwf_destroy_plan(fplan); } if (bplan) fftwf_destroy_plan(bplan); fplan = bplan = NULL; return; } /****** fft_conv ************************************************************ PROTO void fft_conv(float *data1, float *fdata2, int *size) PURPOSE Optimized 2-dimensional FFT convolution using the FFTW library. Loading @@ -112,8 +137,7 @@ VERSION 26/03/2007 ***/ void fft_conv(float *data1, float *fdata2, int *size) { fftwf_plan plan; float *fdata1,*fdata1p,*fdata2p, float *fdata1p,*fdata2p, real,imag, fac; int i, npix,npix2; Loading @@ -125,18 +149,23 @@ void fft_conv(float *data1, float *fdata2, int *size) #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif QFFTWMALLOC(fdata1, float, npix2); plan = fftwf_plan_dft_r2c_2d(size[1], size[0], data1, (fftwf_complex *)fdata1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); if (!fplan) { QFFTWMALLOC(fdata1, fftwf_complex, npix2); fplan = fftwf_plan_dft_r2c_2d(size[1], size[0], data1, (fftwf_complex *)fdata1, FFTW_MEASURE|FFTW_DESTROY_INPUT); } #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif fftwf_execute(plan); fftwf_execute_dft_r2c(fplan, data1, fdata1); // fftwf_execute(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif fftwf_destroy_plan(plan); // fftwf_destroy_plan(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif Loading @@ -157,20 +186,21 @@ void fft_conv(float *data1, float *fdata2, int *size) #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif plan = fftwf_plan_dft_c2r_2d(size[1], size[0], (fftwf_complex *)fdata1, data1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); if (!bplan) bplan = fftwf_plan_dft_c2r_2d(size[1], size[0], (fftwf_complex *)fdata1, data1, FFTW_MEASURE|FFTW_DESTROY_INPUT); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif fftwf_execute_dft_c2r(bplan, fdata1, data1); fftwf_execute(plan); // fftwf_execute(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif fftwf_destroy_plan(plan); // fftwf_destroy_plan(plan); /* Free the fdata1 scratch array */ QFFTWFREE(fdata1); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif Loading src/fft.h +2 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ /*---------------------------------- protos --------------------------------*/ extern void fft_conv(float *data1, float *fdata2, int *size), fft_end(), fft_init(int nthreads); fft_init(int nthreads), fft_reset(void); extern float *fft_rtf(float *data, int *size); src/makeit.c +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ void makeit() changecatparamarrays("VECTOR_MODEL", &theprofit->nparam, 1); changecatparamarrays("VECTOR_MODELERR", &theprofit->nparam, 1); nparam2[0] = nparam2[1] = theprofit->nparam; changecatparamarrays("MATRIX_MODELERR", &nparam2, 2); changecatparamarrays("MATRIX_MODELERR", nparam2, 2); if (prefs.pattern_flag) { npat = prefs.prof_disk_patternvectorsize; Loading src/param.h +5 −5 Original line number Diff line number Diff line Loading @@ -829,7 +829,7 @@ keystruct objkey[] = { {"ERRBPSF_IMAGE", "PSF RMS position error along minor axis", &outobj2.poserrb_psf, H_FLOAT, T_FLOAT, "%8.4f", "pixel", "stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"}, {"ERRTHTPSF_IMAGE", "PSF error ellipse position angle (CCW/x)", {"ERRTHETAPSF_IMAGE", "PSF error ellipse position angle (CCW/x)", &outobj2.poserrtheta_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse;instr.det", "deg"}, {"ERRAPSF_WORLD", "World PSF RMS position error along major axis", Loading @@ -838,16 +838,16 @@ keystruct objkey[] = { {"ERRBPSF_WORLD", "World PSF RMS position error along minor axis", &outobj2.poserrbw_psf, H_FLOAT, T_FLOAT, "%12.7g", "pixel", "stat.stdev;stat.min;pos.errorEllipse", "deg"}, {"ERRTHTPSF_WORLD", "PSF error ellipse pos. angle (CCW/world-x)", {"ERRTHETAPSF_WORLD", "PSF error ellipse pos. angle (CCW/world-x)", &outobj2.poserrthetaw_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_SKY", "Native PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_SKY", "Native PSF error ellipse pos. angle (east of north)", &outobj2.poserrthetas_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_J2000", "J2000 PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_J2000", "J2000 PSF error ellipse pos. angle (east of north)", &outobj2.poserrtheta2000_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_B1950", "B1950 PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_B1950", "B1950 PSF error ellipse pos. angle (east of north)", &outobj2.poserrtheta1950_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, Loading Loading
src/catout.c +6 −5 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * Contents: functions for output of catalog data. * * Last modify: 24/09/2009 * Last modify: 29/09/2009 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ Loading Loading @@ -175,6 +175,7 @@ void updateparamflags() | FLAG(obj2.prof_disk_patternspiral); FLAG(obj2.prof_disk_scale) |= prefs.pattern_flag; FLAG(obj2.prof_concentration) |= FLAG(obj2.prof_concentrationerr); FLAG(obj2.poserraw_prof) |= FLAG(obj2.poserrbw_prof); FLAG(obj2.poserrcxxw_prof) |= FLAG(obj2.poserrcyyw_prof) | FLAG(obj2.poserrcxyw_prof); Loading Loading @@ -210,8 +211,8 @@ void updateparamflags() | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_class_star); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.fluxerr_prof) |= FLAG(obj2.magerr_prof) | FLAG(obj2.prof_concentrationerr); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); FLAG(obj2.prof_spheroid_mag) |= FLAG(obj2.prof_spheroid_magerr); FLAG(obj2.prof_spheroid_reff) |= FLAG(obj2.prof_spheroid_refferr); Loading Loading @@ -612,10 +613,10 @@ void dumpparams(void) for (i=0; *objkey[i].name ; i++) if (*objkey[i].unit) printf("#%-22.22s %-58.58s [%s]\n", printf("#%-24.24s %-57.57s [%s]\n", objkey[i].name, objkey[i].comment, objkey[i].unit); else printf("#%-22.22s %-58.58s\n", printf("#%-24.24s %-57.57s\n", objkey[i].name, objkey[i].comment); return; Loading
src/fft.c +43 −13 Original line number Diff line number Diff line Loading @@ -32,11 +32,12 @@ #include "threads.h" #endif fftwf_plan fplan, bplan; int firsttimeflag; #ifdef USE_THREADS pthread_mutex_t fftmutex; #endif fftwf_complex *fdata1; #define SWAP(a,b) tempr=(a);(a)=(b);(b)=tempr /****** fft_init ************************************************************ Loading Loading @@ -98,6 +99,30 @@ void fft_end(void) } /****** fft_reset *********************************************************** PROTO void fft_reset(void) PURPOSE Reset the FFT plans INPUT -. OUTPUT -. NOTES -. AUTHOR E. Bertin (IAP) VERSION 26/06/2009 ***/ void fft_reset(void) { if (fplan) { QFFTWFREE(fdata1); fftwf_destroy_plan(fplan); } if (bplan) fftwf_destroy_plan(bplan); fplan = bplan = NULL; return; } /****** fft_conv ************************************************************ PROTO void fft_conv(float *data1, float *fdata2, int *size) PURPOSE Optimized 2-dimensional FFT convolution using the FFTW library. Loading @@ -112,8 +137,7 @@ VERSION 26/03/2007 ***/ void fft_conv(float *data1, float *fdata2, int *size) { fftwf_plan plan; float *fdata1,*fdata1p,*fdata2p, float *fdata1p,*fdata2p, real,imag, fac; int i, npix,npix2; Loading @@ -125,18 +149,23 @@ void fft_conv(float *data1, float *fdata2, int *size) #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif QFFTWMALLOC(fdata1, float, npix2); plan = fftwf_plan_dft_r2c_2d(size[1], size[0], data1, (fftwf_complex *)fdata1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); if (!fplan) { QFFTWMALLOC(fdata1, fftwf_complex, npix2); fplan = fftwf_plan_dft_r2c_2d(size[1], size[0], data1, (fftwf_complex *)fdata1, FFTW_MEASURE|FFTW_DESTROY_INPUT); } #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif fftwf_execute(plan); fftwf_execute_dft_r2c(fplan, data1, fdata1); // fftwf_execute(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif fftwf_destroy_plan(plan); // fftwf_destroy_plan(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif Loading @@ -157,20 +186,21 @@ void fft_conv(float *data1, float *fdata2, int *size) #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif plan = fftwf_plan_dft_c2r_2d(size[1], size[0], (fftwf_complex *)fdata1, data1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); if (!bplan) bplan = fftwf_plan_dft_c2r_2d(size[1], size[0], (fftwf_complex *)fdata1, data1, FFTW_MEASURE|FFTW_DESTROY_INPUT); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif fftwf_execute_dft_c2r(bplan, fdata1, data1); fftwf_execute(plan); // fftwf_execute(plan); #ifdef USE_THREADS QPTHREAD_MUTEX_LOCK(&fftmutex); #endif fftwf_destroy_plan(plan); // fftwf_destroy_plan(plan); /* Free the fdata1 scratch array */ QFFTWFREE(fdata1); #ifdef USE_THREADS QPTHREAD_MUTEX_UNLOCK(&fftmutex); #endif Loading
src/fft.h +2 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ /*---------------------------------- protos --------------------------------*/ extern void fft_conv(float *data1, float *fdata2, int *size), fft_end(), fft_init(int nthreads); fft_init(int nthreads), fft_reset(void); extern float *fft_rtf(float *data, int *size);
src/makeit.c +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ void makeit() changecatparamarrays("VECTOR_MODEL", &theprofit->nparam, 1); changecatparamarrays("VECTOR_MODELERR", &theprofit->nparam, 1); nparam2[0] = nparam2[1] = theprofit->nparam; changecatparamarrays("MATRIX_MODELERR", &nparam2, 2); changecatparamarrays("MATRIX_MODELERR", nparam2, 2); if (prefs.pattern_flag) { npat = prefs.prof_disk_patternvectorsize; Loading
src/param.h +5 −5 Original line number Diff line number Diff line Loading @@ -829,7 +829,7 @@ keystruct objkey[] = { {"ERRBPSF_IMAGE", "PSF RMS position error along minor axis", &outobj2.poserrb_psf, H_FLOAT, T_FLOAT, "%8.4f", "pixel", "stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"}, {"ERRTHTPSF_IMAGE", "PSF error ellipse position angle (CCW/x)", {"ERRTHETAPSF_IMAGE", "PSF error ellipse position angle (CCW/x)", &outobj2.poserrtheta_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse;instr.det", "deg"}, {"ERRAPSF_WORLD", "World PSF RMS position error along major axis", Loading @@ -838,16 +838,16 @@ keystruct objkey[] = { {"ERRBPSF_WORLD", "World PSF RMS position error along minor axis", &outobj2.poserrbw_psf, H_FLOAT, T_FLOAT, "%12.7g", "pixel", "stat.stdev;stat.min;pos.errorEllipse", "deg"}, {"ERRTHTPSF_WORLD", "PSF error ellipse pos. angle (CCW/world-x)", {"ERRTHETAPSF_WORLD", "PSF error ellipse pos. angle (CCW/world-x)", &outobj2.poserrthetaw_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_SKY", "Native PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_SKY", "Native PSF error ellipse pos. angle (east of north)", &outobj2.poserrthetas_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_J2000", "J2000 PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_J2000", "J2000 PSF error ellipse pos. angle (east of north)", &outobj2.poserrtheta2000_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, {"ERRTHTPSF_B1950", "B1950 PSF error ellipse pos. angle (east of north)", {"ERRTHETAPSF_B1950", "B1950 PSF error ellipse pos. angle (east of north)", &outobj2.poserrtheta1950_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", "pos.posAng;pos.errorEllipse", "deg"}, Loading