Skip to content

v0.18.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Jul 03:02
e87ce96

QuantEcon v0.18.0

Diff since v0.17.1

New features

  • DiscreteDP: num_sa_pairs and the converters to_sa_pair_form and to_product_form, synchronized from QuantEcon.py.
  • random_stochastic_matrix and random_markov_chain now accept sparse=Val(true) to build the matrix directly as a SparseMatrixCSC.
  • lcp_lemke! now accepts the full solver workspace (d, col_buf, argmins), making repeated solves allocation-free.

Breaking changes

  • For the sparse state-action-pairs formulation, ddp.Q is now a lazy Transpose view of transposed internal storage; shape, values, indexing, and arithmetic are unchanged, but code depending on its concrete SparseMatrixCSC type needs adjustment.

Merged pull requests:

  • Bump julia-actions/cache from 2 to 3 (#378) (@dependabot[bot])
  • Bump codecov/codecov-action from 5 to 6 (#379) (@dependabot[bot])
  • Bump julia-actions/setup-julia from 2 to 3 (#380) (@dependabot[bot])
  • Bump codecov/codecov-action from 6 to 7 (#381) (@dependabot[bot])
  • Bump actions/checkout from 6 to 7 (#382) (@dependabot[bot])
  • Add benchmark suite, with benchmarks for DiscreteDP (#383) (@oyamad)
  • Fix testset fixture leakage in test_ddp.jl; add DDPsa test for RQ_sigma and known-bug markers (#384) (@oyamad)
  • FIX: Fix known bugs in DiscreteDP (markov/ddp.jl) (#385) (@oyamad)
  • PERF: Optimize DiscreteDP kernels and solver loops (#386) (@oyamad)
  • DOC: Update agent instructions; add AGENTS.md and CLAUDE.md pointers (#387) (@oyamad)
  • PERF: Store sparse sa-formulation Q transposed internally (#388) (@oyamad)
  • ENH: Store s_indices; add num_sa_pairs, to_sa_pair_form, to_product_form (#389) (@oyamad)
  • Add benchmarks for MarkovChain (markov/mc_tools.jl) (#391) (@oyamad)
  • FIX: Fix known bugs in MarkovChain (markov/mc_tools.jl) (#392) (@oyamad)
  • TEST: Add regression test for issue #117 (input mutation in DiscreteDP) (#393) (@oyamad)
  • ENH: Support sparse output in random_stochastic_matrix, random_markov_chain (#394) (@oyamad)
  • PERF: Speed up MarkovChain simulation; add dedicated sparse path (#395) (@oyamad)
  • PERF: Use a plain loop in _pivoting! for small tableaus (#397) (@oyamad)
  • PERF: Make lcp_lemke! allocation-free with caller-supplied workspace (#399) (@oyamad)
  • MAINT: Record pitfalls from the #397/#399 work in agent instructions (#400) (@oyamad)

Closed issues:

  • random_stochastic_matrix and random_markov_chain support sparse output (#102)
  • DiscreteDP: Should not modify s_indices and a_indices when sorting (#117)
  • DiscreteDP Performance (#118)
  • Efficient memory ordering for DiscreteDP (#124)