half.hpp 906 Bytes
Newer Older
Paul's avatar
Paul committed
1
2
3
4
5
6
7
8
9
10
11
/*=============================================================================
    Copyright (c) 2017 Paul Fultz II
    half.hpp
    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)
==============================================================================*/

#ifndef MIGRAPH_GUARD_RTGLIB_HALF_HPP
#define MIGRAPH_GUARD_RTGLIB_HALF_HPP

#include <half.hpp>
12
#include <migraph/config.hpp>
Paul's avatar
Paul committed
13

14
namespace migraph { inline namespace MIGRAPH_INLINE_NS {
Paul's avatar
Paul committed
15
16
17

using half = half_float::half;

Paul's avatar
Paul committed
18
19
namespace detail {
template <class T>
Paul's avatar
Paul committed
20
21
22
23
24
struct deduce
{
    using type = T;
};

Paul's avatar
Paul committed
25
template <>
Paul's avatar
Paul committed
26
27
28
29
30
31
struct deduce<half_float::detail::expr>
{
    using type = half;
};
} // namespace detail

Paul's avatar
Paul committed
32
template <class T>
Paul's avatar
Paul committed
33
34
using deduce = typename detail::deduce<T>::type;

35
} // inline namespace MIGRAPH_INLINE_NS
Paul's avatar
Paul committed
36
37
38
} // namespace migraph

#endif