4#ifndef TETL_LINALG_BLAS1_VECTOR_IDX_ABS_MAX_HPP
5#define TETL_LINALG_BLAS1_VECTOR_IDX_ABS_MAX_HPP
7#include <etl/_limits/numeric_limits.hpp>
8#include <etl/_linalg/exposition.hpp>
9#include <etl/_type_traits/is_arithmetic.hpp>
14template <in_vector InVec>
17 constexpr auto getValue = [](
typename InVec::value_type
const& val) {
18 if constexpr (is_arithmetic_v<
typename InVec::value_type>) {
19 return detail::abs_if_needed(val);
21 auto const re = detail::abs_if_needed(detail::real_if_needed(val));
22 auto const im = detail::abs_if_needed(detail::imag_if_needed(val));
30 for (
typename InVec::index_type i{0}; i < v.extent(0); ++i) {
31 if (
auto const val = getValue(v(i)); val > maxV) {
32 idx =
static_cast<
typename InVec::size_type>(i);
constexpr auto idx_abs_max(InVec v) -> typename InVec::size_type
Definition blas1_vector_idx_abs_max.hpp:15
Definition accessor_conjugate.hpp:13
Definition adjacent_find.hpp:9
Definition numeric_limits.hpp:18