sin
Compute the sine of x expressed in radians.
Base.sin — Function
sin(x::T) where {T <: Number} -> float(T)Compute sine of x, where x is in radians.
Throw a DomainError if isinf(x), return a T(NaN) if isnan(x).
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.5imsin(A::AbstractMatrix)Compute the matrix sine of a square matrix A.
If A is symmetric or Hermitian, its eigendecomposition (eigen) is used to compute the sine. Otherwise, the sine is determined by calling exp.
Examples
julia> sin(fill(1.0, (2,2)))
2×2 Matrix{Float64}:
0.454649 0.454649
0.454649 0.454649Methods
julia> methods(sin, (Any,), [Base, Base.Math, Base.MathConstants, Base.MPFR])# 8 methods for generic function "sin" from Base: [1] sin(a::ComplexF16) @ math.jl:1527 [2] sin(::Missing) @ math.jl:1548 [3] sin(x::BigFloat) @ mpfr.jl:946 [4] sin(a::Float16) @ math.jl:1526 [5] sin(::Irrational{:π}) @ mathconstants.jl:146 [6] sin(z::Complex{T}) where T @ complex.jl:894 [7] sin(x::T) where T<:Union{Float32, Float64} @ special/trig.jl:29 [8] sin(x::Real) @ math.jl:1543
Examples
julia> using UnicodePlotsjulia> 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-16big float, sin(pi/6) == sin(30°) == 1/2:
julia> sin(pi/6)
0.49999999999999994
julia> sin(pi/big"6")
0.4999999999999999999999999999999999999999999999999999999999999999999999999999957special 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.0implot real part
julia> using UnicodePlotsjulia> 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
sinpito computesin(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(D::Diagonal) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/diagonal.jl:879 [2] sin(J::UniformScaling) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/uniformscaling.jl:176 [3] sin(A::Hermitian{var"#s4811", S} where {var"#s4811"<:Complex, S<:(AbstractMatrix{<:var"#s4811"})}) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/symmetric.jl:898 [4] sin(A::Union{Hermitian{T, S} where S, SymTridiagonal{T, V} where V<:AbstractVector{T}, Symmetric{T, S} where S} where T<:Real) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/symmetric.jl:894 [5] sin(A::AbstractMatrix{<:Complex}) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/dense.jl:1165 [6] sin(A::AbstractMatrix{<:Real}) @ /opt/hostedtoolcache/julia/1.12.2/x64/share/julia/stdlib/v1.12/LinearAlgebra/src/dense.jl:1156
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])
falseTech Notes
sin(::Number): by pure juliasin(::BigFloat): by MPFR
Version History
Introduced in Julia v1.0 (2018)