Mostly about math (that I do not know to well, this advanced, above complex 
numbers), just seems relevant to generic programming..:

In e.g.:
https://en.wikipedia.org/wiki/Complex_number

in the template at the bottom:

Real numbers and extensions:

Real numbers (ℝ) Complex numbers (ℂ) Quaternions (ℍ) Octonions (𝕆) 
Sedenions (𝕊) Cayley–Dickson construction Dual numbers Split-complex 
numbers Bicomplex numbers Hypercomplex numbers Superreal numbers Irrational 
numbers Transcendental numbers Hyperreal numbers Levi-Civita field Surreal 
numbers

http://math.stackexchange.com/questions/86434/what-lies-beyond-the-sedenions


I see that dual numbers are supported already with a library, and know what 
Julia does support.


Since Julia IS a scientific language, I checked:

julia> 1+0im < 2+0im
ERROR: `isless` has no method matching isless(::Complex{Int64}, 
::Complex{Int64})
 in < at operators.jl:32

that is the right thing. I wander what MATLAB does, since all numbers(?) 
are stored as complex. 0im special cased?


real numbers have properties that floating point already doesn't support, 
so loosing those properties with higher order numbers seems not to be an 
issue, but is it for the even higher order numbers and those properties? I 
assume not, as there are no operators/functions and even if there where 
operators (really just functions), then they would just stop working.

In a language where everything is typed (not generic), this might not be a 
problem, but leads to run-time "ERROR"s/exceptions. Should you use ::Real 
at every point to not get those with Complex? What about other possible 
numbers?


Thanks in advance,
-- 
Palli.


Reply via email to