From: <par...@us...> - 2011-10-16 19:59:08
|
Revision: 8756 http://octave.svn.sourceforge.net/octave/?rev=8756&view=rev Author: paramaniac Date: 2011-10-16 19:59:02 +0000 (Sun, 16 Oct 2011) Log Message: ----------- control: cleaning up devel folder Added Paths: ----------- trunk/octave-forge/extra/control-devel/devel/REDUCTION_METHODS Removed Paths: ------------- trunk/octave-forge/main/control/devel/slred/ Copied: trunk/octave-forge/extra/control-devel/devel/REDUCTION_METHODS (from rev 8755, trunk/octave-forge/main/control/devel/slred/REDUCTION_METHODS) =================================================================== --- trunk/octave-forge/extra/control-devel/devel/REDUCTION_METHODS (rev 0) +++ trunk/octave-forge/extra/control-devel/devel/REDUCTION_METHODS 2011-10-16 19:59:02 UTC (rev 8756) @@ -0,0 +1,57 @@ +Reduction Methods + +absolute/additive error + BTA balanced truncation + SPA singular perturbation approximation + HNA Hankel-norm approximation + +relative/multiplicative error + BST balanced stochastic truncation + + +modred Model Reduction + +AB 09 ID - BTA SR + - BTA BFSR + - SPA SR + - SPA BFSR + FW BTA SR + FW BTA BFSR + FW SPA SR + FW SPA BFSR + +AB 09 JD - HNA + FW HNA + +AB 09 HD BST BTA SR + BST BTA BFSR + BST SPA SR + BST SPA BFSR + + +conred Controller Reduction + +SB 16 AD - BTA SR + - BTA BFSR + - SPA SR + - SPA BFSR + FW BTA SR + FW BTA BFSR + FW SPA SR + FW SPA BFSR + +SB 16 BD CF BTA SR + CF BTA BFSR + CF SPA SR + CF SPA BFSR + +SB 16 CD FWCF BTA SR + FWCF BTA BFSR + + + +FW frequency-weighted +CF coprime factorization + +SR square-root +BFSR balancing-free square-root \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-10-19 13:13:10
|
Revision: 8787 http://octave.svn.sourceforge.net/octave/?rev=8787&view=rev Author: carandraug Date: 2011-10-19 13:13:00 +0000 (Wed, 19 Oct 2011) Log Message: ----------- E-mail address of Jaroslav Hajek to copyright notices Modified Paths: -------------- trunk/octave-forge/extra/bugfix-3.0.5/inst/intersect.m trunk/octave-forge/extra/oct2mat/inst/oct2mat trunk/octave-forge/extra/oct2mat/inst/test_oct2mat.m trunk/octave-forge/main/benchmark/DESCRIPTION trunk/octave-forge/main/general/inst/adresamp2.m trunk/octave-forge/main/general/inst/pararrayfun.m trunk/octave-forge/main/general/inst/unresamp2.m trunk/octave-forge/main/general/inst/unvech.m trunk/octave-forge/main/general/inst/ztvals.m trunk/octave-forge/main/linear-algebra/inst/cod.m trunk/octave-forge/main/linear-algebra/inst/ndcovlt.m trunk/octave-forge/main/linear-algebra/inst/smwsolve.m trunk/octave-forge/main/linear-algebra/src/mgorth.cc trunk/octave-forge/main/struct/src/structcat.cc Modified: trunk/octave-forge/extra/bugfix-3.0.5/inst/intersect.m =================================================================== --- trunk/octave-forge/extra/bugfix-3.0.5/inst/intersect.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/extra/bugfix-3.0.5/inst/intersect.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,4 +1,4 @@ -## Copyright (C) 2008, 2009 Jaroslav Hajek +## Copyright (C) 2008, 2009 Jaroslav Hajek <hi...@gm...> ## Copyright (C) 2000, 2006, 2007 Paul Kienzle ## ## This file is part of Octave. Modified: trunk/octave-forge/extra/oct2mat/inst/oct2mat =================================================================== --- trunk/octave-forge/extra/oct2mat/inst/oct2mat 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/extra/oct2mat/inst/oct2mat 2011-10-19 13:13:00 UTC (rev 8787) @@ -7,7 +7,7 @@ # $Id$ # Copyright 2001,2002,2003,2004 Paul Kienzle # Copyright 2010 Alois Schloegl -# Copyright 2010 Jaroslav Hajek +# Copyright 2010 Jaroslav Hajek <hi...@gm...> # This is part of Octave-Forge's Oct2Mat toolbox # # Goal: automatically convert most octave code so that it will run on matlab. Modified: trunk/octave-forge/extra/oct2mat/inst/test_oct2mat.m =================================================================== --- trunk/octave-forge/extra/oct2mat/inst/test_oct2mat.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/extra/oct2mat/inst/test_oct2mat.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,7 @@ ## test_oct2mat is a script for testing oct2mat conversion ## -## Copyright (C) 2010 Jaroslav Hajek, Alois Schloegl +## Copyright (C) 2010 Jaroslav Hajek <hi...@gm...> +## Copyright (C0 2010 Alois Schloegl b=zeros(5); c=ones(5); @@ -178,13 +179,13 @@ aa=bb>=cc=dd; kk += 1; - ++drows; - ++drows ; 4, - i += 1; - val *= 1000; - coeff -= 1; - val /= 1000; - coeff += 1; + ++drows; + ++drows ; 4, + i += 1; + val *= 1000; + coeff -= 1; + val /= 1000; + coeff += 1; aa = dd.(kk); Modified: trunk/octave-forge/main/benchmark/DESCRIPTION =================================================================== --- trunk/octave-forge/main/benchmark/DESCRIPTION 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/benchmark/DESCRIPTION 2011-10-19 13:13:00 UTC (rev 8787) @@ -3,7 +3,7 @@ Date: 2009-04-15 Author: Octave community Title: Benchmarks for Octave -Maintainer: Jaroslav Hajek (hi...@gm...) +Maintainer: Jaroslav Hajek <hi...@gm...> Description: The package contains code used to benchmark speed of Octave. License: GPL v2 Depends: octave (>= 2.9.7) Modified: trunk/octave-forge/main/general/inst/adresamp2.m =================================================================== --- trunk/octave-forge/main/general/inst/adresamp2.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/general/inst/adresamp2.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,6 @@ ## Copyright (C) 2009 VZLU Prague, a.s., Czech Republic ## -## Author: Jaroslav Hajek +## Author: Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/general/inst/pararrayfun.m =================================================================== --- trunk/octave-forge/main/general/inst/pararrayfun.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/general/inst/pararrayfun.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,4 +1,4 @@ -## Copyright (C) 2009 Jaroslav Hajek +## Copyright (C) 2009 Jaroslav Hajek <hi...@gm...> ## Copyright (C) 2009 VZLU Prague, a.s., Czech Republic ## ## Author: Jaroslav Hajek <hi...@gm...> Modified: trunk/octave-forge/main/general/inst/unresamp2.m =================================================================== --- trunk/octave-forge/main/general/inst/unresamp2.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/general/inst/unresamp2.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,6 @@ ## Copyright (C) 2009 VZLU Prague, a.s., Czech Republic ## -## Author: Jaroslav Hajek +## Author: Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/general/inst/unvech.m =================================================================== --- trunk/octave-forge/main/general/inst/unvech.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/general/inst/unvech.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,5 +1,5 @@ ## Copyright (C) 2006 Michael Creel <mic...@ua...> -## Copyright (C) 2009 Jaroslav Hajek +## Copyright (C) 2009 Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/general/inst/ztvals.m =================================================================== --- trunk/octave-forge/main/general/inst/ztvals.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/general/inst/ztvals.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,4 +1,4 @@ -## Copyright (C) 2009 Jaroslav Hajek +## Copyright (C) 2009 Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/linear-algebra/inst/cod.m =================================================================== --- trunk/octave-forge/main/linear-algebra/inst/cod.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/linear-algebra/inst/cod.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,6 @@ ## Copyright (C) 2009 VZLU Prague, a.s., Czech Republic ## -## Author: Jaroslav Hajek +## Author: Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/linear-algebra/inst/ndcovlt.m =================================================================== --- trunk/octave-forge/main/linear-algebra/inst/ndcovlt.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/linear-algebra/inst/ndcovlt.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,6 @@ ## Copyright (C) 2010 VZLU Prague, a.s., Czech Republic ## -## Author: Jaroslav Hajek +## Author: Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/linear-algebra/inst/smwsolve.m =================================================================== --- trunk/octave-forge/main/linear-algebra/inst/smwsolve.m 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/linear-algebra/inst/smwsolve.m 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,6 +1,6 @@ ## Copyright (C) 2009 VZLU Prague, a.s., Czech Republic ## -## Author: Jaroslav Hajek +## Author: Jaroslav Hajek <hi...@gm...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/linear-algebra/src/mgorth.cc =================================================================== --- trunk/octave-forge/main/linear-algebra/src/mgorth.cc 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/linear-algebra/src/mgorth.cc 2011-10-19 13:13:00 UTC (rev 8787) @@ -16,7 +16,7 @@ along with this file. If not, see <http://www.gnu.org/licenses/>. Author: Carlo de Falco <cdf _AT_ users _DOT_ sourceforge _DOT_ net> - Jaroslav Hajek + Jaroslav Hajek <hi...@gm...> */ Modified: trunk/octave-forge/main/struct/src/structcat.cc =================================================================== --- trunk/octave-forge/main/struct/src/structcat.cc 2011-10-19 11:32:24 UTC (rev 8786) +++ trunk/octave-forge/main/struct/src/structcat.cc 2011-10-19 13:13:00 UTC (rev 8787) @@ -1,7 +1,7 @@ /* Copyright (C) 2009 John W. Eaton -Copyright (C) 2009 Jaroslav Hajek +Copyright (C) 2009 Jaroslav Hajek <hi...@gm...> Copyright (C) 2010, 2011 Olaf Till This program is free software; you can redistribute it and/or modify This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-10-24 14:36:23
|
Revision: 8851 http://octave.svn.sourceforge.net/octave/?rev=8851&view=rev Author: carandraug Date: 2011-10-24 14:36:16 +0000 (Mon, 24 Oct 2011) Log Message: ----------- removing empty seealso from help text that can break with generate_html Modified Paths: -------------- trunk/octave-forge/extra/bim/inst/bim2c_tri_to_nodes.m trunk/octave-forge/main/financial/inst/rsindex.m trunk/octave-forge/main/miscellaneous/inst/read_options.m trunk/octave-forge/main/miscellaneous/inst/slurp_file.m trunk/octave-forge/main/miscellaneous/inst/temp_name.m trunk/octave-forge/main/nnet/inst/newp.m Modified: trunk/octave-forge/extra/bim/inst/bim2c_tri_to_nodes.m =================================================================== --- trunk/octave-forge/extra/bim/inst/bim2c_tri_to_nodes.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/extra/bim/inst/bim2c_tri_to_nodes.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -26,7 +26,6 @@ ## If repeatedly performing interpolation on the same mesh the matrix @var{m_tri} obtained by a previous call ## to @code{bim2c_tri_to_nodes} may be passed as input to avoid unnecessary computations. ## -## @seealso{} ## @end deftypefn @@ -67,4 +66,4 @@ %! u_tri = randn (nel, 1); %! un1 = bim2c_tri_to_nodes (msh, u_tri); %! [un2, m] = bim2c_tri_to_nodes (msh, u_tri); -%! assert (un1, un2, 1e-10) \ No newline at end of file +%! assert (un1, un2, 1e-10) Modified: trunk/octave-forge/main/financial/inst/rsindex.m =================================================================== --- trunk/octave-forge/main/financial/inst/rsindex.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/main/financial/inst/rsindex.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -26,7 +26,6 @@ ## The beginning of the @var{rsi} is padded with nans to match the size ## of @var{closeprice}. ## -## @seealso{} ## @end deftypefn function rsi = rsindex (cl, n) Modified: trunk/octave-forge/main/miscellaneous/inst/read_options.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/read_options.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/main/miscellaneous/inst/read_options.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -59,7 +59,6 @@ ## [is_man, is_plane, flies] = getfields (s,"is_man", "is_plane", "flies") ## pre 2.1.39 function [op,nread] = read_options (args, ...) ## @end example -## @seealso{} ## @end deftypefn function [op,nread] = read_options (args, varargin) ## pos 2.1.39 Modified: trunk/octave-forge/main/miscellaneous/inst/slurp_file.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/slurp_file.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/main/miscellaneous/inst/slurp_file.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -21,7 +21,6 @@ ## If @var{f} is not an absolute filename, and ## is not an immediately accessible file, slurp_file () ## will look for @var{f} in the path. -## @seealso{} ## @end deftypefn ## Author : Etienne Grossmann <et...@cs...> Modified: trunk/octave-forge/main/miscellaneous/inst/temp_name.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/temp_name.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/main/miscellaneous/inst/temp_name.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -26,7 +26,6 @@ ## temp_name() will find the smallest acceptable number for the name. ## Otherwise, a hopefully quicker method is used. ## -## @seealso{} ## @end deftypefn function n = temp_name (rootname, quick) Modified: trunk/octave-forge/main/nnet/inst/newp.m =================================================================== --- trunk/octave-forge/main/nnet/inst/newp.m 2011-10-24 14:05:20 UTC (rev 8850) +++ trunk/octave-forge/main/nnet/inst/newp.m 2011-10-24 14:36:16 UTC (rev 8851) @@ -36,8 +36,6 @@ ## ## @end deftypefn -## @seealso{} - ## Author: Michel D. Schmid function net = newp(Pr,ss,transFunc,learnFunc) @@ -142,4 +140,4 @@ # ======================================================== -endfunction \ No newline at end of file +endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-11-03 01:27:54
|
Revision: 8950 http://octave.svn.sourceforge.net/octave/?rev=8950&view=rev Author: carandraug Date: 2011-11-03 01:27:47 +0000 (Thu, 03 Nov 2011) Log Message: ----------- removal of deprecated functions: loadimage, spdiag, split, clearplot, diag, weibull_cdf, clg Modified Paths: -------------- trunk/octave-forge/extra/MacOSX/src/image.m.in trunk/octave-forge/extra/Windows/src/image.m.in trunk/octave-forge/main/comm/inst/comms.m trunk/octave-forge/main/econometrics/inst/kernel_example.m trunk/octave-forge/main/fixed/inst/fixedpoint.m trunk/octave-forge/main/gsl/inst/test_ellint.m trunk/octave-forge/main/gsl/inst/test_hyperg.m trunk/octave-forge/main/gsl/src/test/check.m trunk/octave-forge/main/image/INDEX trunk/octave-forge/main/miscellaneous/inst/hilbert_curve.m trunk/octave-forge/main/miscellaneous/inst/peano_curve.m trunk/octave-forge/main/miscellaneous/inst/xmlwrite.m trunk/octave-forge/main/miscellaneous/inst/z_curve.m trunk/octave-forge/main/octgpr/inst/rbf_centers.m trunk/octave-forge/main/odebvp/inst/lfdif.m trunk/octave-forge/main/plot/inst/dxfwrite.m trunk/octave-forge/main/signal/inst/pburg.m trunk/octave-forge/main/signal/inst/pyulear.m trunk/octave-forge/main/statistics/inst/anderson_darling_test.m Modified: trunk/octave-forge/extra/MacOSX/src/image.m.in =================================================================== --- trunk/octave-forge/extra/MacOSX/src/image.m.in 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/extra/MacOSX/src/image.m.in 2011-11-03 01:27:47 UTC (rev 8950) @@ -40,7 +40,7 @@ if (nargin == 0) ## Load Bobbie Jo Richardson (Born 3/16/94) - A = loadimage ("default.img"); + A = imread ("default.img"); zoom = 2; elseif (nargin == 1) A = x; Modified: trunk/octave-forge/extra/Windows/src/image.m.in =================================================================== --- trunk/octave-forge/extra/Windows/src/image.m.in 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/extra/Windows/src/image.m.in 2011-11-03 01:27:47 UTC (rev 8950) @@ -38,7 +38,7 @@ function image (x, y, A, zoom) if (nargin == 0) ## Load Bobbie Jo Richardson (Born 3/16/94) - A = loadimage ("default.img"); + A = imread ("default.img"); zoom = []; elseif (nargin == 1) A = x; Modified: trunk/octave-forge/main/comm/inst/comms.m =================================================================== --- trunk/octave-forge/main/comm/inst/comms.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/comm/inst/comms.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -97,11 +97,11 @@ help ("comms"); elseif (strcmp(typ,"info")) infopaths = ["."]; - if (!isempty(split(path,":"))) - infopaths =[infopaths; split(path,":")]; + if (!isempty(char(strsplit (path, ":")))) + infopaths =[infopaths; char(strsplit (path, ":"))]; endif - if (!isempty(split(DEFAULT_LOADPATH,":"))) - infopaths =[infopaths; split(DEFAULT_LOADPATH,":")]; + if (!isempty(char(strsplit (DEFAULT_LOADPATH, ":")))) + infopaths =[infopaths; char(strsplit (DEFAULT_LOADPATH, ":"))]; endif for i=1:size(infopaths,1) infopath = deblank(infopaths(i,:)); @@ -109,7 +109,7 @@ if (len) if (len > 1 && strcmp(infopath([len-1, len]),"//")) [status, showfile] = system(["find '", infopath(1:len-1), ... - "' -name ", infofile]); + "' -name ", infofile]); else [status, showfile] = system(["find '", infopath, "' -name ", ... infofile, " -maxdepth 1"]); Modified: trunk/octave-forge/main/econometrics/inst/kernel_example.m =================================================================== --- trunk/octave-forge/main/econometrics/inst/kernel_example.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/econometrics/inst/kernel_example.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -109,7 +109,7 @@ printf("########################################################################\n"); printf("kernel regression example with several sample sizes serial/parallel timings\n"); figure(); - clg; + clf; title("Compute time versus nodes, kernel regression with different sample sizes"); xlabel("nodes"); ylabel("time (sec)"); Modified: trunk/octave-forge/main/fixed/inst/fixedpoint.m =================================================================== --- trunk/octave-forge/main/fixed/inst/fixedpoint.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/fixed/inst/fixedpoint.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -93,11 +93,11 @@ help ("fixedpoint"); elseif (strcmp(typ,"info")) infopaths = ["."]; - if (!isempty(split(path,":"))) - infopaths =[infopaths; split(path,":")]; + if (!isempty(char (strsplit (path, ":")))) + infopaths =[infopaths; char (strsplit (path, ":"))]; endif - if (!isempty(split(DEFAULT_LOADPATH,":"))) - infopaths =[infopaths; split(DEFAULT_LOADPATH,":")]; + if (!isempty(char (strsplit (DEFAULT_LOADPATH, ":")))) + infopaths =[infopaths; char (strsplit (DEFAULT_LOADPATH, ":"))]; endif for i=1:size(infopaths,1) infopath = deblank(infopaths(i,:)); @@ -105,10 +105,10 @@ if (len) if (len > 1 && strcmp(infopath([len-1, len]),"//")) [status, showfile] = system(["find '", infopath(1:len-1), ... - "' -name ", infofile]); + "' -name ", infofile]); else [status, showfile] = system(["find '", infopath, "' -name ", ... - infofile, " -maxdepth 1"]); + infofile, " -maxdepth 1"]); endif if (length(showfile)) break; Modified: trunk/octave-forge/main/gsl/inst/test_ellint.m =================================================================== --- trunk/octave-forge/main/gsl/inst/test_ellint.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/gsl/inst/test_ellint.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -77,7 +77,7 @@ str_p=index(input_line,"gsl_sf_ellint_Kcomp_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=(string_split(5,:)); @@ -98,7 +98,7 @@ str_p=index(input_line,"gsl_sf_ellint_Ecomp_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=(string_split(5,:)); Modified: trunk/octave-forge/main/gsl/inst/test_hyperg.m =================================================================== --- trunk/octave-forge/main/gsl/inst/test_hyperg.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/gsl/inst/test_hyperg.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -82,7 +82,7 @@ str_p=index(input_line,"hyperg_1F1_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=str2double(string_split(5,:)); @@ -103,7 +103,7 @@ str_p=index(input_line,"hyperg_U_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=str2double(string_split(5,:)); Modified: trunk/octave-forge/main/gsl/src/test/check.m =================================================================== --- trunk/octave-forge/main/gsl/src/test/check.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/gsl/src/test/check.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -82,7 +82,7 @@ str_p=index(input_line,"hyperg_1F1_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=str2double(string_split(5,:)); @@ -98,12 +98,12 @@ else printf("\n Failed KummerM: %s\n value=%e, computed=%e, tol=%e, returned error=%e ",input_line,val,ret,tol,err) printf("\n error %e", abs((ret-val)/val)) - endif + endif endif str_p=index(input_line,"hyperg_U_e"); if (str_p != 0) # Take it apart - string_split=split(input_line,","); + string_split=char (strsplit (input_line, ",")); arg1=str2double(substr(string_split(3,:),3)); arg2=str2double(string_split(4,:)); arg3=str2double(string_split(5,:)); @@ -119,7 +119,7 @@ else printf("\n Failed KummerU: %s\n value=%e, computed=%e, tol=%e, returned error=%e ",input_line,val,ret,tol,err) printf("\n error %e", abs((ret-val)/val)) - endif + endif endif endwhile fclose(source_id); @@ -133,7 +133,7 @@ hyperg_U(1,1,mat1) hyperg_U(1,mat1,1) hyperg_U(mat1,1,1) - hyperg_U(mat1,mat1,mat1) + hyperg_U(mat1,mat1,mat1) res=""; end Modified: trunk/octave-forge/main/image/INDEX =================================================================== --- trunk/octave-forge/main/image/INDEX 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/image/INDEX 2011-11-03 01:27:47 UTC (rev 8950) @@ -75,6 +75,7 @@ imdilate imopen imclose + imbothat imtophat mmgradm Colour controls Modified: trunk/octave-forge/main/miscellaneous/inst/hilbert_curve.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/hilbert_curve.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/miscellaneous/inst/hilbert_curve.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -71,7 +71,7 @@ %!error hilbert_curve (n); %!demo -%! clg +%! clf %! n = 4; %! [x, y] = hilbert_curve (n); %! line (x, y, "linewidth", 4, "color", "blue"); @@ -80,10 +80,10 @@ %! % with 4 points on each axis. %!demo -%! clg +%! clf %! n = 64; %! [x, y] = hilbert_curve (n); %! line (x, y, "linewidth", 2, "color", "blue"); %! % ---------------------------------------------------------------------- %! % the figure window shows an iteration of the Hilbert space-fillig curve -%! % with 64 points on each axis. \ No newline at end of file +%! % with 64 points on each axis. Modified: trunk/octave-forge/main/miscellaneous/inst/peano_curve.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/peano_curve.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/miscellaneous/inst/peano_curve.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -82,7 +82,7 @@ %!error peano_curve (n); %!demo -%! clg +%! clf %! n = 9; %! [x, y] = peano_curve (n); %! line (x, y, "linewidth", 4, "color", "red"); @@ -91,10 +91,10 @@ %! % with 9 points on each axis. %!demo -%! clg +%! clf %! n = 81; %! [x, y] = peano_curve (n); %! line (x, y, "linewidth", 2, "color", "red"); %! % -------------------------------------------------------------------- %! % the figure window shows an iteration of the Peano space-fillig curve -%! % with 81 points on each axis. \ No newline at end of file +%! % with 81 points on each axis. Modified: trunk/octave-forge/main/miscellaneous/inst/xmlwrite.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/xmlwrite.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/miscellaneous/inst/xmlwrite.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -40,8 +40,8 @@ isopen = false; if ischar(filename) - ## Check file name - sn = split(filename, "."); + ## Check file name + sn = char (strsplit (filename, ".")); if !strcmp(tolower(deblank(sn(end,:))), "xml") filename = [filename, ".xml"]; endif Modified: trunk/octave-forge/main/miscellaneous/inst/z_curve.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/z_curve.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/miscellaneous/inst/z_curve.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -73,7 +73,7 @@ %!error z_curve (n); %!demo -%! clg +%! clf %! n = 4; %! [x, y] = z_curve (n); %! line (x, y, "linewidth", 4, "color", "blue"); @@ -82,10 +82,10 @@ %! % with 4 points on each axis. %!demo -%! clg +%! clf %! n = 32; %! [x, y] = z_curve (n); %! line (x, y, "linewidth", 2, "color", "blue"); %! % ---------------------------------------------------------------------- %! % the figure window shows an iteration of the Z-order space-fillig curve -%! % with 32 points on each axis. \ No newline at end of file +%! % with 32 points on each axis. Modified: trunk/octave-forge/main/octgpr/inst/rbf_centers.m =================================================================== --- trunk/octave-forge/main/octgpr/inst/rbf_centers.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/octgpr/inst/rbf_centers.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -83,7 +83,7 @@ endif if (nargin == 3) - U = dmult (U, 1./theta); + diag (U) * (1./theta); if (any(theta == 0)) U(:,theta == 0) = 0; endif Modified: trunk/octave-forge/main/odebvp/inst/lfdif.m =================================================================== --- trunk/octave-forge/main/odebvp/inst/lfdif.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/odebvp/inst/lfdif.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -52,7 +52,7 @@ b = -1 +(h / 2.) * p(x); c = -1 - (h / 2.) * p(x); - A = spdiag(c(2 : n), -1) + spdiag(a) + spdiag(b(1 : n - 1), 1); + A = sparse(diag(c(2 : n)), -1) + sparse(diag(a)) + sparse(diag(b(1 : n - 1), 1)); d(1) = -h^2 * r(x(1)) + (1 + (h / 2.) * p(x(1))) * alpha; d(2 : n - 1) = -h^2 * r(x(2 : n - 1)); Modified: trunk/octave-forge/main/plot/inst/dxfwrite.m =================================================================== --- trunk/octave-forge/main/plot/inst/dxfwrite.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/plot/inst/dxfwrite.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -26,7 +26,7 @@ function [nb] = dxfwrite (filename, varargin) ## Check file name - sn = split(filename, "."); + sn = char (strsplit (filename, ".")); if !strcmp(tolower(deblank(sn(end,:))), "dxf") filename = [filename, ".dxf"]; endif Modified: trunk/octave-forge/main/signal/inst/pburg.m =================================================================== --- trunk/octave-forge/main/signal/inst/pburg.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/signal/inst/pburg.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -146,4 +146,4 @@ %! pburg(skewed,7,user_freq,Fs,'AKICc','semilogy'); %! input('User-specified frequency values. Press ENTER', 's' ); %! hold off -%! clearplot +%! clf Modified: trunk/octave-forge/main/signal/inst/pyulear.m =================================================================== --- trunk/octave-forge/main/signal/inst/pyulear.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/signal/inst/pyulear.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -117,4 +117,4 @@ %! pyulear(skewed,7,user_freq,Fs,'semilogy'); %! input('User-specified frequency values. Press ENTER', 's' ); %! hold off -%! clearplot +%! clf Modified: trunk/octave-forge/main/statistics/inst/anderson_darling_test.m =================================================================== --- trunk/octave-forge/main/statistics/inst/anderson_darling_test.m 2011-11-03 00:20:56 UTC (rev 8949) +++ trunk/octave-forge/main/statistics/inst/anderson_darling_test.m 2011-11-03 01:27:47 UTC (rev 8950) @@ -86,7 +86,7 @@ qvals = [ 0.1, 0.05, 0.025, 0.01 ]; Acrit = [ 0.637, 0.757, 0.877, 1.038]; ## XXX FIXME XXX how to fit alpha and sigma? - x = weibull_cdf(x,ones(n,1)*alpha,ones(n,1)*sigma); + x = wblcdf (x, ones(n,1)*sigma, ones(n,1)*alpha); case 'exponential', adj = 1 + 0.6/n; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-11-06 12:57:41
|
Revision: 9008 http://octave.svn.sourceforge.net/octave/?rev=9008&view=rev Author: carandraug Date: 2011-11-06 12:57:33 +0000 (Sun, 06 Nov 2011) Log Message: ----------- Updated Thomas Treichl e-mail address Modified Paths: -------------- trunk/octave-forge/AUTHORS trunk/octave-forge/admin/MacOSX/Octave.app/dmgpacker/Readme.css trunk/octave-forge/main/miscellaneous/inst/asci.m trunk/octave-forge/main/odepkg/DESCRIPTION trunk/octave-forge/main/odepkg/doc/odepkg.texi trunk/octave-forge/main/odepkg/inst/ode23.m trunk/octave-forge/main/odepkg/inst/ode23d.m trunk/octave-forge/main/odepkg/inst/ode45.m trunk/octave-forge/main/odepkg/inst/ode45d.m trunk/octave-forge/main/odepkg/inst/ode54.m trunk/octave-forge/main/odepkg/inst/ode54d.m trunk/octave-forge/main/odepkg/inst/ode78.m trunk/octave-forge/main/odepkg/inst/ode78d.m trunk/octave-forge/main/odepkg/inst/odeexamples.m trunk/octave-forge/main/odepkg/inst/odeget.m trunk/octave-forge/main/odepkg/inst/odephas2.m trunk/octave-forge/main/odepkg/inst/odephas3.m trunk/octave-forge/main/odepkg/inst/odepkg.m trunk/octave-forge/main/odepkg/inst/odepkg_event_handle.m trunk/octave-forge/main/odepkg/inst/odepkg_examples_dae.m trunk/octave-forge/main/odepkg/inst/odepkg_examples_dde.m trunk/octave-forge/main/odepkg/inst/odepkg_examples_ide.m trunk/octave-forge/main/odepkg/inst/odepkg_examples_ode.m trunk/octave-forge/main/odepkg/inst/odepkg_structure_check.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcmescd.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcscd.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_chemakzo.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_hires.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implakzo.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implrober.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_impltrans.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_oregonator.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_pollution.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_robertson.m trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_transistor.m trunk/octave-forge/main/odepkg/inst/odeplot.m trunk/octave-forge/main/odepkg/inst/odeprint.m trunk/octave-forge/main/odepkg/inst/odeset.m trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.cc trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.h trunk/octave-forge/main/odepkg/src/odepkg_octsolver_ddaskr.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfdae.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfi.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau5.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_seulex.cc trunk/octave-forge/main/optim/inst/optim_problems.m Modified: trunk/octave-forge/AUTHORS =================================================================== --- trunk/octave-forge/AUTHORS 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/AUTHORS 2011-11-06 12:57:33 UTC (rev 9008) @@ -148,7 +148,7 @@ S\xF8ren Hauberg <hauberg at gmail dot com> Teemu Ikonen <tpi...@pc...> Thomas Kasper, <tho...@gm...> -Thomas Treichl <tr...@us...> +Thomas Treichl <tho...@gm...> Tiago Charters de Azevedo <tc...@di...> Tomer Altman <ta...@lb...> Torsten Finke <fi...@ig...> Modified: trunk/octave-forge/admin/MacOSX/Octave.app/dmgpacker/Readme.css =================================================================== --- trunk/octave-forge/admin/MacOSX/Octave.app/dmgpacker/Readme.css 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/admin/MacOSX/Octave.app/dmgpacker/Readme.css 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -/* Copyright (c) 2008 Thomas Treichl <tr...@us...> */ +/* Copyright (c) 2008 Thomas Treichl <tho...@gm...> */ /* Permission is granted to copy, distribute and/or modify this document */ /* under the terms of the GNU Free Documentation License, Version 1.2 */ /* or any later version published by the Free Software Foundation; */ Modified: trunk/octave-forge/main/miscellaneous/inst/asci.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/asci.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/miscellaneous/inst/asci.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008, Thomas Treichl <tho...@gm...> %# %# This program is free software; you can redistribute it and/or modify %# it under the terms of the GNU General Public License as published by Modified: trunk/octave-forge/main/odepkg/DESCRIPTION =================================================================== --- trunk/octave-forge/main/odepkg/DESCRIPTION 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/DESCRIPTION 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,8 +1,8 @@ Name: OdePkg Version: 0.8.0 Date: 2011-06-16 -Author: Thomas Treichl <tr...@us...> -Maintainer: Thomas Treichl <tr...@us...> +Author: Thomas Treichl <tho...@gm...> +Maintainer: Thomas Treichl <tho...@gm...> Title: OdePkg Description: A package for solving ordinary differential equations and more. Categories: Differential Equations Modified: trunk/octave-forge/main/odepkg/doc/odepkg.texi =================================================================== --- trunk/octave-forge/main/odepkg/doc/odepkg.texi 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/doc/odepkg.texi 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ \input texinfo @c -*-texinfo-*- -@c Copyright (c) 2006-2011, Thomas Treichl <tr...@us...> +@c Copyright (c) 2006-2011, Thomas Treichl <tho...@gm...> @c OdePkg - A package for solving ordinary differential equations and more @c For manually generating the documentation use Modified: trunk/octave-forge/main/odepkg/inst/ode23.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode23.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode23.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode23d.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode23d.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode23d.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode45.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode45.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode45.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode45d.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode45d.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode45d.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode54.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode54.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode54.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode54d.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode54d.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode54d.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode78.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode78.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode78.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/ode78d.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/ode78d.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/ode78d.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odeexamples.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odeexamples.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odeexamples.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odeget.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odeget.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odeget.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odephas2.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odephas2.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odephas2.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odephas3.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odephas3.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odephas3.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_event_handle.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_event_handle.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_event_handle.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_examples_dae.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_examples_dae.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_examples_dae.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_examples_dde.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_examples_dde.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_examples_dde.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_examples_ide.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_examples_ide.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_examples_ide.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_examples_ode.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_examples_ode.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_examples_ode.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2008, Thomas Treichl <tr...@us...> +%# Copyright (C) 2008, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_structure_check.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_structure_check.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_structure_check.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcmescd.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcmescd.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcmescd.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcscd.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcscd.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_calcscd.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_chemakzo.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_chemakzo.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_chemakzo.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_hires.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_hires.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_hires.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implakzo.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implakzo.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implakzo.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implrober.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implrober.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_implrober.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_impltrans.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_impltrans.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_impltrans.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_oregonator.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_oregonator.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_oregonator.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_pollution.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_pollution.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_pollution.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_robertson.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_robertson.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_robertson.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_transistor.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_transistor.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odepkg_testsuite_transistor.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2007-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2007-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odeplot.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odeplot.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odeplot.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odeprint.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odeprint.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odeprint.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/inst/odeset.m =================================================================== --- trunk/octave-forge/main/odepkg/inst/odeset.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/inst/odeset.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,4 +1,4 @@ -%# Copyright (C) 2006-2011, Thomas Treichl <tr...@us...> +%# Copyright (C) 2006-2011, Thomas Treichl <tho...@gm...> %# OdePkg - A package for solving ordinary differential equations and more %# %# This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.h =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.h 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_auxiliary_functions.h 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_ddaskr.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_ddaskr.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_ddaskr.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfdae.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfdae.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfdae.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfi.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfi.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_mebdfi.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau5.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau5.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_radau5.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_seulex.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_seulex.cc 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_seulex.cc 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,5 +1,5 @@ /* -Copyright (C) 2007-2009, Thomas Treichl <tr...@us...> +Copyright (C) 2007-2009, Thomas Treichl <tho...@gm...> OdePkg - A package for solving ordinary differential equations and more This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/optim/inst/optim_problems.m =================================================================== --- trunk/octave-forge/main/optim/inst/optim_problems.m 2011-11-06 07:20:33 UTC (rev 9007) +++ trunk/octave-forge/main/optim/inst/optim_problems.m 2011-11-06 12:57:33 UTC (rev 9008) @@ -1,6 +1,6 @@ %% Copyright (C) 2010 Olaf Till <ola...@un...> %% Copyright (C) 2007 Paul Kienzle (sort-based lookup in ODE solver) -%% Copyright (C) 2009 Thomas Treichl <tr...@us...> +%% Copyright (C) 2009 Thomas Treichl <tho...@gm...> %% (ode23 code) %% %% This program is free software; you can redistribute it and/or modify @@ -896,7 +896,7 @@ function [varargout] = essential_ode23 (vfun, vslot, vinit, vodeoptions) %% This code is taken from the ode23 solver of Thomas Treichl - %% <tr...@us...>, some flexibility of the + %% <tho...@gm...>, some flexibility of the %% interface has been removed. The idea behind this duplication is %% to have a fixed version of the solver here which runs both in %% Octave and Matlab. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-11-11 22:38:30
|
Revision: 9067 http://octave.svn.sourceforge.net/octave/?rev=9067&view=rev Author: carandraug Date: 2011-11-11 22:38:23 +0000 (Fri, 11 Nov 2011) Log Message: ----------- updating pkienzle e-mail address Modified Paths: -------------- trunk/octave-forge/extra/engine/src/Makefile trunk/octave-forge/extra/graceplot/inst/alternatives/print.m trunk/octave-forge/main/signal/inst/filtfilt.m trunk/octave-forge/main/signal/inst/impz.m trunk/octave-forge/main/signal/inst/kaiser.m trunk/octave-forge/main/signal/inst/sftrans.m trunk/octave-forge/main/signal/inst/xcorr.m trunk/octave-forge/main/signal/inst/xcorr2.m trunk/octave-forge/main/signal/src/medfilt1.cc trunk/octave-forge/main/struct/inst/setfields.m Modified: trunk/octave-forge/extra/engine/src/Makefile =================================================================== --- trunk/octave-forge/extra/engine/src/Makefile 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/extra/engine/src/Makefile 2011-11-11 22:38:23 UTC (rev 9067) @@ -2,7 +2,7 @@ # # Copyright (C) 1998 by Jesse Bennett. # -# 2000-11-23: Paul Kienzle (pki...@ki...) +# 2000-11-23: Paul Kienzle (pki...@us...) # - added -D_BSD_SOURCE to the compile options so mknod could be found # 2001-09-19 Paul Kienzle # - use default $(CC), $(AR) and $(RANLIB) Modified: trunk/octave-forge/extra/graceplot/inst/alternatives/print.m =================================================================== --- trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -80,7 +80,7 @@ ## 2001-03-23 Laurent Mazet <ma...@cr...> ## * simplified interface: guess the device from the extension ## * font support -## 2001-03-25 Paul Kienzle <pki...@ki...> +## 2001-03-25 Paul Kienzle <pki...@us...> ## * add unwind_protect ## * use tmpnam to generate temporary name ## * move "set term" before "set output" as required by gnuplot @@ -99,7 +99,7 @@ ## * correct correl into corel ## * delete a irrelevant test ## * check for convert before choosing the ouput device -## 2001-03-31 Paul Kienzle <pki...@ki...> +## 2001-03-31 Paul Kienzle <pki...@us...> ## * use -Ffontname:size instead of -F"fontname size" ## * add font size support to fig option ## * update documentation Modified: trunk/octave-forge/main/signal/inst/filtfilt.m =================================================================== --- trunk/octave-forge/main/signal/inst/filtfilt.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/filtfilt.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -31,7 +31,7 @@ ## plot(t,x,';data;',t,y,';filtfilt;',t,z,';filter;') ## Changelog: -## 2000 02 pki...@ki... +## 2000 02 pki...@us... ## - pad with zeros to load up the state vector on filter reverse. ## - add example ## 2007 12 po...@gn... Modified: trunk/octave-forge/main/signal/inst/impz.m =================================================================== --- trunk/octave-forge/main/signal/inst/impz.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/impz.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -25,7 +25,7 @@ ## ## See also: freqz, zplane -## 1999 pki...@ki... +## 1999 pki...@us... ## - if nargout=0, produce plot and don't set return values ## TODO: Call equivalent function from control toolbox since it is Modified: trunk/octave-forge/main/signal/inst/kaiser.m =================================================================== --- trunk/octave-forge/main/signal/inst/kaiser.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/kaiser.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -32,7 +32,7 @@ ## Author: Kurt Hornik <Kur...@ci...> ## Description: Coefficients of the Kaiser window -## 2000-02 Paul Kienzle (pki...@ki...) +## 2000-02 Paul Kienzle (pki...@us...) ## use besseli rather than jybess ## note, although Oppenheim & Schafer, 2nd edition has a formula ## which looks completely different than the one herein, it gives Modified: trunk/octave-forge/main/signal/inst/sftrans.m =================================================================== --- trunk/octave-forge/main/signal/inst/sftrans.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/sftrans.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -86,12 +86,12 @@ ## Author: Paul Kienzle <pki...@us...> -## 2000-03-01 pki...@ki... +## 2000-03-01 pki...@us... ## leave transformed Sg as a complex value since cheby2 blows up ## otherwise (but only for odd-order low-pass filters). bilinear ## will return Zg as real, so there is no visible change to the ## user of the IIR filter design functions. -## 2001-03-09 pki...@ki... +## 2001-03-09 pki...@us... ## return real Sg; don't know what to do for imaginary filters function [Sz, Sp, Sg] = sftrans(Sz, Sp, Sg, W, stop) Modified: trunk/octave-forge/main/signal/inst/xcorr.m =================================================================== --- trunk/octave-forge/main/signal/inst/xcorr.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/xcorr.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -104,12 +104,12 @@ ## Results are now returned in reverse order of before. ## The function is now compatible with Matlab (and with f.i. ## "Digital Signal Processing" by Proakis and Manolakis). -## 2000-03 pki...@ki... +## 2000-03 pki...@us... ## - use fft instead of brute force to compute correlations ## - allow row or column vectors as input, returning same ## - compute cross-correlations on columns of matrix X ## - compute complex correlations consitently with matlab -## 2000-04 pki...@ki... +## 2000-04 pki...@us... ## - fix test for real return value ## 2001-02-24 Paul Kienzle ## - remove all but one loop Modified: trunk/octave-forge/main/signal/inst/xcorr2.m =================================================================== --- trunk/octave-forge/main/signal/inst/xcorr2.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/inst/xcorr2.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -29,7 +29,7 @@ ## none - no scaling (this is the default). ## Author: Dave Cogdell <cog...@as...> -## 2000-05-02 Paul Kienzle <pki...@ki...> +## 2000-05-02 Paul Kienzle <pki...@us...> ## * joined R. Johnson's xcorr2f.m and Dave Cogdell's xcorr2x.m ## * adapted for Octave ## 2001-01-15 Paul Kienzle @@ -60,7 +60,7 @@ c = conv2 (a, conj (b (mb:-1:1, nb:-1:1))); ## bias routines by Dave Cogdell (cog...@as...) - ## optimized by Paul Kienzle (pki...@ki...) + ## optimized by Paul Kienzle (pki...@us...) if strcmp(lower(biasflag), 'biased'), c = c / ( min ([ma, mb]) * min ([na, nb]) ); elseif strcmp(lower(biasflag), 'unbiased'), Modified: trunk/octave-forge/main/signal/src/medfilt1.cc =================================================================== --- trunk/octave-forge/main/signal/src/medfilt1.cc 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/signal/src/medfilt1.cc 2011-11-11 22:38:23 UTC (rev 9067) @@ -8,7 +8,7 @@ * Mar 2000 - Kai Habel (kah...@li...) * Change: ColumnVector x=arg(i).vector_value(); * to: ColumnVector x=ColumnVector(arg(i).vector_value()); - * Oct 2000 - Paul Kienzle (pki...@ki...) + * Oct 2000 - Paul Kienzle (pki...@us...) * rewrite to ignore NaNs rather than replacing them with zero * extend to handle matrix arguments */ Modified: trunk/octave-forge/main/struct/inst/setfields.m =================================================================== --- trunk/octave-forge/main/struct/inst/setfields.m 2011-11-11 19:35:52 UTC (rev 9066) +++ trunk/octave-forge/main/struct/inst/setfields.m 2011-11-11 22:38:23 UTC (rev 9067) @@ -23,7 +23,7 @@ ## Author: Etienne Grossmann <et...@cs...> ## Last modified: January 2000 -## November 2000: Paul Kienzle <pki...@ki...> +## November 2000: Paul Kienzle <pki...@us...> ## return error rather than trapping to keyboard function s = setfields(s,varargin) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2011-11-20 20:14:37
|
Revision: 9149 http://octave.svn.sourceforge.net/octave/?rev=9149&view=rev Author: carandraug Date: 2011-11-20 20:14:29 +0000 (Sun, 20 Nov 2011) Log Message: ----------- Move NEWS file for package root so that pkg and news in core can find it during package install Modified Paths: -------------- trunk/octave-forge/admin/list_inactive_users.pl trunk/octave-forge/main/specfun/inst/Ci.m trunk/octave-forge/main/specfun/inst/Si.m trunk/octave-forge/main/specfun/inst/cosint.m trunk/octave-forge/main/specfun/inst/dirac.m trunk/octave-forge/main/specfun/inst/ellipj.m trunk/octave-forge/main/specfun/inst/ellipke.m trunk/octave-forge/main/specfun/inst/erfcinv.m trunk/octave-forge/main/specfun/inst/expint.m trunk/octave-forge/main/specfun/inst/expint_E1.m trunk/octave-forge/main/specfun/inst/expint_Ei.m trunk/octave-forge/main/specfun/inst/laguerre.m trunk/octave-forge/main/specfun/inst/lambertw.m trunk/octave-forge/main/specfun/inst/laplacian.m trunk/octave-forge/main/specfun/inst/sinint.m trunk/octave-forge/main/specfun/inst/zeta.m trunk/octave-forge/main/specfun/src/ellipj.cc trunk/octave-forge/main/statistics/NEWS Added Paths: ----------- trunk/octave-forge/main/control/NEWS trunk/octave-forge/main/mechanics/NEWS Removed Paths: ------------- trunk/octave-forge/main/control/doc/NEWS trunk/octave-forge/main/mechanics/doc/NEWS Modified: trunk/octave-forge/admin/list_inactive_users.pl =================================================================== --- trunk/octave-forge/admin/list_inactive_users.pl 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/admin/list_inactive_users.pl 2011-11-20 20:14:29 UTC (rev 9149) @@ -37,8 +37,8 @@ ################################################################################ ## Configuration variables ################################################################################ -my $repo_path = '~/development/octave-forge/'; # path for the repository -my $date_limit = '2010-04-01'; # give date in format YYYY-MM-DD +my $repo_path = '~/development/octave-forge/main/'; # path for the repository +my $date_limit = '2011-01-01'; # give date in format YYYY-MM-DD my $sf_dev_list = 'http://sourceforge.net/project/memberlist.php?group_id=2888'; # URL for sourceforge project member list ################################################################################ @@ -50,6 +50,7 @@ ## runs svn log -q -r my @output = `svn log -q -r HEAD:{$date_limit} $repo_path`; +my %active; foreach my $line (@output) { next if '-' eq substr $line, 0, 1; # next if 1st character is a dash ## the following regexp reads: a "r" at the start of the line followed by at @@ -61,12 +62,17 @@ $line =~ m/^r\d+\s+\|\s+((\w|\-)+)\s+/i; my $name = $1; ## delete key with the found username (NOT just remove the value) + $active{$name}++; delete $names{$name}; } ## get list of keys, sort them alphabetically and join them with a newline for print +say "These are inactive users since $date_limit"; say join ("\n", sort keys %names); +say "These are active users since $date_limit"; +for (sort keys %active) { + say "$active{$_}\t by $_"; +} - ## this function takes the URL for the page with the member list and returns an ## hash table with their usernames as keys. The values for the keys is always true. ## A hash was used instead of a list to make it easier and faster to search and Copied: trunk/octave-forge/main/control/NEWS (from rev 9148, trunk/octave-forge/main/control/doc/NEWS) =================================================================== --- trunk/octave-forge/main/control/NEWS (rev 0) +++ trunk/octave-forge/main/control/NEWS 2011-11-20 20:14:29 UTC (rev 9149) @@ -0,0 +1,228 @@ +Summary of important user-visible changes for releases of the control package + +=============================================================================== +control-2.2.2 Release Date: 2011-xx-yy Release Manager: Lukas Reichlin +=============================================================================== + +** Improved error messages for ARE solvers and robust control commands. + + +=============================================================================== +control-2.2.1 Release Date: 2011-10-24 Release Manager: Lukas Reichlin +=============================================================================== + +** tf + -- Fixed a nasty bug that prevented shortening of numerator and denominator + polynomials consisting solely of zeros. + -- MIMO support for descriptor state-space to transfer function conversion. + Usage: tf_sys = tf (dss_sys) + -- MIMO support for interconnections of non-proper transfer functions via + internal conversion to state-space. + +** ss + -- Support conversion from non-proper transfer function to descriptor state- + space. Usage: dss_sys = ss (tf_sys) + +** c2d, d2c + -- Support bilinear transformation of descriptor state-space models. + +** inv + -- Support the inversion of MIMO transfer functions. Inverses of 2x2 TFs are + computed directly, larger models are computed internally in state-space. + +** place + -- Return the number of fixed, assigned and uncontrollable poles in a single + "info" struct instead of three individual output arguments. + +** rlocus + -- Clarify usage statement in help string. + -- Check whether system is SISO. + +** MDSSystem + -- Display bode plots of controllers instead of singular value plots of the + closed loops. + +** hsvd + -- Added option "alpha" to specify the alpha-stability boundary for the + eigenvalues of the state dynamics matrix A. + +** isctrb, isobsv + -- Return number of controllable/observable states as a second output + argument. + +** doc/control.pdf + -- Added preface to PDF manual. + + +=============================================================================== +control-2.2.0 Release Date: 2011-09-26 Release Manager: Lukas Reichlin +=============================================================================== + +** ss + -- Transfer function to state-space conversion uses now SLICOT TD04AD. + Conversion of MIMO models is now supported. Usage: ss_sys = ss (tf_sys) + +** tf + -- Support for interconnections of MIMO transfer functions. This is done by + an internal conversion to a minimal state-space representation. With the + current tf2ss and ss2tf conversions, only proper transfer function are + supported. This limitation does not exist for SISO transfer functions. + -- Fixed a cellfun statement that caused problems on MinGW32 builds and + possibly some others. (Reported by Bernhard Weller) + +** pole, zero + -- Computation of poles and zeros of MIMO transfer functions is now possible + via conversion to state-space. Please note that the state-space + realization of SLICOT TD04AD is a minimal one. Therefore certain poles + and zeros might be missing. + +** zpk, zpkdata + -- Included wrappers that create transfer function models from zero-pole-gain + data (zpk) and zero-pole-gain data from lti models (zpkdata). They are + stop-gap measures for compatibility until ZPK models are implemented. + +** tfdata + -- "vector" option added. For SISO models, it returns numerator and + denominator directly as column vectors instead of cells containing a + single column vector. + +** doc/control.pdf + -- Revised PDF manual. + + +=============================================================================== +control-2.1.55 Release Date: 2011-09-07 Release Manager: Lukas Reichlin +=============================================================================== + +** c2d + -- Support for "tustin" and "prewarp" method added. + -- Transfer functions are now supported via the state-space methods. + -- Improved Texinfo string. + +** d2c + -- Discrete to continuous-time conversion added. However, support is + limited to the zero-order hold, tustin and pre-warping methods. + +** Conversion from descriptor to regular state-space is now performed by SLICOT + routine SB10JD. Better numerical results are to be expected over the + previous naive inversion formula. This conversion is used internally for + ssdata and some other functions. + + +=============================================================================== +control-2.1.54 Release Date: 2011-08-22 Release Manager: Lukas Reichlin +=============================================================================== + +** tf + -- State-space to transfer function conversion uses now SLICOT TB04BD. + Conversion of MIMO models is now supported. Usage: tf_sys = tf (ss_sys) + -- Display an empty line between title and numerator for better readability. + -- Display whether model is static, continuous- or discrete-time. + +** A PDF manual is included for the first time. It is located inside the "doc" + folder. It has been generated automatically from the Texinfo help strings + and is not yet completely sorted out. + + +=============================================================================== +control-2.1.53 Release Date: 2011-08-08 Release Manager: Lukas Reichlin +=============================================================================== + +** ncfsyn + -- Added support for McFarlane/Glover loop shaping design procedure. + "ncfsyn" stands for Normalized Coprime Factor Synthesis. + +** MDSSystem + -- Added example script which demonstrates the usage of the robust control + commands "mixsyn" and "ncfsyn". + +** Texinfo help strings of several functions have been extended, although + documentation still leaves a lot to be desired. + + +=============================================================================== +control-2.1.52 Release Date: 2011-07-27 Release Manager: Lukas Reichlin +=============================================================================== + +** hsvd + -- Use scaling unless state-space model property "scaled" is set to true. + +** norm + -- Use scaling for computation of L-infinity norm unless state-space model + property "scaled" is set to true. + +** minreal + -- Use scaling for state-space and descriptor state-space models unless + property "scaled" is set to true. + -- More accurate results are to be expected for descriptor state-space + models by performing only those reduction phases where effective order + reduction occurs. This is achieved by saving the system matrices before + each phase and restoring them if no order reduction took place. + +** zero + -- Use scaling for state-space and descriptor state-space models unless + property "scaled" is set to true. + +** frdata + -- The frequency response is now returned correctly as an array and not as a + vector, unless the "vector" option is set and the system is single-input + single-output. + -- Added help text. + + +=============================================================================== +control-2.1.51 Release Date: 2011-07-21 Release Manager: Lukas Reichlin +=============================================================================== + +** frd + -- Support for Frequency Response Data (frd) measurement "models". + + +=============================================================================== +control-2.1.50 Release Date: 2011-07-06 Release Manager: Lukas Reichlin +=============================================================================== + +** ss + -- Support for property "scaled". By default, it is set to "false". + +** prescale + -- Scaling for state-space models (SLICOT TB01ID) and descriptor models + (SLICOT TG01AD). + +** freqresp + -- Scale state-space models using @lti/prescale.m if property "scaled" is + set to "false". Frequency response commands now perform automatic + scaling unless model property "scaled" is set to "true". + + +=============================================================================== +control-2.0.2 Release Date: 2011-03-18 Release Manager: Lukas Reichlin +=============================================================================== + +** lsim + -- Fixed a logical error that refused valid initial state vectors. It was + due to a thinko introduced with the changes in control-2.0.1. + (Thanks to Rob Frohne) + + +=============================================================================== +control-2.0.1 Release Date: 2011-03-06 Release Manager: Lukas Reichlin +=============================================================================== + +** lsim + -- Support time vectors not starting at zero. (Thanks to Rob Frohne) + -- Improved help text. + +** zero + -- The gain of descriptor state-space models is now computed correctly. + (fingers crossed) + + +=============================================================================== +control-2.0.0 Release Date: 2011-02-08 Release Manager: Lukas Reichlin +=============================================================================== + +** First official release. + + +=============================================================================== Deleted: trunk/octave-forge/main/control/doc/NEWS =================================================================== --- trunk/octave-forge/main/control/doc/NEWS 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/control/doc/NEWS 2011-11-20 20:14:29 UTC (rev 9149) @@ -1,228 +0,0 @@ -Summary of important user-visible changes for releases of the control package - -=============================================================================== -control-2.2.2 Release Date: 2011-xx-yy Release Manager: Lukas Reichlin -=============================================================================== - -** Improved error messages for ARE solvers and robust control commands. - - -=============================================================================== -control-2.2.1 Release Date: 2011-10-24 Release Manager: Lukas Reichlin -=============================================================================== - -** tf - -- Fixed a nasty bug that prevented shortening of numerator and denominator - polynomials consisting solely of zeros. - -- MIMO support for descriptor state-space to transfer function conversion. - Usage: tf_sys = tf (dss_sys) - -- MIMO support for interconnections of non-proper transfer functions via - internal conversion to state-space. - -** ss - -- Support conversion from non-proper transfer function to descriptor state- - space. Usage: dss_sys = ss (tf_sys) - -** c2d, d2c - -- Support bilinear transformation of descriptor state-space models. - -** inv - -- Support the inversion of MIMO transfer functions. Inverses of 2x2 TFs are - computed directly, larger models are computed internally in state-space. - -** place - -- Return the number of fixed, assigned and uncontrollable poles in a single - "info" struct instead of three individual output arguments. - -** rlocus - -- Clarify usage statement in help string. - -- Check whether system is SISO. - -** MDSSystem - -- Display bode plots of controllers instead of singular value plots of the - closed loops. - -** hsvd - -- Added option "alpha" to specify the alpha-stability boundary for the - eigenvalues of the state dynamics matrix A. - -** isctrb, isobsv - -- Return number of controllable/observable states as a second output - argument. - -** doc/control.pdf - -- Added preface to PDF manual. - - -=============================================================================== -control-2.2.0 Release Date: 2011-09-26 Release Manager: Lukas Reichlin -=============================================================================== - -** ss - -- Transfer function to state-space conversion uses now SLICOT TD04AD. - Conversion of MIMO models is now supported. Usage: ss_sys = ss (tf_sys) - -** tf - -- Support for interconnections of MIMO transfer functions. This is done by - an internal conversion to a minimal state-space representation. With the - current tf2ss and ss2tf conversions, only proper transfer function are - supported. This limitation does not exist for SISO transfer functions. - -- Fixed a cellfun statement that caused problems on MinGW32 builds and - possibly some others. (Reported by Bernhard Weller) - -** pole, zero - -- Computation of poles and zeros of MIMO transfer functions is now possible - via conversion to state-space. Please note that the state-space - realization of SLICOT TD04AD is a minimal one. Therefore certain poles - and zeros might be missing. - -** zpk, zpkdata - -- Included wrappers that create transfer function models from zero-pole-gain - data (zpk) and zero-pole-gain data from lti models (zpkdata). They are - stop-gap measures for compatibility until ZPK models are implemented. - -** tfdata - -- "vector" option added. For SISO models, it returns numerator and - denominator directly as column vectors instead of cells containing a - single column vector. - -** doc/control.pdf - -- Revised PDF manual. - - -=============================================================================== -control-2.1.55 Release Date: 2011-09-07 Release Manager: Lukas Reichlin -=============================================================================== - -** c2d - -- Support for "tustin" and "prewarp" method added. - -- Transfer functions are now supported via the state-space methods. - -- Improved Texinfo string. - -** d2c - -- Discrete to continuous-time conversion added. However, support is - limited to the zero-order hold, tustin and pre-warping methods. - -** Conversion from descriptor to regular state-space is now performed by SLICOT - routine SB10JD. Better numerical results are to be expected over the - previous naive inversion formula. This conversion is used internally for - ssdata and some other functions. - - -=============================================================================== -control-2.1.54 Release Date: 2011-08-22 Release Manager: Lukas Reichlin -=============================================================================== - -** tf - -- State-space to transfer function conversion uses now SLICOT TB04BD. - Conversion of MIMO models is now supported. Usage: tf_sys = tf (ss_sys) - -- Display an empty line between title and numerator for better readability. - -- Display whether model is static, continuous- or discrete-time. - -** A PDF manual is included for the first time. It is located inside the "doc" - folder. It has been generated automatically from the Texinfo help strings - and is not yet completely sorted out. - - -=============================================================================== -control-2.1.53 Release Date: 2011-08-08 Release Manager: Lukas Reichlin -=============================================================================== - -** ncfsyn - -- Added support for McFarlane/Glover loop shaping design procedure. - "ncfsyn" stands for Normalized Coprime Factor Synthesis. - -** MDSSystem - -- Added example script which demonstrates the usage of the robust control - commands "mixsyn" and "ncfsyn". - -** Texinfo help strings of several functions have been extended, although - documentation still leaves a lot to be desired. - - -=============================================================================== -control-2.1.52 Release Date: 2011-07-27 Release Manager: Lukas Reichlin -=============================================================================== - -** hsvd - -- Use scaling unless state-space model property "scaled" is set to true. - -** norm - -- Use scaling for computation of L-infinity norm unless state-space model - property "scaled" is set to true. - -** minreal - -- Use scaling for state-space and descriptor state-space models unless - property "scaled" is set to true. - -- More accurate results are to be expected for descriptor state-space - models by performing only those reduction phases where effective order - reduction occurs. This is achieved by saving the system matrices before - each phase and restoring them if no order reduction took place. - -** zero - -- Use scaling for state-space and descriptor state-space models unless - property "scaled" is set to true. - -** frdata - -- The frequency response is now returned correctly as an array and not as a - vector, unless the "vector" option is set and the system is single-input - single-output. - -- Added help text. - - -=============================================================================== -control-2.1.51 Release Date: 2011-07-21 Release Manager: Lukas Reichlin -=============================================================================== - -** frd - -- Support for Frequency Response Data (frd) measurement "models". - - -=============================================================================== -control-2.1.50 Release Date: 2011-07-06 Release Manager: Lukas Reichlin -=============================================================================== - -** ss - -- Support for property "scaled". By default, it is set to "false". - -** prescale - -- Scaling for state-space models (SLICOT TB01ID) and descriptor models - (SLICOT TG01AD). - -** freqresp - -- Scale state-space models using @lti/prescale.m if property "scaled" is - set to "false". Frequency response commands now perform automatic - scaling unless model property "scaled" is set to "true". - - -=============================================================================== -control-2.0.2 Release Date: 2011-03-18 Release Manager: Lukas Reichlin -=============================================================================== - -** lsim - -- Fixed a logical error that refused valid initial state vectors. It was - due to a thinko introduced with the changes in control-2.0.1. - (Thanks to Rob Frohne) - - -=============================================================================== -control-2.0.1 Release Date: 2011-03-06 Release Manager: Lukas Reichlin -=============================================================================== - -** lsim - -- Support time vectors not starting at zero. (Thanks to Rob Frohne) - -- Improved help text. - -** zero - -- The gain of descriptor state-space models is now computed correctly. - (fingers crossed) - - -=============================================================================== -control-2.0.0 Release Date: 2011-02-08 Release Manager: Lukas Reichlin -=============================================================================== - -** First official release. - - -=============================================================================== Copied: trunk/octave-forge/main/mechanics/NEWS (from rev 9148, trunk/octave-forge/main/mechanics/doc/NEWS) =================================================================== --- trunk/octave-forge/main/mechanics/NEWS (rev 0) +++ trunk/octave-forge/main/mechanics/NEWS 2011-11-20 20:14:29 UTC (rev 9149) @@ -0,0 +1,49 @@ +Summary of important user-visible changes for releases of the mechanics package + +=============================================================================== +mechanics-1.0.0 Release Date: 2011-09-26 Release Manager: Juan Pablo Carbajal +=============================================================================== + +** First official release. + +=============================================================================== +mechanics-1.0.1 Release Date: 2011-09-27 Release Manager: Juan Pablo Carbajal +=============================================================================== + +Improvements in docstrings of all functions. + +=============================================================================== +mechanics-1.1.0 Release Date: 2011-10-05 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* verletstep : Verlet integrator. +* verletstep_boxed: idem with periodic boundary conditions. +* mdsim: Integrates a system of particle susing the algorithms above. +* several helper functions. +* Package ocframe integrated. + +=============================================================================== +mechanics-1.2.0 Release Date: 2011-10-16 Release Manager: Juan Pablo Carbajal +=============================================================================== + +* Rigid body object representation +@rigidbody +@rigidbody/display.m +@rigidbody/plot.m +@rigidbody/rigidbody.m +@rigidbody/subsref.m + inertiamoment.m + masscenter.m + +* deprecating +area_poly2d.m +center_mass_poly2d.m +inertia_moment_ncpoly2d.m +inertia_moment_poly2d.m +second_moment_poly2d.m + +* Added inverse to vech +* Minor fixes to other functions + +=============================================================================== + Deleted: trunk/octave-forge/main/mechanics/doc/NEWS =================================================================== --- trunk/octave-forge/main/mechanics/doc/NEWS 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/mechanics/doc/NEWS 2011-11-20 20:14:29 UTC (rev 9149) @@ -1,49 +0,0 @@ -Summary of important user-visible changes for releases of the mechanics package - -=============================================================================== -mechanics-1.0.0 Release Date: 2011-09-26 Release Manager: Juan Pablo Carbajal -=============================================================================== - -** First official release. - -=============================================================================== -mechanics-1.0.1 Release Date: 2011-09-27 Release Manager: Juan Pablo Carbajal -=============================================================================== - -Improvements in docstrings of all functions. - -=============================================================================== -mechanics-1.1.0 Release Date: 2011-10-05 Release Manager: Juan Pablo Carbajal -=============================================================================== - -* verletstep : Verlet integrator. -* verletstep_boxed: idem with periodic boundary conditions. -* mdsim: Integrates a system of particle susing the algorithms above. -* several helper functions. -* Package ocframe integrated. - -=============================================================================== -mechanics-1.2.0 Release Date: 2011-10-16 Release Manager: Juan Pablo Carbajal -=============================================================================== - -* Rigid body object representation -@rigidbody -@rigidbody/display.m -@rigidbody/plot.m -@rigidbody/rigidbody.m -@rigidbody/subsref.m - inertiamoment.m - masscenter.m - -* deprecating -area_poly2d.m -center_mass_poly2d.m -inertia_moment_ncpoly2d.m -inertia_moment_poly2d.m -second_moment_poly2d.m - -* Added inverse to vech -* Minor fixes to other functions - -=============================================================================== - Modified: trunk/octave-forge/main/specfun/inst/Ci.m =================================================================== --- trunk/octave-forge/main/specfun/inst/Ci.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/Ci.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -24,13 +24,13 @@ ##See also : cosint, Si, sinint, expint, expint_Ei. function y = Ci(z) - if (nargin != 1) - usage ("Ci(x)"); - endif - y = z; - y(z == 0) = -Inf; - y(real(z) == 0 & imag(z) >0) = 0.5*(expint_Ei(i.*y(real(z) == 0 & imag(z) >0))+expint_Ei(-i.*y(real(z) == 0 & imag(z) >0)))+ i.*pi./2; - y(real(z) == 0 & imag(z) <0) = 0.5*(expint_Ei(i.*y(real(z) == 0 & imag(z) <0))+expint_Ei(-i.*y(real(z) == 0 & imag(z) <0)))-i*pi./2; - y(real(z)>=0) = -0.5.*(expint_E1(i.*y(real(z)>=0) )+expint_E1(-i.*y(real(z)>=0) )); - y(real(z)<0) = -0.5.*(expint_E1(-i.*y(real(z)<0))+expint_E1(i.*y(real(z)<0)))+i*pi; + if (nargin != 1) + print_usage; + endif + y = z; + y(z == 0) = -Inf; + y(real(z) == 0 & imag(z) >0) = 0.5*(expint_Ei(i.*y(real(z) == 0 & imag(z) >0))+expint_Ei(-i.*y(real(z) == 0 & imag(z) >0)))+ i.*pi./2; + y(real(z) == 0 & imag(z) <0) = 0.5*(expint_Ei(i.*y(real(z) == 0 & imag(z) <0))+expint_Ei(-i.*y(real(z) == 0 & imag(z) <0)))-i*pi./2; + y(real(z)>=0) = -0.5.*(expint_E1(i.*y(real(z)>=0) )+expint_E1(-i.*y(real(z)>=0) )); + y(real(z)<0) = -0.5.*(expint_E1(-i.*y(real(z)<0))+expint_E1(i.*y(real(z)<0)))+i*pi; endfunction; Modified: trunk/octave-forge/main/specfun/inst/Si.m =================================================================== --- trunk/octave-forge/main/specfun/inst/Si.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/Si.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -23,19 +23,19 @@ ## function y = Si(x) - if (nargin != 1) - usage ("Si(x)"); - endif - y = zeros(size(x)); - if prod(size(x)) < 101 - for k = 1:prod(size(x)) - y(k) = sum(besselj([0:100]+0.5,(x(k)/2)).^2); - endfor - y = y.*pi; - else - for k=0:100 - y += besselj(k+0.5,x/2).^2; - endfor - y = y.*pi; - endif -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = zeros(size(x)); + if prod(size(x)) < 101 + for k = 1:prod(size(x)) + y(k) = sum(besselj([0:100]+0.5,(x(k)/2)).^2); + endfor + y = y.*pi; + else + for k=0:100 + y += besselj(k+0.5,x/2).^2; + endfor + y = y.*pi; + endif +endfunction Modified: trunk/octave-forge/main/specfun/inst/cosint.m =================================================================== --- trunk/octave-forge/main/specfun/inst/cosint.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/cosint.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -24,8 +24,8 @@ ##See also : Ci, Si, sinint, expint, expint_Ei. function y = cosint(z) - if (nargin != 1) - usage ("cosint(x)"); - endif - y = Ci(z); -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = Ci(z); +endfunction; Modified: trunk/octave-forge/main/specfun/inst/dirac.m =================================================================== --- trunk/octave-forge/main/specfun/inst/dirac.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/dirac.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -20,9 +20,9 @@ ## @end deftypefn function y = dirac(x) - if (nargin != 1) - usage ("dirac(x)"); - endif - y = double(x == 0.); - y(x == 0) = Inf; -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = double(x == 0.); + y(x == 0) = Inf; +endfunction; Modified: trunk/octave-forge/main/specfun/inst/ellipj.m =================================================================== --- trunk/octave-forge/main/specfun/inst/ellipj.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/ellipj.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -47,7 +47,7 @@ function [sn, cn, dn] = ellipj (u, m) if nargin < 2 || nargin > 3 - usage("[sn, cn, dn] = ellipj (u, m)"); + print_usage; endif [err, u, m] = common_size(u,m); if any(size(m) != size(u)) Modified: trunk/octave-forge/main/specfun/inst/ellipke.m =================================================================== --- trunk/octave-forge/main/specfun/inst/ellipke.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/ellipke.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -42,7 +42,7 @@ function [k,e] = ellipke( m ) if (nargin < 1 || nargin > 2) - usage("[k, e] = ellipke (m)"); + print_usage; endif k = e = zeros(size(m)); Modified: trunk/octave-forge/main/specfun/inst/erfcinv.m =================================================================== --- trunk/octave-forge/main/specfun/inst/erfcinv.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/erfcinv.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -20,8 +20,8 @@ ## @end deftypefn function y = erfcinv(x) - if (nargin != 1) - usage ("erfcinv(x)"); - endif - y = erfinv(1-x); -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = erfinv(1-x); +endfunction; Modified: trunk/octave-forge/main/specfun/inst/expint.m =================================================================== --- trunk/octave-forge/main/specfun/inst/expint.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/expint.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -24,8 +24,8 @@ ## See also expint_Ei, expint_E1. function y = expint(x) - if (nargin != 1) - usage ("expint(x)"); - endif - y = expint_E1(x); -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = expint_E1(x); +endfunction; Modified: trunk/octave-forge/main/specfun/inst/expint_E1.m =================================================================== --- trunk/octave-forge/main/specfun/inst/expint_E1.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/expint_E1.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -24,12 +24,12 @@ ## See also expint_Ei, expint. function y = expint_E1(x) - if (nargin != 1) - usage ("expint_E1(x)"); - endif - y = x; - y(imag(x) > 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) > 0 & imag(x) != 0)) -i.*pi; - y(imag(x) < 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) < 0 & imag(x) != 0)) +i.*pi; - y(real(x) >= 0 & imag(x)==0) = -expint_Ei(-y(real(x) >= 0 & imag(x)==0)); - y(real(x) < 0 & imag(x)==0) = -expint_Ei(-y(real(x) < 0 & imag(x)==0)) -i.*pi; -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = x; + y(imag(x) > 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) > 0 & imag(x) != 0)) -i.*pi; + y(imag(x) < 0 & imag(x) != 0) = -expint_Ei(-y(imag(x) < 0 & imag(x) != 0)) +i.*pi; + y(real(x) >= 0 & imag(x)==0) = -expint_Ei(-y(real(x) >= 0 & imag(x)==0)); + y(real(x) < 0 & imag(x)==0) = -expint_Ei(-y(real(x) < 0 & imag(x)==0)) -i.*pi; +endfunction; Modified: trunk/octave-forge/main/specfun/inst/expint_Ei.m =================================================================== --- trunk/octave-forge/main/specfun/inst/expint_Ei.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/expint_Ei.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -24,37 +24,37 @@ ## See also expint, expint_E1. function y = expint_Ei(x) - if (nargin != 1) - usage ("expint_Ei(x)"); - endif - y = zeros(size(x)); - F = @(x) exp(-x)./x; - s = prod(size(x)); - for t = 1:s; - if(x(t)<0 && imag(x(t)) == 0) - y(t) = -quad(F,-x(t),Inf); - else - if(abs(x(t)) > 2 && imag(x(t)) == 0) - y(t) = expint_Ei(2) - quad(F,-x(t),-2); - else - if(abs(x(t)) >= 10) - if(imag(x(t)) <= 0) - a1 = 4.03640; - a2 = 1.15198; - b1 = 5.03637; - b2 = 4.19160; - y(t) = -(x(t).^2 - a1.*x(t) + a2)./((x(t).^2-b1.*x(t)+b2).*(-x(t)).*exp(-x(t)))-i.*pi; - else - y(t) = conj(expint_Ei(conj(x(t)))); - endif; - ## Serie Expansion - else - for k = 1:100; - y(t) = y(t) + x(t).^k./(k.*factorial(k)); - endfor - y(t) = 0.577215664901532860606512090082402431 + log(x(t)) + y(t); - endif - endif - endif; - endfor -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + y = zeros(size(x)); + F = @(x) exp(-x)./x; + s = prod(size(x)); + for t = 1:s; + if(x(t)<0 && imag(x(t)) == 0) + y(t) = -quad(F,-x(t),Inf); + else + if(abs(x(t)) > 2 && imag(x(t)) == 0) + y(t) = expint_Ei(2) - quad(F,-x(t),-2); + else + if(abs(x(t)) >= 10) + if(imag(x(t)) <= 0) + a1 = 4.03640; + a2 = 1.15198; + b1 = 5.03637; + b2 = 4.19160; + y(t) = -(x(t).^2 - a1.*x(t) + a2)./((x(t).^2-b1.*x(t)+b2).*(-x(t)).*exp(-x(t)))-i.*pi; + else + y(t) = conj(expint_Ei(conj(x(t)))); + endif; + ## Serie Expansion + else + for k = 1:100; + y(t) = y(t) + x(t).^k./(k.*factorial(k)); + endfor + y(t) = 0.577215664901532860606512090082402431 + log(x(t)) + y(t); + endif + endif + endif; + endfor +endfunction; Modified: trunk/octave-forge/main/specfun/inst/laguerre.m =================================================================== --- trunk/octave-forge/main/specfun/inst/laguerre.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/laguerre.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -23,12 +23,10 @@ function [y,p]=laguerre(x,n) - if nargchk(2,2,nargin) - usage("laguerre.m: [y,p]=laguerre(x,n)"); - end; - - if (n<0) || ~isscalar(n) - error("laguerre.m: n must be a positive integer"); + if (nargin != 2) + print_usage; + elseif (n < 0 || !isscalar (n)) + error("second argument 'n' must be a positive integer"); endif p0=1; Modified: trunk/octave-forge/main/specfun/inst/lambertw.m =================================================================== --- trunk/octave-forge/main/specfun/inst/lambertw.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/lambertw.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -48,9 +48,8 @@ b = 0; else %% some error checking - % if (nargin != 2) - usage('result = lambertw(branch, argument)') + print_usage; else if (any(round(real(b)) != b)) usage('branch number for lambertw must be integer') Modified: trunk/octave-forge/main/specfun/inst/laplacian.m =================================================================== --- trunk/octave-forge/main/specfun/inst/laplacian.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/laplacian.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -112,19 +112,10 @@ function [lambda, V, A] = laplacian(varargin) % Input/Output handling. - if nargin > 3 - error('BLOPEX:laplacian:TooManyInputs',... - '%s','Too many input arguments.'); - elseif nargin == 0 - error('BLOPEX:laplacian:NoInputArguments',... - '%s','Must have at least one input argument.'); - end + if (nargin < 1 || nargin > 3) + print_usage; + endif - if nargout > 3 - error('BLOPEX:laplacian:TooManyOutputs',... - '%s','Maximum number of outputs is 3.'); - end - u = varargin{1}; dim2 = size(u); if dim2(1) ~= 1 Modified: trunk/octave-forge/main/specfun/inst/sinint.m =================================================================== --- trunk/octave-forge/main/specfun/inst/sinint.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/sinint.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -17,5 +17,5 @@ ##See also: Si. function y = sinint(x); - y = Si(x); -endfunction; \ No newline at end of file + y = Si(x); +endfunction; Modified: trunk/octave-forge/main/specfun/inst/zeta.m =================================================================== --- trunk/octave-forge/main/specfun/inst/zeta.m 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/inst/zeta.m 2011-11-20 20:14:29 UTC (rev 9149) @@ -15,29 +15,28 @@ ## ZETA compute the Riemann's Zeta function. - function z = zeta(t) - if (nargin != 1) - usage ("zeta(x)"); - endif - z = zeros(size(t)); - for j = 1:prod(size(t)) - if(real(t(j)) >= 0) - if(imag(t(j)) == 0 && real(t(j)) > 1) - F= @(x) 1./(gamma(t(j))).*x.^(t(j)-1)./(exp(x)-1); - z(j) = quad(F,0,Inf); - elseif(t(j) == 0) - z(j) = -0.5; - elseif(t(j) == 1) - z(j) = Inf; - else - for k = 1:100 - z(j) += (-1).^(k-1)./(k.^t(j)); - endfor - z(j) = 1./(1-2.^(1-t(j))).*z(j); - endif - else - z(j) = 2.^t(j).*pi.^(t(j)-1).*sin(pi.*t(j)./2).*gamma(1-t(j)).*zeta(1-t(j)); - endif - endfor -endfunction; \ No newline at end of file + if (nargin != 1) + print_usage; + endif + z = zeros(size(t)); + for j = 1:prod(size(t)) + if(real(t(j)) >= 0) + if(imag(t(j)) == 0 && real(t(j)) > 1) + F= @(x) 1./(gamma(t(j))).*x.^(t(j)-1)./(exp(x)-1); + z(j) = quad(F,0,Inf); + elseif(t(j) == 0) + z(j) = -0.5; + elseif(t(j) == 1) + z(j) = Inf; + else + for k = 1:100 + z(j) += (-1).^(k-1)./(k.^t(j)); + endfor + z(j) = 1./(1-2.^(1-t(j))).*z(j); + endif + else + z(j) = 2.^t(j).*pi.^(t(j)-1).*sin(pi.*t(j)./2).*gamma(1-t(j)).*zeta(1-t(j)); + endif + endfor +endfunction; Modified: trunk/octave-forge/main/specfun/src/ellipj.cc =================================================================== --- trunk/octave-forge/main/specfun/src/ellipj.cc 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/specfun/src/ellipj.cc 2011-11-20 20:14:29 UTC (rev 9149) @@ -60,7 +60,7 @@ warning ("ellipj: expecting 0. <= m <= 1."); /* -lc- */ sn = cn = dn = lo_ieee_nan_value (); return; - } + } sqrt_eps = sqrt(eps); if (m < sqrt_eps) { /* # For small m, ( Abramowitz and Stegun, Section 16.13 ) */ @@ -99,14 +99,14 @@ c[n] = (a[n-1]-b)/2; b = sqrt(a[n-1]*b); if ( c[n]/a[n] < eps) break; - } + } if ( n >= Nmax-1) { // fprintf(stderr, "Not enough workspace\n"); err = 1.; return; } Nn = n; - for ( ii = 1; n>0; ii = ii*2, --n) ; // pow(2, Nn) + for ( ii = 1; n>0; ii = ii*2, --n) ; // pow(2, Nn) phi = ii*a[Nn]*u; for ( n = Nn; n > 0; --n) { t = phi; @@ -279,7 +279,7 @@ double err; octave_value result; - sncndn( u, m, sn, cn, dn, err); + sncndn( u, m, sn, cn, dn, err); retval (0) = sn; retval (1) = cn; @@ -313,7 +313,7 @@ gripe_ellipj_arg ( "first"); /*}}}*/ } - } else + } else gripe_ellipj_arg ( "second"); } else { // m is matrix Matrix m = args(1).matrix_value (); @@ -367,7 +367,7 @@ int ur = u.rows (); int uc = u.cols (); - if (mr == 1 && uc == 1) { // u column, m row + if (mr == 1 && uc == 1) { // u column, m row RowVector rm = m.row ((octave_idx_type)0); ColumnVector cu = u.column ((octave_idx_type)0); @@ -383,7 +383,7 @@ retval (1) = cn; retval (2) = dn; if (nargout > 3) retval(3) = err; - } else if (ur == mr && uc == mc) { + } else if (ur == mr && uc == mc) { Matrix sn (ur, mc), cn (ur, mc), dn (ur, mc); Matrix err(ur,mc); // octave_value result; @@ -406,7 +406,7 @@ int ur = u.rows (); int uc = u.cols (); - if (mr == 1 && uc == 1) { + if (mr == 1 && uc == 1) { RowVector rm = m.row ((octave_idx_type)0); ComplexColumnVector cu = u.column ((octave_idx_type)0); @@ -422,7 +422,7 @@ retval (1) = cn; retval (2) = dn; if (nargout > 3) retval(3) = err; - } else if (ur == mr && uc == mc) { + } else if (ur == mr && uc == mc) { ComplexMatrix sn (ur, mc), cn (ur, mc), dn (ur, mc); Matrix err(ur,mc); @@ -451,8 +451,6 @@ return retval; } - - /* ;;; Local Variables: *** ;;; mode: C++ *** Modified: trunk/octave-forge/main/statistics/NEWS =================================================================== --- trunk/octave-forge/main/statistics/NEWS 2011-11-20 15:53:59 UTC (rev 9148) +++ trunk/octave-forge/main/statistics/NEWS 2011-11-20 20:14:29 UTC (rev 9149) @@ -1,3 +1,11 @@ +Summary of important user-visible changes for statistics 1XXXXXXXX: +------------------------------------------------------------------- + + ** The following functions are new in 1.1.0: + + monotone_smooth + + Summary of important user-visible changes for statistics 1.1.0: ------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpi...@us...> - 2011-12-12 09:03:44
|
Revision: 9371 http://octave.svn.sourceforge.net/octave/?rev=9371&view=rev Author: jpicarbajal Date: 2011-12-12 09:03:34 +0000 (Mon, 12 Dec 2011) Log Message: ----------- quaternion_oo: Bug in mpower corrected q^0 Modified Paths: -------------- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/mpower.m trunk/octave-forge/main/mechanics/inst/core/private/sub2ind_tril.m Modified: trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/mpower.m =================================================================== --- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/mpower.m 2011-12-12 07:01:48 UTC (rev 9370) +++ trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/mpower.m 2011-12-12 09:03:34 UTC (rev 9371) @@ -30,7 +30,7 @@ if fix (b) == b # only integers are poorly implemented [n m] = size (a.w); - w = ones (n,m); + w = eye (n,m); x = zeros (n,m); q = quaternion(w,x,x,x); while b-- @@ -39,8 +39,9 @@ a = q; else error ("quaternion:devel", ... - "quaternion: power: implemented for scalar quaternions only"); - end + "quaternion: power: implemented for integer exponents only"); + a = expm(b * logm (a)); + endif end Modified: trunk/octave-forge/main/mechanics/inst/core/private/sub2ind_tril.m =================================================================== --- trunk/octave-forge/main/mechanics/inst/core/private/sub2ind_tril.m 2011-12-12 07:01:48 UTC (rev 9370) +++ trunk/octave-forge/main/mechanics/inst/core/private/sub2ind_tril.m 2011-12-12 09:03:34 UTC (rev 9371) @@ -1,5 +1,5 @@ %% Copyright (c) 2011 Juan Pablo Carbajal <car...@if...> -%% +%% %% This program 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 @@ -32,7 +32,7 @@ %% @end example %% %% The following example shows how to convert the two-dimensional -%% index `(3,2)' of the 4-by-4 matrix in the example to a linear index. +%% index `(3,2)' of the 4-by-4 matrix in the previous example to a linear index. %% %% @example %% linear_index = sub2ind_tril (4, 3, 2) @@ -54,15 +54,15 @@ any(size(r) != size(c)) print_usage; endif - + R = zeros(size(r)); C = zeros(size(c)); - + below = r >= c; above = !below; R(below) = r(below); C(below) = c(below); - + R(above) = c(above); C(above) = r(above); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <par...@us...> - 2012-02-22 19:46:13
|
Revision: 9662 http://octave.svn.sourceforge.net/octave/?rev=9662&view=rev Author: paramaniac Date: 2012-02-22 19:46:06 +0000 (Wed, 22 Feb 2012) Log Message: ----------- move finished functions from package "control-devel" to "control" (2) Added Paths: ----------- trunk/octave-forge/main/control/devel/anderson.m trunk/octave-forge/main/control/devel/balancmr.m trunk/octave-forge/main/control/devel/balred.m trunk/octave-forge/main/control/devel/bstmr.m trunk/octave-forge/main/control/devel/hankelmr.m trunk/octave-forge/main/control/devel/madievski.m trunk/octave-forge/main/control/devel/makefile_conred.m trunk/octave-forge/main/control/devel/makefile_modred.m Removed Paths: ------------- trunk/octave-forge/extra/control-devel/devel/anderson.m trunk/octave-forge/extra/control-devel/devel/balancmr.m trunk/octave-forge/extra/control-devel/devel/balred.m trunk/octave-forge/extra/control-devel/devel/bstmr.m trunk/octave-forge/extra/control-devel/devel/hankelmr.m trunk/octave-forge/extra/control-devel/devel/madievski.m trunk/octave-forge/extra/control-devel/devel/makefile_conred.m trunk/octave-forge/extra/control-devel/devel/makefile_modred.m Deleted: trunk/octave-forge/extra/control-devel/devel/anderson.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/anderson.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/anderson.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,80 +0,0 @@ -%% -*- texinfo -*- -%% Frequency-weighted coprime factorization controller reduction. - -% =============================================================================== -% Coprime Factorization Controller Reduction Lukas Reichlin December 2011 -% =============================================================================== -% Reference: Anderson, B.D.O.: Controller Reduction: Concepts and Approaches -% IEEE Transactions of Automatic Control, Vol. 34, No. 8, August 1989 -% =============================================================================== - -% Tabula Rasa -clear all, close all, clc - -% Plant -A = [ -0.161 -6.004 -0.58215 -9.9835 -0.40727 -3.982 0.0 0.0 - 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 ]; - -B = [ 1.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 ]; - -C = [ 0.0 0.0 6.4432e-3 2.3196e-3 7.1252e-2 1.0002 0.10455 0.99551 ]; - -G = ss (A, B, C); - -% LQG Design -H = [ 0.0 0.0 0.0 0.0 0.55 11.0 1.32 18.0 ]; - -q1 = 1e-6; -q2 = 100; % [100, 1000, 2000] - -Q = q1 * H.' * H; -R = 1; - -W = q2 * B * B.'; -V = 1; - -F = lqr (G, Q, R) -L = lqr (G.', W, V).' - -% Coprime Factorization using Balanced Truncation Approximation -figure (1) -for k = 8:-1:2 - Kr = cfconred (G, F, L, k); % 'method', 'bfsr-bta' - T = feedback (G*Kr); - step (T, 200) - hold on -endfor -hold off - -% Coprime Factorization using Singular Perturbation Approximation -figure (2) -for k = 8:-1:2 - Kr = cfconred (G, F, L, k, 'method', 'bfsr-spa'); - T = feedback (G*Kr); - step (T, 200) - hold on -endfor -hold off - -% Frequency-Weighted Coprime Factorization using BTA -figure (3) -for k = 8:-1:2 - Kr = fwcfconred (G, F, L, k); - T = feedback (G*Kr); - step (T, 300) - hold on -endfor -hold off Deleted: trunk/octave-forge/extra/control-devel/devel/balancmr.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/balancmr.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/balancmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,38 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} balancmr (@var{G}, @dots{}) -## Wrapper for @command{btamodred}. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: January 2012 -## Version: 0.1 - -function [Gr, info] = balancmr (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("control:wrapper", - "control: 'balancmr' is just a compatibility wrapper for 'btamodred'"); - endif - - [Gr, info] = btamodred (varargin{:}); - -endfunction Deleted: trunk/octave-forge/extra/control-devel/devel/balred.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/balred.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/balred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,38 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} balred (@var{G}, @dots{}) -## Wrapper for @command{spamodred}. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: January 2012 -## Version: 0.1 - -function [Gr, info] = balred (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("control:wrapper", - "control: 'balred' is just a compatibility wrapper for 'spamodred'"); - endif - - [Gr, info] = spamodred (varargin{:}); - -endfunction Deleted: trunk/octave-forge/extra/control-devel/devel/bstmr.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/bstmr.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/bstmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,38 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} bstmr (@var{G}, @dots{}) -## Wrapper for @command{bstmodred}. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: January 2012 -## Version: 0.1 - -function [Gr, info] = bstmr (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("control:wrapper", - "control: 'bstmr' is just a compatibility wrapper for 'bstmodred'"); - endif - - [Gr, info] = bstmodred (varargin{:}); - -endfunction Deleted: trunk/octave-forge/extra/control-devel/devel/hankelmr.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/hankelmr.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/hankelmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,38 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} hankelmr (@var{G}, @dots{}) -## Wrapper for @command{hnamodred}. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: January 2012 -## Version: 0.1 - -function [Gr, info] = hankelmr (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("control:wrapper", - "control: 'hankelmr' is just a compatibility wrapper for 'hnamodred'"); - endif - - [Gr, info] = hnamodred (varargin{:}); - -endfunction Deleted: trunk/octave-forge/extra/control-devel/devel/madievski.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/madievski.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/madievski.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,126 +0,0 @@ -%% -*- texinfo -*- -%% Frequency-weighted controller reduction. - -% =============================================================================== -% Frequency Weighted Controller Reduction Lukas Reichlin December 2011 -% =============================================================================== -% Reference: Madievski, A.G. and Anderson, B.D.O. -% Sampled-Data Controller Reduction Procedure -% IEEE Transactions of Automatic Control -% Vol. 40, No. 11, November 1995 -% =============================================================================== - -% Tabula Rasa -clear all, close all, clc - -% Plant -Ap1 = [ 0.0 1.0 - 0.0 0.0 ]; - -Ap2 = [ -0.015 0.765 - -0.765 -0.015 ]; - -Ap3 = [ -0.028 1.410 - -1.410 -0.028 ]; - -Ap4 = [ -0.04 1.85 - -1.85 -0.04 ]; - -Ap = blkdiag (Ap1, Ap2, Ap3, Ap4); - -Bp = [ 0.026 - -0.251 - 0.033 - -0.886 - -4.017 - 0.145 - 3.604 - 0.280 ]; - -Cp = [ -0.996 -0.105 0.261 0.009 -0.001 -0.043 0.002 -0.026 ]; - -Dp = [ 0.0 ]; - -P = ss (Ap, Bp, Cp, Dp); - -% Controller -Ac = [ -0.4077 0.9741 0.1073 0.0131 0.0023 -0.0186 -0.0003 -0.0098 - -0.0977 -0.1750 0.0215 -0.0896 -0.0260 0.0057 0.0109 -0.0105 - 0.0011 0.0218 -0.0148 0.7769 0.0034 -0.0013 -0.0014 0.0011 - -0.0361 -0.5853 -0.7701 -0.3341 -0.0915 0.0334 0.0378 -0.0290 - -0.1716 -2.6546 -0.0210 -1.4467 -0.4428 1.5611 0.1715 -0.1318 - -0.0020 0.0950 0.0029 0.0523 -1.3950 -0.0338 -0.0062 0.0045 - 0.1607 2.3824 0.0170 1.2979 0.3721 -0.1353 -0.1938 1.9685 - -0.0006 0.1837 0.0048 0.1010 0.0289 -0.0111 -1.8619 -0.0311 ]; - -Bc = [ -0.4105 - -0.0868 - -0.0004 - 0.0036 - 0.0081 - -0.0085 - -0.0004 - -0.0132 ]; - -Cc = [ -0.0447 -0.6611 -0.0047 -0.3601 -0.1033 0.0375 0.0427 -0.0329 ]; - -Dc = [ 0.0 ]; - -K = ss (Ac, Bc, Cc, Dc); - -% Controller Reduction -Kr4 = spaconred (P, K, 4, 'feedback', '-') -Kr2 = spaconred (P, K, 2, 'feedback', '-') - -% Open Loop -L = P * K; -Lr4 = P * Kr4; -Lr2 = P * Kr2; - -% Closed Loop -T = feedback (L); -Tr4 = feedback (Lr4); -Tr2 = feedback (Lr2); - -% Frequency Range -w = {1e-2, 1e1}; - -% Bode Plot of Controller -[mag, pha, w] = bode (K, w); -[magr4, phar4, wr4] = bode (Kr4, w); -[magr2, phar2, wr2] = bode (Kr2, w); - -mag = 20 * log10 (mag); -magr4 = 20 * log10 (magr4); -magr2 = 20 * log10 (magr2); - -figure (1) -subplot (2, 1, 1) -semilogx (w, mag, wr4, magr4, wr2, magr2) -axis ('tight') -ylim (__axis_margin__ (ylim)) -grid ('on') -title ('Bode Diagrams of K and Kr') -ylabel ('Magnitude [dB]') - -subplot (2, 1, 2) -semilogx (w, pha, wr4, phar4, wr2, phar2) -axis ('tight') -ylim (__axis_margin__ (ylim)) -grid ('on') -xlabel ('Frequency [rad/s]') -ylabel ('Phase [deg]') -legend ('K (8 states)', 'Kr (4 states)', 'Kr (2 states)', 'location', 'southwest') - -% Step Response of Closed Loop -[y, t] = step (T, 100); -[yr4, tr4] = step (Tr4, 100); -[yr2, tr2] = step (Tr2, 100); - -figure (2) -plot (t, y, tr4, yr4, tr2, yr2) -grid ('on') -title ('Step Response of Closed Loop') -xlabel ('Time [s]') -ylabel ('Output [-]') -legend ('K (8 states)', 'Kr (4 states)', 'Kr (2 states)', 'Location', 'SouthEast') Deleted: trunk/octave-forge/extra/control-devel/devel/makefile_conred.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/makefile_conred.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/makefile_conred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,44 +0,0 @@ -## ============================================================================== -## Developer Makefile for OCT-files -## ============================================================================== -## USAGE: * fetch control-devel from Octave-Forge by svn -## * add control-devel/inst, control-devel/src and control-devel/devel -## to your Octave path (by an .octaverc file) -## * run makefile_conred -## ============================================================================== - -homedir = pwd (); -develdir = fileparts (which ("makefile_conred")); -srcdir = [develdir, "/../src"]; -cd (srcdir); - -mkoctfile slsb16ad.cc \ - SB16AD.f TB01ID.f SB16AY.f TB01KD.f AB09IX.f \ - MB04OD.f MB01WD.f SB03OD.f MB03UD.f AB05PD.f \ - AB09DD.f AB07ND.f TB01LD.f AB05QD.f SB03OU.f \ - MA02AD.f MB03QX.f select.f MB01YD.f MB01ZD.f \ - SB03OT.f MB04OY.f MB03QD.f MB04ND.f MB03QY.f \ - SB03OR.f SB03OY.f SB04PX.f MB04NY.f SB03OV.f \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -mkoctfile slsb16bd.cc \ - SB16BD.f AB09AD.f AB09BD.f SB08GD.f SB08HD.f \ - TB01ID.f AB09AX.f MA02GD.f AB09BX.f TB01WD.f \ - MA02DD.f MB03UD.f select.f AB09DD.f SB03OU.f \ - MA02AD.f SB03OT.f MB04ND.f MB04OD.f SB03OR.f \ - SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -mkoctfile slsb16cd.cc \ - SB16CD.f SB16CY.f AB09IX.f SB03OD.f MB02UD.f \ - AB09DD.f MA02AD.f MB03UD.f select.f SB03OU.f \ - MB01SD.f SB03OT.f MB04ND.f MB04OD.f SB03OR.f \ - SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -system ("rm *.o"); -cd (homedir); - Deleted: trunk/octave-forge/extra/control-devel/devel/makefile_modred.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/makefile_modred.m 2012-02-22 19:42:49 UTC (rev 9661) +++ trunk/octave-forge/extra/control-devel/devel/makefile_modred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -1,32 +0,0 @@ -## ============================================================================== -## Developer Makefile for OCT-files -## ============================================================================== -## USAGE: * fetch control-devel from Octave-Forge by svn -## * add control-devel/inst, control-devel/src and control-devel/devel -## to your Octave path (by an .octaverc file) -## * run makefile_modred -## ============================================================================== - -homedir = pwd (); -develdir = fileparts (which ("makefile_modred")); -srcdir = [develdir, "/../src"]; -cd (srcdir); - -mkoctfile slab09hd.cc \ - slicotlibrary.a \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -mkoctfile slab09id.cc \ - slicotlibrary.a \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -mkoctfile slab09jd.cc \ - slicotlibrary.a \ - "$(mkoctfile -p LAPACK_LIBS)" \ - "$(mkoctfile -p BLAS_LIBS)" - -system ("rm *.o"); -cd (homedir); - Copied: trunk/octave-forge/main/control/devel/anderson.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/anderson.m) =================================================================== --- trunk/octave-forge/main/control/devel/anderson.m (rev 0) +++ trunk/octave-forge/main/control/devel/anderson.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,80 @@ +%% -*- texinfo -*- +%% Frequency-weighted coprime factorization controller reduction. + +% =============================================================================== +% Coprime Factorization Controller Reduction Lukas Reichlin December 2011 +% =============================================================================== +% Reference: Anderson, B.D.O.: Controller Reduction: Concepts and Approaches +% IEEE Transactions of Automatic Control, Vol. 34, No. 8, August 1989 +% =============================================================================== + +% Tabula Rasa +clear all, close all, clc + +% Plant +A = [ -0.161 -6.004 -0.58215 -9.9835 -0.40727 -3.982 0.0 0.0 + 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 ]; + +B = [ 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 ]; + +C = [ 0.0 0.0 6.4432e-3 2.3196e-3 7.1252e-2 1.0002 0.10455 0.99551 ]; + +G = ss (A, B, C); + +% LQG Design +H = [ 0.0 0.0 0.0 0.0 0.55 11.0 1.32 18.0 ]; + +q1 = 1e-6; +q2 = 100; % [100, 1000, 2000] + +Q = q1 * H.' * H; +R = 1; + +W = q2 * B * B.'; +V = 1; + +F = lqr (G, Q, R) +L = lqr (G.', W, V).' + +% Coprime Factorization using Balanced Truncation Approximation +figure (1) +for k = 8:-1:2 + Kr = cfconred (G, F, L, k); % 'method', 'bfsr-bta' + T = feedback (G*Kr); + step (T, 200) + hold on +endfor +hold off + +% Coprime Factorization using Singular Perturbation Approximation +figure (2) +for k = 8:-1:2 + Kr = cfconred (G, F, L, k, 'method', 'bfsr-spa'); + T = feedback (G*Kr); + step (T, 200) + hold on +endfor +hold off + +% Frequency-Weighted Coprime Factorization using BTA +figure (3) +for k = 8:-1:2 + Kr = fwcfconred (G, F, L, k); + T = feedback (G*Kr); + step (T, 300) + hold on +endfor +hold off Copied: trunk/octave-forge/main/control/devel/balancmr.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/balancmr.m) =================================================================== --- trunk/octave-forge/main/control/devel/balancmr.m (rev 0) +++ trunk/octave-forge/main/control/devel/balancmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,38 @@ +## 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/>. + +## -*- texinfo -*- +## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} balancmr (@var{G}, @dots{}) +## Wrapper for @command{btamodred}. +## @end deftypefn + +## Author: Lukas Reichlin <luk...@gm...> +## Created: January 2012 +## Version: 0.1 + +function [Gr, info] = balancmr (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("control:wrapper", + "control: 'balancmr' is just a compatibility wrapper for 'btamodred'"); + endif + + [Gr, info] = btamodred (varargin{:}); + +endfunction Copied: trunk/octave-forge/main/control/devel/balred.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/balred.m) =================================================================== --- trunk/octave-forge/main/control/devel/balred.m (rev 0) +++ trunk/octave-forge/main/control/devel/balred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,38 @@ +## 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/>. + +## -*- texinfo -*- +## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} balred (@var{G}, @dots{}) +## Wrapper for @command{spamodred}. +## @end deftypefn + +## Author: Lukas Reichlin <luk...@gm...> +## Created: January 2012 +## Version: 0.1 + +function [Gr, info] = balred (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("control:wrapper", + "control: 'balred' is just a compatibility wrapper for 'spamodred'"); + endif + + [Gr, info] = spamodred (varargin{:}); + +endfunction Copied: trunk/octave-forge/main/control/devel/bstmr.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/bstmr.m) =================================================================== --- trunk/octave-forge/main/control/devel/bstmr.m (rev 0) +++ trunk/octave-forge/main/control/devel/bstmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,38 @@ +## 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/>. + +## -*- texinfo -*- +## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} bstmr (@var{G}, @dots{}) +## Wrapper for @command{bstmodred}. +## @end deftypefn + +## Author: Lukas Reichlin <luk...@gm...> +## Created: January 2012 +## Version: 0.1 + +function [Gr, info] = bstmr (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("control:wrapper", + "control: 'bstmr' is just a compatibility wrapper for 'bstmodred'"); + endif + + [Gr, info] = bstmodred (varargin{:}); + +endfunction Copied: trunk/octave-forge/main/control/devel/hankelmr.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/hankelmr.m) =================================================================== --- trunk/octave-forge/main/control/devel/hankelmr.m (rev 0) +++ trunk/octave-forge/main/control/devel/hankelmr.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,38 @@ +## 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/>. + +## -*- texinfo -*- +## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} hankelmr (@var{G}, @dots{}) +## Wrapper for @command{hnamodred}. +## @end deftypefn + +## Author: Lukas Reichlin <luk...@gm...> +## Created: January 2012 +## Version: 0.1 + +function [Gr, info] = hankelmr (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("control:wrapper", + "control: 'hankelmr' is just a compatibility wrapper for 'hnamodred'"); + endif + + [Gr, info] = hnamodred (varargin{:}); + +endfunction Copied: trunk/octave-forge/main/control/devel/madievski.m (from rev 9661, trunk/octave-forge/extra/control-devel/devel/madievski.m) =================================================================== --- trunk/octave-forge/main/control/devel/madievski.m (rev 0) +++ trunk/octave-forge/main/control/devel/madievski.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,126 @@ +%% -*- texinfo -*- +%% Frequency-weighted controller reduction. + +% =============================================================================== +% Frequency Weighted Controller Reduction Lukas Reichlin December 2011 +% =============================================================================== +% Reference: Madievski, A.G. and Anderson, B.D.O. +% Sampled-Data Controller Reduction Procedure +% IEEE Transactions of Automatic Control +% Vol. 40, No. 11, November 1995 +% =============================================================================== + +% Tabula Rasa +clear all, close all, clc + +% Plant +Ap1 = [ 0.0 1.0 + 0.0 0.0 ]; + +Ap2 = [ -0.015 0.765 + -0.765 -0.015 ]; + +Ap3 = [ -0.028 1.410 + -1.410 -0.028 ]; + +Ap4 = [ -0.04 1.85 + -1.85 -0.04 ]; + +Ap = blkdiag (Ap1, Ap2, Ap3, Ap4); + +Bp = [ 0.026 + -0.251 + 0.033 + -0.886 + -4.017 + 0.145 + 3.604 + 0.280 ]; + +Cp = [ -0.996 -0.105 0.261 0.009 -0.001 -0.043 0.002 -0.026 ]; + +Dp = [ 0.0 ]; + +P = ss (Ap, Bp, Cp, Dp); + +% Controller +Ac = [ -0.4077 0.9741 0.1073 0.0131 0.0023 -0.0186 -0.0003 -0.0098 + -0.0977 -0.1750 0.0215 -0.0896 -0.0260 0.0057 0.0109 -0.0105 + 0.0011 0.0218 -0.0148 0.7769 0.0034 -0.0013 -0.0014 0.0011 + -0.0361 -0.5853 -0.7701 -0.3341 -0.0915 0.0334 0.0378 -0.0290 + -0.1716 -2.6546 -0.0210 -1.4467 -0.4428 1.5611 0.1715 -0.1318 + -0.0020 0.0950 0.0029 0.0523 -1.3950 -0.0338 -0.0062 0.0045 + 0.1607 2.3824 0.0170 1.2979 0.3721 -0.1353 -0.1938 1.9685 + -0.0006 0.1837 0.0048 0.1010 0.0289 -0.0111 -1.8619 -0.0311 ]; + +Bc = [ -0.4105 + -0.0868 + -0.0004 + 0.0036 + 0.0081 + -0.0085 + -0.0004 + -0.0132 ]; + +Cc = [ -0.0447 -0.6611 -0.0047 -0.3601 -0.1033 0.0375 0.0427 -0.0329 ]; + +Dc = [ 0.0 ]; + +K = ss (Ac, Bc, Cc, Dc); + +% Controller Reduction +Kr4 = spaconred (P, K, 4, 'feedback', '-') +Kr2 = spaconred (P, K, 2, 'feedback', '-') + +% Open Loop +L = P * K; +Lr4 = P * Kr4; +Lr2 = P * Kr2; + +% Closed Loop +T = feedback (L); +Tr4 = feedback (Lr4); +Tr2 = feedback (Lr2); + +% Frequency Range +w = {1e-2, 1e1}; + +% Bode Plot of Controller +[mag, pha, w] = bode (K, w); +[magr4, phar4, wr4] = bode (Kr4, w); +[magr2, phar2, wr2] = bode (Kr2, w); + +mag = 20 * log10 (mag); +magr4 = 20 * log10 (magr4); +magr2 = 20 * log10 (magr2); + +figure (1) +subplot (2, 1, 1) +semilogx (w, mag, wr4, magr4, wr2, magr2) +axis ('tight') +ylim (__axis_margin__ (ylim)) +grid ('on') +title ('Bode Diagrams of K and Kr') +ylabel ('Magnitude [dB]') + +subplot (2, 1, 2) +semilogx (w, pha, wr4, phar4, wr2, phar2) +axis ('tight') +ylim (__axis_margin__ (ylim)) +grid ('on') +xlabel ('Frequency [rad/s]') +ylabel ('Phase [deg]') +legend ('K (8 states)', 'Kr (4 states)', 'Kr (2 states)', 'location', 'southwest') + +% Step Response of Closed Loop +[y, t] = step (T, 100); +[yr4, tr4] = step (Tr4, 100); +[yr2, tr2] = step (Tr2, 100); + +figure (2) +plot (t, y, tr4, yr4, tr2, yr2) +grid ('on') +title ('Step Response of Closed Loop') +xlabel ('Time [s]') +ylabel ('Output [-]') +legend ('K (8 states)', 'Kr (4 states)', 'Kr (2 states)', 'Location', 'SouthEast') Copied: trunk/octave-forge/main/control/devel/makefile_conred.m (from rev 9660, trunk/octave-forge/extra/control-devel/devel/makefile_conred.m) =================================================================== --- trunk/octave-forge/main/control/devel/makefile_conred.m (rev 0) +++ trunk/octave-forge/main/control/devel/makefile_conred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,44 @@ +## ============================================================================== +## Developer Makefile for OCT-files +## ============================================================================== +## USAGE: * fetch control-devel from Octave-Forge by svn +## * add control-devel/inst, control-devel/src and control-devel/devel +## to your Octave path (by an .octaverc file) +## * run makefile_conred +## ============================================================================== + +homedir = pwd (); +develdir = fileparts (which ("makefile_conred")); +srcdir = [develdir, "/../src"]; +cd (srcdir); + +mkoctfile slsb16ad.cc \ + SB16AD.f TB01ID.f SB16AY.f TB01KD.f AB09IX.f \ + MB04OD.f MB01WD.f SB03OD.f MB03UD.f AB05PD.f \ + AB09DD.f AB07ND.f TB01LD.f AB05QD.f SB03OU.f \ + MA02AD.f MB03QX.f select.f MB01YD.f MB01ZD.f \ + SB03OT.f MB04OY.f MB03QD.f MB04ND.f MB03QY.f \ + SB03OR.f SB03OY.f SB04PX.f MB04NY.f SB03OV.f \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +mkoctfile slsb16bd.cc \ + SB16BD.f AB09AD.f AB09BD.f SB08GD.f SB08HD.f \ + TB01ID.f AB09AX.f MA02GD.f AB09BX.f TB01WD.f \ + MA02DD.f MB03UD.f select.f AB09DD.f SB03OU.f \ + MA02AD.f SB03OT.f MB04ND.f MB04OD.f SB03OR.f \ + SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +mkoctfile slsb16cd.cc \ + SB16CD.f SB16CY.f AB09IX.f SB03OD.f MB02UD.f \ + AB09DD.f MA02AD.f MB03UD.f select.f SB03OU.f \ + MB01SD.f SB03OT.f MB04ND.f MB04OD.f SB03OR.f \ + SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +system ("rm *.o"); +cd (homedir); + Copied: trunk/octave-forge/main/control/devel/makefile_modred.m (from rev 9660, trunk/octave-forge/extra/control-devel/devel/makefile_modred.m) =================================================================== --- trunk/octave-forge/main/control/devel/makefile_modred.m (rev 0) +++ trunk/octave-forge/main/control/devel/makefile_modred.m 2012-02-22 19:46:06 UTC (rev 9662) @@ -0,0 +1,32 @@ +## ============================================================================== +## Developer Makefile for OCT-files +## ============================================================================== +## USAGE: * fetch control-devel from Octave-Forge by svn +## * add control-devel/inst, control-devel/src and control-devel/devel +## to your Octave path (by an .octaverc file) +## * run makefile_modred +## ============================================================================== + +homedir = pwd (); +develdir = fileparts (which ("makefile_modred")); +srcdir = [develdir, "/../src"]; +cd (srcdir); + +mkoctfile slab09hd.cc \ + slicotlibrary.a \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +mkoctfile slab09id.cc \ + slicotlibrary.a \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +mkoctfile slab09jd.cc \ + slicotlibrary.a \ + "$(mkoctfile -p LAPACK_LIBS)" \ + "$(mkoctfile -p BLAS_LIBS)" + +system ("rm *.o"); +cd (homedir); + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <par...@us...> - 2012-02-22 19:42:59
|
Revision: 9661 http://octave.svn.sourceforge.net/octave/?rev=9661&view=rev Author: paramaniac Date: 2012-02-22 19:42:49 +0000 (Wed, 22 Feb 2012) Log Message: ----------- move finished functions from package "control-devel" to "control" Added Paths: ----------- trunk/octave-forge/main/control/inst/__conred_check_feedback_sign__.m trunk/octave-forge/main/control/inst/__conred_sb16ad__.m trunk/octave-forge/main/control/inst/__modred_ab09id__.m trunk/octave-forge/main/control/inst/__modred_check_alpha__.m trunk/octave-forge/main/control/inst/__modred_check_alpha_gram__.m trunk/octave-forge/main/control/inst/__modred_check_equil__.m trunk/octave-forge/main/control/inst/__modred_check_gram__.m trunk/octave-forge/main/control/inst/__modred_check_order__.m trunk/octave-forge/main/control/inst/__modred_check_tol__.m trunk/octave-forge/main/control/inst/__modred_check_weight__.m trunk/octave-forge/main/control/inst/__modred_default_alpha__.m trunk/octave-forge/main/control/inst/__opt2cell__.m trunk/octave-forge/main/control/inst/bstmodred.m trunk/octave-forge/main/control/inst/btaconred.m trunk/octave-forge/main/control/inst/btamodred.m trunk/octave-forge/main/control/inst/cfconred.m trunk/octave-forge/main/control/inst/fitfrd.m trunk/octave-forge/main/control/inst/fwcfconred.m trunk/octave-forge/main/control/inst/hnamodred.m trunk/octave-forge/main/control/inst/options.m trunk/octave-forge/main/control/inst/spaconred.m trunk/octave-forge/main/control/inst/spamodred.m trunk/octave-forge/main/control/src/slab09hd.cc trunk/octave-forge/main/control/src/slab09id.cc trunk/octave-forge/main/control/src/slab09jd.cc trunk/octave-forge/main/control/src/slsb10yd.cc trunk/octave-forge/main/control/src/slsb16ad.cc trunk/octave-forge/main/control/src/slsb16bd.cc trunk/octave-forge/main/control/src/slsb16cd.cc Removed Paths: ------------- trunk/octave-forge/extra/control-devel/inst/__conred_check_feedback_sign__.m trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha_gram__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_equil__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_gram__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_tol__.m trunk/octave-forge/extra/control-devel/inst/__modred_check_weight__.m trunk/octave-forge/extra/control-devel/inst/__modred_default_alpha__.m trunk/octave-forge/extra/control-devel/inst/__opt2cell__.m trunk/octave-forge/extra/control-devel/inst/bstmodred.m trunk/octave-forge/extra/control-devel/inst/btaconred.m trunk/octave-forge/extra/control-devel/inst/btamodred.m trunk/octave-forge/extra/control-devel/inst/cfconred.m trunk/octave-forge/extra/control-devel/inst/fitfrd.m trunk/octave-forge/extra/control-devel/inst/fwcfconred.m trunk/octave-forge/extra/control-devel/inst/hnamodred.m trunk/octave-forge/extra/control-devel/inst/options.m trunk/octave-forge/extra/control-devel/inst/spaconred.m trunk/octave-forge/extra/control-devel/inst/spamodred.m trunk/octave-forge/extra/control-devel/src/slab09hd.cc trunk/octave-forge/extra/control-devel/src/slab09id.cc trunk/octave-forge/extra/control-devel/src/slab09jd.cc trunk/octave-forge/extra/control-devel/src/slsb10yd.cc trunk/octave-forge/extra/control-devel/src/slsb16ad.cc trunk/octave-forge/extra/control-devel/src/slsb16bd.cc trunk/octave-forge/extra/control-devel/src/slsb16cd.cc Deleted: trunk/octave-forge/extra/control-devel/inst/__conred_check_feedback_sign__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__conred_check_feedback_sign__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__conred_check_feedback_sign__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,40 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check the feedback sign. - -## Author: Lukas Reichlin <luk...@gm...> -## Created: December 2011 -## Version: 0.1 - -function negfb = __conred_check_feedback_sign__ (fbsign, key = "feedback") - - if (! ischar (fbsign)) - error ("conred: key '%s' requires string value", key); - endif - - switch (fbsign) - case "+" - negfb = false; - case "-" - negfb = true; - otherwise - error ("conred: key '%s' has an invalid value", key); - endswitch - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__conred_sb16ad__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,191 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Kr}, @var{info}] =} __conred_sb16ad__ (@var{method}, @dots{}) -## Backend for btaconred and spaconred. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: December 2011 -## Version: 0.1 - -function [Kr, info] = __conred_sb16ad__ (method, varargin) - - if (nargin < 3) - print_usage (); - endif - - if (method != "bta" && method != "spa") - error ("modred: invalid method"); - endif - - G = varargin{1}; - K = varargin{2}; - varargin = varargin(3:end); - - if (! isa (G, "lti")) - error ("%sconred: first argument must be an LTI system", method); - endif - - if (! isa (K, "lti")) - error ("%sconred: second argument must be an LTI system", method); - endif - - if (nargin > 3) # *conred (G, K, ...) - if (is_real_scalar (varargin{1})) # *conred (G, K, nr) - varargin = horzcat (varargin(2:end), {"order"}, varargin(1)); - endif - if (isstruct (varargin{1})) # *conred (G, K, opt, ...), *conred (G, K, nr, opt, ...) - varargin = horzcat (__opt2cell__ (varargin{1}), varargin(2:end)); - endif - ## order placed at the end such that nr from *conred (G, K, nr, ...) - ## and *conred (G, K, nr, opt, ...) overrides possible nr's from - ## key/value-pairs and inside opt struct (later keys override former keys, - ## nr > key/value > opt) - endif - - nkv = numel (varargin); # number of keys and values - - if (rem (nkv, 2)) - error ("%sconred: keys and values must come in pairs", method); - endif - - [a, b, c, d, tsam, scaled] = ssdata (G); - [ac, bc, cc, dc, tsamc, scaledc] = ssdata (K); - [p, m] = size (G); - [pc, mc] = size (K); - dt = isdt (G); - - if (p != mc || m != pc) - error ("%sconred: dimensions of controller (%dx%d) and plant (%dx%d) don't match", \ - method, pc, mc, p, c); - endif - - - ## default arguments - alpha = __modred_default_alpha__ (dt); - tol1 = 0.0; - tol2 = 0.0; - jobc = jobo = 0; - bf = true; # balancing-free - weight = 3; - equil = scaled && scaledc; - ordsel = 1; - ncr = 0; - negfb = false; # positive feedback controller - - - ## handle keys and values - for k = 1 : 2 : nkv - key = lower (varargin{k}); - val = varargin{k+1}; - switch (key) - case "weight" - switch (lower (val(1))) - case "n" # none - weight = 0; - case {"l", "o"} # left, output - weight = 1; - case {"r", "i"} # right, input - weight = 2; - case {"b", "p"} # both, performance - weight = 3; - otherwise - error ("%sconred: '%s' is an invalid value for key weight", method, val); - endswitch - - case {"order", "ncr", "nr"} - [ncr, ordsel] = __modred_check_order__ (val, rows (ac)); - - case "tol1" - tol1 = __modred_check_tol__ (val, "tol1"); - - case "tol2" - tol2 = __modred_check_tol__ (val, "tol2"); - - case "alpha" - alpha = __modred_check_alpha__ (val, dt); - - case "method" - switch (tolower (val)) - case "sr" - bf = false; - case "bfsr" - bf = true; - otherwise - error ("modred: '%s' is an invalid approach", val); - endswitch - - case {"jobc", "gram-ctrb"} - jobc = __modred_check_gram__ (val, "gram-ctrb"); - - case {"jobo", "gram-obsv"} - jobo = __modred_check_gram__ (val, "gram-obsv"); - - case {"equil", "equilibrate", "equilibration", "scale", "scaling"} - scaled = __modred_check_equil__ (val); - - case "feedback" - negfb = __conred_check_feedback_sign__ (val); - - otherwise - warning ("%sconred: invalid property name '%s' ignored", method, key); - endswitch - endfor - - - ## handle model reduction approach - if (method == "bta" && ! bf) # 'B': use the square-root Balance & Truncate method - jobmr = 0; - elseif (method == "bta" && bf) # 'F': use the balancing-free square-root Balance & Truncate method - jobmr = 1; - elseif (method == "spa" && ! bf) # 'S': use the square-root Singular Perturbation Approximation method - jobmr = 2; - elseif (method == "spa" && bf) # 'P': use the balancing-free square-root Singular Perturbation Approximation method - jobmr = 3; - else - error ("%smodred: invalid jobmr option"); # this should never happen - endif - - ## handle negative feedback controllers - if (negfb) - [ac, bc, cc, dc] = ssdata (-K); - endif - - - ## perform model order reduction - [acr, bcr, ccr, dcr, ncr, hsvc, ncs] = slsb16ad (a, b, c, d, dt, equil, ncr, ordsel, alpha, jobmr, \ - ac, bc, cc, dc, \ - weight, jobc, jobo, tol1, tol2); - - ## assemble reduced order controller - Kr = ss (acr, bcr, ccr, dcr, tsamc); - - ## handle negative feedback controllers - if (negfb) - Kr = -Kr; - endif - - ## assemble info struct - info = struct ("ncr", ncr, "ncs", ncs, "hsvc", hsvc); - -endfunction - - - - Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_ab09id__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,178 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} __modred_ab09id__ (@var{method}, @dots{}) -## Backend for btamodred and spamodred. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function [Gr, info] = __modred_ab09id__ (method, varargin) - - if (nargin < 2) - print_usage (); - endif - - if (method != "bta" && method != "spa") - error ("modred: invalid method"); - endif - - G = varargin{1}; - varargin = varargin(2:end); - - if (! isa (G, "lti")) - error ("%smodred: first argument must be an LTI system", method); - endif - - if (nargin > 2) # *modred (G, ...) - if (is_real_scalar (varargin{1})) # *modred (G, nr) - varargin = horzcat (varargin(2:end), {"order"}, varargin(1)); - endif - if (isstruct (varargin{1})) # *modred (G, opt, ...), *modred (G, nr, opt, ...) - varargin = horzcat (__opt2cell__ (varargin{1}), varargin(2:end)); - endif - ## order placed at the end such that nr from *modred (G, nr, ...) - ## and *modred (G, nr, opt, ...) overrides possible nr's from - ## key/value-pairs and inside opt struct (later keys override former keys, - ## nr > key/value > opt) - endif - - nkv = numel (varargin); # number of keys and values - - if (rem (nkv, 2)) - error ("%smodred: keys and values must come in pairs", method); - endif - - [a, b, c, d, tsam, scaled] = ssdata (G); - [p, m] = size (G); - dt = isdt (G); - - ## default arguments - alpha = __modred_default_alpha__ (dt); - av = bv = cv = dv = []; - jobv = 0; - aw = bw = cw = dw = []; - jobw = 0; - alphac = alphao = 0.0; - tol1 = 0.0; - tol2 = 0.0; - jobc = jobo = 0; - bf = true; # balancing-free - weight = 1; - equil = 0; - ordsel = 1; - nr = 0; - - ## handle keys and values - for k = 1 : 2 : nkv - key = lower (varargin{k}); - val = varargin{k+1}; - switch (key) - case {"left", "output", "v"} - [av, bv, cv, dv, jobv] = __modred_check_weight__ (val, dt, p, []); - - case {"right", "input", "w"} - [aw, bw, cw, dw, jobw] = __modred_check_weight__ (val, dt, [], m); - - case {"order", "n", "nr"} - [nr, ordsel] = __modred_check_order__ (val, rows (a)); - - case "tol1" - tol1 = __modred_check_tol__ (val, "tol1"); - - case "tol2" - tol2 = __modred_check_tol__ (val, "tol2"); - - case "alpha" - alpha = __modred_check_alpha__ (val, dt); - - case "method" - switch (tolower (val)) - case "sr" - bf = false; - case "bfsr" - bf = true; - otherwise - error ("modred: '%s' is an invalid approach", val); - endswitch - - case {"jobc", "gram-ctrb"} - jobc = __modred_check_gram__ (val, "gram-ctrb"); - - case {"jobo", "gram-obsv"} - jobo = __modred_check_gram__ (val, "gram-obsv"); - - case {"alphac", "alpha-ctrb"} - alphac = __modred_check_alpha_gram__ (val, "alpha-ctrb"); - - case {"alphao", "alpha-obsv"} - alphao = __modred_check_alpha_gram__ (val, "alpha-obsv"); - - case {"equil", "equilibrate", "equilibration", "scale", "scaling"} - scaled = __modred_check_equil__ (val); - - otherwise - warning ("%smodred: invalid property name '%s' ignored", method, key); - endswitch - endfor - - ## handle type of frequency weighting - if (jobv && jobw) - weight = 3; # 'B': both left and right weightings V and W are used - elseif (jobv) - weight = 1; # 'L': only left weighting V is used (W = I) - elseif (jobw) - weight = 2; # 'R': only right weighting W is used (V = I) - else - weight = 0; # 'N': no weightings are used (V = I, W = I) - endif - - ## handle model reduction approach - if (method == "bta" && ! bf) # 'B': use the square-root Balance & Truncate method - job = 0; - elseif (method == "bta" && bf) # 'F': use the balancing-free square-root Balance & Truncate method - job = 1; - elseif (method == "spa" && ! bf) # 'S': use the square-root Singular Perturbation Approximation method - job = 2; - elseif (method == "spa" && bf) # 'P': use the balancing-free square-root Singular Perturbation Approximation method - job = 3; - else - error ("modred: invalid job option"); # this should never happen - endif - - - ## perform model order reduction - [ar, br, cr, dr, nr, hsv, ns] = slab09id (a, b, c, d, dt, equil, nr, ordsel, alpha, job, \ - av, bv, cv, dv, \ - aw, bw, cw, dw, \ - weight, jobc, jobo, alphac, alphao, \ - tol1, tol2); - - ## assemble reduced order model - Gr = ss (ar, br, cr, dr, tsam); - - ## assemble info struct - info = struct ("nr", nr, "ns", ns, "hsv", hsv); - -endfunction - - - - Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,40 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check alpha for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function alpha = __modred_check_alpha__ (alpha, dt) - - if (! is_real_scalar (alpha)) - error ("modred: argument alpha must be a real scalar"); - endif - if (dt) # discrete-time - if (alpha < 0 || alpha > 1) - error ("modred: require 0 <= ALPHA <= 1"); - endif - else # continuous-time - if (alpha > 0) - error ("modred: require ALPHA <= 0"); - endif - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha_gram__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha_gram__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_alpha_gram__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,35 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check alpha for combination methods of grammians - -## Author: Lukas Reichlin <luk...@gm...> -## Created: December 2011 -## Version: 0.1 - -function alpha = __modred_check_alpha_gram__ (alpha, key) - - if (! is_real_scalar (alpha)) - error ("modred: argument '%s' must be a real scalar", key); - endif - - if (abs (alpha) > 1) - error ("modred: require -1 <= %s <= 1", key); - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_equil__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_equil__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_equil__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,33 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check equilibration for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function scaled = __modred_check_equil__ (equil) - - if (isscalar (equil)) - scaled = ! logical (equil); - else - error ("modred: property 'equil' must be a logical value"); - endif - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_gram__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_gram__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_gram__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,40 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check choice of frequency-weighted grammians. - -## Author: Lukas Reichlin <luk...@gm...> -## Created: December 2011 -## Version: 0.1 - -function job = __modred_check_gram__ (choice, key) - - if (! ischar (choice)) - error ("modred: key '%s' requires string value", key); - endif - - switch (tolower (choice (1))) - case "s" # standard - job = 0; - case "e" # enhanced - job = 1; - otherwise - error ("modred: key '%s' has an invalid value", key); - endswitch - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_order__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,38 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check order for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function [nr, ordsel] = __modred_check_order__ (nr, n) - - if (! issample (nr, 0) || nr != round (nr)) - error ("modred: order of reduced model must be an integer >= 0"); - endif - - if (nr > n) - error ("modred: order of reduced model (%d) can't be larger than the original one (%d)", \ - nr, n); - endif - - ordsel = 0; - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_tol__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_tol__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_tol__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,31 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check tolerance for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function tol = __modred_check_tol__ (tol, str = "") - - if (! is_real_scalar (tol)) - error ("modred: argument %s must be a real scalar", str); - endif - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_check_weight__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_check_weight__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_check_weight__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,49 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## check weightings for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function [a, b, c, d, job] = __modred_check_weight__ (sys, dt, p = [], m = []) - - sys = ss (sys); # could be non-lti, therefore ssdata would fail - - if (dt != isdt (sys)) - error ("modred: ct/dt"); # TODO: error message - endif - - [pw, mw] = size (sys); - - if (! isempty (p) && mw != p) - error ("modred: left weight requires %d inputs", p); - endif - - if (! isempty (m) && pw != m) - error ("modred: right weight requires %d outputs", m); - endif - - [a, b, c, d] = ssdata (sys); - - job = 1; - - ## TODO: check system size - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__modred_default_alpha__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__modred_default_alpha__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__modred_default_alpha__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,33 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## default alpha for model reduction commands - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function alpha = __modred_default_alpha__ (dt) - - if (dt) # discrete-time - alpha = 1; # ALPHA <= 0 - else # continuous-time - alpha = 0; # 0 <= ALPHA <= 1 - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__opt2cell__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__opt2cell__.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/__opt2cell__.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,37 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## Convert option struct to a cell with field names as keys and -## field values as values. - -## Author: Lukas Reichlin <luk...@gm...> -## Created: November 2011 -## Version: 0.1 - -function c = __opt2cell__ (opt) - - if (! isstruct (opt)) - error ("opt2cell: argument must be a struct"); - endif - - key = fieldnames (opt); - val = struct2cell (opt); - - c = [key.'; val.'](:).'; # reshape to {key1, val1, key2, val2, ...} - -endfunction \ No newline at end of file Deleted: trunk/octave-forge/extra/control-devel/inst/bstmodred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/bstmodred.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/bstmodred.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,370 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} bstmodred (@var{G}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} bstmodred (@var{G}, @var{nr}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} bstmodred (@var{G}, @var{opt}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} bstmodred (@var{G}, @var{nr}, @var{opt}, @dots{}) -## -## Model order reduction by Balanced Stochastic Truncation (BST) method. -## The aim of model reduction is to find an LTI system @var{Gr} of order -## @var{nr} (nr < n) such that the input-output behaviour of @var{Gr} -## approximates the one from original system @var{G}. -## -## BST is a relative error method which tries to minimize -## @iftex -## @tex -## $$ || G^{-1} (G-G_r) ||_{\\infty} = min $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## -1 -## ||G (G-Gr)|| = min -## inf -## @end example -## @end ifnottex -## -## -## -## @strong{Inputs} -## @table @var -## @item G -## LTI model to be reduced. -## @item nr -## The desired order of the resulting reduced order system @var{Gr}. -## If not specified, @var{nr} is chosen automatically according -## to the description of key @var{'order'}. -## @item @dots{} -## Optional pairs of keys and values. @code{"key1", value1, "key2", value2}. -## @item opt -## Optional struct with keys as field names. -## Struct @var{opt} can be created directly or -## by command @command{options}. @code{opt.key1 = value1, opt.key2 = value2}. -## @end table -## -## @strong{Outputs} -## @table @var -## @item Gr -## Reduced order state-space model. -## @item info -## Struct containing additional information. -## @table @var -## @item info.n -## The order of the original system @var{G}. -## @item info.ns -## The order of the @var{alpha}-stable subsystem of the original system @var{G}. -## @item info.hsv -## The Hankel singular values of the phase system corresponding -## to the @var{alpha}-stable part of the original system @var{G}. -## The @var{ns} Hankel singular values are ordered decreasingly. -## @item info.nu -## The order of the @var{alpha}-unstable subsystem of both the original -## system @var{G} and the reduced-order system @var{Gr}. -## @item info.nr -## The order of the obtained reduced order system @var{Gr}. -## @end table -## @end table -## -## @strong{Option Keys and Values} -## @table @var -## @item 'order', 'nr' -## The desired order of the resulting reduced order system @var{Gr}. -## If not specified, @var{nr} is the sum of NU and the number of -## Hankel singular values greater than @code{MAX(TOL1,NS*EPS)}; -## @var{nr} can be further reduced to ensure that -## @code{HSV(NR-NU) > HSV(NR+1-NU)}. -## -## @item 'method' -## Approximation method for the H-infinity norm. -## Valid values corresponding to this key are: -## @table @var -## @item 'sr-bta', 'b' -## Use the square-root Balance & Truncate method. -## @item 'bfsr-bta', 'f' -## Use the balancing-free square-root Balance & Truncate method. Default method. -## @item 'sr-spa', 's' -## Use the square-root Singular Perturbation Approximation method. -## @item 'bfsr-spa', 'p' -## Use the balancing-free square-root Singular Perturbation Approximation method. -## @end table -## -## @item 'alpha' -## Specifies the ALPHA-stability boundary for the eigenvalues -## of the state dynamics matrix @var{G.A}. For a continuous-time -## system, ALPHA <= 0 is the boundary value for -## the real parts of eigenvalues, while for a discrete-time -## system, 0 <= ALPHA <= 1 represents the -## boundary value for the moduli of eigenvalues. -## The ALPHA-stability domain does not include the boundary. -## Default value is 0 for continuous-time systems and -## 1 for discrete-time systems. -## -## @item 'beta' -## Use @code{[G, beta*I]} as new system @var{G} to combine -## absolute and relative error methods. -## BETA > 0 specifies the absolute/relative error weighting -## parameter. A large positive value of BETA favours the -## minimization of the absolute approximation error, while a -## small value of BETA is appropriate for the minimization -## of the relative error. -## BETA = 0 means a pure relative error method and can be -## used only if rank(G.D) = rows(G.D) which means that -## the feedthrough matrice must not be rank-deficient. -## Default value is 0. -## -## @item 'tol1' -## If @var{'order'} is not specified, @var{tol1} contains the tolerance for -## determining the order of reduced system. -## For model reduction, the recommended value of @var{tol1} lies -## in the interval [0.00001, 0.001]. @var{tol1} < 1. -## If @var{tol1} <= 0 on entry, the used default value is -## @var{tol1} = NS*EPS, where NS is the number of -## ALPHA-stable eigenvalues of A and EPS is the machine -## precision. -## If @var{'order'} is specified, the value of @var{tol1} is ignored. -## -## @item 'tol2' -## The tolerance for determining the order of a minimal -## realization of the phase system (see METHOD) corresponding -## to the ALPHA-stable part of the given system. -## The recommended value is TOL2 = NS*EPS. TOL2 <= TOL1 < 1. -## This value is used by default if @var{'tol2'} is not specified -## or if TOL2 <= 0 on entry. -## -## @item 'equil', 'scale' -## Boolean indicating whether equilibration (scaling) should be -## performed on system @var{G} prior to order reduction. -## Default value is true if @code{G.scaled == false} and -## false if @code{G.scaled == true}. -## @end table -## -## -## For the H-infinity norm, the best approximation problem is -## unsolved so far. Nevertheless, balanced truncation and related -## methods can be used to obtain good approximations using this measure. -## -## Available approximation methods are the accuracy-enhancing square-root (SR) -## or the balancing-free square-root (BFSR) versions of -## the Balance & Truncate (BTA) or Singular Perturbation Approximation (SPA) -## model reduction methods for the ALPHA-stable part of the system. -## -## Unstable models are handled by separating the stable and unstable -## parts additively, applying the model reduction only to the stable -## part and by joining the reduced stable with the original unstable part. -## The order of the reduced system can be selected by the user or -## can be determined automatically on the basis of the computed -## Hankel singular values. -## -## For MIMO models, proper scaling of input-output channels is of -## utmost importance. This can @strong{not} be done by the equilibration -## option or the @command{prescale} command because these perform state -## transformations only. While enhancing numerics, state transformations -## have no influence on the input-output behaviour and the magnitude of -## the corresponding signals. Since the algorithm calculates the -## H-infinity norm of these signals, important behaviour of @var{G} -## could be neglected just because the corresponding signals have smaller -## numbers than those of other, less important effects of @var{G}. -## -## BST is often suitable to perform model reduction in order to obtain -## low order design models for controller synthesis. -## -## Approximation Properties: -## @itemize @bullet -## @item -## Guaranteed stability of reduced models -## @item -## Approximates simultaneously gain and phase -## @item -## Preserves non-minimum phase zeros -## @item -## Guaranteed a priori error bound -## @iftex -## @tex -## $$ || G^{-1} (G-G_r) ||_{\\infty} \\leq 2 \\sum_{j=r+1}^{n} \\frac{1+\\sigma_j}{1-\\sigma_j} - 1 $$ -## @end tex -## @end iftex -## @end itemize -## -## @strong{Algorithm}@* -## Uses SLICOT AB09HD by courtesy of -## @uref{http://www.slicot.org, NICONET e.V.} -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: October 2011 -## Version: 0.1 - -function [Gr, info] = bstmodred (G, varargin) - - if (nargin == 0) - print_usage (); - endif - - if (! isa (G, "lti")) - error ("bstmodred: first argument must be an LTI system"); - endif - - if (nargin > 1) # bstmodred (G, ...) - if (is_real_scalar (varargin{1})) # bstmodred (G, nr) - varargin = horzcat (varargin(2:end), {"order"}, varargin(1)); - endif - if (isstruct (varargin{1})) # bstmodred (G, opt, ...), bstmodred (G, nr, opt, ...) - varargin = horzcat (__opt2cell__ (varargin{1}), varargin(2:end)); - endif - ## order placed at the end such that nr from bstmodred (G, nr, ...) - ## and bstmodred (G, nr, opt, ...) overrides possible nr's from - ## key/value-pairs and inside opt struct (later keys override former keys, - ## nr > key/value > opt) - endif - - nkv = numel (varargin); # number of keys and values - - if (rem (nkv, 2)) - error ("bstmodred: keys and values must come in pairs"); - endif - - [a, b, c, d, tsam, scaled] = ssdata (G); - dt = isdt (G); - - ## default arguments - alpha = __modred_default_alpha__ (dt); - beta = 0; - tol1 = 0; - tol2 = 0; - ordsel = 1; - nr = 0; - job = 1; - - ## handle keys and values - for k = 1 : 2 : nkv - key = lower (varargin{k}); - val = varargin{k+1}; - switch (key) - case {"order", "nr"} - [nr, ordsel] = __modred_check_order__ (val, rows (a)); - - case "tol1" - tol1 = __modred_check_tol__ (val, "tol1"); - - case "tol2" - tol2 = __modred_check_tol__ (val, "tol2"); - - case "alpha" - alpha = __modred_check_alpha__ (val, dt); - - case "beta" - if (! issample (val, 0)) - error ("bstmodred: argument %s must be BETA >= 0", varargin{k}); - endif - beta = val; - - case "method" # approximation method - switch (tolower (val)) - case {"sr-bta", "b"} # 'B': use the square-root Balance & Truncate method - job = 0; - case {"bfsr-bta", "f"} # 'F': use the balancing-free square-root Balance & Truncate method - job = 1; - case {"sr-spa", "s"} # 'S': use the square-root Singular Perturbation Approximation method - job = 2; - case {"bfsr-spa", "p"} # 'P': use the balancing-free square-root Singular Perturbation Approximation method - job = 3; - otherwise - error ("bstmodred: '%s' is an invalid approximation method", val); - endswitch - - case {"equil", "equilibrate", "equilibration", "scale", "scaling"} - scaled = __modred_check_equil__ (val); - - otherwise - warning ("bstmodred: invalid property name '%s' ignored", key); - endswitch - endfor - - ## perform model order reduction - [ar, br, cr, dr, nr, hsv, ns] = slab09hd (a, b, c, d, dt, scaled, job, nr, ordsel, alpha, beta, \ - tol1, tol2); - - ## assemble reduced order model - Gr = ss (ar, br, cr, dr, tsam); - - ## assemble info struct - n = rows (a); - nu = n - ns; - info = struct ("n", n, "ns", ns, "hsv", hsv, "nu", nu, "nr", nr); - -endfunction - - -%!shared Mo, Me, Info, HSVe -%! A = [ -0.04165 0.0000 4.9200 -4.9200 0.0000 0.0000 0.0000 -%! -5.2100 -12.500 0.0000 0.0000 0.0000 0.0000 0.0000 -%! 0.0000 3.3300 -3.3300 0.0000 0.0000 0.0000 0.0000 -%! 0.5450 0.0000 0.0000 0.0000 -0.5450 0.0000 0.0000 -%! 0.0000 0.0000 0.0000 4.9200 -0.04165 0.0000 4.9200 -%! 0.0000 0.0000 0.0000 0.0000 -5.2100 -12.500 0.0000 -%! 0.0000 0.0000 0.0000 0.0000 0.0000 3.3300 -3.3300 ]; -%! -%! B = [ 0.0000 0.0000 -%! 12.500 0.0000 -%! 0.0000 0.0000 -%! 0.0000 0.0000 -%! 0.0000 0.0000 -%! 0.0000 12.500 -%! 0.0000 0.0000 ]; -%! -%! C = [ 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -%! 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 -%! 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 ]; -%! -%! D = [ 0.0000 0.0000 -%! 0.0000 0.0000 -%! 0.0000 0.0000 ]; -%! -%! G = ss (A, B, C, D, "scaled", true); -%! -%! [Gr, Info] = bstmodred (G, "beta", 1.0, "tol1", 0.1, "tol2", 0.0); -%! [Ao, Bo, Co, Do] = ssdata (Gr); -%! -%! Ae = [ 1.2729 0.0000 6.5947 0.0000 -3.4229 -%! 0.0000 0.8169 0.0000 2.4821 0.0000 -%! -2.9889 0.0000 -2.9028 0.0000 -0.3692 -%! 0.0000 -3.3921 0.0000 -3.1126 0.0000 -%! -1.4767 0.0000 -2.0339 0.0000 -0.6107 ]; -%! -%! Be = [ 0.1331 -0.1331 -%! -0.0862 -0.0862 -%! -2.6777 2.6777 -%! -3.5767 -3.5767 -%! -2.3033 2.3033 ]; -%! -%! Ce = [ -0.6907 -0.6882 0.0779 0.0958 -0.0038 -%! 0.0676 0.0000 0.6532 0.0000 -0.7522 -%! 0.6907 -0.6882 -0.0779 0.0958 0.0038 ]; -%! -%! De = [ 0.0000 0.0000 -%! 0.0000 0.0000 -%! 0.0000 0.0000 ]; -%! -%! HSVe = [ 0.8803 0.8506 0.8038 0.4494 0.3973 0.0214 0.0209 ].'; -%! -%! Mo = [Ao, Bo; Co, Do]; -%! Me = [Ae, Be; Ce, De]; -%! -%!assert (Mo, Me, 1e-4); -%!assert (Info.hsv, HSVe, 1e-4); Deleted: trunk/octave-forge/extra/control-devel/inst/btaconred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/btaconred.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/btaconred.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,274 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Kr}, @var{info}] =} btaconred (@var{G}, @var{K}, @dots{}) -## @deftypefnx{Function File} {[@var{Kr}, @var{info}] =} btaconred (@var{G}, @var{K}, @var{ncr}, @dots{}) -## @deftypefnx{Function File} {[@var{Kr}, @var{info}] =} btaconred (@var{G}, @var{K}, @var{opt}, @dots{}) -## @deftypefnx{Function File} {[@var{Kr}, @var{info}] =} btaconred (@var{G}, @var{K}, @var{ncr}, @var{opt}, @dots{}) -## -## Controller reduction by frequency-weighted Balanced Truncation Approximation (BTA). -## Given a plant @var{G} and a stabilizing controller @var{K}, determine a reduced -## order controller @var{Kr} such that the closed-loop system is stable and closed-loop -## performance is retained. -## -## The algorithm tries to minimize the frequency-weighted error -## @iftex -## @tex -## $$ || V \\ (K - K_r) \\ W ||_{\\infty} = min $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## ||V (K-Kr) W|| = min -## inf -## @end example -## @end ifnottex -## where @var{V} and @var{W} denote output and input weightings. -## -## -## @strong{Inputs} -## @table @var -## @item G -## LTI model of the plant. -## It has m inputs, p outputs and n states. -## @item K -## LTI model of the controller. -## It has p inputs, m outputs and nc states. -## @item ncr -## The desired order of the resulting reduced order controller @var{Kr}. -## If not specified, @var{ncr} is chosen automatically according -## to the description of key @var{'order'}. -## @item @dots{} -## Optional pairs of keys and values. @code{"key1", value1, "key2", value2}. -## @item opt -## Optional struct with keys as field names. -## Struct @var{opt} can be created directly or -## by command @command{options}. @code{opt.key1 = value1, opt.key2 = value2}. -## @end table -## -## @strong{Outputs} -## @table @var -## @item Kr -## State-space model of reduced order controller. -## @item info -## Struct containing additional information. -## @table @var -## @item info.ncr -## The order of the obtained reduced order controller @var{Kr}. -## @item info.ncs -## The order of the alpha-stable part of original controller @var{K}. -## @item info.hsvc -## The Hankel singular values of the alpha-stable part of @var{K}. -## The @var{ncs} Hankel singular values are ordered decreasingly. -## @end table -## @end table -## -## @strong{Option Keys and Values} -## @table @var -## @item 'order', 'ncr' -## The desired order of the resulting reduced order controller @var{Kr}. -## If not specified, @var{ncr} is chosen automatically such that states with -## Hankel singular values @var{info.hsvc} > @var{tol1} are retained. -## -## @item 'method' -## Order reduction approach to be used as follows: -## @table @var -## @item 'sr', 'b' -## Use the square-root Balance & Truncate method. -## @item 'bfsr', 'f' -## Use the balancing-free square-root Balance & Truncate method. Default method. -## @end table -## -## @item 'weight' -## Specifies the type of frequency-weighting as follows: -## @table @var -## @item 'none' -## No weightings are used (V = I, W = I). -## -## @item 'left', 'output' -## Use stability enforcing left (output) weighting -## @iftex -## @tex -## $$ V = (I - G K)^{-1} G, \\qquad W = I $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## -1 -## V = (I-G*K) *G , W = I -## @end example -## @end ifnottex -## -## @item 'right', 'input' -## Use stability enforcing right (input) weighting -## @iftex -## @tex -## $$ V = I, \\qquad W = (I - G K)^{-1} G $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## -1 -## V = I , W = (I-G*K) *G -## @end example -## @end ifnottex -## -## @item 'both', 'performance' -## Use stability and performance enforcing weightings -## @iftex -## @tex -## $$ V = (I - G K)^{-1} G, \\qquad W = (I - G K)^{-1} $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## -1 -1 -## V = (I-G*K) *G , W = (I-G*K) -## @end example -## @end ifnottex -## Default value. -## @end table -## -## @item 'feedback' -## Specifies whether @var{K} is a positive or negative feedback controller: -## @table @var -## @item '+' -## Use positive feedback controller. Default value. -## @item '-' -## Use negative feedback controller. -## @end table -## -## @item 'alpha' -## Specifies the ALPHA-stability boundary for the eigenvalues -## of the state dynamics matrix @var{K.A}. For a continuous-time -## controller, ALPHA <= 0 is the boundary value for -## the real parts of eigenvalues, while for a discrete-time -## controller, 0 <= ALPHA <= 1 represents the -## boundary value for the moduli of eigenvalues. -## The ALPHA-stability domain does not include the boundary. -## Default value is 0 for continuous-time controllers and -## 1 for discrete-time controllers. -## -## @item 'tol1' -## If @var{'order'} is not specified, @var{tol1} contains the tolerance for -## determining the order of the reduced controller. -## For model reduction, the recommended value of @var{tol1} is -## c*info.hsvc(1), where c lies in the interval [0.00001, 0.001]. -## Default value is info.ncs*eps*info.hsvc(1). -## If @var{'order'} is specified, the value of @var{tol1} is ignored. -## -## @item 'tol2' -## The tolerance for determining the order of a minimal -## realization of the ALPHA-stable part of the given -## controller. TOL2 <= TOL1. -## If not specified, ncs*eps*info.hsvc(1) is chosen. -## -## @item 'gram-ctrb' -## Specifies the choice of frequency-weighted controllability -## Grammian as follows: -## @table @var -## @item 'standard' -## Choice corresponding to standard Enns' method [1]. Default method. -## @item 'enhanced' -## Choice corresponding to the stability enhanced -## modified Enns' method of [2]. -## @end table -## -## @item 'gram-obsv' -## Specifies the choice of frequency-weighted observability -## Grammian as follows: -## @table @var -## @item 'standard' -## Choice corresponding to standard Enns' method [1]. Default method. -## @item 'enhanced' -## Choice corresponding to the stability enhanced -## modified Enns' method of [2]. -## @end table -## -## @item 'equil', 'scale' -## Boolean indicating whether equilibration (scaling) should be -## performed on @var{G} and @var{K} prior to order reduction. -## Default value is false if both @code{G.scaled == true, K.scaled == true} -## and true otherwise. -## @end table -## -## @strong{Algorithm}@* -## Uses SLICOT SB16AD by courtesy of -## @uref{http://www.slicot.org, NICONET e.V.} -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: December 2011 -## Version: 0.1 - -function [Kr, info] = btaconred (varargin) - - [Kr, info] = __conred_sb16ad__ ("bta", varargin{:}); - -endfunction - - -%!shared Mo, Me, Info, HSVCe -%! A = [ -1. 0. 4. -%! 0. 2. 0. -%! 0. 0. -3. ]; -%! -%! B = [ 1. -%! 1. -%! 1. ]; -%! -%! C = [ 1. 1. 1. ]; -%! -%! D = [ 0. ]; -%! -%! G = ss (A, B, C, D, "scaled", true); -%! -%! AC = [ -26.4000, 6.4023, 4.3868; -%! 32.0000, 0, 0; -%! 0, 8.0000, 0 ]; -%! -%! BC = [ -16 -%! 0 -%! 0 ]; -%! -%! CC = [ 9.2994 1.1624 0.1090 ]; -%! -%! DC = [ 0 ]; -%! -%! K = ss (AC, BC, CC, DC, "scaled", true); -%! -%! [Kr, Info] = btaconred (G, K, 2, "weight", "input", "feedback", "+"); -%! [Ao, Bo, Co, Do] = ssdata (Kr); -%! -%! Ae = [ 9.1900 0.0000 -%! 0.0000 -34.5297 ]; -%! -%! Be = [ -11.9593 -%! 86.3137 ]; -%! -%! Ce = [ 2.8955 -1.3566 ]; -%! -%! De = [ 0.0000 ]; -%! -%! HSVCe = [ 3.8253 0.2005 ].'; -%! -%! Mo = [Ao, Bo; Co, Do]; -%! Me = [Ae, Be; Ce, De]; -%! -%!assert (Mo, Me, 1e-4); -%!assert (Info.hsvc, HSVCe, 1e-4); Deleted: trunk/octave-forge/extra/control-devel/inst/btamodred.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/btamodred.m 2012-02-22 19:21:08 UTC (rev 9660) +++ trunk/octave-forge/extra/control-devel/inst/btamodred.m 2012-02-22 19:42:49 UTC (rev 9661) @@ -1,300 +0,0 @@ -## Copyright (C) 2011 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{Gr}, @var{info}] =} btamodred (@var{G}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} btamodred (@var{G}, @var{nr}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} btamodred (@var{G}, @var{opt}, @dots{}) -## @deftypefnx{Function File} {[@var{Gr}, @var{info}] =} btamodred (@var{G}, @var{nr}, @var{opt}, @dots{}) -## -## Model order reduction by frequency weighted Balanced Truncation Approximation (BTA) method. -## The aim of model reduction is to find an LTI system @var{Gr} of order -## @var{nr} (nr < n) such that the input-output behaviour of @var{Gr} -## approximates the one from original system @var{G}. -## -## BTA is an absolute error method which tries to minimize -## @iftex -## @tex -## $$ || G - G_r ||_{\\infty} = min $$ -## $$ || V \\ (G - G_r) \\ W ||_{\\infty} = min $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## ||G-Gr|| = min -## inf -## -## ||V (G-Gr) W|| = min -## inf -## @end example -## @end ifnottex -## where @var{V} and @var{W} denote output and input weightings. -## -## -## @strong{Inputs} -## @table @var -## @item G -## LTI model to be reduced. -## @item nr -## The desired order of the resulting reduced order system @var{Gr}. -## If not specified, @var{nr} is chosen automatically according -## to the description of key @var{'order'}. -## @item @dots{} -## Optional pairs of keys and values. @code{"key1", value1, "key2", value2}. -## @item opt -## Optional struct with keys as field names. -## Struct @var{opt} can be created directly or -## by command @command{options}. @code{opt.key1 = value1, opt.key2 = value2}. -## @end table -## -## @strong{Outputs} -## @table @var -## @item Gr -## Reduced order state-space model. -## @item info -## Struct containing additional information. -## @table @var -## @item info.n -## The order of the original system @var{G}. -## @item info.ns -## The order of the @var{alpha}-stable subsystem of the original system @var{G}. -## @item info.hsv -## The Hankel singular values of the @var{alpha}-stable part of -## the original system @var{G}, ordered decreasingly. -## @item info.nu -## The order of the @var{alpha}-unstable subsystem of both the original -## system @var{G} and the reduced-order system @var{Gr}. -## @item info.nr -## The order of the obtained reduced order system @var{Gr}. -## @end table -## @end table -## -## -## @strong{Option Keys and Values} -## @table @var -## @item 'order', 'nr' -## The desired order of the resulting reduced order system @var{Gr}. -## If not specified, @var{nr} is chosen automatically such that states with -## Hankel singular values @var{info.hsv} > @var{tol1} are retained. -## -## @item 'left', 'output' -## LTI model of the left/output frequency weighting @var{V}. -## Default value is an identity matrix. -## -## @item 'right', 'input' -## LTI model of the right/input frequency weighting @var{W}. -## Default value is an identity matrix. -## -## @item 'method' -## Approximation method for the L-infinity norm to be used as follows: -## @table @var -## @item 'sr', 'b' -## Use the square-root Balance & Truncate method. -## @item 'bfsr', 'f' -## Use the balancing-free square-root Balance & Truncate method. Default method. -## @end table -## -## @item 'alpha' -## Specifies the ALPHA-stability boundary for the eigenvalues -## of t... [truncated message content] |
From: <car...@us...> - 2012-03-13 01:53:13
|
Revision: 9842 http://octave.svn.sourceforge.net/octave/?rev=9842&view=rev Author: carandraug Date: 2012-03-13 01:53:05 +0000 (Tue, 13 Mar 2012) Log Message: ----------- ga: move NEWS to package root Modified Paths: -------------- trunk/octave-forge/admin/list_inactive_users.pl Added Paths: ----------- trunk/octave-forge/main/ga/NEWS Removed Paths: ------------- trunk/octave-forge/main/ga/doc/NEWS Modified: trunk/octave-forge/admin/list_inactive_users.pl =================================================================== --- trunk/octave-forge/admin/list_inactive_users.pl 2012-03-13 00:59:55 UTC (rev 9841) +++ trunk/octave-forge/admin/list_inactive_users.pl 2012-03-13 01:53:05 UTC (rev 9842) @@ -37,8 +37,8 @@ ################################################################################ ## Configuration variables ################################################################################ -my $repo_path = '~/development/octave-forge/main/'; # path for the repository -my $date_limit = '2011-01-01'; # give date in format YYYY-MM-DD +my $repo_path = '~/development/octave-forge/'; # path for the repository +my $date_limit = '2010-08-07'; # give date in format YYYY-MM-DD my $sf_dev_list = 'http://sourceforge.net/project/memberlist.php?group_id=2888'; # URL for sourceforge project member list ################################################################################ Copied: trunk/octave-forge/main/ga/NEWS (from rev 9841, trunk/octave-forge/main/ga/doc/NEWS) =================================================================== --- trunk/octave-forge/main/ga/NEWS (rev 0) +++ trunk/octave-forge/main/ga/NEWS 2012-03-13 01:53:05 UTC (rev 9842) @@ -0,0 +1,10 @@ +Summary of important user-visible changes for releases of the ga package + +=============================================================================== +ga-0.9.9 Release Date: 2012-xx-yy Release Manager: Luca Favatella +=============================================================================== + +** Remove dependency on the "communications" package and require + Octave version 3.4.0 (or better). The "communications" package was + used only for its "randint" function; now the "randi" function, + introduced on Octave 3.4.0, is used instead. Deleted: trunk/octave-forge/main/ga/doc/NEWS =================================================================== --- trunk/octave-forge/main/ga/doc/NEWS 2012-03-13 00:59:55 UTC (rev 9841) +++ trunk/octave-forge/main/ga/doc/NEWS 2012-03-13 01:53:05 UTC (rev 9842) @@ -1,10 +0,0 @@ -Summary of important user-visible changes for releases of the ga package - -=============================================================================== -ga-0.9.9 Release Date: 2012-xx-yy Release Manager: Luca Favatella -=============================================================================== - -** Remove dependency on the "communications" package and require - Octave version 3.4.0 (or better). The "communications" package was - used only for its "randint" function; now the "randi" function, - introduced on Octave 3.4.0, is used instead. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2012-03-16 03:58:10
|
Revision: 9916 http://octave.svn.sourceforge.net/octave/?rev=9916&view=rev Author: carandraug Date: 2012-03-16 03:58:03 +0000 (Fri, 16 Mar 2012) Log Message: ----------- help text: functions in oct files are {Loadable Functions}, not {Function Files}. Fixing help texts accordingly Modified Paths: -------------- trunk/octave-forge/extra/ocs/src/Mshichmanhodgesmosfet.cc trunk/octave-forge/main/fits/src/read_fits_image.cc trunk/octave-forge/main/fits/src/save_fits_image.cc trunk/octave-forge/main/fits/src/save_fits_image_multi_ext.cc trunk/octave-forge/main/image/src/__boundary__.cc trunk/octave-forge/main/image/src/__bwdist.cc trunk/octave-forge/main/image/src/bwfill.cc trunk/octave-forge/main/image/src/bwlabel.cc trunk/octave-forge/main/image/src/bwlabeln.cc trunk/octave-forge/main/image/src/graycomatrix.cc trunk/octave-forge/main/image/src/nonmax_supress.cc trunk/octave-forge/main/image/src/rotate_scale.cc trunk/octave-forge/main/io/src/cell2csv.cc trunk/octave-forge/main/io/src/csv2cell.cc trunk/octave-forge/main/io/src/csvconcat.cc trunk/octave-forge/main/io/src/csvexplode.cc trunk/octave-forge/main/io/src/xmlread.cc trunk/octave-forge/main/miscellaneous/src/text_waitbar.cc trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc trunk/octave-forge/main/strings/src/pcregexp.cc Modified: trunk/octave-forge/extra/ocs/src/Mshichmanhodgesmosfet.cc =================================================================== --- trunk/octave-forge/extra/ocs/src/Mshichmanhodgesmosfet.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/extra/ocs/src/Mshichmanhodgesmosfet.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -222,7 +222,7 @@ DEFUN_DLD(Mshichmanhodgesmosfet,args,nargout, "-*- texinfo -*-\n\ \n\ -@deftypefn{Function File} @\n\ +@deftypefn{Loadable Function} @\n\ {[@var{a},@var{b},@var{c}]=} Mshichmanhodgesmosfet@\n\ (@var{string}, @var{parameters}, @var{parameternames}, @\n\ @var{extvar},@var{intvar},@var{t})\n\ Modified: trunk/octave-forge/main/fits/src/read_fits_image.cc =================================================================== --- trunk/octave-forge/main/fits/src/read_fits_image.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/fits/src/read_fits_image.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -19,7 +19,7 @@ DEFUN_DLD( read_fits_image, args, nargout, "-*- texinfo -*-\n\ -@deftypefn {Function File} {[@var{image},@var{header}]} = read_fits_image(@var{filename},@var{hdu})\n\ +@deftypefn {Loadable Function} {[@var{image},@var{header}]} = read_fits_image(@var{filename},@var{hdu})\n\ Read FITS file @var{filename} and return image data in @var{image}, and the image header in @var{header}.\n\ \n\ @var{filename} can be concatenated with filters provided by libcfitsio. See:\ Modified: trunk/octave-forge/main/fits/src/save_fits_image.cc =================================================================== --- trunk/octave-forge/main/fits/src/save_fits_image.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/fits/src/save_fits_image.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -11,7 +11,7 @@ DEFUN_DLD( save_fits_image, args, nargout, "-*- texinfo -*-\n\ - @deftypefn {Function File} save_fits_image(@var{filename}, @var{image}, @var{bit_per_pixel})\n\ + @deftypefn {Loadable Function} save_fits_image(@var{filename}, @var{image}, @var{bit_per_pixel})\n\ Write @var{IMAGE} to FITS file @var{filename}.\n\n\ Datacubes will be saved with NAXIS=3.\n\n\ The optional parameter @var{bit_per_pixel} specifies the data type of the pixel values. Accepted string values are BYTE_IMG, SHORT_IMG, LONG_IMG, LONGLONG_IMG, FLOAT_IMG, and DOUBLE_IMG (default). Alternatively, corresponding numbers may be passed, i.e. 8, 16, 32, 64, -32, and -64.\n\n\ Modified: trunk/octave-forge/main/fits/src/save_fits_image_multi_ext.cc =================================================================== --- trunk/octave-forge/main/fits/src/save_fits_image_multi_ext.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/fits/src/save_fits_image_multi_ext.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -11,7 +11,7 @@ DEFUN_DLD( save_fits_image_multi_ext, args, nargout, "-*- texinfo -*-\n\ - @deftypefn {Function File} save_fits_image_multi_ext(@var{filename}, @var{image}, @var{bit_per_pixel})\n\ + @deftypefn {Loadable Function} save_fits_image_multi_ext(@var{filename}, @var{image}, @var{bit_per_pixel})\n\ Write @var{IMAGE} to FITS file @var{filename}.\n\n\ Datacubes will be saved as multi-image extensions.\n\n\ The optional parameter @var{bit_per_pixel} specifies the data type of the pixel values. Accepted string values are BYTE_IMG, SHORT_IMG, LONG_IMG, LONGLONG_IMG, FLOAT_IMG, and DOUBLE_IMG (default). Alternatively, corresponding numbers may be passed, i.e. 8, 16, 32, 64, -32, and -64.\n\n\ Modified: trunk/octave-forge/main/image/src/__boundary__.cc =================================================================== --- trunk/octave-forge/main/image/src/__boundary__.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/__boundary__.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -27,8 +27,8 @@ DEFUN_DLD(__boundary__, args, nargout, "-*- texinfo -*-\n\ -@deftypefn {Function File} {@var{b} = } boundary(@var{region})\n\ -@deftypefnx {Function File} {@var{b} = } boundary(@var{region}, @var{conn})\n\ +@deftypefn {Loadable Function} {@var{b} = } boundary(@var{region})\n\ +@deftypefnx {Loadable Function} {@var{b} = } boundary(@var{region}, @var{conn})\n\ Trace the boundary of an object in a binary image.\n\ \n\ @code{boundary} computes the exterior clockwise boundary of the single \ Modified: trunk/octave-forge/main/image/src/__bwdist.cc =================================================================== --- trunk/octave-forge/main/image/src/__bwdist.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/__bwdist.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -64,7 +64,7 @@ DEFUN_DLD ( __bwdist, args, nargout, "-*- texinfo -*-\n\ -@deftypefn {Function File} {@var{D} =} __bwdist(@var{bw})\n\ +@deftypefn {Loadable Function} {@var{D} =} __bwdist(@var{bw})\n\ Computes the distance transform of the image @var{bw}.\n\ @var{bw} should be a binary 2D array, either a Boolean array or a\n\ numeric array containing only the values 0 and 1.\n\ @@ -75,7 +75,7 @@ metric) to the closest object pixel. For each object pixel the\n\ return value is 0.\n\ \n\ -@deftypefnx{Function File} {@var{D} =} __bwdist(@var{bw}, @var{method})\n\ +@deftypefnx{Loadable Function} {@var{D} =} __bwdist(@var{bw}, @var{method})\n\ \n\ @var{method} is a string to choose the distance metric. Currently\n\ available metrics are 'euclidean', 'chessboard', 'cityblock' and\n\ @@ -83,7 +83,7 @@ to any string starting with 'e', 'ch', 'ci' and 'q', respectively.\n\ If @var{method} is not specified, 'euclidean' is the default.\n\ \n\ -@deftypefnx {Function File} {[@var{D},@var{C}] =} __bwdist(@var{bw}, @var{method})\n\ +@deftypefnx {Loadable Function} {[@var{D},@var{C}] =} __bwdist(@var{bw}, @var{method})\n\ \n\ If a second output argument is given, the linear index for the\n\ closest object pixel is returned for each pixel. (For object\n\ Modified: trunk/octave-forge/main/image/src/bwfill.cc =================================================================== --- trunk/octave-forge/main/image/src/bwfill.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/bwfill.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -25,7 +25,7 @@ DEFUN_DLD (bwfill, args, ,"\ -*- texinfo -*-\n\ -@deftypefn {Function File} {[@var{bw2}, @var{idx}] =} bwfill(@var{bw1}, @var{c}, @var{r}, @var{n})\n\ +@deftypefn {Loadable Function} {[@var{bw2}, @var{idx}] =} bwfill(@var{bw1}, @var{c}, @var{r}, @var{n})\n\ Perform a flood-fill operation on the binary image @var{bw1}.\n\ The flood-filling starts in the pixel (@var{r}, @var{c}). If @var{r} and @var{c}\n\ are vectors of the same length, each pixel pair (@var{r}(i), @var{c}(i)) will\n\ @@ -35,7 +35,7 @@ \n\ The output is the processed image @var{bw2} and the indexes of the filled\n\ pixels @var{idx}\n\ -@deftypefnx{Function File} {[@var{bw2}, @var{idx}] =} bwfill(@var{bw1}, \"holes\", @var{n})\n\ +@deftypefnx{Loadable Function} {[@var{bw2}, @var{idx}] =} bwfill(@var{bw1}, \"holes\", @var{n})\n\ If the string \"holes\" is given instead of starting points for the flood-fill\n\ operation, the function finds interior holes in @var{bw1} and fills them.\n\ @end deftypefn\n\ Modified: trunk/octave-forge/main/image/src/bwlabel.cc =================================================================== --- trunk/octave-forge/main/image/src/bwlabel.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/bwlabel.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -61,7 +61,7 @@ DEFUN_DLD(bwlabel, args, , "\ -*- texinfo -*-\n\ -@deftypefn {Function File} {[@var{l}, @var{num}] =} bwlabel(@var{bw}, @var{n})\n\ +@deftypefn {Loadable Function} {[@var{l}, @var{num}] =} bwlabel(@var{bw}, @var{n})\n\ Labels foreground objects in the binary image @var{bw}.\n\ The output @var{l} is a matrix where 0 indicates a background pixel,\n\ 1 indicates that the pixel belong to object number 1, 2 that the pixel\n\ Modified: trunk/octave-forge/main/image/src/bwlabeln.cc =================================================================== --- trunk/octave-forge/main/image/src/bwlabeln.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/bwlabeln.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -214,7 +214,7 @@ DEFUN_DLD(bwlabeln, args, , "\ -*- texinfo -*-\n\ -@deftypefn {Function File} {[@var{l}, @var{num}] =} bwlabeln(@var{bw}, @var{n})\n\ +@deftypefn {Loadable Function} {[@var{l}, @var{num}] =} bwlabeln(@var{bw}, @var{n})\n\ Label foreground objects in the n-dimensional binary image @var{bw}.\n\ \n\ The optional argument @var{n} sets the connectivity and defaults 26.\n\ Modified: trunk/octave-forge/main/image/src/graycomatrix.cc =================================================================== --- trunk/octave-forge/main/image/src/graycomatrix.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/graycomatrix.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -26,7 +26,7 @@ DEFUN_DLD(graycomatrix, args, , "\ -*- texinfo -*-\n\ -@deftypefn {Function File} {@var{P} =} graycomatrix(@var{im}, @var{levels}, @var{distances}, @var{angles})\n\ +@deftypefn {Loadable Function} {@var{P} =} graycomatrix(@var{im}, @var{levels}, @var{distances}, @var{angles})\n\ Calculates the gray-level co-occurrence matrix @var{P} of a gray-level image @var{im}.\n\ \n\ @var{P} is a 4-dimensional matrix (histogram). The value @var{P}(@var{i},@var{j},@var{d},@var{theta})\n\ Modified: trunk/octave-forge/main/image/src/nonmax_supress.cc =================================================================== --- trunk/octave-forge/main/image/src/nonmax_supress.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/nonmax_supress.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -47,13 +47,13 @@ DEFUN_DLD(nonmax_supress,args,nargout,"\ -*- texinfo -*-\n\ -@deftypefn {Function File} nonmax_supress (@var{Es}, @var{Eo})\n\ +@deftypefn {Loadable Function} nonmax_supress (@var{Es}, @var{Eo})\n\ Performs non-maximum supression on the given edge data. \ @var{Es} is a matrix containing the edge strength (the length of \ the gradient), and @var{Eo} is the edge normal orientation (the \ direction of the gradient).\n\ \n\ -@deftypefnx {Function File} nonmax_supress (@var{Es}, @var{Eo},\ +@deftypefnx {Loadable Function} nonmax_supress (@var{Es}, @var{Eo},\ @var{low}, @var{high} )\n\ Performs non-maximum supression and hysteresis thresholdong, using \ @var{low} and @var{high} as thresholds.\n\ Modified: trunk/octave-forge/main/image/src/rotate_scale.cc =================================================================== --- trunk/octave-forge/main/image/src/rotate_scale.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/image/src/rotate_scale.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -31,7 +31,7 @@ DEFUN_DLD (rotate_scale, args, , "\ -*- texinfo -*-\n\ -@deftypefn {Function File} {@var{im1} =} rotate_scale(@var{im0}, @var{lm0}, @var{lm1}, @var{out_size})\n\ +@deftypefn {Loadable Function} {@var{im1} =} rotate_scale(@var{im0}, @var{lm0}, @var{lm1}, @var{out_size})\n\ Arbitrary rotation and scaling of a gray-scale image using fast bilinear interpolation.\n\ \n\ The image @var{im0} will be rotated and scaled such that the landmark points in\n\ Modified: trunk/octave-forge/main/io/src/cell2csv.cc =================================================================== --- trunk/octave-forge/main/io/src/cell2csv.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/io/src/cell2csv.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -20,9 +20,9 @@ DEFUN_DLD (cell2csv, args, nargout, "-*- texinfo -*-\n" - "@deftypefn {Function File} {} cell2csv (@var{file}, @var{c})\n" - "@deftypefnx {Function File} {} cell2csv (@var{file}, @var{c}, @var{sep})\n" - "@deftypefnx {Function File} {} cell2csv (@var{file}, @var{c}, @var{sep}, @var{prot})\n" + "@deftypefn {Loadable Function} {} cell2csv (@var{file}, @var{c})\n" + "@deftypefnx {Loadable Function} {} cell2csv (@var{file}, @var{c}, @var{sep})\n" + "@deftypefnx {Loadable Function} {} cell2csv (@var{file}, @var{c}, @var{sep}, @var{prot})\n" "\n" "Create a CSV file from a cell. " "@var{sep} changes the character used to separate two fields. By " Modified: trunk/octave-forge/main/io/src/csv2cell.cc =================================================================== --- trunk/octave-forge/main/io/src/csv2cell.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/io/src/csv2cell.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -22,9 +22,9 @@ DEFUN_DLD (csv2cell, args, nargout, "-*- texinfo -*-\n" - "@deftypefn {Function File} {@var{c} = } csv2cell (@var{file})\n" - "@deftypefnx {Function File} {@var{c} = } csv2cell (@var{file}, @var{sep})\n" - "@deftypefnx {Function File} {@var{c} = } csv2cell (@var{file}, @var{sep}, @var{prot})\n" + "@deftypefn {Loadable Function} {@var{c} = } csv2cell (@var{file})\n" + "@deftypefnx {Loadable Function} {@var{c} = } csv2cell (@var{file}, @var{sep})\n" + "@deftypefnx {Loadable Function} {@var{c} = } csv2cell (@var{file}, @var{sep}, @var{prot})\n" "\n" "Read a CSV (Comma Separated Values) file and convert it into a " "cell. " Modified: trunk/octave-forge/main/io/src/csvconcat.cc =================================================================== --- trunk/octave-forge/main/io/src/csvconcat.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/io/src/csvconcat.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -18,9 +18,9 @@ DEFUN_DLD (csvconcat, args, nargout, "-*- texinfo -*-\n" - "@deftypefn {Function File} {@var{str} = } csvconcat (@var{c})\n" - "@deftypefnx {Function File} {@var{str} = } csvconcat (@var{c}, @var{sep})\n" - "@deftypefnx {Function File} {@var{str} = } csvconcat (@var{c}, @var{sep}, @var{prot})\n" + "@deftypefn {Loadable Function} {@var{str} = } csvconcat (@var{c})\n" + "@deftypefnx {Loadable Function} {@var{str} = } csvconcat (@var{c}, @var{sep})\n" + "@deftypefnx {Loadable Function} {@var{str} = } csvconcat (@var{c}, @var{sep}, @var{prot})\n" "\n" "Concatenate a cell into a CSV string or array of strings. " "@var{sep} changes the character used to separate two fields. By " Modified: trunk/octave-forge/main/io/src/csvexplode.cc =================================================================== --- trunk/octave-forge/main/io/src/csvexplode.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/io/src/csvexplode.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -18,9 +18,9 @@ DEFUN_DLD (csvexplode, args, nargout, "-*- texinfo -*-\n" - "@deftypefn {Function File} {@var{c} = } csvexplode (@var{str})\n" - "@deftypefnx {Function File} {@var{c} = } csvexplode (@var{str}, @var{sep})\n" - "@deftypefnx {Function File} {@var{c} = } csvexplode (@var{str}, @var{sep}, @var{prot})\n" + "@deftypefn {Loadable Function} {@var{c} = } csvexplode (@var{str})\n" + "@deftypefnx {Loadable Function} {@var{c} = } csvexplode (@var{str}, @var{sep})\n" + "@deftypefnx {Loadable Function} {@var{c} = } csvexplode (@var{str}, @var{sep}, @var{prot})\n" "\n" "Explode a CSV string into a cell. " "@var{sep} changes the character used to separate two fields. By " Modified: trunk/octave-forge/main/io/src/xmlread.cc =================================================================== --- trunk/octave-forge/main/io/src/xmlread.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/io/src/xmlread.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -127,7 +127,7 @@ DEFUN_DLD (xmlread, args, nargout, "-*- texinfo -*-\n" - "@deftypefn {Function File} {@var{value}} xmlread(@var{filename})\n" + "@deftypefn {Loadable Function} {@var{value}} xmlread(@var{filename})\n" "\n" "Read a @var{value} from @var{filename} as an XML file\n" "@end deftypefn") { Modified: trunk/octave-forge/main/miscellaneous/src/text_waitbar.cc =================================================================== --- trunk/octave-forge/main/miscellaneous/src/text_waitbar.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/miscellaneous/src/text_waitbar.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -36,9 +36,9 @@ DEFUN_DLD(text_waitbar, args, nargout, " -*- texinfo -*-\n\ -@deftypefn {Function File} {} text_waitbar (@var{frac})\n\ -@deftypefnx {Function File} {} text_waitbar (@var{frac}, @var{msg})\n\ -@deftypefnx {Function File} {} text_waitbar (0, @var{n})\n\ +@deftypefn {Loadable Function} {} text_waitbar (@var{frac})\n\ +@deftypefnx {Loadable Function} {} text_waitbar (@var{frac}, @var{msg})\n\ +@deftypefnx {Loadable Function} {} text_waitbar (0, @var{n})\n\ Display text-based waitbar/progress bar.\n\ \n\ This function is similar to the @code{waitbar} function but is a text, rather\n\ Modified: trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc =================================================================== --- trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/odepkg/src/odepkg_octsolver_rodas.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -461,7 +461,7 @@ // PKG_ADD: autoload ("oders", "dldsolver.oct"); DEFUN_DLD (oders, args, nargout, "-*- texinfo -*-\n\ -@deftypefn {Function File} {[@var{}] =} oders (@var{@@fun}, @var{slot}, @var{init}, [@var{opt}], [@var{par1}, @var{par2}, @dots{}])\n\ +@deftypefn {Loadable Function} {[@var{}] =} oders (@var{@@fun}, @var{slot}, @var{init}, [@var{opt}], [@var{par1}, @var{par2}, @dots{}])\n\ @deftypefnx {Command} {[@var{sol}] =} oders (@var{@@fun}, @var{slot}, @var{init}, [@var{opt}], [@var{par1}, @var{par2}, @dots{}])\n\ @deftypefnx {Command} {[@var{t}, @var{y}, [@var{xe}, @var{ye}, @var{ie}]] =} oders (@var{@@fun}, @var{slot}, @var{init}, [@var{opt}], [@var{par1}, @var{par2}, @dots{}])\n\ \n\ Modified: trunk/octave-forge/main/strings/src/pcregexp.cc =================================================================== --- trunk/octave-forge/main/strings/src/pcregexp.cc 2012-03-16 03:18:23 UTC (rev 9915) +++ trunk/octave-forge/main/strings/src/pcregexp.cc 2012-03-16 03:58:03 UTC (rev 9916) @@ -29,7 +29,7 @@ //FIXME This function needs some documentation DEFUN_DLD(pcregexp, args, nargout, "\ -*- texinfo -*-\n\ -@deftypefn {Function File} {[@ldots{}] =} pcregexp (@ldots{})\n\ +@deftypefn {Loadable Function} {[@ldots{}] =} pcregexp (@ldots{})\n\ Perl-compatible regular expression matching.\n\ \n\ Check your system's @code{pcre} man page.\n\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <par...@us...> - 2012-03-28 03:17:04
|
Revision: 10078 http://octave.svn.sourceforge.net/octave/?rev=10078&view=rev Author: paramaniac Date: 2012-03-28 03:16:58 +0000 (Wed, 28 Mar 2012) Log Message: ----------- main/quaternion --> extra/quaternion-legacy, extra/quaternion_oo --> main/quaternion Added Paths: ----------- trunk/octave-forge/extra/quaternion-legacy/ trunk/octave-forge/main/quaternion/ Removed Paths: ------------- trunk/octave-forge/extra/quaternion_oo/ trunk/octave-forge/main/quaternion/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2012-04-05 21:52:25
|
Revision: 10155 http://octave.svn.sourceforge.net/octave/?rev=10155&view=rev Author: carandraug Date: 2012-04-05 21:52:16 +0000 (Thu, 05 Apr 2012) Log Message: ----------- maint: updating Laurent Mazet e-mail address Modified Paths: -------------- trunk/octave-forge/AUTHORS trunk/octave-forge/admin/qhull.spec trunk/octave-forge/extra/Windows/src/grab.cc trunk/octave-forge/extra/graceplot/inst/alternatives/print.m trunk/octave-forge/main/io/inst/xmlwrite.m trunk/octave-forge/main/io/src/cell2csv.cc trunk/octave-forge/main/io/src/csv2cell.cc trunk/octave-forge/main/io/src/csvconcat.cc trunk/octave-forge/main/io/src/csvexplode.cc trunk/octave-forge/main/io/src/xmlread.cc trunk/octave-forge/main/io/src/xmltree.c trunk/octave-forge/main/io/src/xmltree.h trunk/octave-forge/main/io/src/xmltree_read.act trunk/octave-forge/main/io/src/xmltree_read.h trunk/octave-forge/main/plot/inst/dxfwrite.m trunk/octave-forge/main/signal/inst/tukeywin.m Modified: trunk/octave-forge/AUTHORS =================================================================== --- trunk/octave-forge/AUTHORS 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/AUTHORS 2012-04-05 21:52:16 UTC (rev 10155) @@ -87,7 +87,7 @@ Kai P. Mueller <mu...@if...> Kurt Hornik <Kur...@wu...> Lance Norskog And Sundry Contributors -Laurent Mazet <ma...@cr...> +Laurent Mazet <lau...@ma...> Leopoldo Cerbaro <red...@li...> Levente Torok / Tor...@gm... Luca Citi Modified: trunk/octave-forge/admin/qhull.spec =================================================================== --- trunk/octave-forge/admin/qhull.spec 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/admin/qhull.spec 2012-04-05 21:52:16 UTC (rev 10155) @@ -80,13 +80,13 @@ %_mandir/* %changelog -* Wed Jun 16 2004 Laurent Mazet <ma...@cr...> 2003.1-1mdk +* Wed Jun 16 2004 Laurent Mazet <lau...@ma...> 2003.1-1mdk - Update to qhull new version -* Thu Sep 05 2002 Laurent Mazet <ma...@cr...> 2002.1-1mdk +* Thu Sep 05 2002 Laurent Mazet <lau...@ma...> 2002.1-1mdk - Update to qhull new version -* Thu May 30 2002 Laurent Mazet <ma...@cr...> 3.1-1mdk +* Thu May 30 2002 Laurent Mazet <lau...@ma...> 3.1-1mdk - First package # end of file Modified: trunk/octave-forge/extra/Windows/src/grab.cc =================================================================== --- trunk/octave-forge/extra/Windows/src/grab.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/extra/Windows/src/grab.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -15,7 +15,7 @@ */ /* - * Copyright (C) 2001 Laurent Mazet <ma...@cr...> + * Copyright (C) 2001 Laurent Mazet <lau...@ma...> * * Fix error handler to avoid octave core-dump. * Change to avoid the input limit. Modified: trunk/octave-forge/extra/graceplot/inst/alternatives/print.m =================================================================== --- trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2012-04-05 21:52:16 UTC (rev 10155) @@ -77,7 +77,7 @@ ## ## Author: Daniel Heiserer <Dan...@ph...> -## 2001-03-23 Laurent Mazet <ma...@cr...> +## 2001-03-23 Laurent Mazet <lau...@ma...> ## * simplified interface: guess the device from the extension ## * font support ## 2001-03-25 Paul Kienzle <pki...@us...> @@ -85,7 +85,7 @@ ## * use tmpnam to generate temporary name ## * move "set term" before "set output" as required by gnuplot ## * more options, and flexible options -## 2001-03-29 Laurent Mazet <ma...@cr...> +## 2001-03-29 Laurent Mazet <lau...@ma...> ## * add solid and dashed options ## * change PBMplus device ## * add Corel device @@ -95,7 +95,7 @@ ## * create a .ps for printing (avoid some filtering problems). ## * default printing is mono, default convert is color. ## * add font size support. -## 2001-03-30 Laurent Mazet <ma...@cr...> +## 2001-03-30 Laurent Mazet <lau...@ma...> ## * correct correl into corel ## * delete a irrelevant test ## * check for convert before choosing the ouput device Modified: trunk/octave-forge/main/io/inst/xmlwrite.m =================================================================== --- trunk/octave-forge/main/io/inst/xmlwrite.m 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/inst/xmlwrite.m 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -## Copyright (C) 2004 Laurent Mazet <ma...@cr...> +## Copyright (C) 2004 Laurent Mazet <lau...@ma...> ## ## This program 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 Modified: trunk/octave-forge/main/io/src/cell2csv.cc =================================================================== --- trunk/octave-forge/main/io/src/cell2csv.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/cell2csv.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csv2cell.cc =================================================================== --- trunk/octave-forge/main/io/src/csv2cell.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/csv2cell.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csvconcat.cc =================================================================== --- trunk/octave-forge/main/io/src/csvconcat.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/csvconcat.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csvexplode.cc =================================================================== --- trunk/octave-forge/main/io/src/csvexplode.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/csvexplode.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmlread.cc =================================================================== --- trunk/octave-forge/main/io/src/xmlread.cc 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/xmlread.cc 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree.c =================================================================== --- trunk/octave-forge/main/io/src/xmltree.c 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/xmltree.c 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree.h =================================================================== --- trunk/octave-forge/main/io/src/xmltree.h 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/xmltree.h 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree_read.act =================================================================== --- trunk/octave-forge/main/io/src/xmltree_read.act 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/xmltree_read.act 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,6 +1,6 @@ <!-- -*- XML -*- --> <!-- - Copyright (C) 2004 Laurent Mazet <ma...@cr...> + Copyright (C) 2004 Laurent Mazet <lau...@ma...> This program 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 Modified: trunk/octave-forge/main/io/src/xmltree_read.h =================================================================== --- trunk/octave-forge/main/io/src/xmltree_read.h 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/io/src/xmltree_read.h 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <ma...@cr...> +// Copyright (C) 2004 Laurent Mazet <lau...@ma...> // // This program 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 Modified: trunk/octave-forge/main/plot/inst/dxfwrite.m =================================================================== --- trunk/octave-forge/main/plot/inst/dxfwrite.m 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/plot/inst/dxfwrite.m 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,5 +1,5 @@ ## Copyright (C) 2004 Patrick Labbe -## Copyright (C) 2004 Laurent Mazet <ma...@cr...> +## Copyright (C) 2004 Laurent Mazet <lau...@ma...> ## Copyright (C) 2005 Larry Doolittle <ldo...@re...> ## ## This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/signal/inst/tukeywin.m =================================================================== --- trunk/octave-forge/main/signal/inst/tukeywin.m 2012-04-05 21:45:17 UTC (rev 10154) +++ trunk/octave-forge/main/signal/inst/tukeywin.m 2012-04-05 21:52:16 UTC (rev 10155) @@ -1,4 +1,4 @@ -## Copyright (C) 2007 Laurent Mazet <ma...@cr...> +## Copyright (C) 2007 Laurent Mazet <lau...@ma...> ## ## This program 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2012-04-13 12:12:08
|
Revision: 10211 http://octave.svn.sourceforge.net/octave/?rev=10211&view=rev Author: carandraug Date: 2012-04-13 12:11:56 +0000 (Fri, 13 Apr 2012) Log Message: ----------- maint: reverting r10155 to Laurent Mazet old e-mail address <ma...@cr...>. It is still invalid but <lau...@ma...> is not the same person Revision Links: -------------- http://octave.svn.sourceforge.net/octave/?rev=10155&view=rev Modified Paths: -------------- trunk/octave-forge/AUTHORS trunk/octave-forge/admin/qhull.spec trunk/octave-forge/extra/Windows/src/grab.cc trunk/octave-forge/extra/graceplot/inst/alternatives/print.m trunk/octave-forge/main/io/inst/xmlwrite.m trunk/octave-forge/main/io/src/cell2csv.cc trunk/octave-forge/main/io/src/csv2cell.cc trunk/octave-forge/main/io/src/csvconcat.cc trunk/octave-forge/main/io/src/csvexplode.cc trunk/octave-forge/main/io/src/xmlread.cc trunk/octave-forge/main/io/src/xmltree.c trunk/octave-forge/main/io/src/xmltree.h trunk/octave-forge/main/io/src/xmltree_read.act trunk/octave-forge/main/io/src/xmltree_read.h trunk/octave-forge/main/plot/inst/dxfwrite.m trunk/octave-forge/main/signal/inst/tukeywin.m Modified: trunk/octave-forge/AUTHORS =================================================================== --- trunk/octave-forge/AUTHORS 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/AUTHORS 2012-04-13 12:11:56 UTC (rev 10211) @@ -87,7 +87,7 @@ Kai P. Mueller <mu...@if...> Kurt Hornik <Kur...@wu...> Lance Norskog And Sundry Contributors -Laurent Mazet <lau...@ma...> +Laurent Mazet <ma...@cr...> Leopoldo Cerbaro <red...@li...> Levente Torok / Tor...@gm... Luca Citi Modified: trunk/octave-forge/admin/qhull.spec =================================================================== --- trunk/octave-forge/admin/qhull.spec 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/admin/qhull.spec 2012-04-13 12:11:56 UTC (rev 10211) @@ -80,13 +80,13 @@ %_mandir/* %changelog -* Wed Jun 16 2004 Laurent Mazet <lau...@ma...> 2003.1-1mdk +* Wed Jun 16 2004 Laurent Mazet <ma...@cr...> 2003.1-1mdk - Update to qhull new version -* Thu Sep 05 2002 Laurent Mazet <lau...@ma...> 2002.1-1mdk +* Thu Sep 05 2002 Laurent Mazet <ma...@cr...> 2002.1-1mdk - Update to qhull new version -* Thu May 30 2002 Laurent Mazet <lau...@ma...> 3.1-1mdk +* Thu May 30 2002 Laurent Mazet <ma...@cr...> 3.1-1mdk - First package # end of file Modified: trunk/octave-forge/extra/Windows/src/grab.cc =================================================================== --- trunk/octave-forge/extra/Windows/src/grab.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/extra/Windows/src/grab.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -15,7 +15,7 @@ */ /* - * Copyright (C) 2001 Laurent Mazet <lau...@ma...> + * Copyright (C) 2001 Laurent Mazet <ma...@cr...> * * Fix error handler to avoid octave core-dump. * Change to avoid the input limit. Modified: trunk/octave-forge/extra/graceplot/inst/alternatives/print.m =================================================================== --- trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/extra/graceplot/inst/alternatives/print.m 2012-04-13 12:11:56 UTC (rev 10211) @@ -77,7 +77,7 @@ ## ## Author: Daniel Heiserer <Dan...@ph...> -## 2001-03-23 Laurent Mazet <lau...@ma...> +## 2001-03-23 Laurent Mazet <ma...@cr...> ## * simplified interface: guess the device from the extension ## * font support ## 2001-03-25 Paul Kienzle <pki...@us...> @@ -85,7 +85,7 @@ ## * use tmpnam to generate temporary name ## * move "set term" before "set output" as required by gnuplot ## * more options, and flexible options -## 2001-03-29 Laurent Mazet <lau...@ma...> +## 2001-03-29 Laurent Mazet <ma...@cr...> ## * add solid and dashed options ## * change PBMplus device ## * add Corel device @@ -95,7 +95,7 @@ ## * create a .ps for printing (avoid some filtering problems). ## * default printing is mono, default convert is color. ## * add font size support. -## 2001-03-30 Laurent Mazet <lau...@ma...> +## 2001-03-30 Laurent Mazet <ma...@cr...> ## * correct correl into corel ## * delete a irrelevant test ## * check for convert before choosing the ouput device Modified: trunk/octave-forge/main/io/inst/xmlwrite.m =================================================================== --- trunk/octave-forge/main/io/inst/xmlwrite.m 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/inst/xmlwrite.m 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -## Copyright (C) 2004 Laurent Mazet <lau...@ma...> +## Copyright (C) 2004 Laurent Mazet <ma...@cr...> ## ## This program 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 Modified: trunk/octave-forge/main/io/src/cell2csv.cc =================================================================== --- trunk/octave-forge/main/io/src/cell2csv.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/cell2csv.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csv2cell.cc =================================================================== --- trunk/octave-forge/main/io/src/csv2cell.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/csv2cell.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csvconcat.cc =================================================================== --- trunk/octave-forge/main/io/src/csvconcat.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/csvconcat.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/csvexplode.cc =================================================================== --- trunk/octave-forge/main/io/src/csvexplode.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/csvexplode.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmlread.cc =================================================================== --- trunk/octave-forge/main/io/src/xmlread.cc 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/xmlread.cc 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree.c =================================================================== --- trunk/octave-forge/main/io/src/xmltree.c 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/xmltree.c 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree.h =================================================================== --- trunk/octave-forge/main/io/src/xmltree.h 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/xmltree.h 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/io/src/xmltree_read.act =================================================================== --- trunk/octave-forge/main/io/src/xmltree_read.act 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/xmltree_read.act 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,6 +1,6 @@ <!-- -*- XML -*- --> <!-- - Copyright (C) 2004 Laurent Mazet <lau...@ma...> + Copyright (C) 2004 Laurent Mazet <ma...@cr...> This program 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 Modified: trunk/octave-forge/main/io/src/xmltree_read.h =================================================================== --- trunk/octave-forge/main/io/src/xmltree_read.h 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/io/src/xmltree_read.h 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -// Copyright (C) 2004 Laurent Mazet <lau...@ma...> +// Copyright (C) 2004 Laurent Mazet <ma...@cr...> // // This program 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 Modified: trunk/octave-forge/main/plot/inst/dxfwrite.m =================================================================== --- trunk/octave-forge/main/plot/inst/dxfwrite.m 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/plot/inst/dxfwrite.m 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,5 +1,5 @@ ## Copyright (C) 2004 Patrick Labbe -## Copyright (C) 2004 Laurent Mazet <lau...@ma...> +## Copyright (C) 2004 Laurent Mazet <ma...@cr...> ## Copyright (C) 2005 Larry Doolittle <ldo...@re...> ## ## This program is free software; you can redistribute it and/or modify Modified: trunk/octave-forge/main/signal/inst/tukeywin.m =================================================================== --- trunk/octave-forge/main/signal/inst/tukeywin.m 2012-04-13 11:15:28 UTC (rev 10210) +++ trunk/octave-forge/main/signal/inst/tukeywin.m 2012-04-13 12:11:56 UTC (rev 10211) @@ -1,4 +1,4 @@ -## Copyright (C) 2007 Laurent Mazet <lau...@ma...> +## Copyright (C) 2007 Laurent Mazet <ma...@cr...> ## ## This program 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <car...@us...> - 2012-04-16 09:01:32
|
Revision: 10236 http://octave.svn.sourceforge.net/octave/?rev=10236&view=rev Author: carandraug Date: 2012-04-16 09:01:20 +0000 (Mon, 16 Apr 2012) Log Message: ----------- maint: update e-mail address of Etienne Grossmann to <et...@eg...> as requested by himself Modified Paths: -------------- trunk/octave-forge/AUTHORS trunk/octave-forge/admin/find_changes trunk/octave-forge/extra/gnuplot/inst/myimage.m trunk/octave-forge/main/image/inst/bwborder.m trunk/octave-forge/main/linear-algebra/inst/rotparams.m trunk/octave-forge/main/linear-algebra/inst/rotv.m trunk/octave-forge/main/miscellaneous/inst/nze.m trunk/octave-forge/main/miscellaneous/inst/read_options.m trunk/octave-forge/main/miscellaneous/inst/slurp_file.m trunk/octave-forge/main/miscellaneous/inst/temp_name.m trunk/octave-forge/main/optim/doc/optim-mini-howto-2.lyx trunk/octave-forge/main/optim/doc/optim-mini-howto-2.tex trunk/octave-forge/main/optim/inst/__bracket_min.m trunk/octave-forge/main/optim/inst/__poly_2_extrema.m trunk/octave-forge/main/optim/inst/__semi_bracket.m trunk/octave-forge/main/optim/inst/cdiff.m trunk/octave-forge/main/optim/inst/cg_min.m trunk/octave-forge/main/optim/inst/d2_min.m trunk/octave-forge/main/optim/inst/fminunc_compat.m trunk/octave-forge/main/optim/inst/line_min.m trunk/octave-forge/main/optim/inst/minimize.m trunk/octave-forge/main/optim/inst/nelder_mead_min.m trunk/octave-forge/main/optim/inst/optimset_compat.m trunk/octave-forge/main/optim/inst/test_d2_min_1.m trunk/octave-forge/main/optim/inst/test_d2_min_2.m trunk/octave-forge/main/optim/inst/test_d2_min_3.m trunk/octave-forge/main/optim/inst/test_fminunc_1.m trunk/octave-forge/main/optim/inst/test_min_1.m trunk/octave-forge/main/optim/inst/test_min_2.m trunk/octave-forge/main/optim/inst/test_min_3.m trunk/octave-forge/main/optim/inst/test_min_4.m trunk/octave-forge/main/optim/inst/test_minimize_1.m trunk/octave-forge/main/optim/inst/test_nelder_mead_min_1.m trunk/octave-forge/main/optim/inst/test_nelder_mead_min_2.m trunk/octave-forge/main/struct/DESCRIPTION trunk/octave-forge/main/struct/inst/getfields.m trunk/octave-forge/main/struct/inst/setfields.m trunk/octave-forge/main/struct/inst/tars.m trunk/octave-forge/main/struct/inst/test_struct.m trunk/octave-forge/main/vrml/DESCRIPTION trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.lyx trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.tex trunk/octave-forge/main/vrml/inst/best_dir.m trunk/octave-forge/main/vrml/inst/best_dir_cov.m trunk/octave-forge/main/vrml/inst/bound_convex.m trunk/octave-forge/main/vrml/inst/checker_color.m trunk/octave-forge/main/vrml/inst/proplan.m trunk/octave-forge/main/vrml/inst/save_vrml.m trunk/octave-forge/main/vrml/inst/test_moving_surf.m trunk/octave-forge/main/vrml/inst/test_vmesh.m trunk/octave-forge/main/vrml/inst/test_vrml_faces.m trunk/octave-forge/main/vrml/inst/vmesh.m trunk/octave-forge/main/vrml/inst/vrml_Background.m trunk/octave-forge/main/vrml/inst/vrml_Box.m trunk/octave-forge/main/vrml/inst/vrml_DirectionalLight.m trunk/octave-forge/main/vrml/inst/vrml_PointLight.m trunk/octave-forge/main/vrml/inst/vrml_ROUTE.m trunk/octave-forge/main/vrml/inst/vrml_Sphere.m trunk/octave-forge/main/vrml/inst/vrml_TimeSensor.m trunk/octave-forge/main/vrml/inst/vrml_Viewpoint.m trunk/octave-forge/main/vrml/inst/vrml_anim.m trunk/octave-forge/main/vrml/inst/vrml_arrow.m trunk/octave-forge/main/vrml/inst/vrml_browse.m trunk/octave-forge/main/vrml/inst/vrml_cyl.m trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_1.m trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_2.m trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_3.m trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_4.m trunk/octave-forge/main/vrml/inst/vrml_ellipsoid.m trunk/octave-forge/main/vrml/inst/vrml_faces.m trunk/octave-forge/main/vrml/inst/vrml_flatten.m trunk/octave-forge/main/vrml/inst/vrml_frame.m trunk/octave-forge/main/vrml/inst/vrml_group.m trunk/octave-forge/main/vrml/inst/vrml_interp.m trunk/octave-forge/main/vrml/inst/vrml_kill.m trunk/octave-forge/main/vrml/inst/vrml_lines.m trunk/octave-forge/main/vrml/inst/vrml_material.m trunk/octave-forge/main/vrml/inst/vrml_newname.m trunk/octave-forge/main/vrml/inst/vrml_parallelepiped.m trunk/octave-forge/main/vrml/inst/vrml_parallelogram.m trunk/octave-forge/main/vrml/inst/vrml_points.m trunk/octave-forge/main/vrml/inst/vrml_surf.m trunk/octave-forge/main/vrml/inst/vrml_text.m trunk/octave-forge/main/vrml/inst/vrml_thick_surf.m trunk/octave-forge/main/vrml/inst/vrml_transfo.m Modified: trunk/octave-forge/AUTHORS =================================================================== --- trunk/octave-forge/AUTHORS 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/AUTHORS 2012-04-16 09:01:20 UTC (rev 10236) @@ -45,7 +45,7 @@ Dept of Probability Theory and Statistics TU Wien Eric Chassande-Mottin Eric Chassande-Mottin, CNRS (France) -Etienne Grossmann <et...@is...> +Etienne Grossmann <et...@eg...> FL <Fri...@ci...> Fabrice Bellard Francesco Potortì Modified: trunk/octave-forge/admin/find_changes =================================================================== --- trunk/octave-forge/admin/find_changes 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/admin/find_changes 2012-04-16 09:01:20 UTC (rev 10236) @@ -55,7 +55,7 @@ This file is distributed under the terms of the GNU General Public Licence. -=head1 AUTHOR Etienne Grossmann E<lt>et...@is...E<gt> +=head1 AUTHOR Etienne Grossmann E<lt>et...@eg...E<gt> =cut Modified: trunk/octave-forge/extra/gnuplot/inst/myimage.m =================================================================== --- trunk/octave-forge/extra/gnuplot/inst/myimage.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/extra/gnuplot/inst/myimage.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -54,7 +54,7 @@ ## ## FIXME: scl < 1 seems to be buggy -### Author Etienne Grossmann <et...@is...> +### Author Etienne Grossmann <et...@eg...> function im = myimage (im, varargin) ##viewer = "qiv"; # If I need to display image Modified: trunk/octave-forge/main/image/inst/bwborder.m =================================================================== --- trunk/octave-forge/main/image/inst/bwborder.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/image/inst/bwborder.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -23,7 +23,7 @@ ## neighbor that is not set. ## @end deftypefn -## Author: Etienne Grossmann <et...@is...> +## Author: Etienne Grossmann <et...@eg...> ## Last modified: January 2000 function b = bwborder(im) Modified: trunk/octave-forge/main/linear-algebra/inst/rotparams.m =================================================================== --- trunk/octave-forge/main/linear-algebra/inst/rotparams.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/linear-algebra/inst/rotparams.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by the Modified: trunk/octave-forge/main/linear-algebra/inst/rotv.m =================================================================== --- trunk/octave-forge/main/linear-algebra/inst/rotv.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/linear-algebra/inst/rotv.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by the Modified: trunk/octave-forge/main/miscellaneous/inst/nze.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/nze.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/miscellaneous/inst/nze.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -19,7 +19,7 @@ ## Optionally, returns also linear indices. ## @end deftypefn -## Author: Etienne Grossmann <et...@is...> +## Author: Etienne Grossmann <et...@eg...> ## Author: Jaroslav Hajek <hi...@gm...> function [y, f] = nze (x) Modified: trunk/octave-forge/main/miscellaneous/inst/read_options.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/read_options.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/miscellaneous/inst/read_options.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/miscellaneous/inst/slurp_file.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/slurp_file.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/miscellaneous/inst/slurp_file.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/miscellaneous/inst/temp_name.m =================================================================== --- trunk/octave-forge/main/miscellaneous/inst/temp_name.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/miscellaneous/inst/temp_name.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/doc/optim-mini-howto-2.lyx =================================================================== (Binary files differ) Modified: trunk/octave-forge/main/optim/doc/optim-mini-howto-2.tex =================================================================== --- trunk/octave-forge/main/optim/doc/optim-mini-howto-2.tex 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/doc/optim-mini-howto-2.tex 2012-04-16 09:01:20 UTC (rev 10236) @@ -79,7 +79,7 @@ \title{Mini-HOWTO on using Octave for Unconstrained Nonlinear Optimization% -\thanks{Author : Etienne Grossmann \texttt{<et...@is...>} (soon +\thanks{Author : Etienne Grossmann \texttt{<et...@eg...>} (soon replaced by {}``Octave-Forge developers''?). This document is free documentation; you can redistribute it and/or modify it under the terms of the GNU Free Documentation License as published by the Free Modified: trunk/octave-forge/main/optim/inst/__bracket_min.m =================================================================== --- trunk/octave-forge/main/optim/inst/__bracket_min.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/__bracket_min.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2009 Levente Torok <Tor...@gm...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/__poly_2_extrema.m =================================================================== --- trunk/octave-forge/main/optim/inst/__poly_2_extrema.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/__poly_2_extrema.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2009 Levente Torok <Tor...@gm...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/__semi_bracket.m =================================================================== --- trunk/octave-forge/main/optim/inst/__semi_bracket.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/__semi_bracket.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2009 Levente Torok <Tor...@gm...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/cdiff.m =================================================================== --- trunk/octave-forge/main/optim/inst/cdiff.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/cdiff.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/cg_min.m =================================================================== --- trunk/octave-forge/main/optim/inst/cg_min.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/cg_min.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2009 Levente Torok <Tor...@gm...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/d2_min.m =================================================================== --- trunk/octave-forge/main/optim/inst/d2_min.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/d2_min.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/fminunc_compat.m =================================================================== --- trunk/octave-forge/main/optim/inst/fminunc_compat.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/fminunc_compat.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/line_min.m =================================================================== --- trunk/octave-forge/main/optim/inst/line_min.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/line_min.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,5 +1,5 @@ ## Copyright (C) 2000 Ben Sapp <bs...@la...> -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2011 Nir Krakauer nkr...@cc... ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/minimize.m =================================================================== --- trunk/octave-forge/main/optim/inst/minimize.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/minimize.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/nelder_mead_min.m =================================================================== --- trunk/octave-forge/main/optim/inst/nelder_mead_min.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/nelder_mead_min.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2008 Etienne Grossmann <et...@is...> +## Copyright (C) 2002-2008 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/optimset_compat.m =================================================================== --- trunk/octave-forge/main/optim/inst/optimset_compat.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/optimset_compat.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_d2_min_1.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_d2_min_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_d2_min_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_d2_min_2.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_d2_min_2.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_d2_min_2.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_d2_min_3.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_d2_min_3.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_d2_min_3.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_fminunc_1.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_fminunc_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_fminunc_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_min_1.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_min_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_min_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2004 Michael Creel <mic...@ua...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/test_min_2.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_min_2.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_min_2.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2004 Michael Creel <mic...@ua...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/test_min_3.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_min_3.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_min_3.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## Copyright (C) 2004 Michael Creel <mic...@ua...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/optim/inst/test_min_4.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_min_4.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_min_4.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_minimize_1.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_minimize_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_minimize_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_nelder_mead_min_1.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_nelder_mead_min_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_nelder_mead_min_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/optim/inst/test_nelder_mead_min_2.m =================================================================== --- trunk/octave-forge/main/optim/inst/test_nelder_mead_min_2.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/optim/inst/test_nelder_mead_min_2.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/struct/DESCRIPTION =================================================================== --- trunk/octave-forge/main/struct/DESCRIPTION 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/struct/DESCRIPTION 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,7 +1,7 @@ Name: Struct Version: 1.0.10 Date: 2012-03-25 -Author: Etienne Grossmann <et...@is...>, Olaf Till <i7...@t-...> +Author: Etienne Grossmann <et...@eg...>, Olaf Till <i7...@t-...> Maintainer: Olaf Till <i7...@t-...> Title: Structure Handling. Description: Additional Structure manipulations functions. Modified: trunk/octave-forge/main/struct/inst/getfields.m =================================================================== --- trunk/octave-forge/main/struct/inst/getfields.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/struct/inst/getfields.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2000 Etienne Grossmann <et...@is...> +## Copyright (C) 2000 Etienne Grossmann <et...@eg...> ## Copyright (C) 2012 Olaf Till <i7...@t-...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/struct/inst/setfields.m =================================================================== --- trunk/octave-forge/main/struct/inst/setfields.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/struct/inst/setfields.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2000 Etienne Grossmann <et...@is...> +## Copyright (C) 2000 Etienne Grossmann <et...@eg...> ## Copyright (C) 2000 Paul Kienzle <pki...@us...> ## Copyright (C) 2012 Olaf Till <i7...@t-...> ## Modified: trunk/octave-forge/main/struct/inst/tars.m =================================================================== --- trunk/octave-forge/main/struct/inst/tars.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/struct/inst/tars.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2000 Etienne Grossmann <et...@is...> +## Copyright (C) 2000 Etienne Grossmann <et...@eg...> ## Copyright (C) 2012 Olaf Till <i7...@t-...> ## ## This program is free software; you can redistribute it and/or modify it under Modified: trunk/octave-forge/main/struct/inst/test_struct.m =================================================================== --- trunk/octave-forge/main/struct/inst/test_struct.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/struct/inst/test_struct.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2000 Etienne Grossmann <et...@is...> +## Copyright (C) 2000 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/DESCRIPTION =================================================================== --- trunk/octave-forge/main/vrml/DESCRIPTION 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/DESCRIPTION 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,8 +1,8 @@ Name: Vrml Version: 1.0.12 Date: 2010-04-11 -Author: Etienne Grossmann <et...@is...> -Maintainer: Etienne Grossmann <et...@is...> +Author: Etienne Grossmann <et...@eg...> +Maintainer: Etienne Grossmann <et...@eg...> Title: VRML. Description: 3D graphics using VRML Depends: octave (>= 2.9.7), miscellaneous, struct, statistics Modified: trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.lyx =================================================================== (Binary files differ) Modified: trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.tex =================================================================== --- trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.tex 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/doc/vrml-mini-howto-1.tex 2012-04-16 09:01:20 UTC (rev 10236) @@ -80,7 +80,7 @@ \title{Mini-HOWTO : visualizing 3D data using Octave, VRML and FreeWRL% -\thanks{Author : Etienne Grossmann \texttt{<et...@is...>} (soon +\thanks{Author : Etienne Grossmann \texttt{<et...@eg...>} (soon replaced by {}``Octave-Forge developers''?). This document is free documentation; you can redistribute it and/or modify it under the terms of the GNU Free Documentation License as published by the Free Modified: trunk/octave-forge/main/vrml/inst/best_dir.m =================================================================== --- trunk/octave-forge/main/vrml/inst/best_dir.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/best_dir.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 @@ -66,7 +66,7 @@ ## wx : (D+W)x(D*P) ## Derivatives of [w;d] wrt to x. ## -## Author : Etienne Grossmann <et...@is...> +## Author : Etienne Grossmann <et...@eg...> ## Created : March 2000 ## function [d,w,rx,cv,wx] = best_dir( x, a, sx ) Modified: trunk/octave-forge/main/vrml/inst/best_dir_cov.m =================================================================== --- trunk/octave-forge/main/vrml/inst/best_dir_cov.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/best_dir_cov.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 @@ -26,7 +26,7 @@ ## wx (W+D)x(P*D) : derivatives of ML estimate wrt to observations ## -## Author: Etienne Grossmann <et...@is...> +## Author: Etienne Grossmann <et...@eg...> ## Last modified: Setembro 2002 function [cv,wx] = best_dir_cov(x,a,sx,wd) Modified: trunk/octave-forge/main/vrml/inst/bound_convex.m =================================================================== --- trunk/octave-forge/main/vrml/inst/bound_convex.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/bound_convex.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 @@ -19,7 +19,7 @@ ## in the plane d*y == v. The corners are sorted. ## -## Author: Etienne Grossmann <et...@is...> +## Author: Etienne Grossmann <et...@eg...> function y = bound_convex(d,h,x,pad) Modified: trunk/octave-forge/main/vrml/inst/checker_color.m =================================================================== --- trunk/octave-forge/main/vrml/inst/checker_color.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/checker_color.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2010 Etienne Grossmann <et...@is...> +## Copyright (C) 2010 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/proplan.m =================================================================== --- trunk/octave-forge/main/vrml/inst/proplan.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/proplan.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/save_vrml.m =================================================================== --- trunk/octave-forge/main/vrml/inst/save_vrml.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/save_vrml.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/test_moving_surf.m =================================================================== --- trunk/octave-forge/main/vrml/inst/test_moving_surf.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/test_moving_surf.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/test_vmesh.m =================================================================== --- trunk/octave-forge/main/vrml/inst/test_vmesh.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/test_vmesh.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/test_vrml_faces.m =================================================================== --- trunk/octave-forge/main/vrml/inst/test_vrml_faces.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/test_vrml_faces.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vmesh.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vmesh.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vmesh.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2009 Etienne Grossmann <et...@is...> +## Copyright (C) 2002-2009 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_Background.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_Background.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_Background.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_Box.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_Box.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_Box.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2010 Etienne Grossmann <et...@is...> +## Copyright (C) 2010 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_DirectionalLight.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_DirectionalLight.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_DirectionalLight.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_PointLight.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_PointLight.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_PointLight.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_ROUTE.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_ROUTE.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_ROUTE.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_Sphere.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_Sphere.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_Sphere.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2010 Etienne Grossmann <et...@is...> +## Copyright (C) 2010 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_TimeSensor.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_TimeSensor.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_TimeSensor.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_Viewpoint.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_Viewpoint.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_Viewpoint.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2010 Etienne Grossmann <et...@is...> +## Copyright (C) 2010 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_anim.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_anim.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_anim.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_arrow.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_arrow.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_arrow.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2012 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002-2012 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_browse.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_browse.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_browse.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_cyl.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_cyl.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_cyl.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_1.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_1.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_1.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2009 Etienne Grossmann <et...@is...> +## Copyright (C) 2002-2009 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_2.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_2.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_2.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_3.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_3.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_3.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_4.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_4.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_demo_tutorial_4.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2009 Etienne Grossmann <et...@is...> +## Copyright (C) 2002-2009 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_ellipsoid.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_ellipsoid.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_ellipsoid.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_faces.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_faces.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_faces.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_flatten.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_flatten.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_flatten.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_frame.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_frame.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_frame.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2012 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002-2012 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_group.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_group.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_group.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_interp.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_interp.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_interp.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_kill.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_kill.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_kill.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_lines.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_lines.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_lines.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_material.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_material.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_material.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_newname.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_newname.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_newname.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2005 Etienne Grossmann <et...@is...> +## Copyright (C) 2005 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_parallelepiped.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_parallelepiped.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_parallelepiped.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2007-2010 Etienne Grossmann <et...@is...> +## Copyright (C) 2007-2010 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_parallelogram.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_parallelogram.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_parallelogram.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2003 Etienne Grossmann <et...@is...> +## Copyright (C) 2003 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_points.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_points.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_points.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_surf.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_surf.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_surf.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002-2009 Etienne Grossmann <et...@is...> +## Copyright (C) 2002-2009 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_text.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_text.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_text.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_thick_surf.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_thick_surf.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_thick_surf.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 Modified: trunk/octave-forge/main/vrml/inst/vrml_transfo.m =================================================================== --- trunk/octave-forge/main/vrml/inst/vrml_transfo.m 2012-04-16 08:31:15 UTC (rev 10235) +++ trunk/octave-forge/main/vrml/inst/vrml_transfo.m 2012-04-16 09:01:20 UTC (rev 10236) @@ -1,4 +1,4 @@ -## Copyright (C) 2002 Etienne Grossmann <et...@is...> +## Copyright (C) 2002 Etienne Grossmann <et...@eg...> ## ## This program 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpi...@us...> - 2012-04-16 10:33:14
|
Revision: 10244 http://octave.svn.sourceforge.net/octave/?rev=10244&view=rev Author: jpicarbajal Date: 2012-04-16 10:33:04 +0000 (Mon, 16 Apr 2012) Log Message: ----------- geometry: adding functions to polygon2d admin: removing package after html generation Modified Paths: -------------- trunk/octave-forge/admin/releasePKG.m trunk/octave-forge/main/geometry/inst/polygons2d/supportFunction.m Modified: trunk/octave-forge/admin/releasePKG.m =================================================================== --- trunk/octave-forge/admin/releasePKG.m 2012-04-16 10:17:46 UTC (rev 10243) +++ trunk/octave-forge/admin/releasePKG.m 2012-04-16 10:33:04 UTC (rev 10244) @@ -139,6 +139,10 @@ warning ("md5sum failed.\n"); end + % Uninstall package + printf("Uninstalling...\n"); + fflush(stdout); + pkg ('uninstall', pkgname); endif % do_doc Modified: trunk/octave-forge/main/geometry/inst/polygons2d/supportFunction.m =================================================================== --- trunk/octave-forge/main/geometry/inst/polygons2d/supportFunction.m 2012-04-16 10:17:46 UTC (rev 10243) +++ trunk/octave-forge/main/geometry/inst/polygons2d/supportFunction.m 2012-04-16 10:33:04 UTC (rev 10244) @@ -47,24 +47,19 @@ function h = supportFunction(polygon, varargin) N = 24; - u = 0:2*pi/N:2*pi*(1-1/N); + u = (0:2*pi/N:2*pi*(1-1/N)).'; if length(varargin)==1 var = varargin{1}; if length(var)==1 N = var; - u = 0:2*pi/N:2*pi*(1-1/N); + u = (0:2*pi/N:2*pi*(1-1/N)).'; else - u = var; + u = var(:); end end - % ensure u vertical vector - if size(u, 1)==1 - u=u'; - end - h = zeros(size(u)); for i=1:length(u) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <par...@us...> - 2012-08-14 20:02:06
|
Revision: 10866 http://octave.svn.sourceforge.net/octave/?rev=10866&view=rev Author: paramaniac Date: 2012-08-14 20:01:58 +0000 (Tue, 14 Aug 2012) Log Message: ----------- extra/control-devel ---> main/control (2) Added Paths: ----------- trunk/octave-forge/main/control/src/is_matrix.cc trunk/octave-forge/main/control/src/slib01ad.cc trunk/octave-forge/main/control/src/slib01cd.cc trunk/octave-forge/main/control/src/slident.cc Removed Paths: ------------- trunk/octave-forge/extra/control-devel/src/is_matrix.cc trunk/octave-forge/extra/control-devel/src/slib01ad.cc trunk/octave-forge/extra/control-devel/src/slib01cd.cc trunk/octave-forge/extra/control-devel/src/slident.cc Deleted: trunk/octave-forge/extra/control-devel/src/is_matrix.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/is_matrix.cc 2012-08-14 19:59:40 UTC (rev 10865) +++ trunk/octave-forge/extra/control-devel/src/is_matrix.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -1,60 +0,0 @@ -/* - -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/>. - -Return true if argument is a real matrix. - -Author: Lukas Reichlin <luk...@gm...> -Created: June 2012 -Version: 0.1 - -*/ - -#include <octave/oct.h> - -DEFUN_DLD (is_matrix, args, nargout, - "-*- texinfo -*-\n\ -@deftypefn {Loadable Function} {} is_matrix (@var{a}, @dots{})\n\ -Return true if argument is a matrix.\n\ -@var{[]} is a valid matrix.\n\ -Avoid nasty stuff like @code{true = isreal (\"a\")}\n\ -@seealso{is_real_matrix, is_real_square_matrix, is_real_vector, is_real_scalar}\n\ -@end deftypefn") -{ - octave_value retval = true; - int nargin = args.length (); - - if (nargin == 0) - { - print_usage (); - } - else - { - for (int i = 0; i < nargin; i++) - { - if (args(i).ndims () != 2 || ! args(i).is_numeric_type () - || ! (args(i).is_complex_type () || args(i).is_real_type ())) - { - retval = false; - break; - } - } - } - - return retval; -} Deleted: trunk/octave-forge/extra/control-devel/src/slib01ad.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/slib01ad.cc 2012-08-14 19:59:40 UTC (rev 10865) +++ trunk/octave-forge/extra/control-devel/src/slib01ad.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -1,383 +0,0 @@ -/* - -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/>. - -SLICOT system identification -Uses SLICOT IB01AD, IB01BD and IB01CD by courtesy of NICONET e.V. -<http://www.slicot.org> - -Author: Lukas Reichlin <luk...@gm...> -Created: March 2012 -Version: 0.1 - -*/ - -#include <octave/oct.h> -#include <octave/f77-fcn.h> -#include <octave/Cell.h> -#include "common.h" - -extern "C" -{ - int F77_FUNC (ib01ad, IB01AD) - (char& METH, char& ALG, char& JOBD, - char& BATCH, char& CONCT, char& CTRL, - int& NOBR, int& M, int& L, - int& NSMP, - double* U, int& LDU, - double* Y, int& LDY, - int& N, - double* R, int& LDR, - double* SV, - double& RCOND, double& TOL, - int* IWORK, - 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\ -No argument checking.\n\ -For internal use only.") -{ - int nargin = args.length (); - octave_value_list retval; - - if (nargin != 10) - { - print_usage (); - } - else - { -//////////////////////////////////////////////////////////////////////////////////// -// SLICOT IB01AD - preprocess the input-output data // -//////////////////////////////////////////////////////////////////////////////////// - - // arguments in - char meth_a; - char meth_b; - char alg; - char jobd; - char batch; - char conct; - char ctrl = 'N'; - - const Cell y_cell = args(0).cell_value (); - const Cell u_cell = args(1).cell_value (); - int nobr = args(2).int_value (); - int nuser = args(3).int_value (); - - const int imeth = args(4).int_value (); - const int ialg = args(5).int_value (); - const int iconct = args(6).int_value (); - const int ictrl = args(7).int_value (); // ignored - - double rcond = args(8).double_value (); - double tol_a = args(9).double_value (); - - double tol_b = rcond; - double tol_c = rcond; - - - switch (imeth) - { - case 0: - meth_a = 'M'; - meth_b = 'M'; - break; - case 1: - meth_a = 'N'; - meth_b = 'N'; - break; - case 2: - meth_a = 'N'; // no typo here - meth_b = 'C'; - break; - default: - error ("slib01ad: argument 'meth' invalid"); - } - - switch (ialg) - { - case 0: - alg = 'C'; - break; - case 1: - alg = 'F'; - break; - case 2: - alg = 'Q'; - break; - default: - error ("slib01ad: argument 'alg' invalid"); - } - - if (meth_a == 'M') - jobd = 'M'; - else // meth_a == 'N' - jobd = 'N'; // IB01AD.f says: This parameter is not relevant for METH = 'N' - - if (iconct == 0) - conct = 'C'; - else - conct = 'N'; -/* - if (ictrl == 0) - ctrl = 'C'; - else - ctrl = 'N'; -*/ - // m and l are equal for all experiments, checked by iddata class - int n_exp = y_cell.nelem (); // number of experiments - int m = u_cell.elem(0).columns (); // m: number of inputs - int l = y_cell.elem(0).columns (); // l: number of outputs - int nsmpl = 0; // total number of samples - - // arguments out - int n; - int ldr; - - if (meth_a == 'M' && jobd == 'M') - ldr = max (2*(m+l)*nobr, 3*m*nobr); - else if (meth_a == 'N' || (meth_a == 'M' && jobd == 'N')) - ldr = 2*(m+l)*nobr; - else - error ("slib01ad: could not handle 'ldr' case"); - - Matrix r (ldr, 2*(m+l)*nobr); - ColumnVector sv (l*nobr); - - - // repeat for every experiment in the dataset - for (int i = 0; i < n_exp; i++) - { - if (n_exp == 1) - batch = 'O'; // one block only - else if (i == 0) - batch = 'F'; // first block - else if (i == n_exp-1) - batch = 'L'; // last block - else - batch = 'I'; // intermediate block - - Matrix y = y_cell.elem(i).matrix_value (); - Matrix u = u_cell.elem(i).matrix_value (); - - // y.rows == u.rows is checked by iddata class - // int m = u.columns (); // m: number of inputs - // int l = y.columns (); // l: number of outputs - int nsmp = y.rows (); // nsmp: number of samples in the current experiment - nsmpl += nsmp; // nsmpl: total number of samples of all experiments - - // minimal nsmp size checked by __slicot_identification__.m - if (batch == 'O') - { - if (nsmp < 2*(m+l+1)*nobr - 1) - error ("slident: require NSMP >= 2*(M+L+1)*NOBR - 1"); - } - else - { - if (nsmp < 2*nobr) - error ("slident: require NSMP >= 2*NOBR"); - } - - int ldu; - - if (m == 0) - ldu = 1; - else // m > 0 - ldu = nsmp; - - int ldy = nsmp; - - // workspace - int liwork_a; - - if (meth_a == 'N') // if METH = 'N' - liwork_a = (m+l)*nobr; - else if (alg == 'F') // if METH = 'M' and ALG = 'F' - liwork_a = m+l; - else // if METH = 'M' and ALG = 'C' or 'Q' - liwork_a = 0; - - // TODO: Handle 'k' for DWORK - - int ldwork_a; - int ns = nsmp - 2*nobr + 1; - - if (alg == 'C') - { - if (batch == 'F' || batch == 'I') - { - if (conct == 'C') - ldwork_a = (4*nobr-2)*(m+l); - else // (conct == 'N') - ldwork_a = 1; - } - else if (meth_a == 'M') // && (batch == 'L' || batch == 'O') - { - if (conct == 'C' && batch == 'L') - ldwork_a = max ((4*nobr-2)*(m+l), 5*l*nobr); - else if (jobd == 'M') - ldwork_a = max ((2*m-1)*nobr, (m+l)*nobr, 5*l*nobr); - else // (jobd == 'N') - ldwork_a = 5*l*nobr; - } - else // meth_b == 'N' && (batch == 'L' || batch == 'O') - { - ldwork_a = 5*(m+l)*nobr + 1; - } - } - else if (alg == 'F') - { - if (batch != 'O' && conct == 'C') - ldwork_a = (m+l)*2*nobr*(m+l+3); - else if (batch == 'F' || batch == 'I') // && conct == 'N' - ldwork_a = (m+l)*2*nobr*(m+l+1); - else // (batch == 'L' || '0' && conct == 'N') - ldwork_a = (m+l)*4*nobr*(m+l+1)+(m+l)*2*nobr; - } - else // (alg == 'Q') - { - // int ns = nsmp - 2*nobr + 1; - - if (ldr >= ns && batch == 'F') - { - ldwork_a = 4*(m+l)*nobr; - } - else if (ldr >= ns && batch == 'O') - { - if (meth_a == 'M') - ldwork_a = max (4*(m+l)*nobr, 5*l*nobr); - else // (meth == 'N') - ldwork_a = 5*(m+l)*nobr + 1; - } - else if (conct == 'C' && (batch == 'I' || batch == 'L')) - { - ldwork_a = 4*(nobr+1)*(m+l)*nobr; - } - else // if ALG = 'Q', (BATCH = 'F' or 'O', and LDR < NS), or (BATCH = 'I' or 'L' and CONCT = 'N') - { - ldwork_a = 6*(m+l)*nobr; - } - } - - /* - IB01AD.f Lines 438-445 - C FURTHER COMMENTS - C - C For ALG = 'Q', BATCH = 'O' and LDR < NS, or BATCH <> 'O', the - C calculations could be rather inefficient if only minimal workspace - C (see argument LDWORK) is provided. It is advisable to provide as - C much workspace as possible. Almost optimal efficiency can be - C obtained for LDWORK = (NS+2)*(2*(M+L)*NOBR), assuming that the - C cache size is large enough to accommodate R, U, Y, and DWORK. - */ - - ldwork_a = max (ldwork_a, (ns+2)*(2*(m+l)*nobr)); - - /* - IB01AD.f Lines 291-195: - c the workspace used for alg = 'q' is - c ldrwrk*2*(m+l)*nobr + 4*(m+l)*nobr, - c where ldrwrk = ldwork/(2*(m+l)*nobr) - 2; recommended - c value ldrwrk = ns, assuming a large enough cache size. - c for good performance, ldwork should be larger. - - somehow ldrwrk and ldwork must have been mixed up here - - */ - - - OCTAVE_LOCAL_BUFFER (int, iwork_a, liwork_a); - OCTAVE_LOCAL_BUFFER (double, dwork_a, ldwork_a); - - // error indicators - int iwarn_a = 0; - int info_a = 0; - - - // SLICOT routine IB01AD - F77_XFCN (ib01ad, IB01AD, - (meth_a, alg, jobd, - batch, conct, ctrl, - nobr, m, l, - nsmp, - u.fortran_vec (), ldu, - y.fortran_vec (), ldy, - n, - r.fortran_vec (), ldr, - sv.fortran_vec (), - rcond, tol_a, - iwork_a, - dwork_a, ldwork_a, - iwarn_a, info_a)); - - - if (f77_exception_encountered) - error ("ident: exception in SLICOT subroutine IB01AD"); - - static const char* err_msg[] = { - "0: OK", - "1: a fast algorithm was requested (ALG = 'C', or 'F') " - "in sequential data processing, but it failed; the " - "routine can be repeatedly called again using the " - "standard QR algorithm", - "2: the singular value decomposition (SVD) algorithm did " - "not converge"}; - - static const char* warn_msg[] = { - "0: OK", - "1: the number of 100 cycles in sequential data " - "processing has been exhausted without signaling " - "that the last block of data was get; the cycle " - "counter was reinitialized", - "2: a fast algorithm was requested (ALG = 'C' or 'F'), " - "but it failed, and the QR algorithm was then used " - "(non-sequential data processing)", - "3: all singular values were exactly zero, hence N = 0 " - "(both input and output were identically zero)", - "4: the least squares problems with coefficient matrix " - "U_f, used for computing the weighted oblique " - "projection (for METH = 'N'), have a rank-deficient " - "coefficient matrix", - "5: the least squares problem with coefficient matrix " - "r_1 [6], used for computing the weighted oblique " - "projection (for METH = 'N'), has a rank-deficient " - "coefficient matrix"}; - - - error_msg ("ident: IB01AD", info_a, 2, err_msg); - warning_msg ("ident: IB01AD", iwarn_a, 5, warn_msg); - } - - - // resize - int rs = 2*(m+l)*nobr; - r.resize (rs, rs); - - - // return values - retval(0) = sv; - retval(1) = octave_value (n); - } - - return retval; -} Deleted: trunk/octave-forge/extra/control-devel/src/slib01cd.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/slib01cd.cc 2012-08-14 19:59:40 UTC (rev 10865) +++ trunk/octave-forge/extra/control-devel/src/slib01cd.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -1,200 +0,0 @@ -/* - -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/>. - -Compute initial state vector x0 -Uses IB01CD by courtesy of NICONET e.V. -<http://www.slicot.org> - -Author: Lukas Reichlin <luk...@gm...> -Created: May 2012 -Version: 0.1 - -*/ - -#include <octave/oct.h> -#include <octave/f77-fcn.h> -#include <octave/Cell.h> -#include "common.h" - -extern "C" -{ - int F77_FUNC (ib01cd, IB01CD) - (char& JOBX0, char& COMUSE, char& JOB, - int& N, int& M, int& L, - int& NSMP, - double* A, int& LDA, - double* B, int& LDB, - double* C, int& LDC, - double* D, int& LDD, - double* U, int& LDU, - double* Y, int& LDY, - double* X0, - double* V, int& LDV, - double& TOL, - int* IWORK, - double* DWORK, int& LDWORK, - int& IWARN, int& INFO); -} - -// PKG_ADD: autoload ("slib01cd", "devel_slicot_functions.oct"); -DEFUN_DLD (slib01cd, args, nargout, - "-*- texinfo -*-\n\ -Slicot IB01CD Release 5.0\n\ -No argument checking.\n\ -For internal use only.") -{ - int nargin = args.length (); - octave_value_list retval; - - if (nargin != 7) - { - print_usage (); - } - else - { - // arguments in - char jobx0 = 'X'; - char comuse = 'U'; - char jobbd = 'D'; - - const Cell y_cell = args(0).cell_value (); - const Cell u_cell = args(1).cell_value (); - - Matrix a = args(2).matrix_value (); - Matrix b = args(3).matrix_value (); - Matrix c = args(4).matrix_value (); - Matrix d = args(5).matrix_value (); - - double rcond = args(6).double_value (); - double tol_c = rcond; - - int n = a.rows (); // n: number of states - int m = b.columns (); // m: number of inputs - int l = c.rows (); // l: number of outputs - - int lda = max (1, n); - int ldb = max (1, n); - int ldc = max (1, l); - int ldd = max (1, l); - - // m and l are equal for all experiments, checked by iddata class - int n_exp = y_cell.nelem (); // number of experiments - - - // arguments out - Cell x0_cell (n_exp, 1); // cell of initial state vectors x0 - - // repeat for every experiment in the dataset - // compute individual initial state vector x0 for every experiment - for (int i = 0; i < n_exp; i++) - { - Matrix y = y_cell.elem(i).matrix_value (); - Matrix u = u_cell.elem(i).matrix_value (); - - int nsmp = y.rows (); // nsmp: number of samples - int ldv = max (1, n); - - int ldu; - - if (m == 0) - ldu = 1; - else // m > 0 - ldu = nsmp; - - int ldy = nsmp; - - // arguments out - ColumnVector x0 (n); - Matrix v (ldv, n); - - // workspace - int liwork_c = n; // if JOBX0 = 'X' and COMUSE <> 'C' - int ldwork_c; - int t = nsmp; - - int ldw1_c = 2; - int ldw2_c = t*l*(n + 1) + 2*n + max (2*n*n, 4*n); - int ldw3_c = n*(n + 1) + 2*n + max (n*l*(n + 1) + 2*n*n + l*n, 4*n); - - ldwork_c = ldw1_c + n*( n + m + l ) + max (5*n, ldw1_c, min (ldw2_c, ldw3_c)); - - OCTAVE_LOCAL_BUFFER (int, iwork_c, liwork_c); - OCTAVE_LOCAL_BUFFER (double, dwork_c, ldwork_c); - - // error indicators - int iwarn_c = 0; - int info_c = 0; - - // SLICOT routine IB01CD - F77_XFCN (ib01cd, IB01CD, - (jobx0, comuse, jobbd, - n, m, l, - nsmp, - a.fortran_vec (), lda, - b.fortran_vec (), ldb, - c.fortran_vec (), ldc, - d.fortran_vec (), ldd, - u.fortran_vec (), ldu, - y.fortran_vec (), ldy, - x0.fortran_vec (), - v.fortran_vec (), ldv, - tol_c, - iwork_c, - dwork_c, ldwork_c, - iwarn_c, info_c)); - - - if (f77_exception_encountered) - error ("slib01cd: exception in SLICOT subroutine IB01CD"); - - static const char* err_msg_c[] = { - "0: OK", - "1: the QR algorithm failed to compute all the " - "eigenvalues of the matrix A (see LAPACK Library " - "routine DGEES); the locations DWORK(i), for " - "i = g+1:g+N*N, contain the partially converged " - "Schur form", - "2: the singular value decomposition (SVD) algorithm did " - "not converge"}; - - static const char* warn_msg_c[] = { - "0: OK", - "1: warning message not specified", - "2: warning message not specified", - "3: warning message not specified", - "4: the least squares problem to be solved has a " - "rank-deficient coefficient matrix", - "5: warning message not specified", - "6: the matrix A is unstable; the estimated x(0) " - "and/or B and D could be inaccurate"}; - - - error_msg ("slib01cd", info_c, 2, err_msg_c); - warning_msg ("slib01cd", iwarn_c, 6, warn_msg_c); - - x0_cell.elem(i) = x0; // add x0 from the current experiment to cell of initial state vectors - } - - - // return values - retval(0) = x0_cell; - } - - return retval; -} Deleted: trunk/octave-forge/extra/control-devel/src/slident.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/slident.cc 2012-08-14 19:59:40 UTC (rev 10865) +++ trunk/octave-forge/extra/control-devel/src/slident.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -1,718 +0,0 @@ -/* - -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/>. - -SLICOT system identification -Uses SLICOT IB01AD, IB01BD and IB01CD by courtesy of NICONET e.V. -<http://www.slicot.org> - -Author: Lukas Reichlin <luk...@gm...> -Created: March 2012 -Version: 0.1 - -*/ - -#include <octave/oct.h> -#include <octave/f77-fcn.h> -#include <octave/Cell.h> -#include "common.h" - -extern "C" -{ - int F77_FUNC (ib01ad, IB01AD) - (char& METH, char& ALG, char& JOBD, - char& BATCH, char& CONCT, char& CTRL, - int& NOBR, int& M, int& L, - int& NSMP, - double* U, int& LDU, - double* Y, int& LDY, - int& N, - double* R, int& LDR, - double* SV, - double& RCOND, double& TOL, - int* IWORK, - double* DWORK, int& LDWORK, - int& IWARN, int& INFO); - - int F77_FUNC (ib01bd, IB01BD) - (char& METH, char& JOB, char& JOBCK, - int& NOBR, int& N, int& M, int& L, - int& NSMPL, - double* R, int& LDR, - double* A, int& LDA, - double* C, int& LDC, - double* B, int& LDB, - double* D, int& LDD, - double* Q, int& LDQ, - double* RY, int& LDRY, - double* S, int& LDS, - double* K, int& LDK, - double& TOL, - int* IWORK, - double* DWORK, int& LDWORK, - bool* BWORK, - int& IWARN, int& INFO); - - int F77_FUNC (ib01cd, IB01CD) - (char& JOBX0, char& COMUSE, char& JOB, - int& N, int& M, int& L, - int& NSMP, - double* A, int& LDA, - double* B, int& LDB, - double* C, int& LDC, - double* D, int& LDD, - double* U, int& LDU, - double* Y, int& LDY, - double* X0, - double* V, int& LDV, - double& TOL, - int* IWORK, - double* DWORK, int& LDWORK, - int& IWARN, int& INFO); -} - -// PKG_ADD: autoload ("slident", "devel_slicot_functions.oct"); -DEFUN_DLD (slident, args, nargout, - "-*- texinfo -*-\n\ -Slicot IB01AD Release 5.0\n\ -No argument checking.\n\ -For internal use only.") -{ - int nargin = args.length (); - octave_value_list retval; - - if (nargin != 10) - { - print_usage (); - } - else - { -//////////////////////////////////////////////////////////////////////////////////// -// SLICOT IB01AD - preprocess the input-output data // -//////////////////////////////////////////////////////////////////////////////////// - - // arguments in - char meth_a; - char meth_b; - char alg; - char jobd; - char batch; - char conct; - char ctrl; - - const Cell y_cell = args(0).cell_value (); - const Cell u_cell = args(1).cell_value (); - int nobr = args(2).int_value (); - int nuser = args(3).int_value (); - - const int imeth = args(4).int_value (); - const int ialg = args(5).int_value (); - const int iconct = args(6).int_value (); - const int ictrl = args(7).int_value (); - - double rcond = args(8).double_value (); - double tol_a = args(9).double_value (); - - double tol_b = rcond; - double tol_c = rcond; - - - switch (imeth) - { - case 0: - meth_a = 'M'; - meth_b = 'M'; - break; - case 1: - meth_a = 'N'; - meth_b = 'N'; - break; - case 2: - meth_a = 'N'; // no typo here - meth_b = 'C'; - break; - default: - error ("slib01ad: argument 'meth' invalid"); - } - - switch (ialg) - { - case 0: - alg = 'C'; - break; - case 1: - alg = 'F'; - break; - case 2: - alg = 'Q'; - break; - default: - error ("slib01ad: argument 'alg' invalid"); - } - - if (meth_a == 'M') - jobd = 'M'; - else // meth_a == 'N' - jobd = 'N'; // IB01AD.f says: This parameter is not relevant for METH = 'N' - - if (iconct == 0) - conct = 'C'; - else - conct = 'N'; - - if (ictrl == 0) - ctrl = 'C'; - else - ctrl = 'N'; - - // m and l are equal for all experiments, checked by iddata class - int n_exp = y_cell.nelem (); // number of experiments - int m = u_cell.elem(0).columns (); // m: number of inputs - int l = y_cell.elem(0).columns (); // l: number of outputs - int nsmpl = 0; // total number of samples - - // arguments out - int n; - int ldr; - - if (meth_a == 'M' && jobd == 'M') - ldr = max (2*(m+l)*nobr, 3*m*nobr); - else if (meth_a == 'N' || (meth_a == 'M' && jobd == 'N')) - ldr = 2*(m+l)*nobr; - else - error ("slib01ad: could not handle 'ldr' case"); - - Matrix r (ldr, 2*(m+l)*nobr); - ColumnVector sv (l*nobr); - - - // repeat for every experiment in the dataset - for (int i = 0; i < n_exp; i++) - { - if (n_exp == 1) - batch = 'O'; // one block only - else if (i == 0) - batch = 'F'; // first block - else if (i == n_exp-1) - batch = 'L'; // last block - else - batch = 'I'; // intermediate block - - Matrix y = y_cell.elem(i).matrix_value (); - Matrix u = u_cell.elem(i).matrix_value (); - - // y.rows == u.rows is checked by iddata class - // int m = u.columns (); // m: number of inputs - // int l = y.columns (); // l: number of outputs - int nsmp = y.rows (); // nsmp: number of samples in the current experiment - nsmpl += nsmp; // nsmpl: total number of samples of all experiments - - // minimal nsmp size checked by __slicot_identification__.m - if (batch == 'O') - { - if (nsmp < 2*(m+l+1)*nobr - 1) - error ("slident: require NSMP >= 2*(M+L+1)*NOBR - 1"); - } - else - { - if (nsmp < 2*nobr) - error ("slident: require NSMP >= 2*NOBR"); - } - - int ldu; - - if (m == 0) - ldu = 1; - else // m > 0 - ldu = nsmp; - - int ldy = nsmp; - - // workspace - int liwork_a; - - if (meth_a == 'N') // if METH = 'N' - liwork_a = (m+l)*nobr; - else if (alg == 'F') // if METH = 'M' and ALG = 'F' - liwork_a = m+l; - else // if METH = 'M' and ALG = 'C' or 'Q' - liwork_a = 0; - - // TODO: Handle 'k' for DWORK - - int ldwork_a; - int ns = nsmp - 2*nobr + 1; - - if (alg == 'C') - { - if (batch == 'F' || batch == 'I') - { - if (conct == 'C') - ldwork_a = (4*nobr-2)*(m+l); - else // (conct == 'N') - ldwork_a = 1; - } - else if (meth_a == 'M') // && (batch == 'L' || batch == 'O') - { - if (conct == 'C' && batch == 'L') - ldwork_a = max ((4*nobr-2)*(m+l), 5*l*nobr); - else if (jobd == 'M') - ldwork_a = max ((2*m-1)*nobr, (m+l)*nobr, 5*l*nobr); - else // (jobd == 'N') - ldwork_a = 5*l*nobr; - } - else // meth_b == 'N' && (batch == 'L' || batch == 'O') - { - ldwork_a = 5*(m+l)*nobr + 1; - } - } - else if (alg == 'F') - { - if (batch != 'O' && conct == 'C') - ldwork_a = (m+l)*2*nobr*(m+l+3); - else if (batch == 'F' || batch == 'I') // && conct == 'N' - ldwork_a = (m+l)*2*nobr*(m+l+1); - else // (batch == 'L' || '0' && conct == 'N') - ldwork_a = (m+l)*4*nobr*(m+l+1)+(m+l)*2*nobr; - } - else // (alg == 'Q') - { - // int ns = nsmp - 2*nobr + 1; - - if (ldr >= ns && batch == 'F') - { - ldwork_a = 4*(m+l)*nobr; - } - else if (ldr >= ns && batch == 'O') - { - if (meth_a == 'M') - ldwork_a = max (4*(m+l)*nobr, 5*l*nobr); - else // (meth == 'N') - ldwork_a = 5*(m+l)*nobr + 1; - } - else if (conct == 'C' && (batch == 'I' || batch == 'L')) - { - ldwork_a = 4*(nobr+1)*(m+l)*nobr; - } - else // if ALG = 'Q', (BATCH = 'F' or 'O', and LDR < NS), or (BATCH = 'I' or 'L' and CONCT = 'N') - { - ldwork_a = 6*(m+l)*nobr; - } - } - - /* - IB01AD.f Lines 438-445 - C FURTHER COMMENTS - C - C For ALG = 'Q', BATCH = 'O' and LDR < NS, or BATCH <> 'O', the - C calculations could be rather inefficient if only minimal workspace - C (see argument LDWORK) is provided. It is advisable to provide as - C much workspace as possible. Almost optimal efficiency can be - C obtained for LDWORK = (NS+2)*(2*(M+L)*NOBR), assuming that the - C cache size is large enough to accommodate R, U, Y, and DWORK. - */ - - ldwork_a = max (ldwork_a, (ns+2)*(2*(m+l)*nobr)); - - /* - IB01AD.f Lines 291-195: - c the workspace used for alg = 'q' is - c ldrwrk*2*(m+l)*nobr + 4*(m+l)*nobr, - c where ldrwrk = ldwork/(2*(m+l)*nobr) - 2; recommended - c value ldrwrk = ns, assuming a large enough cache size. - c for good performance, ldwork should be larger. - - somehow ldrwrk and ldwork must have been mixed up here - - */ - - - OCTAVE_LOCAL_BUFFER (int, iwork_a, liwork_a); - OCTAVE_LOCAL_BUFFER (double, dwork_a, ldwork_a); - - // error indicators - int iwarn_a = 0; - int info_a = 0; - - - // SLICOT routine IB01AD - F77_XFCN (ib01ad, IB01AD, - (meth_a, alg, jobd, - batch, conct, ctrl, - nobr, m, l, - nsmp, - u.fortran_vec (), ldu, - y.fortran_vec (), ldy, - n, - r.fortran_vec (), ldr, - sv.fortran_vec (), - rcond, tol_a, - iwork_a, - dwork_a, ldwork_a, - iwarn_a, info_a)); - - - if (f77_exception_encountered) - error ("ident: exception in SLICOT subroutine IB01AD"); - - static const char* err_msg[] = { - "0: OK", - "1: a fast algorithm was requested (ALG = 'C', or 'F') " - "in sequential data processing, but it failed; the " - "routine can be repeatedly called again using the " - "standard QR algorithm", - "2: the singular value decomposition (SVD) algorithm did " - "not converge"}; - - static const char* warn_msg[] = { - "0: OK", - "1: the number of 100 cycles in sequential data " - "processing has been exhausted without signaling " - "that the last block of data was get; the cycle " - "counter was reinitialized", - "2: a fast algorithm was requested (ALG = 'C' or 'F'), " - "but it failed, and the QR algorithm was then used " - "(non-sequential data processing)", - "3: all singular values were exactly zero, hence N = 0 " - "(both input and output were identically zero)", - "4: the least squares problems with coefficient matrix " - "U_f, used for computing the weighted oblique " - "projection (for METH = 'N'), have a rank-deficient " - "coefficient matrix", - "5: the least squares problem with coefficient matrix " - "r_1 [6], used for computing the weighted oblique " - "projection (for METH = 'N'), has a rank-deficient " - "coefficient matrix"}; - - - error_msg ("ident: IB01AD", info_a, 2, err_msg); - warning_msg ("ident: IB01AD", iwarn_a, 5, warn_msg); - } - - - // resize - int rs = 2*(m+l)*nobr; - r.resize (rs, rs); - - if (nuser > 0) - { - if (nuser < nobr) - { - n = nuser; - // warning ("ident: nuser (%d) < nobr (%d), n = nuser", nuser, nobr); - } - else - error ("ident: 'nuser' invalid"); - } - -//////////////////////////////////////////////////////////////////////////////////// -// SLICOT IB01BD - estimating system matrices, Kalman gain, and covariances // -//////////////////////////////////////////////////////////////////////////////////// - - // arguments in - char job = 'A'; - char jobck = 'K'; - - //int nsmpl = nsmp; - - if (nsmpl < 2*(m+l)*nobr) - error ("slident: nsmpl (%d) < 2*(m+l)*nobr (%d)", nsmpl, nobr); - - // arguments out - int lda = max (1, n); - int ldc = max (1, l); - int ldb = max (1, n); - int ldd = max (1, l); - int ldq = n; // if JOBCK = 'C' or 'K' - int ldry = l; // if JOBCK = 'C' or 'K' - int lds = n; // if JOBCK = 'C' or 'K' - int ldk = n; // if JOBCK = 'K' - - Matrix a (lda, n); - Matrix c (ldc, n); - Matrix b (ldb, m); - Matrix d (ldd, m); - - Matrix q (ldq, n); - Matrix ry (ldry, l); - Matrix s (lds, l); - Matrix k (ldk, l); - - // workspace - int liwork_b; - int liw1; - int liw2; - - liw1 = max (n, m*nobr+n, l*nobr, m*(n+l)); - liw2 = n*n; // if JOBCK = 'K' - liwork_b = max (liw1, liw2); - - int ldwork_b; - int ldw1; - int ldw2; - int ldw3; - - if (meth_b == 'M') - { - int ldw1a = max (2*(l*nobr-l)*n+2*n, (l*nobr-l)*n+n*n+7*n); - int ldw1b = max (2*(l*nobr-l)*n+n*n+7*n, - (l*nobr-l)*n+n+6*m*nobr, - (l*nobr-l)*n+n+max (l+m*nobr, l*nobr + max (3*l*nobr+1, m))); - ldw1 = max (ldw1a, ldw1b); - - int aw; - - if (m == 0 || job == 'C') - aw = n + n*n; - else - aw = 0; - - ldw2 = l*nobr*n + max ((l*nobr-l)*n+aw+2*n+max(5*n,(2*m+l)*nobr+l), 4*(m*nobr+n)+1, m*nobr+2*n+l ); - } - else if (meth_b == 'N') - { - ldw1 = l*nobr*n + max ((l*nobr-l)*n+2*n+(2*m+l)*nobr+l, - 2*(l*nobr-l)*n+n*n+8*n, - n+4*(m*nobr+n)+1, - m*nobr+3*n+l); - - if (m == 0 || job == 'C') - ldw2 = 0; - else - ldw2 = l*nobr*n+m*nobr*(n+l)*(m*(n+l)+1)+ max ((n+l)*(n+l), 4*m*(n+l)+1); - - } - else // (meth_b == 'C') - { - int ldw1a = max (2*(l*nobr-l)*n+2*n, (l*nobr-l)*n+n*n+7*n); - int ldw1b = l*nobr*n + max ((l*nobr-l)*n+2*n+(2*m+l)*nobr+l, - 2*(l*nobr-l)*n+n*n+8*n, - n+4*(m*nobr+n)+1, - m*nobr+3*n+l); - - ldw1 = max (ldw1a, ldw1b); - - ldw2 = l*nobr*n+m*nobr*(n+l)*(m*(n+l)+1)+ max ((n+l)*(n+l), 4*m*(n+l)+1); - - } - - ldw3 = max(4*n*n + 2*n*l + l*l + max (3*l, n*l), 14*n*n + 12*n + 5); - ldwork_b = max (ldw1, ldw2, ldw3); - - - OCTAVE_LOCAL_BUFFER (int, iwork_b, liwork_b); - OCTAVE_LOCAL_BUFFER (double, dwork_b, ldwork_b); - OCTAVE_LOCAL_BUFFER (bool, bwork, 2*n); - - - // error indicators - int iwarn_b = 0; - int info_b = 0; - - - // SLICOT routine IB01BD - F77_XFCN (ib01bd, IB01BD, - (meth_b, job, jobck, - nobr, n, m, l, - nsmpl, - r.fortran_vec (), ldr, - a.fortran_vec (), lda, - c.fortran_vec (), ldc, - b.fortran_vec (), ldb, - d.fortran_vec (), ldd, - q.fortran_vec (), ldq, - ry.fortran_vec (), ldry, - s.fortran_vec (), lds, - k.fortran_vec (), ldk, - tol_b, - iwork_b, - dwork_b, ldwork_b, - bwork, - iwarn_b, info_b)); - - - if (f77_exception_encountered) - error ("ident: exception in SLICOT subroutine IB01BD"); - - static const char* err_msg_b[] = { - "0: OK", - "1: error message not specified", - "2: the singular value decomposition (SVD) algorithm did " - "not converge", - "3: a singular upper triangular matrix was found", - "4: matrix A is (numerically) singular in discrete-" - "time case", - "5: the Hamiltonian or symplectic matrix H cannot be " - "reduced to real Schur form", - "6: the real Schur form of the Hamiltonian or " - "symplectic matrix H cannot be appropriately ordered", - "7: the Hamiltonian or symplectic matrix H has less " - "than N stable eigenvalues", - "8: the N-th order system of linear algebraic " - "equations, from which the solution matrix X would " - "be obtained, is singular to working precision", - "9: the QR algorithm failed to complete the reduction " - "of the matrix Ac to Schur canonical form, T", - "10: the QR algorithm did not converge"}; - - static const char* warn_msg_b[] = { - "0: OK", - "1: warning message not specified", - "2: warning message not specified", - "3: warning message not specified", - "4: a least squares problem to be solved has a " - "rank-deficient coefficient matrix", - "5: the computed covariance matrices are too small. " - "The problem seems to be a deterministic one; the " - "gain matrix is set to zero"}; - - - error_msg ("ident: IB01BD", info_b, 10, err_msg_b); - warning_msg ("ident: IB01BD", iwarn_b, 5, warn_msg_b); - - // resize - a.resize (n, n); - c.resize (l, n); - b.resize (n, m); - d.resize (l, m); - - q.resize (n, n); - ry.resize (l, l); - s.resize (n, l); - k.resize (n, l); - -//////////////////////////////////////////////////////////////////////////////////// -// SLICOT IB01CD - estimating the initial state // -//////////////////////////////////////////////////////////////////////////////////// - - // arguments in - char jobx0 = 'X'; - char comuse = 'U'; - char jobbd = 'D'; - - // arguments out - Cell x0_cell (n_exp, 1); // cell of initial state vectors x0 - - // repeat for every experiment in the dataset - // compute individual initial state vector x0 for every experiment - for (int i = 0; i < n_exp; i++) - { - Matrix y = y_cell.elem(i).matrix_value (); - Matrix u = u_cell.elem(i).matrix_value (); - - int nsmp = y.rows (); // nsmp: number of samples - int ldv = max (1, n); - - int ldu; - - if (m == 0) - ldu = 1; - else // m > 0 - ldu = nsmp; - - int ldy = nsmp; - - // arguments out - ColumnVector x0 (n); - Matrix v (ldv, n); - - // workspace - int liwork_c = n; // if JOBX0 = 'X' and COMUSE <> 'C' - int ldwork_c; - int t = nsmp; - - int ldw1_c = 2; - int ldw2_c = t*l*(n + 1) + 2*n + max (2*n*n, 4*n); - int ldw3_c = n*(n + 1) + 2*n + max (n*l*(n + 1) + 2*n*n + l*n, 4*n); - - ldwork_c = ldw1_c + n*( n + m + l ) + max (5*n, ldw1_c, min (ldw2_c, ldw3_c)); - - OCTAVE_LOCAL_BUFFER (int, iwork_c, liwork_c); - OCTAVE_LOCAL_BUFFER (double, dwork_c, ldwork_c); - - // error indicators - int iwarn_c = 0; - int info_c = 0; - - // SLICOT routine IB01CD - F77_XFCN (ib01cd, IB01CD, - (jobx0, comuse, jobbd, - n, m, l, - nsmp, - a.fortran_vec (), lda, - b.fortran_vec (), ldb, - c.fortran_vec (), ldc, - d.fortran_vec (), ldd, - u.fortran_vec (), ldu, - y.fortran_vec (), ldy, - x0.fortran_vec (), - v.fortran_vec (), ldv, - tol_c, - iwork_c, - dwork_c, ldwork_c, - iwarn_c, info_c)); - - - if (f77_exception_encountered) - error ("ident: exception in SLICOT subroutine IB01CD"); - - static const char* err_msg_c[] = { - "0: OK", - "1: the QR algorithm failed to compute all the " - "eigenvalues of the matrix A (see LAPACK Library " - "routine DGEES); the locations DWORK(i), for " - "i = g+1:g+N*N, contain the partially converged " - "Schur form", - "2: the singular value decomposition (SVD) algorithm did " - "not converge"}; - - static const char* warn_msg_c[] = { - "0: OK", - "1: warning message not specified", - "2: warning message not specified", - "3: warning message not specified", - "4: the least squares problem to be solved has a " - "rank-deficient coefficient matrix", - "5: warning message not specified", - "6: the matrix A is unstable; the estimated x(0) " - "and/or B and D could be inaccurate"}; - - - error_msg ("ident: IB01CD", info_c, 2, err_msg_c); - warning_msg ("ident: IB01CD", iwarn_c, 6, warn_msg_c); - - x0_cell.elem(i) = x0; // add x0 from the current experiment to cell of initial state vectors - } - - - // return values - retval(0) = a; - retval(1) = b; - retval(2) = c; - retval(3) = d; - - retval(4) = q; - retval(5) = ry; - retval(6) = s; - retval(7) = k; - - retval(8) = x0_cell; - } - - return retval; -} Copied: trunk/octave-forge/main/control/src/is_matrix.cc (from rev 10864, trunk/octave-forge/extra/control-devel/src/is_matrix.cc) =================================================================== --- trunk/octave-forge/main/control/src/is_matrix.cc (rev 0) +++ trunk/octave-forge/main/control/src/is_matrix.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -0,0 +1,60 @@ +/* + +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/>. + +Return true if argument is a real matrix. + +Author: Lukas Reichlin <luk...@gm...> +Created: June 2012 +Version: 0.1 + +*/ + +#include <octave/oct.h> + +DEFUN_DLD (is_matrix, args, nargout, + "-*- texinfo -*-\n\ +@deftypefn {Loadable Function} {} is_matrix (@var{a}, @dots{})\n\ +Return true if argument is a matrix.\n\ +@var{[]} is a valid matrix.\n\ +Avoid nasty stuff like @code{true = isreal (\"a\")}\n\ +@seealso{is_real_matrix, is_real_square_matrix, is_real_vector, is_real_scalar}\n\ +@end deftypefn") +{ + octave_value retval = true; + int nargin = args.length (); + + if (nargin == 0) + { + print_usage (); + } + else + { + for (int i = 0; i < nargin; i++) + { + if (args(i).ndims () != 2 || ! args(i).is_numeric_type () + || ! (args(i).is_complex_type () || args(i).is_real_type ())) + { + retval = false; + break; + } + } + } + + return retval; +} Copied: trunk/octave-forge/main/control/src/slib01ad.cc (from rev 10864, trunk/octave-forge/extra/control-devel/src/slib01ad.cc) =================================================================== --- trunk/octave-forge/main/control/src/slib01ad.cc (rev 0) +++ trunk/octave-forge/main/control/src/slib01ad.cc 2012-08-14 20:01:58 UTC (rev 10866) @@ -0,0 +1,383 @@ +/* + +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/>. + +SLICOT system identification +Uses SLICOT IB01AD, IB01BD and IB01CD by courtesy of NICONET e.V. +<http://www.slicot.org> + +Author: Lukas Reichlin <luk...@gm...> +Created: March 2012 +Version: 0.1 + +*/ + +#include <octave/oct.h> +#include <octave/f77-fcn.h> +#include <octave/Cell.h> +#include "common.h" + +extern "C" +{ + int F77_FUNC (ib01ad, IB01AD) + (char& METH, char& ALG, char& JOBD, + char& BATCH, char& CONCT, char& CTRL, + int& NOBR, int& M, int& L, + int& NSMP, + double* U, int& LDU, + double* Y, int& LDY, + int& N, + double* R, int& LDR, + double* SV, + double& RCOND, double& TOL, + int* IWORK, + 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\ +No argument checking.\n\ +For internal use only.") +{ + int nargin = args.length (); + octave_value_list retval; + + if (nargin != 10) + { + print_usage (); + } + else + { +//////////////////////////////////////////////////////////////////////////////////// +// SLICOT IB01AD - preprocess the input-output data // +//////////////////////////////////////////////////////////////////////////////////// + + // arguments in + char meth_a; + char meth_b; + char alg; + char jobd; + char batch; + char conct; + char ctrl = 'N'; + + const Cell y_cell = args(0).cell_value (); + const Cell u_cell = args(1).cell_value (); + int nobr = args(2).int_value (); + int nuser = args(3).int_value (); + + const int imeth = args(4).int_value (); + const int ialg = args(5).int_value (); + const int iconct = args(6).int_value (); + const int ictrl = args(7).int_value (); // ignored + + double rcond = args(8).double_value (); + double tol_a = args(9).double_value (); + + double tol_b = rcond; + double tol_c = rcond; + + + switch (imeth) + { + case 0: + meth_a = 'M'; + meth_b = 'M'; + break; + case 1: + meth_a = 'N'; + meth_b = 'N'; + break; + case 2: + meth_a = 'N'; // no typo here + meth_b = 'C'; + break; + default: + error ("slib01ad: argument 'meth' invalid"); + } + + switch (ialg) + { + case 0: + alg = 'C'; + break; + case 1: + alg = 'F'; + break; + case 2: + alg = 'Q'; + break; + default: + error ("slib01ad: argument 'alg' invalid"); + } + + if (meth_a == 'M') + jobd = 'M'; + else // meth_a == 'N' + jobd = 'N'; // IB01AD.f says: This parameter is not relevant for METH = 'N' + + if (iconct == 0) + conct = 'C'; + else + conct = 'N'; +/* + if (ictrl == 0) + ctrl = 'C'; + else + ctrl = 'N'; +*/ + // m and l are equal for all experiments, checked by iddata class + int n_exp = y_cell.nelem (); // number of experiments + int m = u_cell.elem(0).columns (); // m: number of inputs + int l = y_cell.elem(0).columns (); // l: number of outputs + int nsmpl = 0; // total number of samples + + // arguments out + int n; + int ldr; + + if (meth_a == 'M' && jobd == 'M') + ldr = max (2*(m+l)*nobr, 3*m*nobr); + else if (meth_a == 'N' || (meth_a == 'M' && jobd == 'N')) + ldr = 2*(m+l)*nobr; + else + error ("slib01ad: could not handle 'ldr' case"); + + Matrix r (ldr, 2*(m+l)*nobr); + ColumnVector sv (l*nobr); + + + // repeat for every experiment in the dataset + for (int i = 0; i < n_exp; i++) + { + if (n_exp == 1) + batch = 'O'; // one block only + else if (i == 0) + batch = 'F'; // first block + else if (i == n_exp-1) + batch = 'L'; // last block + else + batch = 'I'; // intermediate block + + Matrix y = y_cell.elem(i).matrix_value (); + Matrix u = u_cell.elem(i).matrix_value (); + + // y.rows == u.rows is checked by iddata class + // int m = u.columns (); // m: number of inputs + // int l = y.columns (); // l: number of outputs + int nsmp = y.rows (); // nsmp: number of samples in the current experiment + nsmpl += nsmp; // nsmpl: total number of samples of all experiments + + // minimal nsmp size checked by __slicot_identification__.m + if (batch == 'O') + { + if (nsmp < 2*(m+l+1)*nobr - 1) + error ("slident: require NSMP >= 2*(M+L+1)*NOBR - 1"); + } + else + { + if (nsmp < 2*nobr) + error ("slident: require NSMP >= 2*NOBR"); + } + + int ldu; + + if (m == 0) + ldu = 1; + else // m > 0 + ldu = nsmp; + + int ldy = nsmp; + + // workspace + int liwork_a; + + if (meth_a == 'N') // if METH = 'N' + liwork_a = (m+l)*nobr; + else if (alg == 'F') // if METH = 'M' and ALG = 'F' + liwork_a = m+l; + else // if METH = 'M' and ALG = 'C' or 'Q' + liwork_a = 0; + + // TODO: Handle 'k' for DWORK + + int ldwork_a; + int ns = nsmp - 2*nobr + 1; + + if (alg == 'C') + { + if (batch == 'F' || batch == 'I') + { + if (conct == 'C') + ldwork_a = (4*nobr-2)*(m+l); + else // (conct == 'N') + ldwork_a = 1; + } + else if (meth_a == 'M') // && (batch == 'L' || batch == 'O') + { + if (conct == 'C' && batch == 'L') + ldwork_a = max ((4*nobr-2)*(m+l), 5*l*nobr); + else if (jobd == 'M') + ldwork_a = max ((2*m-1)*nobr, (m+l)*nobr, 5*l*nobr); + else // (jobd == 'N') + ldwork_a = 5*l*nobr; + } + else // meth_b == 'N' && (batch == 'L' || batch == 'O') + { + ldwork_a = 5*(m+l)*nobr + 1; + } + } + else if (alg == 'F') + { + if (batch != 'O' && conct == 'C') + ldwork_a = (m+l)*2*nobr*(m+l+3); + else if (batch == 'F' || batch == 'I') // && conct == 'N' + ldwork_a = (m+l)*2*nobr*(m+l+1); + else // (batch == 'L' || '0' && conct == 'N') + l... [truncated message content] |
From: <par...@us...> - 2012-08-14 19:59:49
|
Revision: 10865 http://octave.svn.sourceforge.net/octave/?rev=10865&view=rev Author: paramaniac Date: 2012-08-14 19:59:40 +0000 (Tue, 14 Aug 2012) Log Message: ----------- extra/control-devel ---> main/control Added Paths: ----------- trunk/octave-forge/main/control/inst/@iddata/ trunk/octave-forge/main/control/inst/__adjust_iddata__.m trunk/octave-forge/main/control/inst/__adjust_iddata_tsam__.m trunk/octave-forge/main/control/inst/__iddata_dim__.m trunk/octave-forge/main/control/inst/__slicot_identification__.m trunk/octave-forge/main/control/inst/arx.m trunk/octave-forge/main/control/inst/moen4.m trunk/octave-forge/main/control/inst/moesp.m trunk/octave-forge/main/control/inst/n4sid.m Removed Paths: ------------- trunk/octave-forge/extra/control-devel/inst/@iddata/ trunk/octave-forge/extra/control-devel/inst/__adjust_iddata__.m trunk/octave-forge/extra/control-devel/inst/__adjust_iddata_tsam__.m trunk/octave-forge/extra/control-devel/inst/__iddata_dim__.m trunk/octave-forge/extra/control-devel/inst/__slicot_identification__.m trunk/octave-forge/extra/control-devel/inst/arx.m trunk/octave-forge/extra/control-devel/inst/moen4.m trunk/octave-forge/extra/control-devel/inst/moesp.m trunk/octave-forge/extra/control-devel/inst/n4sid.m Deleted: trunk/octave-forge/extra/control-devel/inst/__adjust_iddata__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__adjust_iddata__.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/__adjust_iddata__.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,38 +0,0 @@ -## 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/>. - -## Author: Lukas Reichlin <luk...@gm...> -## Created: February 2012 -## Version: 0.1 - -function [y, u] = __adjust_iddata__ (y, u) - - if (iscell (y)) - y = reshape (y, [], 1); - else - y = {y}; - endif - - if (isempty (u)) - u = {}; # avoid [](nx0) and the like - elseif (iscell (u)) - u = reshape (u, [], 1); - else - u = {u}; - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__adjust_iddata_tsam__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__adjust_iddata_tsam__.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/__adjust_iddata_tsam__.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,52 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## Check whether tsam is a e-by-1 cell array of valid sampling times. -## If not, it tries to convert tsam accordingly. -## Empty tsam are filled with default value -1. - -## Author: Lukas Reichlin <luk...@gm...> -## Created: February 2012 -## Version: 0.1 - -function tsam = __adjust_iddata_tsam__ (tsam, e) - - if (isempty (tsam)) - tsam = num2cell (-ones (e, 1)); - elseif (iscell (tsam)) - tsam = reshape (tsam, [], 1); - else - tsam = {tsam}; - endif - - tmp = cellfun (@(x) issample (x, -1), tsam); - - if (any (! tmp)) - error ("iddata: invalid sampling time"); - endif - - nt = numel (tsam); - - if (nt == 1 && e > 1) - tsam = repmat (tsam, e, 1); - elseif (nt != e) - error ("iddata: there are %d experiments, but only %d sampling times", \ - e, nt); - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__iddata_dim__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__iddata_dim__.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/__iddata_dim__.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,53 +0,0 @@ -## Author: Lukas Reichlin <luk...@gm...> -## Created: October 2011 -## Version: 0.1 - -function [p, m, e] = __iddata_dim__ (y, u) - - e = numel (y); # number of experiments - - if (isempty (u)) # time series data, outputs only - [p, m] = cellfun (@__experiment_dim__, y, "uniformoutput", false); - elseif (e == numel (u)) # outputs and inputs present - [p, m] = cellfun (@__experiment_dim__, y, u, "uniformoutput", false); - else - error ("iddata: require input and output data with matching number of experiments"); - endif - - if (e > 1 && ! isequal (p{:})) - error ("iddata: require identical number of output channels for all experiments"); - endif - - if (e > 1 && ! isequal (m{:})) - error ("iddata: require identical number of input channels for all experiments"); - endif - - p = p{1}; - m = m{1}; - -endfunction - - -function [p, m] = __experiment_dim__ (y, u = []) - - if (! is_matrix (y, u)) - error ("iddata: inputs and outputs must be real or complex matrices"); - endif - - [ly, p] = size (y); - [lu, m] = size (u); - - if (! isempty (u) && ly != lu) - error ("iddata: matrices 'y' (%dx%d) and 'u' (%dx%d) must have the same number of samples (rows)", \ - ly, p, lu, m); - endif - - if (ly < p) - warning ("iddata: more outputs than samples - matrice 'y' should probably be transposed"); - endif - - if (lu < m) - warning ("iddata: more inputs than samples - matrice 'u' should probably be transposed"); - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/__slicot_identification__.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/__slicot_identification__.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/__slicot_identification__.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,231 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn{Function File} {[@var{sys}, @var{x0}], @var{info} =} __slicot_identification__ (@var{method}, @var{dat}, @dots{}) -## Backend for moesp, moen4 and n4sid. -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: May 2012 -## Version: 0.1 - -function [sys, x0, info] = __slicot_identification__ (method, nout, dat, varargin) - - ## determine identification method - switch (method) - case "moesp" - meth = 0; - case "n4sid" - meth = 1; - case "moen4" - meth = 2; - otherwise - error ("ident: invalid method"); # should never happen - endswitch - - if (! isa (dat, "iddata") || ! dat.timedomain) - error ("%s: first argument must be a time-domain 'iddata' dataset", method); - endif - - if (nargin > 3) # ident (dat, ...) - if (is_real_scalar (varargin{1})) # ident (dat, n, ...) - varargin = horzcat (varargin(2:end), {"order"}, varargin(1)); - endif - if (isstruct (varargin{1})) # ident (dat, opt, ...), ident (dat, n, opt, ...) - varargin = horzcat (__opt2cell__ (varargin{1}), varargin(2:end)); - endif - endif - - nkv = numel (varargin); # number of keys and values - - if (rem (nkv, 2)) - error ("%s: keys and values must come in pairs", method); - endif - - [ns, p, m, e] = size (dat); # dataset dimensions - tsam = dat.tsam; - - ## multi-experiment data requires equal sampling times - if (e > 1 && ! isequal (tsam{:})) - error ("%s: require equally sampled experiments", method); - else - tsam = tsam{1}; - endif - - ## default arguments - alg = 0; - conct = 1; # no connection between experiments - ctrl = 1; # don't confirm order n - rcond = 0.0; - tol = 0.0; # -1.0; - s = []; - n = []; - conf = []; - noise = "n"; - - ## handle keys and values - for k = 1 : 2 : nkv - key = lower (varargin{k}); - val = varargin{k+1}; - switch (key) - case {"n", "order"} - if (! issample (val, 0) || val != round (val)) - error ("%s: 'n' must be a positive integer", method); - endif - n = val; - case "s" - if (! issample (val, 0) || val != round (val)) - error ("%s: 's' must be a positive integer", method); - endif - s = val; - case {"alg", "algorithm"} - if (strncmpi (val, "c", 1)) - alg = 0; # Cholesky algorithm applied to correlation matrix - elseif (strncmpi (val, "f", 1)) - alg = 1; # fast QR algorithm - elseif (strncmpi (val, "q", 1)) - alg = 2; # QR algorithm applied to block Hankel matrices - else - error ("%s: invalid algorithm", method); - endif - case "tol" - if (! is_real_scalar (val)) - error ("%s: tolerance 'tol' must be a real scalar", method); - endif - tol = val; - case "rcond" - if (! is_real_scalar (val)) - error ("%s: 'rcond' must be a real scalar", method); - endif - rcond = val; - case "confirm" - conf = logical (val); - case {"input", "inputs"} - noise = val; - otherwise - warning ("%s: invalid property name '%s' ignored", method, key); - endswitch - endfor - - - ## handle s/nobr and n - nsmp = sum (ns); # total number of samples - nobr = fix ((nsmp+1)/(2*(m+p+1))); - if (e > 1) - nobr = min (nobr, fix (min (ns) / 2)); - endif - - if (isempty (s) && isempty (n)) - ctrl = 0; # confirm system order estimate - n = 0; - elseif (isempty (s)) - s = min (2*n, n+10); # upper bound for n - nobr = min (nobr, s); - elseif (isempty (n)) - nobr = __check_s__ (s, nobr, method); - ctrl = 0; # confirm system order estimate - n = 0; - else # s & n non-empty - nobr = __check_s__ (s, nobr, method); - if (n >= nobr) - error ("%s: n=%d, but require n < %d (s)", method, n, nobr); - endif - endif - - if (! isempty (conf)) - ctrl = ! conf; - endif - - if (nout == 0) - ## compute singular values - [sv, nrec] = slib01ad (dat.y, dat.u, nobr, n, meth, alg, conct, ctrl, rcond, tol); - - ## there is no 'logbar' function - svl = log10 (sv); - base = floor (min (svl)); - - clf - bar (svl, "basevalue", base) - xlim ([0, length(sv)+1]) - yl = ylim; - ylim ([base, yl(2)]) - title ("Singular Values") - ylabel ("Logarithm of Singular Values") - xlabel (sprintf ("Estimated System Order with current Tolerance: %d", nrec)) - grid on - else - ## perform system identification - [a, b, c, d, q, ry, s, k, x0] = slident (dat.y, dat.u, nobr, n, meth, alg, conct, ctrl, rcond, tol); - - ## compute noise variance matrix factor L - ## L L' = Ry, e = L v - ## v becomes white noise with identity covariance matrix - l = chol (ry, "lower"); - - ## assemble model - [inname, outname] = get (dat, "inname", "outname"); - if (strncmpi (noise, "e", 1)) # add error inputs e, not normalized - sys = ss (a, [b, k], c, [d, eye(p)], tsam); - in_u = __labels__ (inname, "u"); - in_e = __labels__ (outname, "y"); - in_e = cellfun (@(x) ["e@", x], in_e, "uniformoutput", false); - inname = [in_u; in_e]; - elseif (strncmpi (noise, "v", 1)) # add error inputs v, normalized - sys = ss (a, [b, k*l], c, [d, l], tsam); - in_u = __labels__ (inname, "u"); - in_v = __labels__ (outname, "y"); - in_v = cellfun (@(x) ["v@", x], in_v, "uniformoutput", false); - inname = [in_u; in_v]; - elseif (strncmpi (noise, "k", 1)) # Kalman predictor - sys = ss ([a-k*c], [b-k*d, k], c, [d, zeros(p)], tsam); - in_u = __labels__ (inname, "u"); - in_y = __labels__ (outname, "y"); - inname = [in_u; in_y]; - else # no error inputs, default - sys = ss (a, b, c, d, tsam); - endif - - sys = set (sys, "inname", inname, "outname", outname); - - ## return x0 as vector for single-experiment data - ## instead of a cell containing one vector - if (numel (x0) == 1) - x0 = x0{1}; - endif - - ## assemble info struct - ## Kalman gain matrix K - ## state covariance matrix Q - ## output covariance matrix Ry - ## state-output cross-covariance matrix S - ## noise variance matrix factor L - info = struct ("K", k, "Q", q, "Ry", ry, "S", s, "L", l); - endif - -endfunction - - -function nobr = __check_s__ (s, nobr, method) - - if (s <= nobr) - nobr = s; - else - error ("%s: require upper bound s <= %d, but the requested s is %d", method, nobr, s); - endif - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/arx.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/arx.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/arx.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,278 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {[@var{sys}, @var{x0}] =} arx (@var{dat}, @var{n}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}] =} arx (@var{dat}, @var{n}, @var{opt}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}] =} arx (@var{dat}, @var{opt}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}] =} arx (@var{dat}, @var{'na'}, @var{na}, @var{'nb'}, @var{nb}) -## Estimate ARX model using QR factorization. -## -## @strong{Inputs} -## @table @var -## @item dat -## iddata set containing the measurements, i.e. time-domain signals. -## @item n -## The desired order of the resulting model @var{sys}. -## @item @dots{} -## Optional pairs of keys and values. @code{'key1', value1, 'key2', value2}. -## @item opt -## Optional struct with keys as field names. -## Struct @var{opt} can be created directly or -## by command @command{options}. @code{opt.key1 = value1, opt.key2 = value2}. -## @end table -## -## -## @strong{Outputs} -## @table @var -## @item sys -## Discrete-time transfer function model. -## If the second output argument @var{x0} is returned, -## @var{sys} becomes a state-space model. -## @item x0 -## Initial state vector. If @var{dat} is a multi-experiment dataset, -## @var{x0} becomes a cell vector containing an initial state vector -## for each experiment. -## @end table -## -## -## @strong{Option Keys and Values} -## @table @var -## @item 'na' -## Order of the polynomial A(q) and number of poles. -## -## @item 'nb' -## Order of the polynomial B(q)+1 and number of zeros+1. -## @var{nb} <= @var{na}. -## @end table -## -## -## @strong{Algorithm}@* -## Uses the formulae given in [1] on pages 318-319, -## 'Solving for the LS Estimate by QR Factorization'. -## For the initial conditions, SLICOT IB01CD is used by courtesy of -## @uref{http://www.slicot.org, NICONET e.V.} -## -## @strong{References}@* -## [1] Ljung, L. (1999) -## System Identification - Theory for the User -## Second Edition -## Prentice Hall, New Jersey. -## -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: April 2012 -## Version: 0.1 - -function [sys, varargout] = arx (dat, varargin) - - ## TODO: delays - - if (nargin < 2) - print_usage (); - endif - - if (! isa (dat, "iddata") || ! dat.timedomain) - error ("arx: first argument must be a time-domain iddata dataset"); - endif - - if (is_real_scalar (varargin{1})) # arx (dat, n, ...) - varargin = horzcat (varargin(2:end), {"na"}, varargin(1), {"nb"}, varargin(1)); - endif - - if (isstruct (varargin{1})) # arx (dat, opt, ...), arx (dat, n, opt, ...) - varargin = horzcat (__opt2cell__ (varargin{1}), varargin(2:end)); - endif - - nkv = numel (varargin); # number of keys and values - - if (rem (nkv, 2)) - error ("arx: keys and values must come in pairs"); - endif - - - ## p: outputs, m: inputs, ex: experiments - [~, p, m, ex] = size (dat); # dataset dimensions - - ## extract data - Y = dat.y; - U = dat.u; - tsam = dat.tsam; - - ## multi-experiment data requires equal sampling times - if (ex > 1 && ! isequal (tsam{:})) - error ("arx: require equally sampled experiments"); - else - tsam = tsam{1}; - endif - - - ## default arguments - na = []; - nb = []; % ??? - nk = []; - - ## handle keys and values - for k = 1 : 2 : nkv - key = lower (varargin{k}); - val = varargin{k+1}; - switch (key) - ## TODO: proper argument checking - case "na" - na = val; - case "nb" - nb = val; - case "nk" - error ("nk"); - otherwise - warning ("arx: invalid property name '%s' ignored", key); - endswitch - endfor - - - if (is_real_scalar (na, nb)) - na = repmat (na, p, 1); # na(p-by-1) - nb = repmat (nb, p, m); # nb(p-by-m) - elseif (! (is_real_vector (na) && is_real_matrix (nb) \ - && rows (na) == p && rows (nb) == p && columns (nb) == m)) - error ("arx: require na(%dx1) instead of (%dx%d) and nb(%dx%d) instead of (%dx%d)", \ - p, rows (na), columns (na), p, m, rows (nb), columns (nb)); - endif - - max_nb = max (nb, [], 2); # one maximum for each row/output, max_nb(p-by-1) - n = max (na, max_nb); # n(p-by-1) - - ## create empty cells for numerator and denominator polynomials - num = cell (p, m+p); - den = cell (p, m+p); - - ## MIMO (p-by-m) models are identified as p MISO (1-by-m) models - ## For multi-experiment data, minimize the trace of the error - for i = 1 : p # for every output - Phi = cell (ex, 1); # one regression matrix per experiment - for e = 1 : ex # for every experiment - ## avoid warning: toeplitz: column wins anti-diagonal conflict - ## therefore set first row element equal to y(1) - PhiY = toeplitz (Y{e}(1:end-1, i), [Y{e}(1, i); zeros(na(i)-1, 1)]); - ## create MISO Phi for every experiment - PhiU = arrayfun (@(x) toeplitz (U{e}(1:end-1, x), [U{e}(1, x); zeros(nb(i,x)-1, 1)]), 1:m, "uniformoutput", false); - Phi{e} = (horzcat (-PhiY, PhiU{:}))(n(i):end, :); - endfor - - ## compute parameter vector Theta - Theta = __theta__ (Phi, Y, i, n); - - ## extract polynomial matrices A and B from Theta - ## A is a scalar polynomial for output i, i=1:p - ## B is polynomial row vector (1-by-m) for output i - A = [1; Theta(1:na(i))]; # a0 = 1, a1 = Theta(1), an = Theta(n) - ThetaB = Theta(na(i)+1:end); # all polynomials from B are in one column vector - B = mat2cell (ThetaB, nb(i,:)); # now separate the polynomials, one for each input - B = reshape (B, 1, []); # make B a row cell (1-by-m) - B = cellfun (@(x) [0; x], B, "uniformoutput", false); # b0 = 0 (leading zero required by filt) - - ## add error inputs - Be = repmat ({0}, 1, p); # there are as many error inputs as system outputs (p) - Be(i) = 1; # inputs m+1:m+p are zero, except m+i which is one - num(i, :) = [B, Be]; # numerator polynomials for output i, individual for each input - den(i, :) = repmat ({A}, 1, m+p); # in a row (output i), all inputs have the same denominator polynomial - endfor - - ## A(q) y(t) = B(q) u(t) + e(t) - ## there is only one A per row - ## B(z) and A(z) are a Matrix Fraction Description (MFD) - ## y = A^-1(q) B(q) u(t) + A^-1(q) e(t) - ## since A(q) is a diagonal polynomial matrix, its inverse is trivial: - ## the corresponding transfer function has common row denominators. - - sys = filt (num, den, tsam); # filt creates a transfer function in z^-1 - - ## compute initial state vector x0 if requested - ## this makes only sense for state-space models, therefore convert TF to SS - if (nargout > 1) - sys = prescale (ss (sys(:,1:m))); - x0 = slib01cd (Y, U, sys.a, sys.b, sys.c, sys.d, 0.0); - ## return x0 as vector for single-experiment data - ## instead of a cell containing one vector - if (numel (x0) == 1) - x0 = x0{1}; - endif - varargout{1} = x0; - endif - -endfunction - - -function theta = __theta__ (phi, y, i, n) - - if (numel (phi) == 1) # single-experiment dataset - ## use "square-root algorithm" - A = horzcat (phi{1}, y{1}(n(i)+1:end, i)); # [Phi, Y] - R0 = triu (qr (A, 0)); # 0 for economy-size R (without zero rows) - R1 = R0(1:end-1, 1:end-1); # R1 is triangular - can we exploit this in R1\R2? - R2 = R0(1:end-1, end); - theta = __ls_svd__ (R1, R2); # R1 \ R2 - - ## Theta = Phi \ Y(n+1:end, :); # naive formula - ## theta = __ls_svd__ (phi{1}, y{1}(n(i)+1:end, i)); - else # multi-experiment dataset - ## TODO: find more sophisticated formula than - ## Theta = (Phi1' Phi1 + Phi2' Phi2 + ...) \ (Phi1' Y1 + Phi2' Y2 + ...) - - ## covariance matrix C = (Phi1' Phi + Phi2' Phi2 + ...) - tmp = cellfun (@(Phi) Phi.' * Phi, phi, "uniformoutput", false); - rc = cellfun (@rcond, tmp); # C auch noch testen? QR oder SVD? - C = plus (tmp{:}); - - ## PhiTY = (Phi1' Y1 + Phi2' Y2 + ...) - tmp = cellfun (@(Phi, Y) Phi.' * Y(n(i)+1:end, i), phi, y, "uniformoutput", false); - PhiTY = plus (tmp{:}); - - ## pseudoinverse Theta = C \ Phi'Y - theta = __ls_svd__ (C, PhiTY); - endif - -endfunction - - -function x = __ls_svd__ (A, b) - - ## solve the problem Ax=b - ## x = A\b would also work, - ## but this way we have better control and warnings - - ## solve linear least squares problem by pseudoinverse - ## the pseudoinverse is computed by singular value decomposition - ## M = U S V* ---> M+ = V S+ U* - ## Th = Ph \ Y = Ph+ Y - ## Th = V S+ U* Y, S+ = 1 ./ diag (S) - - [U, S, V] = svd (A, 0); # 0 for "economy size" decomposition - S = diag (S); # extract main diagonal - r = sum (S > eps*S(1)); - if (r < length (S)) - warning ("arx: rank-deficient coefficient matrix"); - warning ("sampling time too small"); - warning ("persistence of excitation"); - endif - V = V(:, 1:r); - S = S(1:r); - U = U(:, 1:r); - x = V * (S .\ (U' * b)); # U' is the conjugate transpose - -endfunction Deleted: trunk/octave-forge/extra/control-devel/inst/moen4.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/moen4.m 2012-08-14 19:32:00 UTC (rev 10864) +++ trunk/octave-forge/extra/control-devel/inst/moen4.m 2012-08-14 19:59:40 UTC (rev 10865) @@ -1,3034 +0,0 @@ -## 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/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {[@var{sys}, @var{x0}, @var{info}] =} moen4 (@var{dat}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}, @var{info}] =} moen4 (@var{dat}, @var{n}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}, @var{info}] =} moen4 (@var{dat}, @var{opt}, @dots{}) -## @deftypefnx {Function File} {[@var{sys}, @var{x0}, @var{info}] =} moen4 (@var{dat}, @var{n}, @var{opt}, @dots{}) -## Estimate state-space model using combined subspace method: -## @acronym{MOESP} algorithm for finding the matrices A and C, -## and @acronym{N4SID} algorithm for finding the matrices B and D. -## If no output arguments are given, the singular values are -## plotted on the screen in order to estimate the system order. -## -## @strong{Inputs} -## @table @var -## @item dat -## iddata set containing the measurements, i.e. time-domain signals. -## @item n -## The desired order of the resulting state-space system @var{sys}. -## If not specified, @var{n} is chosen automatically according -## to the singular values and tolerances. -## @item @dots{} -## Optional pairs of keys and values. @code{'key1', value1, 'key2', value2}. -## @item opt -## Optional struct with keys as field names. -## Struct @var{opt} can be created directly or -## by command @command{options}. @code{opt.key1 = value1, opt.key2 = value2}. -## @end table -## -## -## @strong{Outputs} -## @table @var -## @item sys -## Discrete-time state-space model. -## @item x0 -## Initial state vector. If @var{dat} is a multi-experiment dataset, -## @var{x0} becomes a cell vector containing an initial state vector -## for each experiment. -## @item info -## Struct containing additional information. -## @table @var -## @item info.K -## Kalman gain matrix. -## @item info.Q -## State covariance matrix. -## @item info.Ry -## Output covariance matrix. -## @item info.S -## State-output cross-covariance matrix. -## @item info.L -## Noise variance matrix factor. LL'=Ry. -## @end table -## @end table -## -## -## -## @strong{Option Keys and Values} -## @table @var -## @item 'n' -## The desired order of the resulting state-space system @var{sys}. -## @var{s} > @var{n} > 0. -## -## @item 's' -## The number of block rows @var{s} in the input and output -## block Hankel matrices to be processed. @var{s} > 0. -## In the MOESP theory, @var{s} should be larger than @var{n}, -## the estimated dimension of state vector. -## -## @item 'alg', 'algorithm' -## Specifies the algorithm for computing the triangular -## factor R, as follows: -## @table @var -## @item 'C' -## Cholesky algorithm applied to the correlation -## matrix of the input-output data. Default method. -## @item 'F' -## Fast QR algorithm. -## @item 'Q' -## QR algorithm applied to the concatenated block -## Hankel matrices. -## @end table -## -## @item 'tol' -## Absolute tolerance used for determining an estimate of -## the system order. If @var{tol} >= 0, the estimate is -## indicated by the index of the last singular value greater -## than or equal to @var{tol}. (Singular values less than @var{tol} -## are considered as zero.) When @var{tol} = 0, an internally -## computed default value, @var{tol} = @var{s}*@var{eps}*SV(1), is used, -## where SV(1) is the maximal singular value, and @var{eps} is -## the relative machine precision. -## When @var{tol} < 0, the estimate is indicated by the -## index of the singular value that has the largest -## logarithmic gap to its successor. Default value is 0. -## -## @item 'rcond' -## The tolerance to be used for estimating the rank of -## matrices. If the user sets @var{rcond} > 0, the given value -## of @var{rcond} is used as a lower bound for the reciprocal -## condition number; an m-by-n matrix whose estimated -## condition number is less than 1/@var{rcond} is considered to -## be of full rank. If the user sets @var{rcond} <= 0, then an -## implicitly computed, default tolerance, defined by -## @var{rcond} = m*n*@var{eps}, is used instead, where @var{eps} is the -## relative machine precision. Default value is 0. -## -## @item 'confirm' -## Specifies whether or not the user's confirmation of the -## system order estimate is desired, as follows: -## @table @var -## @item true -## User's confirmation. -## @item false -## No confirmation. Default value. -## @end table -## -## @item 'input' -## The desired type of noise input channels. -## @table @var -## @item 'n' -## No error inputs. Default value. -## @iftex -## @tex -## $$ x_{k+1} = A x_k + B u_k $$ -## $$ y_k = C x_k + D u_k $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## x[k+1] = A x[k] + B u[k] -## y[k] = C x[k] + D u[k] -## @end example -## @end ifnottex -## -## @item 'e' -## Return @var{sys} as a (p-by-m+p) state-space model with -## both measured input channels u and noise channels e -## with covariance matrix @var{Ry}. -## @iftex -## @tex -## $$ x_{k+1} = A x_k + B u_k + K e_k $$ -## $$ y_k = C x_k + D u_k + e_k $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## x[k+1] = A x[k] + B u[k] + K e[k] -## y[k] = C x[k] + D u[k] + e[k] -## @end example -## @end ifnottex -## -## @item 'v' -## Return @var{sys} as a (p-by-m+p) state-space model with -## both measured input channels u and white noise channels v -## with identity covariance matrix. -## @iftex -## @tex -## $$ x_{k+1} = A x_k + B u_k + K L v_k $$ -## $$ y_k = C x_k + D u_k + L v_k $$ -## $$ e = L v, \\ L L^T = R_y $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## x[k+1] = A x[k] + B u[k] + K L v[k] -## y[k] = C x[k] + D u[k] + L v[k] -## e = L v, L L' = Ry -## @end example -## @end ifnottex -## -## @item 'k' -## Return @var{sys} as a Kalman predictor for simulation. -## @iftex -## @tex -## $$ \\widehat{x}_{k+1} = A \\widehat{x}_k + B u_k + K (y_k - \\widehat{y}_k) $$ -## $$ \\widehat{y}_k = C \\widehat{x}_k + D u_k $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## ^ ^ ^ -## x[k+1] = A x[k] + B u[k] + K(y[k] - y[k]) -## ^ ^ -## y[k] = C x[k] + D u[k] -## @end example -## @end ifnottex -## -## @iftex -## @tex -## $$ \\widehat{x}_{k+1} = (A-KC) \\widehat{x}_k + (B-KD) u_k + K y_k $$ -## $$ \\widehat{y}_k = C \\widehat{x}_k + D u_k + 0 y_k $$ -## @end tex -## @end iftex -## @ifnottex -## @example -## ^ ^ -## x[k+1] = (A-KC) x[k] + (B-KD) u[k] + K y[k] -## ^ ^ -## y[k] = C x[k] + D u[k] + 0 y[k] -## @end example -## @end ifnottex -## @end table -## @end table -## -## -## @strong{Algorithm}@* -## Uses SLICOT IB01AD, IB01BD and IB01CD by courtesy of -## @uref{http://www.slicot.org, NICONET e.V.} -## -## @end deftypefn - -## Author: Lukas Reichlin <luk...@gm...> -## Created: May 2012 -## Version: 0.1 - -function [sys, x0, info] = moen4 (varargin) - - if (nargin == 0) - print_usage (); - endif - - if (nargout == 0) - __slicot_identification__ ("moen4", nargout, varargin{:}); - else - [sys, x0, info] = __slicot_identification__ ("moen4", nargout, varargin{:}); - endif - -endfunction - - -%!shared SYS, X0, INFO, Ae, Be, Ce, De, Ke, Qe, Rye, Se, X0e -%! -%! Y = [ 4.7661 5.5451 5.8503 5.3766 4.8833 5.4865 3.5378 5.3155 6.0530 4.3729 -%! 4.7637 5.1886 5.9236 5.6818 4.8858 5.1495 3.5549 5.5329 6.0799 4.7417 -%! 4.8394 4.8833 5.9212 5.8235 4.8931 4.8442 3.4938 5.4450 6.1287 5.0884 -%! 5.0030 4.6000 5.9773 5.9529 4.7148 4.5414 3.4474 5.3961 6.0799 5.1861 -%! 5.0176 4.2704 5.7405 6.0628 4.4511 4.2679 3.4401 5.2740 6.1678 5.0372 -%! 5.0567 4.0384 5.3888 6.0897 4.2337 4.0604 3.4083 5.0274 6.1947 4.7856 -%! 5.1544 3.8381 5.0005 6.0750 4.0433 3.9602 3.4108 4.7441 6.2362 4.5634 -%! 5.3619 3.7112 4.8491 6.0262 3.8650 3.7893 3.4523 4.6684 6.0530 4.5341 -%! 5.4254 3.5915 4.9444 5.9944 3.7576 3.6428 3.6818 4.6513 5.6525 4.7050 -%! 5.5695 3.5353 5.1739 6.0775 3.6696 3.5256 4.0604 4.5146 5.2740 4.7417 -%! 5.6818 3.4865 5.3693 5.8577 3.5939 3.4987 4.4413 4.2679 4.8589 4.6489 -%! 5.7429 3.4767 5.4474 5.7014 3.5475 3.4547 4.8540 4.2606 4.5341 4.4315 -%! 5.8039 3.4254 5.6037 5.7307 3.5060 3.4083 5.1544 4.2630 4.4560 4.2386 -%! 5.9187 3.3815 5.7307 5.7844 3.4547 3.3790 5.4254 4.1898 4.6196 4.0652 -%! 5.8210 3.3693 5.8503 5.8235 3.3986 3.3766 5.5964 4.2777 4.8662 3.9431 -%! 5.4474 3.3644 5.9798 5.8943 3.3619 3.3619 5.5866 4.6000 5.1177 3.8113 -%! 5.0616 3.3473 5.9920 5.7624 3.3400 3.3595 5.3546 4.9322 5.1666 3.6916 -%! 4.6293 3.3815 6.0848 5.4157 3.3742 3.3693 5.0274 5.2838 5.0567 3.6525 -%! 4.2679 3.4206 5.9407 4.9615 3.5207 3.3986 4.8638 5.5280 5.0030 3.8259 -%! 4.0115 3.4132 5.8039 4.5952 3.7136 3.5793 4.7612 5.7405 5.0982 4.2240 -%! 3.8503 3.4523 5.7917 4.3314 3.7576 3.9480 4.5707 5.8748 5.3253 4.4242 -%! 3.7112 3.6355 5.6037 4.2972 3.7795 4.4120 4.3681 5.9554 5.5671 4.4291 -%! 3.5695 4.0384 5.2643 4.5829 3.6965 4.5854 4.3974 5.9920 5.4670 4.3192 -%! 3.5182 4.3754 4.9468 4.8613 3.7771 4.5146 4.5732 5.8455 5.2521 4.1385 -%! 3.6525 4.7270 4.6196 5.1739 3.8870 4.3436 4.8418 5.5280 4.9468 3.9651 -%! 3.8186 5.0567 4.5146 5.1666 3.9041 4.1556 5.2032 5.0616 4.8809 3.8870 -%! 3.8626 5.2985 4.4340 4.9199 3.8503 3.9847 5.4523 4.7344 4.9810 3.8015 -%! 4.0115 5.5329 4.2850 4.6074 3.9651 4.0433 5.6525 4.5341 5.2252 3.7014 -%! 4.3534 5.4670 4.1214 4.3705 4.2826 4.3070 5.8552 4.5341 5.4596 3.6403 -%! 4.7050 5.1959 3.9456 4.1825 4.5219 4.4218 5.9065 4.6977 5.7234 3.7673 -%! 5.0836 4.8858 3.9847 4.0384 4.7148 4.3534 5.9529 4.7441 5.7917 4.1507 -%! 5.3449 4.7637 4.2191 4.1458 4.9712 4.2240 5.8284 4.6196 5.9065 4.6489 -%! 5.2740 4.8760 4.5463 4.4315 5.2203 4.0530 5.7917 4.6440 5.9920 4.9908 -%! 5.1275 5.0420 4.8735 4.5561 5.5329 3.9407 5.7991 4.8320 5.8357 5.0884 -%! 4.7612 5.2838 5.1544 4.4804 5.6525 3.8381 5.8137 5.1324 5.5280 5.0225 -%! 4.4511 5.4914 5.3888 4.3754 5.7820 3.7307 5.8772 5.4108 5.1422 4.7832 -%! 4.2215 5.5964 5.6135 4.3705 5.9554 3.6525 5.9554 5.6257 4.7759 4.6855 -%! 4.0457 5.6721 5.8357 4.5585 6.0359 3.6110 5.7820 5.6037 4.4902 4.6660 -%! 3.8748 5.7722 5.8845 4.8589 6.1190 3.5646 5.5182 5.3155 4.2362 4.7075 -%! 3.7307 5.8308 5.9554 4.8955 6.1336 3.4963 5.1275 4.9615 4.0237 4.9126 -%! 3.6623 5.9334 5.7624 4.7417 6.1532 3.4621 4.7637 4.6196 3.8870 5.1959 -%! 3.5768 5.8992 5.4596 4.7441 6.1922 3.4547 4.4926 4.3583 3.7527 5.4157 -%! 3.5427 5.9358 5.0616 4.8760 6.1434 3.4254 4.2337 4.1556 3.6818 5.6232 -%! 3.4792 5.8943 4.7075 5.1055 6.1678 3.3790 4.0115 4.0335 3.8064 5.7405 -%! 3.4547 5.9187 4.4584 5.2398 5.9920 3.4328 3.8552 3.8870 4.1458 5.8992 -%! 3.3595 5.9944 4.2679 5.5182 5.6525 3.6232 3.6916 3.7722 4.6000 5.9285 -%! 3.2985 5.9578 4.0530 5.6525 5.4596 3.9749 3.6355 3.6403 5.0030 6.0506 -%! 3.2252 6.0311 3.9431 5.7234 5.4376 4.3803 3.8186 3.5329 5.3033 6.1532 -%! 3.2008 6.0628 3.8259 5.8552 5.3400 4.7148 4.1556 3.4352 5.5524 5.9651 -%! 3.2252 6.0408 3.9676 5.9627 5.0982 5.0738 4.5903 3.4279 5.6159 5.5866 -%! 3.2276 6.0970 4.2801 5.9847 4.7856 5.3693 4.9883 3.4230 5.5231 5.3815 -%! 3.2740 6.1239 4.4804 5.9847 4.4926 5.6037 5.0762 3.3986 5.6110 5.3717 -%! 3.4572 6.1629 4.4926 6.0555 4.2362 5.7453 4.9077 3.6037 5.7136 5.4865 -%! 3.8674 6.0408 4.3900 6.0628 4.0677 5.6525 4.6489 4.0237 5.8455 5.5671 -%! 4.3217 5.8455 4.1971 6.0555 3.9334 5.4010 4.3778 4.4511 5.8992 5.8210 -%! 4.4926 5.7722 4.1116 6.0701 3.8235 5.0152 4.2166 4.7930 5.9944 5.9138 -%! 4.4315 5.7991 3.9822 5.7844 3.7307 4.7099 4.2875 4.9029 6.0921 5.9944 -%! 4.2435 5.9236 3.8674 5.4401 3.6110 4.4169 4.5903 4.7808 6.0921 6.0115 -%! 4.0506 5.9285 3.7673 5.0567 3.5646 4.2362 4.8467 4.5903 6.1434 5.9993 -%! 3.8577 6.0018 3.8723 4.9419 3.5500 4.2362 5.1397 4.3363 6.1532 6.0188 -%! 3.7307 6.0018 4.2362 5.0103 3.5573 4.2484 5.3888 4.1458 6.2337 5.8210 -%! 3.7917 6.0604 4.6635 5.1348 3.5134 4.2215 5.6892 4.2166 6.1873 5.7282 -%! 3.9212 5.8821 4.9712 5.3131 3.5158 4.2972 5.8845 4.4340 6.0140 5.7405 -%! 3.9554 5.5109 5.0665 5.4792 3.6941 4.5903 6.0433 4.7148 5.8357 5.7649 -%! 3.8479 5.3229 4.9029 5.6232 4.0726 4.8931 6.1703 5.0982 5.7746 5.8821 -%! 3.7258 5.3717 4.6757 5.5622 4.4804 5.1348 6.2118 5.3595 5.6867 5.9260 -%! 3.6110 5.4547 4.3925 5.3302 4.7050 5.4279 6.2508 5.5695 5.5378 5.7502 -%! 3.7160 5.4376 4.0994 5.0103 4.6123 5.3790 6.2093 5.7722 5.3278 5.4157 -%! 4.0921 5.1593 4.1141 4.6660 4.3851 5.3644 6.0140 5.9212 5.0543 4.9956 -%! 4.4804 4.9029 4.3265 4.4145 4.2020 5.4523 5.7014 6.0555 4.7002 4.8613 -%! 4.8149 4.5878 4.6440 4.2020 4.0262 5.5671 5.4694 5.9627 4.3949 4.9029 -%! 5.0543 4.5024 4.9712 4.0482 3.9041 5.6721 5.4792 5.6428 4.1800 5.1031 -%! 5.3033 4.5952 5.1593 4.0799 3.7746 5.7698 5.5573 5.4352 4.0433 5.3644 -%! 5.4865 4.8247 5.3888 4.1898 3.6916 5.8308 5.7282 5.3888 3.8772 5.5964 -%! 5.6721 5.0640 5.5768 4.1312 3.8455 5.9236 5.8821 5.5378 3.7527 5.7527 -%! 5.7795 5.2716 5.6525 4.0042 4.2020 5.9651 5.9847 5.6818 3.7282 5.8455 -%! 5.7991 5.4670 5.8039 3.9163 4.5854 6.0579 5.9016 5.7014 3.8699 5.9285 -%! 5.6648 5.6159 5.9138 3.9602 4.9029 6.0506 5.5817 5.6159 4.2069 6.0066 -%! 5.2911 5.5280 5.8870 4.1996 5.2569 6.0726 5.3717 5.6672 4.3558 5.8406 -%! 4.8809 5.2545 5.7991 4.6245 5.5109 6.1116 5.4181 5.7405 4.4267 5.5182 -%! 4.5585 4.8833 5.7307 4.8833 5.6403 6.0701 5.5109 5.8039 4.4535 5.1739 -%! 4.1849 4.5170 5.7624 5.1373 5.8430 5.8967 5.6672 5.8821 4.5219 4.7392 -%! 3.8894 4.1971 5.8137 5.3790 5.9749 5.7551 5.7917 5.9505 4.3925 4.4584 -%! 3.7087 4.0018 5.8210 5.6232 5.9358 5.7185 5.6989 6.0726 4.1556 4.4267 -%! 3.6232 3.8064 5.9285 5.7624 5.8210 5.8210 5.4840 6.1483 3.9651 4.6025 -%! 3.5695 3.9041 6.0140 5.8333 5.5280 6.0018 5.1544 6.1165 3.8772 4.8223 -%! 3.7185 3.9236 5.7649 5.6867 5.1715 6.0018 4.9810 6.1776 3.9700 5.1837 -%! 4.0335 3.8699 5.4132 5.3668 4.8101 5.9016 5.0616 6.2020 4.2582 5.4303 -%! 4.4120 3.8064 5.0982 5.2252 4.4535 5.5573 5.1959 6.2069 4.4218 5.6525 -%! 4.6293 3.7209 4.6782 5.2398 4.3803 5.1739 5.3595 5.9920 4.3363 5.8210 -%! 4.5585 3.8186 4.3729 5.3546 4.5659 4.8003 5.6159 5.5646 4.2997 5.7063 -%! 4.3949 4.1409 4.3925 5.5085 4.8052 4.4315 5.7624 5.1788 4.3925 5.3693 -%! 4.1800 4.5292 4.5903 5.5964 5.1251 4.1947 5.8577 4.9981 4.6757 5.0274 -%! 4.1971 4.8052 4.9199 5.7527 5.3546 4.0066 5.9480 5.0518 4.7612 4.7050 -%! 4.4315 5.0860 5.0176 5.8748 5.5891 3.8503 5.8357 5.2325 4.6587 4.4145 -%! 4.7148 5.3400 4.8589 5.9065 5.7649 3.7478 5.7063 5.4840 4.4902 4.1458 -%! 4.9615 5.5329 4.6757 5.8943 5.9236 3.6428 5.4987 5.6867 4.3070 3.9651 -%! 5.3009 5.5768 4.6196 5.7429 5.9407 3.5915 5.1886 5.8992 4.1263 4.0335 -%! 5.5671 5.6672 4.8345 5.4474 5.8577 3.5695 5.1177 5.8699 3.9724 4.3729 -%! 5.6818 5.7917 5.0909 5.0250 5.6941 3.5280 5.1910 5.9773 4.0775 4.6831 ](:); -%! -%! -%! -%! U = [ 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 3.4100 -%! 3.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 -%! 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 -%! 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 6.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 -%! 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 3.4100 -%! 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 -%! 3.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 -%! 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 -%! 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 -%! 6.4100 3.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 -%! 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 3.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 -%! 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 -%! 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 -%! 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 3.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 -%! 6.4100 3.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 3.4100 -%! 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 -%! 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 -%! 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 3.4100 -%! 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 -%! 3.4100 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 6.4100 -%! 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 6.4100 -%! 6.4100 3.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 6.4100 6.4100 3.4100 6.4100 -%! 3.4100 3.4100 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 -%! 3.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 3.4100 -%! 3.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 6.4100 3.4100 -%! 6.4100 6.4100 6.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 -%! 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 -%! 6.4100 6.4100 3.4100 6.4100 6.4100 3.4100 3.4100 6.4100 3.4100 3.4100 -%! 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 3.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 3.4100 3.4100 6.4100 6.4100 3.4100 6.4100 -%! 6.4100 6.4100 6.4100 3.4100 6.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 6.4100 3.4100 3.4100 6.4100 6.4100 6.4100 6.4100 -%! 3.4100 6.4100 6.4100 3.4100 3.4100 3.4100 3.4100 6.4100 6.4100 6.4100 ](:); -%! -%! -%! DAT = iddata (Y, U); -%! -%! [SYS, X0, INFO] = moen4 (DAT, "s", 15, "rcond", 0.0, "tol", -1.0, "confirm", false); -%! -%! Ae = [ 0.8924 0.3887 0.1285 0.1716 -%! -0.0837 0.6186 -0.6273 -0.4582 -%! 0.0052 0.1307 0.6685 -0.6755 -%! 0.0055 0.0734 -0.2148 0.4788 ]; -%! -%! Ce = [ -0.4442 0.6663 0.3961 0.4102 ]; -%! -%! Be = [ -0.2142 -%! -0.1968 -%! 0.0525 -%! 0.0361 ]; -%! -%! De = [ -0.0041 ]; -%! -%! Ke = [ -1.9513 -%! -0.1867 -%! 0.6348 -%! -0.3486 ]; -%! -%! Qe = [ 0.0052 0.0005 -0.0017 0.0009 -%! 0.0005 0.0000 -0.0002 0.0001 -%! -0.0017 -0.0002 0.0006 -0.0003 -%! 0.0009 0.0001 -0.0003 0.0002 ]; -%! -%! Rye = [ 0.0012 ]; -%! -%! Se = [ -0.0025 -%! -0.0002 -%! 0.0008 -%! -0.0005 ]; -%! -%! X0e = [ -11.496422 -%! -0.718576 -%! -0.014211 -%! 0.500073 ]; # X0e is not from SLICOT -%! -%! ## The SLICOT test for IB01CD uses COMUSE=C, not COMUSE=U. -%! ## This means that they don't use the matrices B and D -%! ## computed by IB01BD. They use only A and C from IB01BD, -%! ## while B and D are from SLICOT routine IB01CD. -%! ## Therefore they get slightly different matrices B and D -%! ## and finally a different initial state vector X0. -%! -%!assert (SYS.A, Ae, 1e-4); -%!assert (SYS.B, Be, 1e-4); -%!assert (SYS.C, Ce, 1e-4); -%!assert (SYS.D, De, 1e-4); -%!assert (INFO.K, Ke, 1e-4); -%!assert (INFO.Q, Qe, 1e-4); -%!assert (INFO.Ry, Rye, 1e-4); -%!assert (INFO.S, Se, 1e-4); -%!assert (X0, X0e, 1e-4); - - -## [96-003] Data of a 120 MW power plant (Pont-sur-Sambre, France) -%!shared SYS, Ae, Be, Ce, De -%! U = [ -811 -592 421 -680 -681 -%! -812 -619 477 -685 -651 -%! -817 -565 538 -678 -677 -%! -695 -725 536 -674 -702 -%! -697 -571 531 -676 -685 -%! -697 -618 533 -681 -721 -%! -702 -579 549 -677 -699 -%! -703 -487 575 -677 -694 -%! -705 -449 561 -679 -678 -%! -705 -431 563 -680 -692 -%! -707 -502 561 -679 -686 -%! -707 -583 530 -676 -751 -%! -710 -458 540 -677 -700 -%! -713 -469 543 -679 -731 -%! -715 -506 549 -684 -635 -%! -713 -590 532 -681 -715 -%! -714 -582 528 -676 -696 -%! -713 -575 538 -679 -690 -%! -716 -382 557 -682 -701 -%! -716 -476 558 -679 -690 -%! -718 -425 565 -678 -686 -%! -719 -409 562 -679 -615 -%! -719 -508 523 -677 -737 -%! -721 -569 523 -679 -722 -%! -723 -434 542 -681 -735 -%! -723 -395 544 -676 -704 -%! -723 -428 542 -677 -729 -%! -722 -402 537 -677 -706 -%! -725 -380 534 -681 -696 -%! -726 -324 549 -676 -701 -%! -726 -211 578 -675 -614 -%! -727 -113 569 -677 -738 -%! -727 -208 554 -676 -737 -%! -727 -320 523 -684 -697 -%! -727 944 605 -680 -587 -%! -729 396 654 -681 -708 -%! -729 754 637 -682 -685 -%! -727 419 522 -677 -715 -%! -729 378 494 -668 -703 -%! -728 363 493 -669 -682 -%! -729 390 496 -665 -713 -%! -729 106 483 -664 -711 -%! -729 32 495 -661 -718 -%! -729 517 585 -661 -641 -%! -729 455 625 -659 -703 -%! -730 521 649 -687 -669 -%! -730 540 627 -689 -705 -%! -731 514 605 -694 -682 -%! -585 525 558 -685 -611 -%! -586 534 520 -680 -668 -%! -586 539 531 -681 -679 -%! -585 519 507 -682 -663 -%! -588 513 505 -667 -668 -%! -587 509 539 -680 -616 -%! -587 512 535 -668 -628 -%! -588 514 557 -667 -648 -%! -588 553 563 -676 -613 -%! -589 519 559 -684 -638 -%! -589 521 563 -682 -652 -%! -588 518 547 -678 -597 -%! -589 552 549 -688 -630 -%! -589 520 535 -685 -623 -%! -589 547 542 -678 -619 -%! -589 549 531 -684 -524 -%! -588 544 522 -1540 -580 -%! -588 564 555 -1538 -584 -%! -588 684 545 -1541 -564 -%! -590 558 546 -1541 -609 -%! -589 552 537 -1550 -601 -%! -591 532 526 -1548 -580 -%! -590 544 524 -1542 -565 -%! -591 559 535 -1538 -604 -%! -592 555 542 -1548 -629 -%! -591 577 532 -1549 -587 -%! -593 581 530 -1543 -585 -%! -592 562 540 -1548 -583 -%! -591 568 546 -1536 -587 -%! -593 550 557 -1533 -569 -%! -592 550 537 -1518 -527 -%! -593 568 551 -1533 -582 -%! -590 528 540 -1529 -492 -%! -590 542 532 -1525 -585 -%! -590 556 535 -1522 -606 -%! -591 637 535 -1516 -571 -%! -591 608 539 -1512 -582 -%! -591 545 527 -1510 -577 -%! ... [truncated message content] |