小编jul*_*uls的帖子

为什么这个预编译示例在 Julia 中不起作用

我目前正在尝试在 Julia 中对自定义包使用预编译。主要目标是预编译利用 StaticVectors 的函数。一般来说,我想使用抽象 Real 类型作为参数,然后预编译 2D 和 3D 向量。然而,预编译对于 Real 和 AbstractFloat 等抽象类型失败,而不是专门的 Float64,我很难理解为什么。

这是一个最小的工作示例,可以更好地展示问题和我所尝试的内容:

module MWE
using StaticArrays: SVector

function f(v::SVector{D, Real}, s::Real)::SVector{D, Real} where {D}
    s*v
end

println(
    "precomp for (SVector{3, Real}, Real   ,) ", precompile(f, (SVector{3, Real}, Real,))    ? " succeeded" : " failed", "\n",
    "precomp for (SVector{3, Real}, Float64,) ", precompile(f, (SVector{3, Real}, Float64,)) ? " succeeded" : " failed", "\n"
    )
end

#= REPL output after generating the package and adding StaticVectors to …
Run Code Online (Sandbox Code Playgroud)

julia

3
推荐指数
1
解决办法
111
查看次数

标签 统计

julia ×1