AVR-LibC
2.2.1
Standard C library for AVR-GCC
|
AVR-LibC Documentation |
![]() |
AVR-LibC Development Pages |
|||
Main Page |
User Manual |
Library Reference |
FAQ |
Example Projects |
File List |
Macros | |
#define | M_E 2.7182818284590452354 |
#define | M_LOG2E 1.4426950408889634074 |
#define | M_LOG10E 0.43429448190325182765 |
#define | M_LN2 0.69314718055994530942 |
#define | M_LN10 2.30258509299404568402 |
#define | M_PI 3.14159265358979323846 |
#define | M_PI_2 1.57079632679489661923 |
#define | M_PI_4 0.78539816339744830962 |
#define | M_1_PI 0.31830988618379067154 |
#define | M_2_PI 0.63661977236758134308 |
#define | M_2_SQRTPI 1.12837916709551257390 |
#define | M_SQRT2 1.41421356237309504880 |
#define | M_SQRT1_2 0.70710678118654752440 |
#define | NAN __builtin_nan("") |
#define | nanf(__tagp) __builtin_nanf(__tag) |
#define | nan(__tag) __builtin_nan(__tag) |
#define | nanl(__tag) __builtin_nanl(__tag) |
#define | INFINITY __builtin_inf() |
#define | HUGE_VALF __builtin_huge_valf() |
#define | HUGE_VAL __builtin_huge_val() |
#define | HUGE_VALL __builtin_huge_vall() |
Functions | |
float | cosf (float x) |
double | cos (double x) |
long double | cosl (long double x) |
float | sinf (float x) |
double | sin (double x) |
long double | sinl (long double x) |
float | tanf (float x) |
double | tan (double x) |
long double | tanl (long double x) |
static float | fabsf (float __x) |
static double | fabs (double __x) |
static long double | fabsl (long double __x) |
float | fmodf (float x, float y) |
double | fmod (double x, double y) |
long double | fmodl (long double x, long double y) |
float | modff (float x, float *iptr) |
double | modf (double x, double *iptr) |
long double | modfl (long double x, long double *iptr) |
float | sqrtf (float x) |
double | sqrt (double x) |
long double | sqrtl (long double x) |
float | cbrtf (float x) |
double | cbrt (double x) |
long double | cbrtl (long double x) |
float | hypotf (float x, float y) |
double | hypot (double x, double y) |
long double | hypotl (long double x, long double y) |
float | floorf (float x) |
double | floor (double x) |
long double | floorl (long double x) |
float | ceilf (float x) |
double | ceil (double x) |
long double | ceill (long double x) |
float | frexpf (float x, int *pexp) |
double | frexp (double x, int *pexp) |
long double | frexpl (long double x, int *pexp) |
float | ldexpf (float x, int iexp) |
double | ldexp (double x, int iexp) |
long double | ldexpl (long double x, int iexp) |
float | expf (float x) |
double | exp (double x) |
long double | expl (long double x) |
float | coshf (float x) |
double | cosh (double x) |
long double | coshl (long double x) |
float | sinhf (float x) |
double | sinh (double x) |
long double | sinhl (long double x) |
float | tanhf (float x) |
double | tanh (double x) |
long double | tanhl (long double x) |
float | acosf (float x) |
double | acos (double x) |
long double | acosl (long double x) |
float | asinf (float x) |
double | asin (double x) |
long double | asinl (long double x) |
float | atanf (float x) |
double | atan (double x) |
long double | atanl (long double x) |
float | atan2f (float y, float x) |
double | atan2 (double y, double x) |
long double | atan2l (long double y, long double x) |
float | logf (float x) |
double | log (double x) |
long double | logl (long double x) |
float | log10f (float x) |
double | log10 (double x) |
long double | log10l (long double x) |
float | powf (float x, float y) |
double | pow (double x, double y) |
long double | powl (long double x, long double y) |
int | isnanf (float x) |
int | isnan (double x) |
int | isnanl (long double x) |
int | isinff (float x) |
int | isinf (double x) |
int | isinfl (long double x) |
static int | isfinitef (float __x) |
static int | isfinite (double __x) |
static int | isfinitel (long double __x) |
static float | copysignf (float __x, float __y) |
static double | copysign (double __x, double __y) |
static long double | copysignl (long double __x, long double __y) |
int | signbitf (float x) |
int | signbit (double x) |
int | signbitl (long double x) |
float | fdimf (float x, float y) |
double | fdim (double x, double y) |
long double | fdiml (long double x, long double y) |
float | fmaf (float x, float y, float z) |
double | fma (double x, double y, double z) |
long double | fmal (long double x, long double y, long double z) |
float | fmaxf (float x, float y) |
double | fmax (double x, double y) |
long double | fmaxl (long double x, long double y) |
float | fminf (float x, float y) |
double | fmin (double x, double y) |
long double | fminl (long double x, long double y) |
float | truncf (float x) |
double | trunc (double x) |
long double | truncl (long double x) |
float | roundf (float x) |
double | round (double x) |
long double | roundl (long double x) |
long | lroundf (float x) |
long | lround (double x) |
long | lroundl (long double x) |
long | lrintf (float x) |
long | lrint (double x) |
long | lrintl (long double x) |
Non-Standard Math Functions | |
float | squaref (float x) |
double | square (double x) |
long double | squarel (long double x) |
This header file declares basic mathematics constants and functions.
errno
variable. Therefore the majority of them are declared with const
attribute, for better optimization by GCC.double
and long
double
type can be selected at compile-time with options like -mdouble=64
and -mlong-double=32
. Whether such options are available, and their default values, depend on how the compiler has been configured.float
functions, in avr-gcc v4.6 and older it is usually also required to link with -lm
. In avr-gcc v4.7 and up, -lm
is added automatically to all linker invocations. #define HUGE_VAL __builtin_huge_val() |
double
infinity constant.
#define HUGE_VALF __builtin_huge_valf() |
float
infinity constant.
#define HUGE_VALL __builtin_huge_vall() |
long
double
infinity constant.
#define INFINITY __builtin_inf() |
double
infinity constant.
#define M_1_PI 0.31830988618379067154 |
The constant 1/pi.
#define M_2_PI 0.63661977236758134308 |
The constant 2/pi.
#define M_2_SQRTPI 1.12837916709551257390 |
The constant 2/sqrt(pi).
#define M_E 2.7182818284590452354 |
The constant Euler's number e.
#define M_LN10 2.30258509299404568402 |
The constant natural logarithm of 10.
#define M_LN2 0.69314718055994530942 |
The constant natural logarithm of 2.
#define M_LOG10E 0.43429448190325182765 |
The constant logarithm of Euler's number e to base 10.
#define M_LOG2E 1.4426950408889634074 |
The constant logarithm of Euler's number e to base 2.
#define M_PI 3.14159265358979323846 |
The constant pi.
#define M_PI_2 1.57079632679489661923 |
The constant pi/2.
#define M_PI_4 0.78539816339744830962 |
The constant pi/4.
#define M_SQRT1_2 0.70710678118654752440 |
The constant 1/sqrt(2).
#define M_SQRT2 1.41421356237309504880 |
The square root of 2.
#define NAN __builtin_nan("") |
The double
representation of a constant quiet NaN.
#define nan | ( | __tag | ) | __builtin_nan(__tag) |
The double
representation of a constant quiet NaN. __tag
is a string constant like ""
or "123"
.
#define nanf | ( | __tagp | ) | __builtin_nanf(__tag) |
The float
representation of a constant quiet NaN. __tag
is a string constant like ""
or "123"
.
#define nanl | ( | __tag | ) | __builtin_nanl(__tag) |
The long
double
representation of a constant quiet NaN. __tag
is a string constant like ""
or "123"
.
|
extern |
The acos() function computes the principal value of the arc cosine of x. The returned value is in the range [0, pi] radians or NaN.
|
extern |
The acosf() function computes the principal value of the arc cosine of x. The returned value is in the range [0, pi] radians. A domain error occurs for arguments not in the range [−1, +1].
|
extern |
The acosl() function computes the principal value of the arc cosine of x. The returned value is in the range [0, pi] radians or NaN.
|
extern |
The asin() function computes the principal value of the arc sine of x. The returned value is in the range [−pi/2, pi/2] radians or NaN.
|
extern |
The asinf() function computes the principal value of the arc sine of x. The returned value is in the range [−pi/2, pi/2] radians. A domain error occurs for arguments not in the range [−1, +1].
|
extern |
The asinl() function computes the principal value of the arc sine of x. The returned value is in the range [−pi/2, pi/2] radians or NaN.
|
extern |
The atan() function computes the principal value of the arc tangent of x. The returned value is in the range [−pi/2, pi/2] radians.
|
extern |
The atan2() function computes the principal value of the arc tangent of y / x, using the signs of both arguments to determine the quadrant of the return value. The returned value is in the range [−pi, +pi] radians.
|
extern |
The atan2f() function computes the principal value of the arc tangent of y / x, using the signs of both arguments to determine the quadrant of the return value. The returned value is in the range [−pi, +pi] radians.
|
extern |
The atan2l() function computes the principal value of the arc tangent of y / x, using the signs of both arguments to determine the quadrant of the return value. The returned value is in the range [−pi, +pi] radians.
|
extern |
The atanf() function computes the principal value of the arc tangent of x. The returned value is in the range [−pi/2, pi/2] radians.
|
extern |
The atanl() function computes the principal value of the arc tangent of x. The returned value is in the range [−pi/2, pi/2] radians.
|
extern |
The cbrt() function returns the cube root of x.
|
extern |
The cbrtf() function returns the cube root of x.
|
extern |
The cbrtl() function returns the cube root of x.
|
extern |
The ceil() function returns the smallest integral value greater than or equal to x, expressed as a floating-point number.
|
extern |
The ceilf() function returns the smallest integral value greater than or equal to x, expressed as a floating-point number.
|
extern |
The ceill() function returns the smallest integral value greater than or equal to x, expressed as a floating-point number.
|
inlinestatic |
The copysign() function returns __x but with the sign of __y. They work even if __x or __y are NaN or zero.
|
inlinestatic |
The copysignf() function returns __x but with the sign of __y. They work even if __x or __y are NaN or zero.
|
inlinestatic |
The copysignl() function returns __x but with the sign of __y. They work even if __x or __y are NaN or zero.
|
extern |
The cos() function returns the cosine of x, measured in radians.
|
extern |
The cosf() function returns the cosine of x, measured in radians.
|
extern |
The cosh() function returns the hyperbolic cosine of x.
|
extern |
The coshf() function returns the hyperbolic cosine of x.
|
extern |
The coshl() function returns the hyperbolic cosine of x.
|
extern |
The cosl() function returns the cosine of x, measured in radians.
|
extern |
The exp() function returns the exponential value of x.
|
extern |
The expf() function returns the exponential value of x.
|
extern |
The expl() function returns the exponential value of x.
|
inlinestatic |
The fabs() function computes the absolute value of a floating-point number x.
|
inlinestatic |
The fabsf() function computes the absolute value of a floating-point number x.
|
inlinestatic |
The fabsl() function computes the absolute value of a floating-point number x.
|
extern |
The fdim() function returns max(x − y, 0). If x or y or both are NaN, NaN is returned.
|
extern |
The fdimf() function returns max(x − y, 0). If x or y or both are NaN, NaN is returned.
|
extern |
The fdiml() function returns max(x − y, 0). If x or y or both are NaN, NaN is returned.
|
extern |
The floor() function returns the largest integral value less than or equal to x, expressed as a floating-point number.
|
extern |
The floorf() function returns the largest integral value less than or equal to x, expressed as a floating-point number.
|
extern |
The floorl() function returns the largest integral value less than or equal to x, expressed as a floating-point number.
|
extern |
The fma() function performs floating-point multiply-add. This is the operation (x * y) + z, but the intermediate result is not rounded to the destination type. This can sometimes improve the precision of a calculation.
|
extern |
The fmaf() function performs floating-point multiply-add. This is the operation (x * y) + z, but the intermediate result is not rounded to the destination type. This can sometimes improve the precision of a calculation.
|
extern |
The fmal() function performs floating-point multiply-add. This is the operation (x * y) + z, but the intermediate result is not rounded to the destination type. This can sometimes improve the precision of a calculation.
|
extern |
The fmax() function returns the greater of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The fmaxf() function returns the greater of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The fmaxl() function returns the greater of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The fmin() function returns the lesser of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The fminf() function returns the lesser of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The fminl() function returns the lesser of the two values x and y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
|
extern |
The function fmod() returns the floating-point remainder of x / y.
|
extern |
The function fmodf() returns the floating-point remainder of x / y.
|
extern |
The function fmodl() returns the floating-point remainder of x / y.
|
extern |
The frexp() function breaks a floating-point number into a normalized fraction and an integral power of 2. It stores the integer in the int
object pointed to by pexp.
If x is a normal float point number, the frexp() function returns the value v
, such that v
has a magnitude in the interval [1/2, 1) or zero, and x equals v
times 2 raised to the power pexp. If x is zero, both parts of the result are zero. If x is not a finite number, the frexp() returns x as is and stores 0 by pexp.
|
extern |
The frexpf() function breaks a floating-point number into a normalized fraction and an integral power of 2. It stores the integer in the int
object pointed to by pexp.
If x is a normal float point number, the frexpf() function returns the value v
, such that v
has a magnitude in the interval [1/2, 1) or zero, and x equals v
times 2 raised to the power pexp. If x is zero, both parts of the result are zero. If x is not a finite number, the frexpf() returns x as is and stores 0 by pexp.
|
extern |
The frexpl() function breaks a floating-point number into a normalized fraction and an integral power of 2. It stores the integer in the int
object pointed to by pexp.
If x is a normal float point number, the frexpl() function returns the value v
, such that v
has a magnitude in the interval [1/2, 1) or zero, and x equals v
times 2 raised to the power pexp. If x is zero, both parts of the result are zero. If x is not a finite number, the frexpl() returns x as is and stores 0 by pexp.
|
extern |
The hypot() function returns sqrt(x*x + y*y). This is the length of the hypotenuse of a right triangle with sides of length x and y, or the distance of the point (x, y) from the origin. Using this function instead of the direct formula is wise, since the error is much smaller. No underflow with small x and y. No overflow if result is in range.
|
extern |
The hypotf() function returns sqrtf(x*x + y*y). This is the length of the hypotenuse of a right triangle with sides of length x and y, or the distance of the point (x, y) from the origin. Using this function instead of the direct formula is wise, since the error is much smaller. No underflow with small x and y. No overflow if result is in range.
|
extern |
The hypotl() function returns sqrtl(x*x + y*y). This is the length of the hypotenuse of a right triangle with sides of length x and y, or the distance of the point (x, y) from the origin. Using this function instead of the direct formula is wise, since the error is much smaller. No underflow with small x and y. No overflow if result is in range.
|
inlinestatic |
The isfinite() function returns a nonzero value if __x is finite: not plus or minus infinity, and not NaN.
|
inlinestatic |
The isfinitef() function returns a nonzero value if __x is finite: not plus or minus infinity, and not NaN.
|
inlinestatic |
The isfinite() function returns a nonzero value if __x is finite: not plus or minus infinity, and not NaN.
|
extern |
The function isinf() returns 1 if the argument x is positive infinity, −1 if x is negative infinity, and 0 otherwise.
|
extern |
The function isinff() returns 1 if the argument x is positive infinity, −1 if x is negative infinity, and 0 otherwise.
|
extern |
The function isinfl() returns 1 if the argument x is positive infinity, −1 if x is negative infinity, and 0 otherwise.
|
extern |
The function isnan() returns 1 if the argument x represents a "not-a-number" (NaN) object, otherwise 0.
|
extern |
The function isnanf() returns 1 if the argument x represents a "not-a-number" (NaN) object, otherwise 0.
|
extern |
The function isnanl() returns 1 if the argument x represents a "not-a-number" (NaN) object, otherwise 0.
|
extern |
The ldexp() function multiplies a floating-point number by an integral power of 2. It returns the value of x times 2 raised to the power iexp.
|
extern |
The ldexpf() function multiplies a floating-point number by an integral power of 2. It returns the value of x times 2 raised to the power iexp.
|
extern |
The ldexpl() function multiplies a floating-point number by an integral power of 2. It returns the value of x times 2 raised to the power iexp.
|
extern |
The log() function returns the natural logarithm of argument x.
|
extern |
The log10() function returns the logarithm of argument x to base 10.
|
extern |
The log10f() function returns the logarithm of argument x to base 10.
|
extern |
The log10l() function returns the logarithm of argument x to base 10.
|
extern |
The logf() function returns the natural logarithm of argument x.
|
extern |
The logl() function returns the natural logarithm of argument x.
|
extern |
The lrint() function rounds x to the nearest integer, rounding the halfway cases to the even integer direction. (That is both 1.5 and 2.5 values are rounded to 2). This function is similar to rint() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
The lrintf() function rounds x to the nearest integer, rounding the halfway cases to the even integer direction. (That is both 1.5 and 2.5 values are rounded to 2). This function is similar to rintf() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
The lrintl() function rounds x to the nearest integer, rounding the halfway cases to the even integer direction. (That is both 1.5 and 2.5 values are rounded to 2). This function is similar to rintl() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
The lround() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). This function is similar to round() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
The lroundf() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). This function is similar to round() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
The lroundl() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). This function is similar to round() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000).
|
extern |
|
extern |
The modff() function breaks the argument x into integral and fractional parts, each of which has the same sign as the argument. It stores the integral part as a float
in the object pointed to by iptr.
The modff() function returns the signed fractional part of x.
|
extern |
|
extern |
The function pow() returns the value of x to the exponent y.
Notice that for integer exponents, there is the more efficient double __builtin_powi(double x, int y)
.
|
extern |
The function powf() returns the value of x to the exponent y.
Notice that for integer exponents, there is the more efficient float __builtin_powif(float x, int y)
.
|
extern |
The function powl() returns the value of x to the exponent y.
Notice that for integer exponents, there is the more efficient long double __builtin_powil(long double x, int y)
.
|
extern |
The round() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). Overflow is impossible.
NaN
, then NaN
is returned.
|
extern |
The roundf() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). Overflow is impossible.
NaN
, then NaN
is returned.
|
extern |
The roundl() function rounds x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). Overflow is impossible.
NaN
, then NaN
is returned.
|
extern |
The signbit() function returns a nonzero value if the value of x has its sign bit set. This is not the same as `x < 0.0', because IEEE 754 floating point allows zero to be signed. The comparison '−0.0 < 0.0' is false, but `signbit (−0.0)' will return a nonzero value.
|
extern |
The signbitf() function returns a nonzero value if the value of x has its sign bit set. This is not the same as `x < 0.0', because IEEE 754 floating point allows zero to be signed. The comparison '−0.0 < 0.0' is false, but `signbit (−0.0)' will return a nonzero value.
|
extern |
The signbitl() function returns a nonzero value if the value of x has its sign bit set. This is not the same as `x < 0.0', because IEEE 754 floating point allows zero to be signed. The comparison '−0.0 < 0.0' is false, but `signbit (−0.0)' will return a nonzero value.
|
extern |
The sin() function returns the sine of x, measured in radians.
|
extern |
The sinf() function returns the sine of x, measured in radians.
|
extern |
The sinh() function returns the hyperbolic sine of x.
|
extern |
The sinhf() function returns the hyperbolic sine of x.
|
extern |
The sinhl() function returns the hyperbolic sine of x.
|
extern |
The sinl() function returns the sine of x, measured in radians.
|
extern |
The sqrt() function returns the non-negative square root of x.
|
extern |
The sqrtf() function returns the non-negative square root of x.
|
extern |
The sqrtl() function returns the non-negative square root of x.
|
extern |
The function square() returns x * x.
|
extern |
The function squaref() returns x * x.
|
extern |
The function squarel() returns x * x.
|
extern |
The tan() function returns the tangent of x, measured in radians.
|
extern |
The tanf() function returns the tangent of x, measured in radians.
|
extern |
The tanh() function returns the hyperbolic tangent of x.
|
extern |
The tanhf() function returns the hyperbolic tangent of x.
|
extern |
The tanhl() function returns the hyperbolic tangent of x.
|
extern |
The tanl() function returns the tangent of x, measured in radians.
|
extern |
The trunc() function rounds x to the nearest integer not larger in absolute value.
|
extern |
The truncf() function rounds x to the nearest integer not larger in absolute value.
|
extern |
The truncl() function rounds x to the nearest integer not larger in absolute value.