Skip to content

Commit 28775ef

Browse files
committed
Add README
1 parent 45ead80 commit 28775ef

File tree

4 files changed

+76
-1
lines changed

4 files changed

+76
-1
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# NamedDimsArrays.jl
2+
3+
````julia
4+
using NDTensors.NamedDimsArrays: align, dimnames, named, unname
5+
using NDTensors.TensorAlgebra: TensorAlgebra
6+
7+
# Named dimensions
8+
i = named(2, "i")
9+
j = named(2, "j")
10+
k = named(2, "k")
11+
12+
# Arrays with named dimensions
13+
na1 = randn(i, j)
14+
na2 = randn(j, k)
15+
16+
@show dimnames(na1) == ("i", "j")
17+
18+
# Indexing
19+
@show na1[j => 2, i => 1] == na1[1, 2]
20+
21+
# Tensor contraction
22+
na_dest = TensorAlgebra.contract(na1, na2)
23+
24+
@show issetequal(dimnames(na_dest), ("i", "k"))
25+
# `unname` removes the names and returns an `Array`
26+
@show unname(na_dest, (i, k)) unname(na1) * unname(na2)
27+
28+
# Permute dimensions (like `ITensors.permute`)
29+
na1 = align(na1, (j, i))
30+
@show na1[i => 1, j => 2] == na1[2, 1]
31+
````
32+
33+
---
34+
35+
*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*
36+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# # NamedDimsArrays.jl
2+
3+
using NDTensors.NamedDimsArrays: align, dimnames, named, unname
4+
using NDTensors.TensorAlgebra: TensorAlgebra
5+
6+
## Named dimensions
7+
i = named(2, "i")
8+
j = named(2, "j")
9+
k = named(2, "k")
10+
11+
## Arrays with named dimensions
12+
na1 = randn(i, j)
13+
na2 = randn(j, k)
14+
15+
@show dimnames(na1) == ("i", "j")
16+
17+
## Indexing
18+
@show na1[j => 2, i => 1] == na1[1, 2]
19+
20+
## Tensor contraction
21+
na_dest = TensorAlgebra.contract(na1, na2)
22+
23+
@show issetequal(dimnames(na_dest), ("i", "k"))
24+
## `unname` removes the names and returns an `Array`
25+
@show unname(na_dest, (i, k)) unname(na1) * unname(na2)
26+
27+
## Permute dimensions (like `ITensors.permute`)
28+
na1 = align(na1, (j, i))
29+
@show na1[i => 1, j => 2] == na1[2, 1]

NDTensors/src/NamedDimsArrays/ext/NamedDimsArraysTensorAlgebraExt/test/runtests.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ using NDTensors.TensorAlgebra: TensorAlgebra
99
na1 = randn(i, j)
1010
na2 = randn(j, k)
1111
na_dest = TensorAlgebra.contract(na1, na2)
12-
@test unname(na_dest, (i, k)) == unname(na1) * unname(na2)
12+
@test unname(na_dest, (i, k)) unname(na1) * unname(na2)
1313
end
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using Literate
2+
using NDTensors.NamedDimsArrays: NamedDimsArrays
3+
Literate.markdown(
4+
joinpath(
5+
pkgdir(NamedDimsArrays), "src", "NamedDimsArrays", "examples", "example_readme.jl"
6+
),
7+
joinpath(pkgdir(NamedDimsArrays), "src", "NamedDimsArrays");
8+
flavor=Literate.CommonMarkFlavor(),
9+
name="README",
10+
)

0 commit comments

Comments
 (0)