2 * Copyright Droids Corporation, Microb Technology, Eirbot (2005)
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 * Revision : $Id: main.c,v 1.5.4.2 2007-06-12 16:18:43 zer0 Exp $
38 a = f64_from_double(A);
39 b = f64_from_double(B);
40 c = f64_from_double(C);
42 printf("************ F64\n\n");
44 printf("*** ADD\n\n");
46 f64_print(f64_add(a,b));
47 printf("\nResult should be %f\n\n", A+B);
49 f64_print(f64_add(b,c));
50 printf("\nResult should be %f\n\n", B+C);
52 f64_print(f64_add(c,a));
53 printf("\nResult should be %f\n\n", C+A);
55 printf("*** SUB\n\n");
57 f64_print(f64_sub(a,b));
58 printf("\nResult should be %f\n\n", A-B);
60 f64_print(f64_sub(b,c));
61 printf("\nResult should be %f\n\n", B-C);
63 f64_print(f64_sub(c,a));
64 printf("\nResult should be %f\n\n", C-A);
66 printf("*** INV\n\n");
68 f64_print(f64_inv(a));
69 printf("\nResult should be %f\n\n", 1.0/A);
71 f64_print(f64_inv(b));
72 printf("\nResult should be %f\n\n", 1.0/B);
74 f64_print(f64_inv(c));
75 printf("\nResult should be %f\n\n", 1.0/C);
77 printf("*** MUL\n\n");
79 f64_print(f64_mul(a,b));
80 printf("\nResult should be %f\n\n", A*B);
82 f64_print(f64_mul(b,c));
83 printf("\nResult should be %f\n\n", B*C);
85 f64_print(f64_mul(c,a));
86 printf("\nResult should be %f\n\n", C*A);
88 printf("*** DIV\n\n");
90 f64_print(f64_div(a,b));
91 printf("\nResult should be %f\n\n", A/B);
93 f64_print(f64_div(b,c));
94 printf("\nResult should be %f\n\n", B/C);
96 f64_print(f64_div(c,a));
97 printf("\nResult should be %f\n\n", C/A);
99 printf("*** SQRT\n\n");
100 printf("Result is ");
101 f64_print(f64_sqrt(a));
103 printf("\nResult should be %f\n\n", sqrt(A));
104 printf("Result is ");
105 f64_print(f64_sqrt(b));
106 printf("\nResult should be %f\n\n", sqrt(B));
107 printf("Result is ");
108 f64_print(f64_sqrt(c));
109 printf("\nResult should be %f\n\n", sqrt(C));
120 a = f32_from_double(A);
121 b = f32_from_double(B);
122 c = f32_from_double(C);
124 printf("************ F32\n\n");
126 printf("*** ADD\n\n");
127 printf("Result is ");
128 f32_print(f32_add(a,b));
129 printf("\nResult should be %f\n\n", A+B);
130 printf("Result is ");
131 f32_print(f32_add(b,c));
132 printf("\nResult should be %f\n\n", B+C);
133 printf("Result is ");
134 f32_print(f32_add(c,a));
135 printf("\nResult should be %f\n\n", C+A);
137 printf("*** SUB\n\n");
138 printf("Result is ");
139 f32_print(f32_sub(a,b));
140 printf("\nResult should be %f\n\n", A-B);
141 printf("Result is ");
142 f32_print(f32_sub(b,c));
143 printf("\nResult should be %f\n\n", B-C);
144 printf("Result is ");
145 f32_print(f32_sub(c,a));
146 printf("\nResult should be %f\n\n", C-A);
148 printf("*** INV\n\n");
149 printf("Result is ");
150 f32_print(f32_inv(a));
151 printf("\nResult should be %f\n\n", 1.0/A);
152 printf("Result is ");
153 f32_print(f32_inv(b));
154 printf("\nResult should be %f\n\n", 1.0/B);
155 printf("Result is ");
156 f32_print(f32_inv(c));
157 printf("\nResult should be %f\n\n", 1.0/C);
159 printf("*** MUL\n\n");
160 printf("Result is ");
161 f32_print(f32_mul(a,b));
162 printf("\nResult should be %f\n\n", A*B);
163 printf("Result is ");
164 f32_print(f32_mul(b,c));
165 printf("\nResult should be %f\n\n", B*C);
166 printf("Result is ");
167 f32_print(f32_mul(c,a));
168 printf("\nResult should be %f\n\n", C*A);
170 printf("*** DIV\n\n");
171 printf("Result is ");
172 f32_print(f32_div(a,b));
173 printf("\nResult should be %f\n\n", A/B);
174 printf("Result is ");
175 f32_print(f32_div(b,c));
176 printf("\nResult should be %f\n\n", B/C);
177 printf("Result is ");
178 f32_print(f32_div(c,a));
179 printf("\nResult should be %f\n\n", C/A);
181 printf("*** SQRT\n\n");
182 printf("Result is ");
183 f32_print(f32_sqrt(a));
184 printf("\nResult should be %f\n\n", sqrt(A));
185 printf("Result is ");
186 f32_print(f32_sqrt(b));
187 printf("\nResult should be %f\n\n", sqrt(B));
188 printf("Result is ");
189 f32_print(f32_sqrt(c));
190 printf("\nResult should be %f\n\n", sqrt(C));
200 a = f16_from_double(A);
201 b = f16_from_double(B);
202 c = f16_from_double(C);
204 printf("************ F16\n\n");
206 printf("*** ADD\n\n");
207 printf("Result is ");
208 f16_print(f16_add(a,b));
209 printf("\nResult should be %f\n\n", A+B);
210 printf("Result is ");
211 f16_print(f16_add(b,c));
212 printf("\nResult should be %f\n\n", B+C);
213 printf("Result is ");
214 f16_print(f16_add(c,a));
215 printf("\nResult should be %f\n\n", C+A);
217 printf("*** SUB\n\n");
218 printf("Result is ");
219 f16_print(f16_sub(a,b));
220 printf("\nResult should be %f\n\n", A-B);
221 printf("Result is ");
222 f16_print(f16_sub(b,c));
223 printf("\nResult should be %f\n\n", B-C);
224 printf("Result is ");
225 f16_print(f16_sub(c,a));
226 printf("\nResult should be %f\n\n", C-A);
228 printf("*** INV\n\n");
229 printf("Result is ");
230 f16_print(f16_inv(a));
231 printf("\nResult should be %f\n\n", 1.0/A);
232 printf("Result is ");
233 f16_print(f16_inv(b));
234 printf("\nResult should be %f\n\n", 1.0/B);
235 printf("Result is ");
236 f16_print(f16_inv(c));
237 printf("\nResult should be %f\n\n", 1.0/C);
239 printf("*** MUL\n\n");
240 printf("Result is ");
241 f16_print(f16_mul(a,b));
242 printf("\nResult should be %f\n\n", A*B);
243 printf("Result is ");
244 f16_print(f16_mul(b,c));
245 printf("\nResult should be %f\n\n", B*C);
246 printf("Result is ");
247 f16_print(f16_mul(c,a));
248 printf("\nResult should be %f\n\n", C*A);
250 printf("*** DIV\n\n");
251 printf("Result is ");
252 f16_print(f16_div(a,b));
253 printf("\nResult should be %f\n\n", A/B);
254 printf("Result is ");
255 f16_print(f16_div(b,c));
256 printf("\nResult should be %f\n\n", B/C);
257 printf("Result is ");
258 f16_print(f16_div(c,a));
259 printf("\nResult should be %f\n\n", C/A);
261 printf("*** SQRT\n\n");
262 printf("Result is ");
263 f16_print(f16_sqrt(a));
264 printf("\nResult should be %f\n\n", sqrt(A));
265 printf("Result is ");
266 f16_print(f16_sqrt(b));
267 printf("\nResult should be %f\n\n", sqrt(B));
268 printf("Result is ");
269 f16_print(f16_sqrt(c));
270 printf("\nResult should be %f\n\n", sqrt(C));
280 fdevopen((void*)uart0_dev_send, (void*)uart0_dev_recv);