* Use ninja for the examples
Should help a little bit with doc building
* FIx some templates
* Fix template deduction error in count_x_for_y_many functions
The count_x_for_y_many and count_x_for_y_manyC functions were using
a single template parameter for both input (double) and output (size_t)
arrays, causing template deduction failures in Cython bindings.
Changed to use separate template parameters YContainer and CountContainer
to properly support different types for input y values and output counts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix types in PXD header too
* Docs should get ninja too
* Changes from clang-format
* Fix git diff argument order in clang-format script
The script was comparing PR_BRANCH to TARGET_BRANCH, which shows changes from the PR branch to the target (what's in target that's NOT in PR). For PR validation, we need the opposite: changes from target to PR (what's in PR that's NOT in target).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix Cython template deduction errors in solve_for_x_manyC and count_x_for_y_manyC
Add explicit template parameters [double, size_t] to both function calls
to resolve template type deduction errors when compiling with Cython.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix wheel building by removing return from void Cython template calls
The functions solve_for_x_manyC and count_x_for_y_manyC return void in C++.
When Cython sees a return statement with a void function call containing
template arguments with commas (e.g., [double, size_t]), it wraps the call
in the __Pyx_void_to_None macro. This macro is a simple preprocessor macro
that cannot handle the commas in template arguments, treating them as macro
argument separators instead.
The fix is to remove the return statements, making these simple void function
calls. This prevents the __Pyx_void_to_None wrapping and allows the wheel to
build successfully.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Run clang-format with claude code and fix VS warnings
* More clang-format
* And the tests too
* Cleanup from clang-tidy
* More constness and modernization
* Cleanup and modernization
* Add ability to get at the ideal-gas properties directly
Also through the python interface
* And python interface files
* Fixes the missing reference to ideal gas notebook
* Make improvements in the critical region for subcritical pressures for P+{H,S,U}
See #2594
* Fix starting temperature for 2D Newton
* Switch to TOMS748 instead of Brent; resort the steps
* Enable TOMS748 properly
* boost fixes
* Expansions are fully wrapped, looking good. Next step is the set of expansions that is the 1D approximation
* Get 1D approx working via cython
* Count solutions
* SuperAncillary class is working
>1000x speedup for water
Time for C++!
* Superancillaries are working!
In C++, speedup is more than 2000x. In Python, more like 150x because of Python <-> C++ overhead
* Add pmax check for PQ superancillary calls
* Update tests
* Allow T limits to be obtained
* Implement get_fluid_parameter_double for getting superanc value
* Add tests for getting parameters from superanc
* Script for testing superancillaries for sphinx
* Microoptimizations; don't help speed
The limiting factor remains the clear function, which takes about 30 ns
* Add R125 superancillary
* Use the release from fastchebpure for the files
* Drop a .gitignore in the unzipped folder
* Update superancillary injection script
* Turn on superancillaries by default
* Missing header
* Many int conversions in superancillary
* Another int cast
* More annoying solution for boost iter max
* Fix warnings
* One more warning
* Clear up the calculation of rho
* Update docs_docker-build.yml
Use arm64 since the containers were built on mac
* Superfluous ;
* Update backend.py
* Get the critical points working for superancillaries
* Fix wrapping changes of xmin&xmax methods
* squelch warnings
* Version 0 of jupyter notebook for docs
* Try to add the notebook to the docs
* Add jupyter notebook for superancillary
* Lots of updates to superancillary notebook
* More updates to docs
* Skip pseudo-pure for superancillary docs
* Fix output of superancillary figures
* Add superancillary plots to docs for the page for each fluid
* Make a placeholder figure for fluids without superancillary
* Add superancillary plots to task list
* Bump to release fixing m-xylene
* Relax the location of the REFPROP stuff
* Change default name for R-1336mzz(E)
* No need for figures to be so large
* Don't need REFPROP setting
* Bump to fastchebpure release with methanol
* Benchmark caching options
* Benchmark more granularly
* Add the fast methods to public API for HEOS class
* Back to memset - can memset with 0 but no other value
* Fix how caching is managed in Helmholtz class
* Close to final implementation
Perhaps a tiny bit more optimization possible?
* Update function name
* Make message more accurate
* Fix init order
* Expose update_QT_pure_superanc to Python
* Fix when _reducing is set for pures
* Fix the post_update
* Indent
* Notebook
* Notebook
* Make ln(p) construction lazy
Only really matters for debug builds
* Also make reference non-const
* Inject superancillary for methanol
* Make the superancillary loading entirely lazy in debug
* Fix PH bug for Nitrogen
Closes#2470
* Force the clear to be called on SatL and SatV
To invalidate them at start
* Default is non-lazy superancillary loading
* Add CMake option to have lazy-loading superancillaries [skip ci]
Not a good idea unless doing very narrow testing
* Ignore depcache files [skip ci]
* Z lib compress the fluid data
And migrate to newer version of miniz
* Add the writing of the .z file
* This works on MSVC, not sure about any other platform
How does one inform the linker about what locations to search for this file?
* Does this give the necessary linking info to the compiler?
* Include the header only for MSVC
* The incbin is still needed for non-windows
* Missing headers for Python
* Add miniz source file
* Missing import
* Provide a solution for compilers that don't support assembly to embed files
* Don't specify standard since we have mixed C/C++
https://stackoverflow.com/questions/49000674/cython-std-c11-error-using-both-c-and-c
* rename miniz to cpp
* And cmake
* Back to .c again
Not sure what to do about Python now
* Build the C library and then link it in
* FIx cmake too
* Location for .z file
* arg to setup function
* Check for z file [skip ci]
* Force build temp to be here
* Try switching to setuptools version
* Force the build_temp to be build before clib construction begins
That was subtle...
* Initial rewrite to c++
* Minor cleanup
* Add simple unit test for ph plot
* Add tests for Ts plot
* Use coolprop's lin and logspace functions to generate ranges
* Remove copied file header comments
* Remove code for handling unit conversions
* Replace Optional return from value_at with Nan
* Rename generate_ranges to generate_values_in_range
* Clean up xy_switch code
* Remove redundand <memory> include
* Make namings more consistent
* Further cleanup
* Move implementation to .cpp file
* More renamings
* Finish moving implementation over to .cpp
* Move generate_values out of Details namespace
* Make get_axis_limits const-able
* Constify most of the methods
* Add _ for member variables
* Make isoline methods consts too
* Make tp limits parameter an enum instead
* Try to match the code style with rest of repo
* Move not needed code from .h to .cpp
* Match code style with curly braces on same line
* Update variable names in tests so they make more sense
* Clean up the public api for PropertyPlot
* Add docstrings to public interface in CoolPropPlot
* attempt to add fugacity functions needed for CoolProp.jl
* address first round of PR edits
change std:size_t to long
remove get_fugacity_coefficients
add .def exports
* remove fugacity refs in CoolPropLib.def