Skip to content

feat: Eigenvalue based checks for +ve definiteness#963

Draft
henry-wallace-phys wants to merge 12 commits into
developfrom
hwallace/feature/eigenvalue_check
Draft

feat: Eigenvalue based checks for +ve definiteness#963
henry-wallace-phys wants to merge 12 commits into
developfrom
hwallace/feature/eigenvalue_check

Conversation

@henry-wallace-phys

@henry-wallace-phys henry-wallace-phys commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Pull request description

Adds a diagnostic to +ve definite code that checks negative eigenvalues + prints out the main contributions

Requires PR: #962

Changes or fixes

  • Update MakeMatrixPosDef to take optional parameter names argument
  • Add eigenvalue decomposition method which checks for negative eigenvalues

Examples

On DUNE [slightly different to the committed version which has typos fixed + is a warning not an error]:

[ParameterHandlerUtils.h][warning] Matrix is not positive definite, attempting to shift diagonal by 1e-9 of the diagonal values
[ParameterHandlerUtils.h][warning] The following diagnostics may help identify the problem:
[ParameterHandlerUtils.h][error] Matrix is not positive semi-definite. Found 52 negative eigenvalues out of 301 total. Display top 5
[ParameterHandlerUtils.h][error] Eigenvalue 0 = -7.10119127196074e-14. Top contributors:
[ParameterHandlerUtils.h][error]   Index 206: b_206, Magnitude: 0.2866
[ParameterHandlerUtils.h][error]   Index 146: b_146, Magnitude: 0.2232
[ParameterHandlerUtils.h][error]   Index 169: b_169, Magnitude: 0.2073
[ParameterHandlerUtils.h][error]   Index 154: b_154, Magnitude: 0.1830
[ParameterHandlerUtils.h][error]   Index 129: b_129, Magnitude: 0.1762
[ParameterHandlerUtils.h][error]   Index 95: b_95, Magnitude: 0.1688
[ParameterHandlerUtils.h][error]   Index 57: b_57, Magnitude: 0.1643
[ParameterHandlerUtils.h][error]   Index 67: b_67, Magnitude: 0.1641
[ParameterHandlerUtils.h][error]   Index 199: b_199, Magnitude: 0.1528
[ParameterHandlerUtils.h][error]   Index 101: b_101, Magnitude: 0.1469
[ParameterHandlerUtils.h][error] Eigenvalue 1 = -6.867659604932062e-14. Top contributors:
[ParameterHandlerUtils.h][error]   Index 17: b_17, Magnitude: 0.2656
[ParameterHandlerUtils.h][error]   Index 50: b_50, Magnitude: 0.2317
[ParameterHandlerUtils.h][error]   Index 67: b_67, Magnitude: 0.2083
[ParameterHandlerUtils.h][error]   Index 114: b_114, Magnitude: 0.1624
[ParameterHandlerUtils.h][error]   Index 150: b_150, Magnitude: 0.1568
[ParameterHandlerUtils.h][error]   Index 127: b_127, Magnitude: 0.1516
[ParameterHandlerUtils.h][error]   Index 6: b_6, Magnitude: 0.1466
[ParameterHandlerUtils.h][error]   Index 140: b_140, Magnitude: 0.1456
[ParameterHandlerUtils.h][error]   Index 184: b_184, Magnitude: 0.1406
[ParameterHandlerUtils.h][error]   Index 36: b_36, Magnitude: 0.1391
[ParameterHandlerUtils.h][error] Eigenvalue 2 = -6.736303972702595e-14. Top contributors:
[ParameterHandlerUtils.h][error]   Index 154: b_154, Magnitude: 0.2670
[ParameterHandlerUtils.h][error]   Index 173: b_173, Magnitude: 0.2414
[ParameterHandlerUtils.h][error]   Index 199: b_199, Magnitude: 0.2098
[ParameterHandlerUtils.h][error]   Index 156: b_156, Magnitude: 0.1799
[ParameterHandlerUtils.h][error]   Index 92: b_92, Magnitude: 0.1746
[ParameterHandlerUtils.h][error]   Index 161: b_161, Magnitude: 0.1712
[ParameterHandlerUtils.h][error]   Index 52: b_52, Magnitude: 0.1626
[ParameterHandlerUtils.h][error]   Index 165: b_165, Magnitude: 0.1533
[ParameterHandlerUtils.h][error]   Index 69: b_69, Magnitude: 0.1487
[ParameterHandlerUtils.h][error]   Index 164: b_164, Magnitude: 0.1466
[ParameterHandlerUtils.h][error] Eigenvalue 3 = -5.962177453858557e-14. Top contributors:
[ParameterHandlerUtils.h][error]   Index 33: b_33, Magnitude: 0.2242
[ParameterHandlerUtils.h][error]   Index 28: b_28, Magnitude: 0.1890
[ParameterHandlerUtils.h][error]   Index 43: b_43, Magnitude: 0.1884
[ParameterHandlerUtils.h][error]   Index 198: b_198, Magnitude: 0.1843
[ParameterHandlerUtils.h][error]   Index 119: b_119, Magnitude: 0.1804
[ParameterHandlerUtils.h][error]   Index 19: b_19, Magnitude: 0.1712
[ParameterHandlerUtils.h][error]   Index 206: b_206, Magnitude: 0.1683
[ParameterHandlerUtils.h][error]   Index 42: b_42, Magnitude: 0.1631
[ParameterHandlerUtils.h][error]   Index 159: b_159, Magnitude: 0.1526
[ParameterHandlerUtils.h][error]   Index 21: b_21, Magnitude: 0.1481
[ParameterHandlerUtils.h][error] Eigenvalue 4 = -5.752332811818945e-14. Top contributors:
[ParameterHandlerUtils.h][error]   Index 15: b_15, Magnitude: 0.2474
[ParameterHandlerUtils.h][error]   Index 154: b_154, Magnitude: 0.2310
[ParameterHandlerUtils.h][error]   Index 50: b_50, Magnitude: 0.1915
[ParameterHandlerUtils.h][error]   Index 41: b_41, Magnitude: 0.1759
[ParameterHandlerUtils.h][error]   Index 17: b_17, Magnitude: 0.1514
[ParameterHandlerUtils.h][error]   Index 43: b_43, Magnitude: 0.1479
[ParameterHandlerUtils.h][error]   Index 173: b_173, Magnitude: 0.1470
[ParameterHandlerUtils.h][error]   Index 145: b_145, Magnitude: 0.1423
[ParameterHandlerUtils.h][error]   Index 136: b_136, Magnitude: 0.1415
[ParameterHandlerUtils.h][error]   Index 198: b_198, Magnitude: 0.1396

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Hi @henry-wallace-phys, thank you for contributing to MaCh3! Please wait for MaCh3 developers to review your PR. If no one answers within a week, please message people from this list: https://github.com/orgs/mach3-software/teams/mach3admin . While waiting, please enjoy this

meme

Use this action on your projects. Use jokes on issues instead.

@github-actions github-actions Bot added the Parameters ⚙️ Related with neutrino interactions or oscillations label Jul 2, 2026
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Super-linter summary

Language Validation result

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Hi, I am MaCh3-Telemetry bot

Memory and CPU Usage Summary

### Memory and CPU Usage Summary

| Metric  |     Mean    |      Max    |
|---------|-------------|-------------|
| **RAM** |   357.16 MB |   370.36 MB |
| **CPU** |    96.31 %  |    98.00 %  |

Memory Usage Plot

You can view the memory usage plot directly in the job summary from the link above.

@henry-wallace-phys
henry-wallace-phys marked this pull request as draft July 2, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Parameters ⚙️ Related with neutrino interactions or oscillations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant