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: docs/src/index.md
+12-23Lines changed: 12 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,29 +8,18 @@ CurrentModule = TensorKit
8
8
9
9
## Package summary
10
10
11
-
TensorKit.jl aims to be a generic package for working with tensors as they appear throughout
12
-
the physical sciences. TensorKit implements a parametric type [`Tensor`](@ref) (which is
13
-
actually a specific case of the type [`TensorMap`](@ref)) and defines for these types a
14
-
number of vector space operations (scalar multiplication, addition, norms and inner
15
-
products), index operations (permutations) and linear algebra operations (multiplication,
16
-
factorizations). Finally, tensor contractions can be performed using the `@tensor` macro
17
-
from [TensorOperations.jl](https://github.com/QuantumKitHub/TensorOperations.jl).
18
-
19
-
Currently, most effort is oriented towards tensors as they appear in the context of quantum
20
-
many-body physics and in particular the field of tensor networks. Such tensors often have
21
-
large dimensions and take on a specific structure when symmetries are present. By employing
22
-
concepts from category theory, we can represent and manipulate tensors with a large variety
23
-
of symmetries, including abelian and non-abelian symmetries, fermionic statistics, as well
24
-
as generalized (a.k.a. non-invertible or anyonic) symmetries.
25
-
26
-
At the same time, TensorKit.jl focusses on computational efficiency and performance. The
27
-
underlying storage of a tensor's data can be any `DenseArray`. When the data is stored in
28
-
main memory (corresponding to `Array`), multiple CPUs can be leveraged as many operations
29
-
come with multithreaded implementations, either by distributing the different blocks in case
30
-
of a structured tensor (i.e. with symmetries) or by using multithreading provided by the
31
-
package [Strided.jl](https://github.com/Jutho/Strided.jl). Support for storing and
32
-
manipulating tensors on NVidia and AMD GPUs is currently being developed, whereas support
33
-
for distributed arrays is planned for the future.
11
+
TensorKit.jl aims to be a generic package for working with tensors as they appear throughout the physical sciences.
12
+
TensorKit implements a parametric type [`Tensor`](@ref) (which is actually a specific case of the type [`TensorMap`](@ref)) and defines for these types a number of vector space operations (scalar multiplication, addition, norms and inner products), index operations (permutations) and linear algebra operations (multiplication, factorizations).
13
+
Finally, tensor contractions can be performed using the `@tensor` macro from [TensorOperations.jl](https://github.com/QuantumKitHub/TensorOperations.jl).
14
+
15
+
Currently, most effort is oriented towards tensors as they appear in the context of quantum many-body physics and in particular the field of tensor networks.
16
+
Such tensors often have large dimensions and take on a specific structure when symmetries are present.
17
+
By employing concepts from category theory, we can represent and manipulate tensors with a large variety of symmetries, including abelian and non-abelian symmetries, fermionic statistics, as well as generalized (a.k.a. non-invertible or anyonic) symmetries.
18
+
19
+
At the same time, TensorKit.jl focusses on computational efficiency and performance.
20
+
The underlying storage of a tensor's data can be any `DenseArray`.
21
+
When the data is stored in main memory (corresponding to `Array`), multiple CPUs can be leveraged as many operations come with multithreaded implementations, either by distributing the different blocks in case of a structured tensor (i.e. with symmetries) or by using multithreading provided by the package [Strided.jl](https://github.com/Jutho/Strided.jl).
22
+
Support for storing and manipulating tensors on NVidia and AMD GPUs is currently being developed, whereas support for distributed arrays is planned for the future.
Copy file name to clipboardExpand all lines: docs/src/lib/fusiontrees.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,8 +31,7 @@ braid(f::FusionTree{I,N}, levels::NTuple{N,Int}, p::NTuple{N,Int}) where {I<:Sec
31
31
permute(f::FusionTree{I,N}, p::NTuple{N,Int}) where {I<:Sector,N}
32
32
```
33
33
34
-
These can be composed to implement elementary manipulations of fusion-splitting tree pairs,
35
-
according to the following methods
34
+
These can be composed to implement elementary manipulations of fusion-splitting tree pairs, according to the following methods
36
35
37
36
```julia
38
37
#TODO: add documentation for the following methods
@@ -44,9 +43,8 @@ TensorKit.cycleclockwise
44
43
TensorKit.cycleanticlockwise
45
44
```
46
45
47
-
Finally, these are used to define large manipulations of fusion-splitting tree pairs, which
48
-
are then used in the index manipulation of `AbstractTensorMap` objects. The following
49
-
methods defined on fusion splitting tree pairs have an associated definition for tensors.
46
+
Finally, these are used to define large manipulations of fusion-splitting tree pairs, which are then used in the index manipulation of `AbstractTensorMap` objects.
47
+
The following methods defined on fusion splitting tree pairs have an associated definition for tensors.
50
48
```@docs
51
49
repartition(::FusionTree{I,N₁}, ::FusionTree{I,N₂}, ::Int) where {I<:Sector,N₁,N₂}
52
50
transpose(::FusionTree{I}, ::FusionTree{I}, ::IndexTuple{N₁}, ::IndexTuple{N₂}) where {I<:Sector,N₁,N₂}
Several more concrete sector types can be found in other packages such as [SUNRepresentations.jl](https://github.com/QuantumKitHub/SUNRepresentations.jl), [CategoryData.jl](https://github.com/QuantumKitHub/CategoryData.jl), [QWignerSymbols.jl](https://github.com/lkdvos/QWignerSymbols.jl), ...:
42
39
43
-
Some of these types are parameterized by a type parameter that represents a group. We
44
-
therefore also provide a number of types to represent groups:
40
+
Some of these types are parameterized by a type parameter that represents a group.
41
+
We therefore also provide a number of types to represent groups:
45
42
46
43
```@docs
47
44
TensorKitSectors.Group
@@ -54,17 +51,15 @@ TensorKitSectors.Dihedral
54
51
TensorKitSectors.ProductGroup
55
52
```
56
53
57
-
The following types are used to characterize different properties of the different types of
58
-
sectors:
54
+
The following types are used to characterize different properties of the different types of sectors:
59
55
60
56
```@docs
61
57
FusionStyle
62
58
BraidingStyle
63
59
UnitStyle
64
60
```
65
61
66
-
Finally, the following auxiliary types are defined to facilitate the implementation of some
67
-
of the methods on sectors:
62
+
Finally, the following auxiliary types are defined to facilitate the implementation of some of the methods on sectors:
The following constants are defined to facilitate obtaining the type associated with the
77
-
group elements or the irreducible representations of a given group:
71
+
The following constants are defined to facilitate obtaining the type associated with the group elements or the irreducible representations of a given group:
78
72
79
73
```@docs
80
74
Irrep
@@ -83,8 +77,7 @@ GroupElement
83
77
84
78
## Methods for characterizing and manipulating `Sector` objects
85
79
86
-
The following methods can be used to obtain properties such as topological data of sector
87
-
objects, or to manipulate them or create related sectors:
80
+
The following methods can be used to obtain properties such as topological data of sector objects, or to manipulate them or create related sectors:
Copy file name to clipboardExpand all lines: docs/src/lib/spaces.md
+6-10Lines changed: 6 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,25 +21,22 @@ ProductSpace
21
21
HomSpace
22
22
```
23
23
24
-
together with the following specific type for encoding the inner product structure of a
25
-
space:
24
+
together with the following specific type for encoding the inner product structure of a space:
26
25
27
26
```@docs
28
27
InnerProductStyle
29
28
```
30
29
31
30
## Useful constants
32
31
33
-
The following constants are defined to easily create the concrete type of `GradedSpace`
34
-
associated with a given type of sector.
32
+
The following constants are defined to easily create the concrete type of `GradedSpace` associated with a given type of sector.
35
33
36
34
```@docs
37
35
Vect
38
36
Rep
39
37
```
40
38
41
-
In this respect, there are also a number of type aliases for the `GradedSpace` types
42
-
associated with the most common sectors, namely
39
+
In this respect, there are also a number of type aliases for the `GradedSpace` types associated with the most common sectors, namely
43
40
44
41
```julia
45
42
const ZNSpace{N} = Vect[ZNIrrep{N}]
@@ -110,16 +107,15 @@ isepimorphic
110
107
isisomorphic
111
108
```
112
109
113
-
Inserting trivial space factors or removing such factors for `ProductSpace` instances can be
114
-
done with the following methods.
110
+
Inserting trivial space factors or removing such factors for `ProductSpace` instances can be done with the following methods.
111
+
115
112
```@docs
116
113
insertleftunit(::ProductSpace, ::Val{i}) where {i}
117
114
insertrightunit(::ProductSpace, ::Val{i}) where {i}
118
115
removeunit(::ProductSpace, ::Val{i}) where {i}
119
116
```
120
117
121
-
There are also specific methods for `HomSpace` instances, that are used in determining the
122
-
resulting `HomSpace` after applying certain tensor operations.
118
+
There are also specific methods for `HomSpace` instances, that are used in determining the resulting `HomSpace` after applying certain tensor operations.
0 commit comments