You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(10) 
_{Aug}
(5) 
_{Sep}
(3) 
_{Oct}
(41) 
_{Nov}
(41) 
_{Dec}
(33) 

2002 
_{Jan}
(75) 
_{Feb}
(10) 
_{Mar}
(170) 
_{Apr}
(174) 
_{May}
(66) 
_{Jun}
(11) 
_{Jul}
(10) 
_{Aug}
(44) 
_{Sep}
(73) 
_{Oct}
(28) 
_{Nov}
(139) 
_{Dec}
(52) 
2003 
_{Jan}
(35) 
_{Feb}
(93) 
_{Mar}
(62) 
_{Apr}
(10) 
_{May}
(55) 
_{Jun}
(70) 
_{Jul}
(37) 
_{Aug}
(16) 
_{Sep}
(56) 
_{Oct}
(31) 
_{Nov}
(57) 
_{Dec}
(83) 
2004 
_{Jan}
(85) 
_{Feb}
(67) 
_{Mar}
(27) 
_{Apr}
(37) 
_{May}
(75) 
_{Jun}
(85) 
_{Jul}
(160) 
_{Aug}
(68) 
_{Sep}
(104) 
_{Oct}
(25) 
_{Nov}
(39) 
_{Dec}
(23) 
2005 
_{Jan}
(10) 
_{Feb}
(45) 
_{Mar}
(43) 
_{Apr}
(19) 
_{May}
(108) 
_{Jun}
(31) 
_{Jul}
(41) 
_{Aug}
(23) 
_{Sep}
(65) 
_{Oct}
(58) 
_{Nov}
(44) 
_{Dec}
(54) 
2006 
_{Jan}
(96) 
_{Feb}
(27) 
_{Mar}
(69) 
_{Apr}
(59) 
_{May}
(67) 
_{Jun}
(35) 
_{Jul}
(13) 
_{Aug}
(461) 
_{Sep}
(160) 
_{Oct}
(399) 
_{Nov}
(32) 
_{Dec}
(72) 
2007 
_{Jan}
(316) 
_{Feb}
(305) 
_{Mar}
(318) 
_{Apr}
(54) 
_{May}
(194) 
_{Jun}
(173) 
_{Jul}
(282) 
_{Aug}
(91) 
_{Sep}
(227) 
_{Oct}
(365) 
_{Nov}
(168) 
_{Dec}
(18) 
2008 
_{Jan}
(71) 
_{Feb}
(111) 
_{Mar}
(155) 
_{Apr}
(173) 
_{May}
(70) 
_{Jun}
(67) 
_{Jul}
(55) 
_{Aug}
(83) 
_{Sep}
(32) 
_{Oct}
(68) 
_{Nov}
(80) 
_{Dec}
(29) 
2009 
_{Jan}
(46) 
_{Feb}
(18) 
_{Mar}
(95) 
_{Apr}
(76) 
_{May}
(140) 
_{Jun}
(98) 
_{Jul}
(84) 
_{Aug}
(123) 
_{Sep}
(94) 
_{Oct}
(131) 
_{Nov}
(142) 
_{Dec}
(125) 
2010 
_{Jan}
(128) 
_{Feb}
(158) 
_{Mar}
(172) 
_{Apr}
(134) 
_{May}
(94) 
_{Jun}
(84) 
_{Jul}
(32) 
_{Aug}
(127) 
_{Sep}
(167) 
_{Oct}
(109) 
_{Nov}
(69) 
_{Dec}
(78) 
2011 
_{Jan}
(39) 
_{Feb}
(58) 
_{Mar}
(52) 
_{Apr}
(47) 
_{May}
(56) 
_{Jun}
(76) 
_{Jul}
(55) 
_{Aug}
(54) 
_{Sep}
(165) 
_{Oct}
(255) 
_{Nov}
(328) 
_{Dec}
(263) 
2012 
_{Jan}
(82) 
_{Feb}
(147) 
_{Mar}
(400) 
_{Apr}
(216) 
_{May}
(209) 
_{Jun}
(160) 
_{Jul}
(86) 
_{Aug}
(141) 
_{Sep}
(156) 
_{Oct}
(6) 
_{Nov}

_{Dec}

2015 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(1) 
_{Aug}

_{Sep}
(1) 
_{Oct}

_{Nov}
(1) 
_{Dec}
(2) 
2016 
_{Jan}

_{Feb}
(2) 
_{Mar}
(2) 
_{Apr}
(1) 
_{May}
(1) 
_{Jun}
(2) 
_{Jul}
(1) 
_{Aug}
(1) 
_{Sep}

_{Oct}

_{Nov}
(1) 
_{Dec}

S  M  T  W  T  F  S 





1
(10) 
2
(22) 
3
(8) 
4
(5) 
5
(12) 
6
(18) 
7
(4) 
8
(12) 
9
(2) 
10
(15) 
11
(4) 
12
(9) 
13
(10) 
14
(4) 
15
(1) 
16
(8) 
17
(2) 
18
(59) 
19
(1) 
20
(3) 
21
(4) 
22
(9) 
23
(2) 
24
(11) 
25
(32) 
26
(11) 
27
(22) 
28
(5) 



From: David Bateman <adb014@us...>  20070222 18:43:48

Update of /cvsroot/octave/octaveforge/nonfree/arpack In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv12578 Modified Files: DESCRIPTION Log Message: Add ARPACK website to DESCRIPTION Index: DESCRIPTION =================================================================== RCS file: /cvsroot/octave/octaveforge/nonfree/arpack/DESCRIPTION,v retrieving revision 1.1 retrieving revision 1.2 diff u d r1.1 r1.2  DESCRIPTION 22 Feb 2007 00:00:05 0000 1.1 +++ DESCRIPTION 22 Feb 2007 18:43:34 0000 1.2 @@ 4,9 +4,9 @@ Author: David Bateman Maintainer: David Bateman Title: Arpack. Description: Octave binds to ARPACK, including the eigs and svds function. +Description: Octave bindings to ARPACK, including the eigs and svds function. Depends: octave (> 2.9.9) Autoload: yes License: GPL version 2 or later. Note ARPACK redistristibution restriction discussed in the documentation Url: http://octave.sf.net +Url: http://octave.sf.net http://www.caam.rice.edu/software/ARPACK 
From: Thomas Treichl <treichl@us...>  20070222 16:35:14

