Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

flpt.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1991 Microsoft Corporation 00004 00005 Module Name: 00006 00007 flpt.h 00008 00009 Abstract: 00010 00011 This module is the header file for the user mode IEEE floating point 00012 tests. 00013 00014 Author: 00015 00016 David N. Cutler (davec) 1-Jul-1991 00017 00018 Environment: 00019 00020 User mode only. 00021 00022 Revision History: 00023 00024 --*/ 00025 00026 #include "stdio.h" 00027 #include "string.h" 00028 #include "ntos.h" 00029 00030 // 00031 // Floating status register bits. 00032 // 00033 00034 #define SI (1 << 2) 00035 #define SU (1 << 3) 00036 #define SO (1 << 4) 00037 #define SZ (1 << 5) 00038 #define SV (1 << 6) 00039 00040 #define EI (1 << 7) 00041 #define EU (1 << 8) 00042 #define EO (1 << 9) 00043 #define EZ (1 << 10) 00044 #define EV (1 << 11) 00045 00046 #define XI (1 << 12) 00047 #define XU (1 << 13) 00048 #define XO (1 << 14) 00049 #define XZ (1 << 15) 00050 #define XV (1 << 16) 00051 00052 #define CC (1 << 23) 00053 00054 #define FS (1 << 24) 00055 00056 // 00057 // Define negative infinity. 00058 // 00059 00060 #define MINUS_DOUBLE_INFINITY_VALUE (DOUBLE_INFINITY_VALUE_HIGH | (1 << 31)) 00061 #define MINUS_SINGLE_INFINITY_VALUE (SINGLE_INFINITY_VALUE | (1 << 31)) 00062 00063 // 00064 // Define signaling NaN prefix values. 00065 // 00066 00067 #define DOUBLE_SIGNAL_NAN_PREFIX 0x7ff80000 00068 #define SINGLE_SIGNAL_NAN_PREFIX 0x7fc00000 00069 00070 // 00071 // Define sign bit. 00072 // 00073 00074 #define SIGN (1 << 31) 00075 00076 // 00077 // Define floating status union. 00078 // 00079 00080 typedef union _FLOATING_STATUS { 00081 FSR Status; 00082 ULONG Data; 00083 } FLOATING_STATUS, *PFLOATING_STATUS; 00084 00085 // 00086 // Define procedure prootypes. 00087 // 00088 00089 ULONG 00090 AddDouble ( 00091 IN ULONG RoundingMode, 00092 IN PULARGE_INTEGER Addend1, 00093 IN PULARGE_INTEGER Addend2, 00094 OUT PULARGE_INTEGER Result 00095 ); 00096 00097 ULONG 00098 DivideDouble ( 00099 IN ULONG RoundingMode, 00100 IN PULARGE_INTEGER Dividend, 00101 IN PULARGE_INTEGER Divisor, 00102 OUT PULARGE_INTEGER Result 00103 ); 00104 00105 ULONG 00106 MultiplyDouble ( 00107 IN ULONG RoundingMode, 00108 IN PULARGE_INTEGER Multiplicand, 00109 IN PULARGE_INTEGER Multiplier, 00110 OUT PULARGE_INTEGER Result 00111 ); 00112 00113 ULONG 00114 SubtractDouble ( 00115 IN ULONG RoundingMode, 00116 IN PULARGE_INTEGER Subtrahend, 00117 IN PULARGE_INTEGER Minuend, 00118 OUT PULARGE_INTEGER Result 00119 ); 00120 00121 ULONG 00122 AddSingle ( 00123 IN ULONG RoundingMode, 00124 IN ULONG Addend1, 00125 IN ULONG Addend2, 00126 OUT PULONG Result 00127 ); 00128 00129 ULONG 00130 DivideSingle ( 00131 IN ULONG RoundingMode, 00132 IN ULONG Dividend, 00133 IN ULONG Divisor, 00134 OUT PULONG Result 00135 ); 00136 00137 ULONG 00138 MultiplySingle ( 00139 IN ULONG RoundingMode, 00140 IN ULONG Multiplicand, 00141 IN ULONG Multiplier, 00142 OUT PULONG Result 00143 ); 00144 00145 ULONG 00146 SubtractSingle ( 00147 IN ULONG RoundingMode, 00148 IN ULONG Subtrahend, 00149 IN ULONG Minuend, 00150 OUT PULONG Result 00151 ); 00152 00153 ULONG 00154 AbsoluteDouble ( 00155 IN ULONG RoundingMode, 00156 IN PULARGE_INTEGER Operand, 00157 OUT PULARGE_INTEGER Result 00158 ); 00159 00160 ULONG 00161 CeilToLongwordFromDouble ( 00162 IN ULONG RoundingMode, 00163 IN PULARGE_INTEGER Source, 00164 OUT PULONG Result 00165 ); 00166 00167 ULONG 00168 CeilToLongwordFromSingle ( 00169 IN ULONG RoundingMode, 00170 IN ULONG Source, 00171 OUT PULONG Result 00172 ); 00173 00174 ULONG 00175 ConvertToDoubleFromSingle ( 00176 IN ULONG RoundingMode, 00177 IN ULONG Source, 00178 OUT PULARGE_INTEGER Result 00179 ); 00180 00181 ULONG 00182 ConvertToLongwordFromDouble ( 00183 IN ULONG RoundingMode, 00184 IN PULARGE_INTEGER Source, 00185 OUT PULONG Result 00186 ); 00187 00188 ULONG 00189 ConvertToLongwordFromSingle ( 00190 IN ULONG RoundingMode, 00191 IN ULONG Source, 00192 OUT PULONG Result 00193 ); 00194 00195 ULONG 00196 ConvertToSingleFromDouble ( 00197 IN ULONG RoundingMode, 00198 IN PULARGE_INTEGER Source, 00199 OUT PULONG Result 00200 ); 00201 00202 ULONG 00203 CompareFDouble ( 00204 IN ULONG RoundingMode, 00205 IN PULARGE_INTEGER Comparand1, 00206 IN PULARGE_INTEGER Comparand2 00207 ); 00208 00209 ULONG 00210 CompareUnDouble ( 00211 IN ULONG RoundingMode, 00212 IN PULARGE_INTEGER Comparand1, 00213 IN PULARGE_INTEGER Comparand2 00214 ); 00215 00216 ULONG 00217 CompareEqDouble ( 00218 IN ULONG RoundingMode, 00219 IN PULARGE_INTEGER Comparand1, 00220 IN PULARGE_INTEGER Comparand2 00221 ); 00222 00223 ULONG 00224 CompareUeqDouble ( 00225 IN ULONG RoundingMode, 00226 IN PULARGE_INTEGER Comparand1, 00227 IN PULARGE_INTEGER Comparand2 00228 ); 00229 00230 ULONG 00231 CompareOltDouble ( 00232 IN ULONG RoundingMode, 00233 IN PULARGE_INTEGER Comparand1, 00234 IN PULARGE_INTEGER Comparand2 00235 ); 00236 00237 ULONG 00238 CompareUltDouble ( 00239 IN ULONG RoundingMode, 00240 IN PULARGE_INTEGER Comparand1, 00241 IN PULARGE_INTEGER Comparand2 00242 ); 00243 00244 ULONG 00245 CompareOleDouble ( 00246 IN ULONG RoundingMode, 00247 IN PULARGE_INTEGER Comparand1, 00248 IN PULARGE_INTEGER Comparand2 00249 ); 00250 00251 ULONG 00252 CompareUleDouble ( 00253 IN ULONG RoundingMode, 00254 IN PULARGE_INTEGER Comparand1, 00255 IN PULARGE_INTEGER Comparand2 00256 ); 00257 00258 ULONG 00259 CompareSfDouble ( 00260 IN ULONG RoundingMode, 00261 IN PULARGE_INTEGER Comparand1, 00262 IN PULARGE_INTEGER Comparand2 00263 ); 00264 00265 ULONG 00266 CompareNgleDouble ( 00267 IN ULONG RoundingMode, 00268 IN PULARGE_INTEGER Comparand1, 00269 IN PULARGE_INTEGER Comparand2 00270 ); 00271 00272 ULONG 00273 CompareSeqDouble ( 00274 IN ULONG RoundingMode, 00275 IN PULARGE_INTEGER Comparand1, 00276 IN PULARGE_INTEGER Comparand2 00277 ); 00278 00279 ULONG 00280 CompareNglDouble ( 00281 IN ULONG RoundingMode, 00282 IN PULARGE_INTEGER Comparand1, 00283 IN PULARGE_INTEGER Comparand2 00284 ); 00285 00286 ULONG 00287 CompareLtDouble ( 00288 IN ULONG RoundingMode, 00289 IN PULARGE_INTEGER Comparand1, 00290 IN PULARGE_INTEGER Comparand2 00291 ); 00292 00293 ULONG 00294 CompareNgeDouble ( 00295 IN ULONG RoundingMode, 00296 IN PULARGE_INTEGER Comparand1, 00297 IN PULARGE_INTEGER Comparand2 00298 ); 00299 00300 ULONG 00301 CompareLeDouble ( 00302 IN ULONG RoundingMode, 00303 IN PULARGE_INTEGER Comparand1, 00304 IN PULARGE_INTEGER Comparand2 00305 ); 00306 00307 ULONG 00308 CompareNgtDouble ( 00309 IN ULONG RoundingMode, 00310 IN PULARGE_INTEGER Comparand1, 00311 IN PULARGE_INTEGER Comparand2 00312 ); 00313 00314 ULONG 00315 CompareFSingle ( 00316 IN ULONG RoundingMode, 00317 IN ULONG Comparand1, 00318 IN ULONG Comparand2 00319 ); 00320 00321 ULONG 00322 CompareUnSingle ( 00323 IN ULONG RoundingMode, 00324 IN ULONG Comparand1, 00325 IN ULONG Comparand2 00326 ); 00327 00328 ULONG 00329 CompareEqSingle ( 00330 IN ULONG RoundingMode, 00331 IN ULONG Comparand1, 00332 IN ULONG Comparand2 00333 ); 00334 00335 ULONG 00336 CompareUeqSingle ( 00337 IN ULONG RoundingMode, 00338 IN ULONG Comparand1, 00339 IN ULONG Comparand2 00340 ); 00341 00342 ULONG 00343 CompareOltSingle ( 00344 IN ULONG RoundingMode, 00345 IN ULONG Comparand1, 00346 IN ULONG Comparand2 00347 ); 00348 00349 ULONG 00350 CompareUltSingle ( 00351 IN ULONG RoundingMode, 00352 IN ULONG Comparand1, 00353 IN ULONG Comparand2 00354 ); 00355 00356 ULONG 00357 CompareOleSingle ( 00358 IN ULONG RoundingMode, 00359 IN ULONG Comparand1, 00360 IN ULONG Comparand2 00361 ); 00362 00363 ULONG 00364 CompareUleSingle ( 00365 IN ULONG RoundingMode, 00366 IN ULONG Comparand1, 00367 IN ULONG Comparand2 00368 ); 00369 00370 ULONG 00371 CompareSfSingle ( 00372 IN ULONG RoundingMode, 00373 IN ULONG Comparand1, 00374 IN ULONG Comparand2 00375 ); 00376 00377 ULONG 00378 CompareNgleSingle ( 00379 IN ULONG RoundingMode, 00380 IN ULONG Comparand1, 00381 IN ULONG Comparand2 00382 ); 00383 00384 ULONG 00385 CompareSeqSingle ( 00386 IN ULONG RoundingMode, 00387 IN ULONG Comparand1, 00388 IN ULONG Comparand2 00389 ); 00390 00391 ULONG 00392 CompareNglSingle ( 00393 IN ULONG RoundingMode, 00394 IN ULONG Comparand1, 00395 IN ULONG Comparand2 00396 ); 00397 00398 ULONG 00399 CompareLtSingle ( 00400 IN ULONG RoundingMode, 00401 IN ULONG Comparand1, 00402 IN ULONG Comparand2 00403 ); 00404 00405 ULONG 00406 CompareNgeSingle ( 00407 IN ULONG RoundingMode, 00408 IN ULONG Comparand1, 00409 IN ULONG Comparand2 00410 ); 00411 00412 ULONG 00413 CompareLeSingle ( 00414 IN ULONG RoundingMode, 00415 IN ULONG Comparand1, 00416 IN ULONG Comparand2 00417 ); 00418 00419 ULONG 00420 CompareNgtSingle ( 00421 IN ULONG RoundingMode, 00422 IN ULONG Comparand1, 00423 IN ULONG Comparand2 00424 ); 00425 00426 ULONG 00427 FloorToLongwordFromDouble ( 00428 IN ULONG RoundingMode, 00429 IN PULARGE_INTEGER Source, 00430 OUT PULONG Result 00431 ); 00432 00433 ULONG 00434 FloorToLongwordFromSingle ( 00435 IN ULONG RoundingMode, 00436 IN ULONG Source, 00437 OUT PULONG Result 00438 ); 00439 00440 ULONG 00441 MoveDouble ( 00442 IN ULONG RoundingMode, 00443 IN PULARGE_INTEGER Operand, 00444 OUT PULARGE_INTEGER Result 00445 ); 00446 00447 ULONG 00448 NegateDouble ( 00449 IN ULONG RoundingMode, 00450 IN PULARGE_INTEGER Operand, 00451 OUT PULARGE_INTEGER Result 00452 ); 00453 00454 ULONG 00455 AbsoluteSingle ( 00456 IN ULONG RoundingMode, 00457 IN ULONG Operand, 00458 OUT PULONG Result 00459 ); 00460 00461 ULONG 00462 MoveSingle ( 00463 IN ULONG RoundingMode, 00464 IN ULONG Operand, 00465 OUT PULONG Result 00466 ); 00467 00468 ULONG 00469 NegateSingle ( 00470 IN ULONG RoundingMode, 00471 IN ULONG Operand, 00472 OUT PULONG Result 00473 ); 00474 00475 ULONG 00476 RoundToLongwordFromDouble ( 00477 IN ULONG RoundingMode, 00478 IN PULARGE_INTEGER Source, 00479 OUT PULONG Result 00480 ); 00481 00482 ULONG 00483 RoundToLongwordFromSingle ( 00484 IN ULONG RoundingMode, 00485 IN ULONG Source, 00486 OUT PULONG Result 00487 ); 00488 00489 ULONG 00490 TruncateToLongwordFromDouble ( 00491 IN ULONG RoundingMode, 00492 IN PULARGE_INTEGER Source, 00493 OUT PULONG Result 00494 ); 00495 00496 ULONG 00497 TruncateToLongwordFromSingle ( 00498 IN ULONG RoundingMode, 00499 IN ULONG Source, 00500 OUT PULONG Result 00501 ); 00502 00503 VOID 00504 Test1 ( 00505 VOID 00506 ); 00507 00508 VOID 00509 Test2 ( 00510 VOID 00511 ); 00512 00513 VOID 00514 Test3 ( 00515 VOID 00516 ); 00517 00518 VOID 00519 Test4 ( 00520 VOID 00521 ); 00522 00523 VOID 00524 Test5 ( 00525 VOID 00526 ); 00527 00528 VOID 00529 Test6 ( 00530 VOID 00531 ); 00532 00533 VOID 00534 Test7 ( 00535 VOID 00536 ); 00537 00538 VOID 00539 Test8 ( 00540 VOID 00541 ); 00542 00543 VOID 00544 Test9 ( 00545 VOID 00546 ); 00547 00548 VOID 00549 Test10 ( 00550 VOID 00551 ); 00552 00553 VOID 00554 Test11 ( 00555 VOID 00556 ); 00557 00558 VOID 00559 Test12 ( 00560 VOID 00561 ); 00562 00563 VOID 00564 Test13 ( 00565 VOID 00566 ); 00567 00568 VOID 00569 Test14 ( 00570 VOID 00571 ); 00572 00573 VOID 00574 Test15 ( 00575 VOID 00576 ); 00577 00578 VOID 00579 Test16 ( 00580 VOID 00581 ); 00582 00583 VOID 00584 Test17 ( 00585 VOID 00586 ); 00587 00588 VOID 00589 Test18 ( 00590 VOID 00591 ); 00592 00593 VOID 00594 Test19 ( 00595 VOID 00596 ); 00597 00598 VOID 00599 Test20 ( 00600 VOID 00601 ); 00602 00603 VOID 00604 Test21 ( 00605 VOID 00606 ); 00607 00608 VOID 00609 Test22 ( 00610 VOID 00611 ); 00612 00613 VOID 00614 Test23 ( 00615 VOID 00616 ); 00617 00618 VOID 00619 Test24 ( 00620 VOID 00621 ); 00622 00623 VOID 00624 Test25 ( 00625 VOID 00626 ); 00627 00628 VOID 00629 Test26 ( 00630 VOID 00631 );

Generated on Sat May 15 19:40:02 2004 for test by doxygen 1.3.7