Skip to content

GSPy v1.8.7

Choose a tag to compare

@jasonGtg jasonGtg released this 16 Nov 00:11
· 9 commits to main since this release

What's Fixed
3D Lookup Table Data Ordering Bug
Fixed a critical bug where 3D lookup table values were incorrectly mapped when passed from Python to GoldSim. This issue caused values from different layers, rows, and columns to appear in the wrong positions in GoldSim's 3D table view.

Technical Details:

Root Cause: NumPy stores 3D arrays with shape (rows, cols, layers) in C-order (row-major layout), while GoldSim expects data in layer-major ordering (all rows/columns for layer 0, then all rows/columns for layer 1, etc.)
Solution: Replaced the direct memcpy operation with explicit nested loops that properly reorder data from NumPy's (row, col, layer) format to GoldSim's layer-major format
Impact: All 3D lookup table values now correctly correspond to their intended row, column, and layer indices
Verification:
With input_scalar = 2.0, users should now see correct values:

Layer 100, Row 20: [640, 840]
Layer 100, Row 40: [680, 880]
Layer 100, Row 60: [720, 920]
Note: 1D and 2D lookup tables were unaffected as their data layouts naturally aligned with GoldSim's expected format.

Files Changed
LookupTableManager.cpp - Fixed 3D table data reordering logic
GSPy.h - Version bump to 1.8.7
CHANGELOG.md - Added v1.8.7 entry
README.md - Updated version references
Upgrade Notes
This is a bug fix release. Simply replace your existing GSPy DLL files with the new v1.8.7 versions. No configuration changes or script modifications are required.

Affected Users: If you use 3D lookup tables in your GoldSim models with GSPy, this update is strongly recommended to ensure data accuracy.

Full Changelog
See CHANGELOG.md for complete version history.