Update of /cvsroot/octave/octaveforge/main/odepkg/src In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv21043 Modified Files: odepkg_mexsolver_dop853.c odepkg_mexsolver_radau.c odepkg_mexsolver_dopri5.c odepkg_mexsolver_rodas.c odepkg_mexsolver_odex.c odepkg_mexsolver_seulex.c odepkg_mexsolver_radau5.c Log Message: Removed bug that did an OutputSelection at event calls. Index: odepkg_mexsolver_radau.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_radau.c,v retrieving revision 1.8 retrieving revision 1.9 diff u d r1.8 r1.9  odepkg_mexsolver_radau.c 17 Feb 2007 19:16:38 0000 1.8 +++ odepkg_mexsolver_radau.c 22 Feb 2007 16:35:10 0000 1.9 @@ 1,1009 +1,1013 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1991 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_dop853.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_dop853.c,v retrieving revision 1.7 retrieving revision 1.8 diff u d r1.7 r1.8  odepkg_mexsolver_dop853.c 7 Feb 2007 20:27:01 0000 1.7 +++ odepkg_mexsolver_dop853.c 22 Feb 2007 16:35:10 0000 1.8 @@ 1,812 +1,816 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1597 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_dopri5.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_dopri5.c,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  odepkg_mexsolver_dopri5.c 7 Feb 2007 20:27:01 0000 1.11 +++ odepkg_mexsolver_dopri5.c 22 Feb 2007 16:35:10 0000 1.12 @@ 1,812 +1,816 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1597 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_rodas.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_rodas.c,v retrieving revision 1.3 retrieving revision 1.4 diff u d r1.3 r1.4  odepkg_mexsolver_rodas.c 17 Feb 2007 19:16:38 0000 1.3 +++ odepkg_mexsolver_rodas.c 22 Feb 2007 16:35:10 0000 1.4 @@ 1,1011 +1,1015 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1995 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_odex.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_odex.c,v retrieving revision 1.3 retrieving revision 1.4 diff u d r1.3 r1.4  odepkg_mexsolver_odex.c 11 Feb 2007 18:48:42 0000 1.3 +++ odepkg_mexsolver_odex.c 22 Feb 2007 16:35:10 0000 1.4 @@ 1,805 +1,809 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1583 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_radau5.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_radau5.c,v retrieving revision 1.4 retrieving revision 1.5 diff u d r1.4 r1.5  odepkg_mexsolver_radau5.c 17 Feb 2007 19:16:38 0000 1.4 +++ odepkg_mexsolver_radau5.c 22 Feb 2007 16:35:10 0000 1.5 @@ 1,1009 +1,1013 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1991 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ Index: odepkg_mexsolver_seulex.c =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/src/odepkg_mexsolver_seulex.c,v retrieving revision 1.4 retrieving revision 1.5 diff u d r1.4 r1.5  odepkg_mexsolver_seulex.c 17 Feb 2007 19:16:38 0000 1.4 +++ odepkg_mexsolver_seulex.c 22 Feb 2007 16:35:10 0000 1.5 @@ 1,1009 +1,1013 @@ /* Copyright (C) 2007, Thomas Treichl <treichl@...> OdePkg  Package for solving ordinary differential equations with octave  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 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of [...1991 lines suppressed...] + + /* Cleanup all internals of: FSOLSTORE */ + fsolstore (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fsolstore function successfully completed\n"); +#endif + + /* Cleanup all internals of: FODEPKGVAR */ + fodepkgvar (4, NULL, NULL); +#ifdef __ODEPKGDEBUG__ + mexPrintf ("ODEPKGDEBUG: Cleanup of fodepkgvar function successfully completed\n"); +#endif + +} + +/* +Local Variables: *** +mode: C *** +End: *** +*/ 
From: Thomas Treichl <treichl@us...>  20070222 16:32:34

Update of /cvsroot/octave/octaveforge/main/odepkg/inst In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv19892 Modified Files: odepkg_equations_lorenz.m odepkg_equations_pendulous.m odepkg_equations_roessler.m odepkg_equations_secondorderlag.m odepkg_equations_vanderpol.m Log Message: Help string, tests and demos updates. Index: odepkg_equations_lorenz.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/odepkg_equations_lorenz.m,v retrieving revision 1.4 retrieving revision 1.5 diff u d r1.4 r1.5  odepkg_equations_lorenz.m 22 Oct 2006 21:20:30 0000 1.4 +++ odepkg_equations_lorenz.m 22 Feb 2007 16:32:32 0000 1.5 @@ 16,8 +16,8 @@ %# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA %# * texinfo * %# @deftypefn {Function} {@var{[y]} =} odepkg_equations_lorenz (@var{t}, @var{x}) %# Returns the states of the ordinary differential equations from the Lorenz equation implementation, ie. the force to a conductor caused by movement in a magnetic field, cf. @url{http://en.wikipedia.org/wiki/Lorenz_equation} for further details. The variable @var{x} has the values for the state variables, @var{y} has the results after each integration step. Both variables are column vectors, the variable @var{t} is the actual time stamp. There is no error handling implemented in this function to achieve the highest performance. +%# @deftypefn {Function} {@var{ydot} =} odepkg_equations_lorenz (@var{t, y}) +%# Returns three derivatives of the ordinary differential equations (ODEs) from the Lorenz equation implementation, cf. @url{http://en.wikipedia.org/wiki/Lorenz_equation} for further details. The output argument @var{ydot} is a column vector and contains the derivatives, @var{y} also is a column vector that contains the integration results from the previous integration step and @var{t} is a scalar value with actual time stamp. There is no error handling implemented in this function to achieve the highest performance available. %# %# Run %# @example @@ 28,9 +28,6 @@ %# %# @seealso{odepkg} %# %#  TODO  REWORK THE HELP TEXT ABOVE BECAUSE IT MAY NOT BE CORRECT   function y = odepkg_equations_lorenz (t, x) y = [10 * (x(2)  x(1)); x(1) * (28  x(3)); @@ 41,7 +38,7 @@ %!demo %! %! A = odeset ('InitialStep', 1e3, 'MaxStep', 1e1); +%! A = odeset ('InitialStep', 1e3, 'MaxStep', 1e1); %! [t, y] = ode78 (@odepkg_equations_lorenz, [0 25], [3 15 1], A); %! %! subplot (2, 2, 1); grid ('on'); plot (t, y(:,1), 'b;f_x(t);', ... Index: odepkg_equations_pendulous.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/odepkg_equations_pendulous.m,v retrieving revision 1.3 retrieving revision 1.4 diff u d r1.3 r1.4  odepkg_equations_pendulous.m 22 Oct 2006 21:20:30 0000 1.3 +++ odepkg_equations_pendulous.m 22 Feb 2007 16:32:32 0000 1.4 @@ 16,8 +16,8 @@ %# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA %# * texinfo * %# @deftypefn {Function} {@var{[ydot]} =} odepkg_equations_pendulous (@var{tvar}, @var{xvar}) %# Returns the states of the differential equations from a pendulum implementation, i.e. the motion of a simple pendulum with damping. The first state variable @var{ydot(1,1)} describes the angular position and the second state variable @var{ydot(2,1)} describes the velocity of the pendulum. The variables @var{xvar} and @var{ydot} are column vectors, the variable @var{tvar} is the actual time stamp. There is no error handling implemented in this function to achieve the highest processing speed. +%# @deftypefn {Function} {@var{ydot} =} odepkg_equations_pendulous (@var{t, y}) +%# Returns two derivatives of the ordinary differential equations (ODEs) from a pendulum implementation (ie. the motion of a simple pendulum with damping, cf. @url{http://en.wikipedia.org/wiki/Pendulum} for further details). The output argument @var{ydot} is a column vector and contains the derivatives, @var{y} also is a column vector that contains the integration results from the previous integration step and @var{t} is a scalar value with actual time stamp. There is no error handling implemented in this function to achieve the highest performance available. %# %# Run %# @example @@ 34,12 +34,8 @@ l = 1; %# The pendulum length in m b = 0.7; %# The damping factor in kgm^2/s  %# A more complex implementation from Marc Compere in 2001 was  %# ydot = [xvar(2,1); ...  %# 1 / (1/3 * m * l^2) * (b * xvar(2,1)  m * g * l/2 * sin (xvar(1,1)))];   ydot(1,1) = xvar(2,1);  ydot(2,1) = 1 / (1/3 * m * l^2) * (b * xvar(2,1)  m * g * l/2 * sin (xvar(1,1))); + ydot = [xvar(2,1); ... + 1 / (1/3 * m * l^2) * (b * xvar(2,1)  m * g * l/2 * sin (xvar(1,1)))]; %!test [t,y] = ode45 (@odepkg_equations_pendulous, [0 5], [30*pi/180, 0]); @@ 50,15 +46,17 @@ %! %! axis ([0 5]); %! plot (t, y(:,1), 'or;position;', t, y(:,2), 'ob;velocity;'); %! %  +%! %  %! % The figure window shows the state variables y1 and y2 of the pendulum %! % implementation, i.e. the angular position and the velocity. The math %! % equation for this differential equation is +%! % equation for this ordinary differential equation implementation is +%! % %! % m*l^2 * (d^2theta/dt^2) + b * (dtheta/dt) + m*g*l * sin (theta) = 0 +%! % %! % with m = 1 kg, g = 9.81 m/s^2, l = 1 m, b = 0.7 kgm^2/s. The angular %! % position reaches steady state at 0 rad caused by the gravity term %! % m*g*l/2*sin(x(1)). Velocity reaches a steady state of zero because %! % of the damping term, b*x(2). +%! % m*g*l/2*sin(x(1)). Velocity reaches a steady state of zero because of the +%! % damping term, b*x(2). %# Local Variables: *** %# mode: octave *** Index: odepkg_equations_roessler.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/odepkg_equations_roessler.m,v retrieving revision 1.3 retrieving revision 1.4 diff u d r1.3 r1.4  odepkg_equations_roessler.m 22 Oct 2006 21:20:30 0000 1.3 +++ odepkg_equations_roessler.m 22 Feb 2007 16:32:32 0000 1.4 @@ 16,8 +16,8 @@ %# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA %# * texinfo * %# @deftypefn {Function} {@var{[y]} =} odepkg_equations_roessler (@var{t}, @var{x}) %# TODO +%# @deftypefn {Function} {@var{ydot} =} odepkg_equations_roessler (@var{t, y}) +%# Returns three derivatives of the ordinary differential equations (ODEs) from the Roessler attractor implementation, cf. @url{http://en.wikipedia.org/wiki/R%C3%B6ssler_attractor} for further details. The output argument @var{ydot} is a column vector and contains the derivatives, @var{y} also is a column vector that contains the integration results from the previous integration step and @var{t} is a scalar value with actual time stamp. There is no error handling implemented in this function to achieve the highest performance available. %# %# Run %# @example @@ 28,10 +28,6 @@ %# %# @seealso{odepkg} %# %#  TODO  REWORK THE HELP TEXT ABOVE BECAUSE IT MAY NOT BE CORRECT  %#  TODO  REWORK THE DEMO TEXT BELOW BECAUSE IT MAY NOT BE CORRECT   function y = odepkg_equations_roessler (t, x) y = [ ( x(2) + x(3) ); x(1) + 0.2 * x(2); @@ 52,10 +48,11 @@ %! subplot (2, 2, 4); grid ('on'); plot3 (y(:,1), y(:,2), y(:,3), ... %! 'b;f_{xyz}(x, y, z);'); %! %! %  %! % TODO %! % TODO explain how to use odephas3 but o not add it as a demo because it %! % will need a lot of processing time!!! +%! %  +%! % The upper left subfigure shows the three results of the integration over +%! % time. The upper right subfigure shows the force f in a two dimensional (x,y) +%! % plane as well as the lower left subfigure shows the force in the (y,z) +%! % plane. The three dimensional force is plotted in the lower right subfigure. %# Local Variables: *** %# mode: octave *** Index: odepkg_equations_secondorderlag.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/odepkg_equations_secondorderlag.m,v retrieving revision 1.2 retrieving revision 1.3 diff u d r1.2 r1.3  odepkg_equations_secondorderlag.m 22 Sep 2006 17:02:14 0000 1.2 +++ odepkg_equations_secondorderlag.m 22 Feb 2007 16:32:32 0000 1.3 @@ 16,11 +16,8 @@ %# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA %# * texinfo * %# @deftypefn {Function} odepkg_equations_secondorderlag () %# Displays the help text of the function and exits with an error. %# %# @deftypefnx {Function} {@var{[ydot]} =} odepkg_equations_secondorderlag (@var{tvar}, @var{yvar}, @var{[vu, vK, vT1, vT2]}) %# Returns the states of the "Second Order Lag" example (control theory) that only depend on the input argument @var{yvar}. The unused variable @var{tvar} is ignored. The variable @var{yvar} must be a valid column vector. Optionally the "Second Order Lag" can be parametrized by the variables @var{vu} as the input signal, @var{vK} as the amplification, @var{vT1} as the smaller time constant and @var{vT2} as the greater time constant. Use "type odepkg_equations_secondorderlag" to see the source code of this "Linear TimeInvariant" (LTI) system. If an invalid input argument is given then the function terminates with an error. +%# @deftypefnx {Function} {@var{ydot} =} odepkg_equations_secondorderlag (@var{t, y, [u, K, T1, T2]}) +%# Returns two derivatives of the ordinary differential equations (ODEs) from the second order lag implementation (control theory), cf. @url{http://en.wikipedia.org/wiki/Category:Control_theory} for further details. The output argument @var{ydot} is a column vector and contains the derivatives, @var{y} also is a column vector that contains the integration results from the previous integration step and @var{t} is a scalar value with actual time stamp. There is no error handling implemented in this function to achieve the highest performance available. %# %# Run %# @example @@ 36,26 +33,31 @@ %# ChangeLog: function ydot = odepkg_equations_secondorderlag (tvar, yvar, varargin) + %# odepkg_equations_vanderpol is a demo function. Therefore some %# error handling is done. If you would write your own function you %# would not add any error handling to achieve highest performance. + if (nargin == 0) help ('odepkg_equations_secondorderlag'); vmsg = sprintf ('Number of input arguments must be greater than zero'); error (vmsg); + elseif (nargin <= 1) vmsg = sprintf ('Number of input arguments must be greater or equal than 2'); error (vmsg); + elseif (isnumeric (tvar) == false  isnumeric (yvar) == false) vmsg = sprintf ('First and second input argument must be valid numeric values'); error (vmsg); + elseif (isvector (yvar) == false  length (yvar) ~= 2) vmsg = sprintf ('Second input argument must be a vector of length 2'); error (vmsg); end %# yvar and ydot must be column vectors  %# Check if the parametrizing arguments are given + %# Check if varargin arguments are given if (length (varargin) > 0) if (length (varargin) ~= 4) vmsg = sprintf ('If parametrizing arguments are given then number of these arguments must match 4'); @@ 63,7 +65,7 @@ end vu = varargin{1}; %# vu is the input signal of the control system vK = varargin{2}; %# vK is the amplification of the control system  vT1 = varargin{3}; %# vT1 is the smaller time constant that can be neglected + vT1 = varargin{3}; %# vT1 is the smaller time constant that is indominant vT2 = varargin{4}; %# vT2 is the greater time constant that is dominant else vu = 10; vK = 1; vT1 = 0.01; vT2 = 0.1; @@ 84,13 +86,15 @@ %! plot(vt, 10 * ones (length (vy(:,1)),1), "or;in (t);", ... %! vt, vy(:,1), "ob;out (t);"); %! %! %  +%! %  %! % The figure window shows the input signal and the output signal of the %! % "Second Order Lag" example. The math equation for this differential %! % equation is %! % y + dy/dt*T2 + d^2y/dt2*T1 = u*K. %! % If not manually parametrized then u = 10, K = 1, T1 = 0.01s and %! % T2 = 0.1s^2. The accumulated value (t>inf) is y = u*K = 10. +%! % "Second Order Lag" implementation. The mathematical describtion for this +%! % differential equation is +%! % +%! % y + T2 * dy/dt + T1 * d^2y/dt^2 = K * u. +%! % +%! % If not manually parametrized then u = 10, K = 1, T1 = 0.01s and T2 = 0.1s^2 +%! % and then accumulated value (t>inf) is y = K * u = 10. %!demo %! %! A = odeset ('RelTol', 2e2, 'NormControl', 'on'); @@ 101,11 +105,11 @@ %! plot(vt, 5 * ones (length (vy(:,1)),1), "or;in (t);", ... %! vt, vy(:,1), "ob;out (t);"); %! %! %  +%! %  %! % The figure window shows the input signal and the output signal of a %! % different parametrized "Second Order Lag" example. The parameters for %! % this example are u = 5, K = 1, T1 = 0.01, T2 = 0.01. The accumulated %! % value (t>inf) is y = u*K = 5. +%! % parametrized "Second Order Lag" implementation. The parameters for this +%! % example are u = 5, K = 1, T1 = 0.01, T2 = 0.01. The accumulated value +%! % (t>inf) is y = K * u = 5. %# Local Variables: *** %# mode: octave *** Index: odepkg_equations_vanderpol.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/odepkg_equations_vanderpol.m,v retrieving revision 1.4 retrieving revision 1.5 diff u d r1.4 r1.5  odepkg_equations_vanderpol.m 4 Feb 2007 13:34:19 0000 1.4 +++ odepkg_equations_vanderpol.m 22 Feb 2007 16:32:32 0000 1.5 @@ 19,8 +19,8 @@ %# @deftypefn {Function} odepkg_equations_vanderpol () %# Displays the help text of the function and terminates with an error. %# %# @deftypefnx {Function} {@var{ydot} =} odepkg_equations_vanderpol (@var{tvar}, @var{yvar}) %# Returns the states of the "Van Der Pol Equation" example that depend on the input argument @var{yvar}. The variable @var{yvar} must be a valid column vector. Optionally the "Second Order Lag" can be parametrized by the variables @var{vu} as the input signal, @var{vK} as the amplification, @var{vT1} as the smaller time constant and @var{vT2} as the greater time constant. Use "type odepkg_equations_secondorderlag" to see the source code of this "Linear TimeInvariant" (LTI) system. If an invalid input argument is given then the function terminates with an error.Use "type odepkg_equations_vanderpol" to see the source code of this differential equation. +%# @deftypefnx {Function} {@var{ydot} =} odepkg_equations_vanderpol (@var{t, y}) +%# Returns two derivatives of the ordinary differential equations (ODEs) from the "Van der Pol" implementation, cf. @url{http://en.wikipedia.org/wiki/Van_der_Pol_oscillator} for further details. The output argument @var{ydot} is a column vector and contains the derivatives, @var{y} also is a column vector that contains the integration results from the previous integration step and @var{t} is a scalar value with actual time stamp. There is a error handling implemented in this function, ie. if an unvalid input argument is found then this function terminates with an error. %# %# Run %# @example @@ 30,27 +30,30 @@ %# @end deftypefn %# %# @seealso{odepkg} %# %#  TODO  REWORK THE HELP TEXT ABOVE BECAUSE IT MAY NOT BE CORRECT  %# Maintainer: Thomas Treichl %# Created: 20060809 %# ChangeLog: function ydot = odepkg_equations_vanderpol (tvar, yvar, varargin) + %# odepkg_equations_vanderpol is a demo function. Therefore some %# error handling is done. If you would write your own function you %# would not add any error handling to achieve highest performance. + if (nargin == 0) help ('odepkg_equations_vanderpol'); vmsg = sprintf ('Number of input arguments must be greater than zero'); error (vmsg); + elseif (nargin < 2  nargin > 3) vmsg = sprintf ('Number of input arguments must be greater 1 and lower 4'); error (vmsg); + elseif (isnumeric (tvar) == false  isnumeric (yvar) == false) vmsg = sprintf ('First and second input argument must be valid numeric values'); error (vmsg); + elseif (isvector (yvar) == false  length (yvar) ~= 2) vmsg = sprintf ('Second input argument must be a vector of length 2'); error (vmsg); @@ 65,13 +68,14 @@ end else, mu = 1; end  %# yvar and ydot must be row vectors with 1 column  ydot = [yvar(2); mu*(1yvar(1)^2)*yvar(2)yvar(1)]; + %# yvar and ydot must be column vectors + ydot = [yvar(2); ... + mu * (1  yvar(1)^2) * yvar(2)  yvar(1)];  %# A stiff ode euqation test preocedure is  %# A = odeset ('RelTol', 1e1, 'AbsTol', 1, 'InitialStep', 1e2, ...  %# 'NormControl', 'on', 'Stats', 'on', 'OutputFcn', @odeprint);  %# [x, y] = ode78 (@odepkg_equations_vanderpol, [0 300], [2 0], A, 100); +%#! A stiff ode euqation test preocedure is +%#! A = odeset ('RelTol', 1e1, 'AbsTol', 1, 'InitialStep', 1e2, ... +%#! 'NormControl', 'on', 'Stats', 'on', 'OutputFcn', @odeprint); +%#! [x, y] = ode78 (@odepkg_equations_vanderpol, [0 300], [2 0], A, 100); %!test [vt, vy] = ode78 (@odepkg_equations_vanderpol, [0 1], [2 0]); @@ 82,11 +86,13 @@ %! axis ([0, 20]); %! plot (vt, vy(:,1), 'or;x1(t);', vt, vy(:,2), 'ob;x2(t);'); %! %! %  %! % The figure window shows the two states of the "Van Der Pol Equation" +%! %  +%! % The figure window shows the two states of the "Van Der Pol" implementation %! % example. The math equation for this differential equation is +%! % %! % d^2y/dt^2  mu*(1y^2)*dy/dt + y = 0. %! % If not manually parametrized then mu = 1 as in this demo. +%! % +%! % If not manually parametrized then mu = 1. %!demo %! %! A = odeset ('NormControl', 'on', 'InitialStep', 1e3); @@ 95,10 +101,9 @@ %! axis ([0, 40]); %! plot (vt, vy(:,1), 'or;x1(t);', vt, vy(:,2), 'ob;x2(t);'); %! %! %  %! % The figure window shows the two integrated states of the "Van Der Pol %! % Equation" example. The parameter mu = 20 was set manually in this %! % demo. +%! %  +%! % The figure window shows the two integrated states of the "Van Der Pol" +%! % implementation. The parameter mu = 20 was set manually for this demo. %# Local Variables: *** %# mode: octave *** 
From: Thomas Treichl <treichl@us...>  20070222 16:31:34

Update of /cvsroot/octave/octaveforge/main/odepkg/inst In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv19304 Modified Files: ode23.m ode45.m ode54.m ode78.m Log Message: Removed bug that did an OutputSelection at event calls. Index: ode45.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/ode45.m,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  ode45.m 4 Feb 2007 13:34:19 0000 1.11 +++ ode45.m 22 Feb 2007 16:31:29 0000 1.12 @@ 329,7 +329,9 @@ if (vhaveeventfunction == true) vevent = ... odepkg_event_handle (vodeoptions.Events, vtimestamp, ...  vretvalresult(vcntloop1,:)', [], vfunarguments{:}); + vu(:), [], vfunarguments{:}); + %# 20070222, bugfix, Calling event function does not depend on + %# OutputSel vretvalresult(vcntloop1,:)', [], vfunarguments{:}); if (vevent{1} == true) vretvaltime(vcntloop1,:) = vevent{3}(end,:); vretvalresult(vcntloop1,:) = vevent{4}(end,:); Index: ode78.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/ode78.m,v retrieving revision 1.12 retrieving revision 1.13 diff u d r1.12 r1.13  ode78.m 24 Jan 2007 20:46:16 0000 1.12 +++ ode78.m 22 Feb 2007 16:31:29 0000 1.13 @@ 351,7 +351,9 @@ if (vhaveeventfunction == true) vevent = ... odepkg_event_handle (vodeoptions.Events, vtimestamp, ...  vretvalresult(vcntloop1,:)', [], vfunarguments{:}); + vu(:), [], vfunarguments{:}); + %# 20070222, bugfix, Calling event function does not depend on + %# OutputSel vretvalresult(vcntloop1,:)', [], vfunarguments{:}); if (vevent{1} == true) vretvaltime(vcntloop1,:) = vevent{3}(end,:); vretvalresult(vcntloop1,:) = vevent{4}(end,:); Index: ode54.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/ode54.m,v retrieving revision 1.11 retrieving revision 1.12 diff u d r1.11 r1.12  ode54.m 24 Jan 2007 20:46:16 0000 1.11 +++ ode54.m 22 Feb 2007 16:31:29 0000 1.12 @@ 331,7 +331,9 @@ if (vhaveeventfunction == true) vevent = ... odepkg_event_handle (vodeoptions.Events, vtimestamp, ...  vretvalresult(vcntloop1,:)', [], vfunarguments{:}); + vu(:), [], vfunarguments{:}); + %# 20070222, bugfix, Calling event function does not depend on + %# OutputSel vretvalresult(vcntloop1,:)', [], vfunarguments{:}); if (vevent{1} == true) vretvaltime(vcntloop1,:) = vevent{3}(end,:); vretvalresult(vcntloop1,:) = vevent{4}(end,:); Index: ode23.m =================================================================== RCS file: /cvsroot/octave/octaveforge/main/odepkg/inst/ode23.m,v retrieving revision 1.12 retrieving revision 1.13 diff u d r1.12 r1.13  ode23.m 4 Feb 2007 13:34:19 0000 1.12 +++ ode23.m 22 Feb 2007 16:31:29 0000 1.13 @@ 234,7 +234,7 @@ vretvalresult', 'init', vfunarguments{:}); end  vpow = 1/8; %# See p.91 in Ascher & Petzold + vpow = 1/4; %# See p.91 in Ascher & Petzold va = [0, 0, 0, 0; %# The RungeKuttaFehlberg 2(3) coefficients 1/4, 0, 0, 0; %# Coefficients proved on 20060827 189/800, 729/800, 0, 0; @@ 283,8 +283,8 @@ vdelta = y3  y2; vtau = max (vodeoptions.RelTol * vu', vodeoptions.AbsTol); else  vdelta = norm (y3  y2, Inf);  vtau = max (vodeoptions.RelTol * max (norm (vu', Inf), 1.0), vodeoptions.AbsTol); + vdelta = norm (y3  y2, Inf); + vtau = max (vodeoptions.RelTol * max (norm (vu', Inf), 1.0), vodeoptions.AbsTol); end else %# if (vstepsizegiven == true) vdelta = 1; vtau = 2; @@ 326,7 +326,9 @@ if (vhaveeventfunction == true) vevent = ... odepkg_event_handle (vodeoptions.Events, vtimestamp, ...  vretvalresult(vcntloop1,:)', [], vfunarguments{:}); + vu(:), [], vfunarguments{:}); + %# 20070222, bugfix, Calling event function does not depend on + %# OutputSel vretvalresult(vcntloop1,:)', [], vfunarguments{:}); if (vevent{1} == true) vretvaltime(vcntloop1,:) = vevent{3}(end,:); vretvalresult(vcntloop1,:) = vevent{4}(end,:); 
From: David Bateman <adb014@us...>  20070222 00:01:53

