/* config.h.in.  Generated from configure.ac by autoheader.  */

/* 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 the target assembler supports .symver directive. */
#undef HAVE_AS_SYMVER_DIRECTIVE

/* 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 `at_quick_exit' function. */
#undef HAVE_AT_QUICK_EXIT

/* Define to 1 if the target assembler supports thread-local storage. */
#undef HAVE_CC_TLS

/* 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 <complex.h> header file. */
#undef HAVE_COMPLEX_H

/* 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 <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* Define if EBADMSG exists. */
#undef HAVE_EBADMSG

/* Define if ECANCELED exists. */
#undef HAVE_ECANCELED

/* Define if ECHILD exists. */
#undef HAVE_ECHILD

/* Define if EIDRM exists. */
#undef HAVE_EIDRM

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

/* Define if ENODATA exists. */
#undef HAVE_ENODATA

/* Define if ENOLINK exists. */
#undef HAVE_ENOLINK

/* Define if ENOSPC exists. */
#undef HAVE_ENOSPC

/* Define if ENOSR exists. */
#undef HAVE_ENOSR

/* Define if ENOSTR exists. */
#undef HAVE_ENOSTR

/* Define if ENOTRECOVERABLE exists. */
#undef HAVE_ENOTRECOVERABLE

/* Define if ENOTSUP exists. */
#undef HAVE_ENOTSUP

/* Define if EOVERFLOW exists. */
#undef HAVE_EOVERFLOW

/* Define if EOWNERDEAD exists. */
#undef HAVE_EOWNERDEAD

/* Define if EPERM exists. */
#undef HAVE_EPERM

/* Define if EPROTO exists. */
#undef HAVE_EPROTO

/* Define if ETIME exists. */
#undef HAVE_ETIME

/* Define if ETIMEDOUT exists. */
#undef HAVE_ETIMEDOUT

/* Define if ETXTBSY exists. */
#undef HAVE_ETXTBSY

/* Define if EWOULDBLOCK exists. */
#undef HAVE_EWOULDBLOCK

/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_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 <fenv.h> header file. */
#undef HAVE_FENV_H

/* 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 <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 if _Unwind_GetIPInfo is available. */
#undef HAVE_GETIPINFO

/* Define if gets is available in <stdio.h>. */
#undef HAVE_GETS

/* 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 if you have the iconv() function. */
#undef HAVE_ICONV

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

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

/* Define if int64_t is a long. */
#undef HAVE_INT64_T_LONG

/* Define if int64_t is a long long. */
#undef HAVE_INT64_T_LONG_LONG

/* 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

/* Defined if iswblank exists. */
#undef HAVE_ISWBLANK

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

/* 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

/* 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 if futex syscall is available. */
#undef HAVE_LINUX_FUTEX

/* 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 if mbstate_t exists in wchar.h. */
#undef HAVE_MBSTATE_T

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

/* Define to 1 if you have the `modf' function. */
#undef HAVE_MODF

/* 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 if poll is available in <poll.h>. */
#undef HAVE_POLL

/* 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 `quick_exit' function. */
#undef HAVE_QUICK_EXIT

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

/* 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

/* Defined if sleep exists. */
#undef HAVE_SLEEP

/* 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 <stdalign.h> header file. */
#undef HAVE_STDALIGN_H

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

/* 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 if strerror_l is available in <string.h>. */
#undef HAVE_STRERROR_L

/* Define if strerror_r is available in <string.h>. */
#undef HAVE_STRERROR_R

/* 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 if strxfrm_l is available in <string.h>. */
#undef HAVE_STRXFRM_L

/* Define to 1 if the target runtime linker supports binding the same symbol
   to different versions. */
#undef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT

/* 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/ipc.h> header file. */
#undef HAVE_SYS_IPC_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 a suitable <sys/sdt.h> header file */
#undef HAVE_SYS_SDT_H

/* Define to 1 if you have the <sys/sem.h> header file. */
#undef HAVE_SYS_SEM_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/sysinfo.h> header file. */
#undef HAVE_SYS_SYSINFO_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 if S_IFREG is available in <sys/stat.h>. */
#undef HAVE_S_IFREG

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

/* 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 <tgmath.h> header file. */
#undef HAVE_TGMATH_H

/* Define to 1 if the target supports thread-local storage. */
#undef HAVE_TLS

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

/* Defined if usleep exists. */
#undef HAVE_USLEEP

/* Defined if vfwscanf exists. */
#undef HAVE_VFWSCANF

