summaryrefslogtreecommitdiff
path: root/tests/unit_tests/test100_recursivefunctions
diff options
context:
space:
mode:
authorSiddhesh Wani2015-05-25 14:46:31 +0530
committerSiddhesh Wani2015-05-25 14:46:31 +0530
commitdb464f35f5a10b58d9ed1085e0b462689adee583 (patch)
treede5cdbc71a54765d9fec33414630ae2c8904c9b8 /tests/unit_tests/test100_recursivefunctions
downloadScilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.gz
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.bz2
Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.zip
Original Version
Diffstat (limited to 'tests/unit_tests/test100_recursivefunctions')
-rw-r--r--tests/unit_tests/test100_recursivefunctions/launchConversion.sci5
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci17
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci23
-rw-r--r--tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci57
4 files changed, 102 insertions, 0 deletions
diff --git a/tests/unit_tests/test100_recursivefunctions/launchConversion.sci b/tests/unit_tests/test100_recursivefunctions/launchConversion.sci
new file mode 100644
index 0000000..41be0f0
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/launchConversion.sci
@@ -0,0 +1,5 @@
+lines(0)
+clear all
+tmpPWD = pwd;
+
+scilab2c(pwd()+"/scilabcode/mainfunction.sci", pwd(), pwd()+"/scilabcode/");
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci
new file mode 100644
index 0000000..d3ee346
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/IterativePower.sci
@@ -0,0 +1,17 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+//SCI2C: OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function outiter = IterativePower(in,pwrfct)
+
+outiter = ones(in);
+
+for cnt = 1:pwrfct
+ mytmp = outiter .* in;
+ outiter = mytmp;
+end
+
+endfunction
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci
new file mode 100644
index 0000000..87430bb
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/RecursivePower.sci
@@ -0,0 +1,23 @@
+//SCI2C: NIN= 2
+//SCI2C: NOUT= 1
+//SCI2C: OUT(1).TP= IN(1).TP
+//SCI2C: OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+//SCI2C: OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+//SCI2C: DEFAULT_PRECISION= FLOAT
+
+function outrec = RecursivePower(in,pwrfct)
+
+
+if (pwrfct == 0)
+ outrec = ones(in);
+end
+
+if (pwrfct == 1)
+ outrec = in;
+end
+
+if (pwrfct > 1)
+ outrec = in .* RecursivePower(in,pwrfct-1);
+end
+
+endfunction
diff --git a/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci b/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci
new file mode 100644
index 0000000..d1dd1db
--- /dev/null
+++ b/tests/unit_tests/test100_recursivefunctions/scilabcode/mainfunction.sci
@@ -0,0 +1,57 @@
+//SCI2C: DEFAULT_PRECISION= FLOAT
+function mainfunction()
+
+// ---------------------------------------
+// --- Initialization of the operands. ---
+// ---------------------------------------
+powerfactor = 3;
+disp('Power Factor: ');
+disp(powerfactor)
+
+s1 = 2;
+disp('Input Scalar Value');
+disp(s1)
+
+V1 = 1:3;
+V2 = 1:2;
+V1tr = V1';
+
+M1 = V1tr * V2;
+disp('Input Matrix Value');
+disp(M1)
+
+// -----------------------
+// --- Compute powers. ---
+// -----------------------
+// --- Iterative/Scalar. ---
+outs1It = IterativePower(s1,powerfactor);
+disp('Output Scalar Value Iterative');
+disp(outs1It);
+
+// --- Iterative/Matrix. ---
+outM1It = IterativePower(M1,powerfactor);
+disp('Output Matrix Iterative');
+disp(outM1It);
+
+// --- Recursive/Scalar. ---
+outs1Re = RecursivePower(s1,powerfactor);
+disp('Output Scalar Value Recursive');
+disp(outs1Re);
+
+// --- Recursive/Matrix. ---
+outM1Re = RecursivePower(M1,powerfactor);
+disp('Output Matrix Recursive');
+disp(outM1Re);
+
+//~ // --- Solution/Scalar. ---
+//~ outs1So = s1.^powerfactor;
+//~ disp('Output Scalar Value Solution');
+//~ disp(outs1So);
+
+//~ // --- Solution/Matrix. ---
+//~ outM1So = M1.^powerfactor;
+//~ disp('Output Matrix Value Solution');
+//~ disp(outM1So);
+
+endfunction
+