annotate src/LazyTensors/tensor_mapping.jl @ 877:dd2ab001a7b6 feature/equidistant_grid/refine

Implement refine function, move exports to the top of the file, change location of constuctors. The constructors were changed have only one inner constructor and simpler outer constructors.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 14 Feb 2022 09:39:58 +0100
parents 76e5682d0e52
children fb060e98ac0a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 TensorMapping{T,R,D}
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
4 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
5 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
6 ```julia
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 apply(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
8 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
10 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
11 the functions
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
12 ```julia
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
13 range_size(::TensorMapping)
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
14 domain_size(::TensorMapping)
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
15 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 to allow querying for one or the other.
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 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
19 ```julia
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 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
21 ```
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 abstract type TensorMapping{T,R,D} end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 export TensorMapping
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 apply(t::TensorMapping{T,R,D}, v::AbstractArray{T,D}, I::Vararg) where {R,D,T}
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 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
30 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 function apply end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 export apply
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 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 apply_transpose(t::TensorMapping{T,R,D}, v::AbstractArray{T,R}, I::Vararg) where {R,D,T}
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 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
38 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 function apply_transpose end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 export apply_transpose
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 """
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
43 range_dim(::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 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
45 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 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
47
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 """
838
76e5682d0e52 Fix a bunch of docstring mistakes
Jonatan Werpers <jonatan@werpers.com>
parents: 492
diff changeset
49 domain_dim(::TensorMapping)
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 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
51 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 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
53
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 export range_dim, domain_dim
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 """
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
57 range_size(M::TensorMapping)
190
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 Return the range size for the mapping.
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 function range_size end
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 """
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
64 domain_size(M::TensorMapping)
190
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 Return the domain size for the mapping.
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 """
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 function domain_size end
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
348
7fe43d902a27 Start trying to change LazyTensors
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
70 export range_size, domain_size
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
71
492
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
72 """
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
73 eltype(::TensorMapping{T})
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
74
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
75 The type of elements the TensorMapping acts on.
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
76 """
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
77 Base.eltype(::TensorMapping{T}) where T = T
cd509e57f898 Implement method eltype for TensorMapping
Jonatan Werpers <jonatan@werpers.com>
parents: 348
diff changeset
78
190
8964b3165097 Break LazyTensors.jl into several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 # TODO: Think about boundschecking!