1 2 // automatically generated by m4 from headers in proto subdir 3 4 5 #ifndef __MATH_H__ 6 #define __MATH_H__ 7 8 // THE SELECTED FLOATING POINT PACKAGE MAY NOT SUPPORT ALL LISTED FUNCTIONS 9 10 #ifndef _FLOAT_T_DEFINED 11 #define _FLOAT_T_DEFINED 12 13 #ifdef __CLANG 14 typedef float float_t; 15 #endif 16 17 #ifdef __SDCC 18 typedef float float_t; 19 #endif 20 21 #ifdef __SCCZ80 22 typedef double float_t; 23 #endif 24 25 #endif 26 27 #ifndef _DOUBLE_T_DEFINED 28 #define _DOUBLE_T_DEFINED 29 30 #ifdef __CLANG 31 typedef float double_t; 32 #endif 33 34 #ifdef __SDCC 35 typedef float double_t; 36 #endif 37 38 #ifdef __SCCZ80 39 typedef double double_t; 40 #endif 41 42 #endif 43 44 #ifndef _FLOAT16_T_DEFINED 45 #define _FLOAT16_T_DEFINED 46 47 #ifndef __SCCZ80 48 typedef short _Float16; /* IEEE-754 half float type */ 49 #endif 50 51 typedef _Float16 half_t; 52 53 #endif 54 55 // XSI EXTENSION 56 // temporary : math lib should supply these via func call 57 58 #define M_E 2.718281828459 59 #define M_INVLN2 1.442695040889 /* 1 / log(2) */ 60 #define M_LOG2E 1.442695040889 61 #define M_IVLN10 0.434294481903 /* 1 / log(10) */ 62 #define M_LOG10E 0.434294481903 63 #define M_LOG2_E 0.693147180560 64 #define M_LN2 0.693147180560 65 #define M_LN10 2.302585092994 66 #define M_PI 3.141592653590 67 #define M_TWOPI 6.283185307180 68 #define M_PI_2 1.570796326795 69 #define M_PI_4 0.7853981633974 70 #define M_3PI_4 2.3561944901923 71 #define M_SQRTPI 1.7724538509055 72 #define M_1_PI 0.3183098861838 73 #define M_2_PI 0.6366197723676 74 #define M_4_PI 1.2732395447352 75 #define M_1_SQRTPI 0.5641895835478 76 #define M_2_SQRTPI 1.1283791670955 77 #define M_SQRT2 1.4142135623731 78 #define M_SQRT3 1.7320508075689 79 #define M_SQRT1_2 0.7071067811865 80 81 // 82 83 #define FLT_EVAL_METHOD 1 84 #define MATH_ERRNO 1 85 #define MATH_ERREXCEPT 2 86 #define math_errhandling 1 87 88 #ifdef __CLANG 89 90 #define HUGE_VAL (1.7014117331E+38) 91 #define HUGE_VALF (1.7014117331E+38) 92 #define INFINITY (1.7014117331E+38) 93 94 #endif 95 96 #ifdef __SDCC 97 98 #define HUGE_VAL (1.7014117331E+38) 99 #define HUGE_VALF (1.7014117331E+38) 100 #define INFINITY (1.7014117331E+38) 101 102 #endif 103 104 #ifdef __SCCZ80 105 106 #define HUGE_VAL (1.7014118346E+38) 107 #define HUGE_VALF (1.7014118346E+38) 108 #define INFINITY (1.7014118346E+38) 109 110 #endif 111 112 #ifdef __MATH_AM9511 113 114 #define HUGE_POS_F32 (+9.2e+18) 115 #define TINY_POS_F32 (+2.7e-20) 116 #define HUGE_NEG_F32 (-9.2e+18) 117 #define TINY_NEG_F32 (-2.7e-20) 118 119 #define MAXL2_F32 (+63.0) 120 #define MINL2_F32 (-64.0) 121 #define MAXLOG_F32 (+43.6657) 122 #define MINLOG_F32 (−45.0) 123 #define MAXL10_F32 (+18.9638) 124 #define MINL10_F32 (−19.5686) 125 126 #define HUGE_VAL_F32 (0x7F800000) 127 #define INFINITY_POS_F32 (0x7F800000) 128 #define INFINITY_NEG_F32 (0xFF800000) 129 130 #endif 131 132 #ifdef __MATH_MATH32 133 134 #define HUGE_POS_F32 (+3.4028234664E+38) 135 #define TINY_POS_F32 (+1.1754943508E−38) 136 #define HUGE_NEG_F32 (-1.7014118346E+38) 137 #define TINY_NEG_F32 (-1.1754943508E-38) 138 139 #define MAXL2_F32 (+127.999999914) 140 #define MINL2_F32 (-126.0) 141 #define MAXLOG_F32 (+88.722839052) 142 #define MINLOG_F32 (−87.336544751) 143 #define MAXL10_F32 (+38.230809449) 144 #define MINL10_F32 (−37.929779454) 145 146 #define HUGE_VAL_F32 (0x7F800000) 147 #define INFINITY_POS_F32 (0x7F800000) 148 #define INFINITY_NEG_F32 (0xFF800000) 149 150 #endif 151 152 #ifdef __MATH_MATH16 153 154 #define HUGE_POS_F16 (+6.5504E+4) /* 0x7BFF */ 155 #define TINY_POS_F16 (+6.10352E-5) /* 0x0400 */ 156 #define HUGE_NEG_F16 (-6.5504E+4) /* 0xFBFF */ 157 #define TINY_NEG_F16 (-6.10352E-5) /* 0x8400 */ 158 159 #define MAXL2_F16 (+15.999) /* 0x4BFF */ 160 #define MINL2_F16 (-14.00) /* 0xCB00 */ 161 #define MAXLOG_F16 (+11.086) /* 0x498B */ 162 #define MINLOG_F16 (-9.700) /* 0xC8DA */ 163 #define MAXL10_F16 (+4.816) /* 0x44D1 */ 164 #define MINL10_F16 (-4.215) /* 0xC437 */ 165 166 #define HUGE_VAL_F16 (0x7C00) 167 #define INFINITY_POS_F16 (0x7C00) 168 #define INFINITY_NEG_F16 (0xFC00) 169 170 #endif 171 172 extern double_t acos(double_t x); 173 extern double_t acos_fastcall(double_t x) __z88dk_fastcall; 174 #define acos(a) acos_fastcall(a) 175 176 177 extern double_t asin(double_t x); 178 extern double_t asin_fastcall(double_t x) __z88dk_fastcall; 179 #define asin(a) asin_fastcall(a) 180 181 182 extern double_t atan(double_t x); 183 extern double_t atan_fastcall(double_t x) __z88dk_fastcall; 184 #define atan(a) atan_fastcall(a) 185 186 187 extern double_t atan2(double_t y,double_t x); 188 extern double_t atan2_callee(double_t y,double_t x) __z88dk_callee; 189 #define atan2(a,b) atan2_callee(a,b) 190 191 192 193 extern double_t cos(double_t x); 194 extern double_t cos_fastcall(double_t x) __z88dk_fastcall; 195 #define cos(a) cos_fastcall(a) 196 197 198 extern double_t sin(double_t x); 199 extern double_t sin_fastcall(double_t x) __z88dk_fastcall; 200 #define sin(a) sin_fastcall(a) 201 202 203 extern double_t tan(double_t x); 204 extern double_t tan_fastcall(double_t x) __z88dk_fastcall; 205 #define tan(a) tan_fastcall(a) 206 207 208 209 extern double_t acosh(double_t x); 210 extern double_t acosh_fastcall(double_t x) __z88dk_fastcall; 211 #define acosh(a) acosh_fastcall(a) 212 213 214 extern double_t asinh(double_t x); 215 extern double_t asinh_fastcall(double_t x) __z88dk_fastcall; 216 #define asinh(a) asinh_fastcall(a) 217 218 219 extern double_t atanh(double_t x); 220 extern double_t atanh_fastcall(double_t x) __z88dk_fastcall; 221 #define atanh(a) atanh_fastcall(a) 222 223 224 225 extern double_t cosh(double_t x); 226 extern double_t cosh_fastcall(double_t x) __z88dk_fastcall; 227 #define cosh(a) cosh_fastcall(a) 228 229 230 extern double_t sinh(double_t x); 231 extern double_t sinh_fastcall(double_t x) __z88dk_fastcall; 232 #define sinh(a) sinh_fastcall(a) 233 234 235 extern double_t tanh(double_t x); 236 extern double_t tanh_fastcall(double_t x) __z88dk_fastcall; 237 #define tanh(a) tanh_fastcall(a) 238 239 240 241 extern double_t exp(double_t x); 242 extern double_t exp_fastcall(double_t x) __z88dk_fastcall; 243 #define exp(a) exp_fastcall(a) 244 245 246 extern double_t exp2(double_t x); 247 extern double_t exp2_fastcall(double_t x) __z88dk_fastcall; 248 #define exp2(a) exp2_fastcall(a) 249 250 251 extern double_t expm1(double_t x); 252 extern double_t expm1_fastcall(double_t x) __z88dk_fastcall; 253 #define expm1(a) expm1_fastcall(a) 254 255 256 extern double_t frexp(double_t value,int *exp); 257 extern double_t frexp_callee(double_t value,int *exp) __z88dk_callee; 258 #define frexp(a,b) frexp_callee(a,b) 259 260 261 extern int ilogb(double_t x); 262 extern int ilogb_fastcall(double_t x) __z88dk_fastcall; 263 #define ilogb(a) ilogb_fastcall(a) 264 265 266 extern double_t ldexp(double_t x,int exp); 267 extern double_t ldexp_callee(double_t x,int exp) __z88dk_callee; 268 #define ldexp(a,b) ldexp_callee(a,b) 269 270 271 extern double_t scalbn(double_t x,int n); 272 extern double_t scalbn_callee(double_t x,int n) __z88dk_callee; 273 #define scalbn(a,b) scalbn_callee(a,b) 274 275 276 extern double_t scalbln(double_t x,int n); 277 extern double_t scalbln_callee(double_t x,int n) __z88dk_callee; 278 #define scalbln(a,b) scalbln_callee(a,b) 279 280 281 282 extern double_t log(double_t x); 283 extern double_t log_fastcall(double_t x) __z88dk_fastcall; 284 #define log(a) log_fastcall(a) 285 286 287 extern double_t log10(double_t x); 288 extern double_t log10_fastcall(double_t x) __z88dk_fastcall; 289 #define log10(a) log10_fastcall(a) 290 291 292 extern double_t log1p(double_t x); 293 extern double_t log1p_fastcall(double_t x) __z88dk_fastcall; 294 #define log1p(a) log1p_fastcall(a) 295 296 297 extern double_t log2(double_t x); 298 extern double_t log2_fastcall(double_t x) __z88dk_fastcall; 299 #define log2(a) log2_fastcall(a) 300 301 302 extern double_t logb(double_t x); 303 extern double_t logb_fastcall(double_t x) __z88dk_fastcall; 304 #define logb(a) logb_fastcall(a) 305 306 307 308 extern double_t fabs(double_t x); 309 extern double_t fabs_fastcall(double_t x) __z88dk_fastcall; 310 #define fabs(a) fabs_fastcall(a) 311 312 313 extern double_t hypot(double_t x,double_t y); 314 extern double_t hypot_callee(double_t x,double_t y) __z88dk_callee; 315 #define hypot(a,b) hypot_callee(a,b) 316 317 318 319 extern double_t pow(double_t x,double_t y); 320 extern double_t pow_callee(double_t x,double_t y) __z88dk_callee; 321 #define pow(a,b) pow_callee(a,b) 322 323 324 extern double_t sqrt(double_t x); 325 extern double_t sqrt_fastcall(double_t x) __z88dk_fastcall; 326 #define sqrt(a) sqrt_fastcall(a) 327 328 329 extern double_t cbrt(double_t x); 330 extern double_t cbrt_fastcall(double_t x) __z88dk_fastcall; 331 #define cbrt(a) cbrt_fastcall(a) 332 333 334 335 extern double_t erf(double_t x); 336 extern double_t erf_fastcall(double_t x) __z88dk_fastcall; 337 #define erf(a) erf_fastcall(a) 338 339 340 extern double_t erfc(double_t x); 341 extern double_t erfc_fastcall(double_t x) __z88dk_fastcall; 342 #define erfc(a) erfc_fastcall(a) 343 344 345 extern double_t lgamma(double_t x); 346 extern double_t lgamma_fastcall(double_t x) __z88dk_fastcall; 347 #define lgamma(a) lgamma_fastcall(a) 348 349 350 extern double_t tgamma(double_t x); 351 extern double_t tgamma_fastcall(double_t x) __z88dk_fastcall; 352 #define tgamma(a) tgamma_fastcall(a) 353 354 355 356 extern double_t ceil(double_t x); 357 extern double_t ceil_fastcall(double_t x) __z88dk_fastcall; 358 #define ceil(a) ceil_fastcall(a) 359 360 361 extern double_t floor(double_t x); 362 extern double_t floor_fastcall(double_t x) __z88dk_fastcall; 363 #define floor(a) floor_fastcall(a) 364 365 366 extern double_t nearbyint(double_t x); 367 extern double_t nearbyint_fastcall(double_t x) __z88dk_fastcall; 368 #define nearbyint(a) nearbyint_fastcall(a) 369 370 371 extern double_t rint(double_t x); 372 extern double_t rint_fastcall(double_t x) __z88dk_fastcall; 373 #define rint(a) rint_fastcall(a) 374 375 376 extern long lrint(double_t x); 377 extern long lrint_fastcall(double_t x) __z88dk_fastcall; 378 #define lrint(a) lrint_fastcall(a) 379 380 381 extern double_t round(double_t x); 382 extern double_t round_fastcall(double_t x) __z88dk_fastcall; 383 #define round(a) round_fastcall(a) 384 385 386 extern long lround(double_t x); 387 extern long lround_fastcall(double_t x) __z88dk_fastcall; 388 #define lround(a) lround_fastcall(a) 389 390 391 extern double_t trunc(double_t x); 392 extern double_t trunc_fastcall(double_t x) __z88dk_fastcall; 393 #define trunc(a) trunc_fastcall(a) 394 395 396 397 extern double_t modf(double_t value,double_t *iptr); 398 extern double_t modf_callee(double_t value,double_t *iptr) __z88dk_callee; 399 #define modf(a,b) modf_callee(a,b) 400 401 402 extern double_t fmod(double_t x,double_t y); 403 extern double_t fmod_callee(double_t x,double_t y) __z88dk_callee; 404 #define fmod(a,b) fmod_callee(a,b) 405 406 407 extern double_t remainder(double_t x,double_t y); 408 extern double_t remainder_callee(double_t x,double_t y) __z88dk_callee; 409 #define remainder(a,b) remainder_callee(a,b) 410 411 412 extern double_t remquo(double_t x,double_t y,int *quo); 413 extern double_t remquo_callee(double_t x,double_t y,int *quo) __z88dk_callee; 414 #define remquo(a,b,c) remquo_callee(a,b,c) 415 416 417 418 extern double_t copysign(double_t x,double_t y); 419 extern double_t copysign_callee(double_t x,double_t y) __z88dk_callee; 420 #define copysign(a,b) copysign_callee(a,b) 421 422 423 extern double_t nan(const char *tagp); 424 extern double_t nan_fastcall(const char *tagp) __z88dk_fastcall; 425 #define nan(a) nan_fastcall(a) 426 427 428 429 extern double_t nextafter(double_t x,double_t y); 430 extern double_t nextafter_callee(double_t x,double_t y) __z88dk_callee; 431 #define nextafter(a,b) nextafter_callee(a,b) 432 433 434 extern double_t nexttoward(double_t x,double_t y); 435 extern double_t nexttoward_callee(double_t x,double_t y) __z88dk_callee; 436 #define nexttoward(a,b) nexttoward_callee(a,b) 437 438 439 440 extern double_t fdim(double_t x,double_t y); 441 extern double_t fdim_callee(double_t x,double_t y) __z88dk_callee; 442 #define fdim(a,b) fdim_callee(a,b) 443 444 445 446 extern double_t fmax(double_t x,double_t y); 447 extern double_t fmax_callee(double_t x,double_t y) __z88dk_callee; 448 #define fmax(a,b) fmax_callee(a,b) 449 450 451 extern double_t fmin(double_t x,double_t y); 452 extern double_t fmin_callee(double_t x,double_t y) __z88dk_callee; 453 #define fmin(a,b) fmin_callee(a,b) 454 455 456 457 extern double_t fma(double_t x,double_t y,double_t z); 458 extern double_t fma_callee(double_t x,double_t y,double_t z) __z88dk_callee; 459 #define fma(a,b,c) fma_callee(a,b,c) 460 461 462 463 extern int isgreater(double_t x,double_t y); 464 extern int isgreater_callee(double_t x,double_t y) __z88dk_callee; 465 #define isgreater(a,b) isgreater_callee(a,b) 466 467 468 extern int isgreaterequal(double_t x,double_t y); 469 extern int isgreaterequal_callee(double_t x,double_t y) __z88dk_callee; 470 #define isgreaterequal(a,b) isgreaterequal_callee(a,b) 471 472 473 extern int isless(double_t x,double_t y); 474 extern int isless_callee(double_t x,double_t y) __z88dk_callee; 475 #define isless(a,b) isless_callee(a,b) 476 477 478 extern int islessequal(double_t x,double_t y); 479 extern int islessequal_callee(double_t x,double_t y) __z88dk_callee; 480 #define islessequal(a,b) islessequal_callee(a,b) 481 482 483 extern int islessgreater(double_t x,double_t y); 484 extern int islessgreater_callee(double_t x,double_t y) __z88dk_callee; 485 #define islessgreater(a,b) islessgreater_callee(a,b) 486 487 488 extern int isunordered(double_t x,double_t y); 489 extern int isunordered_callee(double_t x,double_t y) __z88dk_callee; 490 #define isunordered(a,b) isunordered_callee(a,b) 491 492 493 494 #ifdef __MATH_MATH32 495 496 extern double_t sqr(double_t x); 497 extern double_t sqr_fastcall(double_t x) __z88dk_fastcall; 498 #define sqr(a) sqr_fastcall(a) 499 500 501 extern double_t inv(double_t x); 502 extern double_t inv_fastcall(double_t x) __z88dk_fastcall; 503 #define inv(a) inv_fastcall(a) 504 505 506 extern double_t invsqrt(double_t x); 507 extern double_t invsqrt_fastcall(double_t x) __z88dk_fastcall; 508 #define invsqrt(a) invsqrt_fastcall(a) 509 510 511 extern double_t div2(double_t x); 512 extern double_t div2_fastcall(double_t x) __z88dk_fastcall; 513 #define div2(a) div2_fastcall(a) 514 515 516 extern double_t mul2(double_t x); 517 extern double_t mul2_fastcall(double_t x) __z88dk_fastcall; 518 #define mul2(a) mul2_fastcall(a) 519 520 521 extern double_t mul10u(double_t x); 522 extern double_t mul10u_fastcall(double_t x) __z88dk_fastcall; 523 #define mul10u(a) mul10u_fastcall(a) 524 525 526 extern double_t exp10(double_t x); 527 extern double_t exp10_fastcall(double_t x) __z88dk_fastcall; 528 #define exp10(a) exp10_fastcall(a) 529 530 531 extern double_t poly(const float x,const float d[],unsigned int n); 532 extern double_t poly_callee(const float x,const float d[],unsigned int n) __z88dk_callee; 533 #define poly(a,b,c) poly_callee(a,b,c) 534 535 536 537 #endif 538 539 #ifdef __MATH_AM9511 540 541 extern double_t f32_fam9511(double_t x); 542 extern double_t f32_fam9511_fastcall(double_t x) __z88dk_fastcall; 543 #define f32_fam9511(a) f32_fam9511_fastcall(a) 544 545 546 extern double_t fam9511_f32(double_t x); 547 extern double_t fam9511_f32_fastcall(double_t x) __z88dk_fastcall; 548 #define fam9511_f32(a) fam9511_f32_fastcall(a) 549 550 551 extern double_t sqr(double_t x); 552 extern double_t sqr_fastcall(double_t x) __z88dk_fastcall; 553 #define sqr(a) sqr_fastcall(a) 554 555 556 extern double_t div2(double_t x); 557 extern double_t div2_fastcall(double_t x) __z88dk_fastcall; 558 #define div2(a) div2_fastcall(a) 559 560 561 extern double_t mul2(double_t x); 562 extern double_t mul2_fastcall(double_t x) __z88dk_fastcall; 563 #define mul2(a) mul2_fastcall(a) 564 565 566 extern double_t mul10u(double_t x); 567 extern double_t mul10u_fastcall(double_t x) __z88dk_fastcall; 568 #define mul10u(a) mul10u_fastcall(a) 569 570 571 extern double_t exp10(double_t x); 572 extern double_t exp10_fastcall(double_t x) __z88dk_fastcall; 573 #define exp10(a) exp10_fastcall(a) 574 575 576 577 #endif 578 579 #ifdef __MATH_MATH16 580 581 extern half_t f16_f48(double_t x); 582 extern half_t f16_f48_fastcall(double_t x) __z88dk_fastcall; 583 #define f16_f48(a) f16_f48_fastcall(a) 584 585 586 extern double_t f48_f16(half_t x); 587 extern double_t f48_f16_fastcall(half_t x) __z88dk_fastcall; 588 #define f48_f16(a) f48_f16_fastcall(a) 589 590 591 592 extern half_t f16_f32(float_t x); 593 extern half_t f16_f32_fastcall(float_t x) __z88dk_fastcall; 594 #define f16_f32(a) f16_f32_fastcall(a) 595 596 597 extern float_t f32_f16(half_t x); 598 extern float_t f32_f16_fastcall(half_t x) __z88dk_fastcall; 599 #define f32_f16(a) f32_f16_fastcall(a) 600 601 602 603 extern int16_t i16_f16(half_t x); 604 extern int16_t i16_f16_fastcall(half_t x) __z88dk_fastcall; 605 #define i16_f16(a) i16_f16_fastcall(a) 606 607 608 extern uint16_t u16_f16(half_t x); 609 extern uint16_t u16_f16_fastcall(half_t x) __z88dk_fastcall; 610 #define u16_f16(a) u16_f16_fastcall(a) 611 612 613 extern int32_t i32_f16(half_t x); 614 extern int32_t i32_f16_fastcall(half_t x) __z88dk_fastcall; 615 #define i32_f16(a) i32_f16_fastcall(a) 616 617 618 extern uint32_t u32_f16(half_t x); 619 extern uint32_t u32_f16_fastcall(half_t x) __z88dk_fastcall; 620 #define u32_f16(a) u32_f16_fastcall(a) 621 622 623 624 extern half_t f16_i8(int8_t x); 625 extern half_t f16_i8_fastcall(int8_t x) __z88dk_fastcall; 626 #define f16_i8(a) f16_i8_fastcall(a) 627 628 629 extern half_t f16_i16(int16_t x); 630 extern half_t f16_i16_fastcall(int16_t x) __z88dk_fastcall; 631 #define f16_i16(a) f16_i16_fastcall(a) 632 633 634 extern half_t f16_i32(int32_t x); 635 extern half_t f16_i32_fastcall(int32_t x) __z88dk_fastcall; 636 #define f16_i32(a) f16_i32_fastcall(a) 637 638 639 extern half_t f16_u8(uint8_t x); 640 extern half_t f16_u8_fastcall(uint8_t x) __z88dk_fastcall; 641 #define f16_u8(a) f16_u8_fastcall(a) 642 643 644 extern half_t f16_u16(uint16_t x); 645 extern half_t f16_u16_fastcall(uint16_t x) __z88dk_fastcall; 646 #define f16_u16(a) f16_u16_fastcall(a) 647 648 649 extern half_t f16_u32(uint32_t x); 650 extern half_t f16_u32_fastcall(uint32_t x) __z88dk_fastcall; 651 #define f16_u32(a) f16_u32_fastcall(a) 652 653 654 655 extern half_t addf16(half_t x,half_t y); 656 extern half_t addf16_callee(half_t x,half_t y) __z88dk_callee; 657 #define addf16(a,b) addf16_callee(a,b) 658 659 660 extern half_t subf16(half_t x,half_t y); 661 extern half_t subf16_callee(half_t x,half_t y) __z88dk_callee; 662 #define subf16(a,b) subf16_callee(a,b) 663 664 665 extern half_t mulf16(half_t x,half_t y); 666 extern half_t mulf16_callee(half_t x,half_t y) __z88dk_callee; 667 #define mulf16(a,b) mulf16_callee(a,b) 668 669 670 extern half_t divf16(half_t x,half_t y); 671 extern half_t divf16_callee(half_t x,half_t y) __z88dk_callee; 672 #define divf16(a,b) divf16_callee(a,b) 673 674 675 676 extern half_t fmaf16(half_t x,half_t y,half_t z); 677 extern half_t fmaf16_callee(half_t x,half_t y,half_t z) __z88dk_callee; 678 #define fmaf16(a,b,c) fmaf16_callee(a,b,c) 679 680 681 extern half_t polyf16(half_t x,float_t d[],uint16_t n); 682 extern half_t polyf16_callee(half_t x,float_t d[],uint16_t n) __z88dk_callee; 683 #define polyf16(a,b,c) polyf16_callee(a,b,c) 684 685 686 extern half_t hypotf16(half_t x,half_t y); 687 extern half_t hypotf16_callee(half_t x,half_t y) __z88dk_callee; 688 #define hypotf16(a,b) hypotf16_callee(a,b) 689 690 691 692 extern half_t invf16(half_t x); 693 extern half_t invf16_fastcall(half_t x) __z88dk_fastcall; 694 #define invf16(a) invf16_fastcall(a) 695 696 697 extern half_t invsqrtf16(half_t x); 698 extern half_t invsqrtf16_fastcall(half_t x) __z88dk_fastcall; 699 #define invsqrtf16(a) invsqrtf16_fastcall(a) 700 701 702 703 extern half_t sqrtf16(half_t x); 704 extern half_t sqrtf16_fastcall(half_t x) __z88dk_fastcall; 705 #define sqrtf16(a) sqrtf16_fastcall(a) 706 707 708 709 extern half_t div2f16(half_t x); 710 extern half_t div2f16_fastcall(half_t x) __z88dk_fastcall; 711 #define div2f16(a) div2f16_fastcall(a) 712 713 714 extern half_t mul2f16(half_t x); 715 extern half_t mul2f16_fastcall(half_t x) __z88dk_fastcall; 716 #define mul2f16(a) mul2f16_fastcall(a) 717 718 719 extern half_t mul10f16(half_t x); 720 extern half_t mul10f16_fastcall(half_t x) __z88dk_fastcall; 721 #define mul10f16(a) mul10f16_fastcall(a) 722 723 724 extern half_t frexpf16(half_t x,int8_t *pw2); 725 extern half_t frexpf16_callee(half_t x,int8_t *pw2) __z88dk_callee; 726 #define frexpf16(a,b) frexpf16_callee(a,b) 727 728 729 extern half_t ldexpf16(half_t x,int16_t pw2); 730 extern half_t ldexpf16_callee(half_t x,int16_t pw2) __z88dk_callee; 731 #define ldexpf16(a,b) ldexpf16_callee(a,b) 732 733 734 735 extern half_t acosf16(half_t x); 736 extern half_t acosf16_fastcall(half_t x) __z88dk_fastcall; 737 #define acosf16(a) acosf16_fastcall(a) 738 739 740 extern half_t asinf16(half_t x); 741 extern half_t asinf16_fastcall(half_t x) __z88dk_fastcall; 742 #define asinf16(a) asinf16_fastcall(a) 743 744 745 extern half_t atanf16(half_t x); 746 extern half_t atanf16_fastcall(half_t x) __z88dk_fastcall; 747 #define atanf16(a) atanf16_fastcall(a) 748 749 750 751 extern half_t cosf16(half_t x); 752 extern half_t cosf16_fastcall(half_t x) __z88dk_fastcall; 753 #define cosf16(a) cosf16_fastcall(a) 754 755 756 extern half_t sinf16(half_t x); 757 extern half_t sinf16_fastcall(half_t x) __z88dk_fastcall; 758 #define sinf16(a) sinf16_fastcall(a) 759 760 761 extern half_t tanf16(half_t x); 762 extern half_t tanf16_fastcall(half_t x) __z88dk_fastcall; 763 #define tanf16(a) tanf16_fastcall(a) 764 765 766 767 extern half_t expf16(half_t x); 768 extern half_t expf16_fastcall(half_t x) __z88dk_fastcall; 769 #define expf16(a) expf16_fastcall(a) 770 771 772 extern half_t exp2f16(half_t x); 773 extern half_t exp2f16_fastcall(half_t x) __z88dk_fastcall; 774 #define exp2f16(a) exp2f16_fastcall(a) 775 776 777 extern half_t exp10f16(half_t x); 778 extern half_t exp10f16_fastcall(half_t x) __z88dk_fastcall; 779 #define exp10f16(a) exp10f16_fastcall(a) 780 781 782 extern half_t logf16(half_t x); 783 extern half_t logf16_fastcall(half_t x) __z88dk_fastcall; 784 #define logf16(a) logf16_fastcall(a) 785 786 787 extern half_t log2f16(half_t x); 788 extern half_t log2f16_fastcall(half_t x) __z88dk_fastcall; 789 #define log2f16(a) log2f16_fastcall(a) 790 791 792 extern half_t log10f16(half_t x); 793 extern half_t log10f16_fastcall(half_t x) __z88dk_fastcall; 794 #define log10f16(a) log10f16_fastcall(a) 795 796 797 extern half_t powf16(half_t x,half_t y); 798 extern half_t powf16_callee(half_t x,half_t y) __z88dk_callee; 799 #define powf16(a,b) powf16_callee(a,b) 800 801 802 803 extern half_t fabsf16(half_t x); 804 extern half_t fabsf16_fastcall(half_t x) __z88dk_fastcall; 805 #define fabsf16(a) fabsf16_fastcall(a) 806 807 808 extern half_t negf16(half_t x); 809 extern half_t negf16_fastcall(half_t x) __z88dk_fastcall; 810 #define negf16(a) negf16_fastcall(a) 811 812 813 extern half_t ceilf16(half_t x); 814 extern half_t ceilf16_fastcall(half_t x) __z88dk_fastcall; 815 #define ceilf16(a) ceilf16_fastcall(a) 816 817 818 extern half_t floorf16(half_t x); 819 extern half_t floorf16_fastcall(half_t x) __z88dk_fastcall; 820 #define floorf16(a) floorf16_fastcall(a) 821 822 823 824 extern int isgreaterf16(half_t x,half_t y); 825 extern int isgreaterf16_callee(half_t x,half_t y) __z88dk_callee; 826 #define isgreaterf16(a,b) isgreaterf16_callee(a,b) 827 828 829 extern int isgreaterequalf16(half_t x,half_t y); 830 extern int isgreaterequalf16_callee(half_t x,half_t y) __z88dk_callee; 831 #define isgreaterequalf16(a,b) isgreaterequalf16_callee(a,b) 832 833 834 extern int islessf16(half_t x,half_t y); 835 extern int islessf16_callee(half_t x,half_t y) __z88dk_callee; 836 #define islessf16(a,b) islessf16_callee(a,b) 837 838 839 extern int islessequalf16(half_t x,half_t y); 840 extern int islessequalf16_callee(half_t x,half_t y) __z88dk_callee; 841 #define islessequalf16(a,b) islessequalf16_callee(a,b) 842 843 844 extern int islessgreaterf16(half_t x,half_t y); 845 extern int islessgreaterf16_callee(half_t x,half_t y) __z88dk_callee; 846 #define islessgreaterf16(a,b) islessgreaterf16_callee(a,b) 847 848 849 extern int isnotequalf16(half_t x,half_t y); 850 extern int isnotequalf16_callee(half_t x,half_t y) __z88dk_callee; 851 #define isnotequalf16(a,b) isnotequalf16_callee(a,b) 852 853 854 extern int isunorderedf16(half_t x,half_t y); 855 extern int isunorderedf16_callee(half_t x,half_t y) __z88dk_callee; 856 #define isunorderedf16(a,b) isunorderedf16_callee(a,b) 857 858 859 860 #define scalbnf16(x,pw2) ldexpf16(x,pw2) 861 862 #define truncf16(a) (a>0.?floorf16(a):ceilf16(a)) 863 #define roundf16(a) (a>0.?floorf16(a+0.5):ceilf16(a-0.5)) 864 #define rintf16(a) ceilf16(a) 865 866 #endif 867 868 // NO DISTINCTION BETWEEN FLOAT AND DOUBLE 869 870 #define acosf acos 871 #define asinf asin 872 #define atanf atan 873 #define atan2f atan2 874 875 #define cosf cos 876 #define sinf sin 877 #define tanf tan 878 879 #define acoshf acosh 880 #define asinhf asinh 881 #define atanhf atanh 882 883 #define coshf cosh 884 #define sinhf sinh 885 #define tanhf tanh 886 887 #define expf exp 888 #define exp2f exp2 889 #define exp10f exp10 890 #define expm1f expm1 891 #define frexpf frexp 892 #define ilogbf ilogb 893 #define ldexpf ldexp 894 895 #define logf log 896 #define log2f log2 897 #define log10f log10 898 #define log1pf log1p 899 #define logbf logb 900 901 #define scalbnf scalbn 902 #define scalblnf scalbln 903 904 #define fabsf fabs 905 #define hypotf hypot 906 907 #define powf pow 908 #define sqrtf sqrt 909 #define cbrtf cbrt 910 911 #define erff erf 912 #define erfcf erfc 913 #define lgammaf lgamma 914 #define tgammaf tgamma 915 916 #define ceilf ceil 917 #define floorf floor 918 #define nearbyintf nearbyint 919 #define rintf rint 920 #define lrintf lrint 921 #define llrintf llrint 922 #define roundf round 923 #define lroundf lround 924 #define llroundf llround 925 #define truncf trunc 926 927 #define modff modf 928 #define fmodf fmod 929 #define remainderf remainder 930 #define remquof remquo 931 932 #define copysignf copysign 933 #define nanf nan 934 935 #define nextafterf nextafter 936 #define nexttowardf nexttoward 937 938 #define fdimf fdim 939 940 #define fmaxf fmax 941 #define fminf fmin 942 943 #define fmaf fma 944 945 #ifdef __MATH_MATH32 946 947 #define sqrf sqr 948 #define invf inv 949 #define invsqrtf insqrt 950 #define div2f div2 951 #define mul2f mul2 952 #define mul10uf mul10u 953 #define exp10f exp10 954 #define polyf poly 955 956 #endif 957 958 #ifdef __MATH_AM9511 959 960 #define sqrf sqr 961 #define div2f div2 962 #define mul2f mul2 963 #define mul10uf mul10u 964 #define exp10f exp10 965 966 #endif 967 968 #endif 969