From Jason Turner

[linalg.algs.blas1.matinfnorm]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpan6pjwwt/{from.md → to.md} +52 -0
tmp/tmpan6pjwwt/{from.md → to.md} RENAMED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Infinity norm of a matrix <a id="linalg.algs.blas1.matinfnorm">[[linalg.algs.blas1.matinfnorm]]</a>
2
+
3
+ [*Note 1*: These functions exist in the BLAS standard but are not part
4
+ of the reference implementation. — *end note*]
5
+
6
+ ``` cpp
7
+ template<in-matrix InMat, class Scalar>
8
+ Scalar matrix_inf_norm(InMat A, Scalar init);
9
+ template<class ExecutionPolicy, in-matrix InMat, class Scalar>
10
+ Scalar matrix_inf_norm(ExecutionPolicy&& exec, InMat A, Scalar init);
11
+ ```
12
+
13
+ *Mandates:*
14
+ `decltype(`*`abs-if-needed`*`(declval<typename InMat::value_type>()))`
15
+ is convertible to `Scalar`.
16
+
17
+ *Returns:*
18
+
19
+ - `init` if `A.extent(0)` is zero;
20
+ - otherwise, the sum of `init` and the infinity norm of the matrix `A`.
21
+
22
+ [*Note 1*: The infinity norm of the matrix `A` is the maximum over all
23
+ rows of `A`, of the sum of the absolute values of the elements of the
24
+ row. — *end note*]
25
+
26
+ *Remarks:* If `InMat::value_type` and `Scalar` are all floating-point
27
+ types or specializations of `complex`, and if `Scalar` has higher
28
+ precision than `InMat::value_type`, then intermediate terms in the sum
29
+ use `Scalar`’s precision or greater.
30
+
31
+ ``` cpp
32
+ template<in-matrix InMat>
33
+ auto matrix_inf_norm(InMat A);
34
+ template<class ExecutionPolicy, in-matrix InMat>
35
+ auto matrix_inf_norm(ExecutionPolicy&& exec, InMat A);
36
+ ```
37
+
38
+ *Effects:* Let `T` be
39
+ `decltype(`*`abs-if-needed`*`(declval<typename InMat::value_type>())`.
40
+ Then,
41
+
42
+ - the one-parameter overload is equivalent to:
43
+ ``` cpp
44
+ return matrix_inf_norm(A, T{});
45
+ ```
46
+
47
+ and
48
+ - the two-parameter overload is equivalent to:
49
+ ``` cpp
50
+ return matrix_inf_norm(std::forward<ExecutionPolicy>(exec), A, T{});
51
+ ```
52
+