ardupilot/libraries/AP_Common/missing/cmath

63 lines
1.5 KiB
Plaintext

#pragma once
#include_next <cmath>
#ifndef WAF_BUILD
# ifdef __GLIBC__
# if __GLIBC_PREREQ(2, 23)
# define GLIBC_FIX_NEEDED 1
# else
# define GLIBC_FIX_NEEDED 0
# endif
# else
# define GLIBC_FIX_NEEDED 0
# endif
# if GLIBC_FIX_NEEDED || defined (__CYGWIN__)
# ifndef HAVE_CMATH_ISFINITE
# define HAVE_CMATH_ISFINITE
# define NEED_CMATH_ISFINITE_STD_NAMESPACE
# endif
# ifndef HAVE_CMATH_ISINF
# define HAVE_CMATH_ISINF
# define NEED_CMATH_ISINF_STD_NAMESPACE
# endif
# ifndef HAVE_CMATH_ISNAN
# define HAVE_CMATH_ISNAN
# define NEED_CMATH_ISNAN_STD_NAMESPACE
# endif
# undef GLIBC_FIX_NEEDED
# endif
#endif
#ifdef WAF_BUILD
#if defined(__CYGWIN__) || defined(__CYGWIN64__) || defined(CYGWIN_BUILD)
// cygwin path length issues in configure mean these come out wrong,
// so fix them here
#ifndef HAVE_CMATH_ISFINITE
# define HAVE_CMATH_ISFINITE
# define NEED_CMATH_ISFINITE_STD_NAMESPACE
#endif
#ifndef HAVE_CMATH_ISINF
# define HAVE_CMATH_ISINF
# define NEED_CMATH_ISINF_STD_NAMESPACE
#endif
#ifndef HAVE_CMATH_ISNAN
# define HAVE_CMATH_ISNAN
# define NEED_CMATH_ISNAN_STD_NAMESPACE
#endif
#endif
#endif
#if defined(HAVE_CMATH_ISFINITE) && defined(NEED_CMATH_ISFINITE_STD_NAMESPACE)
using std::isfinite;
#endif
#if defined(HAVE_CMATH_ISINF) && defined(NEED_CMATH_ISINF_STD_NAMESPACE)
using std::isinf;
#endif
#if defined(HAVE_CMATH_ISNAN) && defined(NEED_CMATH_ISNAN_STD_NAMESPACE)
using std::isnan;
#endif