diff options
author | torset | 2009-02-25 13:38:56 +0000 |
---|---|---|
committer | torset | 2009-02-25 13:38:56 +0000 |
commit | 0972fda53894a22215a30f8aa83da5c7de3d129e (patch) | |
tree | b58540fe2c05202684f8ef059b28a9e07b2cd8bf | |
parent | 0a9569e577e3faf3ff87b0c4994e17281d194377 (diff) | |
download | scilab2c-0972fda53894a22215a30f8aa83da5c7de3d129e.tar.gz scilab2c-0972fda53894a22215a30f8aa83da5c7de3d129e.tar.bz2 scilab2c-0972fda53894a22215a30f8aa83da5c7de3d129e.zip |
Add round files
-rw-r--r-- | src/elementaryFunctions/round/crounds.c | 12 | ||||
-rw-r--r-- | src/elementaryFunctions/round/drounds.c | 5 | ||||
-rw-r--r-- | src/elementaryFunctions/round/srounds.c | 6 | ||||
-rw-r--r-- | src/elementaryFunctions/round/zrounds.c | 12 |
4 files changed, 29 insertions, 6 deletions
diff --git a/src/elementaryFunctions/round/crounds.c b/src/elementaryFunctions/round/crounds.c index dbf20c83..598fd16b 100644 --- a/src/elementaryFunctions/round/crounds.c +++ b/src/elementaryFunctions/round/crounds.c @@ -14,8 +14,16 @@ #include "round.h" floatComplex crounds(floatComplex x) { - int roundReal = (int)creals(x); - int roundImag = (int)cimags(x); + int roundReal; + int roundImag; + + if (creals(x)>=0) roundReal = (int)(creals(x)+0.5); + else roundReal = (int)(creals(x)-0.5); + + + + if (cimags(x)>=0) roundImag = (int)(cimags(x)+0.5); + else roundImag = (int)(cimags(x)-0.5); return FloatComplex((float)roundReal, (float)roundImag); } diff --git a/src/elementaryFunctions/round/drounds.c b/src/elementaryFunctions/round/drounds.c index 1dc6e855..5cc46429 100644 --- a/src/elementaryFunctions/round/drounds.c +++ b/src/elementaryFunctions/round/drounds.c @@ -14,6 +14,9 @@ #include "round.h" double drounds(double x) { - int result = (int)(x+0.5); + int result; + if(x>=0) result = (int)(x+0.5); + else result = (int)(x-0.5); + return (double)result; } diff --git a/src/elementaryFunctions/round/srounds.c b/src/elementaryFunctions/round/srounds.c index 97a486ae..17ae537d 100644 --- a/src/elementaryFunctions/round/srounds.c +++ b/src/elementaryFunctions/round/srounds.c @@ -14,6 +14,10 @@ #include "round.h" float srounds(float x) { - int result = (int)(x+0.5); + int result; + + if(x>=0) result = (int)(x+0.5); + else result = (int)(x-0.5); + return (float)result; } diff --git a/src/elementaryFunctions/round/zrounds.c b/src/elementaryFunctions/round/zrounds.c index de6c7c2c..3f723adf 100644 --- a/src/elementaryFunctions/round/zrounds.c +++ b/src/elementaryFunctions/round/zrounds.c @@ -14,8 +14,16 @@ #include "round.h" doubleComplex zrounds(doubleComplex x) { - int roundReal = (int)zreals(x); - int roundImag = (int)zimags(x); + int roundReal; + int roundImag; + + if (zreals(x)>=0) roundReal = (int)(zreals(x)+0.5); + else roundReal = (int)(zreals(x)-0.5); + + + + if (zimags(x)>=0) roundImag = (int)(zimags(x)+0.5); + else roundImag = (int)(zimags(x)-0.5); return DoubleComplex((double)roundReal, (double)roundImag); } |