You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-6Lines changed: 18 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,8 @@ And `verbose=2` will print everything.
47
47
48
48
If it's useful in academic work, you can cite it with this DOI: [](https://doi.org/10.5281/zenodo.5047409)
49
49
50
-
<details><summary><b>Notation</b></summary>
50
+
## Notation
51
+
<details>
51
52
52
53
Index notation for some simple functions:
53
54
@@ -131,7 +132,9 @@ using NamedDims, AxisKeys # Dimension names, plus pretty printing:
131
132
```
132
133
133
134
</details>
134
-
<details><summary><b>Fast & slow</b></summary>
135
+
136
+
## Fast & Slow
137
+
<details>
135
138
136
139
When used with LoopVectorization, on straightforward matrix multiplication of real numbers,
137
140
`@tullio` tends to be about as fast as OpenBLAS. Depending on the size, and on your computer.
*`Tullio.@einsum` is a variant with a few changes, to allow the running of Einsum.jl's tests.
343
352
344
353
</details>
345
-
<details><summary><b>Internals</b></summary>
354
+
355
+
## How it Works
356
+
<details>
346
357
347
358
The following three macros all end up calling the same functions as does `C = A * B`:
348
359
@@ -461,7 +472,8 @@ Writing `@tullio verbose=2` will print all of these functions out.
461
472
Scalar reductions, such as `@tullio s := A[i,j] * log(B[j,i])`, are slightly different in that the `act!` function simply returns the sum, i.e. the variable `acc` above.
0 commit comments