/* config.h.in.  Generated from configure.ac by autoheader.  */
// acconfig.h symbols and macros for libstdc++ v3 -*- C++ -*-

// Defines libstdc++ version.
#undef PACKAGE
#undef VERSION

// Needed for gettext.
#undef ENABLE_NLS
#undef HAVE_CATGETS
#undef HAVE_GETTEXT
#undef HAVE_STPCPY

// Include I/O support for 'long long' and 'unsigned long long'.
#undef _GLIBCXX_USE_LONG_LONG

// Include support for 'long double'.
#undef _GLIBCXX_USE_LONG_DOUBLE

// Define if C99 math functions (like fpclassify) should be exposed.
#undef _GLIBCXX_USE_C99_MATH

// Define if C99 features such as lldiv_t, llabs, lldiv should be exposed.
#undef _GLIBCXX_USE_C99

// Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T

// Define if using setrlimit to set resource limits during 'make check'.
#undef _GLIBCXX_RES_LIMITS

// Define to use concept checking code from the boost libraries.
#undef _GLIBCXX_CONCEPT_CHECKS

// Define to use symbol versioning in the shared library.
#undef _GLIBCXX_SYMVER

// Define symbol versioning in assember directives. If symbol
// versioning is beigng used, and the assembler supports this kind of
// thing, then use it.
// NB: _GLIBCXX_AT_AT is a hack to work around quoting issues in m4.
#if _GLIBCXX_SYMVER
  #define _GLIBCXX_ASM_SYMVER(cur, old, version) \
   asm (".symver " #cur "," #old _GLIBCXX_AT_AT #version);
#else
  #define _GLIBCXX_ASM_SYMVER(cur, old, version)
#endif

// Define if LFS support is available.
#undef _GLIBCXX_USE_LFS

// Define if NLS translations are to be used.
#undef _GLIBCXX_USE_NLS

// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT

// Define if the atan2f function exists.
#undef HAVE_ATAN2F 

// Define if the atan2l function exists.
#undef HAVE_ATAN2L

// Define if the tanl function exists.
#undef HAVE_TANL

// Define if the copysignf function exists.
#undef HAVE_COPYSIGNF

// Define if getpagesize exists.
#undef HAVE_GETPAGESIZE

// Define if setenv exists.
#undef HAVE_SETENV

// Define if sigsetjmp exists.
#undef HAVE_SIGSETJMP

// Define if mbstate_t exists in wchar.h.
#undef HAVE_MBSTATE_T

// Define if you have the modff function.
#undef HAVE_MODFF

// Define if you have the modfl function.
#undef HAVE_MODFL

// Define if you have the expf function.
#undef HAVE_EXPF

// Define if you have the expl function.
#undef HAVE_EXPL

// Define if you have the hypot function.
#undef HAVE_HYPOT

// Define if you have the hypotf function.
#undef HAVE_HYPOTF

// Define if you have the hypotl function.
#undef HAVE_HYPOTL

// Define if the compiler/host combination has __builtin_abs
#undef HAVE___BUILTIN_ABS

// Define if the compiler/host combination has __builtin_labs
#undef HAVE___BUILTIN_LABS

// Define if the compiler/host combination has __builtin_cos
#undef HAVE___BUILTIN_COS

// Define if the compiler/host combination has __builtin_cosf
#undef HAVE___BUILTIN_COSF

// Define if the compiler/host combination has __builtin_cosl
#undef HAVE___BUILTIN_COSL

// Define if the compiler/host combination has __builtin_fabs
#undef HAVE___BUILTIN_FABS

// Define if the compiler/host combination has __builtin_fabsf
#undef HAVE___BUILTIN_FABSF

// Define if the compiler/host combination has __builtin_fabsl
#undef HAVE___BUILTIN_FABSL

// Define if the compiler/host combination has __builtin_sin
#undef HAVE___BUILTIN_SIN

// Define if the compiler/host combination has __builtin_sinf
#undef HAVE___BUILTIN_SINF

// Define if the compiler/host combination has __builtin_sinl
#undef HAVE___BUILTIN_SINL

// Define if the compiler/host combination has __builtin_sqrt
#undef HAVE___BUILTIN_SQRT

// Define if the compiler/host combination has __builtin_sqrtf
#undef HAVE___BUILTIN_SQRTF

// Define if the compiler/host combination has __builtin_sqrtl
#undef HAVE___BUILTIN_SQRTL

// Define if poll is available in <poll.h>.
#undef HAVE_POLL

// Define if S_ISREG (Posix) is available in <sys/stat.h>.
#undef HAVE_S_ISREG

// Define if S_IFREG is available in <sys/stat.h>.
#undef HAVE_S_IFREG

// Define if writev is available in <sys/uio.h>.
#undef HAVE_WRITEV

// Define if int64_t is available in <stdint.h>.
#undef HAVE_INT64_T

// Define if LC_MESSAGES is available in <locale.h>.
#undef HAVE_LC_MESSAGES

// Define if <float.h> exists.
#undef HAVE_FLOAT_H

// Define if modf is present in <math.h>
#undef HAVE_MODF


/* Define to 1 if you have the `acosf' function. */
#undef HAVE_ACOSF

/* Define to 1 if you have the `acosl' function. */
#undef HAVE_ACOSL

/* Define to 1 if you have the `asinf' function. */
#undef HAVE_ASINF

/* Define to 1 if you have the `asinl' function. */
#undef HAVE_ASINL

/* Define to 1 if you have the `atan2f' function. */
#undef HAVE_ATAN2F

/* Define to 1 if you have the `atan2l' function. */
#undef HAVE_ATAN2L

/* Define to 1 if you have the `atanf' function. */
#undef HAVE_ATANF

/* Define to 1 if you have the `atanl' function. */
#undef HAVE_ATANL

/* Define to 1 if you have the `btowc' function. */
#undef HAVE_BTOWC

/* Define to 1 if you have the `ceilf' function. */
#undef HAVE_CEILF

/* Define to 1 if you have the `ceill' function. */
#undef HAVE_CEILL

/* Define to 1 if you have the `copysign' function. */
#undef HAVE_COPYSIGN

/* Define to 1 if you have the `copysignf' function. */
#undef HAVE_COPYSIGNF

/* Define to 1 if you have the `copysignl' function. */
#undef HAVE_COPYSIGNL

/* Define to 1 if you have the `cosf' function. */
#undef HAVE_COSF

/* Define to 1 if you have the `coshf' function. */
#undef HAVE_COSHF

/* Define to 1 if you have the `coshl' function. */
#undef HAVE_COSHL

/* Define to 1 if you have the `cosl' function. */
#undef HAVE_COSL

/* Define to 1 if you have the <endian.h> header file. */
#undef HAVE_ENDIAN_H

/* Define to 1 if you have the `expf' function. */
#undef HAVE_EXPF

/* Define to 1 if you have the `expl' function. */
#undef HAVE_EXPL

/* Define to 1 if you have the `fabsf' function. */
#undef HAVE_FABSF

/* Define to 1 if you have the `fabsl' function. */
#undef HAVE_FABSL

/* Define to 1 if you have the `fgetwc' function. */
#undef HAVE_FGETWC

/* Define to 1 if you have the `fgetws' function. */
#undef HAVE_FGETWS

/* Define to 1 if you have the `finite' function. */
#undef HAVE_FINITE

/* Define to 1 if you have the `finitef' function. */
#undef HAVE_FINITEF

/* Define to 1 if you have the `finitel' function. */
#undef HAVE_FINITEL

/* Define to 1 if you have the <float.h> header file. */
#undef HAVE_FLOAT_H

/* Define to 1 if you have the `floorf' function. */
#undef HAVE_FLOORF

/* Define to 1 if you have the `floorl' function. */
#undef HAVE_FLOORL

/* Define to 1 if you have the `fmodf' function. */
#undef HAVE_FMODF

/* Define to 1 if you have the `fmodl' function. */
#undef HAVE_FMODL

/* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS

/* Define to 1 if you have the `fputwc' function. */
#undef HAVE_FPUTWC

/* Define to 1 if you have the `fputws' function. */
#undef HAVE_FPUTWS

/* Define to 1 if you have the <fp.h> header file. */
#undef HAVE_FP_H

/* Define to 1 if you have the `frexpf' function. */
#undef HAVE_FREXPF

/* Define to 1 if you have the `frexpl' function. */
#undef HAVE_FREXPL

/* Define to 1 if you have the `fwide' function. */
#undef HAVE_FWIDE

/* Define to 1 if you have the `fwprintf' function. */
#undef HAVE_FWPRINTF

/* Define to 1 if you have the `fwscanf' function. */
#undef HAVE_FWSCANF

/* Define to 1 if you have the <gconv.h> header file. */
#undef HAVE_GCONV_H

/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE

/* Define to 1 if you have the `getwc' function. */
#undef HAVE_GETWC

/* Define to 1 if you have the `getwchar' function. */
#undef HAVE_GETWCHAR

/* Define to 1 if you have the `hypot' function. */
#undef HAVE_HYPOT

/* Define to 1 if you have the `hypotf' function. */
#undef HAVE_HYPOTF

/* Define to 1 if you have the `hypotl' function. */
#undef HAVE_HYPOTL

/* Define to 1 if you have the `iconv' function. */
#undef HAVE_ICONV

/* Define to 1 if you have the `iconv_close' function. */
#undef HAVE_ICONV_CLOSE

/* Define to 1 if you have the `iconv_open' function. */
#undef HAVE_ICONV_OPEN

/* Define to 1 if you have the <ieeefp.h> header file. */
#undef HAVE_IEEEFP_H

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define to 1 if you have the `isinf' function. */
#undef HAVE_ISINF

/* Define to 1 if you have the `isinff' function. */
#undef HAVE_ISINFF

/* Define to 1 if you have the `isinfl' function. */
#undef HAVE_ISINFL

/* Define to 1 if you have the `isnan' function. */
#undef HAVE_ISNAN

/* Define to 1 if you have the `isnanf' function. */
#undef HAVE_ISNANF

/* Define to 1 if you have the `isnanl' function. */
#undef HAVE_ISNANL

/* Define to 1 if you have the `iswblank' function. */
#undef HAVE_ISWBLANK

/* Define to 1 if you have the `ldexpf' function. */
#undef HAVE_LDEXPF

/* Define to 1 if you have the `ldexpl' function. */
#undef HAVE_LDEXPL

/* Define to 1 if you have the <libintl.h> header file. */
#undef HAVE_LIBINTL_H

/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM

/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_AS

/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_DATA

/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_FSIZE

/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_RSS

/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_VMEM

/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H

/* Define to 1 if you have the `log10f' function. */
#undef HAVE_LOG10F

/* Define to 1 if you have the `log10l' function. */
#undef HAVE_LOG10L

/* Define to 1 if you have the `logf' function. */
#undef HAVE_LOGF

/* Define to 1 if you have the `logl' function. */
#undef HAVE_LOGL

/* Define to 1 if you have the <machine/endian.h> header file. */
#undef HAVE_MACHINE_ENDIAN_H

/* Define to 1 if you have the <machine/param.h> header file. */
#undef HAVE_MACHINE_PARAM_H

/* Define to 1 if you have the `mbrlen' function. */
#undef HAVE_MBRLEN

/* Define to 1 if you have the `mbrtowc' function. */
#undef HAVE_MBRTOWC

/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT

/* Define to 1 if you have the `mbsrtowcs' function. */
#undef HAVE_MBSRTOWCS

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP

/* Define to 1 if you have the `modff' function. */
#undef HAVE_MODFF

/* Define to 1 if you have the `modfl' function. */
#undef HAVE_MODFL

/* Define to 1 if you have the <nan.h> header file. */
#undef HAVE_NAN_H

/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO

/* Define to 1 if you have the `powf' function. */
#undef HAVE_POWF

/* Define to 1 if you have the `powl' function. */
#undef HAVE_POWL

/* Define to 1 if you have the `putwc' function. */
#undef HAVE_PUTWC

/* Define to 1 if you have the `putwchar' function. */
#undef HAVE_PUTWCHAR

/* Define to 1 if you have the `qfpclass' function. */
#undef HAVE_QFPCLASS

/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV

/* Define if sigsetjmp is available. */
#undef HAVE_SIGSETJMP

/* Define to 1 if you have the `sincos' function. */
#undef HAVE_SINCOS

/* Define to 1 if you have the `sincosf' function. */
#undef HAVE_SINCOSF

/* Define to 1 if you have the `sincosl' function. */
#undef HAVE_SINCOSL

/* Define to 1 if you have the `sinf' function. */
#undef HAVE_SINF

/* Define to 1 if you have the `sinhf' function. */
#undef HAVE_SINHF

/* Define to 1 if you have the `sinhl' function. */
#undef HAVE_SINHL

/* Define to 1 if you have the `sinl' function. */
#undef HAVE_SINL

/* Define to 1 if you have the `sqrtf' function. */
#undef HAVE_SQRTF

/* Define to 1 if you have the `sqrtl' function. */
#undef HAVE_SQRTL

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strtof' function. */
#undef HAVE_STRTOF

/* Define to 1 if you have the `strtold' function. */
#undef HAVE_STRTOLD

/* Define to 1 if you have the `swprintf' function. */
#undef HAVE_SWPRINTF

/* Define to 1 if you have the `swscanf' function. */
#undef HAVE_SWSCANF

/* Define to 1 if you have the <sys/filio.h> header file. */
#undef HAVE_SYS_FILIO_H

/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H

/* Define to 1 if you have the <sys/isa_defs.h> header file. */
#undef HAVE_SYS_ISA_DEFS_H

/* Define to 1 if you have the <sys/machine.h> header file. */
#undef HAVE_SYS_MACHINE_H

/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H

/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/uio.h> header file. */
#undef HAVE_SYS_UIO_H

/* Define to 1 if you have the `tanf' function. */
#undef HAVE_TANF

/* Define to 1 if you have the `tanhf' function. */
#undef HAVE_TANHF

/* Define to 1 if you have the `tanhl' function. */
#undef HAVE_TANHL

/* Define to 1 if you have the `tanl' function. */
#undef HAVE_TANL

/* Define to 1 if you have the `ungetwc' function. */
#undef HAVE_UNGETWC

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to 1 if you have the `vfwprintf' function. */
#undef HAVE_VFWPRINTF

/* Define to 1 if you have the `vfwscanf' function. */
#undef HAVE_VFWSCANF

/* Define to 1 if you have the `vswprintf' function. */
#undef HAVE_VSWPRINTF

/* Define to 1 if you have the `vswscanf' function. */
#undef HAVE_VSWSCANF

/* Define to 1 if you have the `vwprintf' function. */
#undef HAVE_VWPRINTF

/* Define to 1 if you have the `vwscanf' function. */
#undef HAVE_VWSCANF

/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H

/* Define to 1 if you have the `wcrtomb' function. */
#undef HAVE_WCRTOMB

/* Define to 1 if you have the `wcscat' function. */
#undef HAVE_WCSCAT

/* Define to 1 if you have the `wcschr' function. */
#undef HAVE_WCSCHR

/* Define to 1 if you have the `wcscmp' function. */
#undef HAVE_WCSCMP

/* Define to 1 if you have the `wcscoll' function. */
#undef HAVE_WCSCOLL

/* Define to 1 if you have the `wcscpy' function. */
#undef HAVE_WCSCPY

/* Define to 1 if you have the `wcscspn' function. */
#undef HAVE_WCSCSPN

/* Define to 1 if you have the `wcsftime' function. */
#undef HAVE_WCSFTIME

/* Define to 1 if you have the `wcslen' function. */
#undef HAVE_WCSLEN

/* Define to 1 if you have the `wcsncat' function. */
#undef HAVE_WCSNCAT

/* Define to 1 if you have the `wcsncmp' function. */
#undef HAVE_WCSNCMP

/* Define to 1 if you have the `wcsncpy' function. */
#undef HAVE_WCSNCPY

/* Define to 1 if you have the `wcspbrk' function. */
#undef HAVE_WCSPBRK

/* Define to 1 if you have the `wcsrchr' function. */
#undef HAVE_WCSRCHR

/* Define to 1 if you have the `wcsrtombs' function. */
#undef HAVE_WCSRTOMBS

/* Define to 1 if you have the `wcsspn' function. */
#undef HAVE_WCSSPN

/* Define to 1 if you have the `wcsstr' function. */
#undef HAVE_WCSSTR

/* Define to 1 if you have the `wcstod' function. */
#undef HAVE_WCSTOD

/* Define to 1 if you have the `wcstof' function. */
#undef HAVE_WCSTOF

/* Define to 1 if you have the `wcstok' function. */
#undef HAVE_WCSTOK

/* Define to 1 if you have the `wcstol' function. */
#undef HAVE_WCSTOL

/* Define to 1 if you have the `wcstoul' function. */
#undef HAVE_WCSTOUL

/* Define to 1 if you have the `wcsxfrm' function. */
#undef HAVE_WCSXFRM

/* Define to 1 if you have the `wctob' function. */
#undef HAVE_WCTOB

/* Define to 1 if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H

/* Define to 1 if you have the `wmemchr' function. */
#undef HAVE_WMEMCHR

/* Define to 1 if you have the `wmemcmp' function. */
#undef HAVE_WMEMCMP

/* Define to 1 if you have the `wmemcpy' function. */
#undef HAVE_WMEMCPY

/* Define to 1 if you have the `wmemmove' function. */
#undef HAVE_WMEMMOVE

/* Define to 1 if you have the `wmemset' function. */
#undef HAVE_WMEMSET

/* Define to 1 if you have the `wprintf' function. */
#undef HAVE_WPRINTF

/* Define to 1 if you have the `wscanf' function. */
#undef HAVE_WSCANF

/* Define to 1 if you have the `_acosf' function. */
#undef HAVE__ACOSF

/* Define to 1 if you have the `_acosl' function. */
#undef HAVE__ACOSL

/* Define to 1 if you have the `_asinf' function. */
#undef HAVE__ASINF

/* Define to 1 if you have the `_asinl' function. */
#undef HAVE__ASINL

/* Define to 1 if you have the `_atan2f' function. */
#undef HAVE__ATAN2F

/* Define to 1 if you have the `_atan2l' function. */
#undef HAVE__ATAN2L

/* Define to 1 if you have the `_atanf' function. */
#undef HAVE__ATANF

/* Define to 1 if you have the `_atanl' function. */
#undef HAVE__ATANL

/* Define to 1 if you have the `_ceilf' function. */
#undef HAVE__CEILF

/* Define to 1 if you have the `_ceill' function. */
#undef HAVE__CEILL

/* Define to 1 if you have the `_copysign' function. */
#undef HAVE__COPYSIGN

/* Define to 1 if you have the `_copysignl' function. */
#undef HAVE__COPYSIGNL

/* Define to 1 if you have the `_cosf' function. */
#undef HAVE__COSF

/* Define to 1 if you have the `_coshf' function. */
#undef HAVE__COSHF

/* Define to 1 if you have the `_coshl' function. */
#undef HAVE__COSHL

/* Define to 1 if you have the `_cosl' function. */
#undef HAVE__COSL

/* Define to 1 if you have the `_expf' function. */
#undef HAVE__EXPF

/* Define to 1 if you have the `_expl' function. */
#undef HAVE__EXPL

/* Define to 1 if you have the `_fabsf' function. */
#undef HAVE__FABSF

/* Define to 1 if you have the `_fabsl' function. */
#undef HAVE__FABSL

/* Define to 1 if you have the `_finite' function. */
#undef HAVE__FINITE

/* Define to 1 if you have the `_finitef' function. */
#undef HAVE__FINITEF

/* Define to 1 if you have the `_finitel' function. */
#undef HAVE__FINITEL

/* Define to 1 if you have the `_floorf' function. */
#undef HAVE__FLOORF

/* Define to 1 if you have the `_floorl' function. */
#undef HAVE__FLOORL

/* Define to 1 if you have the `_fmodf' function. */
#undef HAVE__FMODF

/* Define to 1 if you have the `_fmodl' function. */
#undef HAVE__FMODL

/* Define to 1 if you have the `_fpclass' function. */
#undef HAVE__FPCLASS

/* Define to 1 if you have the `_frexpf' function. */
#undef HAVE__FREXPF

/* Define to 1 if you have the `_frexpl' function. */
#undef HAVE__FREXPL

/* Define to 1 if you have the `_hypot' function. */
#undef HAVE__HYPOT

/* Define to 1 if you have the `_hypotf' function. */
#undef HAVE__HYPOTF

/* Define to 1 if you have the `_hypotl' function. */
#undef HAVE__HYPOTL

/* Define to 1 if you have the `_isinf' function. */
#undef HAVE__ISINF

/* Define to 1 if you have the `_isinff' function. */
#undef HAVE__ISINFF

/* Define to 1 if you have the `_isinfl' function. */
#undef HAVE__ISINFL

/* Define to 1 if you have the `_isnan' function. */
#undef HAVE__ISNAN

/* Define to 1 if you have the `_isnanf' function. */
#undef HAVE__ISNANF

/* Define to 1 if you have the `_isnanl' function. */
#undef HAVE__ISNANL

/* Define to 1 if you have the `_ldexpf' function. */
#undef HAVE__LDEXPF

/* Define to 1 if you have the `_ldexpl' function. */
#undef HAVE__LDEXPL

/* Define to 1 if you have the `_log10f' function. */
#undef HAVE__LOG10F

/* Define to 1 if you have the `_log10l' function. */
#undef HAVE__LOG10L

/* Define to 1 if you have the `_logf' function. */
#undef HAVE__LOGF

/* Define to 1 if you have the `_logl' function. */
#undef HAVE__LOGL

/* Define to 1 if you have the `_modff' function. */
#undef HAVE__MODFF

/* Define to 1 if you have the `_modfl' function. */
#undef HAVE__MODFL

/* Define to 1 if you have the `_powf' function. */
#undef HAVE__POWF

/* Define to 1 if you have the `_powl' function. */
#undef HAVE__POWL

/* Define to 1 if you have the `_qfpclass' function. */
#undef HAVE__QFPCLASS

/* Define to 1 if you have the `_sincos' function. */
#undef HAVE__SINCOS

/* Define to 1 if you have the `_sincosf' function. */
#undef HAVE__SINCOSF

/* Define to 1 if you have the `_sincosl' function. */
#undef HAVE__SINCOSL

/* Define to 1 if you have the `_sinf' function. */
#undef HAVE__SINF

/* Define to 1 if you have the `_sinhf' function. */
#undef HAVE__SINHF

/* Define to 1 if you have the `_sinhl' function. */
#undef HAVE__SINHL

/* Define to 1 if you have the `_sinl' function. */
#undef HAVE__SINL

/* Define to 1 if you have the `_sqrtf' function. */
#undef HAVE__SQRTF

/* Define to 1 if you have the `_sqrtl' function. */
#undef HAVE__SQRTL

/* Define to 1 if you have the `_tanf' function. */
#undef HAVE__TANF

/* Define to 1 if you have the `_tanhf' function. */
#undef HAVE__TANHF

/* Define to 1 if you have the `_tanhl' function. */
#undef HAVE__TANHL

/* Define to 1 if you have the `_tanl' function. */
#undef HAVE__TANL

/* Define to 1 if you have the `__signbit' function. */
#undef HAVE___SIGNBIT

/* Define to 1 if you have the `__signbitf' function. */
#undef HAVE___SIGNBITF

/* Define to 1 if you have the `__signbitl' function. */
#undef HAVE___SIGNBITL

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
#undef _GLIBCXX_HOSTED

/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef _GLIBCXX_SJLJ_EXCEPTIONS
//
// Systems that have certain non-standard functions prefixed with an
// underscore, we'll handle those here. Must come after config.h.in.
//
#if defined (HAVE__ISNAN) && ! defined (HAVE_ISNAN)
# define HAVE_ISNAN 1
# define isnan _isnan
#endif

#if defined (HAVE__ISNANF) && ! defined (HAVE_ISNANF)
# define HAVE_ISNANF 1
# define isnanf _isnanf
#endif

#if defined (HAVE__ISNANL) && ! defined (HAVE_ISNANL)
# define HAVE_ISNANL 1
# define isnanl _isnanl
#endif

#if defined (HAVE__ISINF) && ! defined (HAVE_ISINF)
# define HAVE_ISINF 1
# define isinf _isinf
#endif

#if defined (HAVE__ISINFF) && ! defined (HAVE_ISINFF)
# define HAVE_ISINFF 1
# define isinff _isinff
#endif

#if defined (HAVE__ISINFL) && ! defined (HAVE_ISINFL)
# define HAVE_ISINFL 1
# define isinfl _isinfl
#endif

#if defined (HAVE__COPYSIGN) && ! defined (HAVE_COPYSIGN)
# define HAVE_COPYSIGN 1
# define copysign _copysign
#endif

#if defined (HAVE__COPYSIGNL) && ! defined (HAVE_COPYSIGNL)
# define HAVE_COPYSIGNL 1
# define copysignl _copysignl
#endif

#if defined (HAVE__COSF) && ! defined (HAVE_COSF)
# define HAVE_COSF 1
# define cosf _cosf
#endif

#if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF)
# define HAVE_ACOSF 1
# define acosf _acosf
#endif

#if defined (HAVE__ACOSL) && ! defined (HAVE_ACOSL)
# define HAVE_ACOSL 1
# define acosl _acosl
#endif

#if defined (HAVE__ASINF) && ! defined (HAVE_ASINF)
# define HAVE_ASINF 1
# define asinf _asinf
#endif

#if defined (HAVE__ASINL) && ! defined (HAVE_ASINL)
# define HAVE_ASINL 1
# define asinl _asinl
#endif

#if defined (HAVE__ATANF) && ! defined (HAVE_ATANF)
# define HAVE_ATANF 1
# define atanf _atanf
#endif

#if defined (HAVE__ATANL) && ! defined (HAVE_ATANL)
# define HAVE_ATANL 1
# define atanl _atanl
#endif

#if defined (HAVE__CEILF) && ! defined (HAVE_CEILF)
# define HAVE_CEILF 1
# define aceil _ceilf
#endif

#if defined (HAVE__CEILL) && ! defined (HAVE_CEILL)
# define HAVE_CEILL 1
# define aceil _ceill
#endif

#if defined (HAVE__COSHF) && ! defined (HAVE_COSHF)
# define HAVE_COSHF 1
# define coshf _coshf
#endif

#if defined (HAVE__COSL) && ! defined (HAVE_COSL)
# define HAVE_COSL 1
# define cosl _cosl
#endif

#if defined (HAVE__LOGF) && ! defined (HAVE_LOGF)
# define HAVE_LOGF 1
# define logf _logf
#endif

#if defined (HAVE__COSHL) && ! defined (HAVE_COSHL)
# define HAVE_COSHL 1
# define coshl _coshl
#endif

#if defined (HAVE__EXPF) && ! defined (HAVE_EXPF)
# define HAVE_EXPF 1
# define expf _expf
#endif

#if defined (HAVE__EXPL) && ! defined (HAVE_EXPL)
# define HAVE_EXPL 1
# define expl _expl
#endif

#if defined (HAVE__FABSF) && ! defined (HAVE_FABSF)
# define HAVE_FABSF 1
# define fabsf _fabsf
#endif

#if defined (HAVE__FABSL) && ! defined (HAVE_FABSL)
# define HAVE_FABSL 1
# define fabsl _fabsl
#endif

#if defined (HAVE__FLOORF) && ! defined (HAVE_FLOORF)
# define HAVE_FLOORF 1
# define floorf _floorf
#endif

#if defined (HAVE__FLOORL) && ! defined (HAVE_FLOORL)
# define HAVE_FLOORL 1
# define floorl _floorl
#endif

#if defined (HAVE__FMODF) && ! defined (HAVE_FMODF)
# define HAVE_FMODF 1
# define fmodf _fmodf
#endif

#if defined (HAVE__FMODL) && ! defined (HAVE_FMODL)
# define HAVE_FMODL 1
# define fmodl _fmodl
#endif

#if defined (HAVE__FREXPF) && ! defined (HAVE_FREXPF)
# define HAVE_FREXPF 1
# define frexpf _frexpf
#endif

#if defined (HAVE__FREXPL) && ! defined (HAVE_FREXPL)
# define HAVE_FREXPL 1
# define frexpl _frexpl
#endif

#if defined (HAVE__LDEXPF) && ! defined (HAVE_LDEXPF)
# define HAVE_LDEXPF 1
# define ldexpf _ldexpf
#endif

#if defined (HAVE__LDEXPL) && ! defined (HAVE_LDEXPL)
# define HAVE_LDEXPL 1
# define ldexpl _ldexpl
#endif

#if defined (HAVE__LOG10F) && ! defined (HAVE_LOG10F)
# define HAVE_LOG10F 1
# define log10f _log10f
#endif

#if defined (HAVE__LOGL) && ! defined (HAVE_LOGL)
# define HAVE_LOGL 1
# define logl _logl
#endif

#if defined (HAVE__POWF) && ! defined (HAVE_POWF)
# define HAVE_POWF 1
# define powf _powf
#endif

#if defined (HAVE__LOG10L) && ! defined (HAVE_LOG10L)
# define HAVE_LOG10L 1
# define log10l _log10l
#endif

#if defined (HAVE__MODF) && ! defined (HAVE_MODF)
# define HAVE_MODF 1
# define modf _modf
#endif

#if defined (HAVE__MODL) && ! defined (HAVE_MODL)
# define HAVE_MODL 1
# define modl _modl
#endif

#if defined (HAVE__SINF) && ! defined (HAVE_SINF)
# define HAVE_SINF 1
# define sinf _sinf
#endif

#if defined (HAVE__POWL) && ! defined (HAVE_POWL)
# define HAVE_POWL 1
# define powl _powl
#endif

#if defined (HAVE__SINHF) && ! defined (HAVE_SINHF)
# define HAVE_SINHF 1
# define sinhf _sinhf
#endif

#if defined (HAVE__SINL) && ! defined (HAVE_SINL)
# define HAVE_SINL 1
# define sinl _sinl
#endif

#if defined (HAVE__SQRTF) && ! defined (HAVE_SQRTF)
# define HAVE_SQRTF 1
# define sqrtf _sqrtf
#endif

#if defined (HAVE__SINHL) && ! defined (HAVE_SINHL)
# define HAVE_SINHL 1
# define sinhl _sinhl
#endif

#if defined (HAVE__TANF) && ! defined (HAVE_TANF)
# define HAVE_TANF 1
# define tanf _tanf
#endif

#if defined (HAVE__SQRTL) && ! defined (HAVE_SQRTL)
# define HAVE_SQRTL 1
# define sqrtl _sqrtl
#endif

#if defined (HAVE__TANHF) && ! defined (HAVE_TANHF)
# define HAVE_TANHF 1
# define tanhf _tanhf
#endif

#if defined (HAVE__TANL) && ! defined (HAVE_TANL)
# define HAVE_TANF 1
# define tanf _tanf
#endif

#if defined (HAVE__STRTOF) && ! defined (HAVE_STRTOF)
# define HAVE_STRTOF 1
# define strtof _strtof
#endif

#if defined (HAVE__TANHL) && ! defined (HAVE_TANHL)
# define HAVE_TANHL 1
# define tanhl _tanhl
#endif

#if defined (HAVE__STRTOLD) && ! defined (HAVE_STRTOLD)
# define HAVE_STRTOLD 1
# define strtold _strtold
#endif

#if defined (HAVE__SINCOS) && ! defined (HAVE_SINCOS)
# define HAVE_SINCOS 1
# define sincos _sincos
#endif

#if defined (HAVE__SINCOSF) && ! defined (HAVE_SINCOSF)
# define HAVE_SINCOSF 1
# define sincosf _sincosf
#endif

#if defined (HAVE__SINCOSL) && ! defined (HAVE_SINCOSL)
# define HAVE_SINCOSL 1
# define sincosl _sincosl
#endif

#if defined (HAVE__FINITE) && ! defined (HAVE_FINITE)
# define HAVE_FINITE 1
# define finite _finite
#endif

#if defined (HAVE__FINITEF) && ! defined (HAVE_FINITEF)
# define HAVE_FINITEF 1
# define finitef _finitef
#endif

#if defined (HAVE__FINITEL) && ! defined (HAVE_FINITEL)
# define HAVE_FINITEL 1
# define finitel _finitel
#endif

#if defined (HAVE__QFINITE) && ! defined (HAVE_QFINITE)
# define HAVE_QFINITE 1
# define qfinite _qfinite
#endif

#if defined (HAVE__FPCLASS) && ! defined (HAVE_FPCLASS)
# define HAVE_FPCLASS 1
# define fpclass _fpclass
#endif

#if defined (HAVE__QFPCLASS) && ! defined (HAVE_QFPCLASS)
# define HAVE_QFPCLASS 1
# define qfpclass _qfpclass
#endif

