E.V.E
v2023.02.15
Loading...
Searching...
No Matches
◆
broadcast
auto eve::broadcast =
functor
<broadcast_t>
inline
constexpr
Defined in Header
#include <eve/module/core.hpp>
Callable Signatures
namespace
eve
{
template
<eve::scalar_value T> eve::as_wide_t<T>
broadcast
(T v)
noexcept
;
// 1
template
<eve::scalar_value T, std::ptrdiff_t N> as_wide_t<T>
broadcast
(T v,
fixed<N>
sz)
noexcept
;
// 2
template
<eve::simd_value T, std::
size_t
I> T
broadcast
(T v, index_t<I> i)
noexcept
;
// 3
template
<eve::simd_value T, std::
size_t
I, std::ptrdiff_t N>
eve::as_wide_t<T,fixed<N>>
broadcast
(T v, index_t<I> i,
fixed<N>
sz)
noexcept
;
// 4
}
eve::broadcast
constexpr auto broadcast
Computes the.
Definition
broadcast.hpp:79
eve
EVE Main Namespace.
Definition
abi.hpp:19
eve::fixed
SIMD register cardinal type.
Definition
cardinals.hpp:39
Parameters
v
: A
value
.
i
: An eve::index instance indicating which lane of
x
to broadcast.
sz
: An eve::lane instance indicating how many lanes to broadcast to.
Return value
A
SIMD value
equals to
eve::as_wide_t<T>{v}
.
A
SIMD value
equals to
eve::as_wide_t<T,
eve::fixed
<N>>{v}
.
A
SIMD value
equals to
T{v.get(I)}
.
A
SIMD value
equals to
eve::as_wide_t<T,
eve::fixed
<N>>{v.get(I)}
.
Example
#include <eve/module/core.hpp>
#include <eve/wide.hpp>
#include <iostream>
using
wide_ft =
eve::wide<float, eve::fixed<4>
>;
using
wide_it =
eve::wide<std::int16_t, eve::fixed<8>
>;
int
main()
{
wide_ft pf = {1.2f,0.34f,0.056f,0.0078f};
wide_it pi = {-1, 2,-3, 4,-5, 6,-7, 8};
std::cout <<
eve::broadcast
( 7.6 ) <<
"\n"
;
std::cout <<
eve::broadcast
(7.6, eve::lane<8> ) <<
"\n"
;
std::cout <<
"\n"
;
std::cout << pf <<
"\n"
<<
eve::broadcast
(pf, eve::index<3> ) <<
"\n"
;
std::cout <<
"\n"
;
std::cout <<
pi
<<
"\n"
<<
eve::broadcast
(pi, eve::index<5>, eve::lane<4> ) <<
"\n"
;
}
eve::pi
constexpr auto pi
Callable object computing the constant .
Definition
pi.hpp:77
eve::wide
Wrapper for SIMD registers.
Definition
wide.hpp:94
eve