cis

Compute exp(im*x), where im is the imaginary unit, return in radians.

Base.cisFunction
cis(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
source

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 julia
  • cis(::BigFloat): by MPFR

Version History

Introduced in Julia v1.0 (2018)