diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 5e6e81e65e..53ae581a7e 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -23,6 +23,7 @@ #:use-module (guix packages) #:use-module (gnu packages compression) #:use-module (gnu packages graphics) + #:use-module (gnu packages maths) #:use-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages tls)) @@ -1889,3 +1890,46 @@ implemented in Julia Base: @code{get}, @code{eltype}, @code{convert}, @code{promote}, @code{show}, @code{map}, @code{broadcast}, @code{filter}, @code{isequal}, @code{isless} and @code{hash}.") (license license:expat))) + +(define-public julia-specialfunctions + (package + (name "julia-specialfunctions") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaMath/SpecialFunctions.jl") + (commit (string-append "v" version)))) + (file-name "SpecialFunctions") + (sha256 + (base32 "05kz4x06wcp785ivy8v6z69qcfxsjw86npf52xjic9a8rnnlcqj4")))) + (propagated-inputs `(("julia-bindeps" ,julia-bindeps) + ("julia-binaryprovider" ,julia-binaryprovider) + ("openspecfun" ,openspecfun))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'precompile 'build-deps + (lambda* (#:key outputs source inputs #:allow-other-keys) + (let ((f (open-file + (string-append + (assoc-ref outputs "out") + "/share/julia/packages/" + (string-append + (strip-store-file-name source) "/deps/deps.jl")) + "w"))) + (display (string-append "const openspecfun = \"" + (assoc-ref inputs "openspecfun") + "/lib/libopenspecfun.so\"\n") f) + (display "check_deps() = true\n" f) + (close-port f)) + #t))))) + (build-system julia-build-system) + (home-page "https://juliamath.github.io/SpecialFunctions.jl/stable/") + (synopsis "Special mathematical functions in Julia") + (description "Special mathematical functions in Julia, including Bessel, +Hankel, Airy, error, Dawson, sine and cosine integrals, eta, zeta, digamma, +inverse digamma, trigamma, and polygamma functions. Most of these functions +were formerly part of Base in early versions of Julia.") + (license license:expat)))