From: <par...@us...> - 2011-08-18 19:44:08
|
Revision: 8469 http://octave.svn.sourceforge.net/octave/?rev=8469&view=rev Author: paramaniac Date: 2011-08-18 19:44:00 +0000 (Thu, 18 Aug 2011) Log Message: ----------- control: complete first model reduction routine Modified Paths: -------------- trunk/octave-forge/main/control/devel/slred/slmodred/makefile_slmodred.m trunk/octave-forge/main/control/devel/slred/slmodred/slab09jd.cc Modified: trunk/octave-forge/main/control/devel/slred/slmodred/makefile_slmodred.m =================================================================== --- trunk/octave-forge/main/control/devel/slred/slmodred/makefile_slmodred.m 2011-08-18 16:59:02 UTC (rev 8468) +++ trunk/octave-forge/main/control/devel/slred/slmodred/makefile_slmodred.m 2011-08-18 19:44:00 UTC (rev 8469) @@ -7,7 +7,8 @@ MB04OY.f MB03QD.f SB03OY.f MB03QY.f MB01QD.f \ SB03OR.f SB03OV.f SB04PX.f -mkoctfile slab09jd.cc \ +mkoctfile "-Wl,-framework" "-Wl,vecLib" \ + slab09jd.cc \ AB09JD.f TB01ID.f TB01KD.f AB07ND.f AB09JV.f \ AB09JW.f AB09CX.f AG07BD.f AB08MD.f AB04MD.f \ TB01LD.f delctg.f SB04PY.f AB09AX.f AB08NX.f \ @@ -22,4 +23,4 @@ SB03OU.f MA02AD.f MB03QX.f select.f SB03OT.f \ SB02MR.f SB02MS.f MB03QD.f SB02MU.f SB02MV.f \ SB02MW.f MB04ND.f MB04OD.f MB03QY.f SB03OR.f \ - SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f \ No newline at end of file + SB03OY.f SB04PX.f MB04NY.f MB04OY.f SB03OV.f Modified: trunk/octave-forge/main/control/devel/slred/slmodred/slab09jd.cc =================================================================== --- trunk/octave-forge/main/control/devel/slred/slmodred/slab09jd.cc 2011-08-18 16:59:02 UTC (rev 8468) +++ trunk/octave-forge/main/control/devel/slred/slmodred/slab09jd.cc 2011-08-18 19:44:00 UTC (rev 8469) @@ -109,7 +109,64 @@ double tol1 = args(20).double_value (); double tol2 = args(21).double_value (); - + + switch (ijobv) + { + case 0: + jobv = 'N'; + break; + case 1: + jobv = 'V'; + break; + case 2: + jobv = 'I'; + break; + case 3: + jobv = 'C'; + break; + case 4: + jobv = 'R'; + break; + default: + error ("slab09jd: argument jobv invalid"); + } + + switch (ijobw) + { + case 0: + jobw = 'N'; + break; + case 1: + jobw = 'W'; + break; + case 2: + jobw = 'I'; + break; + case 3: + jobw = 'C'; + break; + case 4: + jobw = 'R'; + break; + default: + error ("slab09jd: argument jobw invalid"); + } + + switch (ijobinv) + { + case 0: + jobinv = 'N'; + break; + case 1: + jobinv = 'I'; + break; + case 2: + jobinv = 'A'; + break; + default: + error ("slab09jd: argument jobinv invalid"); + } + if (idico == 0) dico = 'C'; else @@ -120,6 +177,10 @@ else equil = 'N'; + if (iordsel == 0) + ordsel = 'F'; + else + ordsel = 'A'; int n = a.rows (); // n: number of states int nv = av.rows (); @@ -143,8 +204,7 @@ int lddw = max (1, m); // arguments out - int ns = 0; - + int ns; ColumnVector hsv (n); // workspace @@ -238,11 +298,18 @@ error ("hsvd: slab09jd: AB09JD returned info = %d", info); // resize + a.resize (nr, nr); + b.resize (nr, m); + c.resize (p, nr); hsv.resize (ns); // return values - retval(0) = hsv; - retval(1) = octave_value (ns); + retval(0) = a; + retval(1) = b; + retval(2) = c; + retval(3) = d; + // retval(0) = hsv; + // retval(1) = octave_value (ns); } return retval; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |