Loading...
Searching...
No Matches
float.h File Reference
#include "pico.h"
#include <math.h>
#include <float.h>

Go to the source code of this file.

Macros

#define PICO_FLOAT_IN_RAM   0
#define __PICO_FLOAT_ARM_OPTIMIZED   1
#define PICO_FLOAT_HAS_INT32_TO_FLOAT_CONVERSIONS   1
 Set if int2float and uint2float are available.
#define PICO_FLOAT_HAS_INT64_TO_FLOAT_CONVERSIONS   1
 Set if int642float and uint642float are available.
#define PICO_FLOAT_HAS_FLOAT_TO_INT32_Z_CONVERSIONS   1
 Set if float2int_z and float2uint_z are available (rounding towards zero).
#define PICO_FLOAT_HAS_FLOAT_TO_INT64_Z_CONVERSIONS   1
 Set if float2int64_z and float2uint64_z are available (rounding towards zero).
#define PICO_FLOAT_HAS_FIX32_TO_FLOAT_CONVERSIONS   1
 Set if fix2float and ufix2float are available.
#define PICO_FLOAT_HAS_FIX64_TO_FLOAT_CONVERSIONS   1
 Set if fix642float and ufix642float are available.
#define PICO_FLOAT_HAS_FLOAT_TO_FIX32_Z_CONVERSIONS   1
 Set if float2fix_z and float2ufix_z are available (rounding towards zero).
#define PICO_FLOAT_HAS_FLOAT_TO_FIX64_Z_CONVERSIONS   1
 Set if float2fix64_z and float2ufix64_z are available (rounding towards zero).
#define PICO_FLOAT_HAS_FLOAT_TO_INT32_M_CONVERSIONS   1
 Set if float2int and float2uint are available (rounding towards -Infinity).
#define PICO_FLOAT_HAS_FLOAT_TO_INT64_M_CONVERSIONS   1
 Set if float2int64 and float2uint64 are available (rounding towards -Infinity).
#define PICO_FLOAT_HAS_FLOAT_TO_FIX32_M_CONVERSIONS   1
 Set if float2fix and float2ufix are available (rounding towards -Infinity).
#define PICO_FLOAT_HAS_FLOAT_TO_FIX64_M_CONVERSIONS   1
 Set if float2fix64 and float2ufix64 are available (rounding towards -Infinity).
#define PICO_FLOAT_HAS_FDIV_FAST   1
 Set if fdiv_fast is available.
#define PICO_FLOAT_HAS_SQRTF_FAST   1
 Set if sqrtf_fast is available.
#define PICO_FLOAT_HAS_POWINTF   1
 Set if powintf is available.

Functions

float int2float (int32_t i)
 Convert a signed 32-bit integer to the nearest float.
float uint2float (uint32_t u)
 Convert an unsigned 32-bit integer to the nearest float.
float int642float (int64_t i)
 Convert a signed 64-bit integer to the nearest float.
float uint642float (uint64_t u)
 Convert an unsigned 64-bit integer to the nearest float.
int32_t float2int_z (float f)
 Convert a float to a signed 32-bit integer, rounding towards zero. On Arm this conversion is saturating (to INT32_MAX/INT32_MIN) for out of range input except when using pico_float compiler.
uint32_t float2uint_z (float f)
 Convert a float to an unsigned 32-bit integer, rounding towards zero On Arm this conversion is saturating (to UINT32_MAX/UINT32_MIN) for out of range input except when using pico_float compiler.
int64_t float2int64_z (float f)
 Convert a float to a signed 64-bit integer, rounding towards zero. On Arm this conversion is saturating (to INT64_MAX/INT64_MIN) for out of range input except when using pico_float compiler.
uint64_t float2uint64_z (float f)
 Convert a float to an unsigned 64-bit integer, rounding towards zero. On Arm this conversion is saturating (to UINT64_MAX/UINT64_MIN) for out of range input except when using pico_float compiler.
