annotate src/LazyTensors/tensor_mapping.jl @ 945:1f41cf9454f2 feature/tensormapping_application_promotion

Remove type declaratio from doc string
author Jonatan Werpers <jonatan@werpers.com>
date Sat, 12 Mar 2022 22:20:45 +0100
parents 4a4ef4bf6cb9
children 1ba8a398af9c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
944
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
1 export TensorMapping
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
2 export apply
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
3 export apply_transpose
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
4 export range_dim, domain_dim
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
5 export range_size, domain_size
4a4ef4bf6cb9 Move exports to the top of the files
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
6
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 TensorMapping{T,R,D}
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
10 Describes a mapping of a `D` dimension tensor to an `R` dimension tensor.
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 The action of the mapping is implemented through the method
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
12 ```julia
945
1f41cf9454f2 Remove type declaratio from doc string
Jonatan Werpers <jonatan@werpers.com>
parents: 944
diff changeset
13 apply(t::TensorMapping{T,R,D}, v::AbstractArray{<:Any,D}, I::Vararg) where {R,D,T}
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
14 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
16 The size of the range and domain that the operator works with should be returned by
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
17 the functions
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
18 ```julia
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
19 range_size(::TensorMapping)
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
20 domain_size(::TensorMapping)
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
21 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 to allow querying for one or the other.
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 Optionally the action of the transpose may be defined through
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
25 ```julia
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 apply_transpose(t::TensorMapping{T,R,D}, v::AbstractArray{T,D}, I::Vararg) where {R,D,T}
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
27 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 abstract type TensorMapping{T,R,D} end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 """
943
fb060e98ac0a Remove more type assertions
Jonatan Werpers <jonatan@werpers.com>
parents: 838
diff changeset
32 apply(t::TensorMapping{T,R,D}, v::AbstractArray{<:Any,D}, I::Vararg) where {R,D,T}
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 Return the result of the mapping for a given index.
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 function apply end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 """
943
fb060e98ac0a Remove more type assertions
Jonatan Werpers <jonatan@werpers.com>
parents: 838
diff changeset
39 apply_transpose(t::TensorMapping{T,R,D}, v::AbstractArray{<:Any,R}, I::Vararg) where {R,D,T}
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 Return the result of the transposed mapping for a given index.
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 function apply_transpose end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 """
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
46 range_dim(::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 Return the dimension of the range space of a given mapping
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 range_dim(::TensorMapping{T,R,D}) where {T,R,D} = R
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 """
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
52 domain_dim(::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 Return the dimension of the domain space of a given mapping
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 domain_dim(::TensorMapping{T,R,D}) where {T,R,D} = D
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 """
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
59 range_size(M::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
61 Return the range size for the mapping.
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 function range_size end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 """
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
66 domain_size(M::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
68 Return the domain size for the mapping.
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 function domain_size end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71
285
e21dcda55163 Add type representing an unknown dimension in the domain of tensormappings
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 190
diff changeset
72
492
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
73 """
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
74 eltype(::TensorMapping{T})
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
75
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
76 The type of elements the TensorMapping acts on.
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
77 """
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
78 Base.eltype(::TensorMapping{T}) where T = T
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
79
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 # TODO: Think about boundschecking!