Open JeffreySarnoff opened 3 years ago
No we cannot use AbstractInfinity
as we need to work with dispatch on Real
, Integer
, etc. InfiniteCardinal <: Integer
is absolutely essential to InfiniteArrays.jl
Of course.
triage recently determined to introduce AbstractComplex
(non-breaking).
With InfiniteCardinal, the Numeric type-levels become:
Number
AbstractComplex
Complex
Real
Irrational
Rational
AbstractFloat
Float16, .. Float64, BigFloat
Integer
InfiniteCardinal
ℵ₀ , ℵ₁
Signed
Int8 .. Int128, BigInt
Unsigned
UInt8 .. UInt128
Bool
(I do not know how they are be used) and if the first two InfiniteOrdinals are of beneifit
Integer
InfiniteOrdinal
ω¹, ω²
InfiniteCardinal
ℵ₀ , ℵ₁
the remaining infinities could fit this way
Number
AbstractComplex
ProjectiveInfinity
Complex
ComplexInfinity
Real
RealInfinity
SignedInfinity
PositiveInfinity, NegativeInfinity
Irrational
Rational
AbstractFloat
Float16, .. Float64, BigFloat
Integer
InfiniteCardinal
ℵ₀ , ℵ₁
Signed
Int8 .. Int128, BigInt
Unsigned
UInt8 .. UInt128
Bool
Yes looks good.
We could make InfiniteCardinal <: Unsigned
. I vaguely remember trying that and running into some problems though...but we can always try.
These pages are posted here for reference (while other software and other's mathematical perspecitves may approach this differently, the algebra appears reasonable)
from functions.wolfram.com on Infinity on ComplexInfinity
from reference.wolfram.com on Infinity on ComplexInfinity on Indeterminate (NotANumber)
Fredrik Johansson in Fungrim works this way:
This formal symbol [∞] represents a quantity larger than any real number [magnitude-like]. We define +∞=∞ Multiplication of ∞ by a nonzero complex number represents an infinite limit with the given direction in the complex plane. In particular, −∞, i∞ and −i∞ are frequently used.
This formal symbol [⧝] represents a quantity with infinite magnitude and undefined sign. It is typically used to represent the value of meromorphic functions at poles. The set {ℂ ⋃ ⧝} represents the complex Riemann sphere.
Fredrik has helped me with Arblib, and I respect the work that I am about to use as a foil -- to elucidate a subtlety in my design of the modification to the abstracting concretion above.
"define +∞=∞" is not the same as, say,
imagine/derive/construct ς
to be the limit magnitude (akin to ℵ₁ as limit ordinal)
define +∞ as +|ς| and -∞ as -|ς|
"define ComplexInfinity as ProjectiveInfinity." and compose that with a signed imaginary units to obtain ... one of two oriented ?projections? of the unsigned ComplexInfinity. This is similar to the RealInfinity construction. They each postulate a convienient definens for intial utilization rules. This post axiomatic approach seems an unneccesary sidestep.
The provision of a perdurant signedless entity allows the same work with greater symmetry.
We seem to be discussing these six flavors of Infiinity
notes on symbol choices
projective infinity is pointlike yet approached from both orientations along a "circle" the choice of symbol
⧞
is of a smbol for infinity where orientation mirrorsThe symbol used for ComplexInfinity resembles they way ComplexInfinity often is drawn. . . . . . . . . . . . ⧝
. . . . . . . . . . .
The symbol for NotANumber ( ꝋ ) is of the form assigned to symbolize the empty set ( ∅ ). Also, it may be read like a sign saying "not even zero".
It is good practice to have keyboard-easy names for exported unicode symbolics. (exports are separated conceptually, for ease of presentation)
one thought