float fix2float (int32_t m, int e)
 Convert a signed 32-bit fixed-point integer with the given number of fractional bits to the nearest float Out of range inputs will convert to +/- Infinity.
float ufix2float (uint32_t m, int e)
 Convert an unsigned 32-bit fixed-point integer with the given number of fractional bits to the nearest float Out of range inputs will convert to +Infinity.
float fix642float (int64_t m, int e)
 Convert a signed 64-bit fixed-point integer with the given number of fractional bits to the nearest float Out of range inputs will convert to +/- Infinity.
float ufix642float (uint64_t m, int e)
 Convert an unsigned 64-bit fixed-point integer with the given number of fractional bits to the nearest float Out of range inputs will convert to +Infinity.
int32_t float2fix_z (float f, int e)
 Convert a float to a signed 32-bit fixed-point integer with the given number of fractional bits, rounding towards zero. On Arm this conversion is saturating (to INT32_MAX/INT32_MIN) for out of range input except when using pico_float compiler.
uint32_t float2ufix_z (float f, int e)
 Convert a float to an unsigned 32-bit fixed-point integer with the given number of fractional bits, rounding towards zero. This conversion is saturating (to UINT32_MAX/UINT32_MIN) for out of range input.
int64_t float2fix64_z (float f, int e)
 Convert a float to a signed 64-bit fixed-point integer with the given number of fractional bits, rounding towards zero. On Arm this conversion is saturating (to INT64_MAX/INT64_MIN) for out of range input except when using pico_float compiler.
uint64_t float2ufix64_z (float f, int e)
 Convert a float to an unsigned 64-bit fixed-point integer with the given number of fractional bits, rounding towards zero. This conversion is saturating (to UINT64_MAX/UINT64_MIN) for out of range input.
int32_t float2int (float f)
 Convert a float to a signed 32-bit integer, rounding towards -Infinity. This conversion is saturating (to INT32_MAX/INT32_MIN) for out of range input.
uint32_t float2uint (float f)
 Convert a float to an unsigned 32-bit integer, rounding towards -Infinity. This conversion is saturating (to UINT32_MAX/UINT32_MIN) for out of range input.
int64_t float2int64 (float f)
 Convert a float to a signed 64-bit integer, rounding towards -Infinity. This conversion is saturating (to INT64_MAX/INT64_MIN) for out of range input.
uint64_t float2uint64 (float f)
 Convert a float to an unsigned 64-bit integer, rounding towards -Infinity. This conversion is saturating (to UINT64_MAX/UINT64_MIN) for out of range input.
int32_t float2fix (float f, int e)
 Convert a float to a signed 32-bit fixed-point integer with the given number of fractional bits, rounding towards -Infinity. This conversion is saturating (to INT32_MAX/INT32_MIN) for out of range input.
uint32_t float2ufix (float f, int e)
 Convert a float to an unsigned 32-bit fixed-point integer with the given number of fractional bits, rounding towards -Infinity. This conversion is saturating (to UINT32_MAX/UINT32_MIN) for out of range input.
int64_t float2fix64 (float f, int e)
 Convert a float to a signed 64-bit fixed-point integer with the given number of fractional bits, rounding towards -Infinity. This conversion is saturating (to INT64_MAX/INT64_MIN) for out of range input.
uint64_t float2ufix64 (float f, int e)
 Convert a float to an unsigned 64-bit fixed-point integer with the given number of fractional bits, rounding towards -Infinity. This conversion is saturating (to UINT64_MAX/UINT64_MIN) for out of range input.
float exp10f (float x)
 Evaluate 10.0f to the power of the given value.
void sincosf (float x, float *sinx, float *cosx)
 Return both the sine and cosine of an angle efficiently.
float powintf (float x, int32_t y)
 Raise a floating point number to an integer power.
float fdiv_fast (float n, float d)
 Perform a fast floating point divide with reduced accuracy.
float sqrtf_fast (float f)
 Perform a fast floating point square-root with reduced accuracy.