aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Barbieri <lssndrbarbieri@gmail.com>2020-05-03 20:59:09 +0200
committerAlessandro Barbieri <lssndrbarbieri@gmail.com>2020-05-07 01:35:55 +0200
commit634f8d92dc88baf041f835d16d51aadeba3912f0 (patch)
treebb5b748a4ae0f916d38206783b867a6270e8c32d /sci-libs
parentdev-python/ufoLib2: version bump (diff)
downloadguru-634f8d92dc88baf041f835d16d51aadeba3912f0.tar.gz
guru-634f8d92dc88baf041f835d16d51aadeba3912f0.tar.bz2
guru-634f8d92dc88baf041f835d16d51aadeba3912f0.zip
sci-libs/slicot: new package
Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/slicot/Manifest1
-rwxr-xr-xsci-libs/slicot/files/Makefile26
-rw-r--r--sci-libs/slicot/metadata.xml30
-rw-r--r--sci-libs/slicot/slicot-5.0_p20101122.ebuild57
4 files changed, 114 insertions, 0 deletions
diff --git a/sci-libs/slicot/Manifest b/sci-libs/slicot/Manifest
new file mode 100644
index 000000000..ac5de032d
--- /dev/null
+++ b/sci-libs/slicot/Manifest
@@ -0,0 +1 @@
+DIST slicot_5.0+20101122.orig.tar.gz 2489463 BLAKE2B dc34617f84b51f6be9bb471b30dd8d7cf3dd67b1a0d6ec14af33ccd49aee33ee39b657af6d619059da42734d86eb23e0faf7827db36152001263c4c131234aad SHA512 bef2707bf484636a5c58325561e3f342f08887458020c4922a2b346b88047b48e3f2d372c5c984226856be5c327f2535c32cf299baa553b8bf0fbeea896d6c9b
diff --git a/sci-libs/slicot/files/Makefile b/sci-libs/slicot/files/Makefile
new file mode 100755
index 000000000..f15cc0846
--- /dev/null
+++ b/sci-libs/slicot/files/Makefile
@@ -0,0 +1,26 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+.PHONY: default
+default: libslicot.so
+
+SLICOT_SRC=$(sort $(shell echo src/*.f))
+SLICOT_OBJ=$(SLICOT_SRC:.f=.o)
+
+shared_dir:
+ mkdir -p $(subst _dir,,$(@))
+ touch $@
+
+$(subst src/,shared/,$(SLICOT_OBJ)): \
+ shared/%.o : src/%.f shared_dir
+
+ $(F77) $(FFLAGS) -fPIC -c $< -o $@
+
+libslicot.so: libslicot.so.$(SO)
+ ln -snf $< $@
+
+libslicot.so.$(SO): libslicot.so.$(VERS)
+ ln -snf $< $@
+
+libslicot.so.$(VERS): $(subst src/,shared/,$(SLICOT_OBJ))
+ $(F77) -fPIC ${FFLAGS} $(LDFLAGS) -shared -Wl,-soname=libslicot.so.$(SO) -o $@ $^
diff --git a/sci-libs/slicot/metadata.xml b/sci-libs/slicot/metadata.xml
new file mode 100644
index 000000000..4aaef1d4d
--- /dev/null
+++ b/sci-libs/slicot/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>lssndrbarbieri@gmail.com</email>
+ <name>Alessandro Barbieri</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>mailto:vsima@ici.ro</bugs-to>
+ <maintainer>
+ <email>vsima@ici.ro</email>
+ <name>Vasile Sima</name>
+ </maintainer>
+ </upstream>
+ <longdescription lang="en">
+The subroutine library SLICOT provides Fortran 77 implementations of numerical algorithms for computations in systems and control theory. Based on numerical linear algebra routines from BLAS and LAPACK libraries, SLICOT provides methods for the design and analysis of control systems. The basic ideas behind the library are:
+
+ usefulness of algorithms;
+ robustness, algorithms must either return reliable results or an error or warning indicator;
+ numerical stability and accuracy: the results are as good as can be expected when working at a given precision. If possible an estimate of the achieved accuracy should be given;
+ performance with respect to speed and memory requirements. Although important because of ever increasing complexity of control problems, this objective may never be met at cost of the two previous ones;
+ portability and reusability: the library should be independent of platforms;
+ standardisation: the library is based on rigorous programming and documentation standards;
+ benchmarking, i.e., a standardised set of examples that allows an evaluation of the performance of a method as well as the implementation with respect to correctness, accuracy, and speed. Benchmarking gives also insight in the behaviour of the method and its implementation in extreme situations, i.e., for problems where the limit of the possible accuracy is reached.
+
+The current version of SLICOT consists of over 570 user-callable and computational routines in various domains of systems and control. Almost all of these routines have associated on-line documentation. Over 240 routines have associated example programs, data and results. New routines are still in preparation. Due to the use of Fortran 77, reusability of the software is obtained, so SLICOT can serve as the core for various existing and future CACSD platforms and production quality software. SLICOT routines can be linked to MATLAB through a gateway compiler, e.g., the NAG Gateway Generator. Recently, MATLAB or Scilab interfaces have been developed for many routines.
+
+The use of Fortran 77 allows to exploit the structural features of the underlying computational problem and the use of appropriate data structures. This is advantageous for speed of computation and required memory. As the complexity of systems and related control solutions is ever increasing, the issue of speed and memory remains a valid one. The performance of the library has been assessed with respect to numerical quality, computational speed, and memory requirements for a variety of examples. Comparisons indicate that SLICOT routines usually outperform equivalent MATLAB functions, often by orders of magnitude; see Benner e.a. (1997).
+ </longdescription>
+</pkgmetadata>
diff --git a/sci-libs/slicot/slicot-5.0_p20101122.ebuild b/sci-libs/slicot/slicot-5.0_p20101122.ebuild
new file mode 100644
index 000000000..214605082
--- /dev/null
+++ b/sci-libs/slicot/slicot-5.0_p20101122.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic fortran-2 toolchain-funcs
+
+MY_PV="${PV/_p/+}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Subroutine Library in Systems and Control Theory"
+HOMEPAGE="https://web.archive.org/web/20191022092917/http://www.slicot.org"
+SRC_URI="http://cdn-fastly.deb.debian.org/debian/pool/main/s/${PN}/${PN}_${MY_PV}.orig.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="doc examples"
+
+DEPEND="
+ virtual/blas
+ virtual/lapack
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+ default
+ rm -f "${S}/makefile" || die
+ cp "${FILESDIR}/Makefile" "${S}" || die
+}
+
+src_prepare() {
+ export SO="0"
+ export VERS="${SO}.0"
+ append-fflags "$($(tc-getPKG_CONFIG) --libs blas)" "$($(tc-getPKG_CONFIG) --libs lapack)"
+ default
+}
+
+src_install() {
+ dolib.so libslicot.so
+ dolib.so "libslicot.so.${SO}"
+ dolib.so "libslicot.so.${VERS}"
+ use doc && HTML_DOCS=( libindex.html )
+ use doc && HTML_DOCS+=( doc/*.html )
+ einstalldocs
+ if use examples; then
+ insinto "/usr/share/${P}/examples"
+ doins -r examples/.
+ insinto "/usr/share/${P}/examples77"
+ doins -r examples77/.
+ insinto "/usr/share/${P}/benchmark_data"
+ doins -r benchmark_data/.
+ fi
+}