XCORE SDK
XCORE Software Development Kit
scalar_float.h
1 // Copyright 2020-2021 XMOS LIMITED.
2 // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3 
4 #pragma once
5 
6 #include "../xs3_math_types.h"
7 
8 #include <stdio.h>
9 #include <assert.h>
10 #include <math.h>
11 
37 C_API
39  const float_s64_t x);
40 
41 
53 C_API
55  const float x);
56 
57 
71 C_API
73  const double x);
74 
75 
85 C_API
87  const float_s32_t x);
88 
89 
99 C_API
100 float float_s32_to_float(
101  const float_s32_t x);
102 
103 
113 C_API
114 double float_s32_to_double(
115  const float_s32_t x);
116 
117 
135 C_API
137  const float_s32_t x,
138  const float_s32_t y);
139 
140 
157 C_API
159  const float_s32_t x,
160  const float_s32_t y);
161 
162 
180 C_API
182  const float_s32_t x,
183  const float_s32_t y);
184 
185 
204 C_API
206  const float_s32_t x,
207  const float_s32_t y);
208 
209 
225 C_API
227  const float_s32_t x);
228 
229 
250 C_API
251 unsigned float_s32_gt(
252  const float_s32_t x,
253  const float_s32_t y);
254 
255 
276 C_API
277 unsigned float_s32_gte(
278  const float_s32_t x,
279  const float_s32_t y);
280 
281 
304 C_API
306  const float_s32_t x,
307  const float_s32_t y,
308  const fixed_s32_t coef_q30);
309 
310 
333 C_API
335  const float_s32_t x);
float_s32_t float_s32_sqrt(const float_s32_t x)
Get the square root of a float_s32_t.
Definition: xs3_scalar_float_s32.c:195
float_s64_t float_s32_to_float_s64(const float_s32_t x)
Convert a float_s32_t to a float_s64_t.
Definition: xs3_scalar_float_s32.c:26
float float_s32_to_float(const float_s32_t x)
Convert a float_s32_t to an IEEE754 float.
Definition: xs3_scalar_float_s32.c:37
float_s32_t float_s32_abs(const float_s32_t x)
Get the absolute value of a float_s32_t.
Definition: xs3_scalar_float_s32.c:147
float_s32_t double_to_float_s32(const double x)
Convert an IEEE754 double to a float_s32_t.
Definition: xs3_scalar_float_s32.c:62
float_s32_t float_s32_mul(const float_s32_t x, const float_s32_t y)
Multiply two float_s32_t together.
Definition: xs3_scalar_float_s32.c:74
float_s32_t float_s32_div(const float_s32_t x, const float_s32_t y)
Divide one float_s32_t from another.
Definition: xs3_scalar_float_s32.c:133
float_s32_t float_s32_add(const float_s32_t x, const float_s32_t y)
Add two float_s32_t together.
Definition: xs3_scalar_float_s32.c:85
unsigned float_s32_gte(const float_s32_t x, const float_s32_t y)
Determine whether one float_s32_t is greater or equal to another.
Definition: xs3_scalar_float_s32.c:167
float_s32_t float_s64_to_float_s32(const float_s64_t x)
Convert a float_s64_t to a float_s32_t.
Definition: xs3_scalar_float_s64.c:12
float_s32_t float_s32_sub(const float_s32_t x, const float_s32_t y)
Subtract one float_s32_t from another.
Definition: xs3_scalar_float_s32.c:109
unsigned float_s32_gt(const float_s32_t x, const float_s32_t y)
Determine whether one float_s32_t is greater than another.
Definition: xs3_scalar_float_s32.c:157
float_s32_t float_s32_ema(const float_s32_t x, const float_s32_t y, const fixed_s32_t coef_q30)
Update an exponential moving average.
Definition: xs3_scalar_float_s32.c:176
double float_s32_to_double(const float_s32_t x)
Convert a float_s32_t to an IEEE754 double.
Definition: xs3_scalar_float_s32.c:54
float_s32_t float_to_float_s32(const float x)
Convert an IEEE754 float to a float_s32_t.
Definition: xs3_scalar_float_s32.c:44
int32_t fixed_s32_t
A 32-bit fixed-point scalar.
Definition: xs3_math_types.h:128
A floating-point scalar with a 32-bit mantissa.
Definition: xs3_math_types.h:167
A floating-point scalar with a 64-bit mantissa.
Definition: xs3_math_types.h:190