meirizarrygelpi / numbers

A collection of packages that implement arithmetic for many number systems in Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

numbers

Go Report Card GoDoc

Metapackage numbers is a collection of packages that implement arithmetic over many number systems, including dual numbers, quaternions, octonions, and their parabolic and hyperbolic cousins. In each package five types are implemented:

  • Int64
  • Float64
  • Int
  • Float
  • Rat

Each value is printed in the form "(...)". This is similar to complex128 values.

Here is a list of available packages:

  1. vec3: three-dimensional vectors
  2. vec7: seven-dimensional vectors
  3. eisenstein: Eisenstein numbers
  4. heegner: imaginary quadratic fields with class number 1. See Heegner numbers
  5. maclaurin: Maclaurin polynomials
  6. pade: Padé approximants
  7. cplex: complex numbers
  8. nplex: nilplex numbers (more commonly known as dual numbers)
  9. pplex: perplex numbers (more commonly known as split-complex numbers)
  10. hamilton: Hamilton quaternions (i.e. traditional quaternions; can also be referred to as elliptic quaternions; four-dimensional)
  11. cockle: Cockle quaternions (more commonly known as split-quaternions; can also be referred to as hyperbolic quaternions; four-dimensional)
  12. grassmann2: two-dimensional Grassmann numbers (different from bi-nilplex numbers; can also be referred to as parabolic quaternions; four-dimensional)
  13. supercplex: super-complex numbers (different from dual-complex numbers; four-dimensional)
  14. superpplex: super-perplex numbers (different from dual-perplex numbers; four-dimensional)
  15. bicplex: bi-complex numbers (complexification of the complex numbers; four-dimensional)
  16. bipplex: bi-perplex numbers (perplexification of the perplex numbers; four-dimensional)
  17. binplex: bi-nilplex numbers (nilplexification of the nilplex numbers; four-dimensional)
  18. dualcplex: dual-complex numbers (nilplexification of the complex numbers; four-dimensional)
  19. dualpplex: dual-perplex numbers (nilplexification of the perplex numbers; four-dimensional)
  20. cayley: Cayley octonions (i.e. traditional octonions; can also be referred to as elliptic octonions; eight-dimensional)
  21. zorn: Zorn octonions (more commonly known as split-octonions; can also be referred to as hyperbolic octonions; eight-dimensional)
  22. grassmann3: three-dimensional Grassmann numbers (different from tri-nilplex numbers; can also be referred to as parabolic octonions; eight-dimensional)
  23. superhamilton: super-Hamilton quaternions (different from the dual-Hamilton quaternions; eight-dimensional)
  24. supercockle: super-Cockle quaternions (different from the dual-Cockle quaternions; eight-dimensional)
  25. ultracplex: ultra-complex numbers (different from the hyper-complex numbers; eight-dimensional)
  26. ultrapplex: ultra-perplex numbers (different from the hyper-perplex numbers; eight-dimensional)
  27. tricplex: tri-complex numbers (complexification of the bi-complex numbers; eight-dimensional)
  28. trinplex: tri-nilplex numbers (nilplexification of the bi-nilplex numbers; eight-dimensional)
  29. tripplex: tri-perplex numbers (perplexification of the di-perplex numbers; eight-dimensional)
  30. hypercplex: hyper-complex numbers (nilplexification of dual-complex numbers; eight-dimensional)
  31. hyperpplex: hyper-perplex numbers (nilplexification of dual-perplex numbers; eight-dimensional)
  32. dualhamilton: dual-Hamilton quaternions (nilplexification of Hamilton quaternions; eight-dimensional)
  33. dualcockle: dual-Cockle quaternions (nilplexification of Cockle quaternions; eight-dimensional)
  34. comhamilton: complex-Hamilton quaternions (complexification of Hamilton quaternions; eight-dimensional)
  35. perhamilton: perplex-Hamilton quaternions (perplexification of Hamilton quaternions; eight-dimensional)
  36. percockle: perplex-Cockle quaternions (perplexification of Cockle quaternions; eight-dimensional)
  37. grassmann4: four-dimensional Grassmann numbers (can also be referred to as parabolic sedenions; sixteen-dimensional)

Here is a list of future packages:

  1. laurent: Laurent polynomials

To-Do:

  1. SetReal and SetUnreal methods
  2. Plus and Minus methods
  3. Maclaurin methods
  4. Padé methods
  5. Inf and NaN methods
  6. IsInf and IsNaN methods
  7. Dot and Cross methods

About

A collection of packages that implement arithmetic for many number systems in Go.

License:MIT License


Languages

Language:Go 100.0%