From: <par...@us...> - 2012-02-28 12:44:28
|
Revision: 9717 http://octave.svn.sourceforge.net/octave/?rev=9717&view=rev Author: paramaniac Date: 2012-02-28 12:44:16 +0000 (Tue, 28 Feb 2012) Log Message: ----------- control-devel: reorganize makefile, similar to control package Modified Paths: -------------- trunk/octave-forge/extra/control-devel/DESCRIPTION trunk/octave-forge/extra/control-devel/Makefile trunk/octave-forge/extra/control-devel/devel/makefile_devel.m trunk/octave-forge/extra/control-devel/inst/@iddata/iddata.m trunk/octave-forge/extra/control-devel/src/Makefile trunk/octave-forge/extra/control-devel/src/common.cc trunk/octave-forge/extra/control-devel/src/slib01ad.cc Added Paths: ----------- trunk/octave-forge/extra/control-devel/src/common.h trunk/octave-forge/extra/control-devel/src/devel_slicot_functions.cc trunk/octave-forge/extra/control-devel/src/readme Modified: trunk/octave-forge/extra/control-devel/DESCRIPTION =================================================================== --- trunk/octave-forge/extra/control-devel/DESCRIPTION 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/DESCRIPTION 2012-02-28 12:44:16 UTC (rev 9717) @@ -1,11 +1,11 @@ Name: Control-Devel -Version: 0.1.50 -Date: 2011-10-16 +Version: 0.1.51 +Date: 2012-02-28 Author: Lukas Reichlin <luk...@gm...> Maintainer: Lukas Reichlin <luk...@gm...> Title: Control Systems Developer's Playground Description: SLICOT system identification plus model and controller reduction -Depends: octave (>= 3.3.90), control (>= 2.2.0), control (< 2.4.0) +Depends: octave (>= 3.6.0), control (>= 2.3.49), control (< 2.4.0) Autoload: yes License: GPL version 3 or later Url: http://octave.sf.net, http://www.slicot.org Modified: trunk/octave-forge/extra/control-devel/Makefile =================================================================== --- trunk/octave-forge/extra/control-devel/Makefile 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/Makefile 2012-02-28 12:44:16 UTC (rev 9717) @@ -1,6 +1,6 @@ sinclude ../../Makeconf -PKG_FILES = COPYING DESCRIPTION INDEX $(wildcard inst/*) +PKG_FILES = COPYING DESCRIPTION INDEX INFO $(wildcard inst/*) SUBDIRS = doc/ .PHONY: $(SUBDIRS) Modified: trunk/octave-forge/extra/control-devel/devel/makefile_devel.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/makefile_devel.m 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/devel/makefile_devel.m 2012-02-28 12:44:16 UTC (rev 9717) @@ -12,10 +12,7 @@ srcdir = [develdir, "/../src"]; cd (srcdir); -%makefile_conred -%makefile_ident -%makefile_modred - +## system ("make realclean"); # recompile slicotlibrary.a system ("make clean"); system ("make -j4 all"); system ("rm *.o"); Modified: trunk/octave-forge/extra/control-devel/inst/@iddata/iddata.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/@iddata/iddata.m 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/inst/@iddata/iddata.m 2012-02-28 12:44:16 UTC (rev 9717) @@ -76,6 +76,7 @@ dat = struct ("y", {y}, "outname", {outname}, "outunit", {outname}, "u", {u}, "inname", {inname}, "inunit", {inname}, "tsam", {tsam}, "timeunit", {""}, + "timedomain", true, "expname", {expname}, "name", "", "notes", {{}}, "userdata", []); Modified: trunk/octave-forge/extra/control-devel/src/Makefile =================================================================== --- trunk/octave-forge/extra/control-devel/src/Makefile 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/src/Makefile 2012-02-28 12:44:16 UTC (rev 9717) @@ -1,3 +1,5 @@ +OCTAVE ?= octave + LAPACK_LIBS := $(shell mkoctfile -p LAPACK_LIBS) BLAS_LIBS := $(shell mkoctfile -p BLAS_LIBS) FLIBS := $(shell mkoctfile -p FLIBS) @@ -2,57 +4,22 @@ -all: slab09hd.oct slab09id.oct slab09jd.oct slsb16ad.oct slsb16bd.oct \ - slsb16cd.oct slsb10yd.oct +all: devel_slicot_functions.oct -# TODO: leading and trailing underscores for sl* functions -# (__sl*__.oct) would be nice, but this can be an issue -# for fortran compilers. - +# unpack and compile SLICOT library slicotlibrary.a: slicot.tar.gz tar -xzf slicot.tar.gz mv slicot/src/*.f . mv slicot/src_aux/*.f . - mkoctfile *.f \ - ${LAPACK_LIBS} ${BLAS_LIBS} ${FLIBS} + mkoctfile -c *.f ar -r slicotlibrary.a *.o - rm -rf *.o *.f AB01MD.oct slicot + rm -rf *.o *.f slicot -# balanced stochastic truncation model reduction -slab09hd.oct: slab09hd.cc slicotlibrary.a - mkoctfile slab09hd.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} +# slicot functions +devel_slicot_functions.oct: devel_slicot_functions.cc slicotlibrary.a + mkoctfile devel_slicot_functions.cc common.cc slicotlibrary.a \ + ${LAPACK_LIBS} ${BLAS_LIBS} ${FLIBS} -# balanced truncation & singular perturbation approximation model reduction -slab09id.oct: slab09id.cc slicotlibrary.a - mkoctfile slab09id.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - -# hankel-norm approximation model reduction -slab09jd.oct: slab09jd.cc slicotlibrary.a - mkoctfile slab09jd.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - -# balanced truncation & singular perturbation approximation controller reduction -slsb16ad.oct: slsb16ad.cc slicotlibrary.a - mkoctfile slsb16ad.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - -# coprime factorization state-feedback controller reduction -slsb16bd.oct: slsb16bd.cc slicotlibrary.a - mkoctfile slsb16bd.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - -# frequency-weighted coprime factorization state-feedback controller reduction -slsb16cd.oct: slsb16cd.cc slicotlibrary.a - mkoctfile slsb16cd.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - -# fit state-space model to frequency response data -slsb10yd.oct: slsb10yd.cc slicotlibrary.a - mkoctfile slsb10yd.cc slicotlibrary.a \ - ${LAPACK_LIBS} ${BLAS_LIBS} - clean: - rm -rf *.o core octave-core *.oct *~ *.a *.f slicot + rm -rf *.o core octave-core *.oct *~ *.f slicot realclean: clean - rm -rf *.a + rm -rf *.a \ No newline at end of file Modified: trunk/octave-forge/extra/control-devel/src/common.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/common.cc 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/src/common.cc 2012-02-28 12:44:16 UTC (rev 9717) @@ -26,6 +26,8 @@ */ +#include <octave/oct.h> + int max (int a, int b) { if (a > b) Added: trunk/octave-forge/extra/control-devel/src/common.h =================================================================== --- trunk/octave-forge/extra/control-devel/src/common.h (rev 0) +++ trunk/octave-forge/extra/control-devel/src/common.h 2012-02-28 12:44:16 UTC (rev 9717) @@ -0,0 +1,40 @@ +/* + +Copyright (C) 2012 Lukas F. Reichlin + +This file is part of LTI Syncope. + +LTI Syncope is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +LTI Syncope is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with LTI Syncope. If not, see <http://www.gnu.org/licenses/>. + +Common code for oct-files. + +Author: Lukas Reichlin <luk...@gm...> +Created: February 2012 +Version: 0.1 + +*/ + +#ifndef COMMON_H +#define COMMON_H + +int max (int a, int b); +int max (int a, int b, int c); +int max (int a, int b, int c, int d); +int max (int a, int b, int c, int d, int e); +int min (int a, int b); +void error_msg (const char name[], int index, int max, const char* msg[]); +void warning_msg (const char name[], int index, int max, const char* msg[]); +void warning_msg (const char name[], int index, int max, const char* msg[], int offset); + +#endif Added: trunk/octave-forge/extra/control-devel/src/devel_slicot_functions.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/devel_slicot_functions.cc (rev 0) +++ trunk/octave-forge/extra/control-devel/src/devel_slicot_functions.cc 2012-02-28 12:44:16 UTC (rev 9717) @@ -0,0 +1 @@ +#include "slib01ad.cc" // preprocess the input-output data Added: trunk/octave-forge/extra/control-devel/src/readme =================================================================== --- trunk/octave-forge/extra/control-devel/src/readme (rev 0) +++ trunk/octave-forge/extra/control-devel/src/readme 2012-02-28 12:44:16 UTC (rev 9717) @@ -0,0 +1,69 @@ +SLICOT Library Root Directory +----------------------------- + +SLICOT - Subroutine Library In COntrol Theory - is a general purpose basic +mathematical library for control theoretical computations. The library +provides tools to perform essential system analysis and synthesis tasks. +The main emphasis in SLICOT is on numerical reliability of implemented +algorithms and the numerical robustness and efficiency of routines. +Providing algorithmic flexibility and the use of rigorous implementation +and documentation standards are other SLICOT features. + +The SLICOT Library is available as standard Fortran 77 code in double +precision. Each user-callable subroutine for control computations is +accompanied by an example program which illustrates the use of the +subroutine and can act as a template for the user's own routines. + +The SLICOT Library is organized by chapters, sections and subsections. +The following chapters are currently included: + +A : Analysis Routines +B : Benchmark and Test Problems +D : Data Analysis +F : Filtering +I : Identification +M : Mathematical Routines +N : Nonlinear Systems + (not yet available, except for some auxiliary routines for Wiener systems) +S : Synthesis Routines +T : Transformation Routines +U : Utility Routines + +SLICOT Library Root Directory contains few, basic files for the SLICOT Library +distribution and generation. When distributed, SLICOT software comes with +several filled-in subdirectories (benchmark_data, doc, examples, examples77, +src, and src_aux), and five files in this root +directory: +- this file, readme, +- the file Installation.txt, describing the SLICOT software installation, +- the main SLICOT Library documentation index, libindex.html, and +- two template files for building the object library and executable programs, + make.inc and makefile, +- GNU GENERAL PUBLIC LICENSE Version 2 text file. +The last two files might need few changes for being adapted to the specific +platform used. Details about installing/updating the SLICOT software are +given in the file Installation.txt. + +After software installation, this directory will also contain the library +file slicot.a or slicot.lib, for Unix or Windows platforms, respectively. +The library file could then be linked in applications programs, as usual. +Specific examples are contained in the directories examples and examples77. +The on-line documentation of the SLICOT user's callable routines is +accessible via the main SLICOT Library documentation index, libindex.html. +This file also contains a link to the documentation of the lower-level, +support routines. + +The SLICOT Library is built on LAPACK (Linear Algebra PACKage) and BLAS +(Basic Linear Algebra Subprograms) collections. Therefore, these +packages should be available on the platform used. + +Basic References: + +1. P. Benner, V. Mehrmann, V. Sima, S. Van Huffel, and A. Varga, + "SLICOT - A Subroutine Library in Systems and Control Theory", + Applied and Computational Control, Signals, and Circuits + (Birkhauser), Vol. 1, Ch. 10, pp. 505-546, 1999. + +2. S. Van Huffel, V. Sima, A. Varga, S. Hammarling, and F. Delebecque, + "Development of High Performance Numerical Software for Control", + IEEE Control Systems Magazine, Vol. 24, Nr. 1, Feb., pp. 60-76, 2004. Modified: trunk/octave-forge/extra/control-devel/src/slib01ad.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/slib01ad.cc 2012-02-28 07:48:47 UTC (rev 9716) +++ trunk/octave-forge/extra/control-devel/src/slib01ad.cc 2012-02-28 12:44:16 UTC (rev 9717) @@ -29,7 +29,7 @@ #include <octave/oct.h> #include <f77-fcn.h> -#include "common.cc" +#include "common.h" extern "C" { @@ -50,7 +50,8 @@ double* DWORK, int& LDWORK, int& IWARN, int& INFO); } - + +// PKG_ADD: autoload ("slib01ad", "devel_slicot_functions.oct"); DEFUN_DLD (slib01ad, args, nargout, "-*- texinfo -*-\n\ Slicot IB01AD Release 5.0\n\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |