alpha
Login
or
Join now
utensil.tngl.sh
/
pygae-galgebra
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Symbolic Geometric Algebra/Calculus package for SymPy 🔮 Mirror of https://github.com/pygae/galgebra
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
pygae-galgebra
/
galgebra
/
at
master
3 folders
13 files
Ulysses Tiberious
chore: bump version to 0.6.1rc1
6mo ago
ff0a9383
_backports
Improve type annotations (#318) This also makes some fixes regarding type annotations found by mypy, including reusing a variable with different types each time. MyPy also complained about using `_X = TypeVar('X')`, requiring the inner name to also contain an underscore.
6 years ago
_utils
Move the backport of sympy.Printable into its own file (#446) Since this is a temporary solution until we drop sympy 1.6, putting it in its own file keeps it isolated.
6 years ago
interop
fix(interop): reset dual mode to galgebra default in interop.Cl (#556) * fix(interop): reset dual mode to galgebra default in interop.Cl galgebra.interop.Cl now calls Ga.dual_mode('I+') before building the algebra, mirroring what kingdon.Cl does for 'Iinv+'. This prevents silent session contamination when both Cl variants are used in the same session (#555). Update kingdon.Cl docstring: the save/restore warning becomes a note explaining that interop.Cl resets the mode, so sequential calls are safe without manual save/restore. Fixes #555 (short-term). Long-term per-instance fix tracked on feat/issue-555-interop-dual-mode-per-instance. * test(interop): add regression test for dual mode reset in interop.Cl Add test_Cl_dual_mode_reset: calls kingdon.Cl (sets Iinv+) then galgebra.interop.Cl and asserts dual mode is reset to I+. Without the fix in _cl.py this test fails. Clarify kingdon.Cl note: explicitly warn that algebras built under Iinv+ will compute duals with I+ once a subsequent galgebra.interop.Cl call is made.
6 months ago
__init__.py
feat(ga): add Cl(p,q,r) kingdon-like interface for Clifford algebras (#550)
6 months ago
_version.py
chore: bump version to 0.6.1rc1
6 months ago
atoms.py
A workaround for the broken MatrixFunction
2 years ago
deprecated.py
Deprecate the galgebra.deprecated module (#286) Note we have to tweak the notebook slightly in order to ensure the warning output appears in stderr and not stdout.
6 years ago
dop.py
Remove all the duplicate spellings of one/half/zero (#402) We don't need these at all, sympy provides them as `S.One`, `S.Half`, and `S.Zero`. Note that `S.One` is about 20x faster than `S(1)`, although this won't really make any difference.
6 years ago
ga.py
refactor(ga): simplify ReciprocalFrame with clearer loop structure (#553)
6 months ago
gprinter.py
Add module `gprinter`, methods `undual`, `g_invol`, `ccon`, `sp`, `norm2`, `norm` for Mv, with validated tests (#510) Addresses #505 . Co-authored-by: Greg Grunberg <g.s.grunberg@gmail.com> Co-authored-by: Alan Bromborsky <abrombo@users.noreply.github.com>
2 years ago
lt.py
feat(lt): implement Mlt component-expression constructor (#578) The else-branch in Mlt.__init__ raised NotImplementedError when f was a pre-built sympy expression rather than a callable or string name. This path is useful for reconstructing an Mlt from a saved fvalue. Requires nargs to be passed explicitly (since there is no callable to inspect), raises TypeError otherwise. Closes #578
6 months ago
metric.py
Add module `gprinter`, methods `undual`, `g_invol`, `ccon`, `sp`, `norm2`, `norm` for Mv, with validated tests (#510) Addresses #505 . Co-authored-by: Greg Grunberg <g.s.grunberg@gmail.com> Co-authored-by: Alan Bromborsky <abrombo@users.noreply.github.com>
2 years ago
mv.py
fix(mv): is_blade() now correctly handles null vectors and null blades (#537) * fix(mv): is_blade() now correctly handles null vectors and null blades Previously is_blade() delegated entirely to is_versor(), which returns False for null multivectors (they have no inverse). This caused grade-1 null vectors like e0+e1 in G(1,1), and grade-2 null blades like (e0+e1)^e2 in G(1,2), to be incorrectly reported as non-blades. Blade-ness is a metric-free concept; the fix: - Grade 0 and 1: always blades (no metric required) - Grade >= 2, non-null: is_versor() path (unchanged) - Grade >= 2, null: outer-product squaring test (B^B == 0), which is necessary for any blade and sufficient for grade 2 Closes #537 * fix(mv): address review feedback for is_blade() null handling - Move zero check before grade check to correctly exclude zero multivectors - Add null-blade guards to reflect_in_blade() and project_in_blade() - Update algorithm documentation to reflect new step ordering - All tests pass (35/35) * fix(test): correct is_versor comment for null vectors * test(blade): add known limitation test for Dorst/Fontijne/Mann counterexample Adds a test pinning the known false positive for is_blade() in grade >= 3 with sufficiently high dimensions (R⁶). The Dorst/Fontijne/Mann counterexample satisfies (B^B).is_zero() but is not actually a 3-blade. This documents the known limitation as a test with a clear comment. * test(mv): remove test_is_blade_known_limitation The test was incorrect on two counts: - is_blade() correctly returns False for the DFM counterexample in R^6 because B^B != 0 there (the outer-product test works fine) - The computation took ~32 minutes, making CI unusable The grade >= 3 limitation is documented in the is_blade() docstring only.
6 months ago
primer.py
Add module `gprinter`, methods `undual`, `g_invol`, `ccon`, `sp`, `norm2`, `norm` for Mv, with validated tests (#510) Addresses #505 . Co-authored-by: Greg Grunberg <g.s.grunberg@gmail.com> Co-authored-by: Alan Bromborsky <abrombo@users.noreply.github.com>
2 years ago
printer.py
Disable line-wrapping of pretty-printed output by default (#457) This is primarily to make the jupyter notebooks easier to review.
6 years ago
utils.py
Deprecate galgebra.utils
6 years ago