/* Defined if vswscanf exists. */
#undef HAVE_VSWSCANF

/* Defined if vwscanf exists. */
#undef HAVE_VWSCANF

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

/* Defined if wcstof exists. */
#undef HAVE_WCSTOF

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

/* Defined if Sleep exists. */
#undef HAVE_WIN32_SLEEP

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

/* 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 `_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 `_modf' function. */
#undef HAVE__MODF

/* 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 `__cxa_thread_atexit_impl' function. */
#undef HAVE___CXA_THREAD_ATEXIT_IMPL

/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* Name of package */
#undef PACKAGE

/* 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 home page for this package. */
#undef PACKAGE_URL

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

/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

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

/* Version number of package */
#undef VERSION

/* Define if the compiler supports C++11 atomics. */
#undef _GLIBCXX_ATOMIC_BUILTINS

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

/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable,
   undefined for platform defaults */
#undef _GLIBCXX_FULLY_DYNAMIC_STRING

/* Define if gthreads library is available. */
#undef _GLIBCXX_HAS_GTHREADS

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

/* Define if compatibility should be provided for -mlong-double-64. */
#undef _GLIBCXX_LONG_DOUBLE_COMPAT

/* Define if ptrdiff_t is int. */
#undef _GLIBCXX_PTRDIFF_T_IS_INT

/* Define if using setrlimit to set resource limits during "make check" */
#undef _GLIBCXX_RES_LIMITS

/* Define if size_t is unsigned int. */
#undef _GLIBCXX_SIZE_T_IS_UINT

/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef _GLIBCXX_SJLJ_EXCEPTIONS

/* Define to the value of the EOF integer constant. */
#undef _GLIBCXX_STDIO_EOF

/* Define to the value of the SEEK_CUR integer constant. */
#undef _GLIBCXX_STDIO_SEEK_CUR

/* Define to the value of the SEEK_END integer constant. */
#undef _GLIBCXX_STDIO_SEEK_END

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

/* Define to use darwin versioning in the shared library. */
#undef _GLIBCXX_SYMVER_DARWIN

/* Define to use GNU versioning in the shared library. */
#undef _GLIBCXX_SYMVER_GNU

/* Define to use GNU namespace versioning in the shared library. */
#undef _GLIBCXX_SYMVER_GNU_NAMESPACE

/* Define to use Sun versioning in the shared library. */
#undef _GLIBCXX_SYMVER_SUN

/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
   <stdio.h>, and <stdlib.h> can be used or exposed. */
#undef _GLIBCXX_USE_C99

/* Define if C99 functions in <complex.h> should be used in <complex>. Using
   compiler builtins for these functions requires corresponding C99 library
   functions to be present. */
#undef _GLIBCXX_USE_C99_COMPLEX

/* Define if C99 functions in <complex.h> should be used in <tr1/complex>.
   Using compiler builtins for these functions requires corresponding C99
   library functions to be present. */
#undef _GLIBCXX_USE_C99_COMPLEX_TR1

/* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in
   namespace std::tr1. */
#undef _GLIBCXX_USE_C99_CTYPE_TR1

/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
   namespace std::tr1. */
#undef _GLIBCXX_USE_C99_FENV_TR1

/* Define if C99 functions in <inttypes.h> should be imported in
   <tr1/cinttypes> in namespace std::tr1. */
#undef _GLIBCXX_USE_C99_INTTYPES_TR1

/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
   <tr1/cinttypes> in namespace std::tr1. */
#undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1

/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
   in namespace std. */
#undef _GLIBCXX_USE_C99_MATH

/* Define if C99 functions or macros in <math.h> should be imported in
   <tr1/cmath> in namespace std::tr1. */
#undef _GLIBCXX_USE_C99_MATH_TR1

/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
   namespace std::tr1. */
#undef _GLIBCXX_USE_C99_STDINT_TR1

/* Defined if clock_gettime syscall has monotonic and realtime clock support.
   */
#undef _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL

/* Defined if clock_gettime has monotonic clock support. */
#undef _GLIBCXX_USE_CLOCK_MONOTONIC

/* Defined if clock_gettime has realtime clock support. */
#undef _GLIBCXX_USE_CLOCK_REALTIME

/* Define if ISO/IEC TR 24733 decimal floating point types are supported on
   this host. */
#undef _GLIBCXX_USE_DECIMAL_FLOAT

/* Define if __float128 is supported on this host. */
#undef _GLIBCXX_USE_FLOAT128

