QuantEcon v0.18.0
New features
DiscreteDP:num_sa_pairsand the convertersto_sa_pair_formandto_product_form, synchronized from QuantEcon.py.random_stochastic_matrixandrandom_markov_chainnow acceptsparse=Val(true)to build the matrix directly as aSparseMatrixCSC.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.Qis now a lazyTransposeview of transposed internal storage; shape, values, indexing, and arithmetic are unchanged, but code depending on its concreteSparseMatrixCSCtype 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: