Eric Wieser

Results 217 issues of Eric Wieser

Something that came up on discord - for quick prototyping in an interactive shell, it would be neat to be able to do something like ```python %basis ++++- ``` in...

enhancement

As discussed in https://github.com/pygae/clifford/pull/371#r549158697. We find ourself using `1 + 0*x` a lot of the time to obtain the scalar element. Right, now, there is no great alternative to this...

https://clifford--325.org.readthedocs.build/en/325/api/clifford.MultiVector.html#clifford.MultiVector.__and__ Result: | with no prefix | with prefix | |--|--| | ![image](https://user-images.githubusercontent.com/425260/83549906-eee6b680-a4fd-11ea-8fcb-a65292be8118.png) | ![image](https://user-images.githubusercontent.com/425260/83676747-13f92900-a5d3-11ea-92cd-5978592f99f0.png) |

documentation

We could consider using numpy to round coefficients etc with: ```python f = np.core.arrayprint._get_format_function(self.value, **np.core.arrayprint._format_options) # use `f` instead of `round` in `MultiVector.__str__ ```

```python >>> import clifford >>> layout, _ = clifford.Cl(3, 0, 1, firstIdx=0) >>> locals().update(layout.blades) >>> e0.isBlade() True >>> e0.isBlade(invertible=True) False ``` Fixes #145. --- This exposes that `.factorise()` and `.basis()`...

enhancement

```python >>> import clifford >>> layout, _ = clifford.Cl(3, 0, 1, firstIdx=0) >>> locals().update(layout.blades) >>> e0.isBlade() clifford\__init__.py: RuntimeWarning: divide by zero encountered in true_divide newValue = self.value / other clifford\__init__.py:...

bug
component: core

Today, all of the following are ways to compute scalar products 1. `(a * b)[()]` 2. `(a | b)[()]` 3. `(a

enhancement

Not sure if this is an implementation bug or a flaw in Dorst's algorithm: ```python from clifford.g3c import * import clifford.tools.g3c as gt # a hopefully non-malicious rotor root_R =...

bug
component: tools

A key part of #97 (implemented in #189) is keeping track of the `Layout` instances and `MultiVector` class. Today, we use `context.add_dynamic_addr` to embed these objects in the LLVM code....

Almost all of our operations create an extra copy (see #280). The fix proposed there is to opt-in for copy-free construction (spelt `layout.MultiVector(value, copy=False)`). However, it seems that every single...

question