diff --git a/matlab/simul.m b/matlab/simul.m index 6c58af226..524083cd7 100644 --- a/matlab/simul.m +++ b/matlab/simul.m @@ -63,8 +63,8 @@ end if options_.block && ~options_.bytecode && (options_.stack_solve_algo == 0 || options_.stack_solve_algo == 5) error('SIMUL: for the moment, you must use stack_solve_algo={1,2,3,4} when using block without bytecode option') end -if options_.block && options_.bytecode && options_.stack_solve_algo ~= 5 - error('SIMUL: for the moment, you must use stack_solve_algo=5 with block and bytecode option') +if options_.bytecode && options_.stack_solve_algo ~= 5 + error('SIMUL: for the moment, you must use stack_solve_algo=5 with bytecode option') end if exist('OCTAVE_VERSION') && options_.stack_solve_algo == 2 diff --git a/tests/Makefile.am b/tests/Makefile.am index ecf041ea4..9ac87dd63 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -17,6 +17,7 @@ OCTAVE_MODS = \ block_bytecode/fs2000_bicgstab.mod \ block_bytecode/fs2000_optpath.mod \ block_bytecode/fs2000_bytecode.mod \ + block_bytecode/fs2000_block_bytecode.mod \ block_bytecode/ramst.mod \ block_bytecode/ireland.mod \ block_bytecode/ls2003.mod \ diff --git a/tests/block_bytecode/fs2000_bicgstab.mod b/tests/block_bytecode/fs2000_bicgstab.mod index 3a39594ed..6d2a8a6f9 100644 --- a/tests/block_bytecode/fs2000_bicgstab.mod +++ b/tests/block_bytecode/fs2000_bicgstab.mod @@ -1,7 +1,8 @@ // Tests option block + stack_solve_algo = 3 + solve_algo = 1 // Must be launched after fs2000_simk.mod -@#define block_bytecode = 1 +@#define block = 1 +@#define bytecode = 0 @#define solve_algo = 1 @#define stack_solve_algo = 3 @#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_block_bytecode.mod b/tests/block_bytecode/fs2000_block_bytecode.mod new file mode 100644 index 000000000..8a76fda45 --- /dev/null +++ b/tests/block_bytecode/fs2000_block_bytecode.mod @@ -0,0 +1,8 @@ +// Tests option block+bytecode +// Must be launched after fs2000_simk.mod + +@#define bytecode = 1 +@#define block = 1 +@#define solve_algo = 5 +@#define stack_solve_algo = 5 +@#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_bytecode.mod b/tests/block_bytecode/fs2000_bytecode.mod index 880d715e5..7d19d2462 100644 --- a/tests/block_bytecode/fs2000_bytecode.mod +++ b/tests/block_bytecode/fs2000_bytecode.mod @@ -1,7 +1,8 @@ -// Tests option block+bytecode +// Tests option bytecode without block // Must be launched after fs2000_simk.mod -@#define block_bytecode = 2 +@#define bytecode = 1 +@#define block = 0 @#define solve_algo = 5 @#define stack_solve_algo = 5 @#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_common.mod b/tests/block_bytecode/fs2000_common.mod index f7ba0b78e..96a33bfba 100644 --- a/tests/block_bytecode/fs2000_common.mod +++ b/tests/block_bytecode/fs2000_common.mod @@ -11,13 +11,17 @@ rho = 0.7; psi = 0.787; del = 0.02; -@#if block_bytecode == 2 +@#if block && bytecode model(block, bytecode); @#else -@# if block_bytecode == 1 +@# if block && !bytecode model(block); @# else +@# if !block && bytecode +model(bytecode); +@# else model; +@# endif @# endif @#endif @@ -64,7 +68,7 @@ end; options_.maxit_=10; steady(solve_algo = @{solve_algo}); -@#if block_bytecode > 0 +@#if block model_info; @#endif @@ -76,7 +80,7 @@ end; simul(periods=200, stack_solve_algo = @{stack_solve_algo}); -@#if block_bytecode > 0 +@#if block || bytecode if ~exist('fs2000_simk_results.mat','file'); error('fs2000_simk must be run first'); end; diff --git a/tests/block_bytecode/fs2000_gmres.mod b/tests/block_bytecode/fs2000_gmres.mod index e45caee15..eb6ccd398 100644 --- a/tests/block_bytecode/fs2000_gmres.mod +++ b/tests/block_bytecode/fs2000_gmres.mod @@ -1,7 +1,8 @@ // Tests option block + stack_solve_algo = 2 + solve_algo = 3 // Must be launched after fs2000_simk.mod -@#define block_bytecode = 1 +@#define block = 1 +@#define bytecode = 0 @#define solve_algo = 3 @#define stack_solve_algo = 2 @#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_lu.mod b/tests/block_bytecode/fs2000_lu.mod index 08e61cf0b..51847b08d 100644 --- a/tests/block_bytecode/fs2000_lu.mod +++ b/tests/block_bytecode/fs2000_lu.mod @@ -1,7 +1,8 @@ // Tests option block + stack_solve_algo = 1 + solve_algo = 2 // Must be launched after fs2000_simk.mod -@#define block_bytecode = 1 +@#define block = 1 +@#define bytecode = 0 @#define solve_algo = 2 @#define stack_solve_algo = 1 @#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_optpath.mod b/tests/block_bytecode/fs2000_optpath.mod index 5b691611f..819df927d 100644 --- a/tests/block_bytecode/fs2000_optpath.mod +++ b/tests/block_bytecode/fs2000_optpath.mod @@ -1,7 +1,8 @@ // Tests option block + stack_solve_algo = 4 + solve_algo = 4 // Must be launched after fs2000_simk.mod -@#define block_bytecode = 1 +@#define block = 1 +@#define bytecode = 0 @#define solve_algo = 4 @#define stack_solve_algo = 4 @#include "fs2000_common.mod" diff --git a/tests/block_bytecode/fs2000_simk.mod b/tests/block_bytecode/fs2000_simk.mod index 9f2aa7518..333d41a25 100644 --- a/tests/block_bytecode/fs2000_simk.mod +++ b/tests/block_bytecode/fs2000_simk.mod @@ -1,4 +1,5 @@ -@#define block_bytecode = 0 +@#define block = 0 +@#define bytecode = 0 @#define solve_algo = 2 @#define stack_solve_algo = 0 @#include "fs2000_common.mod"