]> pd.if.org Git - pdclib/blobdiff - includes/fenv.h
Re-import from Subversion.
[pdclib] / includes / fenv.h
index 395e980cf38a6bfcbdceff0c0df6e1cb97766b46..7a0d9f37340ff178ed4ba58d9c09ad84a409ff00 100644 (file)
@@ -1,15 +1,58 @@
-// ----------------------------------------------------------------------------
-// $Id$
-// ----------------------------------------------------------------------------
-// Public Domain C Library - http://pdclib.sourceforge.net
-// This code is Public Domain. Use, modify, and redistribute at will.
-// ----------------------------------------------------------------------------
-// TODO
-// ----------------------------------------------------------------------------
+/* ----------------------------------------------------------------------------
+ * $Id$
+ * ----------------------------------------------------------------------------
+ * Public Domain C Library - http://pdclib.sourceforge.net
+ * This code is Public Domain. Use, modify, and redistribute at will.
+ * ----------------------------------------------------------------------------
+ * Floating-point environment
+ * --------------------------------------------------------------------------*/
 
-#ifndef __FENV_H
-#define __FENV_H __FENV_H
+#ifndef _FENV_H
+#define _FENV_H _FENV_H
 
-// TODO
+/* TODO: Documentation */
 
-#endif // __FENV_H
+/* ----------------------------------------------------------------------------
+ * MACROS
+ * --------------------------------------------------------------------------*/
+
+#define FE_DIVBYZERO  /* TODO - to __intern.h / __personality.h? */
+#define FE_INEXACT    /* TODO - to __intern.h / __personality.h? */
+#define FE_INVALID    /* TODO - to __intern.h / __personality.h? */
+#define FE_OVERFLOW   /* TODO - to __intern.h / __personality.h? */
+#define FE_UNDERFLOW  /* TODO - to __intern.h / __personality.h? */
+#define FE_ALL_EXCEPT /* TODO - to __intern.h / __personality.h? */
+
+#define FE_DOWNWARD   /* TODO - to __intern.h / __personality.h? */
+#define FE_TONEAREST  /* TODO - to __intern.h / __personality.h? */
+#define FE_TOWARDZERO /* TODO - to __intern.h / __personality.h? */
+#define FE_UPWARD     /* TODO - to __intern.h / __personality.h? */
+
+#define FE_DFL_ENV    /* TODO - to __intern.h / __personality.h? */
+
+/* ----------------------------------------------------------------------------
+ * TYPEDEFS
+ * --------------------------------------------------------------------------*/
+
+typedef fenv_t;    /* TODO - to __intern.h / __personality.h? */
+typedef fexcept_t; /* TODO - to __intern.h / __personality.h? */
+
+/* ----------------------------------------------------------------------------
+ * FUNCTIONS
+ * --------------------------------------------------------------------------*/
+
+int feclearexcept( int exceptions );
+int fegetexceptflag( fexcept_t * flags, int exceptions );
+int feraiseexcept( int exceptions );
+int fesetexceptflag( const fexcept_t * flags, int exceptions );
+int fetestexcept( int exceptions );
+
+int fegetround( void );
+int fesetround( int mode );
+
+int fegetenv( fenv_t * environment );
+int feholdexcept( fenv_t * environment );
+int fesetenv( const fenv_t * environment );
+int feupdateenv( const fenv_t * environment );
+
+#endif /* _FENV_H */