-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathu-float.cc
108 lines (93 loc) · 3.29 KB
/
u-float.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <lvv/math.h>
using lvv::eq;
#include <lvv/lvv.h>
#include <lvv/check.h>
using namespace lvv;
//#include <lopti/convert-gsl.h>
using namespace std;
#include <lvv/float.h>
int
main() {
{ cout << " ***** FLOOR (DOUBLE) *******\n";
using lvv::fp;
CHECKeq(fp<float>::mantissa_size,23);
CHECKeq(fp<float>::exponent_size,8);
}
{ cout << " ***** FLOOR (DOUBLE) *******\n";
using lvv::floor;
double d;
CHECK((d = 0.0, floor(d) == 0. )) ;
CHECK((d = 0.2, floor(d) == 0. )) ;
CHECK((d = 0.9, floor(d) == 0. )) ;
CHECK((d = 1.0, floor(d) == 1. )) ;
CHECK((d = 1.1, floor(d) == 1. )) ;
CHECK((d = 1.9, floor(d) == 1. )) ;
CHECK((d = 99999.2, floor(d) == 99999.f )) ;
CHECK((d = -0.0, floor(d) == 0. )) ;
CHECK((d = -0.2, floor(d) == -1. )) ;
CHECK((d = -0.9, floor(d) == -1. )) ;
CHECK((d = -1.0, floor(d) == -1. )) ;
CHECK((d = -1.1, floor(d) == -2. )) ;
CHECK((d = -1.9, floor(d) == -2. )) ;
CHECK((d = -12345.2, floor(d) == -12346.f )) ;
}
{ cout << " ***** FLOOR (FLOAT) *******\n";
using lvv::floor;
float f;
CHECK((f = 0.0, floor(f) == 0.f )) ;
CHECK((f = 0.2, floor(f) == 0.f )) ;
CHECK((f = 0.9, floor(f) == 0.f )) ;
CHECK((f = 1.0, floor(f) == 1.f )) ;
CHECK((f = 1.1, floor(f) == 1.f )) ;
CHECK((f = 1.9, floor(f) == 1.f )) ;
CHECK((f = 99999.2, floor(f) == 99999.f )) ;
CHECK((f = -0.0, floor(f) == 0.f )) ;
CHECK((f = -0.2, floor(f) == -1.f )) ;
CHECK((f = -0.9, floor(f) == -1.f )) ;
CHECK((f = -1.0, floor(f) == -1.f )) ;
CHECK((f = -1.1, floor(f) == -2.f )) ;
CHECK((f = -1.9, floor(f) == -2.f )) ;
CHECK((f = -12345.2, floor(f) == -12346.f )) ;
}
{ cout << " ***** TRUNC (FLOAT) ******* - STILL BROKEN\n";
using lvv::trunc;
float f;
CHECK((f = 0.0 , trunc(f) == 0.f ) ) ;
CHECK((f = 0.2 , trunc(f) == 0.f ) ) ;
CHECK((f = 0.9 , trunc(f) == 0.f ) ) ;
CHECK((f = 1.0 , trunc(f) == 1.f ) ) ;
CHECK((f = 1.1 , trunc(f) == 1.f ) ) ;
CHECK((f = 1.9 , trunc(f) == 1.f ) ) ;
CHECK((f = 99999.2 , trunc(f) == 99999.f ) ) ;
CHECK((f = -0.0 , trunc(f) == 0.f ) ) ;
CHECK((f = -0.2 , trunc(f) == -0.f ) ) ;
CHECK((f = -0.9 , trunc(f) == -0.f ) ) ;
CHECK((f = -1.0 , trunc(f) == -1.f ) ) ;
CHECK((f = -1.1 , trunc(f) == -1.f ) ) ;
CHECK((f = -1.9 , trunc(f) == -1.f ) ) ;
CHECK((f = -12345.2, trunc(f) == -12345.f) ) ;
}
CHECK_EXIT;
}
/*
#include <iostream>
using namespace std;
using namespace lvv;
int main () {
float f;
f = 0 ; cout << f << "->" << f - fme + fm -fm << endl;
f = 0.2 ; cout << f << "->" << f - fme + fm -fm << endl;
f = 0.9 ; cout << f << "->" << f - fme + fm -fm << endl;
f = 1.8 ; cout << f << "->" << f - fme + fm -fm << endl;
f = -0.2; cout << f << "->" << f - fme + fm -fm << endl;
f = -1.2; cout << f << "->" << f - fme + fm -fm << endl;
f = -1.9; cout << f << "->" << f - fme + fm -fm << endl;
double d;
d=0; cout << d << " -> " << d - dme + dm -dm << endl;
d=0.2; cout << d << " -> " << d - dme + dm -dm << endl;
d=0.9; cout << d << " -> " << d - dme + dm -dm << endl;
d=1.8; cout << d << " -> " << d - dme + dm -dm << endl;
d=-0.2; cout << d << " -> " << d - dme + dm -dm << endl;
d=-1.2; cout << d << " -> " << d - dme + dm -dm << endl;
d=-1.9; cout << d << " -> " << d - dme + dm -dm << endl;
}*/