4 ms·
Directsum.jl – Abstract tangent bundle vector space type operations
- DreamScatter 7y agoRelated: Grassmann.jl – Differential Geometric Algebra - https://news.ycombinator.com/item?id=22076368 https://news.ycombinator.com/item?id=22076368
- ganzuul 7y agoWhat problem is one solving when this becomes useful? Is it a compressed representation of something?
- DreamScatter 7y agoCorrect, it is an encoding to represent SubManifold spaces used in the multi-linear Grassmann algebra. It might seem strange on its own, but the advantage it provides in Grassmann.jl is specialized automatic pre-compilation for differential geometric algebras based on a vector bundle manifold. For example, see https://grassmann.crucialflow.com https://grassmann.crucialflow.com
- adamnemecek 7y agoIf this tickles your fancy, check out the bivector.net community. Check the demo https://observablehq.com/@enkimute/animated-orbits https://observablehq.com/@enkimute/animated-orbits Join the discord https://discord.gg/vGY6pPk https://discord.gg/vGY6pPk
- ganzuul 7y agoCool!
- dan-robertson 7y agoI feel like the readme could do with a better introduction. At the moment it seems like weird mix of mathematically technical definitions, code examples (I guess related to api specifics), and some random Julia type-system/size-limit technicalities thrown in too. But that said, I don’t think I know anything about this sort of geometry or algebra so maybe instead I should want a paragraph telling me to give up. Also is V"++++" the same as S"++++" (or rather, is V the same as S?), this looked like maybe the notation just changed? But like I say, I couldn’t really follow the readme so I’m likely wrong here.
- dan-robertson 7y agoI found this link which provides a bit of colour and is a bit more readable than the readme: https://grassmann.crucialflow.com/dev/ https://grassmann.crucialflow.com/dev/
- DreamScatter 7y agoThe difference between V"++++" and S"++++" is that the S" specifically constructs a Signature concrete type, while the V" is for automatically selecting an appropriate type of the VectorBundle category, which is not limited to Signature specifically, making it a more general constructor call.
- aesthesia 7y agoI'm not sure I understand how the different types in this library---Manifold, VectorBundle, SubManifold---correspond to the standard definitions of these mathematical objects. How is a manifold represented here? Can arbitrary manifolds be represented?
- dan-robertson 7y agoI think a complication is that there are abstract types and concrete types. The abstract types let you say “give me a tangent bundle where ...” and the concrete types actually implement the thing as eg a vector or a sparse vector or ... An alternative example would be that in Julia you can talk about abstract vector types of which dense and sparse form disjoint subtypes
- DreamScatter 7y agoIndeed, the Manifold{n} type from AbstractTensors.jl (https://github.com/chakravala/AbstractTensors.jl https://github.com/chakravala/AbstractTensors.jl) is defined as an abstract type in Julia. The parameter `n` is used to specify the Manifold dimension, which is locally isomorphic to R^n. A VectorBundle is another abstract type, which standardizes an encoding format for concrete Signature and DiagonalForm types, or more. SubManifold can select subspaces of a VectorBundle or generally an arbitrary Manifold. The design of the type system was optimized for algebra interoperability and adaptive subspace precompilation.
- aesthesia 7y agoOkay, so say I want to do computations with differential forms on some particular manifold, like a torus or RP^n. Maybe I want to evaluate the Hodge Laplacians on some forms. What would I need to do to implement that within this system? I see references to computing Betti numbers and Euler characteristics in the documentation, so I assume something like this is possible. I'm not very familiar with geometric algebra or its computational implementation, so apologies if this is either obvious or not even wrong. This looks very cool and useful, I just don't know how to connect it to the things I understand.
- smallcharleston 7y agoDo people do these kinds of computations often in practice?
- DreamScatter 7y agoThis is part of the foundations of my geometric algebra implementation, which you can find out more about at https://grassmann.crucialflow.com https://grassmann.crucialflow.com
- DreamScatter 7y agoAlso, look at http://bivector.net http://bivector.net for a related community of people using similar computer algebra.
- jhales 7y agoThis is very cool, but what is the use case?
- DreamScatter 7y agoIt is used as a type system for code generation and high performance calculation with discrete differential goemetry sub algebras. More information is at https://grassmann.crucialflow.com https://grassmann.crucialflow.com or also at https://bivector.net https://bivector.net