summaryrefslogtreecommitdiff
path: root/gnu/packages/python-science.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-07-07 14:28:05 +0200
committerRicardo Wurmus <rekado@elephly.net>2022-07-08 18:41:35 +0200
commit684c718e6a2fe47ea0f44f112cc2edf40df6a158 (patch)
tree29e7bca68d16d82f1d8b55f215306a76f2f8795b /gnu/packages/python-science.scm
parentc6136b48c2fb0c4a6521dcc923358946ec50b8d8 (diff)
downloadguix-patches-684c718e6a2fe47ea0f44f112cc2edf40df6a158.tar
guix-patches-684c718e6a2fe47ea0f44f112cc2edf40df6a158.tar.gz
gnu: Add python-opt-einsum.
* gnu/packages/python-science.scm (python-opt-einsum): New variable.
Diffstat (limited to 'gnu/packages/python-science.scm')
-rw-r--r--gnu/packages/python-science.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 747c84d493..428ce48b53 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -1403,3 +1403,35 @@ data as HDF5. It can save any Python data structure, offering the same ease
of use as pickling or @code{numpy.save}, but with the language
interoperability offered by HDF5.")
(license license:bsd-3)))
+
+(define-public python-opt-einsum
+ (package
+ (name "python-opt-einsum")
+ (version "3.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "opt_einsum" version))
+ (sha256
+ (base32
+ "0jb5lia0q742d1713jk33vlj41y61sf52j6pgk7pvhxvfxglgxjr"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
+ (propagated-inputs (list python-numpy))
+ (native-inputs (list python-pytest python-pytest-cov python-pytest-pep8))
+ (home-page "https://github.com/dgasmith/opt_einsum")
+ (synopsis "Optimizing numpys einsum function")
+ (description
+ "Optimized einsum can significantly reduce the overall execution time of
+einsum-like expressions by optimizing the expression's contraction order and
+dispatching many operations to canonical BLAS, cuBLAS, or other specialized
+routines. Optimized einsum is agnostic to the backend and can handle NumPy,
+Dask, PyTorch, Tensorflow, CuPy, Sparse, Theano, JAX, and Autograd arrays as
+well as potentially any library which conforms to a standard API. See the
+documentation for more information.")
+ (license license:expat)))