annotate test/float.c @ 108:69e2e763cce5 powerpc-asm-first-try

object assemble first try.
author kono
date Tue, 18 Mar 2003 20:50:37 +0900
parents 7d8de41390d8
children fc7de4faedfd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
1 #include "stdio.h"
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
2
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
3 void test1();
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
4 void print(double d);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
5
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
6 extern double sin(double);
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
7 // extern float fsin(float);
94
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
8 double test2(double f,int i);
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
9
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
10 float f = 0.3;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
11 double d = 0.3;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
12 float f1 = 0.3;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
13 double d1 = 0.3;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
14 double d2 = -0.2;
96
7d8de41390d8 *** empty log message ***
kono
parents: 94
diff changeset
15 float h = 1.0;
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
16
91
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
17 int
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
18 d2i(double d) {
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
19 return (int)d;
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
20 }
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
21
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
22 double
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
23 i2d(int u) {
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
24 return (double)u;
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
25 }
90
07e3113c3c13 *** empty log message ***
kono
parents: 87
diff changeset
26
91
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
27 unsigned u;
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
28 unsigned
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
29 d2u(double d) {
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
30 return (unsigned)d;
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
31 }
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
32
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
33 double
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
34 u2d(unsigned u) {
9b1aeb62e0b9 powerpc continue... (floating point)
kono
parents: 90
diff changeset
35 return (double)u;
90
07e3113c3c13 *** empty log message ***
kono
parents: 87
diff changeset
36 }
07e3113c3c13 *** empty log message ***
kono
parents: 87
diff changeset
37
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
38 int
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
39 main(int ac,char *av[]) {
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
40 double g;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
41 int i;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
42 unsigned u;
108
69e2e763cce5 object assemble first try.
kono
parents: 96
diff changeset
43 double d00 = ac?0.5:3;
69e2e763cce5 object assemble first try.
kono
parents: 96
diff changeset
44
69e2e763cce5 object assemble first try.
kono
parents: 96
diff changeset
45 printf("%g\n",d00);
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
46
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
47 g = 1.0;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
48 g = -g;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
49 printf("%g\ncond ",g);
1a723130a2c7 condtional
kono
parents: 82
diff changeset
50 if(f==f*1.0) printf("1 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
51 if(d==f*1.0) printf("2 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
52 if(f==f1) printf("3 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
53 if(d==d1) printf("4 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
54 if(d==d2) printf("-4 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
55 if(d>d1) printf("5 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
56 if(d>d2) printf("-5 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
57 if(d>=d1) printf("6 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
58 if(d>=d2) printf("-6 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
59 if(d!=d1) printf("7 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
60 if(d!=d2) printf("-7 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
61 if(d<d1) printf("8 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
62 if(d<d2) printf("-8 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
63 if(d<=d1) printf("9 ");
1a723130a2c7 condtional
kono
parents: 82
diff changeset
64 if(d<=d2) printf("-9 ");
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
65 d = 123.4234; f=-234.333;
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
66 i = d;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
67 d = i;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
68 i = f;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
69 f = i;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
70 printf("\n%d %g %f",i,d,f);
94
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
71 f = g = d = d1 = d2 = f;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
72 printf(" %d %g %f %g\n",i,d,f,g);
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
73
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
74 d = 4204967294.4234; f=4204967294.4234;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
75 u = d;
3789aef7331d minor fix
kono
parents: 84
diff changeset
76 d = u;
3789aef7331d minor fix
kono
parents: 84
diff changeset
77 u = f;
3789aef7331d minor fix
kono
parents: 84
diff changeset
78 f = u;
3789aef7331d minor fix
kono
parents: 84
diff changeset
79 printf("%u %g %f\n",u,d,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
80
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
81 print(1.0);
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
82 print(0.1234);
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
83 print(1.234e10);
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
84 print(1.234e-10);
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
85
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
86 test1();
94
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
87 printf("nested call: %g\n",test2(test2(test2(test2(-0.333,3),5),6),7));
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
88 return 0;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
89 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
90
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
91 void
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
92 print(double d)
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
93 {
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
94 float f;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
95 int *dd;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
96
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
97 f = d;
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
98
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
99 dd = (int*) &d;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
100 printf("d %g ",d);
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
101 printf("dx %08x %08x\n",*(dd),*(dd+1));
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
102
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
103 dd = (int*) &f;
84
1a723130a2c7 condtional
kono
parents: 82
diff changeset
104 printf("f %g ",f);
82
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
105 printf("dx %08x \n",*(dd));
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
106 }
25654dc29ecc First Floating Point coding done.
kono
parents: 81
diff changeset
107
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
108 double
f94ca1168520 float first try...
kono
parents: 79
diff changeset
109 testd(double i,double j)
f94ca1168520 float first try...
kono
parents: 79
diff changeset
110 {
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
111 return j+1.1+.0e3+12.3e-12;
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
112 }
f94ca1168520 float first try...
kono
parents: 79
diff changeset
113
f94ca1168520 float first try...
kono
parents: 79
diff changeset
114 float
f94ca1168520 float first try...
kono
parents: 79
diff changeset
115 testf(float i,float j)
f94ca1168520 float first try...
kono
parents: 79
diff changeset
116 {
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
117 return j+1;
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
118 }
f94ca1168520 float first try...
kono
parents: 79
diff changeset
119
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
120 void
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
121 test1()
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
122 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
123 float f;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
124 float f1;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
125 double g;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
126 double g1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
127 float *pf;
3789aef7331d minor fix
kono
parents: 84
diff changeset
128 float *pf1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
129 double *pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
130 double *pg1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
131 int n = 1;
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
132
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
133 printf("simple double ");
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
134 f = 1.3;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
135
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
136 g = 1.0;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
137 g = g+g;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
138 printf("%d:%g\t",n++,g);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
139 g1 = g*g;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
140 printf("%d:%g\t",n++,g1);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
141 g = g/g1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
142 printf("%d:%g\t",n++,g);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
143 g = g-g1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
144 printf("%d:%g\t",n++,g);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
145 g = sin(g1);
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
146 printf("%d:%g\t",n++,g);
81
f94ca1168520 float first try...
kono
parents: 79
diff changeset
147 g = testd(g,g1);
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
148 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
149 printf("\n");
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
150
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
151 printf("simple float ");
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
152 f = f+f;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
153 printf("%d:%g\t",n++,f);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
154 f1 = f*f;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
155 printf("%d:%g\t",n++,f1);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
156 f = f/f1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
157 printf("%d:%g\t",n++,f);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
158 f = f-f1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
159 printf("%d:%g\t",n++,f);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
160 f = sin(f1);
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
161 printf("%d:%g\t",n++,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
162 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
163
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
164 printf("post/pre increment ");
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
165 g1 = g;
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
166 printf("%d:%g\t",n++,g1++ - ++g);
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
167
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
168 f1 = f;
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
169 printf("%d:%g\t",n++,f1++ - ++f);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
170
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
171 g1 = g;
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
172 printf("%d:%g\t",n++,g1-- - --g);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
173
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
174 f1 = f;
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
175 printf("%d:%g\t",n++,f1-- - --f);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
176
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
177 printf("\n");
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
178 printf("simple calc ");
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
179
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
180 f=0.13; g=-0.56; f1=-0.13; g1=0.56;
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
181
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
182 g = f+f;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
183 printf("%d:%g\t",n++,g);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
184 f = g*g;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
185 printf("%d:%g\t",n++,f);
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
186 g = g*g+f*f-g1*g1;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
187 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
188 printf("\n");
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
189
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
190 printf("float argument ");
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
191 f = testf(f,f1);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
192 printf("%d:%g\t",n++,f);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
193
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
194 printf("\nindirect ");
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
195 n=1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
196 f = 1.3; pf=&f; pf1=&f1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
197
3789aef7331d minor fix
kono
parents: 84
diff changeset
198 g = 1.0; pg=&g; pg1=&g1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
199 *pg = *pg+ *pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
200 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
201 *pg1 = *pg**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
202 printf("%d:%g\t",n++,*pg1);
3789aef7331d minor fix
kono
parents: 84
diff changeset
203 *pg = *pg/ *pg1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
204 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
205 *pg = *pg-*pg1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
206 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
207 *pg = sin(*pg1);
3789aef7331d minor fix
kono
parents: 84
diff changeset
208 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
209 *pg = testd(*pg,*pg1);
3789aef7331d minor fix
kono
parents: 84
diff changeset
210 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
211 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
212
3789aef7331d minor fix
kono
parents: 84
diff changeset
213 *pf = *pf+*pf;
3789aef7331d minor fix
kono
parents: 84
diff changeset
214 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
215 *pf1 = *pf**pf;
3789aef7331d minor fix
kono
parents: 84
diff changeset
216 printf("%d:%g\t",n++,*pf1);
3789aef7331d minor fix
kono
parents: 84
diff changeset
217 *pf = *pf/ *pf1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
218 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
219 *pf = *pf-*pf1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
220 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
221 *pf = sin(*pf1);
3789aef7331d minor fix
kono
parents: 84
diff changeset
222 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
223 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
224
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
225 printf("indirect post/pre ");
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
226 *pg1 = *pg;
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
227 printf("%d:%g\t",n++,(*pg1)++ - ++(*pg));
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
228
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
229 *pf1 = *pf;
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
230 printf("%d:%g\t",n++,(*pf1)++ - ++(*pf));
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
231
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
232 *pg1 = *pg;
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
233 printf("%d:%g\t",n++, (*pg1)-- - --(*pg));
86
4d1275f8a5b5 *** empty log message ***
kono
parents: 85
diff changeset
234
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
235 *pf1 = *pf;
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
236 printf("%d:%g\t",n++, (*pf1)-- - --(*pf));
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
237 printf("\n");
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
238
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
239 *pf=0.13; *pg=-0.56; *pf1=-0.13; *pg1=0.56;
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
240
3789aef7331d minor fix
kono
parents: 84
diff changeset
241 *pg = *pf+*pf;
3789aef7331d minor fix
kono
parents: 84
diff changeset
242 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
243 *pf = *pg**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
244 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
245 *pg = *pg**pg+*pf**pf-*pg1**pg1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
246 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
247 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
248
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
249 printf("float argument ");
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
250
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
251 *pf = testf(*pf,*pf1);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
252 printf("%d:%g\t",n++,*pf);
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
253
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
254
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
255 printf("\nassop ");
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
256 n=1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
257 f = 1.3;
3789aef7331d minor fix
kono
parents: 84
diff changeset
258 g = 1.0;
3789aef7331d minor fix
kono
parents: 84
diff changeset
259
3789aef7331d minor fix
kono
parents: 84
diff changeset
260 g *= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
261 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
262 g /= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
263 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
264 g -= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
265 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
266 g += 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
267 printf("%d:%g\t",n++,g);
3789aef7331d minor fix
kono
parents: 84
diff changeset
268
3789aef7331d minor fix
kono
parents: 84
diff changeset
269 f *= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
270 printf("%d:%g\t",n++,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
271 f /= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
272 printf("%d:%g\t",n++,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
273 f -= 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
274 printf("%d:%g\t",n++,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
275 f += 2*g;
3789aef7331d minor fix
kono
parents: 84
diff changeset
276 printf("%d:%g\t",n++,f);
3789aef7331d minor fix
kono
parents: 84
diff changeset
277 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
278
3789aef7331d minor fix
kono
parents: 84
diff changeset
279 n=1;
3789aef7331d minor fix
kono
parents: 84
diff changeset
280 f = 1.3;
3789aef7331d minor fix
kono
parents: 84
diff changeset
281 g = 1.0;
3789aef7331d minor fix
kono
parents: 84
diff changeset
282
87
1738f313f98b floating point (at most) done.
kono
parents: 86
diff changeset
283 printf("indirect assop ");
85
3789aef7331d minor fix
kono
parents: 84
diff changeset
284 *pg *= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
285 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
286 *pg /= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
287 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
288 *pg -= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
289 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
290 *pg += 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
291 printf("%d:%g\t",n++,*pg);
3789aef7331d minor fix
kono
parents: 84
diff changeset
292
3789aef7331d minor fix
kono
parents: 84
diff changeset
293 *pf *= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
294 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
295 *pf /= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
296 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
297 *pf -= 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
298 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
299 *pf += 2**pg;
3789aef7331d minor fix
kono
parents: 84
diff changeset
300 printf("%d:%g\t",n++,*pf);
3789aef7331d minor fix
kono
parents: 84
diff changeset
301 printf("\n");
3789aef7331d minor fix
kono
parents: 84
diff changeset
302
3789aef7331d minor fix
kono
parents: 84
diff changeset
303
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
304 return;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
305 }
94
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
306
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
307 double
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
308 test2(double f,int i)
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
309 {
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
310 double g,h;
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
311
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
312 if (i<=0) return f;
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
313 g = f*2;
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
314 h = f-0.5;
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
315 return h/3-(3.0-(g+3)*test2(f*0.5,i-1)/(h-1));
1ad7045741a7 float dbinop fix
kono
parents: 91
diff changeset
316 }