+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: lib/sdk/crt/float/fpclass.c
- * PURPOSE: Floating-point classes
- * PROGRAMER: Pierre Schweitzer (pierre@reactos.org)
- * REFERENCE: http://babbage.cs.qc.cuny.edu/IEEE-754/References.xhtml
- */
-
-#include <precomp.h>
-#include <float.h>
-#include <internal/ieee.h>
-
-/*
- * @implemented
- */
-int _fpclass(double __d)
-{
- union
- {
- double* __d;
- double_s* d;
- } d;
- d.__d = &__d;
-
-
- /* With 0x7ff, it can only be infinity or NaN */
- if (d.d->exponent == 0x7ff)
- {
- if (d.d->mantissah == 0 && d.d->mantissal == 0)
- {
- return (d.d->sign == 0) ? _FPCLASS_PINF : _FPCLASS_NINF;
- }
- /* Windows will never return Signaling NaN */
- else
- {
- return _FPCLASS_QNAN;
- }
- }
-
- /* With 0, it can only be zero or denormalized number */
- if (d.d->exponent == 0)
- {
- if (d.d->mantissah == 0 && d.d->mantissal == 0)
- {
- return (d.d->sign == 0) ? _FPCLASS_PZ : _FPCLASS_NZ;
- }
- else
- {
- return (d.d->sign == 0) ? _FPCLASS_PD : _FPCLASS_ND;
- }
- }
- /* Only remain normalized numbers */
- else
- {
- return (d.d->sign == 0) ? _FPCLASS_PN : _FPCLASS_NN;
- }
-}