00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00052 #ifndef DK_MA_INC
00053 #define DK_MA_INC
00054
00055 #include <dk.h>
00056 #include <dktypes.h>
00057
00058 #if defined(EXTERN)
00059 #undef EXTERN
00060 #endif
00061 #ifndef DK_MA_C
00062 #if !DK_HAVE_PROTOTYPES
00063 #define EXTERN extern
00064 #else
00065 #define EXTERN
00066 #endif
00067 #else
00068 #define EXTERN
00069 #endif
00070
00071 #if defined(__cplusplus)
00072 extern "C" {
00073 #endif
00074
00082 EXTERN int dkma_get_error DK_PR((int r));
00083
00090 EXTERN unsigned long
00091 dkma_add_ulong_ok DK_PR((unsigned long u1, unsigned long u2, int *ok));
00092
00099 EXTERN unsigned long
00100 dkma_sub_ulong_ok DK_PR((unsigned long u1, unsigned long u2, int *ok));
00101
00108 EXTERN unsigned long
00109 dkma_mul_ulong_ok DK_PR((unsigned long u1, unsigned long u2, int *ok));
00110
00117 EXTERN unsigned long
00118 dkma_div_ulong_ok DK_PR((unsigned long u1, unsigned long u2, int *ok));
00119
00125 EXTERN unsigned long
00126 dkma_add_ulong DK_PR((unsigned long u1, unsigned long u2));
00127
00133 EXTERN unsigned long
00134 dkma_sub_ulong DK_PR((unsigned long u1, unsigned long u2));
00135
00141 EXTERN unsigned long
00142 dkma_mul_ulong DK_PR((unsigned long u1, unsigned long u2));
00143
00149 EXTERN unsigned long
00150 dkma_div_ulong DK_PR((unsigned long u1, unsigned long u2));
00151
00158 EXTERN long
00159 dkma_add_long_ok DK_PR((long l1, long l2, int *ok));
00160
00167 EXTERN long
00168 dkma_sub_long_ok DK_PR((long l1, long l2, int *ok));
00169
00176 EXTERN long
00177 dkma_mul_long_ok DK_PR((long l1, long l2, int *ok));
00178
00185 EXTERN long
00186 dkma_div_long_ok DK_PR((long l1, long l2, int *ok));
00187
00193 EXTERN long
00194 dkma_add_long DK_PR((long l1, long l2));
00195
00201 EXTERN long
00202 dkma_sub_long DK_PR((long l1, long l2));
00203
00209 EXTERN long
00210 dkma_mul_long DK_PR((long l1, long l2));
00211
00217 EXTERN long
00218 dkma_div_long DK_PR((long l1, long l2));
00219
00226 EXTERN double
00227 dkma_add_double_ok DK_PR((double d1, double d2, int *ok));
00228
00235 EXTERN double
00236 dkma_sub_double_ok DK_PR((double d1, double d2, int *ok));
00237
00244 EXTERN double
00245 dkma_mul_double_ok DK_PR((double d1, double d2, int *ok));
00246
00253 EXTERN double
00254 dkma_div_double_ok DK_PR((double d1, double d2, int *ok));
00255
00261 EXTERN double
00262 dkma_add_double DK_PR((double d1, double d2));
00263
00269 EXTERN double
00270 dkma_sub_double DK_PR((double d1, double d2));
00271
00277 EXTERN double
00278 dkma_mul_double DK_PR((double d1, double d2));
00279
00285 EXTERN double
00286 dkma_div_double DK_PR((double d1, double d2));
00287
00293 EXTERN double
00294 dkma_ul_to_double_ok DK_PR((unsigned long ul, int *ok));
00295
00301 EXTERN double
00302 dkma_ull_to_double_ok DK_PR((dk_long_long_unsigned_t ul, int *ok));
00303
00306 EXTERN double
00307 dkma_ul_to_double DK_PR((unsigned long ul));
00308
00313 EXTERN double
00314 dkma_ull_to_double DK_PR((dk_long_long_unsigned_t ul));
00315
00321 EXTERN double
00322 dkma_l_to_double_ok DK_PR((long l, int *ok));
00323
00328 EXTERN double
00329 dkma_l_to_double DK_PR((long l));
00330
00336 EXTERN unsigned long
00337 dkma_double_to_ul_ok DK_PR((double d, int *ok));
00338
00343 EXTERN unsigned long
00344 dkma_double_to_ul DK_PR((double d));
00345
00351 EXTERN long
00352 dkma_double_to_l_ok DK_PR((double d, int *ok));
00353
00358 EXTERN long
00359 dkma_double_to_l DK_PR((double d));
00360
00366 EXTERN double
00367 dkma_double_restrict_digits DK_PR((double x, unsigned d));
00368
00375 EXTERN double
00376 dkma_double_restrict_downwards DK_PR((double x, unsigned d));
00377
00384 EXTERN dk_long_long_unsigned_t
00385 dkma_add_ull_ok DK_PR((dk_long_long_unsigned_t o1,\
00386 dk_long_long_unsigned_t o2, int *ok));
00387
00393 EXTERN dk_long_long_unsigned_t
00394 dkma_add_ull DK_PR((dk_long_long_unsigned_t o1, dk_long_long_unsigned_t o2));
00395
00402 EXTERN dk_long_long_unsigned_t
00403 dkma_sub_ull_ok DK_PR((dk_long_long_unsigned_t o1,\
00404 dk_long_long_unsigned_t o2, int *ok));
00405
00411 EXTERN dk_long_long_unsigned_t
00412 dkma_sub_ull DK_PR((dk_long_long_unsigned_t o1, dk_long_long_unsigned_t o2));
00413
00420 EXTERN dk_long_long_unsigned_t
00421 dkma_mul_ull_ok DK_PR((dk_long_long_unsigned_t o1,\
00422 dk_long_long_unsigned_t o2, int *ok));
00423
00429 EXTERN dk_long_long_unsigned_t
00430 dkma_mull_ull DK_PR((dk_long_long_unsigned_t o1, dk_long_long_unsigned_t o2));
00431
00438 EXTERN dk_long_long_unsigned_t
00439 dkma_div_ull_ok DK_PR((dk_long_long_unsigned_t o1,\
00440 dk_long_long_unsigned_t o2, int *ok));
00441
00447 EXTERN dk_long_long_unsigned_t
00448 dkma_div_ull DK_PR((dk_long_long_unsigned_t o1, dk_long_long_unsigned_t o2));
00449
00455 EXTERN double
00456 dkma_rint DK_PR((double d));
00457
00465 EXTERN double
00466 dkma_atan2 DK_PR((double y, double x));
00467
00473 EXTERN dk_long_long_unsigned_t
00474 dkma_ull_gcd DK_PR((dk_long_long_unsigned_t l1, dk_long_long_unsigned_t l2));
00475
00483 EXTERN dk_long_long_unsigned_t
00484 dkma_ull_lcm_ok DK_PR((dk_long_long_unsigned_t l1, dk_long_long_unsigned_t l2, int *ec));
00485
00491 EXTERN dk_long_long_unsigned_t
00492 dkma_ull_lcm DK_PR((dk_long_long_unsigned_t l1, dk_long_long_unsigned_t l2));
00493
00499 EXTERN unsigned long
00500 dkma_ul_gcd DK_PR((unsigned long l1, unsigned long l2));
00501
00509 EXTERN unsigned long
00510 dkma_ul_lcm_ok DK_PR((unsigned long l1, unsigned long l2, int *ec));
00511
00517 EXTERN unsigned long
00518 dkma_ul_lcm DK_PR((unsigned long l1, unsigned long l2));
00519
00525 EXTERN long
00526 dkma_l_gcd DK_PR((long l1, long l2));
00527
00535 EXTERN long
00536 dkma_l_lcm_ok DK_PR((long l1, long l2, int *ec));
00537
00543 EXTERN long
00544 dkma_l_lcm DK_PR((long l1, long l2));
00545
00550 EXTERN void
00551 dkma_fputs_double_no_exp DK_PR((FILE *f, double d));
00552
00559 EXTERN void
00560 dkma_fputs_double_str_no_exp DK_PR((FILE *f, char *s));
00561
00562 #if defined(__cplusplus)
00563 }
00564 #endif
00565
00566
00567 #ifndef M_PI
00568
00569 #define M_PI 3.14159265358979323846
00570 #endif
00571 #ifndef M_PI_2
00572
00573 #define M_PI_2 1.57079632679489661923
00574 #endif
00575
00576 #endif
00577