Julia:在微分方程系统中,什么时候输入true或false



我从DiffEqFinancial.jl的源代码中获得了正确设置自己系统的灵感。我不理解以下代码片段中truefalse的用途:

sde_f = SDEFunction{true}(f,g)
SDEProblem{false}(f,g,u0,tspan;kwargs...)

那么{true}{false}在这种情况下会做什么呢?

我想知道我是否也应该在自己的用户代码中使用它。我隐约知道一句格言:;严格类型的类型,松散类型的函数;所以我想知道为什么在这里打字。

在发布我的问题几个小时后,我找到了作者Chris Rackauckas自己的答案。报价:

如果您正在创建数千个非常小的ODEProblems,并且希望避免动态检查,那么你应该这样做ODEProblem{false}(…(或ODEProblem{true}(..(,即直接声明无论是原位还是错位形式。通常这不是这是一笔巨大的交易,所以在文档中很少提及,但它就在那里,因为在某些情况下这会有所帮助。

来源:Chris Rackauckas

最新更新