pymc.ode.DifferentialEquation.make_thunk#
- DifferentialEquation.make_thunk(node, storage_map, compute_map, no_recycling, impl=None)#
创建一个 thunk。
此函数必须返回一个 thunk,即一个封装了要在节点参数上执行的计算的零参数函数。
- 参数:
- 节点
之前由
Op.make_node()
返回的内容。- storage_map
一个将`Variable`映射到单元素列表的字典,其中每个`Variable`的计算值可能被找到。
- compute_map
一个
dict
映射 Variable 到单元素列表,其中可以找到布尔值。该布尔值指示 Variable 的 storage_map 容器是否包含有效值(即True
),或者是否尚未计算(即False
)。- no_recycling
禁止重用先前调用分配的内存的 变量 列表。
- impl
str
创建的节点类型的描述(例如
"c"
,"py"
等)
注释
如果thunk在每次调用时都查询 storage_map ,那么它可以安全地忽略 no_recycling 参数,因为 no_recycling 列表中的元素在 storage_map 中的值将是
None
。如果thunk可能缓存返回值(如 CLinker 所做的那样),那么它不能为 no_recycling 列表中的变量这样做。Op.prepare_node()
总是会被调用。如果它尝试'c'
并且失败,那么它会尝试'py'
,并且Op.prepare_node()
将被调用两次。