exp
, expf
, expl
Calculates the exponential.
Syntax
double exp(
double x
);
float exp(
float x
); // C++ only
long double exp(
long double x
); // C++ only
float expf(
float x
);
long double expl(
long double x
);
#define exp(z) // Requires C11 or higher
Parameters
x
The floating-point value to exponentiate the natural logarithm base e by.
Return value
The exp
functions return the exponential value of the floating-point parameter, x
, if successful. That is, the result is ex
, where e is the base of the natural logarithm. On overflow, the function returns INF
(infinity) and on underflow, exp
returns 0.
Input | SEH exception | _matherr exception |
---|---|---|
± Quiet NaN, indeterminate | None | _DOMAIN |
± Infinity | INVALID |
_DOMAIN |
x ≥ 7.097827e+002 |
INEXACT +OVERFLOW |
OVERFLOW |
x ≤ -7.083964e+002 |
INEXACT +UNDERFLOW |
UNDERFLOW |
The exp
function has an implementation that uses Streaming SIMD Extensions 2 (SSE2). See _set_SSE2_enable
for information and restrictions on using the SSE2 implementation.
Remarks
C++ allows overloading, so you can call overloads of exp
that take a float
or long double
argument. In a C program, unless you're using the <tgmath.h>
macro to call this function, exp
always takes and returns a double
.
If you use the exp
macro from <tgmath.h>
, the type of the argument determines which version of the function is selected. See Type-generic math for details.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Requirements
Function | Required C header | Required C++ header |
---|---|---|
exp , expf , expl |
<math.h> |
<cmath> or <math.h> |
exp macro |
<tgmath.h> |
For more compatibility information, see Compatibility.
Example
// crt_exp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.302585093, y;
y = exp( x );
printf( "exp( %f ) = %f\n", x, y );
}
exp( 2.302585 ) = 10.000000
See also
Math and floating-point support
log
, logf
, log10
, log10f
_CIexp