diff --git a/src/BayesWaveProposal.c b/src/BayesWaveProposal.c index 7d535c0d74bdae7ce5da1df704227a6d121704fc..31ef1a01d39999b26de5940cff5d69ae0acf74b2 100644 --- a/src/BayesWaveProposal.c +++ b/src/BayesWaveProposal.c @@ -69,8 +69,8 @@ void draw_glitch_amplitude(double *params, double *Snf, gsl_rng *seed, double To invmax = 1./max; i = (int)(params[1]*Tobs); - double SNRmin = range[3][0]*sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); - double SNRmax = range[3][1]*sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); + double SNRmin = range[3][0]*SineGaussianSNR(params, Snf, Tobs); + double SNRmax = range[3][1]*SineGaussianSNR(params, Snf, Tobs); k = 0; @@ -109,7 +109,9 @@ void draw_glitch_amplitude(double *params, double *Snf, gsl_rng *seed, double To } //SNR defined with Sn(f) but Snf array holdes <n_i^2> - params[3] = SNR/sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); + //params[3] = SNR/sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); + + params[3] *= SNR/SineGaussianSNR(params, Snf, Tobs); } @@ -132,10 +134,10 @@ void draw_signal_amplitude(double *params, double *Snf, gsl_rng *seed, double To i = (int)(params[1]*Tobs); - double SNRmin = range[3][0]*sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); - double SNRmax = range[3][1]*sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); - + double SNRmin = range[3][0]*SineGaussianSNR(params, Snf, Tobs)/params[3]; + double SNRmax = range[3][1]*SineGaussianSNR(params, Snf, Tobs)/params[3]; + k = 0; SNR = SNRmin + (SNRmax-SNRmin)*uniform_draw(seed); @@ -197,7 +199,7 @@ void draw_uniform_amplitude(double *params, double *Snf, gsl_rng *seed, double T //SNR defined with Sn(f) but Snf array holdes <n_i^2> - params[3] = SNR/sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); + params[3] *= SNR/SineGaussianSNR(params, Snf, Tobs); } @@ -494,7 +496,7 @@ void intrinsic_fisher_update(double *params, double *dparams, double *Snf, doubl double betasq; //SNR defined with Sn(f) but Snf array holdes <n_i^2> - SNR = params[3]*sqrt((params[2]/(2.0*RT2PI*params[1]))/(Snf[i]*2.0/Tobs)); + SNR = SineGaussianSNR(params, Snf, Tobs); if(SNR < 5.0) SNR = 5.0; // this caps the size of the proposed jumps