1111#include <string.h>
1212#include <float.h>
1313
14+ static const union {
15+ uint32_t u [ 2 ];
16+ float f [ 2 ];
17+ } s_values = { { 0x7F800000U , 0x7FBFFFFFU } };
18+ const float * const qFFMath_Infinity = & s_values .f [ 0 ];
19+ const float * const qFFMath_NotANumber = & s_values .f [ 1 ];
20+
1421/*cppcheck-suppress misra-c2012-20.7 */
1522#define cast_reinterpret ( dst , src , dst_type ) \
1623(void)memcpy( &dst, &src, sizeof(dst_type) ) \
@@ -78,21 +85,6 @@ static float cyl_bessel_ij_series( float nu,
7885 float sgn ,
7986 size_t max_iter );
8087
81- /*============================================================================*/
82- float _qFFMath_GetAbnormal ( const int i )
83- {
84- static const uint32_t u_ab [ 2 ] = { 0x7F800000U , 0x7FBFFFFFU };
85- static float f_ab [ 2 ] = { 0.0F , 0.0F };
86- static bool init = true;
87-
88- if ( init ) {
89- /*cppcheck-suppress misra-c2012-21.15 */
90- (void )memcpy ( f_ab , u_ab , sizeof (f_ab ) );
91- init = false;
92- }
93-
94- return f_ab [ i ];
95- }
9688/*============================================================================*/
9789int qFFMath_FPClassify ( const float f )
9890{
@@ -1511,7 +1503,7 @@ float qFFMath_Beta( float x,
15111503{
15121504 float result ;
15131505 /*cstat -MISRAC2012-Rule-13.5*/
1514- if ( qFFMath_IsNaN ( x ) || qFFMath_IsNaN ( y ) ) { // no side effects here
1506+ if ( qFFMath_IsNaN ( x ) || qFFMath_IsNaN ( y ) ) { /* no side effects*/
15151507 result = QFFM_NAN ;
15161508 }
15171509 else {
@@ -1808,7 +1800,7 @@ float qFFMath_Comp_ellint_3( float k,
18081800{
18091801 float y ;
18101802 /*cstat -MISRAC2012-Rule-13.5*/
1811- if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( nu ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { // no side effects here
1803+ if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( nu ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { /* no side effects*/
18121804 y = QFFM_NAN ;
18131805 }
18141806 else if ( qFFMath_IsEqual ( 1.0F , nu ) ) {
@@ -1829,7 +1821,7 @@ float qFFMath_Ellint_1( float k,
18291821{
18301822 float y ;
18311823 /*cstat -MISRAC2012-Rule-13.5*/
1832- if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( phi ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { // no side effects here
1824+ if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( phi ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { /* no side effects*/
18331825 y = QFFM_NAN ;
18341826 }
18351827 else {
@@ -1854,7 +1846,7 @@ float qFFMath_Ellint_2( float k,
18541846{
18551847 float y ;
18561848 /*cstat -MISRAC2012-Rule-13.5*/
1857- if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( phi ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { // no side effects here
1849+ if ( qFFMath_IsNaN ( k ) || qFFMath_IsNaN ( phi ) || ( qFFMath_Abs ( k ) > 1.0F ) ) { /* no side effects*/
18581850 y = QFFM_NAN ;
18591851 }
18601852 else {
0 commit comments