Using FastMath math routines

From RAD Studio
Jump to: navigation, search

Go Up to fastmath.h Index

Note: This feature is available only for the classic bcc32 compiler, not for the modern Clang-enhanced compiler.

Header File

fastmath.h

Category

Math Routines

Description

The FastMath routines are high performance math routines that don't check for most error conditions and never call matherr. They are coded for maximum speed. These functions are never exported from the RTLDLL, which means that they always get linked directly into the PE file that is being created.

When you include fastmath.h, the following math functions are remapped to these fastmath functions.

Math Routine

Fastmath Routine

Math Routine

Fastmath Routine

acos

_fm_acos

asin

_fm_asin

atan

_fm_atan

atan2

_fm_atan2

cos

_fm_cos

cosh

_fm_cosh

exp

_fm_exp

fabs

_fm_fabs

asin

_fm_asin

atan

_fm_atan

atan2

_fm_atan2

cos

_fm_cos

cosh

_fm_cosh

exp

_fm_exp

fabs

_fm_fabs

frexp

_fm_frexp

hypot

_fm_hypot

ldexp

_fm_ldexp

log

_fm_log

log10

_fm_log10

sin

_fm_sin

sinh

_fm_sinh

sqrt

_fm_sqr

tan

_fm_tan

tanh

_fm_tanh

sincos

_fm_sincos

acosl

_fm_acosl

asinl

_fm_asinl

atan2l

_fm_atan2l

atanl

_fm_atanl

coshl

_fm_coshl

cosl

_fm_cosl

expl

_fm_expl

fabsl

_fm_fabsl

frexpl

_fm_frexpl

hypotl

_fm_hypotl

ldexpl

_fm_ldexpl

log10l

_fm_log10l

logl

_fm_logl

sinhl

_fm_sinhl

sinl

_fm_sinl

sqrtl

_fm_sqrtl

tanhl

_fm_tanhl

tanl

_fm_tanl

sincosl

_fm_sincosl

atanhl

_fm_atanhl

acoshl

_fm_acoshl

asinhl

_fm_asinhl



If you don't want the standard C function names remapped to the FastMath versions, then define _FM_NO_REMAP. The FastMath routines can still be called with their _fm_xxx names.

The following additional functions are available in FastMath; they are not directly supported in the regular RTL:

void _FMAPI _fm_sincos(double __a, double *__x, double *__y);

void _FMAPI _fm_sincosl(long double __a, long double *__x, long double *__y);

long double _FMAPI _fm_atanhl (long double __x);

long double _FMAPI _fm_acoshl (long double __x);

long double _FMAPI _fm_asinhl (long double __x);

__inline void _fm_fwait(void)

unsigned int _FMAPI _fm_init(void);

_fm_fwait is a special inline function that performs an intrinsic FWAIT instruction.

_Fm_init is a function that can be called to mask all fpu exceptions prior to using the FastMath routines.