Skip to content
Snippets Groups Projects
Commit 4072518e authored by Stephen Smith's avatar Stephen Smith
Browse files

minor edits, floating point bugfix in smoothest

parent 6dcf4e65
No related branches found
No related tags found
No related merge requests found
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
meldata.cc - data handler / container class meldata.cc - data handler / container class
Christian F. Beckmann, FMRIB Image Analysis Group Christian F. Beckmann, FMRIB Analysis Group
Copyright (C) 1999-2008 University of Oxford */ Copyright (C) 1999-2013 University of Oxford */
/* CCOPYRIGHT */ /* CCOPYRIGHT */
...@@ -911,7 +911,7 @@ namespace Melodic{ ...@@ -911,7 +911,7 @@ namespace Melodic{
if (R.zsize() <= 1) { usez = false; } if (R.zsize() <= 1) { usez = false; }
enum {X = 0, Y, Z}; enum {X = 0, Y, Z};
float SSminus[3] = {0, 0, 0}, S2[3] = {0, 0, 0}; double SSminus[3] = {0, 0, 0}, S2[3] = {0, 0, 0};
int zstart=1; int zstart=1;
if (!usez) zstart=0; if (!usez) zstart=0;
...@@ -941,8 +941,8 @@ namespace Melodic{ ...@@ -941,8 +941,8 @@ namespace Melodic{
} }
} }
float norm = 1.0/(float) N; double norm = 1.0/(double) N;
float v = dof; // v - degrees of freedom (nu) double v = dof; // v - degrees of freedom (nu)
if(R.tsize() > 1) { if(R.tsize() > 1) {
norm = (v - 2) / ((v - 1) * N * R.tsize()); norm = (v - 2) / ((v - 1) * N * R.tsize());
} }
...@@ -956,17 +956,17 @@ namespace Melodic{ ...@@ -956,17 +956,17 @@ namespace Melodic{
if (SSminus[Z]>=0.99999999*S2[Z]) if (SSminus[Z]>=0.99999999*S2[Z])
SSminus[Z]=0.99999*S2[Z]; SSminus[Z]=0.99999*S2[Z];
// Convert to sigma squared // Convert to sigma squared
float sigmasq[3] = {0,0,0}; double sigmasq[3] = {0,0,0};
sigmasq[X] = -1.0 / (4 * log(fabs(SSminus[X]/S2[X]))); sigmasq[X] = -1.0 / (4 * log(fabs(SSminus[X]/S2[X])));
sigmasq[Y] = -1.0 / (4 * log(fabs(SSminus[Y]/S2[Y]))); sigmasq[Y] = -1.0 / (4 * log(fabs(SSminus[Y]/S2[Y])));
if (usez) { sigmasq[Z] = -1.0 / (4 * log(fabs(SSminus[Z]/S2[Z]))); } if (usez) { sigmasq[Z] = -1.0 / (4 * log(fabs(SSminus[Z]/S2[Z]))); }
// Convert to full width half maximum // Convert to full width half maximum
float FWHM[3] = {0,0,0}; double FWHM[3] = {0,0,0};
FWHM[X] = sqrt(8 * log(2) * sigmasq[X]); FWHM[X] = sqrt(8 * log(2) * sigmasq[X]);
FWHM[Y] = sqrt(8 * log(2) * sigmasq[Y]); FWHM[Y] = sqrt(8 * log(2) * sigmasq[Y]);
if (usez) { FWHM[Z] = sqrt(8 * log(2) * sigmasq[Z]); } if (usez) { FWHM[Z] = sqrt(8 * log(2) * sigmasq[Z]); }
float resels = FWHM[X] * FWHM[Y]; double resels = FWHM[X] * FWHM[Y];
if (usez) resels *= FWHM[Z]; if (usez) resels *= FWHM[Z];
message(" done " <<endl); message(" done " <<endl);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
Christian F. Beckmann, FMRIB Image Analysis Group Christian F. Beckmann, FMRIB Image Analysis Group
Copyright (C) 1999-2008 University of Oxford */ Copyright (C) 1999-2013 University of Oxford */
/* CCOPYRIGHT */ /* CCOPYRIGHT */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment