Skip to content

Merge recent updates from dev branch#79

Merged
thomasckng merged 52 commits into
mainfrom
flowMC-dev
Jun 4, 2026
Merged

Merge recent updates from dev branch#79
thomasckng merged 52 commits into
mainfrom
flowMC-dev

Conversation

@thomasckng

@thomasckng thomasckng commented Jun 4, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

Release Notes

  • New Features

    • Added checkpoint and resume functionality to resume sampling at training-loop boundaries
    • Added per-dimension step-size adaptation for MALA, HMC, and Gaussian random walk samplers
  • Documentation

    • Expanded hyperparameter reference with detailed parameter descriptions and guidance
    • Added architecture guide explaining the internal design and key principles
    • Created guides landing page for improved navigation
    • Enhanced FAQ with JIT compilation guidance
  • Tests

    • Added comprehensive checkpoint and resume unit tests
    • Added per-dimension step-size adaptation strategy tests
  • Chores

    • Updated pre-commit hook versions for code quality tools
    • Migrated documentation conversion from jupytext to nbconvert

@thomasckng thomasckng added this to the v0.6.0 milestone Jun 4, 2026
@thomasckng thomasckng self-assigned this Jun 4, 2026
@thomasckng thomasckng added the enhancement New feature or request label Jun 4, 2026
@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@thomasckng, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 58 minutes and 10 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2b9e865c-654a-4abc-8d4b-b32da090c5b1

📥 Commits

Reviewing files that changed from the base of the PR and between f368aba and d167935.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .pre-commit-config.yaml
  • src/flowMC/Sampler.py
  • src/flowMC/resource_strategy_bundle/RQSpline_HMC.py
  • src/flowMC/resource_strategy_bundle/RQSpline_HMC_PT.py
📝 Walkthrough

Walkthrough

This PR integrates wall-clock checkpointing/resume for Sampler training-loop boundaries, introduces empirical per-dimension step-size adaptation across MALA/HMC/GRW kernels and bundles, restructures documentation with a new architecture guide and consolidated guides index, modernises API stub generation and build tooling, and expands hyperparameter documentation.

Changes

Sampler checkpointing and resume support

Layer / File(s) Summary
Sampler constructor and checkpointing configuration
src/flowMC/Sampler.py
Constructor signature becomes keyword-only, adds outdir and checkpoint_interval parameters, creates JAX compilation cache directory when enabled, and initialises _prev_elapsed for wall-clock checkpoint triggering.
Checkpoint, resume, and training-loop detection internals
src/flowMC/Sampler.py
Implements _training_loop_end_indices() to detect end-of-loop strategy boundaries, _resume_from_checkpoint() to validate and restore state from pickled checkpoint with config/RNG verification, and _save_checkpoint() to write atomic checkpoints while excluding user-supplied logpdf.
Sample method checkpoint and resume integration
src/flowMC/Sampler.py
Rewires sample() workflow to detect and resume from checkpoint.pkl, compute training-loop boundaries, conditionally write checkpoints when wall-clock interval elapses and strategy is at a training-loop end, and clean up checkpoint/cache on completion.
Sampler checkpointing and resume test suite
tests/unit/test_sampler.py
Unit tests verify training-loop-end-indices detection across repeating/reset-stepper patterns, checkpoint file creation with expected metadata, resumed strategies are skipped whilst post-checkpoint strategies run, RNG state restores correctly across resume, and checkpoint validation rejects mismatched config.
Test callsites updated to keyword-only initialisation
tests/integration/test_periodic.py, tests/integration/test_quickstart.py, docs/quickstart.md
Sampler constructor calls converted from positional to keyword arguments (n_dim, n_chains, rng_key, resource_strategy_bundles).

Per-dimension step-size adaptation strategy and kernel integration

Layer / File(s) Summary
AdaptStepSizePerDim strategy implementation
src/flowMC/strategy/adapt_step_size.py
New strategy reads recent finite positions from a named buffer, computes per-dimension standard deviation via JIT-compiled helper, normalises to geometric-mean-1 target profile, computes scaling ratios, and applies via kernel's apply_per_dim_scaling() method.
Kernel per-dimension scaling utilities
src/flowMC/resource/kernel/MALA.py, src/flowMC/resource/kernel/HMC.py, src/flowMC/resource/kernel/Gaussian_random_walk.py
Adds get_effective_dim_profile() computing geometric-mean-normalised profile and apply_per_dim_scaling(ratios) to update step sizes (element-wise for MALA/GRW, via condition_matrix for HMC).
RQSpline MALA bundles with per-dimension adaptation
src/flowMC/resource_strategy_bundle/RQSpline_MALA.py, src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py
Both bundles accept new adapt_step_size_per_dim parameter (default True), instantiate AdaptStepSizePerDim strategy, configure with positions buffer and training window, and conditionally wire into training_phase.
RQSpline HMC bundles with per-dimension adaptation
src/flowMC/resource_strategy_bundle/RQSpline_HMC.py, src/flowMC/resource_strategy_bundle/RQSpline_HMC_PT.py
Both bundles add adapt_step_size_per_dim parameter, construct AdaptStepSizePerDim for per-dimension tuning, and integrate into training phase sequence after scalar adaptation.
RQSpline GRW bundles with per-dimension adaptation
src/flowMC/resource_strategy_bundle/RQSpline_GRW.py, src/flowMC/resource_strategy_bundle/RQSpline_GRW_PT.py
Both bundles incorporate adapt_step_size_per_dim parameter, wire AdaptStepSizePerDim strategy, and conditionally include in training phase.
Per-dimension adaptation strategy test suite
tests/unit/test_strategies.py
Extensive tests verify anisotropic variance tracking, geometric-mean preservation, convergence in one call, NaN/zero-variance robustness, GaussianRandomWalk and HMC compatibility, and stability under extreme anisotropy.

Documentation restructuring, API generation, and content updates

Layer / File(s) Summary
Documentation navigation restructuring
docs/guides/index.md, docs/index.md, docs/tutorials/index.md, zensical.toml
New guides/index.md landing page; updates main navigation to link Tutorials to tutorials/index.md and add Guides under guides/index.md; removes Bundles and Hyperparameter Reference from tutorials; adjusts zensical.toml nav structure.
API stub generation and nav patching robustness
docs/gen_api.py
Introduces REFERENCE_TAB_NAME constant; sorts module scans deterministically and filters via strict prefix matching; synchronises stubs by pruning stale files and resolving file/directory conflicts; sorts nav keys case-insensitively; adds _toml_escape() for TOML string escaping; hardens nav/site_url patching; conditionally skips site_url patching when not present.
New architecture guide
docs/guides/architecture.md
Introduces comprehensive guide covering target function API (target_log_prob_fn), Sampler orchestration and early-stopping, resource versus strategy abstraction, and design principles for JAX likelihoods and n_chains-based parallelism.
Hyperparameter reference, FAQ, and guides prose updates
docs/guides/hyperparameters.md, docs/guides/bundles.md, docs/FAQ.md
Expands hyperparameter docs with new adapt_step_size_per_dim documentation, rewrites parameter descriptions with clearer semantics and examples; fixes FAQ sampler-acceptance typo, standardises JAX terminology, documents JIT-disabling via Jit=False; adjusts bundle prose line wrapping.
Quickstart example and docstring standardisation
docs/quickstart.md, src/flowMC/strategy/take_steps.py, src/flowMC/resource/kernel/Gaussian_random_walk.py, src/flowMC/resource/model/common.py, and others
Updates quickstart to use keyword arguments; standardises docstrings by replacing Sphinx :meth:/:class: roles with inline backtick code references across kernels, strategies, and models.
MathJax subscription guards
docs/javascripts/mathjax.js
Guards document$ and component$ subscriptions behind typeof checks to prevent runtime errors when globals are undefined.
Mkdocstrings handler configuration
zensical.toml
Revises Python handler to broaden member-filtering rules, disable inherited members, adjust category/grouping and summary display, and reorder member discovery to [__all__, alphabetical].

Build, deployment, and configuration updates

Layer / File(s) Summary
CI/CD workflow and dependency updates
.github/workflows/docs.yml, pyproject.toml, .pre-commit-config.yaml
Updates docs.yml to use jupyter nbconvert --to markdown instead of jupytext, improves gh-pages branch detection via git ls-remote --exit-code, bumps uv-pre-commit to 0.11.18 and ruff-pre-commit to v0.15.15, updates pyright-python to v1.1.410 with expanded versioned dependencies, replaces jupytext with nbconvert in optional doc dependencies.
Contributing guidelines and gitignore cleanup
CONTRIBUTING.md, .gitignore
Reformats CONTRIBUTING.md markdown across contribution guidance sections without changing content; updates .gitignore to use root-anchored /site pattern instead of site/.
README logo reference update
README.md
Changes logo image source from local ./docs/logo.png to remote GitHub raw content URL.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • GW-JAX-Team/flowMC#77: Per-dimension step-size adaptation methods on MALA/HMC/GaussianRandomWalk kernels directly overlap with this PR's kernel scaling utilities.
  • GW-JAX-Team/flowMC#78: Sampler checkpoint/resume implementation with _training_loop_end_indices, _resume_from_checkpoint, and _save_checkpoint directly overlaps with this PR's checkpointing logic.
  • GW-JAX-Team/flowMC#75: GitHub Actions docs workflow changes for notebook conversion (jupytext → nbconvert) and gh-pages branch detection overlap with this PR's CI/CD updates.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 64.47% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Merge recent updates from dev branch' is vague and generic, using non-descriptive language that does not convey the actual scope or primary changes of the substantial changeset. Consider a more descriptive title that highlights the main feature or changes, such as 'Add checkpoint/resume support and per-dimension step-size adaptation' or 'Reorganise documentation and add sampling enhancements'.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch flowMC-dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

thomasckng and others added 26 commits June 4, 2026 11:18
…in TOML

Co-authored-by: Copilot <copilot@github.com>
@thomasckng

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@thomasckng

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🧹 Nitpick comments (2)
src/flowMC/Sampler.py (2)

295-305: ⚡ Quick win

Broad exception handler might hide serialization issues.

The fallback from pickle to equinox serialization catches all exceptions (line 302). This could silently hide:

  • Out-of-memory errors during large array serialization
  • File system errors (disk full, permissions)
  • Bugs in custom __getstate__/__setstate__ implementations

When the fallback succeeds, the user never learns that pickle failed, making it harder to diagnose issues or optimize serialization.

🔍 Suggested improvement

Log the exception before falling back:

             try:
                 pickle.dumps(v, protocol=pickle.HIGHEST_PROTOCOL)
                 resources_to_save[k] = ("pkl", v)
