You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
inline batch<T, A> bitwise_rshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>)
39
+
inline batch<T, A> bitwise_rshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>)noexcept
40
40
{
41
-
returndetail::apply([](T x, T y)
41
+
returndetail::apply([](T x, T y)noexcept
42
42
{ return x >> y; },
43
43
self, other);
44
44
}
45
45
46
46
// div
47
47
template <classA, classT, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
48
-
inline batch<T, A> div(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>)
48
+
inline batch<T, A> div(batch<T, A> const& self, batch<T, A> const& other, requires_arch<generic>)noexcept
49
49
{
50
-
returndetail::apply([](T x, T y) -> T
50
+
returndetail::apply([](T x, T y) noexcept-> T
51
51
{ return x / y; },
52
52
self, other);
53
53
}
54
54
55
55
// fma
56
56
template <classA, classT>
57
-
inline batch<T, A> fma(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)
57
+
inline batch<T, A> fma(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)noexcept
58
58
{
59
59
return x * y + z;
60
60
}
61
61
62
62
template <classA, classT>
63
-
inline batch<std::complex<T>, A> fma(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)
63
+
inline batch<std::complex<T>, A> fma(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)noexcept
64
64
{
65
65
auto res_r = fms(x.real(), y.real(), fms(x.imag(), y.imag(), z.real()));
66
66
auto res_i = fma(x.real(), y.imag(), fma(x.imag(), y.real(), z.imag()));
@@ -69,13 +69,13 @@ namespace xsimd
69
69
70
70
// fms
71
71
template <classA, classT>
72
-
inline batch<T, A> fms(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)
72
+
inline batch<T, A> fms(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)noexcept
73
73
{
74
74
return x * y - z;
75
75
}
76
76
77
77
template <classA, classT>
78
-
inline batch<std::complex<T>, A> fms(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)
78
+
inline batch<std::complex<T>, A> fms(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)noexcept
79
79
{
80
80
auto res_r = fms(x.real(), y.real(), fma(x.imag(), y.imag(), z.real()));
81
81
auto res_i = fma(x.real(), y.imag(), fms(x.imag(), y.real(), z.imag()));
@@ -84,13 +84,13 @@ namespace xsimd
84
84
85
85
// fnma
86
86
template <classA, classT>
87
-
inline batch<T, A> fnma(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)
87
+
inline batch<T, A> fnma(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)noexcept
88
88
{
89
89
return -x * y + z;
90
90
}
91
91
92
92
template <classA, classT>
93
-
inline batch<std::complex<T>, A> fnma(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)
93
+
inline batch<std::complex<T>, A> fnma(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)noexcept
94
94
{
95
95
auto res_r = -fms(x.real(), y.real(), fma(x.imag(), y.imag(), z.real()));
96
96
auto res_i = -fma(x.real(), y.imag(), fms(x.imag(), y.real(), z.imag()));
@@ -99,13 +99,13 @@ namespace xsimd
99
99
100
100
// fnms
101
101
template <classA, classT>
102
-
inline batch<T, A> fnms(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)
102
+
inline batch<T, A> fnms(batch<T, A> const& x, batch<T, A> const& y, batch<T, A> const& z, requires_arch<generic>)noexcept
103
103
{
104
104
return -x * y - z;
105
105
}
106
106
107
107
template <classA, classT>
108
-
inline batch<std::complex<T>, A> fnms(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)
108
+
inline batch<std::complex<T>, A> fnms(batch<std::complex<T>, A> const& x, batch<std::complex<T>, A> const& y, batch<std::complex<T>, A> const& z, requires_arch<generic>)noexcept
109
109
{
110
110
auto res_r = -fms(x.real(), y.real(), fms(x.imag(), y.imag(), z.real()));
111
111
auto res_i = -fma(x.real(), y.imag(), fma(x.imag(), y.real(), z.imag()));
0 commit comments