summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/maths.scm71
1 files changed, 71 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ecc8cece440..0f320675580 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -76,6 +76,7 @@
76;;; Copyright © 2026 Peter Polidoro <peter@polidoro.io> 76;;; Copyright © 2026 Peter Polidoro <peter@polidoro.io>
77;;; Copyright © 2026 Luca Alloatti <luca-guix@f-si.org> 77;;; Copyright © 2026 Luca Alloatti <luca-guix@f-si.org>
78;;; Copyright © 2026 Akiyoshi Suda <code@akiyoshisuda.com> 78;;; Copyright © 2026 Akiyoshi Suda <code@akiyoshisuda.com>
79;;; Copyright © 2026 Orahcio Felício de Sousa <orahcio@gmail.com>
79;;; 80;;;
80;;; This file is part of GNU Guix. 81;;; This file is part of GNU Guix.
81;;; 82;;;
@@ -108,6 +109,7 @@
108 #:use-module (guix build-system copy) 109 #:use-module (guix build-system copy)
109 #:use-module (guix build-system dune) 110 #:use-module (guix build-system dune)
110 #:use-module (guix build-system glib-or-gtk) 111 #:use-module (guix build-system glib-or-gtk)
112 #:use-module (guix build-system go)
111 #:use-module (guix build-system gnu) 113 #:use-module (guix build-system gnu)
112 #:use-module (guix build-system meson) 114 #:use-module (guix build-system meson)
113 #:use-module (guix build-system ocaml) 115 #:use-module (guix build-system ocaml)
@@ -518,6 +520,75 @@ programming languages.")
518problems. It processes input in the standard SMT-LIB format.") 520problems. It processes input in the standard SMT-LIB format.")
519 (license (list license:expat license:bsd-3)))) 521 (license (list license:expat license:bsd-3))))
520 522
523(define-public go-github-com-cpmech-gosl
524 (package
525 (name "go-github-com-cpmech-gosl")
526 (version "1.2.12")
527 (source
528 (origin
529 (method git-fetch)
530 (uri (git-reference
531 (url "https://github.com/cpmech/gosl")
532 (commit (string-append "v" version))))
533 (file-name (git-file-name name version))
534 (sha256
535 (base32 "1gfx8wqfrxsssprdf3ccgm60nv65dgsygwrx0a1ajga3lzp6iw2d"))))
536 (build-system go-build-system)
537 (arguments
538 (list
539 #:skip-build? #t
540 #:import-path "github.com/cpmech/gosl"
541 #:test-flags #~(list "-vet=off")
542 #:phases
543 #~(modify-phases %standard-phases
544 ;; Adapt la flags for Guix libraries.
545 (add-after 'unpack 'patch-la-flags
546 (lambda* (#:key import-path #:allow-other-keys)
547 (substitute* (string-append "src/" import-path "/la/flags.go")
548 (("_seq") "")))))))
549 (propagated-inputs
550 (list fftw
551 gfortran
552 (list gfortran "lib")
553 lapack
554 metis
555 mumps
556 openblas
557 suitesparse))
558 (home-page "https://github.com/cpmech/gosl")
559 (synopsis "Go Scientific Library")
560 (description
561 "Gosl is a set of tools for developing scientific simulations using the
562Go programing language. It provides numerical methods and solvers for
563differential equations but also present some functions for @acronym{Fast
564Fourier Transforms, FFT}, the generation of random numbers, probability
565distributions, and computational geometry.
566
567Gosl includes the following Go packages:
568
569@itemize
570@item @code{chk} - to check numerical results and for unit testing
571@item @code{fun} - special functions, DFT, FFT, Bessel, elliptical integrals,
572orthogonal polynomials, interpolators
573@item @code{gm} - geometry algorithms and structures
574@item @code{hb} - pseudo hierarchical binary (hb) data file format
575@item @code{io} - input/output, including printing to the terminal and
576handling files
577@item @code{la} - linear algebra: vector, matrix, efficient sparse solvers,
578eigenvalues, decompositions
579@item @code{num} - fundamental numerical methods such as root solvers,
580non-linear solvers, numerical derivatives, and quadrature
581@item @code{ode} - solvers for ordinary differential equations
582@item @code{opt} - numerical optimization: Interior Point, Conjugate
583Gradients, Powell, Grad Descent
584@item @code{pde} - solvers for partial differential equations (FDM, Spectral,
585FEM)
586@item @code{rnd} - random numbers and probability distributions
587@item @code{utl} - to generate series (e.g., linspace) and other functions as
588in pylab/matlab/octave
589@end itemize")
590 (license license:bsd-3)))
591
521(define-public qdldl 592(define-public qdldl
522 (package 593 (package
523 (name "qdldl") 594 (name "qdldl")