(root)/
libxml2-2.12.3/
trionan.h
       1  /*************************************************************************
       2   *
       3   * $Id$
       4   *
       5   * Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
       6   *
       7   * Permission to use, copy, modify, and distribute this software for any
       8   * purpose with or without fee is hereby granted, provided that the above
       9   * copyright notice and this permission notice appear in all copies.
      10   *
      11   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
      12   * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
      13   * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
      14   * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
      15   *
      16   ************************************************************************/
      17  
      18  #ifndef TRIO_NAN_H
      19  #define TRIO_NAN_H
      20  
      21  #include "triodef.h"
      22  
      23  #ifdef __cplusplus
      24  extern "C" {
      25  #endif
      26  
      27  enum {
      28    TRIO_FP_INFINITE,
      29    TRIO_FP_NAN,
      30    TRIO_FP_NORMAL,
      31    TRIO_FP_SUBNORMAL,
      32    TRIO_FP_ZERO
      33  };
      34  
      35  /*
      36   * Return NaN (Not-a-Number).
      37   */
      38  TRIO_PUBLIC double trio_nan TRIO_PROTO((void));
      39  
      40  /*
      41   * Return positive infinity.
      42   */
      43  TRIO_PUBLIC double trio_pinf TRIO_PROTO((void));
      44  
      45  /*
      46   * Return negative infinity.
      47   */
      48  TRIO_PUBLIC double trio_ninf TRIO_PROTO((void));
      49  
      50  /*
      51   * Return negative zero.
      52   */
      53  TRIO_PUBLIC double trio_nzero TRIO_PROTO((TRIO_NOARGS));
      54  
      55  /*
      56   * If number is a NaN return non-zero, otherwise return zero.
      57   */
      58  TRIO_PUBLIC int trio_isnan TRIO_PROTO((double number));
      59  
      60  /*
      61   * If number is positive infinity return 1, if number is negative
      62   * infinity return -1, otherwise return 0.
      63   */
      64  TRIO_PUBLIC int trio_isinf TRIO_PROTO((double number));
      65  
      66  /*
      67   * If number is finite return non-zero, otherwise return zero.
      68   */
      69  #if 0
      70  	/* Temporary fix - these 2 routines not used in libxml */
      71  TRIO_PUBLIC int trio_isfinite TRIO_PROTO((double number));
      72  
      73  TRIO_PUBLIC int trio_fpclassify TRIO_PROTO((double number));
      74  #endif
      75  
      76  TRIO_PUBLIC int trio_signbit TRIO_PROTO((double number));
      77  
      78  TRIO_PUBLIC int trio_fpclassify_and_signbit TRIO_PROTO((double number, int *is_negative));
      79  
      80  #ifdef __cplusplus
      81  }
      82  #endif
      83  
      84  #endif /* TRIO_NAN_H */