Names specified here
Name Description Notes Source Availability
CMPLXF() Create constant of type float complex ? M (·) <complex.h> C11
FLT_DECIMAL_DIG Representable decimal digits in any real floating-point type L M <float.h> C89 C90 C95 C99 C11
FLT_DIG Decimal digits of precision of float L M <float.h> C89 C90 C95 C99 C11
FLT_EPSILON Smallest x of type float such that 1.0 + x != 1.0 L M <float.h> C89 C90 C95 C99 C11
FLT_HAS_SUBNORM Determinant whether float has subnormal values L M <float.h> C11
FLT_MANT_DIG Number of base-FLT_RADIX digits in mantissa of float L M <float.h> C89 C90 C95 C99 C11
FLT_MAX Maximum value of float L M <float.h> C89 C90 C95 C99 C11
FLT_MAX_10_EXP Maximum integral base-10 exponent yielding float L M <float.h> C89 C90 C95 C99 C11
FLT_MAX_EXP One plus maximum integral exponent of base FLT_RADIX yielding float L M <float.h> C89 C90 C95 C99 C11
FLT_MIN Minimum normalized value of float L M <float.h> C89 C90 C95 C99 C11
FLT_MIN_10_EXP Minimum integral base-10 exponent yielding normalized float L M <float.h> C89 C90 C95 C99 C11
FLT_MIN_EXP One plus minimum integral exponent of base FLT_RADIX yielding normalized float L M <float.h> C89 C90 C95 C99 C11
FLT_TRUE_MIN Minimum positive value of float L M <float.h> C11
float ‘Single-precision’ floating-point type L T Native C89 C90 C95 C99 C11
float _Complex ‘Single-precision’ floating-point complex type L ? T Native C99 C11
float _Imaginary ‘Single-precision’ floating-point imaginary type L ? T Native C99 C11
float complex ‘Single-precision’ floating-point complex type ? T <complex.h> C99 C11
float imaginary ‘Single-precision’ floating-point imaginary type ? T <complex.h> C99 C11

float is intended to be a compact native real floating-point type capable of representing a modest range of real numbers. (double is usually a larger and more capable type.) A floating-point constant of type float is suffixed with an f or F.

Various macros in <float.h> describe the capabilities of float. It supports FLT_DIG decimal digits of precision, or FLT_MANT_DIG digits in the native base FLT_RADIX.

float has a range of ±FLT_MAX. The smallest positive non-zero value it can take is FLT_TRUE_MIN, which could be subnormal. The smallest positive normalized value it can take is FLT_MIN.

From C11, if subnormal values are possible, FLT_HAS_SUBNORM expands to 1. If not, it expends to 0. If it is undeterminable, it expands to -1.

FLT_MIN_10_EXP is the lowest integer x that you can give to powf(10.0F, x) and still get a normalized value. FLT_MAX_10_EXP is the highest integer x that you can give to powf(10.0F, x) and still get a normalized value.

FLT_MIN_EXP is the lowest integer x that you can give to powf(FLT_RADIX, x - 1) and still get a normalized value. FLT_MAX_EXP is the highest integer x that you can give to powf(FLT_RADIX, x - 1) and still get a normalized value. FLT_EPSILON is the smallest value you can add to 1.0F to yield something other than 1.0F.

FLT_DECIMAL_DIG is the number of decimal digits that float can retain without rounding error.

From C99, if __STDC_NO_COMPLEX__ is defined, float _Complex is a complex floating-point type that has the same representation as an array of two floats, the first being the real part, and the second the imaginary part, of the complex number it represents. If imaginary is defined in <complex.h>, float _Imaginary is an imaginary floating-point type that has the same representation as a float. float imaginary and float complex are alternative names for these types, available in <complex.h>.

#include <complex.h>
float complex CMPLXF(float re, float im);

The macro CMPLXF expands to a constant expression suitable to initialize a float complex with static or thread-local storage, with a value re + I * im, a complex number with a real component re and an imaginary component im, provided re and im are similarly suitable.

If CMPLXF is unavailable, a portable implementation could be:

#define CMPLXF(RE, IM) \
  (*(float _Complex *) (float[2]) { (RE), (IM) })

This information derives from a comp.std.c thread in May 2009.

TODO: This needs checking.

A value of type float complex can be split into cartesian co-ordinates with crealf and cimagf, or into polar co-ordinates with cargf and cabsf.


CHaR
Sitemap Supported
Site format updated 2024-06-05T22:37:07.391+0000
Data updated 1970-01-01T00:00:00.000+0000
Page updated 2022-06-17T21:43:05.000+0000