Store and expose the DLR node fine grid indices and the symmetrize flag - #21
Open
Wentzell wants to merge 2 commits into
Open
Store and expose the DLR node fine grid indices and the symmetrize flag#21Wentzell wants to merge 2 commits into
Wentzell wants to merge 2 commits into
Conversation
The DLR imaginary time nodes are exact copies of fine grid points, so their integer indices, together with the symmetrize option, identify the node set exactly. This makes them suitable for fingerprinting the grid across toolchains, e.g. for hashing or comparing grids. - imtime_ops stores the fine grid indices of its nodes (the sorted Gram-Schmidt pivots), exposed via get_itnodes_idx - imtime_ops and imfreq_ops retain their symmetrize option, exposed via is_symmetrized - Both quantities are carried in the h5 archives (it_idx, symmetrize) and in serialize/deserialize. Legacy archives without them are still read: the flag defaults to NONSYM and the indices are reconstructed from the nodes via the new free function recover_itnode_idx - Symmetrized grids from cppdlr <= 1.3.0 are rejected via the new check_unsymmetrized: their pair-only selection is mirror-symmetric without containing omega=0, so their node indices would fingerprint against a fine grid the symmetrize flag does not name. Reading such an archive, or passing such a grid to the constructors predating the flag, now throws - Bump version to 1.4.0 and update the ChangeLog Assisted-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The DLR imaginary time nodes are exact copies of fine grid points, so their integer indices, together with the symmetrize option, identify the node set exactly — suitable for fingerprinting the grid across toolchains, e.g. for hashing or comparing grids.
Changes
imtime_opsstores the fine grid indices of its nodes (the sorted Gram-Schmidt pivots), exposed viaget_itnodes_idximtime_opsandimfreq_opsretain theirsymmetrizeoption, exposed viais_symmetrizedit_idx,symmetrize) and inserialize/deserialize. Legacy archives are still read: the flag defaults toNONSYMand the indices are reconstructed via the new free functionrecover_itnode_idxcheck_unsymmetrized: their pair-only selection is mirror-symmetric without containingomega=0, so their node indices would fingerprint against a fine grid thesymmetrizeflag does not name. Reading such an archive, or passing such a grid to the constructors predating the flag, now throws