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 到单元素列表,其中可以找到布尔值。该布尔值指示 Variablestorage_map 容器是否包含有效值(即 True),或者是否尚未计算(即 False)。

no_recycling

禁止重用先前调用分配的内存的 变量 列表。

implstr

创建的节点类型的描述(例如 "c""py" 等)

注释

如果thunk在每次调用时都查询 storage_map ,那么它可以安全地忽略 no_recycling 参数,因为 no_recycling 列表中的元素在 storage_map 中的值将是 None 。如果thunk可能缓存返回值(如 CLinker 所做的那样),那么它不能为 no_recycling 列表中的变量这样做。

Op.prepare_node() 总是会被调用。如果它尝试 'c' 并且失败,那么它会尝试 'py',并且 Op.prepare_node() 将被调用两次。