mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 10:01:43 +00:00
[CRT:MATH] Implement _finite, _finitef
This commit is contained in:
parent
50028685dc
commit
e01231bd49
5 changed files with 41 additions and 17 deletions
|
@ -371,7 +371,7 @@
|
|||
@ cdecl _findnext64(long ptr)
|
||||
@ cdecl _findnext64i32(long ptr)
|
||||
@ cdecl _finite(double)
|
||||
@ cdecl -stub -arch=!i386 _finitef(float)
|
||||
@ cdecl -arch=!i386 _finitef(float)
|
||||
@ cdecl _flushall()
|
||||
@ cdecl _fpclass(double)
|
||||
@ cdecl -stub -arch=!i386 _fpclassf(float)
|
||||
|
|
|
@ -36,19 +36,3 @@ int CDECL _isnan(double __x)
|
|||
x.__x = &__x;
|
||||
return ( x.x->exponent == 0x7ff && ( x.x->mantissah != 0 || x.x->mantissal != 0 ));
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
int CDECL _finite(double __x)
|
||||
{
|
||||
union
|
||||
{
|
||||
double* __x;
|
||||
double_s* x;
|
||||
} x;
|
||||
|
||||
x.__x = &__x;
|
||||
|
||||
return ((x.x->exponent & 0x7ff) != 0x7ff);
|
||||
}
|
||||
|
|
19
sdk/lib/crt/math/_finite.c
Normal file
19
sdk/lib/crt/math/_finite.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* PROJECT: ReactOS CRT
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _finite.
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include <float.h>
|
||||
#include <stdint.h>
|
||||
|
||||
_Check_return_
|
||||
int
|
||||
__cdecl
|
||||
_finite(_In_ double _X)
|
||||
{
|
||||
union { double f; uint64_t ui64; } u = { _X };
|
||||
uint64_t exp = u.ui64 & 0x7FF0000000000000;
|
||||
return (exp != 0x7FF0000000000000);
|
||||
}
|
19
sdk/lib/crt/math/_finitef.c
Normal file
19
sdk/lib/crt/math/_finitef.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* PROJECT: ReactOS CRT
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Implementation of _finitef.
|
||||
* COPYRIGHT: Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
|
||||
*/
|
||||
|
||||
#include <float.h>
|
||||
#include <stdint.h>
|
||||
|
||||
_Check_return_
|
||||
int
|
||||
__cdecl
|
||||
_finitef(_In_ float _X)
|
||||
{
|
||||
union { float f; uint32_t ui32; } u = { _X };
|
||||
uint32_t exp = u.ui32 & 0x7F800000;
|
||||
return (exp != 0x7F800000);
|
||||
}
|
|
@ -5,6 +5,8 @@ list(APPEND LIBCNTPR_MATH_SOURCE
|
|||
math/_chgsignf.c
|
||||
math/_dsign.c
|
||||
math/_fdsign.c
|
||||
math/_finite.c
|
||||
math/_finitef.c
|
||||
math/_invoke_matherr.c
|
||||
math/abs.c
|
||||
math/div.c
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue