diff --git a/.conda/meta.yaml b/.conda/meta.yaml index 12942a2..13ccb91 100644 --- a/.conda/meta.yaml +++ b/.conda/meta.yaml @@ -21,12 +21,12 @@ requirements: - scipy - setuptools - wheel - - spm-lab::pylibsparseir >=0.8.3,<0.13.0 + - spm-lab::pylibsparseir >=0.8.3,!=0.13.*,<0.15.0 run: - numpy - python - scipy - - spm-lab::pylibsparseir >=0.8.3,<0.13.0 + - spm-lab::pylibsparseir >=0.8.3,!=0.13.*,<0.15.0 #test: # imports: diff --git a/README.rst b/README.rst index bb8227c..7fbd74b 100644 --- a/README.rst +++ b/README.rst @@ -25,6 +25,16 @@ sparse-ir requires `numpy `_, `scipy `_, and `pylibsparseir `_ (a thin Python wrapper for the libsparseir C API from `sparse-ir-rs `_). +The prebuilt ``pylibsparseir`` (0.14 on) uses the fused multiply-add (FMA) +instruction, which every aarch64 CPU and every x86-64 CPU since 2013 has. On a +CPU without it, ``import sparse_ir`` raises a ``RuntimeError`` naming the +requirement instead of crashing. There, build ``pylibsparseir`` from its +repository with FMA turned off (a Rust toolchain is needed):: + + RUSTFLAGS="-C target-feature=-fma" pip install "pylibsparseir @ git+https://github.com/SpM-lab/sparse-ir-rs@v0.14.0#subdirectory=python" + +(0.13 also needs FMA but lacks the check, so this package does not accept it.) + To manually install the current development version, you can use the following:: # Only recommended for developers - no automatic updates! diff --git a/pyproject.toml b/pyproject.toml index b57937a..97756c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "sparse-ir" -version = "2.1.6" +version = "2.1.7" description = "Python bindings for the libsparseir library, providing efficient sparse intermediate representation for many-body physics calculations" readme = "README.rst" requires-python = ">=3.10" dependencies = [ "numpy", "scipy", - "pylibsparseir>=0.8.3,<0.13.0", + "pylibsparseir>=0.8.3,!=0.13.*,<0.15.0", ] authors = [ {name = "SpM-lab"}