Skip to content

Modularize canonical OU machinery#1253

Open
fil-monti wants to merge 118 commits into
hmc-clockfrom
canonical-block-ou
Open

Modularize canonical OU machinery#1253
fil-monti wants to merge 118 commits into
hmc-clockfrom
canonical-block-ou

Conversation

@fil-monti

Copy link
Copy Markdown
Collaborator

No description provided.

fil-monti and others added 30 commits May 1, 2026 11:58
CanonicalSelectionMatrixGradientFormula:
- Change nativeRotationGradientScratch from double[][] to double[] flat,
  matching OrthogonalBlockCanonicalParameterization.accumulateNativeGradient
  FromCanonicalContributionFlat new flat signature.
- Add nativeRotationGradient2D scratch for OrthogonalMatrixProvider.pullBack
  Gradient calls that still require double[][].
- Copy flat → 2D via GaussianMatrixOps.copyFlatToMatrix before assembly.
- Replace zero(double[][]) with Arrays.fill.

All 111 tests pass (ant junit-canonical-behavior).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Compute shared covariance adjoints once per branch for selection and diffusion gradients.

Delay stationary-mean gradient rotation by accumulating branch contributions in D-basis and rotating once at finish.

Tests: ant compile-all; ant junit-canonical-behavior
Replace dense EJML multiplies involving block-diagonal expD in the orthogonal covariance pullback with block-aware kernels.

Tests: ant compile-all; ant junit-canonical-behavior
Split parameter updates from time evaluations and add a specialized 2x2 equal-diagonal coefficient path with instrumentation and tests.

Register GeneralOUTraitSimulator in parser lists.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant