Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add hypercomplex data type based on Cayley-Dickson construction #16

Open
sritchie opened this issue Jan 21, 2022 · 0 comments
Open

Add hypercomplex data type based on Cayley-Dickson construction #16

sritchie opened this issue Jan 21, 2022 · 0 comments

Comments

@sritchie
Copy link
Member

We currently have real, complex, and Quaternions as of sicmutils/sicmutils#461. It would be lovely to "complete" the story here by implementing a Hypercomplex type wrapping a vector of length 2^n.

Here is one Clojure implementation of this idea: https://github.com/ogeagla/clj-hypercomplex/blob/master/src/hypercomplex/core.clj

I think ours should stick to a flat vector for the data type instead of the nested map in the implementation above.

In theory we could macro-generate the complex and quaternion specialized types from functions here... maybe that is a good idea, as an exercise, as least :)

Bicomplex etc

There are lots of new weird types we get if we use real, split-complex or dual numbers as entries in these formulations.

  • Bicomplex numbers are complex numbers with complex entries
  • Biquaternions have complex entries
  • Split-biquaternions use split-complex coefficients
  • Dual quaternions use dual number entries

This is interesting as a story about fleshing out an abstraction.

References:

@sritchie sritchie transferred this issue from sicmutils/sicmutils Jan 24, 2023
@sritchie sritchie transferred this issue from another repository Jan 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant