<div dir="ltr"><div dir="ltr">Hello,<br><br>While reading the `&lt;linalg&gt;` wording in N5050, I noticed what looks like a type mismatch in `vector_idx_abs_max` (`IxAMAX`).<br><br>Both overloads are declared, in `[linalg.syn]` and again in `[linalg.algs.blas1.iamax]`, as:<br><br>```<br>template&lt;in-vector InVec&gt;<br>  typename InVec::extents_type vector_idx_abs_max(InVec v);<br>```<br><br>But the Returns clause specifies a scalar index:<br><br>&gt; - `numeric_limits&lt;typename InVec::size_type&gt;::max()` if `v` has zero elements;<br>&gt; - otherwise, the index of the first element of `v` having largest absolute value ...<br><br>For an `in-vector`, `InVec` is a rank-1 `mdspan`, so `InVec::extents_type` is a `std::extents&lt;...&gt;` shape type, while `InVec::size_type` is an unsigned integer. I don&#39;t see how the specified result can be an `extents_type`: the wording names a scalar index, and the empty-case sentinel explicitly uses `size_type`.<br><br>The Kokkos stdBLAS reference implementation and cpprefjp both use a scalar return type, which makes me suspect `extents_type` is a slip for `size_type` in the four declaration sites.<br><br>There may still be a `size_type`-vs-`index_type` question, but either way the return seems like it should be scalar, not `extents_type`.<br><br>Am I misreading this, or does it look like an LWG issue?<br><br>Thanks,<br>-- Abhinav Agarwal</div>
</div>