-            except Exception:
+            except Exception as e:
+                logger.debug(
+                    "Resource '%s' not pickle-serializable (%s), using equinox fallback.",
+                    k, type(e).__name__
+                )
                 buf = io.BytesIO()
                 eqx.tree_serialise_leaves(buf, v)
                 resources_to_save[k] = ("eqx", buf.getvalue())
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/flowMC/Sampler.py` around lines 295 - 305, The broad except in the
serialization loop over self.resources (inside resources_to_save creation)
should record the pickle failure before falling back to
eqx.tree_serialise_leaves: change "except Exception:" to "except Exception as
e:" and log the exception (including the resource key k, the fact pickle failed,
and the exception/traceback) using the module/class logger (or
logging.getLogger(__name__)), then proceed to the existing fallback that uses
eqx.tree_serialise_leaves; reference the variables/functions resources_to_save,
self.resources, pickle.dumps and eqx.tree_serialise_leaves when making this
change.

233-246: 💤 Low value

Silent resource restoration failure could hide issues.

When a resource cannot be restored (line 244), only a warning is logged. The sampling will continue with a partially initialized resource, which might cause:

  • Incorrect results if the resource contained critical state
  • Cryptic downstream failures when strategies access the unrestored resource

Consider logging at WARNING level with more context:

                 else:
-                    logger.warning("Cannot restore resource '%s' — skipping.", k)
+                    logger.warning(
+                        "Cannot restore resource '%s' (method=%s) — using freshly initialized resource. "
+                        "This may affect sampling correctness if the resource contained important state.",
+                        k, method
+                    )
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/flowMC/Sampler.py` around lines 233 - 246, The current silent fallback
when a resource cannot be restored leaves a partially initialized entry; replace
the bare logger.warning in the else branch with a richer log and remove the bad
entry from self.resources to avoid partially initialized state: change the else
branch that currently does logger.warning("Cannot restore resource '%s' —
skipping.", k) to log the resource key, the restoration method/value (e.g.
include method and payload size/info) using logger.warning (or logger.error if
you prefer stronger signal), and then ensure you delete or pop the key from
self.resources (e.g. del self.resources[k] or self.resources.pop(k, None)) so
downstream code doesn't see a stale placeholder; reference symbols:
ckpt["resources"], self.resources, method, payload, logger, and
eqx.tree_deserialise_leaves.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/guides/architecture.md`:
- Line 75: Update the hyperlink in the sentence "You can find the
hyperparameters of a resource, a strategy, or a resource-strategy bundle in the
[API docs](../api/flowMC/Sampler.md)." to point to the dedicated hyperparameter
reference guide (not the Sampler API page); replace the link target
../api/flowMC/Sampler.md with the canonical hyperparameter reference page (e.g.,
../guides/hyperparameter-reference.md or the project's official hyperparameters
guide) so the sentence correctly directs readers to the resource/strategy/bundle
hyperparameter documentation.

In `@src/flowMC/resource/kernel/Gaussian_random_walk.py`:
- Around line 117-124: The jaxtyping shape annotation strings in this file have
leading spaces (e.g. " n_dim", " n_dim 2") which causes Ruff F722; update all
occurrences to remove the leading space so shapes are valid strings (e.g.
"n_dim", "n_dim 2" → "n_dim", "n_dim 2" if the latter was intended as "n_dim 2"
vs probably "n_dim, 2"—confirm intended shape). In practice edit signatures and
type annotations for functions and attributes such as get_effective_dim_profile,
apply_per_dim_scaling, and any annotations on step_size, periodic_mask,
periodic_bounds, kernel parameter and return type hints to use shape strings
without a leading space (e.g. replace Float[Array, " n_dim"] with Float[Array,
"n_dim"] across the file).

In `@src/flowMC/resource/kernel/HMC.py`:
- Around line 214-227: Update the jaxtyping forward-reference shape strings to
remove the leading space so Ruff F722 is resolved: replace occurrences of the
shape annotation '" n_dim"' with '"n_dim"' in get_effective_dim_profile and
apply_per_dim_scaling (and any other similar annotations in this file) so the
forward annotations use exact shape identifiers (e.g., change Float[Array, "
n_dim"] -> Float[Array, "n_dim"]).
- Around line 220-224: The code crashes when calling jnp.finfo on an integer
condition_matrix and has invalid forward-type annotations; fix
get_effective_dim_profile and apply_per_dim_scaling by first ensuring
condition_matrix is a floating array (e.g., condition_matrix =
jnp.asarray(self.condition_matrix, dtype=jnp.float32) or using jnp.result_type
to pick a float) before calling jnp.finfo/eps and before any arithmetic, and
change the jaxtyping/forward annotations in get_effective_dim_profile and
apply_per_dim_scaling to valid Python strings (or enable from __future__ import
annotations) to avoid Ruff F722 syntax errors; update RQSpline_HMC /
RQSpline_HMC_PT construction to pass a float-typed condition_matrix (or ensure
jnp.full(..., dtype=jnp.float32)) so types remain consistent.

In `@src/flowMC/Sampler.py`:
- Around line 213-231: The fingerprint comparison in the resume check uses a
hardcoded absolute tolerance of 1e-6 (variables: ckpt_fp, current_fp,
logpdf_resource.log_pdf) which can produce false positives across platforms;
change this to use a configurable tolerance (e.g., add a constructor/initializer
parameter checkpoint_fingerprint_rtol or checkpoint_fingerprint_atol) and
replace the direct abs(current_fp - ckpt_fp) > 1e-6 test with a robust
comparison (e.g., math.isclose or an equivalent relative+absolute tolerance
check using the new parameter(s)) so callers can relax the threshold for
cross-platform resumes.
- Around line 103-107: The Sampler.__init__ block unconditionally calls
jax.config.update for jax_compilation_cache_dir and
jax_persistent_cache_min_compile_time_secs, which mutates global JAX state and
causes cache collisions when multiple Sampler instances use different outdir
values; change this to first read jax.config.read("jax_compilation_cache_dir")
(or equivalent) and if it is unset, set it to Path(outdir)/"jax_cache",
otherwise if it differs emit a runtime warning (or raise) informing the user
that JAX cache is process-global and only one Sampler should enable
checkpointing per process; update the docstring for Sampler and the
checkpoint_interval handling to reflect this behavior and reference the affected
symbols (Sampler.__init__, checkpoint_interval, outdir, jax.config.update,
jax_compilation_cache_dir).

In `@tests/unit/test_strategies.py`:
- Around line 1030-1037: The test reads the mutated resources after the second
adaptation call causing a false-positive no-op; capture the first-call step size
before calling strategy a second time by reading
resources["local_sampler"].step_size into step1 immediately after the first
strategy(self.key, resources, pos, {}) call (before computing resources2), then
call strategy again to get resources2 and read step2 from
resources2["local_sampler"].step_size; update the assertions to compare
initial_step vs step1 and step1 vs step2 as shown using jnp.allclose with the
existing tolerances so the test truly verifies that the second call is a near
no-op while the first call changed the step size.

---

Nitpick comments:
In `@src/flowMC/Sampler.py`:
- Around line 295-305: The broad except in the serialization loop over
self.resources (inside resources_to_save creation) should record the pickle
failure before falling back to eqx.tree_serialise_leaves: change "except
Exception:" to "except Exception as e:" and log the exception (including the
resource key k, the fact pickle failed, and the exception/traceback) using the
module/class logger (or logging.getLogger(__name__)), then proceed to the
existing fallback that uses eqx.tree_serialise_leaves; reference the
variables/functions resources_to_save, self.resources, pickle.dumps and
eqx.tree_serialise_leaves when making this change.
- Around line 233-246: The current silent fallback when a resource cannot be
restored leaves a partially initialized entry; replace the bare logger.warning
in the else branch with a richer log and remove the bad entry from
self.resources to avoid partially initialized state: change the else branch that
currently does logger.warning("Cannot restore resource '%s' — skipping.", k) to
log the resource key, the restoration method/value (e.g. include method and
payload size/info) using logger.warning (or logger.error if you prefer stronger
signal), and then ensure you delete or pop the key from self.resources (e.g. del
self.resources[k] or self.resources.pop(k, None)) so downstream code doesn't see
a stale placeholder; reference symbols: ckpt["resources"], self.resources,
method, payload, logger, and eqx.tree_deserialise_leaves.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fc34c21a-0d7c-4e7b-9ee3-a6c07736d824

📥 Commits

Reviewing files that changed from the base of the PR and between 037af11 and f368aba.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (43)
  • .github/workflows/docs.yml
  • .gitignore
  • .pre-commit-config.yaml
  • CONTRIBUTING.md
  • README.md
  • docs/FAQ.md
  • docs/development_guide.md
  • docs/gen_api.py
  • docs/guides/architecture.md
  • docs/guides/bundles.md
  • docs/guides/hyperparameters.md
  • docs/guides/index.md
  • docs/index.md
  • docs/javascripts/mathjax.js
  • docs/quickstart.md
  • docs/tutorials/dualmoon.ipynb
  • docs/tutorials/index.md
  • docs/tutorials/train_normalizing_flow.ipynb
  • pyproject.toml
  • src/flowMC/Sampler.py
  • src/flowMC/resource/buffers.py
  • src/flowMC/resource/kernel/Gaussian_random_walk.py
  • src/flowMC/resource/kernel/HMC.py
  • src/flowMC/resource/kernel/MALA.py
  • src/flowMC/resource/kernel/NF_proposal.py
  • src/flowMC/resource/logPDF.py
  • src/flowMC/resource/model/common.py
  • src/flowMC/resource_strategy_bundle/RQSpline_GRW.py
  • src/flowMC/resource_strategy_bundle/RQSpline_GRW_PT.py
  • src/flowMC/resource_strategy_bundle/RQSpline_HMC.py
  • src/flowMC/resource_strategy_bundle/RQSpline_HMC_PT.py
  • src/flowMC/resource_strategy_bundle/RQSpline_MALA.py
  • src/flowMC/resource_strategy_bundle/RQSpline_MALA_PT.py
  • src/flowMC/strategy/adapt_step_size.py
  • src/flowMC/strategy/optimization.py
  • src/flowMC/strategy/parallel_tempering.py
  • src/flowMC/strategy/take_steps.py
  • src/flowMC/strategy/train_model.py
  • tests/integration/test_periodic.py
  • tests/integration/test_quickstart.py
  • tests/unit/test_sampler.py
  • tests/unit/test_strategies.py
  • zensical.toml
💤 Files with no reviewable changes (3)
  • docs/development_guide.md
  • .gitignore
  • docs/tutorials/index.md
👮 Files not reviewed due to content moderation or server errors (2)
  • docs/tutorials/train_normalizing_flow.ipynb
  • docs/tutorials/dualmoon.ipynb

Comment thread docs/guides/architecture.md
Comment thread src/flowMC/resource/kernel/Gaussian_random_walk.py
Comment thread src/flowMC/resource/kernel/HMC.py
Comment thread src/flowMC/resource/kernel/HMC.py
Comment thread src/flowMC/Sampler.py Outdated
Comment thread src/flowMC/Sampler.py
Comment thread tests/unit/test_strategies.py
@thomasckng thomasckng merged commit 92c5856 into main Jun 4, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant