cis
Compute exp(im*x)
, where im
is the imaginary unit, return in radians.
Base.cis
— Functioncis(x)
More efficient method for exp(im*x)
by using Euler's formula: $\cos(x) + i \sin(x) = \exp(i x)$.
See also cispi
, sincos
, exp
, angle
.
Examples
julia> cis(π) ≈ -1
true
Methods
julia> methods(cis, (Any,), [Base, Base.Math, Base.MathConstants, Base.MPFR])
# 2 methods for generic function "cis" from Base: [1] cis(z::Complex) @ complex.jl:589 [2] cis(theta::Real) @ complex.jl:584
Examples
Real Numbers
julia> cis(0)
1.0 + 0.0im
julia> cis(-0.0)
1.0 - 0.0im
julia> cis(pi)
-1.0 + 0.0im
Complex
julia> cis(0+0im)
1.0 + 0.0im
Tips
See Also
Extended Inputs
Matrix
With Array
like input:
julia> methods(cis, (Any,), [LinearAlgebra])
# 4 methods for generic function "cis" from Base: [1] cis(D::Diagonal) @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.5/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/diagonal.jl:802 [2] cis(A::Union{Hermitian{T, S} where {T<:Real, S}, Hermitian{Complex{T}, S} where {T<:Real, S}, SymTridiagonal{var"#s5029", V} where {var"#s5029"<:Real, V<:AbstractVector{var"#s5029"}}, Symmetric{T, S} where {T<:Real, S}}) @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.5/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetric.jl:726 [3] cis(A::AbstractMatrix{<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8, Complex{<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}}, Rational{<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}}}}) @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.5/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:644 [4] cis(A::AbstractMatrix) @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.5/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:643
Tech Notes
cis(::Real)
: by pure juliacis(::BigFloat)
: by MPFR
Version History
Introduced in Julia v1.0 (2018)