From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id BC9AF138359 for ; Thu, 7 May 2020 11:13:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E7C1CE094B; Thu, 7 May 2020 11:13:57 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id AC35DE094B for ; Thu, 7 May 2020 11:13:57 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A737E34F594 for ; Thu, 7 May 2020 11:13:55 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2F1E21F2 for ; Thu, 7 May 2020 11:13:53 +0000 (UTC) From: "Andrew Ammerlaan" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andrew Ammerlaan" Message-ID: <1588808155.634f8d92dc88baf041f835d16d51aadeba3912f0.andrewammerlaan@gentoo> Subject: [gentoo-commits] repo/proj/guru:master commit in: sci-libs/slicot/files/, sci-libs/slicot/ X-VCS-Repository: repo/proj/guru X-VCS-Files: sci-libs/slicot/Manifest sci-libs/slicot/files/Makefile sci-libs/slicot/metadata.xml sci-libs/slicot/slicot-5.0_p20101122.ebuild X-VCS-Directories: sci-libs/slicot/files/ sci-libs/slicot/ X-VCS-Committer: andrewammerlaan X-VCS-Committer-Name: Andrew Ammerlaan X-VCS-Revision: 634f8d92dc88baf041f835d16d51aadeba3912f0 X-VCS-Branch: master Date: Thu, 7 May 2020 11:13:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: ea5133ca-5ea1-430b-951a-073656ed6057 X-Archives-Hash: 8298fd7db6230b2d518cad15d7d65ba6 commit: 634f8d92dc88baf041f835d16d51aadeba3912f0 Author: Alessandro Barbieri gmail com> AuthorDate: Sun May 3 18:59:09 2020 +0000 Commit: Andrew Ammerlaan riseup net> CommitDate: Wed May 6 23:35:55 2020 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=634f8d92 sci-libs/slicot: new package Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Alessandro Barbieri gmail.com> sci-libs/slicot/Manifest | 1 + sci-libs/slicot/files/Makefile | 26 +++++++++++++ sci-libs/slicot/metadata.xml | 30 +++++++++++++++ sci-libs/slicot/slicot-5.0_p20101122.ebuild | 57 +++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+) diff --git a/sci-libs/slicot/Manifest b/sci-libs/slicot/Manifest new file mode 100644 index 0000000..ac5de03 --- /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 0000000..f15cc08 --- /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 0000000..4aaef1d --- /dev/null +++ b/sci-libs/slicot/metadata.xml @@ -0,0 +1,30 @@ + + + + + lssndrbarbieri@gmail.com + Alessandro Barbieri + + + mailto:vsima@ici.ro + + vsima@ici.ro + Vasile Sima + + + +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). + + 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 0000000..2146050 --- /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 +}