# 28 Numerics library [numerics]

## 28.9 Basic linear algebra algorithms [linalg]

### 28.9.13 BLAS 1 algorithms [linalg.algs.blas1]

#### 28.9.13.14 Infinity norm of a matrix [linalg.algs.blas1.matinfnorm]

[Note 1:
These functions exist in the BLAS standard[bib] but are not part of the reference implementation.
— end note]
```template<in-matrix InMat, class Scalar> Scalar matrix_inf_norm(InMat A, Scalar init); template<class ExecutionPolicy, in-matrix InMat, class Scalar> Scalar matrix_inf_norm(ExecutionPolicy&& exec, InMat A, Scalar init); ```
Mandates: decltype(abs-if-needed(declval<typename InMat​::​value_type>())) is convertible to Scalar.
Returns:
• init if A.extent(0) is zero;
• otherwise, the sum of init and the infinity norm of the matrix A.
[Note 2:
The infinity norm of the matrix A is the maximum over all rows of A, of the sum of the absolute values of the elements of the row.
— end note]
Remarks: If InMat​::​value_type and Scalar are all floating-point types or specializations of complex, and if Scalar has higher precision than InMat​::​value_type, then intermediate terms in the sum use Scalar's precision or greater.
```template<in-matrix InMat> auto matrix_inf_norm(InMat A); template<class ExecutionPolicy, in-matrix InMat> auto matrix_inf_norm(ExecutionPolicy&& exec, InMat A); ```
Effects: Let T be decltype(abs-if-needed(declval<typename InMat​::​value_type>()).
Then,
• the one-parameter overload is equivalent to: return matrix_inf_norm(A, T{}); and
• the two-parameter overload is equivalent to: return matrix_inf_norm(std::forward<ExecutionPolicy>(exec), A, T{});