JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.4k stars 5.45k forks source link

Add quaternions #2990

Closed adambrewster closed 11 years ago

adambrewster commented 11 years ago

There's a quaternion type in examples. I propose that this become a part of Base.

1609 mentions them as part of a graphics package, but quaternions are a useful mathematical concept outside of graphics, and belong in Base. If complex numbers made the cut, then quaternions should too.

stevengj commented 11 years ago

Quaternions are nowhere near as widely used as complex numbers; the comparison is absurd.

Quaternions are used in an extremely narrow niche of technical computing, and make the most sense to me as an external add-on package rather than part of Base. The difficulty with adding a new numeric type to Base is that then the expectation arises of supporting that type throughout Base (from linear algebra to special functions ... certainly any entire function, such as exp or erf, could potentially be defined for quaternions); this is a huge amount of effort with limited payoff. Whereas in a Quaternion add-on package, expectations of the Julia core team are more modest.

StefanKarpinski commented 11 years ago

I agree that Quaternions make a good add-on package. Similar to DualNumbers.jl (although I've heard of quaternions before, so maybe a bit better known ;).

ViralBShah commented 11 years ago

We should certainly take it out of examples and into a package. We need an owner for it though.

StefanKarpinski commented 11 years ago

Could live under JuliaLang but it would be better if someone who needs it and uses it regularly is willing to take ownership.