ComplexValues
This package provides two additional types for representing complex values in Julia: a Polar type for representation in polar coordinates, and a Spherical type for representation on the Riemann sphere.
Prior to version 0.3, this package also provided some facility for making plots on the Riemann sphere. That capability (plus much more) now lies in the ComplexPlots package.
Usage notes
- Either of the two new types can be converted to a built-in complex floating number via
Complex. - Promotion of any number along with a
Sphericalvalue results inSpherical. - Promotion of any built-in number type with a
Polarresults inPolar. - Standard unary and binary functions in
Baseare extended to work with the new types. - The type
AnyComplex{T<:AbstractFloat}is defined (but not exported) as the union of the built-inComplex{T}together withPolar{T}andSpherical{T}. - The
real_typefunction is defined to return the real type of aComplex,PolarorSphericalvalue.
Examples
julia> using ComplexValuesjulia> Polar(1im)Complex Polar: (modulus = 1.0, angle = 0.5⋅π)julia> Polar.(exp.(1im*LinRange(0,2π,6)))6-element Vector{Polar{Float64}}: Complex Polar: (modulus = 1.0, angle = 0.0⋅π) Complex Polar: (modulus = 1.0, angle = 0.4⋅π) Complex Polar: (modulus = 1.0, angle = 0.8⋅π) Complex Polar: (modulus = 1.0, angle = -0.8⋅π) Complex Polar: (modulus = 1.0, angle = -0.4⋅π) Complex Polar: (modulus = 1.0, angle = -1.4135798584282297e-16⋅π)julia> Spherical(Inf)Complex Spherical: (latitude = 0.5⋅π, angle = 0.0⋅π)
A Spherical value can be converted to a 3-vector of coordinates on the unit sphere $S^2$.
julia> Spherical(0)Complex Spherical: (latitude = -0.5⋅π, angle = 0.0⋅π)julia> S2coord(ans)3-element Vector{Float64}: 6.123233995736766e-17 0.0 -1.0