v0.12.0
What's Changed
- major update to value handling by @ConnorStoneAstro in #64
Major interface update includes many small changes:
param.value = Nonenow clears value and sets dynamic, rather than aliasingto_dynamicparam.value = 1.0or some other value no longer forces static, the param will remain static/dynamic as it was before- Printing a simulator will show up to 4 values per param, rather than only showing scalars
Param("name", dynamic_value = value)no longer works, now useParam("name", value = value, dynamic=True)- Params now have explicit
param.batched = Trueto indicate thatparam.shapewill match then end ofparam.value.shape. More generally we will haveparam.shape = (*D)andparam.value.shape = (*B, *D) param.dynamic_value = valueis nowparam.dynamic_value(value)to set value and make it dynamic. Also now haveparam.static_value(value)to set static and provide value. As well asparam.pointer_func(value)to set a function or param pointer
Under the hood, the graph will only update for setting a param value if that means changing the node type (static, dynamic, pointer). This should improve the speed of larger simulators when modifying states (ie set whole simulator to static). The runtime use of the graph has always been fast.
Full Changelog: v0.11.0...v0.12.0