Update of /cvsroot/octave/octaveforge/nonfree/arpack/doc In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv14220 Added Files: patch.changelog Removed Files: ChangeLog Log Message: move patches changelog, and it clashes with main changelog  NEW FILE: patch.changelog  20070221 David Bateman <dbateman@...> * interpreter/sparse.txi: Document the svds and eigs functions 20070221 David Bateman <dbateman@...> * configure.in (ARPACK_LIBS): Add test for ARPACK. Warn if it isn't found. Set HAVE_ARPACK and ARPACK_LIBS. * Makeconf.in (ARPACK_LIBS): New variable. 20070221 David Bateman <dbateman@...> * Makefile.in: Add eigsbase.cc to TEMPLATE_SRC. * eigsbase.cc: New template class file for ARPACk functions. 20070221 David Bateman <dbateman@...> * Makefile.in: Add specific build for eigs.oct to include larpack. (DLD_XSRC): Add eigs.cc. * DLDFUNCTIONS/eigs.cc: New file. 20070221 David Bateman <dbateman@...> * sparse/svds.m: New file.  ChangeLog DELETED  
From: David Bateman <adb014@us...>  20070222 00:00:11

Update of /cvsroot/octave/octaveforge/nonfree/arpack/inst In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv13376/arpack/inst Added Files: svds.m Log Message: Add arpack eigs/svds functions here till final licensing issue can be worked out  NEW FILE: svds.m  ## Copyright (C) 2006 David Bateman ## ## 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 2 of the License, or ## (at your option) any later version. ## ## This program 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 this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 021101301 USA ## * texinfo * ## @deftypefn {Function File} {@var{s} =} svds (@var{a}) ## @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}) ## @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}, @var{sigma}) ## @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}, @var{sigma}, @var{opts}) ## @deftypefnx {Function File} {[@var{u}, @var{s}, @var{v}, @var{flag}] =} svds (@dots{}) ## ## Find a few singular values of the matrix @var{a}. The singular values ## are calculated using ## ## @example ## @group ## [@var{m}, @var{n}] = size(@var{a}) ## @var{s} = eigs([sparse(@var{m}, @var{m}), @var{a}; @dots{} ## @var{a}', sparse(@var{n}, @var{n})]) ## @end group ## @end example ## ## The eigenvalues returned by @code{eigs} correspond to the singular ## values of @var{a}. The number of singular values to calculate is given ## by @var{k}, whose default value is 6. ## ## The argument @var{sigma} can be used to specify which singular values ## to find. @var{sigma} can be either the string 'L', the default, in ## which case the largest singular values of @var{a} are found. Otherwise ## @var{sigma} should be a real scalar, in which case the singular values ## closest to @var{sigma} are found. Note that for relatively small values ## of @var{sigma}, there is the chance that the requested number of singular ## values are not returned. In that case @var{sigma} should be increased. ## ## If @var{opts} is given, then it is a structure that defines options ## that @code{svds} will pass to @var{eigs}. The possible fields of this ## structure are therefore determined by @code{eigs}. By default three ## fields of this structure are set by @code{svds}. ## ## @table @code ## @item tol ## The required convergence tolerance for the singular values. @code{eigs} ## is passed @var{tol} divided by @code{sqrt(2)}. The default value is ## 1e10. ## ## @item maxit ## The maximum number of iterations. The defaut is 300. ## ## @item disp ## The level of diagnostic printout. If @code{disp} is 0 then there is no ## printout. The default value is 0. ## @end table ## ## If more than one output argument is given, then @code{svds} also ## calculates the left and right singular vectors of @var{a}. @var{flag} ## is used to signal the convergence of @code{svds}. If @code{svds} ## converges to the desired tolerance, then @var{flag} given by ## ## @example ## @group ## norm (@var{a} * @var{v}  @var{u} * @var{s}, 1) <= @dots{} ## @var{tol} * norm (@var{a}, 1) ## @end group ## @end example ## ## will be zero. ## @end deftypefn ## @seealso{eigs} function [u, s, v, flag] = svds (a, k, sigma, opts) if (nargin < 1  nargin > 4) error ("Incorrect number of arguments"); endif if (nargin < 4) opts.tol = 1e10 / sqrt(2); opts.disp = 0; opts.maxit = 300; else if (!isstruct(opts)) error("opts must be a structure"); endif if (!isfield(opts,"tol")) opts.tol = 1e10 / sqrt(2); endif endif if (nargin < 3  strcmp(sigma,"L")) if (isreal(a)) sigma = "LA"; else sigma = "LR"; endif elseif (isscalar(sigma) && isreal(sigma)) if ((sigma < 0)) error ("sigma must be a positive real value"); endif else error ("sigma must be a positive real value or the string 'L'"); endif maxA = max(max(abs(a))); if (maxA == 0) u = eye(m, k); s = zeros(k, k); v = eye(n, k); else [m, n] = size(a); if (nargin < 2) k = min([6, m, n]); else k = min([k, m, n]); endif ## Scale everything by the 1norm to make things more stable. B = a / maxA; Bopts = opts; Bopts.tol = opts.tol / maxA; Bsigma = sigma; if (!ischar(Bsigma)) Bsigma = Bsigma / maxA; endif if (!ischar(Bsigma) && Bsigma == 0) ## The eigenvalues returns by eigs are symmetric about 0. As we ## are only interested in the positive eigenvalues, we have to ## double k. If sigma is smaller than the smallest singular value ## this can also be an issue. However, we'd like to avoid double ## k for all scalar value of sigma... [V, s, flag] = eigs ([sparse(m,m), B; B', sparse(n,n)], 2 * k, Bsigma, Bopts); else [V, s, flag] = eigs ([sparse(m,m), B; B', sparse(n,n)], k, Bsigma, Bopts); endif s = diag(s); if (isstr(sigma)) norma = max(s); else norma = normest(a); endif V = sqrt(2) * V; u = V(1:m,:); v = V(m+1:end,:); ## We wish to exclude all eigenvalues that are less than zero as these ## are artifacts of the way the matrix passed to eigs is formed. There ## is also the possibility that the value of sigma chosen is exactly ## a singular value, and in that case we're dead!! So have to rely on ## the warning from eigs. We exclude the singular values which are ## less than or equal to zero to within some tolerance scaled by the ## norm since if we don't we might end up with too many singular ## values. What is appropriate for the tolerance? tol = norma * opts.tol; ind = find(s > tol); if (length(ind) < k) ## Find the zero eigenvalues of B, Ignore the eigenvalues that are ## nominally negative. zind = find(abs(s) <= tol); p = min(length(zind), klength(ind)); ind = [ind;zind(1:p)]; elseif (length(ind) > k) ind = ind(1:k); endif u = u(:,ind); s = s(ind); v = v(:,ind); if (length(s) < k) warning("returning fewer singular values than requested."); if (!ischar(sigma)) warning("try increasing the value of sigma"); endif endif s = s * maxA; endif if (nargout < 2) u = s; else s = diag(s); if (nargout > 3) flag = norm(a*v  u*s, 1) > sqrt(2) * opts.tol * norm(a, 1); endif endif endfunction %!shared n, k, a, u, s, v, opts %! n = 100; %! k = 7; %! a = sparse([3:n,1:n,1:(n2)],[1:(n2),1:n,3:n],[ones(1,n2),0.4*n*ones(1,n),ones(1,n2)]); %! %%a = sparse([3:n,1:n,1:(n2)],[1:(n2),1:n,3:n],[ones(1,n2),1:n,ones(1,n2)]); %! [u,s,v] = svd(full(a)); %! s = diag(s); %! [dum, idx] = sort(abs(s)); %! s = s(idx); %! u = u(:,idx); %! v = v(:,idx); %! randn('state',42) %!test %! [u2,s2,v2,flag] = svds(a,k); %! s2 = diag(s2); %! assert(flag,!1); %! assert(s(end:1:endk+1), s2, 1e10); %!test %! [u2,s2,v2,flag] = svds(a,k,0); %! s2 = diag(s2); %! assert(flag,!1); %! assert(s(k:1:1), s2, 1e10); %!test %! idx = floor(n/2); %! % Don't put sigma right on a singular value or there are convergence %! sigma = 0.99*s(idx) + 0.01*s(idx+1); %! [u2,s2,v2,flag] = svds(a,k,sigma); %! s2 = diag(s2); %! assert(flag,!1); %! assert(s((idx+floor(k/2)):1:(idxfloor(k/2))), s2, 1e10); 
From: David Bateman <adb014@us...>  20070222 00:00:10

