namespace eve::algo
{
template <eve::algo::relaxed_range Rng, typename Less>
std::optional<eve::value_type_t<Rng>>
min_value(Rng&& rng, Less less);
template <eve::algo::relaxed_range Rng>
std::optional<eve::value_type_t<Rng>>
min_value(Rng&& rng);
}
constexpr auto min_value
SIMD algorithm that returns minimum value in the range.
Definition min_value.hpp:100
minimum value from the range. If the input range was empty, it's std::nullopt
.
#include <eve/module/core.hpp>
#include <eve/module/algo.hpp>
#include <tts/tts.hpp>
#include <vector>
int main()
{
std::vector<int> v{ 2, -1, 4, -1, 0 };
std::cout << " -> v = "
<< tts::as_string(v)
<< "\n";
std::cout << " -> eve::algo::min_value(v) = "
std::cout << " -> eve::algo::min_element(v) - v.begin() = "
std::cout << " -> eve::algo::min_value(v, eve::is_greater) = "
std::cout << " -> eve::algo::min_value(v, eve::is_greater) - v.begin() = "
auto absolutes = eve::views::map(v,
eve::abs);
std::cout << " -> eve::algo::min_element[eve::algo::single_pass](absolutes) - absolutes.begin() = "
}
constexpr auto single_pass
Trait that changes the algorithm for min_element/max_element for index tracking.
Definition traits.hpp:289
constexpr auto min_element
SIMD version of std::min_element
Definition min_element.hpp:256
constexpr auto abs
elementwise_callable object computing the absolute value of the parameter.
Definition abs.hpp:85
constexpr auto is_greater
elementwise callable returning a logical true if and only if the element value of the first parameter...
Definition is_greater.hpp:84