Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-08-28 09:11:32

0001 /***************************************************************************
0002  * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and         *
0003  * Martin Renou                                                             *
0004  * Copyright (c) QuantStack                                                 *
0005  * Copyright (c) Serge Guelton                                              *
0006  *                                                                          *
0007  * Distributed under the terms of the BSD 3-Clause License.                 *
0008  *                                                                          *
0009  * The full license is in the file LICENSE, distributed with this software. *
0010  ****************************************************************************/
0011 
0012 #ifndef XSIMD_GENERIC_FWD_HPP
0013 #define XSIMD_GENERIC_FWD_HPP
0014 
0015 #include "../types/xsimd_batch_constant.hpp"
0016 
0017 #include <type_traits>
0018 
0019 namespace xsimd
0020 {
0021     namespace kernel
0022     {
0023         // forward declaration
0024         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0025         XSIMD_INLINE batch<T, A> abs(batch<T, A> const& self, requires_arch<generic>) noexcept;
0026         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0027         XSIMD_INLINE batch<T, A> bitwise_lshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0028         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0029         XSIMD_INLINE batch<T, A> bitwise_rshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0030         template <class A, class T>
0031         XSIMD_INLINE batch_bool<T, A> gt(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0032         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0033         XSIMD_INLINE batch<T, A> mul(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0034         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0035         XSIMD_INLINE batch<T, A> sadd(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0036         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0037         XSIMD_INLINE batch<T, A> ssub(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>) noexcept;
0038         template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
0039         XSIMD_INLINE T hadd(batch<T, A> const& self, requires_arch<generic>) noexcept;
0040 
0041     }
0042 }
0043 
0044 #endif