Skip to content

Releases: QuantEcon/ContinuousDPs.jl

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 12:54
008060b

ContinuousDPs v0.3.0

Diff since v0.2.1

New features

  • Solver types CollocationSolver(basis; algorithm=PFI/VFI, inner_solver, tol, max_iter) and LQASolver(basis; point): the solution methodology is specified separately from the model and passed to solve as solve(cdp, solver) (#109)

Breaking changes

  • ContinuousDP holds the model primitives only: the basis-endowed constructors, the basis keyword of the copy constructor, and solve(cdp, PFI/VFI/LQA; ...) are removed; the removed forms raise errors stating the replacement (construct without basis and pass CollocationSolver(basis) or LQASolver(basis; point) to solve) (#109, #114)
  • ndims(::ContinuousDP) is removed; the state dimension is a property of the solution: use ndims(res) (#114)

Merged pull requests:

  • ENH: Add CollocationSolver/LQASolver; make ContinuousDP primitives-only (#109) (@oyamad)
  • DOC: Present ContinuousDP keywords in the conceptual order (#112) (@oyamad)
  • ENH, FIX: Add ValueFunction/PolicyFunction; clamp the simulated policy into the action bounds (#113) (@oyamad)
  • MAINT: Remove the v0.2 API; thread interp explicitly through the internals (#114) (@oyamad)
  • MAINT: Split cdp.jl: extract inner_solvers.jl and policy_system.jl (#115) (@oyamad)
  • ENH, DOC: Validate the weights length at construction; document g-totality for discrete actions (#116) (@oyamad)

Closed issues:

  • Interp (#8)

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 15 Jul 06:26
bbd2b26

ContinuousDPs v0.2.1

Diff since v0.2.0

Merged pull requests:

  • CompatHelper: bump compat for QuantEcon to 0.18, (keep existing compat) (#108) (@github-actions[bot])

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 01:58
5077574

ContinuousDPs v0.2.0

Diff since v0.1.0

New features

  • Major performance improvements to solve (PFI/VFI): non-allocating point evaluation of interpolants, sparse policy-evaluation assembly, and in-place evaluation buffers (#93, #95, #100, #101) — roughly an order of magnitude faster with orders-of-magnitude fewer allocations.
  • New default inner solver for the maximization over actions, based on the first-order condition with automatic Brent fallback; select with solve(...; inner_solver=:foc) (default) or :brent (#99, #105).
  • Discrete action spaces: DiscreteActions(vals), with optimal actions exposed as values (res.X) and indices (res.X_ind) (#104).
  • Multi-dimensional continuous action spaces: ContinuousActions{M}(x_lb, x_ub), with policies stored as n x M matrices (#105).
  • PkgBenchmark-compatible benchmark suite in benchmark/ (#92).

Bug fixes

  • Diverged iterations are no longer reported as converged (#96).

Breaking changes

  • The x_lb and x_ub fields of ContinuousDP are replaced by a single actions field holding an ActionSpace; code accessing cdp.x_lb/cdp.x_ub should use cdp.actions.x_lb/cdp.actions.x_ub. All constructor signatures are unchanged.

Merged pull requests:

  • DOC: Update README.md and docs/src/index.md (#86) (@oyamad)
  • Bump julia-actions/setup-julia from 2 to 3 (#87) (@dependabot[bot])
  • Bump codecov/codecov-action from 6 to 7 (#90) (@dependabot[bot])
  • Bump actions/checkout from 6 to 7 (#91) (@dependabot[bot])
  • ENH: Add benchmark suite (#92) (@oyamad)
  • PERF: Add non-allocating point-evaluation kernel (#93) (@oyamad)
  • ENH: Add CDPWorkspace consolidating solver buffers (#95) (@oyamad)
  • BUG: Make _max_abs_diff NaN-safe to prevent false convergence (#96) (@oyamad)
  • TST: Keep next states within the interpolation domain in test and benchmark models (#97) (@oyamad)
  • ENH: Add derivative point evaluation via coefficient differentiation (#98) (@oyamad)
  • PERF: Solve the inner maximization via the first-order condition (#99) (@oyamad)
  • PERF: Assemble the policy-evaluation system with point kernels, sparse when possible (#100) (@oyamad)
  • PERF: Reuse result buffers and kernel-based residuals in evaluate! (#101) (@oyamad)
  • MAINT: Update agent instructions and add AGENTS.md/CLAUDE.md pointers (#103) (@oyamad)
  • ENH: Add action-space types and discrete actions (#104) (@oyamad)
  • ENH: Add multi-dimensional continuous actions (#105) (@oyamad)
  • DOC: Document action spaces in README, docs index, and example notebook (#106) (@oyamad)

Closed issues:

  • Allow discrete actions (#5)
  • set_eval_nodes! (#10)
  • CI and registration (#28)
  • Optimize _s_wise_max! (#73)
  • Reduce allocations in evaluate! and set_eval_nodes! (#74)
  • Reduce allocations in evaluate_policy! (#75)
  • Allow multidimensional actions (#88)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Apr 09:50
d9456c9

ContinuousDPs v0.1.0

Merged pull requests:

  • First version (#1) (@oyamad)
  • Fix types (#9) (@oyamad)
  • Add test (#12) (@oyamad)
  • Change type parameter (#13) (@oyamad)
  • Change set_eval_nodes! to accept s_nodes_coord (#14) (@oyamad)
  • Extend simulate to multidimensional states (#15) (@oyamad)
  • ENH: performance boost by vectorizing call to funeval (#18) (@sglyon)
  • Update for Julia 1.0 (#20) (@oyamad)
  • add docs for Methods and Solve methods (#21) (@tokuma09)
  • COMPAT: warn -> @warn (#22) (@oyamad)
  • FIX: Branch for max_iter <= 0 (#23) (@oyamad)
  • Update for julia 1.4: add {Project,Manifest}.toml, rm require (#27) (@greimel)
  • Setup CI (#29) (@oyamad)
  • Update Project.toml (#32) (@oyamad)
  • [FEAT] Initial guess for the value function (#33) (@QBatista)
  • Setup Github Actions for testing (#35) (@QBatista)
  • [FEAT] Add LQ approximation functionality (#36) (@QBatista)
  • Separate nightly as ci-nightly.yml (#37) (@oyamad)
  • FEAT: Add LQA solution method (#38) (@QBatista)
  • CompatHelper: add new compat entry for "Optim" at version "1" (#39) (@github-actions[bot])
  • CompatHelper: add new compat entry for "BasisMatrices" at version "0.7" (#40) (@github-actions[bot])
  • CompatHelper: add new compat entry for "QuantEcon" at version "0.16" (#41) (@github-actions[bot])
  • CompatHelper: add new compat entry for "FiniteDiff" at version "2" (#42) (@github-actions[bot])
  • Update CompatHelper.yml (#43) (@oyamad)
  • CI: Update actions/cache (#44) (@oyamad)
  • Setup Documenter.jl with GitHub Actions for automated documentation (#45) (@Copilot)
  • Add comprehensive GitHub Copilot instructions for ContinuousDPs.jl (#47) (@Copilot)
  • Fix documentation badge URL to point to development documentation (#49) (@Copilot)
  • Update GitHub Action workflows to latest versions and fix codecov authentication (#51) (@Copilot)
  • MAINT: Migrate default branch references from master to main (#53) (@Copilot)
  • CompatHelper: bump compat for QuantEcon to 0.17, (keep existing compat) (#54) (@github-actions[bot])
  • Bump actions/cache from 4 to 5 (#55) (@dependabot[bot])
  • Bump julia-actions/cache from 1 to 2 (#56) (@dependabot[bot])
  • Bump actions/checkout from 4 to 6 (#57) (@dependabot[bot])
  • Remove arch from CI workflow matrices (#59) (@Copilot)
  • CI: Fix key name for Codecov action in CI workflow (#60) (@oyamad)
  • CompatHelper: bump compat for Optim to 2, (keep existing compat) (#61) (@github-actions[bot])
  • TEST: Add Santos (1999) Section 7.3 stochastic growth benchmark tests (#62) (@mnshkw)
  • TEST: Fix existing tests (#64) (@mnshkw)
  • Bump julia-actions/cache from 2 to 3 (#65) (@dependabot[bot])
  • FIX: Re-design type parameterization (#66) (@oyamad)
  • TEST: Improve test coverage (#67) (@oyamad)
  • RFC: Reduce intermediate memory allocation (#68) (@oyamad)
  • DOC: Revise docstrings in cdp.jl and lq_approx.jl (#69) (@oyamad)
  • MAINT: Add solve, VFI, PFI to export (#70) (@oyamad)
  • MAINT: Add simulate! and remove evaluate_policy! in export (#71) (@oyamad)
  • MAINT: Remove unused imports from QuantEcon (#72) (@oyamad)
  • DOC: Revise api.md (#76) (@oyamad)
  • MAINT: Update .github/copilot-instructions.md (#77) (@oyamad)
  • CI: Update ci.yml and ci-nightly.yml (#78) (@oyamad)
  • RFC: Use maximize in place of optimize (#79) (@oyamad)
  • Revise cdp_ex_optgrowth_jl (#80) (@oyamad)
  • DOC: Revise README and sync documentation home with README (#81) (@mnshkw)
  • Bump codecov/codecov-action from 5 to 6 (#82) (@dependabot[bot])
  • CI: Create TagBot.yml (#83) (@oyamad)
  • DOC: Revise README (#84) (@oyamad)

Closed issues:

  • Add tests (#2)
  • Add documentation (#3)
  • Extend simulate to multidimensional states (#4)
  • Add option to supply initial value function (#11)
  • Interp with Range (#19)
  • Setup Documenter (#30)
  • Setup GitHub Actions for testing (#34)
  • ✨ Set up Copilot instructions (#46)
  • Add doc badge to README.md (#48)
  • Update ci.yml and ci-nightly.yml workflows (#50)
  • MAINT: Migrate default branch references from master to main (#52)
  • CI: Remove arch from CI matrices (#58)