Mercurial > projects > dstress
changeset 496:e720ce827c1c
added IEEE 754 tests for 0-handing
author | thomask |
---|---|
date | Thu, 28 Apr 2005 15:53:12 +0000 |
parents | e4119df89e01 |
children | 6d1faaf3eb70 |
files | run/ieee_754_zerocomp_01.d run/ieee_754_zerocomp_02.d run/ieee_754_zerocomp_03.d run/ieee_754_zerocomp_04.d run/ieee_754_zerocomp_05.d run/ieee_754_zerocomp_06.d run/ieee_754_zerocomp_07.d run/ieee_754_zerocomp_08.d run/ieee_754_zerocomp_09.d run/ieee_754_zerosdq_01.d run/ieee_754_zerosdq_02.d run/ieee_754_zerosdq_03.d run/ieee_754_zerosdq_04.d |
diffstat | 13 files changed, 357 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_01.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_01; + +int main(){ + float f1, f2; + + f1=0.0f; + f2=-f1; + assert(f1==f2); + + f1=-0.0f; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_02.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_02; + +int main(){ + ifloat f1, f2; + + f1=0.0fi; + f2=-f1; + assert(f1==f2); + + f1=-0.0fi; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_03.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_03; + +int main(){ + cfloat f1, f2; + + f1=0.0f+0.0fi; + f2=-f1; + assert(f1==f2); + + f1=0.0f-0.0fi; + f2=-f1; + assert(f1==f2); + + f1=-0.0f+0.0fi; + f2=-f1; + assert(f1==f2); + + f1=-0.0f-0.0fi; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_04.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_04; + +int main(){ + double f1, f2; + + f1=0.0; + f2=-f1; + assert(f1==f2); + + f1=-0.0; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_05.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_05; + +int main(){ + idouble f1, f2; + + f1=0.0i; + f2=-f1; + assert(f1==f2); + + f1=-0.0i; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_06.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_06; + +int main(){ + cdouble f1, f2; + + f1=0.0+0.0i; + f2=-f1; + assert(f1==f2); + + f1=0.0-0.0i; + f2=-f1; + assert(f1==f2); + + f1=-0.0+0.0i; + f2=-f1; + assert(f1==f2); + + f1=-0.0-0.0i; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_07.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_07; + +int main(){ + real f1, f2; + + f1=0.0l; + f2=-f1; + assert(f1==f2); + + f1=-0.0l; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_08.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_08; + +int main(){ + ireal f1, f2; + + f1=0.0li; + f2=-f1; + assert(f1==f2); + + f1=-0.0li; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerocomp_09.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerocomp_09; + +int main(){ + creal f1, f2; + + f1=0.0l+0.0li; + f2=-f1; + assert(f1==f2); + + f1=0.0l-0.0li; + f2=-f1; + assert(f1==f2); + + f1=-0.0l+0.0li; + f2=-f1; + assert(f1==f2); + + f1=-0.0l-0.0li; + f2=-f1; + assert(f1==f2); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerosdq_01.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,40 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerosdq_01; + +// Check whether IEEE 754 signed zero is correctly supported. + +union S{ + float f; + uint[1] i; +} + +int main(){ + S s; + int top=0; + + + s.f = 0.0f; + assert(s.i[top]==0x00000000); + + s.f = -0.0f; + assert(s.i[top]==0x80000000); + + s.f = 0.0f - 0.0f; + assert(s.i[top]==0x00000000); + + s.f = (-0.0f) - 0.0f; + assert(s.i[top]==0x80000000); + + s.f = 0.0f; + s.f *= 1.0f; + assert(s.i[top]==0x00000000); + + s.f = 0.0f; + s.f *= -1.0f; + assert(s.i[top]==0x80000000); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerosdq_02.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,41 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerosdq_02; + +// Check whether IEEE 754 signed zero is correctly supported. + +union S{ + double f; + uint[2] i; +} + +int main(){ + S s; + s.f=1.0; + int top = (s.i[0]==0) ? 1 : 0; + + + s.f = 0.0; + assert(s.i[top]==0x00000000); + + s.f = -0.0; + assert(s.i[top]==0x80000000); + + s.f = 0.0 - 0.0; + assert(s.i[top]==0x00000000); + + s.f = (-0.0) - 0.0; + assert(s.i[top]==0x80000000); + + s.f = 0.0; + s.f *= 1.0; + assert(s.i[top]==0x00000000); + + s.f = 0.0; + s.f *= -1.0; + assert(s.i[top]==0x80000000); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerosdq_03.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,40 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerosdq_03; + +// Check whether IEEE 754 signed zero is correctly supported. + +union S{ + ifloat f; + uint[1] i; +} + +int main(){ + S s; + int top=0; + + + s.f = 0.0fi; + assert(s.i[top]==0x00000000); + + s.f = -0.0fi; + assert(s.i[top]==0x80000000); + + s.f = 0.0fi - 0.0fi; + assert(s.i[top]==0x00000000); + + s.f = (-0.0fi) - 0.0fi; + assert(s.i[top]==0x80000000); + + s.f = 0.0fi; + s.f *= 1.0fi; + assert(s.i[top]==0x00000000); + + s.f = 0.0fi; + s.f *= -1.0fi; + assert(s.i[top]==0x80000000); + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/ieee_754_zerosdq_04.d Thu Apr 28 15:53:12 2005 +0000 @@ -0,0 +1,41 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.ieee_754_zerosdq_04; + +// Check whether IEEE 754 signed zero is correctly supported. + +union S{ + idouble f; + uint[2] i; +} + +int main(){ + S s; + s.f=1.0i; + int top = (s.i[0]==0) ? 1 : 0; + + + s.f = 0.0i; + assert(s.i[top]==0x00000000); + + s.f = -0.0i; + assert(s.i[top]==0x80000000); + + s.f = 0.0i - 0.0i; + assert(s.i[top]==0x00000000); + + s.f = (-0.0i) - 0.0i; + assert(s.i[top]==0x80000000); + + s.f = 0.0i; + s.f *= 1.0i; + assert(s.i[top]==0x00000000); + + s.f = 0.0i; + s.f *= -1.0i; + assert(s.i[top]==0x80000000); + + return 0; +}