sin

Compute sine of parameter in radians.

Base.sinMethod
sin(x)

Compute sine of x, where x is in radians.

See also sind, sinpi, sincos, cis, asin.

Examples

julia> round.(sin.(range(0, 2pi, length=9)'), digits=3)
1×9 Matrix{Float64}:
 0.0  0.707  1.0  0.707  0.0  -0.707  -1.0  -0.707  -0.0

julia> sind(45)
0.7071067811865476

julia> sinpi(1/4)
0.7071067811865475

julia> round.(sincos(pi/6), digits=3)
(0.5, 0.866)

julia> round(cis(pi/6), digits=3)
0.866 + 0.5im

julia> round(exp(im*pi/6), digits=3)
0.866 + 0.5im
source

Methods

julia> methods(sin, (Any,), [Base, Base.Math, Base.MathConstants, Base.MPFR])# 8 methods for generic function "sin" from Base:
 [1] sin(x::BigFloat)
     @ Base.MPFR mpfr.jl:860
 [2] sin(a::Float16)
     @ Base.Math math.jl:1511
 [3] sin(::Irrational{:π})
     @ Base.MathConstants mathconstants.jl:146
 [4] sin(a::ComplexF16)
     @ Base.Math math.jl:1512
 [5] sin(::Missing)
     @ Base.Math math.jl:1533
 [6] sin(x::T) where T<:Union{Float32, Float64}
     @ Base.Math special/trig.jl:29
 [7] sin(x::Real)
     @ Base.Math math.jl:1528
 [8] sin(z::Complex{T}) where T
     @ complex.jl:894

Examples

julia> using UnicodePlots
julia> lineplot(-π, π, sin) ┌────────────────────────────────────────┐ 1 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡠⠚⠉⠉⠲⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ sin(x) ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⡜⠁⠀⠀⠀⠀⠙⢄⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀ f(x) ⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⢤⡧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤ ⠀⠀⠀⠀⠸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠃⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠑⣄⠀⠀⠀⠀⢀⡜⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -1 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠦⣀⣀⡤⠊⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ └────────────────────────────────────────┘-4⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀4⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Real Numbers

julia> sin(0)
0.0

julia> sin(0.5*pi)
1.0

julia> sin(pi)
0.0

julia> pi
π = 3.1415926535897...

julia> sin.([0 0.5*pi pi 1.5*pi 2*pi])
1×5 Matrix{Float64}:
 0.0  1.0  1.22465e-16  -1.0  -2.44929e-16
dot-style function call

f.(args) means eval args one by one.

big float, sin(pi/6) == sin(30°) == 1/2:

julia> sin(pi/6)
0.49999999999999994

julia> sin(pi/big"6")
0.4999999999999999999999999999999999999999999999999999999999999999999999999999957

special float NaN, Inf:

julia> sin(NaN)
NaN

julia> sin(Inf)
ERROR: DomainError with Inf:
sin(x) is only defined for finite x.
[...]

Complex

julia> sin(0+0im)
0.0 + 0.0im

plot real part

julia> using UnicodePlots
julia> sin_real(x, y) = real(sin(x + y*im))sin_real (generic function with 1 method)
julia> surfaceplot(-2pi:0.01:2pi, -pi:0.01:pi, sin_real) ┌────────────────────────────────────────┐ 10 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ┌──┐ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⡄⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣧⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣤⠀⠀⣿⣇⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣆⠀⠀⠀⢰⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣧⣀⣿⣿⣿⣿⣿⣿⣿⠈⠉⠛⠃⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⢠⣤⣀⡀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⢻⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠹⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⢹⣿⣿⡟⠀⠀⠈⠛⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⢻⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⠀⠀⠀⠀⠈⢿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⢀⡠⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ▄▄ ⠊⠁⠀⠀⠀⠀⠉⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ └──┘ └────────────────────────────────────────┘ -10

Tips

  • Call sinpi to compute sin(x*pi)

See Also

sinpi, sincos, sind, sinh, asin

Extended Inputs

Matrix

With Array like input:

julia> methods(sin, (Any,), [LinearAlgebra])# 6 methods for generic function "sin" from Base:
 [1] sin(J::UniformScaling)
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/uniformscaling.jl:173
 [2] sin(D::Diagonal)
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/diagonal.jl:802
 [3] sin(A::Hermitian{var"#s5027", S} where {var"#s5027"<:Complex, S<:(AbstractMatrix{<:var"#s5027"})})
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetric.jl:714
 [4] sin(A::Union{Hermitian{var"#s5028", S}, Symmetric{var"#s5028", S}} where {var"#s5028"<:Real, S})
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetric.jl:710
 [5] sin(A::AbstractMatrix{<:Complex})
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:1055
 [6] sin(A::AbstractMatrix{<:Real})
     @ LinearAlgebra /opt/hostedtoolcache/julia/1.11.2/x64/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:1048
Missing docstring.

Missing docstring for sin(A::AbstractMatrix). Check Documenter's build log for details.

julia> sin([1 2; 3 4])
2×2 Matrix{Float64}:
 -0.465581  -0.148424
 -0.222637  -0.688218

julia> sin.([1 2; 3 4])
2×2 Matrix{Float64}:
 0.841471   0.909297
 0.14112   -0.756802

julia> sin([1 2; 3 4]) == sin.([1 2; 3 4])
false

Tech Notes

  • sin(::Number): by pure julia
  • sin(::BigFloat): by MPFR

Version History

Introduced in 2018 (1.0)