diff options
Diffstat (limited to 'boost/spirit/home/support/detail/math/signbit.hpp')
-rw-r--r-- | boost/spirit/home/support/detail/math/signbit.hpp | 92 |
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 |