E.V.E
v2023.02.15
Loading...
Searching...
No Matches
expensive_callable

Detailed Description

States that the operation dominates the loop.

Variables

constexpr auto eve::algo::expensive_callable = ::rbr::flag( expensive_callable_tag{} )

Variable Documentation

◆ expensive_callable

auto eve::algo::expensive_callable = ::rbr::flag( expensive_callable_tag{} )
inlineconstexpr
Header file #include <eve/module/algo.hpp>
namespace eve::algo
{
inline constexpr auto expensive_callable = eve_implementation_defined;
}
constexpr auto expensive_callable
Definition traits.hpp:538

States that the callable or the iterator dominates the loop, and is equivalent to eve::algo::no_aligning, eve::algo::no_unrolling and eve::algo::single_pass together. By default the predicate is assumed to be light, and the loop is unrolled and aligned so that its time is spent in the body rather than around it; if the body is heavy, both are overhead.

std::vector<float> data(1024);
// A body of dozens of operations: neither alignment nor unrolling repays its cost.
auto damped = [](auto x) { return eve::sin(x) * eve::exp(-x); };
constexpr auto transform_inplace
same as;
Definition transform.hpp:72
constexpr auto exp
elementwise_callable object computing .
Definition exp.hpp:89
constexpr auto sin
elementwise_callable object computing the sine.
Definition sin.hpp:98
See also
no_aligning, no_unrolling, single_pass