Releases: nsiccha/StanBlocks.jl
Releases · nsiccha/StanBlocks.jl
v0.1.5
StanBlocks v0.1.5
Merged pull requests:
- improve README.md (#22) (@nsiccha)
- Fix issues 9 10 17 18 19 (#24) (@nsiccha)
- allow replacement of return value (#25) (@nsiccha)
- fix #26 (#27) (@nsiccha)
- Fix Can't "splice" parameters into a model which have not been define… (#28) (@nsiccha)
- fix #29 (#30) (@nsiccha)
- Add ordered and positive_ordered types (#32) (@nsiccha)
- Work on #10 (#33) (@nsiccha)
- Forgot *_infinity() rv (#34) (@nsiccha)
- Bring docs up to date (#36) (@nsiccha)
- Add golf and isba case studies (#37) (@nsiccha)
- add logit(...) tracetypes (#39) (@nsiccha)
- Start defining built-in binary vectorized function tracetypes (#46) (@nsiccha)
- Fix #45 (#47) (@nsiccha)
- update docs (#48) (@nsiccha)
- Bring dogs branch up to speed (#49) (@nsiccha)
- Update docs (#51) (@nsiccha)
- Simply Markdown Display (#54) (@nsiccha)
- advance compat (#55) (@nsiccha)
Closed issues:
- Can't infer shape of parameter from an
intargument. (#9) - Can't infer shapes from unnamed arguments for UDFs (#11)
- Can't post-hoc replace return value (#12)
- Can't "splice" parameters into a model which have not been defined in the model yet (#15)
forloop bounds sometimes transpile weirdly (#17)_lcdftype methods don't print with Stan's|-syntax (#18)- Submodel name mangling fails for some quantities (#19)
- Tests fail with
tracetype(::StanBlocks.stan.CanonicalExpr{typeof(==)) [...]is ambiguous (#26) forward!(x::ReturnExpr; info)is too verbose (#29)maybe_lazy_sizehas an error (#45)
v0.1.4
StanBlocks v0.1.4
- Expose
stan_model - Add some documentation
- Add
simple_reduce_sum - More tests
- Some quality of life improvements
Merged pull requests:
v0.1.3
StanBlocks v0.1.3
StanBlocks.jl (Stan backend)
Brings Julia syntax to Stan models by implementing a (limited) Julia to Stan transpilation with many caveats.
See test/slic.jl for implementations of a few simple posteriordb models
and see src/slic_stan/builtin.jl for a list of built-in functions and examples of user defined functions.
Current features include
- activity analysis (automatically determines what is
data,transformed_data,parameters,transformed parameters,model, orgenerated quantities), - automatically inferred types, shapes and constraints - including for user defined functions (including the function arguments, function body, and function return type),
- automatic posterior pointwise likelihood and predictive generation,
- (variadic) user defined functions,
- higher order (user defined) functions (such as
map,broadcasted,sumand more), - sub models,
- post-hoc model adjustment,
- named tuples,
- (approximate) automatic code formatting à la Blue,
- and more.
Upcoming features include, in order of priority and estimated arrival,
- custom types (for method dispatch),
- closures via Julia's
Do-Block Syntax(to make within chain parallelization viareduce_sumless painful), - a much better user experience,
- more and better tests,
- inlining (to reduce potential runtime overhead),
- array comprehensions,
- a more complete (and more correct) coverage of built-in Stan functions,
- better name resolution (currently user defined functions or sub models have to be defined in
Main), - and more.
Almost anything that's possible in Julia should be possible to be transpiled to Stan.
Of course, unless Stan is much faster than Julia (+Mooncake or Enzyme) for the model in question,
just sticking to Julia comes with many advantages.
Features which are NOT planned:
- (automatically) transpiling Julia functions which have not been defined via
@deffun.
Merged pull requests:
v0.1.2
StanBlocks v0.1.2
- Add normal_lpdf overload for scalar scale.
- Add DifferentiationInterface extension.