Update of /cvsroot/octave/octaveforge/nonfree/arpack In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv13376/arpack Added Files: COPYING DESCRIPTION INDEX Log Message: Add arpack eigs/svds functions here till final licensing issue can be worked out  NEW FILE: INDEX  sparse >> Sparse matrix support Linear algebra eigs svds  NEW FILE: DESCRIPTION  Name: Arpack Version: 1.0.0 Date: 20070221 Author: David Bateman Maintainer: David Bateman Title: Arpack. Description: Octave binds to ARPACK, including the eigs and svds function. Depends: octave (> 2.9.9) Autoload: yes License: GPL version 2 or later. Note ARPACK redistristibution restriction discussed in the documentation Url: http://octave.sf.net  NEW FILE: COPYING  GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free softwareto make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machinereadable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machinereadable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royaltyfree redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) 19yy <name of author> 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 2 of the License, or (at your option) any later version. This program 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 this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouseclicks or menu itemswhatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. 
From: David Bateman <adb014@us...>  20070222 00:00:09

Update of /cvsroot/octave/octaveforge/nonfree/arpack/doc In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv13376/arpack/doc Added Files: ChangeLog README Sorensen.eml patch Log Message: Add arpack eigs/svds functions here till final licensing issue can be worked out  NEW FILE: README  LICENSE:  Note that the ARPACK license includes the clause <quote> Written notification is provided to the developers of intent to use this software. Also, we ask that use of ARPACK is properly cited in any resulting publications or software documentation. </quote> This clause is difficult to interpret and so clarification has been requested from the authors. Initial clarification can be found in the email Sorenson.eml. However, this is not considered to go far enough to allow inclusion in Fedora. See the bug report https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=214967 for more information. However, the email does make it clear that there is no restrictions on the distribution of this binding of ARPACK to Octave, and no restrictions on its use. Furthermore, I take the clarification to mean that modifications of these Octave bindings are allowed without further notification to the authors. However, if ARPACK is to be used with another package, even if it uses the octave code as a basis, then further notification must be obtained. DOWNLOAD:  The main webpage for ARPACK is http://www.caam.rice.edu/software/ARPACK/ where two files can be obtained, these being http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz Note that the second file is not a patch, but rather another tar archive that overwrites the existing files with replacements Chao Yang maintains an updated version of ARPACK, and is one of the authors of ARPACK. However, I'm unsure if this version has any official status. It can be found at http://www.cs.ucsb.edu/~viral/parpack96/patch.tar.gz PATCHES:  Included here are a patch and a changelog file that were created against the CVS of octave as of 22 Feb 2007. These might be used to port this code to Octave once the above licensing question is addressed. Note that the code eigs.cc, eigsbase.cc and svds.m must also be copied to an appropriate place in the Octave source tree when applying this patch  NEW FILE: Sorensen.eml  XMozillaStatus: 0011 XMozillaStatus2: 00000000 Received: from zuk35exm65.ds.mot.com ([10.178.1.44]) by zuk35exm62.ds.mot.com with Microsoft SMTPSVC(6.0.3790.2709); Tue, 13 Feb 2007 19:53:15 +0000 Received: from az33exr02.mot.com ([10.64.251.232]) by zuk35exm65.ds.mot.com with Microsoft SMTPSVC(6.0.3790.2709); Tue, 13 Feb 2007 19:53:14 +0000 Received: from motgate3.mot.com (motgate3.mot.com [144.189.100.103]) by az33exr02.mot.com (8.13.1/8.13.0) with ESMTP id l1DJrDDS020683 for <David.Bateman@...>; Tue, 13 Feb 2007 13:53:13 0600 (CST) Received: from mail128.messagelabs.com (mail128.messagelabs.com [216.82.250.131]) by motgate3.mot.com (8.12.11/Motorola) with SMTP id l1DJr8gl023906 for <David.Bateman@...>; Tue, 13 Feb 2007 12:53:11 0700 (MST) XVirusChecked: Checked XEnvSender: sorensen@... XMsgRef: server6.tower128.messagelabs.com!1171396385!13383447!1 XStarScanVersion: 5.5.10.7.1; banners=,, XOriginatingIP: [128.42.17.10] XSpamReason: No, hits=0.0 required=7.0 tests= Received: (qmail 3872 invoked from network); 13 Feb 2007 19:53:05 0000 Received: from caam.rice.edu (HELO caam.rice.edu) (128.42.17.10) by server6.tower128.messagelabs.com with SMTP; 13 Feb 2007 19:53:05 0000 Received: from localhost (localhost [127.0.0.1]) by caam.rice.edu (Postfix) with ESMTP id 64341153A7 for <David.Bateman@...>; Tue, 13 Feb 2007 13:53:04 0600 (CST) Received: from caam.rice.edu ([127.0.0.1]) by localhost (caam.rice.edu [127.0.0.1]) (amavisdnew, port 10024) with LMTP id 237770116 for <David.Bateman@...>; Tue, 13 Feb 2007 13:52:59 0600 (CST) Received: from [128.42.21.177] (sorensenl400.caam.rice.edu [128.42.21.177]) by caam.rice.edu (Postfix) with ESMTP id 494E81539F for <David.Bateman@...>; Tue, 13 Feb 2007 13:52:59 0600 (CST) MessageID: <45D2171B.8030109@...> Date: Tue, 13 Feb 2007 13:52:59 0600 From: Dan Sorensen<sorensen@...> UserAgent: Thunderbird 1.5.0.9 (Windows/20061207) MIMEVersion: 1.0 To: David Bateman<David.Bateman@...> Subject: Re: ARPACK License Question References: <457EE5B3.70402@...> <20070105114426.GI4860@...> <45B8CB2F.9030904@...> InReplyTo: <45B8CB2F.9030904@...> ContentType: text/plain; charset=ISO88591; format=flowed ContentTransferEncoding: 7bit XVirusScanned: by amavis2.2.1 at caam.rice.edu ReturnPath: sorensen@... XOriginalArrivalTime: 13 Feb 2007 19:53:14.0831 (UTC) FILETIME=[994B7DF0:01C74FA8] Dear Mr. Bateman I apologize for not responding to this previously. The clarification we discussed is the following The clause in the license statement that states >>Written notification is provided to the developers of intent to use this >> software. Also, we ask that use of ARPACK is properly cited in any >> resulting publications or software documentation. has the following intension in your case. We are asking for acknowledgment in FEDORA that ARPACK is the software that underlies what corresponds to the "eigs" command. There is no intention to pass on a requirement of notification of use from users of FEDORA. This is the understanding we have with MATLAB for example. If the above note or a slight modification of it is not acceptable for the purposes of using ARPACK in FEDORA, I will have to refer you to the tech transfer department of Rice University as I explained during our phone conversation. Once again my apologies for the delay and I thank you for your interest in ARPACK. Best Regards Dan Sorensen David Bateman wrote: > Dear Professor Sorensen, > > Perhaps you have not yet seen the email below, and so I draw it to your > attention. Can you please examine the request to modify the license of > ARPACK in this mail belong to allow its inclusion in FEDORA and other > similar open source linux distributions? > > As the author of the eigs function for Octave (www.octave.org) that uses > ARPACK for its functionality, I'd hate to see my work not included in > Octave due to this question not being resolved. > > Best Regards > David > >  NEW FILE: ChangeLog  20070221 David Bateman <dbateman@...> * interpreter/sparse.txi: Document the svds and eigs functions 20070221 David Bateman <dbateman@...> * configure.in (ARPACK_LIBS): Add test for ARPACK. Warn if it isn't found. Set HAVE_ARPACK and ARPACK_LIBS. * Makeconf.in (ARPACK_LIBS): New variable. 20070221 David Bateman <dbateman@...> * Makefile.in: Add eigsbase.cc to TEMPLATE_SRC. * eigsbase.cc: New template class file for ARPACk functions. 20070221 David Bateman <dbateman@...> * Makefile.in: Add specific build for eigs.oct to include larpack. (DLD_XSRC): Add eigs.cc. * DLDFUNCTIONS/eigs.cc: New file. 20070221 David Bateman <dbateman@...> * sparse/svds.m: New file.  NEW FILE: patch  *** ./Makeconf.in.orig41 20070221 13:19:49.648245987 +0100  ./Makeconf.in 20070221 13:39:38.661764244 +0100 *************** *** 221,226 ****  221,227  CCOLAMD_LIBS = @CCOLAMD_LIBS@ CHOLMOD_LIBS = @CHOLMOD_LIBS@ CXSPARSE_LIBS = @CXSPARSE_LIBS@ + ARPACK_LIBS = @ARPACK_LIBS@ LIBS = @LIBS@ USE_64_BIT_IDX_T = @USE_64_BIT_IDX_T@ *** ./doc/interpreter/sparse.txi.orig41 20070221 13:33:25.269502039 +0100  ./doc/interpreter/sparse.txi 20070221 13:38:33.886013421 +0100 *************** *** 421,430 **** @dfn{csymamd}, @dfn{dmperm}, @dfn{symamd}, @dfn{randperm}, (symrcm) @item Linear algebra: ! @dfn{matrix\_type}, @dfn{spchol}, @dfn{cpcholinv}, ! @dfn{spchol2inv}, @dfn{spdet}, @dfn{spinv}, @dfn{spkron}, ! @dfn{splchol}, @dfn{splu}, @dfn{spqr}, (condest, eigs, normest, ! sprank, svds, spaugment) @item Iterative techniques: @dfn{luinc}, @dfn{pcg}, @dfn{pcr}, (bicg, bicgstab, cholinc, cgs,  421,430  @dfn{csymamd}, @dfn{dmperm}, @dfn{symamd}, @dfn{randperm}, (symrcm) @item Linear algebra: ! @dfn{eigs}, @dfn{matrix\_type}, @dfn{normest}, @dfn{spchol}, ! @dfn{spcholinv}, @dfn{spchol2inv}, @dfn{spdet}, @dfn{spinv}, @dfn{spkron}, ! @dfn{splchol}, @dfn{splu}, @dfn{spqr}, @dfn{sprank}, @dfn{svds}, ! (condest, spaugment) @item Iterative techniques: @dfn{luinc}, @dfn{pcg}, @dfn{pcr}, (bicg, bicgstab, cholinc, cgs, *************** *** 1434,1440 **** @item condest @emph{Not implemented} @item eigs ! @emph{Not implemented} @item @ref{matrix_type} Identify the matrix type or mark a matrix as a particular type. @item @ref{normest}  1434,1441  @item condest @emph{Not implemented} @item eigs ! Calculate a limited number of eigenvalues and eigenvectors of @var{a}, ! based on a selection criteria. @item @ref{matrix_type} Identify the matrix type or mark a matrix as a particular type. @item @ref{normest} *************** *** 1462,1468 **** @item @ref{sprank} Calculates the structural rank of a sparse matrix @var{s}. @item svds ! @emph{Not implemented} @end table @subsubsection Iterative techniques @table @asis  1463,1469  @item @ref{sprank} Calculates the structural rank of a sparse matrix @var{s}. @item svds ! Find a few singular values of the matrix @var{a}. @end table @subsubsection Iterative techniques @table @asis *************** *** 1537,1542 ****  1538,1545  sparser Cholesky factor than S. * dmperm:: Perfrom a DeulmageMendelsohn permutation on the sparse matrix S. + * eigs:: Calculate a limited number of eigenvalues and eigenvectors + of @var{a}, based on a selection criteria. * etree:: Returns the elimination tree for the matrix S. * etreeplot:: Plots the elimination tree of the matrix @var{s} or @code{@var{s}+@var{s}'} if @var{s} in nonsymmetric. *************** *** 1608,1613 ****  1611,1617  * spsum:: Sum of elements along dimension DIM. * spsumsq:: Sum of squares of elements along dimension DIM. * spy:: Plot the sparsity pattern of the sparse matrix X + * svds:: Find a few singular values of the matrix @var{a}. * symamd:: For a symmetric positive definite matrix S, returns the permutation vector p such that `S (P, P)' tends to have a sparser Cholesky factor than S. *************** *** 1636,1647 **** @DOCSTRING(csymamd) ! @node dmperm, etree, csymamd, Function Reference @subsubsection dmperm @DOCSTRING(dmperm) ! @node etree, etreeplot, dmperm, Function Reference @subsubsection etree @DOCSTRING(etree)  1640,1656  @DOCSTRING(csymamd) ! @node dmperm, eigs, csymamd, Function Reference @subsubsection dmperm @DOCSTRING(dmperm) ! @node eigs, etree, dmperm, Function Reference ! @subsubsection eigs ! ! @DOCSTRING(eigs) ! ! @node etree, etreeplot, eigs, Function Reference @subsubsection etree @DOCSTRING(etree) *************** *** 1867,1878 **** @DOCSTRING(spsumsq) ! @node spy, symamd, spsumsq, Function Reference @subsubsection spy @DOCSTRING(spy) ! @node symamd, symbfact, spy, Function Reference @subsubsection symamd @DOCSTRING(symamd)  1876,1892  @DOCSTRING(spsumsq) ! @node spy, svds, spsumsq, Function Reference @subsubsection spy @DOCSTRING(spy) ! @node svds, symamd, spy, Function Reference ! @subsubsection svds ! ! @DOCSTRING(svds) ! ! @node symamd, symbfact, svds, Function Reference @subsubsection symamd @DOCSTRING(symamd) *** ./src/Makefile.in.orig41 20070221 13:19:49.646246085 +0100  ./src/Makefile.in 20070221 13:39:38.652764696 +0100 *************** *** 49,56 **** DLD_XSRC := balance.cc besselj.cc betainc.cc cellfun.cc chol.cc \ ccolamd.cc colamd.cc colloc.cc conv2.cc daspk.cc dasrt.cc \ ! dassl.cc det.cc dispatch.cc eig.cc expm.cc fft.cc fft2.cc \ ! fftn.cc fftw.cc filter.cc find.cc fsolve.cc \ gammainc.cc gcd.cc getgrent.cc getpwent.cc getrusage.cc \ givens.cc hess.cc interpn.cc inv.cc kron.cc lpsolve.cc lsode.cc \ lu.cc luinc.cc matrix_type.cc minmax.cc pinv.cc qr.cc \  49,56  DLD_XSRC := balance.cc besselj.cc betainc.cc cellfun.cc chol.cc \ ccolamd.cc colamd.cc colloc.cc conv2.cc daspk.cc dasrt.cc \ ! dassl.cc det.cc dispatch.cc eig.cc eigs.cc expm.cc fft.cc \ ! fft2.cc fftn.cc fftw.cc filter.cc find.cc fsolve.cc \ gammainc.cc gcd.cc getgrent.cc getpwent.cc getrusage.cc \ givens.cc hess.cc interpn.cc inv.cc kron.cc lpsolve.cc lsode.cc \ lu.cc luinc.cc matrix_type.cc minmax.cc pinv.cc qr.cc \ *************** *** 577,582 ****  577,584  ifeq ($(ENABLE_DYNAMIC_LINKING), true) ifdef CXXPICFLAG + eigs.oct : pic/eigs.o octave$(EXEEXT) + $(DL_LD) $(DL_LDFLAGS) o $@ $< $(OCT_LINK_DEPS) $(ARPACK_LIBS) regexp.oct : pic/regexp.o octave$(EXEEXT) $(DL_LD) $(DL_LDFLAGS) o $@ $< $(OCT_LINK_DEPS) $(REGEX_LIBS) urlwrite.oct : pic/urlwrite.o octave$(EXEEXT) *************** *** 584,589 ****  586,593  __glpk__.oct : pic/__glpk__.o octave$(EXEEXT) $(DL_LD) $(DL_LDFLAGS) o $@ $< $(OCT_LINK_DEPS) $(GLPK_LIBS) else + eigs.oct : eigs.o octave$(EXEEXT) + $(DL_LD) $(DL_LDFLAGS) o $@ $< $(OCT_LINK_DEPS) $(ARPACK_LIBS) regexp.oct : regexp.o octave$(EXEEXT) $(DL_LD) $(DL_LDFLAGS) o $@ $< $(OCT_LINK_DEPS) $(REGEX_LIBS) urlwrite.oct : urlwrite.o octave$(EXEEXT) *** ./configure.in.orig41 20070221 13:19:49.648245987 +0100  ./configure.in 20070221 13:39:38.659764345 +0100 *************** *** 1001,1006 ****  1001,1035  AC_MSG_WARN($warn_cxsparse) fi + WITH_ARPACK=true + AC_ARG_WITH(arpack, + [AS_HELP_STRING([withoutarpack], [don't use arpack])], + with_arpack=$withval, with_arpack=yes) + + arpack_lib= + if test "$with_arpack" = yes; then + arpack_lib="arpack" + elif test "$with_arpack" != no; then + arpack_lib="$with_arpack" + fi + + ARPACK_LIBS= + AC_SUBST(ARPACK_LIBS) + WITH_ARPACK=false + if test n "$arpack_lib"; then + AC_CHECK_LIB($arpack_lib, F77_FUNC(dseupd,DSEUPD), [ + WITH_ARPACK=true + ARPACK_LIBS="l$arpack_lib" + FLIBS="$ARPACK_LIBS $FLIBS" + AC_DEFINE(HAVE_ARPACK, 1, [Define if ARPACK is available.])], , + $BLAS_LIBS $FLIBS) + fi + if test $WITH_ARPACK = no; then + warn_arpack="arpack not found. This will result in a lack of the eigs function." + AC_MSG_WARN($warn_arpack) + fi + + ### Handle shared library options. ### Enable creation of static libraries. *************** *** 2019,2024 ****  2048,2054  CCOLAMD libraries: $CCOLAMD_LIBS CHOLMOD libraries: $CHOLMOD_LIBS CXSPARSE libraries: $CXSPARSE_LIBS + ARPACK libraries: $ARPACK_LIBS HDF5 libraries: $HDF5_LIBS CURL libraries: $CURL_LIBS REGEX libraries: $REGEX_LIBS *************** *** 2126,2131 ****  2156,2166  warn_msg_printed=true fi + if test n "$warn_arpack"; then + AC_MSG_WARN($warn_arpack) + warn_msg_printed=true + fi + if test n "$warn_fftw"; then AC_MSG_WARN($warn_fftw) warn_msg_printed=true 
From: David Bateman <adb014@us...>  20070222 00:00:08

