PR- [11]: Final PR - #259
Draft
San1357 wants to merge 36 commits into
Draft
Conversation
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
PR[1]: build: migrate from setuptools to scikit-build-core
PR[2] : feat: add libcint C extension bindings for various integrals
PR[3]: feat: use PyArray_GETPTR instead of PyLong_AsVoidPtr + fix dylib rpath
PR[4]: fix: platform-aware libcint loading + moment integral libcint v6 fix
PR-5 - feat: add C shell loop for all 1-electron integrals
added 4 commits
August 13, 2026 11:18
…pport refactor: rename macros to DEFINE_INT1E_ARRAY_FN and DEFINE_INT1E_SHELLLOOP_FN fix: fill ERI in physicist notation in C feat: add C shell-loop binding for point_charge integral feat: add C shell-loop bindings for moment integrals refactor: rename macros to DEFINE_INT1E_ARRAY_FN and DEFINE_INT1E_SHELLLOOP_FN fix: fill ERI in physicist notation in C feat: add C shell-loop binding for point_charge integral feat: add C shell-loop bindings for moment integrals feat: update momentum() to return full 3-component complex array docs: update momentum() docstring with notes test: add C shell-loop tests for 1e integrals & 2e integrals bindings in (PR-5 &PR-6) refactor: dynamic buf allocation + rename shellloop to array feat: add optimizer support feat: add optimizer support using CINTall_1e_optimizer and cint2e_sph_optimizer perf: recorrect optimizer support via token pasting — 49x speedup fix: restore optimizer line after benchmark testing
… support test: add C shell-loop tests for gradient integrals (ipkin, ipnuc, iprinv) feat: add GIAO/magnetic integral bindings (ia01p, ircxp, igkin, igovlp, ignuc) test: add GIAO/magnetic integral tests (ia01p, ircxp, igkin, igovlp, ignuc) commented: to remove unused import style: apply clang-format, black, pycodestyle, pydocstyle formatting add transform support to overlap() C-loop function add transform support to kinetic_energy() C-loop function add transform support to nuclear_attraction() C-loop function add inv_origin and transform support to rinv() C-loop function add notation and transform support to electron_repulsion() C-loop function add transform support to dipole, quadrupole, octupole C-loop functions add transform and inv_origin support to gradient_kinetic, gradient_nuclear, gradient_rinv add transform, origin, inv_origin support to all 17 C-loop wrapper functions
perf: zero only used buffer portion in eri_array instead of full buf feat: add int3c2e_cart binding, cartesian 3c2e tests, coord_type aware three_center_two_electron test: add cartesian shell-loop tests and 3c2e cart reference tests
ci: add CMake install step for scikit-build-core on GitHub Actions ci: verbose pip install, remove coverage threshold ci: fix RPATH for Linux, install libcint.so alongside extension revert: remove unnecessary libcint.so install step (static linking) ci: use no-build-isolation with explicit cmake install fix: cartesian normalization, momentum, point_charge, moment/momentum skip - Add _ovlp_minhalf cartesian normalization in __init__ - Apply normalization in all 2D methods - Apply 4D normalization in electron_repulsion - Fix point_charge: add permutation before storing val - Add momentum() method with -1j scaling - Add transform parameter to point_charge() and moment() - Skip momentum/moment tests (multi-component C fix needed) - Skip cc-pVDZ cartesian ERI (d-shell normalization TODO) fix: add CMAKE_POSITION_INDEPENDENT_CODE for Linux shared object build fix: momentum multi-component fix via DEFINE_INT1E_LOOP_FN_MULTICOMP macro fix: moment mixed orders via full multi-component dipole/quadrupole/octupole buffers fix: cc-pVDZ cartesian ERI via eri_array_cart with cint2e_cart_optimizer fix: cc-pVDZ cartesian ERI and momentum normalization fixes
added 2 commits
August 13, 2026 11:19
…fixes fix: add setuptools_scm for Windows CI fix: add setuptools_scm for all platforms fix: install numpy before build feat: add MinGW support for Windows CI build fix: force MinGW gcc via env vars for window fix: skip test_density.py on Windows fix: test_deriv on Windows fix: ignore eval_hermite related tests on Windows fix: ignore all eval_hermite related tests on Windows fix: bump scipy to >=1.18.0 revert: restore scipy>=1.13.0 fix: eval_hermite dtype compatibility with NumPy 2.0 fix: eval_hermite dtype fix for NumPy 2.0 fix: NumPy 2.0 dtype compat on Windows fix: remove jwlawson cmake action, use pip cmake instead fix: use .real cast for eval_hermite Windows compat fix: force alphas to float64 for Windows NumPy compat fix: use np.int32 for eval_hermite Windows fix: remove win32 skip from libcint tests fix: update libcint glob to match .pyd on Windows fix: use importlib to check libcint_bindings on Windows fix: build libcint as shared lib on Windows for DLL loading fix: add DLL directory for Windows libcint loading fix: force shared lib build on Windows fix: add MinGW bin to PATH for Windows DLL loading fix: copy MinGW runtime DLLs to lib dir on Windows fix: manually copy MinGW runtime DLLs for Windows fix: pre-load libcint.dll on Windows before importing pyd fix: static link libcint + MinGW runtime on Windows fix: static link MinGW runtime for .pyd on Windows fix: add MinGW bin to PATH in conftest for Windows DLL loading fix: set MinGW PATH before pytest collection via pytest_configure fix: explicitly C-contiguous array for Windows libcint overlap
skip: libcint tests on Windows CI - heap corruption in MinGW build
San1357
force-pushed
the
pr-11/final-PR
branch
from
August 13, 2026 05:50
fed05d7 to
6360595
Compare
msricher
requested changes
Aug 13, 2026
msricher
left a comment
Collaborator
There was a problem hiding this comment.
Can you run the C code through clang-format again? Otherwise, check that the C code naming conventions match the Python names well enough, and please make the changes suggested in my comments. Thanks!
Comment on lines
+247
to
+252
| Raises | ||
| ------ | ||
| ValueError | ||
| If ``coord_type`` is not 'spherical' or 'cartesian'. | ||
|
|
||
|
|
Collaborator
There was a problem hiding this comment.
Can you make these keyword arguments consistent? Sometimes "spherical"|"cartesian" is used, sometimes "sph"|"cart".
Comment on lines
+733
to
+741
| pytest.param(["He"], np.asarray([[0.0, 0.0, 0.0]]), "He", "spherical", id="He-sph"), | ||
| pytest.param(["C"], np.asarray([[0.0, 0.0, 0.0]]), "C", "spherical", id="C-sph"), | ||
| pytest.param(["H", "He"], np.asarray([[0.0, 0.0, 0.0], [1.5117, 0.0, 0.0]]), "H_He", "spherical", id="H_He-sph"), | ||
| pytest.param(["Be", "C"], np.asarray([[0.0, 0.0, 0.0], [1.8897, 0.0, 0.0]]), "Be_C", "spherical", id="Be_C-sph"), | ||
| pytest.param(["He"], np.asarray([[0.0, 0.0, 0.0]]), "He", "cartesian", id="He-cart"), | ||
| pytest.param(["C"], np.asarray([[0.0, 0.0, 0.0]]), "C", "cartesian", id="C-cart"), | ||
| pytest.param(["H", "He"], np.asarray([[0.0, 0.0, 0.0], [1.5117, 0.0, 0.0]]), "H_He", "cartesian", id="H_He-cart"), | ||
| pytest.param(["Be", "C"], np.asarray([[0.0, 0.0, 0.0], [1.8897, 0.0, 0.0]]), "Be_C", "cartesian", id="Be_C-cart"), | ||
| ] |
Collaborator
There was a problem hiding this comment.
If you load the reference arrays from a file, there's no need to include these placeholder [0, ..., 0] arrays in the parameter lists. You can remove them, and the corresponding arguments to the test functions where they are used.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Here is the Problem statement:
#229
Summary
Related PRs
Checklist
Type of Changes
Closes #229