diff options
author | simon | 2009-08-17 09:35:00 +0000 |
---|---|---|
committer | simon | 2009-08-17 09:35:00 +0000 |
commit | 839d659e6b1c25be20bd556aba6386eaceb1245f (patch) | |
tree | db14979c751b0fb88cb194bb78756dcf1347fc98 | |
parent | c413c4e2a17838912c95bedc34fdf258390f13b2 (diff) | |
download | scilab2c-839d659e6b1c25be20bd556aba6386eaceb1245f.tar.gz scilab2c-839d659e6b1c25be20bd556aba6386eaceb1245f.tar.bz2 scilab2c-839d659e6b1c25be20bd556aba6386eaceb1245f.zip |
Updated FA_REAL to handle the case where there is a %i which has not been handled by other functions ( as in OpColon)
added test for OpColon
updated INIT_FillSCI2LibCDirs
-rw-r--r-- | macros/FunctionAnnotation/FA_REAL.sci | 8 | ||||
-rw-r--r-- | macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci | 9 | ||||
-rw-r--r-- | macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci | 10 | ||||
-rw-r--r-- | tests/unit_tests/test_double_OpColon.sci | 41 |
4 files changed, 56 insertions, 12 deletions
diff --git a/macros/FunctionAnnotation/FA_REAL.sci b/macros/FunctionAnnotation/FA_REAL.sci index 2b030f7e..e55583d7 100644 --- a/macros/FunctionAnnotation/FA_REAL.sci +++ b/macros/FunctionAnnotation/FA_REAL.sci @@ -40,7 +40,11 @@ if (SCI2Cisnum(in1)) else
opout = string(outnum);
end
-else
- opout = in2+"0real"+FA_TP_REAL(in2)+"0"+"("+in1+")";
+else + if (in1 == "%i") + opout = " 0 "; + else
+ opout = in2+"0real"+FA_TP_REAL(in2)+"0"+"("+in1+")"; + end
end
endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci b/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci index 238bfc20..b1f8f982 100644 --- a/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci +++ b/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci @@ -1,5 +1,5 @@ -function opout = FA_SZ_FROM_VAL(in1) -// function opout = FA_SZ_FROM_VAL(in1)
+function opout = FA_SZ_FROM_VAL(in1,in2) +// function opout = FA_SZ_FROM_VAL(in1,in2)
// ----------------------------------------------------------------- // Return a size according to the floored value of the first argument
//
@@ -11,7 +11,7 @@ function opout = FA_SZ_FROM_VAL(in1) //
// ----------------------------------------------------------------- -SCI2CNInArgCheck(argn(2),1,1); +SCI2CNInArgCheck(argn(2),2,2); if (SCI2Cisnum(in1)) @@ -33,5 +33,4 @@ else end - -endfunction +endfunction: diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci index 0aac9f18..3648265d 100644 --- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -493,8 +493,8 @@ PrintStringInfo('NOUT= 1',ClassFileName,'file','y'); //Was FA_TP_USER //Cause some trouble if user specify some precision and if input(and also output) is complex. PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y'); -PrintStringInfo('OUT(1).SZ(1)= FA_SZ_FROM_VAL(IN(1).VAL)',ClassFileName,'file','y'); -PrintStringInfo('OUT(1).SZ(2)= FA_SZ_FROM_VAL(IN(2).VAL)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(1)= FA_SZ_FROM_VAL(IN(1).VAL,IN(1).TP)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= FA_SZ_FROM_VAL(IN(2).VAL,IN(2).TP)',ClassFileName,'file','y'); // --- Function List Class. --- ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); @@ -1545,12 +1545,12 @@ PrintStringInfo('NIN= 2',ClassFileName,'file','y'); PrintStringInfo('NOUT= 1',ClassFileName,'file','y'); PrintStringInfo('OUT(1).TP= FA_TP_MIN_REAL(IN(1).TP,IN(2).TP)',ClassFileName,'file','y'); PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y'); -PrintStringInfo('OUT(1).SZ(2)= FA_INT(FA_ADD(FA_SUB(FA_REAL(IN(2).VAL,IN(2).TP),FA_REAL(IN(1).VAL,IN(1).TP)),''1''))',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= FA_SZ_FROM_VAL(FA_ADD(FA_SUB(FA_REAL(IN(2).VAL,IN(2).TP),FA_REAL(IN(1).VAL,IN(1).TP)),''1''),FA_TP_REAL(IN(2).TP))',ClassFileName,'file','y'); PrintStringInfo('NIN= 3',ClassFileName,'file','y'); PrintStringInfo('NOUT= 1',ClassFileName,'file','y'); PrintStringInfo('OUT(1).TP= FA_TP_MIN_REAL(IN(1).TP,FA_TP_MIN_REAL(IN(2).TP,IN(3).TP))',ClassFileName,'file','y'); PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y'); -PrintStringInfo('OUT(1).SZ(2)= FA_INT(FA_ADD(FA_DIV(FA_SUB(FA_REAL(IN(3).VAL,IN(3).TP),FA_REAL(IN(1).VAL, IN(3).TP)),FA_REAL(IN(2).VAL,IN(2).TP)),''1''))',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= FA_SZ_FROM_VAL(FA_ADD(FA_DIV(FA_SUB(FA_REAL(IN(3).VAL,IN(3).TP),FA_REAL(IN(1).VAL, IN(1).TP)),FA_REAL(IN(2).VAL,IN(2).TP)),''1''),FA_TP_REAL(IN(3).TP))',ClassFileName,'file','y'); // --- Function List Class. --- ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); @@ -1625,7 +1625,7 @@ PrintStringInfo('z0d0z0'+ArgSeparator+'d2',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- -FunctionName = 'OpColon'; +FunctionName = 'OpColon'; // AS : done PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y'); INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); diff --git a/tests/unit_tests/test_double_OpColon.sci b/tests/unit_tests/test_double_OpColon.sci new file mode 100644 index 00000000..a7fbe196 --- /dev/null +++ b/tests/unit_tests/test_double_OpColon.sci @@ -0,0 +1,41 @@ +function test_double_OpColon() + + +// A = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12]; +// B = A * %i ; +d = %i ; +a = %pi ; +b = %e ; +c = [7 8 5 ]; +disp(zeros ( a , %e )); + +disp(zeros ( %pi , %e)); +disp(zeros(c)); +disp(zeros ([4 5 6 ; 4 5 6]) ); + + disp(0:1:3); + disp(1:1); + disp(4+53*%i:0); +// + + disp(2:5); + disp(4+3*%i:8+%i); +// + + disp(1:5:1); + disp(%i:%i+1:2); +// + + disp(2:7:5); + disp(4+3*%i:4:8+%i); +//a =4 + 53 *%i : 0 ; +endfunction +//OUT(1).SZ(2)= FA_INT( +// FA_ADD( +// FA_DIV( +// FA_SUB(FA_REAL(IN(3).VAL,IN(3).TP),FA_REAL(IN(1).VAL, IN(3).TP)) +// ,FA_REAL(IN(2).VAL,IN(2).TP) +// ) +// ,''1'' +// ) +// ) |