summaryrefslogtreecommitdiff
path: root/boost/spirit/home/support/detail/math/signbit.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/spirit/home/support/detail/math/signbit.hpp')
-rw-r--r--boost/spirit/home/support/detail/math/signbit.hpp92
1 files changed, 0 insertions, 92 deletions
diff --git a/boost/spirit/home/support/detail/math/signbit.hpp b/boost/spirit/home/support/detail/math/signbit.hpp
deleted file mode 100644
index 045fc3a8f0..0000000000
--- a/boost/spirit/home/support/detail/math/signbit.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// signbit.hpp
-
-#ifndef BOOST_SPIRIT_MATH_SIGNBIT_HPP
-#define BOOST_SPIRIT_MATH_SIGNBIT_HPP
-
-// Copyright (c) 2006 Johan Rade
-
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#if defined(_MSC_VER)
-#pragma once
-#endif
-
-#include <boost/spirit/home/support/detail/math/detail/fp_traits.hpp>
-
-namespace boost {
-namespace spirit {
-namespace math {
-
-//------------------------------------------------------------------------------
-
-template<class T> bool (signbit)(T x)
-{
- typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
- traits::init();
-
- BOOST_DEDUCED_TYPENAME traits::bits a;
- traits::get_bits(x,a);
- a &= traits::sign;
- return a != 0;
-}
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
- template<class T> T copysign_impl(T x, T y)
- {
- typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
- traits::init();
-
- BOOST_DEDUCED_TYPENAME traits::bits a;
- traits::get_bits(x,a);
- a &= ~traits::sign;
-
- BOOST_DEDUCED_TYPENAME traits::bits b;
- traits::get_bits(y,b);
- b &= traits::sign;
-
- traits::set_bits(x,a|b);
- return x;
- }
-}
-
-inline float (copysign)(float x, float y) // magnitude of x and sign of y
-{
- return detail::copysign_impl(x,y);
-}
-
-inline double (copysign)(double x, double y)
-{
- return detail::copysign_impl(x,y);
-}
-
-inline long double (copysign)(long double x, long double y)
-{
- return detail::copysign_impl(x,y);
-}
-
-//------------------------------------------------------------------------------
-
-template<class T> T (changesign)(T x)
-{
- typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
- traits::init();
-
- BOOST_DEDUCED_TYPENAME traits::bits a;
- traits::get_bits(x,a);
- a ^= traits::sign;
- traits::set_bits(x,a);
- return x;
-}
-
-//------------------------------------------------------------------------------
-
-} // namespace math
-} // namespace spirit
-} // namespace boost
-
-#endif