From Jason Turner

[linalg.algs.blas3.gemm]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8t4wgnwj/{from.md → to.md} +41 -0
tmp/tmp8t4wgnwj/{from.md → to.md} RENAMED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### General matrix-matrix product <a id="linalg.algs.blas3.gemm">[[linalg.algs.blas3.gemm]]</a>
2
+
3
+ [*Note 1*: These functions correspond to the BLAS function
4
+ `xGEMM`. — *end note*]
5
+
6
+ The following elements apply to all functions in
7
+ [[linalg.algs.blas3.gemm]] in addition to function-specific elements.
8
+
9
+ *Mandates:*
10
+ `possibly-multipliable<decltype(A), decltype(B), decltype(C)>()` is
11
+ `true`.
12
+
13
+ *Preconditions:* `multipliable(A, B, C)` is `true`.
14
+
15
+ *Complexity:* 𝑂(`A.extent(0)` × `A.extent(1)` × `B.extent(1)`).
16
+
17
+ ``` cpp
18
+ template<in-matrix InMat1, in-matrix InMat2, out-matrix OutMat>
19
+ void matrix_product(InMat1 A, InMat2 B, OutMat C);
20
+ template<class ExecutionPolicy, in-matrix InMat1, in-matrix InMat2, out-matrix OutMat>
21
+ void matrix_product(ExecutionPolicy&& exec, InMat1 A, InMat2 B, OutMat C);
22
+ ```
23
+
24
+ *Effects:* Computes C = A B.
25
+
26
+ ``` cpp
27
+ template<in-matrix InMat1, in-matrix InMat2, in-matrix InMat3, out-matrix OutMat>
28
+ void matrix_product(InMat1 A, InMat2 B, InMat3 E, OutMat C);
29
+ template<class ExecutionPolicy,
30
+ in-matrix InMat1, in-matrix InMat2, in-matrix InMat3, out-matrix OutMat>
31
+ void matrix_product(ExecutionPolicy&& exec, InMat1 A, InMat2 B, InMat3 E, OutMat C);
32
+ ```
33
+
34
+ *Mandates:* *`possibly-addable`*`<InMat3, InMat3, OutMat>()` is `true`.
35
+
36
+ *Preconditions:* *`addable`*`(E, E, C)` is `true`.
37
+
38
+ *Effects:* Computes C = E + A B.
39
+
40
+ *Remarks:* `C` may alias `E`.
41
+