Update of /cvsroot/octave/octaveforge/nonfree/arpack/src In directory sc8prcvs3.sourceforge.net:/tmp/cvsserv13376/arpack/src Added Files: .cvsignore Makeconf.in Makefile autogen.sh configure.base eigsbase.cc eigs.cc Log Message: Add arpack eigs/svds functions here till final licensing issue can be worked out  NEW FILE: .cvsignore  configure autom4te.cache  NEW FILE: Makefile  sinclude Makeconf ifeq ($(HAVE_ARPACK),yes) PROGS:=eigs.oct endif all: $(PROGS) eigs.oct: eigs.cc $(MKOCTFILE) DHAVE_CONFIG_H DHAVE_ARPACK $< $(ARPACK_LIBS) clean: ; $(RM) *.o core octavecore *.oct *~  NEW FILE: configure.base  dnl The configure script is generated by autogen.sh from configure.base dnl and the various configure.add files in the source tree. Edit dnl configure.base and reprocess rather than modifying ./configure. dnl autoconf 2.13 certainly doesn't work! What is the minimum requirement? AC_PREREQ(2.2) AC_INIT(configure.base) PACKAGE=octaveforge MAJOR_VERSION=0 MINOR_VERSION=1 PATCH_LEVEL=0 dnl Kill caching  this ought to be the default define([AC_CACHE_LOAD], )dnl define([AC_CACHE_SAVE], )dnl dnl uncomment to put support files in another directory dnl AC_CONFIG_AUX_DIR(admin) VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL AC_SUBST(PACKAGE) AC_SUBST(VERSION) dnl need to find admin files, so keep track of the top dir. TOPDIR=`pwd` AC_SUBST(TOPDIR) dnl if mkoctfile doesn't work, then we need the following: dnl AC_PROG_CXX dnl AC_PROG_F77 dnl Need C compiler regardless so define it in a way that dnl makes autoconf happy and we can override whatever we dnl need with mkoctfile p. dnl XXX FIXME XXX should use mkoctfile to get CC and CFLAGS AC_PROG_CC dnl XXX FIXME XXX need tests for p c s in mkoctfile. dnl ******************************************************************* dnl Sort out mkoctfile version number and install paths dnl XXX FIXME XXX latest octave has octaveconfig so we don't dnl need to discover things here. Doesn't have exesitedir dnl but defines octsitedir and msitedir dnl Check for mkoctfile AC_CHECK_PROG(MKOCTFILE,mkoctfile,mkoctfile) test z "$MKOCTFILE" && AC_MSG_WARN([no mkoctfile found on path]) AC_SUBST(ver) AC_SUBST(subver) AC_SUBST(mpath) AC_SUBST(opath) AC_SUBST(xpath) AC_SUBST(altpath) AC_SUBST(altmpath) AC_SUBST(altopath) AC_ARG_WITH(path, [ withpath install path prefix], [ path=$withval ]) AC_ARG_WITH(mpath, [ withmpath override path for mfiles], [mpath=$withval]) AC_ARG_WITH(opath, [ withopath override path for octfiles], [opath=$withval]) AC_ARG_WITH(xpath, [ withxpath override path for executables], [xpath=$withval]) AC_ARG_WITH(altpath, [ withaltpath alternative functions install path prefix], [ altpath=$withval ]) AC_ARG_WITH(altmpath, [ withaltmpath override path for alternative mfiles], [altmpath=$withval]) AC_ARG_WITH(altopath, [ withaltopath override path for alternative octfiles], [altopath=$withval]) if test n "$path" ; then test z "$mpath" && mpath=$path test z "$opath" && opath=$path/oct test z "$xpath" && xpath=$path/bin test z "$altpath" && altpath=$pathalternatives fi if test n "$altpath" ; then test z "$altmpath" && altmpath=$altpath test z "$altopath" && altopath=$altpath/oct fi dnl Don't query if path/ver are given in the configure environment #if test z "$mpath"  test z "$opath"  test z "$xpath"  test z "$altmpath"  test z "$altopath"  test z "$ver" ; then if test z "$mpath"  test z "$opath"  test z "$xpath"  test z "$ver" ; then dnl Construct program to get mkoctfile version and local install paths cat > conftest.cc <<EOF #include <octave/config.h> #include <octave/version.h> #include <octave/defaults.h> #define INFOV "\nINFOV=" OCTAVE_VERSION "\n" #define INFOH "\nINFOH=" OCTAVE_CANONICAL_HOST_TYPE "\n" #ifdef OCTAVE_LOCALVERFCNFILEDIR # define INFOM "\nINFOM=" OCTAVE_LOCALVERFCNFILEDIR "\n" #else # define INFOM "\nINFOM=" OCTAVE_LOCALFCNFILEPATH "\n" #endif #ifdef OCTAVE_LOCALVEROCTFILEDIR # define INFOO "\nINFOO=" OCTAVE_LOCALVEROCTFILEDIR "\n" #else # define INFOO "\nINFOO=" OCTAVE_LOCALOCTFILEPATH "\n" #endif #ifdef OCTAVE_LOCALVERARCHLIBDIR # define INFOX "\nINFOX=" OCTAVE_LOCALVERARCHLIBDIR "\n" #else # define INFOX "\nINFOX=" OCTAVE_LOCALARCHLIBDIR "\n" #endif const char *infom = INFOM; const char *infoo = INFOO; const char *infox = INFOX; const char *infoh = INFOH; const char *infov = INFOV; EOF dnl Compile program perhaps with a special version of mkoctfile $MKOCTFILE conftest.cc  AC_MSG_ERROR(Could not run $MKOCTFILE) dnl Strip the config info from the compiled file eval `strings conftest.o  grep "^INFO.="  sed e "s,//.*$,,"` rm rf conftest* dnl set the appropriate variables if they are not already set ver=`echo $INFOV  sed e "s/\.//" e "s/\..*$//"` subver=`echo $INFOV  sed e "[s/^[^.]*[.][^.]*[.]//]"` alt_mbase=`echo $INFOM  sed e "[s,\/[^\/]*$,,]"` alt_obase=`echo $INFOO  sed e "[s,/site.*$,/site,]"` test z "$mpath" && mpath=$INFOM/octaveforge test z "$opath" && opath=$INFOO/octaveforge test z "$xpath" && xpath=$INFOX test z "$altmpath" && altmpath=$alt_mbase/octaveforgealternatives/m test z "$altopath" && altopath=$alt_obase/octaveforgealternatives/oct/$INFOH fi dnl ******************************************************************* dnl XXX FIXME XXX Should we allow the user to override these? dnl Do we even need them? The individual makefiles can call mkoctfile p dnl themselves, so the only reason to keep them is for configure, and dnl for those things which are not built using mkoctfile (e.g., aurecord) dnl but it is not clear we should be using octave compile flags for those. dnl C compiler and flags AC_MSG_RESULT([retrieving compile and link flags from $MKOCTFILE]) CC=`$MKOCTFILE p CC` CFLAGS=`$MKOCTFILE p CFLAGS` CPPFLAGS=`$MKOCTFILE p CPPFLAGS` CPICFLAG=`$MKOCTFILE p CPICFLAG` LDFLAGS=`$MKOCTFILE p LDFLAGS` LIBS=`$MKOCTFILE p LIBS` AC_SUBST(CC) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(CPICFLAG) dnl Fortran compiler and flags F77=`$MKOCTFILE p F77` FFLAGS=`$MKOCTFILE p FFLAGS` FPICFLAG=`$MKOCTFILE p FPICFLAG` AC_SUBST(F77) AC_SUBST(FFLAGS) AC_SUBST(FPICFLAG) dnl C++ compiler and flags CXX=`$MKOCTFILE p CXX` CXXFLAGS=`$MKOCTFILE p CXXFLAGS` CXXPICFLAG=`$MKOCTFILE p CXXPICFLAG` AC_SUBST(CXX) AC_SUBST(CXXFLAGS) AC_SUBST(CXXPICFLAG) dnl ******************************************************************* dnl Check for features of your version of mkoctfile. dnl All checks should be designed so that the default dnl action if the tests are not performed is to do whatever dnl is appropriate for the most recent version of Octave. dnl Define the following macro: dnl OF_CHECK_LIB(lib,fn,true,false,helpers) dnl This is just like AC_CHECK_LIB, but it doesn't update LIBS AC_DEFUN(OF_CHECK_LIB, [save_LIBS="$LIBS" AC_CHECK_LIB($1,$2,$3,$4,$5) LIBS="$save_LIBS" ]) dnl Define the following macro: dnl TRY_MKOCTFILE(msg,program,action_if_true,action_if_false,extra_libs) dnl AC_DEFUN(TRY_MKOCTFILE, [AC_MSG_CHECKING($1) cat > conftest.cc << EOF #include <octave/config.h> $2 EOF ac_try="$MKOCTFILE c conftest.cc $5" if AC_TRY_EVAL(ac_try) ; then AC_MSG_RESULT(yes) $3 else AC_MSG_RESULT(no) $4 fi ]) dnl dnl Check if F77_FUNC works with MKOCTFILE dnl TRY_MKOCTFILE([for F77_FUNC], [int F77_FUNC (hello, HELLO) (const int &n);],, [MKOCTFILE="$MKOCTFILE DF77_FUNC=F77_FCN"]) dnl ********************************************************** dnl Evaluate an expression in octave dnl dnl OCTAVE_EVAL(expr,var) > var=expr dnl AC_DEFUN(OCTAVE_EVAL, [AC_MSG_CHECKING([for $1 in Octave]) $2=`echo "disp($1)"  $OCTAVE qf` AC_MSG_RESULT($$2) AC_SUBST($2) ]) dnl Check status of an octave variable dnl dnl OCTAVE_CHECK_EXIST(variable,action_if_true,action_if_false) dnl AC_DEFUN(OCTAVE_CHECK_EXIST, [AC_MSG_CHECKING([for $1 in Octave]) if test `echo 'disp(exist("$1"))'  $OCTAVE qf`X != 0X ; then AC_MSG_RESULT(yes) $2 else AC_MSG_RESULT(no) $3 fi ]) dnl should check that $(OCTAVE) version matches $(MKOCTFILE) version AC_CHECK_PROG(OCTAVE,octave,octave) OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION) dnl grab canonical host type so we can write system specific install stuff OCTAVE_EVAL(octave_config_info('canonical_host_type'),canonical_host_type) dnl grab SHLEXT from octave config OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT) AC_PROG_LN_S AC_PROG_RANLIB dnl Use $(COPY_FLAGS) to set options for cp when installing .oct files. COPY_FLAGS="Rfp" case "$canonical_host_type" in **linux*) COPY_FLAGS="fdp" ;; esac AC_SUBST(COPY_FLAGS) dnl Use $(STRIP) in the makefile to strip executables. If not found, dnl STRIP expands to ':', which in the makefile does nothing. dnl Don't need this for .oct files since mkoctfile handles them directly STRIP=${STRIPstrip} AC_CHECK_PROG(STRIP,$STRIP,$STRIP,:) dnl Strip on windows, don't strip on Mac OS/X or IRIX dnl For the rest, you can force strip using MKOCTFILE="mkoctfile s" dnl or avoid strip using STRIP=: before ./configure case "$canonical_host_type" in powerpcappledarwin**sgi*) STRIP=: ;; *cygwin**mingw*) MKOCTFILE="$MKOCTFILE s" ;; esac AC_ARG_WITH(arpack, [AS_HELP_STRING([withoutarpack], [don't use arpack])], with_arpack=$withval, with_arpack=yes) arpack_lib= if test "$with_arpack" = yes; then arpack_lib="arpack" elif test "$with_arpack" != no; then arpack_lib="$with_arpack" fi ARPACK_LIBS= HAVE_ARPACK=no AC_SUBST(ARPACK_LIBS) AC_SUBST(HAVE_ARPACK) WITH_ARPACK=no if test n "$arpack_lib"; then TRY_MKOCTFILE([for libarpack],[char F77_FUNC(dseupd,DSEUPD) ();],[ WITH_ARPACK=yes ARPACK_LIBS="l$arpack_lib" HAVE_ARPACK=yes], ,l$arpack_lib) fi if test $WITH_ARPACK = no; then AC_MSG_WARN("arpack not found. This essentially makes this package useless.") ARPACKSTATUS="libarpack not found" else ARPACKSTATUS="Using ARPACK libraries $ARPACK_LIBS" fi CONFIGURE_OUTPUTS="Makeconf" STATUS_MSG=" octave commands will install into the following directories: mfiles: $mpath octfiles: $opath binaries: $xpath alternatives: mfiles: $altmpath octfiles: $altopath shell commands will install into the following directories: binaries: $bindir man pages: $mandir libraries: $libdir headers: $includedir octaveforge is configured with octave: $OCTAVE (version $OCTAVE_VERSION) mkoctfile: $MKOCTFILE for Octave $subver arpack: $ARPACKSTATUS"  NEW FILE: eigs.cc  /* Copyright (C) 2005 David Bateman This file is part of Octave. Octave 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 2, or (at your option) any later version. Octave 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 Octave; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA [...1427 lines suppressed...] %!test %! [v1,d1] = eigs(A, k, 'li'); %! d1 = diag(d1); %! for i=1:k %! assert(max(abs((A  d1(i)*eye(n))*v1(:,i))),0.,1e12) %! endfor %!test %! [v1,d1] = eigs(A, k, 'si'); %! d1 = diag(d1); %! for i=1:k %! assert(max(abs((A  d1(i)*eye(n))*v1(:,i))),0.,1e12) %! endfor */ /* ;;; Local Variables: *** ;;; mode: C++ *** ;;; End: *** */  NEW FILE: eigsbase.cc  /* Copyright (C) 2005 David Bateman This file is part of Octave. Octave 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 2, or (at your option) any later version. Octave 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 Octave; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA [...3722 lines suppressed...] template static ComplexMatrix utsolve (const SparseComplexMatrix&, const ColumnVector&, const ComplexMatrix&); template static Matrix utsolve (const SparseMatrix&, const ColumnVector&, const Matrix&); template static ComplexMatrix utsolve (const ComplexMatrix&, const ColumnVector&, const ComplexMatrix&); template static Matrix utsolve (const Matrix&, const ColumnVector&, const Matrix&); #endif /* ;;; Local Variables: *** ;;; mode: C++ *** ;;; End: *** */  NEW FILE: Makeconf.in  ## Makeconf is automatically generated from Makeconf.base and Makeconf.add ## in the various subdirectories. To regenerate, use ./autogen.sh to ## create a new ./Makeconf.in, then use ./configure to generate a new ## Makeconf. OCTAVE_FORGE = 1 SHELL = @SHELL@ canonical_host_type = @canonical_host_type@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ mandir = @mandir@ libdir = @libdir@ datadir = @datadir@ infodir = @infodir@ includedir = @includedir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ INSTALLOCT=octinst.sh DESTDIR = RANLIB = @RANLIB@ STRIP = @STRIP@ LN_S = @LN_S@ AWK = @AWK@ # Most octave programs will be compiled with $(MKOCTFILE). Those which # cannot use mkoctfile directly can request the flags that mkoctfile # would use as follows: # FLAG = $(shell $(MKOCTFILE) p FLAG) # The following flags are for compiling programs that are independent # of Octave. How confusing. CC = @CC@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CPICFLAG = @CPICFLAG@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ CXXPICFLAG = @CXXPICFLAG@ F77 = @F77@ FFLAGS = @FFLAGS@ FPICFLAG = @FPICFLAG@ OCTAVE = @OCTAVE@ OCTAVE_VERSION = @OCTAVE_VERSION@ MKOCTFILE = @MKOCTFILE@ DHAVE_OCTAVE_$(ver) v SHLEXT = @SHLEXT@ ver = @ver@ MPATH = @mpath@ OPATH = @opath@ XPATH = @xpath@ ALTMPATH = @altmpath@ ALTOPATH = @altopath@ HAVE_ARPACK=@HAVE_ARPACK@ ARPACK_LIBS=@ARPACK_LIBS@ %.o: %.c ; $(MKOCTFILE) c $< %.o: %.f ; $(MKOCTFILE) c $< %.o: %.cc ; $(MKOCTFILE) c $< %.oct: %.cc ; $(MKOCTFILE) $<  NEW FILE: autogen.sh  #! /bin/sh ## Generate ./configure rm f configure.in echo "dnl  DO NOT EDIT  Automatically generated by autogen.sh" > configure.in cat configure.base >> configure.in cat <<EOF >> configure.in AC_OUTPUT(\$CONFIGURE_OUTPUTS) dnl XXX FIXME XXX chmod is not in autoconf's list of portable functions echo " " echo " \"\\\$prefix\" is \$prefix" echo " \"\\\$exec_prefix\" is \$exec_prefix" AC_MSG_RESULT([\$STATUS_MSG find . name NOINSTALL print # shows which toolboxes won't be installed ]) EOF autoconf && rm f configure.in 