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.
Submission Checklist
Summary
First reported by @tillahoffmann on the forums here, CmdStanPy was mangling complex-valued outputs.
The original PR #537 did not include a test asserting that the actual values were recovered in the correct order, which this also fixes. The current code that complex numbers in the output are stored like an extra final dimension of size 2 (this is, after all, how they are treated in the program inputs). But they’re not really, they’re stored strided alongside the other dimensions.
To make this concrete, a vector of 3 elements was being read in as if it was stored as
x.1.real, x.2.real, x.3.real, x.1.imag. x.2.imag, x.3.imag
, but really it is actually written to disk asx.1.real, x.1.imag, x.2.real, x.2.imag, ...
I think once this is merged we should release a patch version (1.0.7) almost immediately.
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):
Simons Foundation
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses: