Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
732 commits
Select commit Hold shift + click to select a range
d8c6b15
Comment out unused parameters in NESSAI configuration for clarity
thorek1 Apr 23, 2026
a9b532c
Enhance Dynare comparison: add handling for pruned third-order models…
thorek1 Apr 23, 2026
5acf028
Update Turing dependency version to 0.44 in Project.toml
thorek1 Apr 23, 2026
2f9e0c1
Add Gali benchmark case handling for pruned third-order variance comp…
thorek1 Apr 23, 2026
d10e66d
Refactor Dynare comparison: separate higher-order model handling into…
thorek1 Apr 23, 2026
70f8dc0
Add caching option to first order solution calculation
thorek1 Apr 23, 2026
7dedf1b
Refactor Dynare benchmark calculations: remove NSSS from total time c…
thorek1 Apr 23, 2026
099ebc9
Add total time reporting for second and third-order solves in Dynare …
Apr 23, 2026
c045c16
Fix nested sampling configuration: uncomment poolsize and drawsize pa…
Apr 23, 2026
f86b31f
Remove BenchmarkTools dependency from Project.toml
Apr 23, 2026
2c33a97
Update benchmark comparison to use median of 500 runs instead of 100
Apr 23, 2026
4689e19
update sampler settings
Apr 24, 2026
cbcb509
Add FRBUS model to test cases and update export_model function to con…
Apr 24, 2026
c566595
Copilot/unit root covariance (#287)
thorek1 Apr 24, 2026
df00e0b
Enhance solve_lyapunov_equation to support has_unit_roots parameter a…
thorek1 Apr 25, 2026
754265a
Remove compatibility constraints for LineSearches and Turing in Proje…
thorek1 Apr 25, 2026
329cdb5
Fix generalized Schur factorization to use 'N' instead of 'V' for the…
thorek1 Apr 25, 2026
2f2da25
Refactor quadratic matrix equation handling to use a dynamic algorith…
thorek1 Apr 25, 2026
3a7d2a1
Refactor jacobian calculation to clear solution caches before executi…
thorek1 Apr 25, 2026
6aa96b5
Fix typos and update todo list with completed tasks; enhance clarity …
thorek1 Apr 25, 2026
6e9e35b
Adjust criterium in generalized Schur factorization to improve stabil…
thorek1 Apr 25, 2026
5c9af78
Increase DEFAULT_QME_THRESHOLD to improve performance for larger models
thorek1 Apr 25, 2026
2ee5622
Update QME solver tolerances to enhance convergence criteria for impr…
thorek1 Apr 25, 2026
78e3db0
Fix script path in benchmark workflows for consistent execution
thorek1 Apr 25, 2026
d1b90b6
Enhance Dynare comparison scripts with multi-threading support and be…
Apr 25, 2026
72158c4
Adjust tolerance levels for NAWM model in comparison tests to improve…
thorek1 Apr 26, 2026
14fcf25
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
thorek1 Apr 26, 2026
2e94080
Add dqgmres algorithm support to Lyapunov equation solver and documen…
thorek1 Apr 26, 2026
bdf24ca
Add implementation plan for Hill-Climbing / Co-Area Nested Sampling H…
thorek1 Apr 26, 2026
118db8c
Remove implementation plan and performance run script for hybrid algo…
thorek1 Apr 26, 2026
ff8338f
show tol on error
Apr 26, 2026
f229154
Add method check for calculate_jacobian in benchmark function
Apr 26, 2026
4757c15
works on windows
Apr 26, 2026
aa45a6d
Merge branches 'optim_LFI_alloc' and 'optim_LFI_alloc' of https://git…
Apr 26, 2026
8a05dfd
add MKL for windows
Apr 26, 2026
8f9cc23
move equaiton modification codes to the right script
thorek1 Apr 26, 2026
b8f2ebf
Refactor comparison functions to improve readability and maintainabil…
thorek1 Apr 26, 2026
fbf66b5
Update benchmark comparison output to reflect MacroModelling instead …
thorek1 Apr 26, 2026
48c6672
Add Smets-Wouters models to first and second order test sets; add ver…
thorek1 Apr 26, 2026
7369d30
Enhance documentation for BPTT pullback in rrule; clarify purpose and…
thorek1 Apr 26, 2026
faa56ed
describe eq modif in docs
Apr 26, 2026
a61851f
Adjust unit root tolerance in generalized Schur factorization to impr…
Apr 26, 2026
e11487d
move kron and lu calls to preallocated versions
Apr 27, 2026
2434b02
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 27, 2026
9ce8ede
Refactor LU factorization in inversion filter and conditional forecas…
Apr 27, 2026
2390022
compare caldara resutls as well
thorek1 Apr 27, 2026
be1a0f9
Enhance inference efficiency for Mooncake primitives by implementing …
Apr 27, 2026
31daefd
fix path for windows comparison
Apr 27, 2026
98bd5ef
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 27, 2026
a23c5b3
fix lu calls in rrules
Apr 27, 2026
ea34fb7
Enhance Dynare comparison scripts with metadata handling and robust f…
Apr 27, 2026
67b0db0
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 27, 2026
30be437
Add LU transpose solve functions and enhance higher order workspace m…
Apr 27, 2026
6c3acfa
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 27, 2026
2a12c1a
Add how-to guide for modifying a model after definition
Apr 27, 2026
0d97881
Refactor __init__ function in MooncakeExt.jl to comment out the imple…
Apr 27, 2026
4a11804
Update modify_equations.md to clarify equation processing
thorek1 Apr 27, 2026
3e55150
Enhance Dynare version retrieval in run_all_dynare_windows.ps1 for im…
Apr 27, 2026
e123a21
Refactor argument parsing and enhance environment summary in compare_…
Apr 27, 2026
a536934
Add example invocation to run_thread_sweep_windows.ps1 for clarity
Apr 27, 2026
a943c71
Add release notes detailing compatibility updates and solver enhancem…
thorek1 Apr 28, 2026
8afd4fc
Remove variance decomposition comparisons and related outputs from Dy…
Apr 28, 2026
1f6a1cc
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 28, 2026
f71d4a7
Update solver tolerances for QME in AdTolerances and FirstOrderTolera…
Apr 28, 2026
cd4f574
macos version of thread sweep
thorek1 Apr 28, 2026
27c7d10
Refactor invoke_julia_script to handle extra script arguments more ef…
thorek1 Apr 28, 2026
65dfc3b
Mooncake 0.5.25
thorek1 Apr 29, 2026
d0b6edf
Update tolerance levels and benchmark model sets in comparison scripts
Apr 29, 2026
2131c57
Add speed benchmarks documentation for MacroModelling.jl performance …
Apr 29, 2026
439b3b3
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 29, 2026
f4a6565
Revert QME acceptance_tol from 1e-6 back to 1e-7
Apr 29, 2026
09b7d60
finetune tolerance on qme init guess acceptance
Apr 29, 2026
32f3c45
fix qme tol for finitediff tests
thorek1 Apr 30, 2026
7f977e2
fix type instability issue in rrule
thorek1 Apr 30, 2026
e3576a2
fix naming issue in tests
thorek1 Apr 30, 2026
003eac8
add correlation to get_statistics
Apr 30, 2026
efbc041
test and docs on correlation
Apr 30, 2026
697b1a2
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 30, 2026
f72eb48
fix forwarddiff test failures
Apr 30, 2026
4359077
add todo
Apr 30, 2026
36895d7
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 30, 2026
dab8a38
refactor rrule logic to conditionally apply calculations based on pre…
Apr 30, 2026
4c25a49
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 30, 2026
352c0fd
improve docstrings on eq mod
Apr 30, 2026
99bed9e
enhance documentation to include model modification capabilities and …
Apr 30, 2026
f657b8b
remove _ prefix from names throughout
Apr 30, 2026
726f72a
move macro up in file
Apr 30, 2026
f971149
move solution calcs up
Apr 30, 2026
d52dfce
implement warmup iterations for first order inversion loglikelihood …
Apr 30, 2026
1f3adef
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
Apr 30, 2026
de1bf7e
refactor logabsdets handling in calculate_loglikelihood rrule to prev…
May 1, 2026
9430c2b
fix: correct variable name for BARTELS_STEWART_AVAILABLE in MatrixEqu…
May 1, 2026
d0b52ff
refactor: adjust tolerance levels in functionality tests for improved…
May 1, 2026
a86c3eb
refactor: rename internal functions for clarity in MooncakeExt.jl
May 1, 2026
31b9731
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 1, 2026
dd21d6a
refactor: enhance precision in functionality tests by adding absolute…
May 1, 2026
f6b62fb
fix: improve correlation statistics by filtering non-degenerate model…
May 1, 2026
57975a8
Expand DispatchDoctor coverage to numerical source files
May 1, 2026
ed6c361
test(get_statistics): restrict correlation jacobian to non-degenerate…
May 1, 2026
28f4654
Consolidate DispatchDoctor wraps to single-block-per-file pattern
May 2, 2026
bb5bb58
refactor: enhance correlation handling in get_statistics and rrule fu…
May 2, 2026
3685b2c
feat: add covariance to correlation conversion functions and update g…
thorek1 May 2, 2026
72719f6
DispatchDoctor: wrap includes, drop per-file @stable blocks
May 2, 2026
f5b2fd3
refactor: standardize random seed initialization across test files
thorek1 May 2, 2026
9057e7a
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 2, 2026
00fd5be
relax tols
May 2, 2026
48719b8
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 2, 2026
724bb52
fix typo
May 2, 2026
a55393e
Fix JET CI: incremental analysis to identify timeout source
May 2, 2026
3871e45
fix dispatch doctor failures
May 2, 2026
41e2973
mark functions as unstable: replace_dynamic_symbols and parse_filter_…
May 2, 2026
9602d91
dispatchdoctor warnings for now, then put unstable, then fix it
May 2, 2026
7f5f146
DD errors
May 2, 2026
ae41068
Fix all JET.jl static analysis issues (0 errors)
May 2, 2026
4dda0fd
fix resize error and DD fails
May 3, 2026
c7b1f0c
rm task files
May 3, 2026
ab7373c
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 3, 2026
788b2bc
Refactor JET tests by removing redundant chunks and simplifying stati…
May 3, 2026
281f100
Update Turing dependency version to 0.45
May 3, 2026
36a7892
del agent progress file
May 3, 2026
4a773c3
fix compat
May 3, 2026
51f78cc
Fix BoundsError in sparse matrix construction
May 3, 2026
61bbada
del files
May 3, 2026
6da09c3
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 3, 2026
7cf4b63
Fix get_statistics BoundsError, get_moments AssertionError, and isapp…
May 3, 2026
25a7c99
old JET formulation
May 3, 2026
7b3a913
Remove @stable wrappers around include() calls to fix JET.jl
May 3, 2026
a7cf5de
Replace MCMCChains with FlexiChains in estimation paths
thorek1 May 3, 2026
5f5c1e0
Add @stable default_mode="disable" inside each included file
May 3, 2026
75a67cd
Remove deprecated lessons and todo documentation; validate Pigeons to…
thorek1 May 3, 2026
18373e3
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
thorek1 May 3, 2026
f2524d0
pigeons compat with flexichains issue
thorek1 May 3, 2026
a96d23c
Refactor test_helpers.jl: remove unused Statistics import and update …
thorek1 May 3, 2026
b9fdac0
add gitignore
May 3, 2026
a0576b3
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 3, 2026
dedd6cc
Fix flaky get_statistics derivative tests: use central_fdm for std_de…
May 3, 2026
afd56d9
fix flxeichains compat issues with mean
May 3, 2026
5d8e6a8
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 3, 2026
480394c
rm dead code
May 3, 2026
cfff128
Enhance functionality tests with detailed diagnostics for isapprox fa…
May 3, 2026
0ad9da3
Add how-to guide for calibration equations
May 3, 2026
b57b5e0
Refactor shock decomposition handling to include calibration paramete…
thorek1 May 4, 2026
406e654
try with negative slight perturbation
thorek1 May 4, 2026
74f0789
Add post-startup wall-clock timers to dynare comparison scripts
May 5, 2026
b9f3d1c
Fix: replace bc with awk for elapsed time calculation
May 5, 2026
d03b64d
Add runtime CSV loading and wall-clock timing comparison to Dynare re…
May 5, 2026
931de3f
Exclude benchmark loops from wall-clock timing table
May 6, 2026
a74d315
Fix get_moments derivative tests: use central_fdm instead of forward_fdm
May 6, 2026
9e6637c
Add execution order for models and update sorting function in Dynare …
May 6, 2026
cfb0002
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 6, 2026
9e332f7
Cache squared matrices in doubling algorithms for AD speedup (#294)
thorek1 May 6, 2026
79df569
Add Smets-Wouters 2007 model to execution order and third-order models
May 6, 2026
1afee48
do sw03 third order, sw07 3rd order crashes
thorek1 May 7, 2026
b98bb8d
new set of mdoels to test
May 7, 2026
6aac32e
Refactor get_loglikelihood function to remove unstable annotation and…
May 8, 2026
de1a8e7
Refactor factorization functions to remove unstable annotations and s…
May 8, 2026
127f83d
Add correlation flag and update get_correlation function to support c…
May 8, 2026
84380cd
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 8, 2026
51e191a
test and docs for corr in get_moments
May 8, 2026
5b40962
Fix jldoctest block delimiters in get_moments docstring
May 8, 2026
e8d9c28
more release notes
May 9, 2026
524d6c8
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
f3bfc1c
fix type stability issues in nsss_solver.jl
May 9, 2026
a6540a9
change default_mode from "error" to "disable" in nsss_solver.jl
May 9, 2026
a967d27
Refactor factorization functions to support FastLapack and Julia impl…
May 9, 2026
1a732bb
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
901edb9
Refactor factorization calls in rrule functions to simplify FastLapac…
May 9, 2026
a378a28
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
23388f7
Refactor get_correlation, get_variance, get_standard_deviation, get_c…
thorek1 May 9, 2026
14e88f5
fix type stability in get_relevant_steady_state_and_state_update
May 9, 2026
ac12a24
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
fb26137
Update factorization calls to support FastLapack in NSSS and first-or…
May 9, 2026
67cad12
type stable get_irf and get_statistics
May 9, 2026
2f07e09
use get instead of ordering for derivatives and get_moments
May 9, 2026
f67e0a4
type-stable get_solution: uniform Tuple{Vector{S}, Vector{AbstractMat…
May 9, 2026
ac1709e
refactor: update default_mode to "error" and improve type stability i…
May 9, 2026
31da222
Rename _get_solution_fail to get_solution_fail for consistency in fun…
May 9, 2026
106a9ee
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
3bb2245
fix inversion and find shocks
May 9, 2026
224e759
replace try-catch with explicit checks in rrules inversion filter
May 9, 2026
94efb14
Add @turbo to SIMD-friendly loops in nonlinear solver and NSSS cache
May 9, 2026
cd27cd2
refactor: make ss_solve_block type parameterized for improved flexibi…
May 9, 2026
ae44bce
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
45a6ee4
Add @turbo to additional SIMD-friendly loops
May 9, 2026
31c5b94
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
184c60b
refactor: update obc_state_update function signature for improved typ…
May 9, 2026
24fd305
Make shock_idx consistently Vector{Int} in impulse_response_function.jl
May 9, 2026
e2358ef
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
318ac59
refactor: enforce boolean type for constraints_violated in obc_state_…
May 9, 2026
ce59259
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
7fcb2e2
Optimize mul_compressed_kron³: row-slice cache + division→multiplication
May 9, 2026
e363d93
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
1f6787b
Remove @unstable annotations and fix type stability in options_and_ca…
May 9, 2026
360cac4
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
0d449eb
fix: use qr for non-square jacobians in inversion filter rrules
May 9, 2026
06aea8c
fix: use qr for non-square jacobians in inversion filter rrules
May 9, 2026
8781f1a
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
6cfb47b
Mark Higher_order_workspace as unstable for future improvements
May 9, 2026
224beae
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 9, 2026
3b432af
Handle NaN in correlation-related tests via nans=true
May 9, 2026
6183e7a
mark several functions as unstable for future improvements
May 9, 2026
6a5ff31
Make Higher_order_workspace type-stable by using positional args
May 9, 2026
6ca7cb8
Make all workspace constructors type-stable and fix LinearCache retur…
May 10, 2026
cab555b
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
15a1715
Refactor get_NSSS_and_parameters to directly use post_complete_parame…
May 10, 2026
a76baac
Refactor calculate_first_order_solution to use post_complete_paramete…
May 10, 2026
653a05a
use precomputed indices in inversion
May 10, 2026
e40ac78
fix: clamp noise-level off-diagonal correlations to zero
May 10, 2026
f9f30a2
Increase FDM order from 3 to 5 for get_statistics derivative tests
May 10, 2026
2b18abe
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
69582f0
Add targeted JET test set for hot-path functions
May 10, 2026
def8ef9
feat: add new test sets for gradient checks and gali pruned 2nd order…
May 10, 2026
59aaaf3
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
fd17cec
feat: update test set for system prior estimation and add correspondi…
May 10, 2026
fd741e0
Expand JET hot-paths test set to 47 targeted function analyses
May 10, 2026
1a87203
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
e851514
feat: update release notes with new features and follow-up tasks
thorek1 May 10, 2026
2f7a271
Fix JET type instabilities in mat_mult_kron and get_conditional_forecast
May 10, 2026
a1f07e5
Add unthunk calls to pullbacks for ChainRulesCore robustness
May 10, 2026
7ad041a
fix: replace @turbo with @inbounds for improved performance in x_kron…
thorek1 May 10, 2026
2cd6a91
Expand JET hot-path tests to 64 cases
May 10, 2026
10b990e
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
1edf43d
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
0bc1883
fix: disable DispatchDoctor for JET test sets
May 10, 2026
24b1143
Guard correlation noise clamping with AbstractFloat type check
May 10, 2026
1969271
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
07d66af
Add posterior summary statistics output to estimation tests
May 10, 2026
29ce6e1
Add FRB/US model documentation and source information
thorek1 May 10, 2026
22add22
Update release notes to include analytical OBC Jacobian and follow-up…
thorek1 May 10, 2026
376dbee
Increase finite difference approx points for improved gradient calcul…
May 10, 2026
c22a1e8
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 10, 2026
28e93f6
fix: handle Sylvester solver failures in first-order solution derivat…
May 10, 2026
a2b858c
fix: handle solver failures in Sylvester/Lyapunov/Kalman rrule pullbacks
May 10, 2026
24d19a0
Fix NSSS solver cache reset
May 11, 2026
fee2ab2
Fix square obs test: use linearly independent observables
May 11, 2026
d0b8f13
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 11, 2026
7bd2346
extend jet hot paths
May 11, 2026
6fcf596
Add Mooncake NUTS sampling and gradient tests to system prior estimation
May 11, 2026
da01ee4
Use standard sum-of-terms relative residual for QME solver
May 11, 2026
3ebb972
Add borrowing constraint OBC model to basic test set
May 11, 2026
7d81839
Update docstring example outputs to match current package version
May 12, 2026
fe8ae3d
Make doctests pass: add silent=true to @parameters, fix multi-output …
May 12, 2026
7fca6be
updated generate_plots.jl and the plots generated by it
May 12, 2026
d647240
FS2000 estimation
May 12, 2026
28de980
new charts
May 12, 2026
1a64ba9
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 12, 2026
6b08348
Merge branch 'optim_LFI_alloc' of https://github.com/thorek1/MacroMod…
May 12, 2026
74a8932
make tests pass (lower nested sampling resolution)
May 13, 2026
c2bd4fb
Update functionality_tests.jl lower tol on irf test
thorek1 May 13, 2026
20aa134
Merge branch 'optim_LFI_alloc' into docs-calibration-howto
thorek1 May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM julia:latest

# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git curl sudo ca-certificates python3 python3-pip \
&& rm -rf /var/lib/apt/lists/*

# Non-root user (Codespaces convention)
RUN groupadd -g 1000 vscode \
&& useradd -m -u 1000 -g vscode -s /bin/bash vscode \
&& echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode

USER vscode
WORKDIR /home/vscode

# Pre-populate Julia depot with MacroModelling (main branch) deps
RUN git clone --depth 1 https://github.com/thorek1/MacroModelling.jl.git /tmp/MacroModelling \
&& cd /tmp/MacroModelling \
&& julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()' \
&& rm -rf /tmp/MacroModelling

# Pre-compile LanguageServer for the Julia VS Code extension
RUN julia -e 'using Pkg; Pkg.add("LanguageServer"); using LanguageServer'
19 changes: 0 additions & 19 deletions .devcontainer/add-notice.sh

This file was deleted.

38 changes: 16 additions & 22 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,18 @@
// See https://github.com/julia-vscode/julia-devcontainer/blob/master/Dockerfile for image contents
{
"name": "Julia (Community)",
"image": "ghcr.io/julia-vscode/julia-devcontainer:latest",
// "image": "tkockerols/julia-development:latest",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"julialang.language-julia",
"rid9.datetime",
"mutantdino.resourcemonitor",
"bungcip.better-toml"
]
}
},
"onCreateCommand": "julia -e 'import Pkg; Pkg.add(\"SymPy\"); using SymPy'",
"postCreateCommand": "/julia-devcontainer-scripts/postcreate.jl",

"remoteUser": "vscode"
"name": "MacroModelling.jl",
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"extensions": [
"julialang.language-julia"
],
"settings": {
"julia.executablePath": "/usr/local/julia/bin/julia"
}
}
},
"onCreateCommand": "julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'",
"remoteUser": "vscode"
}
3 changes: 0 additions & 3 deletions .devcontainer/noop.txt

This file was deleted.

2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

See [AGENTS.md](../AGENTS.md) for the complete agent guide.

This file exists for GitHub Copilot compatibility. All instructions are maintained in AGENTS.md.
This file exists for GitHub Copilot compatibility. All instructions are maintained in AGENTS.md.
4 changes: 3 additions & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ jobs:

steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
- uses: julia-actions/setup-julia@v2
with:
version: "1"
Expand All @@ -39,7 +41,7 @@ jobs:
echo $PATH
ls -l ~/.julia/bin
mkdir results
benchpkg ${{ steps.extract-package-name.outputs.package_name }} --rev="${{github.event.repository.default_branch}},${{github.event.pull_request.head.sha}}" --url=${{ github.event.repository.clone_url }} --bench-on="${{github.event.repository.default_branch}}" --output-dir=results/
benchpkg ${{ steps.extract-package-name.outputs.package_name }} --rev="${{github.event.repository.default_branch}},${{github.event.pull_request.head.sha}}" --url=${{ github.event.repository.clone_url }} --bench-on="${{ github.event.pull_request.head.sha }}" --script="$PWD/benchmark/benchmarks.jl" --add="MatrixEquations" --output-dir=results/
- name: Create plots from benchmarks
run: |
mkdir -p plots
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/benchmark_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,19 @@ jobs:
echo $PATH
ls -l ~/.julia/bin
mkdir results
benchpkg ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,$GITHUB_SHA" --url=${{ github.event.repository.clone_url }} --bench-on="$GITHUB_SHA" --output-dir=results/
benchpkg ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,v0.1.46,$GITHUB_SHA" --url=${{ github.event.repository.clone_url }} --bench-on="$GITHUB_SHA" --script="$PWD/benchmark/benchmarks.jl" --add="MatrixEquations" --output-dir=results/
- name: Create plots from benchmarks
run: |
mkdir -p plots
benchpkgplot ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,$GITHUB_SHA" --npart=10 --format=png --input-dir=results/ --output-dir=plots/
benchpkgplot ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,v0.1.46,$GITHUB_SHA" --npart=10 --format=png --input-dir=results/ --output-dir=plots/
- name: Upload plot as artifact
uses: actions/upload-artifact@v7
with:
name: plots
path: plots
- name: Create markdown table from benchmarks
run: |
benchpkgtable ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,$GITHUB_SHA" --input-dir=results/ --ratio --mode "time,memory" > table.md
benchpkgtable ${{ steps.extract-package-name.outputs.package_name }} --rev="v0.1.39,v0.1.40,v0.1.41,v0.1.46,$GITHUB_SHA" --input-dir=results/ --ratio --mode "time,memory" > table.md
echo '### Benchmark Results' > body.md
echo '' >> body.md
echo '' >> body.md
Expand Down
111 changes: 104 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,10 @@ jobs:
os: ubuntu-latest
arch: x64
test_set: "pruned_3rd_order_estimation_pigeons"
- version: 'min'
os: ubuntu-latest
arch: x64
test_set: "basic"
# - version: 'min'
# os: ubuntu-latest
# arch: x64
# test_set: "basic"
- version: 'lts'
os: ubuntu-latest
arch: x64
Expand All @@ -151,10 +151,28 @@ jobs:
os: ubuntu-latest
arch: x64
test_set: "jet"
allow_failure: true
- version: 'lts'
os: macOS-latest
arch: x64
test_set: "jet"
allow_failure: true
- version: '1'
os: ubuntu-latest
arch: x64
test_set: "jet_hot_paths"
- version: '1'
os: ubuntu-latest
arch: x64
test_set: "estimate_sw07_nested_sampling"
- version: '1'
os: ubuntu-latest
arch: x64
test_set: "gradient_checks"
- version: '1'
os: ubuntu-latest
arch: x64
test_set: "system_prior_estimation"
steps:
- uses: actions/checkout@v6
- uses: julia-actions/setup-julia@v2
Expand All @@ -168,18 +186,68 @@ jobs:
sed -i.bak \
-e '/^\[targets\]/,$ s/,[[:space:]]*"Pigeons"//g' \
-e '/^\[targets\]/,$ s/"Pigeons",[[:space:]]*//g' \
-e '/^\[compat\]/,/^\[/ s/^Pigeons[[:space:]]*=.*$//g' \
-e '/^\[extras\]/,/^\[/ s/^Pigeons[[:space:]]*=.*$//g' \
Project.toml
rm -f Project.toml.bak

- name: Remove MCMCChains from non-pigeons runs
if: contains(matrix.test_set, 'pigeons') == false
shell: bash
run: |
sed -i.bak \
-e '/^\[targets\]/,$ s/,[[:space:]]*"MCMCChains"//g' \
-e '/^\[targets\]/,$ s/"MCMCChains",[[:space:]]*//g' \
-e '/^\[compat\]/,/^\[/ s/^MCMCChains[[:space:]]*=.*$//g' \
-e '/^\[extras\]/,/^\[/ s/^MCMCChains[[:space:]]*=.*$//g' \
Project.toml
rm -f Project.toml.bak

- name: Remove JET from estimation runs
if: contains(matrix.test_set, 'estimat') == true || contains(matrix.test_set, 'pigeons') == true
- name: Restrict DynamicPPL to 0.35 for pigeons runs
if: contains(matrix.test_set, 'pigeons')
shell: bash
run: |
sed -i.bak \
-e '/^\[compat\]/,/^\[/ s/^DynamicPPL[[:space:]]*=.*$/DynamicPPL = "0.35"/g' \
Project.toml
rm -f Project.toml.bak

- name: Remove Mooncake from pigeons runs
if: contains(matrix.test_set, 'pigeons')
shell: bash
run: |
sed -i.bak \
-e '/^\[targets\]/,$ s/,[[:space:]]*"Mooncake"//g' \
-e '/^\[targets\]/,$ s/"Mooncake",[[:space:]]*//g' \
-e '/^\[compat\]/,/^\[/ s/^Mooncake[[:space:]]*=.*$//g' \
-e '/^\[extras\]/,/^\[/ s/^Mooncake[[:space:]]*=.*$//g' \
Project.toml
rm -f Project.toml.bak

- name: Remove FlexiChains from pigeons runs
if: contains(matrix.test_set, 'pigeons')
shell: bash
run: |
sed -i.bak \
-e '/^\[targets\]/,$ s/,[[:space:]]*"FlexiChains"//g' \
-e '/^\[targets\]/,$ s/"FlexiChains",[[:space:]]*//g' \
-e '/^\[compat\]/,/^\[/ s/^FlexiChains[[:space:]]*=.*$//g' \
-e '/^\[extras\]/,/^\[/ s/^FlexiChains[[:space:]]*=.*$//g' \
Project.toml
rm -f Project.toml.bak

- name: Remove JET from non-jet runs
if: "!startsWith(matrix.test_set, 'jet')"
shell: bash
run: |
# `JET` is only needed for the dedicated `jet` rows. Keeping it in the
# shared test target adds resolver constraints to unrelated jobs.
sed -i.bak \
-e '/^\[targets\]/,$ s/,[[:space:]]*"JET"//g' \
-e '/^\[targets\]/,$ s/"JET",[[:space:]]*//g' \
Project.toml
rm -f Project.toml.bak
rm -f Project.toml.bak

- name: Set Custom Test Environment Variable (Windows)
if: matrix.os == 'windows-latest'
run: echo "TEST_SET=${{ matrix.test_set }}" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
Expand All @@ -199,3 +267,32 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: lcov.info

dynare-comparison:
name: Dynare Comparison
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- uses: julia-actions/cache@v3
- uses: julia-actions/julia-buildpkg@v1

# Phase 1: Generate Julia results and .mod files
- name: Generate Julia results
env:
JULIA_NUM_THREADS: '1'
run: julia --threads=1 --project=. test/dynare_comparison/generate_julia_results.jl

# Phase 2: Run Dynare in Docker (debian:testing)
- name: Build Dynare Docker image
run: docker build -t dynare-runner test/dynare_comparison/
- name: Run Dynare models
run: docker run --rm --user "$(id -u):$(id -g)" -e THREAD_COUNT=1 -e OMP_NUM_THREADS=1 -e OMP_THREAD_LIMIT=1 -e OPENBLAS_NUM_THREADS=1 -e MKL_NUM_THREADS=1 -v "${{ github.workspace }}/test/dynare_comparison/output:/work/output" dynare-runner

# Phase 3: Compare results
- name: Compare Julia vs Dynare results
env:
JULIA_NUM_THREADS: '1'
run: julia --threads=1 --project=. test/dynare_comparison/compare_results.jl
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,10 @@ test/data/EA_data.csv
test/data/SSR_Estimates_20241130.xlsx
test/data/TED---Output-Labor-and-Labor-Productivity-1950-2015.xlsx
estimation_results
juliaup.sh
juliaup.sh.julia_repl/
tasks/_repl_cmd.jl
.julia_repl
tasks/
test/dynare_comparison/_dynare_work/
test/dynare_comparison/output*
test/dynare_comparison/output_thread_sweep*
Loading
Loading