Skip to content
Snippets Groups Projects
Commit ad2a84d8 authored by Tim Behrens's avatar Tim Behrens
Browse files

*** empty log message ***

parent 85d04f36
No related branches found
No related tags found
No related merge requests found
/* miscmaths.cc /* miscmaths.cc
Mark Jenkinson & Mark Woolrich & Christian Beckmann, FMRIB Image Analysis Group Mark Jenkinson & Mark Woolrich & Christian Beckmann & Tim Behrens, FMRIB Image Analysis Group
Copyright (C) 1999-2000 University of Oxford */ Copyright (C) 1999-2000 University of Oxford */
...@@ -356,7 +356,10 @@ namespace MISCMATHS { ...@@ -356,7 +356,10 @@ namespace MISCMATHS {
if (x>0.0) return ((int) (x+0.5)); if (x>0.0) return ((int) (x+0.5));
else return ((int) (x-0.5)); else return ((int) (x-0.5));
} }
double rounddouble(double x){
return ( floor(x+0.5));
}
int periodicclamp(int x, int x1, int x2) int periodicclamp(int x, int x1, int x2)
{ {
if (x2<x1) return periodicclamp(x,x2,x1); if (x2<x1) return periodicclamp(x,x2,x1);
...@@ -1558,7 +1561,7 @@ void element_mod_n(Matrix& Mat,double n) ...@@ -1558,7 +1561,7 @@ void element_mod_n(Matrix& Mat,double n)
for( int i=1;i<=Mat.Nrows();i++){ for( int i=1;i<=Mat.Nrows();i++){
if( !( (Mat(i,j)>0) && (Mat(i,j)<n) ) ){ if( !( (Mat(i,j)>0) && (Mat(i,j)<n) ) ){
tmp = ( Mat(i,j) - MISCMATHS::round(Mat(i,j)/n)*n ); tmp = ( Mat(i,j) - rounddouble(Mat(i,j)/n)*n );
Mat(i,j)= tmp > 0 ? tmp : tmp + n; Mat(i,j)= tmp > 0 ? tmp : tmp + n;
} }
......
...@@ -71,7 +71,8 @@ namespace MISCMATHS { ...@@ -71,7 +71,8 @@ namespace MISCMATHS {
int round(int x); int round(int x);
int round(float x); int round(float x);
int round(double x); int round(double x);
double rounddouble(double x);
inline int sign(int x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } } inline int sign(int x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
inline int sign(float x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } } inline int sign(float x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
inline int sign(double x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } } inline int sign(double x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
......
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