/* Defined if gettimeofday is available. */
#undef _GLIBCXX_USE_GETTIMEOFDAY

/* Define if get_nprocs is available in <sys/sysinfo.h>. */
#undef _GLIBCXX_USE_GET_NPROCS

/* Define if __int128 is supported on this host. */
#undef _GLIBCXX_USE_INT128

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

/* Define if code specialized for long long should be used. */
#undef _GLIBCXX_USE_LONG_LONG

/* Defined if nanosleep is available. */
#undef _GLIBCXX_USE_NANOSLEEP

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

/* Define if pthreads_num_processors_np is available in <pthread.h>. */
#undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP

/* Define if POSIX read/write locks are available in <gthr.h>. */
#undef _GLIBCXX_USE_PTHREAD_RWLOCK_T

/* Define if /dev/random and /dev/urandom are available for the random_device
   of TR1 (Chapter 5.1). */
#undef _GLIBCXX_USE_RANDOM_TR1

/* Defined if sched_yield is available. */
#undef _GLIBCXX_USE_SCHED_YIELD

/* Define if _SC_NPROCESSORS_ONLN is available in <unistd.h>. */
#undef _GLIBCXX_USE_SC_NPROCESSORS_ONLN

/* Define if _SC_NPROC_ONLN is available in <unistd.h>. */
#undef _GLIBCXX_USE_SC_NPROC_ONLN

/* Define if sysctl(), CTL_HW and HW_NCPU are available in <sys/sysctl.h>. */
#undef _GLIBCXX_USE_SYSCTL_HW_NCPU

/* Define if obsolescent tmpnam is available in <stdio.h>. */
#undef _GLIBCXX_USE_TMPNAM

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

/* Define to 1 if a verbose library is built, or 0 otherwise. */
#undef _GLIBCXX_VERBOSE

/* Defined if as can handle rdrand. */
#undef _GLIBCXX_X86_RDRAND

/* Define to 1 if mutex_timedlock is available. */
#undef _GTHREAD_USE_MUTEX_TIMEDLOCK

#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__ATAN2F) && ! defined (HAVE_ATAN2F)
# define HAVE_ATAN2F 1
# define atan2f _atan2f
#endif

#if defined (HAVE__ATAN2L) && ! defined (HAVE_ATAN2L)
# define HAVE_ATAN2L 1
# define atan2l _atan2l
#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 ceilf _ceilf
#endif

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

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

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

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

#if defined (HAVE__COSL) && ! defined (HAVE_COSL)
# define HAVE_COSL 1
# define cosl _cosl
#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__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__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__FPCLASS) && ! defined (HAVE_FPCLASS)
# define HAVE_FPCLASS 1
# define fpclass _fpclass
#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__HYPOT) && ! defined (HAVE_HYPOT)
# define HAVE_HYPOT 1
# define hypot _hypot
#endif

#if defined (HAVE__HYPOTF) && ! defined (HAVE_HYPOTF)
# define HAVE_HYPOTF 1
# define hypotf _hypotf
#endif

#if defined (HAVE__HYPOTL) && ! defined (HAVE_HYPOTL)
# define HAVE_HYPOTL 1
# define hypotl _hypotl
#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__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__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__LOG10L) && ! defined (HAVE_LOG10L)
# define HAVE_LOG10L 1
# define log10l _log10l
#endif

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

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

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

#if defined (HAVE__MODFF) && ! defined (HAVE_MODFF)
# define HAVE_MODFF 1
# define modff _modff
#endif

#if defined (HAVE__MODFL) && ! defined (HAVE_MODFL)
# define HAVE_MODFL 1
# define modfl _modfl
#endif

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

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

#if defined (HAVE__QFPCLASS) && ! defined (HAVE_QFPCLASS)
# define HAVE_QFPCLASS 1
# define qfpclass _qfpclass
#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__SINF) && ! defined (HAVE_SINF)
# define HAVE_SINF 1
# define sinf _sinf
#endif

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

#if defined (HAVE__SINHL) && ! defined (HAVE_SINHL)
# define HAVE_SINHL 1
# define sinhl _sinhl
#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__SQRTL) && ! defined (HAVE_SQRTL)
# define HAVE_SQRTL 1
# define sqrtl _sqrtl
#endif

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

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

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

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

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

#if defined (HAVE__TANL) && ! defined (HAVE_TANL)
# define HAVE_TANL 1
# define tanl _tanl
#endif
