Skip to content

Reader-defined derived variables (local BP5 path)#5133

Open
eisenhauer wants to merge 1 commit into
ornladios:masterfrom
eisenhauer:reader-defined-derived-variables
Open

Reader-defined derived variables (local BP5 path)#5133
eisenhauer wants to merge 1 commit into
ornladios:masterfrom
eisenhauer:reader-defined-derived-variables

Conversation

@eisenhauer

Copy link
Copy Markdown
Member

IO::DefineReaderDerivedVariable defines an expression on a read IO over file variables; the reader computes it on Get. Parsed at define, resolved lazily against the file on Open, and kept out of the writer-side derived registry so a write engine sharing the IO never picks it up.

BP5Deserializer synthesizes a VarRec routed off the input variables' block structure (GetMetadataBase redirect), requiring congruent input shapes. Bindings for CXX, Python, C, and Fortran.

Also: reader-derived vars carry no precomputed min/max, and the existing "no stored min/max" path now reports an invalid range (min>max).

IO::DefineReaderDerivedVariable defines an expression on a read IO over
file variables never marked derived at write time; the reader computes it
on Get. Parsed at define, resolved lazily against the file on Open, and
kept out of the writer-side derived registry so a write engine sharing the
IO never picks it up.

BP5Deserializer synthesizes a VarRec routed off the input variables' block
structure (GetMetadataBase redirect), requiring congruent input shapes.
Bindings for CXX, Python, C, and Fortran.

Also: reader-derived vars carry no precomputed min/max, and the existing
"no stored min/max" path now reports an invalid range (min>max) instead of
zeroed, which was ambiguous with genuine all-zero data.
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