]> pd.if.org Git - pdclib/commitdiff
Initial load with header templates and some first declarations.
authorsolar <unknown>
Wed, 19 Nov 2003 06:08:47 +0000 (06:08 +0000)
committersolar <unknown>
Wed, 19 Nov 2003 06:08:47 +0000 (06:08 +0000)
23 files changed:
includes/assert.h [new file with mode: 0644]
includes/complex.h [new file with mode: 0644]
includes/ctype.h [new file with mode: 0644]
includes/errno.h [new file with mode: 0644]
includes/fenv.h [new file with mode: 0644]
includes/inttypes.h [new file with mode: 0644]
includes/iso646.h [new file with mode: 0644]
includes/limits.h [new file with mode: 0644]
includes/locale.h [new file with mode: 0644]
includes/math.h [new file with mode: 0644]
includes/setjmp.h [new file with mode: 0644]
includes/signal.h [new file with mode: 0644]
includes/stdarg.h [new file with mode: 0644]
includes/stdbool.h [new file with mode: 0644]
includes/stddef.h [new file with mode: 0644]
includes/stdint.h [new file with mode: 0644]
includes/stdio.h [new file with mode: 0644]
includes/stdlib.h [new file with mode: 0644]
includes/string.h [new file with mode: 0644]
includes/tgmath.h [new file with mode: 0644]
includes/time.h [new file with mode: 0644]
includes/wchar.h [new file with mode: 0644]
includes/wctype.h [new file with mode: 0644]

diff --git a/includes/assert.h b/includes/assert.h
new file mode 100644 (file)
index 0000000..e4363f5
--- /dev/null
@@ -0,0 +1,38 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides the debug macro assert().
+// ----------------------------------------------------------------------------
+
+#ifndef __ASSERT_H
+#define __ASSERT_H __ASSERT_H
+
+// ----------------------------------------------------------------------------
+// AUXILIARY
+
+// Helper function doing the print to stderr and call to abort().
+void __assert( char const * const expression, // the tested expression
+               char const * const file,       // name of source file
+               char const * const function,   // name of function
+               int const line );              // number of source file line
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+// TODO: <void expression> is given as (void) 0, which might give a "C style
+// cast" warning under C++. Find a void expression that does not give warnings.
+
+// TODO: Check the macro for if-compatibility.
+
+#undef assert
+#if defined NDEBUG
+#define assert( x ) <void expression>
+#else
+#define assert( x ) ( x ) ? <void expression> \
+                          :  __assert( #x, __FILE__, __func__, __LINE__ )
+#endif
+
+#endif // __ASSERT_H
diff --git a/includes/complex.h b/includes/complex.h
new file mode 100644 (file)
index 0000000..6abc92a
--- /dev/null
@@ -0,0 +1,262 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides the types float _Complex, double _Complex and long double _Complex
+// plus math functions on those types.
+// ----------------------------------------------------------------------------
+
+#ifndef __COMPLEX_H
+#define __COMPLEX_H __COMPLEX_H
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+// TODO: #defines for complex, _Complex_I, imaginary, _Imaginary_I, and I.
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS - C++
+
+#ifdef __cplusplus
+
+// These functions return the absolute value (magnitude) of their parameter.
+double               abs( double      _Complex   x );
+float                abs( float       _Complex   x );
+long double          abs( long double _Complex   x );
+double               fabs( double      _Complex  x );
+float                fabs( float       _Complex  x );
+long double          fabs( long double _Complex  x );
+
+// These functions return the sine of their parameter.
+double _Complex      sin( double _Complex        x );
+float _Complex       sin( float _Complex         x );
+long double _Complex sin( long double _Complex   x );
+
+// These functions return the hyperbolic sine of their parameter.
+double _Complex      sinh( double _Complex       x );
+float _Complex       sinh( float _Complex        x );
+long double _Complex sinh( long double _Complex  x );
+
+// These functions return the arcsine of their parameter.
+double _Complex      asin( double _Complex       x );
+float _Complex       asin( float _Complex        x );
+long double _Complex asin( long double _Complex  x );
+
+// These functions return the hyperbolic arcsine of their parameter.
+double _Complex      asinh( double _Complex      x );
+float _Complex       asinh( float _Complex       x );
+long double _Complex asinh( long double _Complex x );
+
+// These functions return the cosine of their parameter.
+double _Complex      cos( double _Complex        x );
+float _Complex       cos( float _Complex         x );
+long double _Complex cos( long double _Complex   x );
+
+// These functions return the hyperbolic cosine of their parameter.
+double _Complex      cosh( double _Complex       x );
+float _Complex       cosh( float _Complex        x );
+long double _Complex cosh( long double _Complex  x );
+
+// These functions return the arccosine of their parameter.
+double _Complex      acos( double      _Complex  x );
+float _Complex       acos( float       _Complex  x );
+long double _Complex acos( long double _Complex  x );
+
+// These functions return the hyperbolic arccosine of their parameter.
+double _Complex      acosh( double      _Complex x );
+float _Complex       acosh( float       _Complex x );
+long double _Complex acosh( long double _Complex x );
+
+// These functions return the tangent of their parameter.
+double _Complex      tan( double _Complex        x );
+float _Complex       tan( float _Complex         x );
+long double _Complex tan( long double _Complex   x );
+
+// These functions return the hyperbolic tangent of their parameter.
+double _Complex      tanh( double _Complex       x );
+float _Complex       tanh( float _Complex        x );
+long double _Complex tanh( long double _Complex  x );
+
+// These functions return the arctangent of their parameter.
+double _Complex      atan( double _Complex       x );
+float _Complex       atan( float _Complex        x );
+long double _Complex atan( long double _Complex  x );
+
+// These functions return the hyperbolic arctangent of their parameter.
+double _Complex      atanh( double _Complex      x );
+float _Complex       atanh( float _Complex       x );
+long double _Complex atanh( long double _Complex x );
+
+// These functions return the imaginary part of their parameter.
+double               imag( double _Complex       x );
+float                imag( float _Complex        x );
+long double          imag( long double _Complex  x );
+float                cimag( float _Complex       x );
+long double          cimag( long double _Complex x );
+
+// These functions return the real part of their parameter.
+double               real( double _Complex       x );
+float                real( float _Complex        x );
+long double          real( long double _Complex  x );
+float                creal( float _Complex       x );
+long double          creal( long double _Complex x );
+
+// These functions return value^exponent.
+double _Complex      pow( double _Complex        value,
+                         double _Complex        exponent );
+float _Complex       pow( float _Complex         value,
+                         float _Complex         exponent );
+long double _Complex pow( long double _Complex   value,
+                         long double _Complex   exponent );
+
+// These functions return the square root of their parameter.
+double _Complex      sqrt( double _Complex       x );
+float _Complex       sqrt( float _Complex        x );
+long double _Complex sqrt( long double _Complex  x );
+
+// These functions return the exponential of their parameter.
+double _Complex      exp( double _Complex        x );
+float _Complex       exp( float _Complex         x );
+long double _Complex exp( long double _Complex   x );
+
+// These functions return the logarithm of their parameter.
+double _Complex      log( double _Complex        x );
+float _Complex       log( float _Complex         x );
+long double _Complex log( long double _Complex   x );
+
+// These functions return the phase angle of their parameter.
+double               arg( double _Complex        x );
+float                arg( float _Complex         x );
+long double          arg( long double _Complex   x );
+float                carg( float _Complex        x );
+long double          carg( long double _Complex  x );
+
+// These functions return the conjugate of their parameter.
+float _Complex       conj( float _Complex        x );
+long double _Complex conj( long double _Complex  x );
+
+// These functions return the projection of their parameter.
+float _Complex       cproj( float _Complex       x );
+long double _Complex cproj( long double _Complex x );
+
+#endif // __cplusplus
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS - Standard C
+
+// These functions return the absolute value (magnitude) of their parameter.
+double               cabs( double _Complex         x );
+float                cabsf( float _Complex         x );
+long double          cabsl( long double _Complex   x );
+
+// These functions return the sine of their parameter.
+double _Complex      csin( double _Complex         x );
+float _Complex       csinf( float _Complex         x );
+long double _Complex csinl( long double _Complex   x );
+
+// These functions return the hyperbolic sine of their parameter.
+double _Complex      csinh( double _Complex        x );
+float _Complex       csinhf( float _Complex        x );
+long double _Complex csinhl( long double _Complex  x );
+
+// These functions return the arcsine of their parameter.
+double _Complex      casin( double _Complex        x );
+float _Complex       casinf( float _Complex        x );
+long double _Complex casinl( long double _Complex  x );
+
+// These functions return the hyperbolic arcsine of their parameter.
+double _Complex      casinh( double _Complex       x );
+float _Complex       casinhf( float _Complex       x );
+long double _Complex casinhl( long double _Complex x );
+
+// These functions return the cosine of their parameter.
+double _Complex      ccos( double _Complex         x );
+float _Complex       ccosf( float _Complex         x );
+long double _Complex ccosl( long double _Complex   x );
+
+// These functions return the hyperbolic cosine of their parameter.
+double _Complex      ccosh( double _Complex        x );
+float _Complex       ccoshf( float _Complex        x );
+long double _Complex ccoshl( long double _Complex  x );
+
+// These functions return the arccosine of their parameter.
+double _Complex      cacos( double _Complex        x );
+float _Complex       cacosf( float _Complex        x );
+long double _Complex cacosl( long double _Complex  x );
+
+// These functions return the hyperbolic arccosine of their parameter.
+double _Complex      cacosh( double _Complex       x );
+float _Complex       cacoshf( float _Complex       x );
+long double _Complex cacoshl( long double _Complex x );
+
+// These functions return the tangent of their parameter.
+double _Complex      ctan( double _Complex         x );
+float _Complex       ctanf( float _Complex         x );
+long double _Complex ctanl( long double _Complex   x );
+
+// These functions return the hyperbolic tangent of their parameter.
+double _Complex      ctanh( double _Complex        x );
+float _Complex       ctanhf( float _Complex        x );
+long double _Complex ctanhl( long double _Complex  x );
+
+// These functions return the arctangent of their parameter.
+double _Complex      catan( double _Complex        x );
+float _Complex       catanf( float _Complex        x );
+long double _Complex catanl( long double _Complex  x );
+
+// These functions return the hyperbolic arctangent of their parameter.
+double _Complex      catanh( double _Complex       x );
+float _Complex       catanhf( float _Complex       x );
+long double _Complex catanhl( long double _Complex x );
+
+// These functions return the imaginary part of their parameter.
+double               cimag( double _Complex        x );
+float                cimagf( float _Complex        x );
+long double          cimagl( long double _Complex  x );
+
+// These functions return the real part of their parameter.
+double               creal( double _Complex        x );
+float                crealf( float _Complex        x );
+long double          creall( long double _Complex  x );
+
+// These functions return value^exponent.
+double _Complex      cpow( double _Complex         value,
+                          double _Complex         exponent );
+float _Complex       cpowf( float _Complex         value,
+                           float _Complex         exponent );
+long double _Complex cpowl( long double _Complex   value,
+                           long double _Complex   exponent );
+
+// These functions return the square root of their parameter.
+double _Complex      csqrt( double _Complex        x );
+float _Complex       csqrtf( float _Complex        x );
+long double _Complex csqrtl( long double _Complex  x );
+
+// These functions return the exponential of their parameter.
+double _Complex      cexp( double _Complex         x );
+float _Complex       cexpf( float _Complex         x );
+long double _Complex cexpl( long double _Complex   x );
+
+// These functions return the logarithm of their parameter.
+double _Complex      clog( double _Complex         x );
+float _Complex       clogf( float _Complex         x );
+long double _Complex clogl( long double _Complex   x );
+
+// These functions return the phase angle of their value.
+double               carg( double _Complex         x );
+float                cargf( float _Complex         x );
+long double          cargl( long double _Complex   x );
+
+// These functions return the conjugate of their parameter.
+double _Complex      conj( double _Complex         x );
+float _Complex       conjf( float _Complex         x );
+long double _Complex conjl( long double _Complex   x );
+
+// These functions return the projection of their parameter.
+double _Complex      cproj( double _Complex        x );
+float _Complex       cprojf( float _Complex        x );
+long double _Complex cprojl( long double _Complex  x );
+
+#endif // __COMPLEX_H
diff --git a/includes/ctype.h b/includes/ctype.h
new file mode 100644 (file)
index 0000000..a9ecc25
--- /dev/null
@@ -0,0 +1,60 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides functions for determining the locale-dependent type of a character,
+// plus locale-aware uppercase / lowercase conversions. (See also locale.h.)
+// ----------------------------------------------------------------------------
+
+#ifndef __CTYPE_H
+#define __CTYPE_H __CTYPE_H
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS
+
+// returns nonzero if c is alphanumeric in the locale.
+int isalnum( int c );
+
+// returns nonzero if c is alphabetic character in the locale.
+int isalpha( int c );
+
+// returns nonzero if c is a horizontal blank in the locale.
+int isblank( int c );
+
+// returns nonzero if c is a control character in the locale.
+int iscntrl( int c );
+
+// returns nonzero if c is a digit in the locale.
+int isdigit( int c );
+
+// returns nonzero if c is alphanumeric or a punctuation in the locale.
+int isgraph( int c );
+
+// returns nonzero if c is a lowercase alphabetic character in the locale.
+int islower( int c );
+
+// returns nonzero if c is a printable character ( isgraph(  ) or isblank(  ) ) in
+// the locale.
+int isprint( int c );
+
+// returns nonzero if c is a punctuation in the locale.
+int ispunct( int c );
+
+// returns nonzero if c is a whitespace in the locale.
+int isspace( int c );
+
+// returns nonzero if c is an uppercase alphabetical character in the locale.
+int isupper( int c );
+
+// returns nonzero if c is a hexedecimal digit in the locale.
+int isxdigit( int c );
+
+// returns lowercase equivalent for c in locale.
+int tolower( int c );
+
+// returns uppercase equivalent for c in locale.
+int toupper( int c );
+
+#endif // __CTYPE_H
diff --git a/includes/errno.h b/includes/errno.h
new file mode 100644 (file)
index 0000000..873166a
--- /dev/null
@@ -0,0 +1,25 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides 'errno', the auxiliary error handling of the standard library.
+// ----------------------------------------------------------------------------
+
+#ifndef __ERRNO_H
+#define __ERRNO_H __ERRNO_H
+
+// ----------------------------------------------------------------------------
+// DECLARATIONS
+
+extern int errno;
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+#define EDOM      1 // domain error
+#define EILSEQ    2 // illegal (multibyte) sequence
+#define ERANGE    3 // range error
+
+#endif // __ERRNO_H
diff --git a/includes/fenv.h b/includes/fenv.h
new file mode 100644 (file)
index 0000000..395e980
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __FENV_H
+#define __FENV_H __FENV_H
+
+// TODO
+
+#endif // __FENV_H
diff --git a/includes/inttypes.h b/includes/inttypes.h
new file mode 100644 (file)
index 0000000..620a2f4
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __INTTYPES_H
+#define __INTTYPES_H __INTTYPES_H
+
+// TODO
+
+#endif // __INTTYPES_H
diff --git a/includes/iso646.h b/includes/iso646.h
new file mode 100644 (file)
index 0000000..cc8be74
--- /dev/null
@@ -0,0 +1,32 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides "readable" aliases for bit operators.
+// ----------------------------------------------------------------------------
+
+#ifndef __ISO646_H
+#define __ISO646_H __ISO646_H
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+#ifndef __cplusplus
+
+#define and &&
+#define and_eq &=
+#define bitand &
+#define bitor |
+#define compl ~
+#define not !
+#define not_eq !=
+#define or ||
+#define or_eq |=
+#define xor ^
+#define xor_eq ^=
+
+#endif // __cplusplus
+
+#endif // __ISO646_H
diff --git a/includes/limits.h b/includes/limits.h
new file mode 100644 (file)
index 0000000..168b7b0
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __LIMITS_H
+#define __LIMITS_H __LIMITS_H
+
+// TODO
+
+#endif // __LIMITS_H
diff --git a/includes/locale.h b/includes/locale.h
new file mode 100644 (file)
index 0000000..e16b075
--- /dev/null
@@ -0,0 +1,85 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides information on locale specifics as well as a function to change the
+// active locale to something else but the startup default "C".
+// ----------------------------------------------------------------------------
+
+#ifndef __LOCALE_H
+#define __LOCALE_H __LOCALE_H
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+#define NULL 0
+
+// Locale categories
+#define LC_COLLATE   1 // affects strcoll() and strxfrm()
+#define LC_CTYPE     2 // affects ctype.h
+#define LC_MONETARY  4 // affects monetary aspect of localeconv()
+#define LC_NUMERIC   8 // affects numeric aspect of localeconv()
+#define LC_TIME     16 // affects strftime()
+#define LC_ALL      31 // affects all of the above
+
+// ----------------------------------------------------------------------------
+// TYPEDEFS
+
+// TODO: Detailed documentation of grouping formats and field values
+
+struct lconv
+{
+    // LC_NUMERIC
+    char * decimal_point;      // decimal point
+    char * grouping;           // grouping
+    char * thousands_sep;      // grouping string
+
+    // LC_MONETARY
+    char * mon_decimal_point;  // decimal point
+    char * mon_grouping;       // grouping
+    char * mon_thousands_sep;  // grouping string
+    char * negative_sign;      // negative sign
+    char * positive_sign;      // positive sign
+    char * currency_symbol;    // currency symbol
+    char frac_digits;          // after-point digits
+    // negative values
+    char n_cs_precedes;        // currency symbol preceding value?
+    char n_sep_by_space;       // currency symbol seperated by space?
+    char n_sign_posn;          // sign position
+    // positive values
+    char p_cs_precedes;        // currency symbol preceding value?
+    char p_sep_by_space;       // currency symbol seperated by space?
+    char p_sign_posn;          // sign position?
+
+    // for international monetary values
+    char * int_curr_symbol;    // international currency symbol (ISO 4217)
+    char int_frac_digits;      // after-point digits
+    // negative values
+    char int_n_cs_precedes;    // currency symbol preceding value?
+    char int_n_sep_by_space;   // currency symbol seperated by space?
+    char int_n_sign_posn;      // sign position?
+    // positive values
+    char int_p_cs_precedes;    // currency symbol preceding value?
+    char int_p_sep_by_space;   // currency symbol seperated by space?
+    char int_p_sign_posn;      // sign position?
+};
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS
+
+// Returns a (pointer to a) lconv structure holding the values for the current
+// locale. The structure must not be changed; values might become outdated with
+// later calls to setlocale() changing LC_NUMERIC, LC_MONETARY or LC_ALL.
+struct lconv * localeconv( void );
+
+// Categories are selected by OR'ing the LC_* defines from this header. The
+// function sets the current locale to that defined by locale_name, and returns
+// the name of the new locale (if it was set successfully) or a null pointer
+// (if unsuccessful). At startup, the current locale is "C" by default. A null
+// pointer as locale_name leaves the locale unchanged, an empty string sets it
+// to the "native" locale.
+char * setlocale( int categories, const char * locale_name );
+
+#endif // __LOCALE_H
diff --git a/includes/math.h b/includes/math.h
new file mode 100644 (file)
index 0000000..813f3c9
--- /dev/null
@@ -0,0 +1,610 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides floating point math functions.
+// ----------------------------------------------------------------------------
+
+#ifndef __MATH_H
+#define __MATH_H __MATH_H
+
+// ----------------------------------------------------------------------------
+// DEFINES
+
+#define HUGE_VAL  // TODO
+#define HUGE_VALF // TODO
+#define HUGE_VALL // TODO
+
+#define INFINITY // TODO
+#define NAN      // TODO
+
+#define FP_FAST_FMA  // TODO
+#define FP_FAST_FMAF // TODO
+#define FP_FAST_FMAL // TODO
+
+#define FP_INFINITE  // TODO
+#define FP_NAN       // TODO
+#define FP_NORMAL    // TODO
+#define FP_SUBNORMAL // TODO
+#define FP_ZERO      // TODO
+
+#define FP_ILOGB0   // TODO
+#define FP_ILOGBNAN // TODO
+
+#define MATH_ERRNO       1
+#define MATH_ERREXCEPT   2
+#define math_errhandling // TODO
+
+// --------------------------------------------------------------------------
+// TYPEDEFS
+
+typedef f-type double_t; // TODO
+typedef f-type float_t;  // TODO
+
+// --------------------------------------------------------------------------
+// MACROS
+
+#ifndef __cplusplus
+
+#define signbit(x)           // TODO
+#define fpclassify(x)        // TODO
+#define isfinite(x)          // TODO
+#define isinf(x)             // TODO
+#define isnan(x)             // TODO
+#define isnormal(x)          // TODO
+
+#define isgreater(x, y)      // TODO
+#define isgreaterequal(x, y) // TODO
+#define isless(x, y)         // TODO
+#define islessequal(x, y)    // TODO
+#define islessgreater(x, y)  // TODO
+#define isunordered(x, y)    // TODO
+
+#else // __cplusplus
+
+// The same functionality as above is implemented as functions in C++.
+bool signbit( float x );
+bool signbit( double x );
+bool signbit( long double x );
+int fpclassify( float x );
+int fpclassify( double x );
+int fpclassify( long double x );
+bool isfinite( float x );
+bool isfinite( double x );
+bool isfinite( long double x );
+bool isinf( float x );
+bool isinf( double x );
+bool isinf( long double x );
+bool isnan( float x );
+bool isnan( double x );
+bool isnan( long double x );
+bool isnormal( float x );
+bool isnormal( double x );
+bool isnormal( long double x );
+bool isgreater( float x, float y );
+bool isgreater( double x, double y );
+bool isgreater( long double x, long double y );
+bool isgreaterequal( float x, float y );
+bool isgreaterequal( double x, double y );
+bool isgreaterequal( long double x, long double y );
+bool isless( float x, float y );
+bool isless( double x, double y );
+bool isless( long double x, long double y );
+bool islessequal( float x, float y );
+bool islessequal( double x, double y );
+bool islessequal( long double x, long double y );
+bool islessgreater( float x, float y );
+bool islessgreater( double x, double y );
+bool islessgreater( long double x, long double y );
+bool isunordered( float x, float y );
+bool isunordered( double x, double y );
+bool isunordered( long double x, long double y );
+
+#endif // __cplusplus
+
+// --------------------------------------------------------------------------
+// FUNCTIONS - C++
+
+// These functions return the magnitude of their parameter.
+double      abs(double      x);
+float       abs(float       x);
+long double abs(long double x);
+float       fabs(float       x);
+long double fabs(long double x);
+
+// These functions return the sine of their parameter.
+float       sin(float       x);
+long double sin(long double x);
+
+// These functions return the hyperbolic sine of their parameter.
+float       sinh(float       x);
+long double sinh(long double x);
+
+// These functions return the arcsine of their parameter.
+float       asin(float       x);
+long double asin(long double x);
+
+// These functions return the hyperbolic arcsine of their parameter.
+float       asinh(float       x);
+long double asinh(long double x);
+
+// These functions return the cosine of their parameter.
+float       cos(float       x);
+long double cos(long double x);
+
+// These functions return the hyperbolic cosine of their parameter.
+float       cosh(float       x);
+long double cosh(long double x);
+
+// These functions return the arccosine of their parameter.
+float       acos(float       x);
+long double acos(long double x);
+
+// These functions return the hyperbolic arccosine of their parameter.
+float       acosh(float       x);
+long double acosh(long double x);
+
+// These functions return the tangent of their parameter.
+float       tan(float       x);
+long double tan(long double x);
+
+// These functions return the hyperbolic tangent of their parameter.
+float       tanh(float       x);
+long double tanh(long double x);
+
+// These functions return the arctangent of their parameter.
+float       atan(float       x);
+long double atan(long double x);
+
+// These functions return the hyperbolic arctangent of their parameter.
+float       atanh(float       x);
+long double atanh(long double x);
+
+// TODO
+float       atan2(float       y, float       x);
+long double atan2(long double y, long double x);
+
+// These functions return sqrt(x^2 + y^2).
+float       hypot(float       x, float       y);
+long double hypot(long double x, long double y);
+
+// These functions return their parameter x, raised to the power y.
+float       pow(float       x, float       y);
+long double pow(long double x, long double y);
+double      pow(double      x, int         y);
+float       pow(float       x, int         y);
+long double pow(long double x, int         y);
+
+// These functions return the square root of their parameter.
+float       sqrt(float       x);
+long double sqrt(long double x);
+
+// TODO
+float       cbrt(float       x);
+long double cbrt(long double x);
+
+// TODO
+float       exp(float       x);
+long double exp(long double x);
+
+// TODO
+float       exp2(float       x);
+long double exp2(long double x);
+
+// TODO
+float       expm1(float       x);
+long double expm1(long double x);
+
+// TODO
+float       frexp(float       x, int * exponent);
+long double frexp(long double x, int * exponent);
+
+// TODO
+float       ldexp(float       x, int exponent);
+long double ldexp(long double x, int exponent);
+
+// These functions return the natural logarithm of their parameter.
+float       log(float       x);
+long double log(long double x);
+
+// These functions return the logarithm (base 10) of their parameter.
+float       log10(float       x);
+long double log10(long double x);
+
+// These functions return the logarithm (base 2) of their parameter.
+float       log2(float       x);
+long double log2(long double x);
+
+// TODO
+float       logb(float       x);
+long double logb(long double x);
+
+// TODO
+int ilogb(float       x);
+int ilogb(long double x);
+
+// TODO
+float       log1p(float       x);
+long double log1p(long double x);
+
+// These functions return the smallest integer no larger than their parameter
+float       ceil(float       x);
+long double ceil(long double x);
+
+// These functions return the biggest integer no larger than their parameter.
+float       floor(float       x);
+long double floor(long double x);
+
+// TODO
+float       fmod(float       x, float       y);
+long double fmod(long double x, long double y);
+
+// TODO
+float       modf(float       x, float *       integer);
+long double modf(long double x, long double * integer);
+
+// These functions return their parameter x, with the sign of parameter y.
+float       copysign(float       x, float       y);
+long double copysign(long double x, long double y);
+
+// TODO
+float       erf(float       x);
+long double erf(long double x);
+
+// TODO
+float       erfc(float       x);
+long double erfc(long double x);
+
+// TODO
+float       fdim(float       x, float       y);
+long double fdim(long double x, long double y);
+
+// TODO
+float       fma(float       x, float       y, float       z);
+long double fma(long double x, long double y, long double z);
+
+// These functions return the larger of their parameters.
+float       fmax(float       x, float       y);
+long double fmax(long double x, long double y);
+
+// These functions return the smaller of their parameters.
+float       fmin(float       x, float       y);
+long double fmin(long double x, long double y);
+
+// TODO
+long long llrint(float x);
+long long llrint(long double x);
+long lrint(float       x);
+long lrint(long double x);
+float       rint(float       x);
+long double rint(long double x);
+
+// TODO
+long long llround(float       x);
+long long llround(long double x);
+long lround(float       x);
+long lround(long double x);
+float       round(float       x);
+long double round(long double x);
+
+// TODO
+float       trunc(float       x);
+long double trunc(long double x);
+
+// TODO
+float       nearbyint(float       x);
+long double nearbyint(long double x);
+
+// TODO
+float       nextafter(float       x, float       y);
+long double nextafter(long double x, long double y);
+
+// TODO
+float       nexttoward(float       x, long double y);
+long double nexttoward(long double x, long double y);
+
+// TODO
+float       remainder(float       x, float       y);
+long double remainder(long double x, long double y);
+
+// TODO
+float       remquo(float       x, float       y, int * quotient);
+long double remquo(long double x, long double y, int * quotient);
+
+// TODO
+float       scalbn(float       x, int ex);
+long double scalbn(long double x, int ex);
+
+// TODO
+float       scalbln(float       x, long ex);
+long double scalbln(long double x, long ex);
+
+// TODO
+float       lgamma(float       x);
+long double lgamma(long double x);
+
+// TODO
+float       tgamma(float       x);
+long double tgamma(long double x);
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS - Standard C
+
+// These functions return the magnitude of its parameter.
+double      fabs(double       x);
+float       fabsf(float       x);
+long double fabsl(long double x);
+
+// These functions return the sine of its parameter.
+double      sin(double       x);
+float       sinf(float       x);
+long double sinl(long double x);
+
+// These functions return the hyperbolic cosine of its parameter.
+double      sinh(double       x);
+float       sinhf(float       x);
+long double sinhl(long double x);
+
+// These functions return the arcsine of its parameter.
+double      asin(double       x);
+float       asinf(float       x);
+long double asinl(long double x);
+
+// These functions return the hyperbolic arcsine of their parameter.
+double      asinh(double       x);
+float       asinhf(float       x);
+long double asinhl(long double x);
+
+// These functions return the cosine of its parameter.
+double      cos(double       x);
+float       cosf(float       x);
+long double cosl(long double x);
+
+// These functions return the hyperbolic cosine of its parameter.
+double      cosh(double       x);
+float       coshf(float       x);
+long double coshl(long double x);
+
+// These functions return the arccosine of its parameter.
+double      acos(double       x);
+float       acosf(float       x);
+long double acosl(long double x);
+
+// These functions return the hyperbolic arccosine of their parameter.
+double      acosh(double       x);
+float       acoshf(float       x);
+long double acoshl(long double x);
+
+// These functions return the tangent of its parameter.
+double      tan(double       x);
+float       tanf(float       x);
+long double tanl(long double x);
+
+// These functions return the hyperbolic tangent of its parameter.
+double      tanh(double       x);
+float       tanhf(float       x);
+long double tanhl(long double x);
+
+// These functions return the arctangent of its parameter.
+double      atan(double       x);
+float       atanf(float       x);
+long double atanl(long double x);
+
+// These functions return the hyperbolic arctangent of their parameter.
+double      atanh(double       x);
+float       atanhf(float       x);
+long double atanhl(long double x);
+
+// TODO
+double      atan2(double       y, double      x);
+float       atan2f(float       y, float       x);
+long double atan2l(long double y, long double x);
+
+// These functions return sqrt(x^2 + y^2).
+double      hypot(double       x, double      y);
+float       hypotf(float       x, float       y);
+long double hypotl(long double x, long double y);
+
+// These functions return its parameter x, raised to the power y.
+double      pow(double       x, double      y);
+float       powf(float       x, float       y);
+long double powl(long double x, long double y);
+
+// These functions return the square root of its parameter.
+double      sqrt(double       x);
+float       sqrtf(float       x);
+long double sqrtl(long double x);
+
+// TODO
+double      cbrt(double       x);
+float       cbrtf(float       x);
+long double cbrtl(long double x);
+
+// TODO
+double      exp(double       x);
+float       expf(float       x);
+long double expl(long double x);
+
+// TODO
+double      exp2(double       x);
+float       exp2f(float       x);
+long double exp2l(long double x);
+
+// TODO
+double      expm1(double       x);
+float       expm1f(float       x);
+long double expm1l(long double x);
+
+// TODO
+double      frexp(double       x, int * exp);
+float       frexpf(float       x, int * exp);
+long double frexpl(long double x, int * exp);
+
+// TODO
+double      ldexp(double       x, int exp);
+float       ldexpf(float       x, int exp);
+long double ldexpl(long double x, int exp);
+
+// These functions return the natural logarithm of its parameter.
+double      log(double       x);
+float       logf(float       x);
+long double logl(long double x);
+
+// These functions return the logarithm (base 10) of its parameter.
+double      log10(double       x);
+float       log10f(float       x);
+long double log10l(long double x);
+
+// These functions return the logarithm (base 2) of their parameter.
+double      log2(double       x);
+float       log2f(float       x);
+long double log2l(long double x);
+
+// TODO
+double      logb(double       x);
+float       logbf(float       x);
+long double logbl(long double x);
+
+// TODO
+int ilogb(double       x);
+int ilogbf(float       x);
+int ilogbl(long double x);
+
+// TODO
+double      log1p(double       x);
+float       log1pf(float       x);
+long double log1pl(long double x);
+
+// These functions return the smallest integer no smaller than value.
+double      ceil(double       x);
+float       ceilf(float       x);
+long double ceill(long double x);
+
+// These functions return the largest integer no larger than its parameter.
+double      floor(double       x);
+float       floorf(float       x);
+long double floorl(long double x);
+
+// TODO
+double      fmod(double       x, double      y);
+float       fmodf(float       x, float       y);
+long double fmodl(long double x, long double y);
+
+// TODO
+double      modf(double       x, double *      integer);
+float       modff(float       x, float *       integer);
+long double modfl(long double x, long double * integer);
+
+// These functions return their parameter x, with the sign of parameter y.
+double      copysign(double       x, double      y);
+float       copysignf(float       x, float       y);
+long double copysignl(long double x, long double y);
+
+// TODO
+double      erf(double       x);
+float       erff(float       x);
+long double erfl(long double x);
+
+// TODO
+double      erfc(double       x);
+float       erfcf(float       x);
+long double erfcl(long double x);
+
+// TODO
+double      fdim(double       x, double      y);
+float       fdimf(float       x, float       y);
+long double fdiml(long double x, long double y);
+
+// TODO
+double      fma(double       x, double      y, double      z);
+float       fmaf(float       x, float       y, float       z);
+long double fmal(long double x, long double y, long double z);
+
+// These functions return the larger of their parameters.
+double      fmax(double       x, double      y);
+float       fmaxf(float       x, float       y);
+long double fmaxl(long double x, long double y);
+
+// These functions return the smaller of their parameters.
+double      fmin(double       x, double      y);
+float       fminf(float       x, float       y);
+long double fminl(long double x, long double y);
+
+// TODO
+long long llrint(double       x);
+long long llrintf(float       x);
+long long llrintl(long double x);
+long lrint(double       x);
+long lrintf(float       x);
+long lrintl(long double x);
+double      rint(double       x);
+float       rintf(float       x);
+long double rintl(long double x);
+
+// TODO
+long long llround(double       x);
+long long llroundf(float       x);
+long long llroundl(long double x);
+long lround(double       x);
+long lroundf(float       x);
+long lroundl(long double x);
+double      round(double       x);
+float       roundf(float       x);
+long double roundl(long double x);
+
+// TODO
+double      trunc(double       x);
+float       truncf(float       x);
+long double truncl(long double x);
+
+double      nearbyint(double       x);
+float       nearbyintf(float       x);
+long double nearbyintl(long double x);
+
+double      nextafter(double       x, double      y);
+float       nextafterf(float       x, float       y);
+long double nextafterl(long double x, long double y);
+
+// TODO
+double      nexttoward(double       x, long double y);
+float       nexttowardf(float       x, long double y);
+long double nexttowardl(long double x, long double y);
+
+// TODO
+double      remainder(double       x, double      y);
+float       remainderf(float       x, float       y);
+long double remainderl(long double x, long double y);
+
+// TODO
+double      remquo(double       x, double      y, int * pquo);
+float       remquof(float       x, float       y, int * pquo);
+long double remquol(long double x, long double y, int * pquo);
+
+// TODO
+double      scalbn(double       x, int ex);
+float       scalbnf(float       x, int ex);
+long double scalbnl(long double x, int ex);
+
+// TODO
+double      scalbln(double       x, long ex);
+float       scalblnf(float       x, long ex);
+long double scalblnl(long double x, long ex);
+
+// TODO
+double      lgamma(double       x);
+float       lgammaf(float       x);
+long double lgammal(long double x);
+
+// TODO
+double      tgamma(double       x);
+float       tgammaf(float       x);
+long double tgammal(long double x);
+
+// TODO
+double      nan(const char  *str);
+float       nanf(const char *str);
+long double nanl(const char *str);
+
+#endif // __MATH_H
diff --git a/includes/setjmp.h b/includes/setjmp.h
new file mode 100644 (file)
index 0000000..fe4fbb6
--- /dev/null
@@ -0,0 +1,27 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __SETJMP_H
+#define __SETJMP_H __SETJMP_H
+
+// ----------------------------------------------------------------------------
+// TYPEDEFS
+
+struct jmp_buf[1];
+
+// ----------------------------------------------------------------------------
+// FUNCTIONS
+
+// TODO
+int setjmp(jmp_buf env);
+
+// TODO
+void longjmp(jmp_buf env, int val);
+
+#endif // __SETJMP_H
diff --git a/includes/signal.h b/includes/signal.h
new file mode 100644 (file)
index 0000000..21f70e4
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __SIGNAL_H
+#define __SIGNAL_H __SIGNAL_H
+
+// TODO
+
+#endif // __SIGNAL_H
diff --git a/includes/stdarg.h b/includes/stdarg.h
new file mode 100644 (file)
index 0000000..ab5529a
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDARG_H
+#define __STDARG_H __STDARG_H
+
+// TODO
+
+#endif // __STDARG_H
diff --git a/includes/stdbool.h b/includes/stdbool.h
new file mode 100644 (file)
index 0000000..734a52d
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDBOOL_H
+#define __STDBOOL_H __STDBOOL_H
+
+// TODO
+
+#endif // __STDBOOL_H
diff --git a/includes/stddef.h b/includes/stddef.h
new file mode 100644 (file)
index 0000000..2147696
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDDEF_H
+#define __STDDEF_H __STDDEF_H
+
+// TODO
+
+#endif // __STDDEF_H
diff --git a/includes/stdint.h b/includes/stdint.h
new file mode 100644 (file)
index 0000000..66f31fd
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDINT_H
+#define __STDINT_H __STDINT_H
+
+// TODO
+
+#endif // __STDINT_H
diff --git a/includes/stdio.h b/includes/stdio.h
new file mode 100644 (file)
index 0000000..62b5af1
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDIO_H
+#define __STDIO_H __STDIO_H
+
+// TODO
+
+#endif // __STDIO_H
diff --git a/includes/stdlib.h b/includes/stdlib.h
new file mode 100644 (file)
index 0000000..1b9a905
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __STDLIB_H
+#define __STDLIB_H __STDLIB_H
+
+// TODO
+
+#endif // __STDLIB_H
diff --git a/includes/string.h b/includes/string.h
new file mode 100644 (file)
index 0000000..9528577
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides functions for handling C strings ('\0' terminated char arrays).
+// ----------------------------------------------------------------------------
+
+#ifndef __STRING_H
+#define __STRING_H __STRING_H
+
+// TODO
+
+#endif // __STRING_H
diff --git a/includes/tgmath.h b/includes/tgmath.h
new file mode 100644 (file)
index 0000000..976715b
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __TGMATH_H
+#define __TGMATH_H __TGMATH_H
+
+// TODO
+
+#endif // __TGMATH_H
diff --git a/includes/time.h b/includes/time.h
new file mode 100644 (file)
index 0000000..aeda70f
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides a time datatype and time handling functions.
+// ----------------------------------------------------------------------------
+
+#ifndef __TIME_H
+#define __TIME_H __TIME_H
+
+// TODO
+
+#endif // __TIME_H
diff --git a/includes/wchar.h b/includes/wchar.h
new file mode 100644 (file)
index 0000000..1b4142b
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// TODO
+// ----------------------------------------------------------------------------
+
+#ifndef __WCHAR_H
+#define __WCHAR_H __WCHAR_H
+
+// TODO
+
+#endif // __WCHAR_H
diff --git a/includes/wctype.h b/includes/wctype.h
new file mode 100644 (file)
index 0000000..9db5694
--- /dev/null
@@ -0,0 +1,15 @@
+// ----------------------------------------------------------------------------
+// $Id$
+// ----------------------------------------------------------------------------
+// Public Domain C Library - http://pdclib.sourceforge.net
+// This code is Public Domain. Use, modify, and redistribute at will.
+// ----------------------------------------------------------------------------
+// Provides a wchar_t equivalent to ctype.h.
+// ----------------------------------------------------------------------------
+
+#ifndef __WCTYPE_H
+#define __WCTYPE_H __WCTYPE_H
+
+// TODO
+
+#endif // __WCTYPE_H