Reverse engineered prompt

Build me a small C++ library called PERNIX for CPU based scientific data that can compress and decompress floating point values by quantizing them to a user chosen bit width and packing them into fixed 64 byte blocks. I want a clean C++ API with compress_block and decompress_block, plus plain C wrappers, and optional Fortran bindings so the same core logic can be called from different languages.

Please follow the quantization approach described in the README using bmax and scale, support the normal float path and the f64 variants where the project mentions them, and make decompression fast. If the CPU supports it, use optimized SIMD code paths, but make sure there is a safe fallback that still works everywhere.

Set it up so it builds cleanly with CMake in release mode, include tests for correctness, and add small example programs for C++, C, and Fortran that show one block round tripping. The main goal is a practical high throughput library, not a UI. Look up current docs online if you need to.

Want more depth? Deep Reverse