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
**Remark**, although some of the operations sometimes result in the same value as shown in the above examples, the `∪` and `⊕` are entirely different operations in general.
79
79
80
80
Calling manifolds with sets of indices constructs the subspace representations.
81
-
Given `M(s::Int...)` one can encode `SubManifold{M,length(s),indexbits(s)}` with induced orthogonal space, such that computing unions of submanifolds is done by inspecting the parameter ``s``.
81
+
Given `M(s::Int...)` one can encode `Submanifold{M,length(s),indexbits(s)}` with induced orthogonal space, such that computing unions of submanifolds is done by inspecting the parameter ``s``.
82
82
Operations on `Manifold` types is automatically handled at compile time.
83
83
```julia
84
84
julia> (ℝ^5)(3,5)
85
85
⟨__+_+⟩
86
86
87
87
julia>dump(ans)
88
-
SubManifold{2,⟨+++++⟩,0x0000000000000014} ⟨__+_+⟩
88
+
Submanifold{2,⟨+++++⟩,0x0000000000000014} ⟨__+_+⟩
89
89
```
90
-
Here, calling a `Manifold` with a set of indices produces a `SubManifold` representation.
90
+
Here, calling a `Manifold` with a set of indices produces a `Submanifold` representation.
91
91
92
92
### Extended dual index printing with full alphanumeric characters #62'
93
93
@@ -140,20 +140,20 @@ More information about `AbstractTensors` is available at https://github.com/cha
140
140
141
141
# Grassmann elements and geometric algebra Λ(V)
142
142
143
-
The Grassmann `SubManifold` elements `vₖ` and `wᵏ` are linearly independent vector and covector elements of `V`, while the Leibniz `Operator` elements `∂ₖ` are partial tangent derivations and `ϵᵏ` are dependent functions of the `tangent` manifold.
143
+
The Grassmann `Submanifold` elements `vₖ` and `wᵏ` are linearly independent vector and covector elements of `V`, while the Leibniz `Operator` elements `∂ₖ` are partial tangent derivations and `ϵᵏ` are dependent functions of the `tangent` manifold.
144
144
An element of a mixed-symmetry `TensorAlgebra{V}` is a multilinear mapping that is formally constructed by taking the tensor products of linear and multilinear maps.
145
-
Higher `grade` elements correspond to `SubManifold` subspaces, while higher `order` function elements become homogenous polynomials and Taylor series.
145
+
Higher `grade` elements correspond to `Submanifold` subspaces, while higher `order` function elements become homogenous polynomials and Taylor series.
146
146
147
-
Combining the linear basis generating elements with each other using the multilinear tensor product yields a graded (decomposable) tensor `SubManifold` ⟨w₁⊗⋯⊗wₖ⟩, where `grade` is determined by the number of anti-symmetric basis elements in its tensor product decomposition.
147
+
Combining the linear basis generating elements with each other using the multilinear tensor product yields a graded (decomposable) tensor `Submanifold` ⟨w₁⊗⋯⊗wₖ⟩, where `grade` is determined by the number of anti-symmetric basis elements in its tensor product decomposition.
148
148
The algebra is partitioned into both symmetric and anti-symmetric tensor equivalence classes.
149
149
For the oriented sets of the Grassmann exterior algebra, the parity of `(-1)^P` is factored into transposition compositions when interchanging ordering of the tensor product argument permutations.
150
150
The symmetrical algebra does not need to track this parity, but has higher multiplicities in its indices.
151
151
Symmetric differential function algebra of Leibniz trivializes the orientation into a single class of index multi-sets, while Grassmann's exterior algebra is partitioned into two oriented equivalence classes by anti-symmetry.
152
152
Full tensor algebra can be sub-partitioned into equivalence classes in multiple ways based on the element symmetry, grade, and metric signature composite properties.
153
153
154
-
By virtue of Julia's multiple dispatch on the field type `𝕂`, methods can specialize on the dimension `n` and grade `G` with a `TensorBundle{n}` via the `TensorAlgebra{V}` subtypes, such as `SubManifold{V,G}`, `Simplex{V,G,B,𝕂}`.
154
+
By virtue of Julia's multiple dispatch on the field type `𝕂`, methods can specialize on the dimension `n` and grade `G` with a `TensorBundle{n}` via the `TensorAlgebra{V}` subtypes, such as `Submanifold{V,G}`, `Simplex{V,G,B,𝕂}`.
155
155
156
-
The elements of the `Basis` can be generated in many ways using the `SubManifold` elements created by the `@basis` macro,
156
+
The elements of the `Basis` can be generated in many ways using the `Submanifold` elements created by the `@basis` macro,
157
157
```julia
158
158
julia>using DirectSum; @basis ℝ^3# equivalent to basis"+++"
159
159
(⟨+++⟩, v, v₁, v₂, v₃, v₁₂, v₁₃, v₂₃, v₁₂₃)
@@ -162,16 +162,16 @@ julia> typeof(V) # dispatch by vector space
162
162
Signature{3,0,0x0000000000000000,0,0,1}
163
163
164
164
julia>typeof(v13) # extensive type info
165
-
SubManifold{⟨+++⟩,2,0x0000000000000005}
165
+
Submanifold{⟨+++⟩,2,0x0000000000000005}
166
166
167
167
julia> v1 ⊆ v12
168
168
true
169
169
170
170
julia> v12 ⊆ V
171
171
true
172
172
```
173
-
As a result of this macro, all of the `SubManifold{V,G}` elements generated by that `TensorBundle` become available in the local workspace with the specified naming.
174
-
The first argument provides signature specifications, the second argument is the variable name for the `TensorBundle`, and the third and fourth argument are the the prefixes of the `SubManifold` vector names (and covector basis names). By default, `V` is assigned the `TensorBundle` and `v` is the prefix for the `SubManifold` elements.
173
+
As a result of this macro, all of the `Submanifold{V,G}` elements generated by that `TensorBundle` become available in the local workspace with the specified naming.
174
+
The first argument provides signature specifications, the second argument is the variable name for the `TensorBundle`, and the third and fourth argument are the the prefixes of the `Submanifold` vector names (and covector basis names). By default, `V` is assigned the `TensorBundle` and `v` is the prefix for the `Submanifold` elements.
175
175
176
176
It is entirely possible to assign multiple different bases with different signatures without any problems. In the following command, the `@basis` macro arguments are used to assign the vector space name to `S` instead of `V` and basis elements to `b` instead of `v`, so that their local names do not interfere.
177
177
Alternatively, if you do not wish to assign these variables to your local workspace, the versatile `DirctSum.Basis` constructors can be used to contain them, which is exported to the user as the method `Λ(V)`.
@@ -194,7 +194,7 @@ The 62 indices require full alpha-numeric labeling with lower-case and capital l
Complete `SubManifold` allocations are only possible for `N≤22`, but sparse operations are also available at higher dimensions.
197
+
Complete `Submanifold` allocations are only possible for `N≤22`, but sparse operations are also available at higher dimensions.
198
198
While `DirectSum.Basis{V}` is a container for the `TensorAlgebra` generators of `V`, the `DirectSum.Basis` is only cached for `N≤8`.
199
199
For the range of dimensions `8<N≤22`$, the `DirectSum.SparseBasis` type is used.
200
200
```julia
@@ -207,7 +207,7 @@ To reach higher dimensions with `N>22`, the `DirectSum.ExtendedBasis` type is us
207
207
It is suficient to work with a 64-bit representation (which is the default). And it turns out that with 62 standard keyboard characters, this fits nicely.
208
208
At 22 dimensions and lower there is better caching, with further extra caching for 8 dimensions or less.
209
209
Thus, the largest Hilbert space that is fully reachable has 4,194,304 dimensions, but we can still reach out to 4,611,686,018,427,387,904 dimensions with the `ExtendedBasis` built in.
210
-
Complete `SubManifold` elements are not representable when `ExtendedBasis` is used, but the performance of the `SubManifold` and sparse elements is possible as it is for lower dimensions for the current `SubAlgebra` and `TensorAlgebra` types.
210
+
Complete `Submanifold` elements are not representable when `ExtendedBasis` is used, but the performance of the `Submanifold` and sparse elements is possible as it is for lower dimensions for the current `SubAlgebra` and `TensorAlgebra` types.
211
211
The sparse representations are a work in progress to be improved with time.
0 commit comments