|
| 1 | +function _precompile_() |
| 2 | + ccall(:jl_generating_output, Cint, ()) == 1 || return nothing |
| 3 | + normedtypes = (N0f8, N0f16) # precompiled Normed types |
| 4 | + realtypes = (Float16, Float32, Float64, Int) # types for mixed Normed/Real operations |
| 5 | + for T in normedtypes |
| 6 | + for f in (+, -, abs, eps, rand) # unary operations |
| 7 | + @assert precompile(Tuple{typeof(f),T}) |
| 8 | + end |
| 9 | + @assert precompile(Tuple{typeof(rand),T,Tuple{Int}}) |
| 10 | + @assert precompile(Tuple{typeof(rand),T,Tuple{Int,Int}}) |
| 11 | + for f in (trunc, floor, ceil, round) # rounding operations |
| 12 | + @assert precompile(Tuple{typeof(f),T}) |
| 13 | + @assert precompile(Tuple{typeof(f),Type{Int},T}) |
| 14 | + end |
| 15 | + for f in (+, -, *, /, <, <=, ==) # binary operations |
| 16 | + @assert precompile(Tuple{typeof(f),T,T}) |
| 17 | + for S in realtypes |
| 18 | + @assert precompile(Tuple{typeof(f),T,S}) |
| 19 | + @assert precompile(Tuple{typeof(f),S,T}) |
| 20 | + end |
| 21 | + end |
| 22 | + # conversions |
| 23 | + for S in realtypes |
| 24 | + @assert precompile(Tuple{Type{T},S}) |
| 25 | + @assert precompile(Tuple{Type{S},T}) |
| 26 | + @assert precompile(Tuple{typeof(convert),Type{T},S}) |
| 27 | + @assert precompile(Tuple{typeof(convert),Type{S},T}) |
| 28 | + end |
| 29 | + end |
| 30 | +end |
0 commit comments