Releases: ConnorStoneAstro/caskade
v0.14.0
What's Changed
- change how values get updated by modules by @ConnorStoneAstro in #67
Breaking changes
Module.build_params_arrayis now replaced withModule.get_valueswith extra functionality to get static values and other attributes besides the values (if possible)Module.fill_dynamic_paramsis now replaced withModule.set_valueswith extra functionality to set static values and other attributes besides the values (if possible)
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- allow static param to have None value by @ConnorStoneAstro in #65
Breaking changes
the functions dynamic_value, static_value, and pointer_func no longer exist. Instead it is now possible to pass a value when calling to_dynamic(val) or to_static(val). For completeness to_pointer(val) now exists where val should be None, a Param, or a callable.
Calling param.to_static(None) will set the param to static and leave the value as None (presumably to be filled later). This will still crash if you try to use it in a simulation, but gives the user some freedom to define the workflow of how the value gets filled.
Full Changelog: v0.12.1...v0.13.0
v0.12.1
- Minor bug fix in param
is_validchecking the right value @ConnorStoneAstro
Full Changelog: v0.12.0...v0.12.1
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
v0.11.0
What's Changed
- Reviewcomments related to JOSS review by @ConnorStoneAstro in #59
- Add active state cache decorator by @ConnorStoneAstro in #61
Full Changelog: v0.10.5...v0.11.0
v0.10.5
What's Changed
- add description parameter for all node objects by @ConnorStoneAstro in #58
Full Changelog: v0.10.4...v0.10.5
v0.10.4
What's Changed
- fix node str bug by @ConnorStoneAstro in #57
- use log scale for single valid by @ConnorStoneAstro in #56
Full Changelog: v0.10.3...v0.10.4
v0.10.3
What's Changed
- More careful valid context handling by @ConnorStoneAstro in #53
- Example model building with caskade by @ConnorStoneAstro in #52
Full Changelog: v0.10.2...v0.10.3
v0.10.2
What's Changed
- feat, make dtype and device sticky by @ConnorStoneAstro in #51
- Ensure valid is applied everywhere when in context by @ConnorStoneAstro in #50
Full Changelog: v0.10.1...v0.10.2
v0.10.1
What's Changed
- feat: boldly allow unfilled params by @ConnorStoneAstro in #49
This is not a breaking change, but it allows users to have incompletely filled params and still use a simulator. If it encounters a param it needs to fill, but has no value an error will be thrown.
Full Changelog: v0.10.0...v0.10.1