Reactos
at listview 32 lines 632 B view raw
1/* 2 * PROJECT: ReactOS CRT library 3 * LICENSE: MIT (https://spdx.org/licenses/MIT) 4 * PURPOSE: Portable implementation of fabsf 5 * COPYRIGHT: Copyright 2021 Timo Kreuzer <timo.kreuzer@reactos.org> 6 */ 7 8#include <math.h> 9 10_Check_return_ 11float 12__cdecl 13fabsf( 14 _In_ float x) 15{ 16 /* Load the value as uint */ 17 unsigned int u32 = *(unsigned int*)&x; 18 19 /* Clear the sign bit */ 20 u32 &= ~(1 << 31); 21 22 /* Check for NAN */ 23 if (u32 > 0x7F800000) 24 { 25 /* Set error bit */ 26 *(unsigned int*)&x |= 0x00400000; 27 return x; 28 } 29 30 /* Convert back to float */ 31 return *(float*)&u32; 32}