summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornutricato2008-06-04 11:37:50 +0000
committernutricato2008-06-04 11:37:50 +0000
commitdacf026d82b34006c4fa2adfa8cb3a4c74bccfda (patch)
treeae065d12537792c8da8b6c62e370a2797628b79c
parent9436c9861877e0c9704bdc50f7c9f81bd043b8c7 (diff)
downloadscilab2c-dacf026d82b34006c4fa2adfa8cb3a4c74bccfda.tar.gz
scilab2c-dacf026d82b34006c4fa2adfa8cb3a4c74bccfda.tar.bz2
scilab2c-dacf026d82b34006c4fa2adfa8cb3a4c74bccfda.zip
-rw-r--r--src/Scilab2C/HowToInstallAndUseSCI2C.txt27
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/Makefile139
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.c320
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.h44
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/mytest.exebin0 -> 77288 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CInputParameters.sce87
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/ASTStack.datbin0 -> 388 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FileInfo.datbin0 -> 46324 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/Converted.datbin0 -> 64 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0OpEquald0.datbin0 -> 2052 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpColond2.datbin0 -> 2648 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpPlusd0.datbin0 -> 2956 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0onesd2.datbin0 -> 2536 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0dispd0.datbin0 -> 2056 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpApexd2.datbin0 -> 2184 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpEquald2.datbin0 -> 2068 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2cosd2.datbin0 -> 2144 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpDotHatd2.datbin0 -> 2880 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpStard2.datbin0 -> 2840 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpDotStard2.datbin0 -> 2932 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpMinusd2.datbin0 -> 2876 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpPlusd2.datbin0 -> 3028 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpStard2.datbin0 -> 2852 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2dispd0.datbin0 -> 2076 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sind2.datbin0 -> 2168 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sqrtd2.datbin0 -> 2208 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/main.datbin0 -> 1860 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/return.datbin0 -> 1004 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/SCI2CAvailableC.datbin0 -> 72968 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/ToBeConverted.datbin0 -> 360 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/USER2CAvailableC.datbin0 -> 48 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/GBLVAR.datbin0 -> 40 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CGeneralReport.txt193
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Abs.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Atan.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Cepstrum.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Convol.acls21
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Disp.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Double.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/DoubleComplex.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFT.acls20
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFTShift.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Find.acls26
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Float.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FloatComplex.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Frmag.acls26
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Global.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IFFT.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IsEmpty.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Length.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Lev.acls24
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mclose.acls7
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Meanf.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mget.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mopen.acls39
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mput.acls7
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mseek.acls6
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpApex.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpBackSlash.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpCc.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpColon.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotHat.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotStar.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpEqual.acls13
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpExt.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpIns.acls4
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpLogEq.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpMinus.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpPlus.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpRc.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpStar.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Part.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Return.acls2
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sin.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Size.acls18
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Spec.acls13
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sqrt.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/StrSubSt.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Strindex.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sum.acls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Trace.acls5
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Zeros.acls15
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Cepstrum.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpApex.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpBackSlash.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpCc.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpColon.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotApex.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotBackSlash.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotHat.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotSlash.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotStar.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpEqual.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpExt.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpHat.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpIns.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogAnd.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogEq.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGe.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGt.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLe.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLt.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNe.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNot.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogOr.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpMinus.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpPlus.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpRc.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpStar.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Spec.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/abs.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acos.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acosh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asin.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asinh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atan.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atanh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ceil.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/conj.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/convol.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cos.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cosh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/det.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/disp.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/double.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/doublecomplex.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/exp.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/eye.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fft.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fftshift.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/find.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fix.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/float.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floatcomplex.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floor.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/frmag.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/global.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ifft.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/imag.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/int.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/inv.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isempty.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isnan.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/length.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/lev.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log10.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/max.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mclose.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mean.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/meanf.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mget.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/min.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mopen.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mput.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mseek.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ones.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/part.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/prod.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/rand.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/real.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/return.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/round.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sin.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sinh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/size.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sqrt.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/st_deviation.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/stdevf.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strindex.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strsubst.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sum.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tan.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tanh.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/trace.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variance.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variancef.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/zeros.ann1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Abs.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Atan.lcls12
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Cepstrum.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Convol.lcls44
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Disp.lcls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Double.lcls4
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/DoubleComplex.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFT.lcls32
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFTShift.lcls24
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Find.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Float.lcls4
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FloatComplex.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Frmag.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Global.lcls1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IFFT.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IsEmpty.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Length.lcls12
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Lev.lcls12
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mclose.lcls2
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Meanf.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mget.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mopen.lcls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mput.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mseek.lcls6
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpApex.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpBackSlash.lcls32
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpCc.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpColon.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotHat.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotStar.lcls40
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpEqual.lcls10
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpExt.lcls24
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpIns.lcls40
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpLogEq.lcls24
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpMinus.lcls40
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpPlus.lcls44
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpRc.lcls16
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpStar.lcls40
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Part.lcls4
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Return.lcls1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sin.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Size.lcls24
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Spec.lcls20
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sqrt.lcls12
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/StrSubSt.lcls1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Strindex.lcls4
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sum.lcls32
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Trace.lcls8
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Zeros.lcls18
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Cepstrum.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpApex.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpBackSlash.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpCc.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpColon.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotApex.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotBackSlash.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotHat.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotSlash.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotStar.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpEqual.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpExt.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpHat.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpIns.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogAnd.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogEq.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGe.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGt.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLe.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLt.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNe.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNot.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogOr.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpMinus.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpPlus.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpRc.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpStar.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Spec.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/abs.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acos.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acosh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asin.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asinh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atan.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atanh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ceil.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/conj.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/convol.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cos.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cosh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/det.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/disp.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/double.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/doublecomplex.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/exp.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/eye.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fft.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fftshift.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/find.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fix.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/float.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floatcomplex.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floor.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/frmag.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/global.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ifft.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/imag.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/int.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/inv.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isempty.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isnan.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/length.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/lev.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log10.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/max.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mclose.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mean.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/meanf.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mget.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/min.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mopen.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mput.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mseek.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ones.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/part.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/prod.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/rand.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/real.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/return.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/round.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sin.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sinh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/size.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sqrt.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/st_deviation.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/stdevf.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strindex.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strsubst.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sum.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tan.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tanh.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/trace.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variance.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variancef.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/zeros.lst1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SharedInfo.datbin0 -> 10920 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.h44
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.rpt510
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_LOCVAR.datbin0 -> 2512 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_TMPVAR.datbin0 -> 5524 bytes
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_declarations.c99
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_globaldeclarations.c1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_initvars.c1
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1.c167
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1free.c12
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass2.c298
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction.ast272
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction_copy.sci30
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci30
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/%program_p.sci202
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST2Ccode.sci224
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_CheckCommonInOutArgs.sci62
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLastFunc.sci65
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLineLength.sci21
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_CheckPrecSpecifier.sci53
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_DisplayStack.sci33
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ExtractNameAndScope.sci78
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_GetASTFile.sci49
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_GetFuncallPrm.sci41
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_GetPrecAndLhsArg.sci65
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEOL.sci45
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndGenFun.sci315
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndProgram.sci51
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndWhile.sci54
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_HandleHeader.sci182
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ParseEqualStruct.sci105
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ParseFuncallStruct.sci77
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ParseIfExprStruct.sci74
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ParseOperStruct.sci64
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_PopSCI2CStack.sci29
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_PushSCI2CStack.sci26
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ReadASTHeader.sci76
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/AST_ReadEqualRhsNames.sci48
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/GenOutArgNames.sci49
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/Operator2FunName.sci101
-rw-r--r--src/Scilab2C/Scilab2C/ASTManagement/SciFile2ASTFile.sci23
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_FinalizeCode.sci56
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_ForExpression.sci88
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_Funcall.sci220
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_GenDeclarations.sci92
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateFunName.sci38
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateLaunchScript.sci75
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateMakefile.sci77
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_IfElseBlocks.sci50
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_IfExpression.sci55
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_IndentBlanks.sci21
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_InitHeader.sci48
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_MemAllocOutTempVars.sci32
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_SCI2CHeader.sci24
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_Type.sci31
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/C_WhileExpression.sci43
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/GenCFunDatFiles.sci42
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/GetClsFileName.sci63
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/GetSymbolDimension.sci42
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/GetWhileCondVariable.sci24
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/JoinDeclarAndCcode.sci123
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp230
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc126
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/Sci2AnnotationFile.sci33
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c41
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c12
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c7
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c82
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c211
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c303
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c76
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c115
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c228
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c90
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c11
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c11
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c281
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c267
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c195
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c398
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c134
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c2
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c13
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c21
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c30
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c45
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c62
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c40
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c194
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c144
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c143
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c40
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c61
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c58
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c31
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c41
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h13
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h36
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h30
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h39
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h46
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h33
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h14
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h59
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h60
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h35
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h48
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h33
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h280
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h16
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h87
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabss.c30
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h67
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h80
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h69
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h95
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in141
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h17
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h51
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h79
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabss.c31
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h54
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h55
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h70
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h71
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt2
-rw-r--r--src/Scilab2C/Scilab2C/ErrorMessages/EM_NanSize.sci82
-rw-r--r--src/Scilab2C/Scilab2C/ErrorMessages/EM_UnknownStep.sci70
-rw-r--r--src/Scilab2C/Scilab2C/ErrorMessages/EM_ZeroSize.sci27
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_ADD.sci29
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_DIV.sci27
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetDefaultPrecision.sci43
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetFunAnn.sci129
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetOutArgInfo.sci104
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_INT.sci25
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MAX.sci35
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MUL.sci34
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SUB.sci33
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci10
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci10
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPAPEX.sci24
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci37
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPCC.sci38
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci13
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci14
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTHAT.sci43
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci15
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci22
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPHAT.sci12
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGAND.sci15
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGEQ.sci13
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGE.sci14
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGT.sci14
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLE.sci16
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLT.sci16
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNE.sci16
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNOT.sci16
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGOR.sci14
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPMINUS.sci17
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUS.sci50
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUSA.sci28
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPRC.sci32
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPSTAR.sci30
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL1.sci29
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL2.sci29
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_C.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_COMPLEX.sci26
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_D.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_I.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_MAX.sci31
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_REAL.sci26
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_S.sci20
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_USER.sci23
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_Z.sci24
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_ExistCFunction.sci73
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_ExtractFuncList.sci37
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci34
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_InOutArgs2CFunNames.sci37
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_UpdateConverted.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_UpdateToBeConv.sci55
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/Array2String.sci26
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/ConvertPathMat2C.sci48
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/File2StringArray.sci27
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/FunName2SciFileName.sci37
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/IsNanSize.sci22
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/KeyStr2FileStrPos.sci58
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/PrintStepInfo.sci54
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/PrintStringInfo.sci45
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/ReadStringCard.sci39
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CCreateDir.sci21
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CFindFile.sci28
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CNInArgCheck.sci16
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileRead.sci19
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileWrite.sci19
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CTemplate.sci18
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Ccopyfile.sci29
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cerror.sci17
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CerrorFile.sci17
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cfileexist.sci26
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cflipud.sci19
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cisnum.sci19
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cmdelete.sci19
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstring.sci16
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmp.sci16
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmps1size.sci17
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/SizeInByte.sci24
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/dispina.sci31
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/filenamefprintf.sci27
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/float.sci15
-rw-r--r--src/Scilab2C/Scilab2C/GeneralFunctions/squeezestrings.sci19
-rw-r--r--src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci85
-rw-r--r--src/Scilab2C/Scilab2C/LaunchRunSCI2C.sci36
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_AnalyzeScope.sci60
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_Del.sci27
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_FindPos.sci32
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_Get.sci48
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_GetInArgInfo.sci105
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_GetSymbolInfo.sci53
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_InsForCntVars.sci116
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_InsOutArg.sci114
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_Load.sci20
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_MatchSymbol.sci51
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_Save.sci33
-rw-r--r--src/Scilab2C/Scilab2C/SymbolTable/ST_Set.sci35
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_CreateDirs.sci48
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci3094
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenAnnFLFunctions.sci18
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenFileInfo.sci74
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenLibraries.sci27
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenSharedInfo.sci71
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci41
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_RemoveDirs.sci42
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2C.sci77
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2CLoader.sce72
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_SharedInfoEqual.sci21
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/ManageNextConversion.sci47
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.bkp87
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.sce87
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/UpdateSCI2CInfo.sci129
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/doublecomplex.sci16
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/floatcomplex.sci16
-rw-r--r--src/Scilab2C/Scilab2C/full_reset.sce16
-rw-r--r--src/Scilab2C/Scilab2C/runsci2c.sci103
-rw-r--r--src/Scilab2C/Scilab2C/runscicode.sci64
-rw-r--r--src/Scilab2C/readme.txt6
626 files changed, 21496 insertions, 0 deletions
diff --git a/src/Scilab2C/HowToInstallAndUseSCI2C.txt b/src/Scilab2C/HowToInstallAndUseSCI2C.txt
new file mode 100644
index 00000000..cada1f3f
--- /dev/null
+++ b/src/Scilab2C/HowToInstallAndUseSCI2C.txt
@@ -0,0 +1,27 @@
+----------------------------
+--- HOW TO INSTALL SCI2C ---
+----------------------------
+1. Install scilab-4.1.2.exe
+
+2. Configure the following two parameters in Scilab2C/LaunchRunSCI2C.sci:
+ SCI2CDirectory
+ SCI2CInputPrmFileName
+
+3. Configure the following parameters in SCI2CTests\test999_WorkingDir\SCI2CInputParameters.sce
+ UserSciCodeMainDir
+ CCompilerPathStyle
+ Sci2CLibMainHeaderFName
+
+------------------------
+--- HOW TO USE SCI2C ---
+------------------------
+4. Edit mainfunction.sci according to the scilab algorithm to be converted into C
+
+5. Start SCI2C conversion typing the following command in the Scilab workspace:
+ mclose('all'); cd <path of "Scilab2C" directory>; exec LaunchRunSCI2C.sci
+
+6. Compile/Execute C code by using the makefile created in SCI2CTests\test999_WorkingDir\C_Code
+
+7. Compare the results with the Scilab execution by typing again
+ mclose('all'); cd <path of "Scilab2C" directory>; exec LaunchRunSCI2C.sci
+ (answer n when the SCI2C attempts to convert again the scilab code)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/Makefile b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/Makefile
new file mode 100644
index 00000000..180cd79a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/Makefile
@@ -0,0 +1,139 @@
+# SCI2C Makefile
+# Copyright 2007 Raffaele Nutricato
+# raffaele.nutricato@tiscali.it
+# -----------------------
+# --- USER PARAMETERS ---
+# -----------------------
+# --- DIRECTORIES AND FILES ---
+OBJDIR = /cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2cobj
+CSRCDIR = /cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2ccode
+HSRCDIR = /cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2cincludes
+ISRCDIR = /cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2cinterfaces
+SCI2CDIR = .
+EXEFILENAME = mytest.exe
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+SWSRCS = \
+ $(CSRCDIR)/doubleComplex.c \
+ $(CSRCDIR)/floatComplex.c \
+ $(CSRCDIR)/RealToComplex.c \
+ $(CSRCDIR)/conj.c \
+ $(CSRCDIR)/disp.c \
+ $(CSRCDIR)/ones.c \
+ $(CSRCDIR)/zeros.c \
+ $(CSRCDIR)/OpApex.c \
+ $(CSRCDIR)/OpColon.c \
+ $(CSRCDIR)/OpDotStar.c \
+ $(CSRCDIR)/OpDotHat.c \
+ $(CSRCDIR)/OpDotSlash.c \
+ $(CSRCDIR)/OpEqual.c \
+ $(CSRCDIR)/OpPlus.c \
+ $(CSRCDIR)/OpMinus.c \
+ $(CSRCDIR)/OpStar.c \
+ $(CSRCDIR)/OpIns.c \
+ $(CSRCDIR)/OpExt.c \
+ $(CSRCDIR)/OpRc.c \
+ $(CSRCDIR)/OpCc.c \
+ $(CSRCDIR)/cos.c \
+ $(CSRCDIR)/cosh.c \
+ $(CSRCDIR)/sin.c \
+ $(CSRCDIR)/sinh.c \
+ $(CSRCDIR)/FileManagement.c \
+ $(CSRCDIR)/OpLogLt.c \
+ $(CSRCDIR)/OpLogGt.c \
+ $(CSRCDIR)/OpLogGe.c \
+ $(CSRCDIR)/OpLogLe.c \
+ $(CSRCDIR)/OpLogEq.c \
+ $(CSRCDIR)/OpLogOr.c \
+ $(CSRCDIR)/OpLogAnd.c \
+ $(CSRCDIR)/Find.c \
+ $(CSRCDIR)/ConvertPrecision.c \
+ $(CSRCDIR)/SCI2Cfft.c \
+ $(CSRCDIR)/SCI2Cconvol.c \
+ $(CSRCDIR)/ssqrts.c \
+ $(CSRCDIR)/dsqrts.c \
+ $(CSRCDIR)/csqrts.c \
+ $(CSRCDIR)/zsqrts.c \
+ $(CSRCDIR)/ssqrta.c \
+ $(CSRCDIR)/dsqrta.c \
+ $(CSRCDIR)/csqrta.c \
+ $(CSRCDIR)/zsqrta.c \
+ $(CSRCDIR)/sabss.c \
+ $(CSRCDIR)/dabss.c \
+ $(CSRCDIR)/cabss.c \
+ $(CSRCDIR)/zabss.c \
+ $(CSRCDIR)/sabsa.c \
+ $(CSRCDIR)/dabsa.c \
+ $(CSRCDIR)/cabsa.c \
+ $(CSRCDIR)/zabsa.c \
+ $(CSRCDIR)/sexps.c \
+ $(CSRCDIR)/dexps.c \
+ $(CSRCDIR)/cexps.c \
+ $(CSRCDIR)/zexps.c \
+ $(CSRCDIR)/sexpa.c \
+ $(CSRCDIR)/dexpa.c \
+ $(CSRCDIR)/cexpa.c \
+ $(CSRCDIR)/zexpa.c
+
+SWOBJS = $(SWSRCS:.c=.o)
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(SWOBJS)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(SWOBJS) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(SWOBJS)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+# how to compile object code .o from C source files .c (general rule)
+# space between -o and filename for SUN make
+.c.o:
+ $(CC) $(CFLAGS) -c -o $(@) $<
+
+# Make object code from source
+swobjs: $(SWOBJS)
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.c
new file mode 100644
index 00000000..dae93be1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.c
@@ -0,0 +1,320 @@
+/*
+** ************************************************
+** hArtes/POLIBA SCILAB2C
+** Contact: raffaele.nutricato@tiscali.it
+** ************************************************
+*/
+
+
+/*
+** -----------------
+** --- Includes. ---
+** -----------------
+*/
+#include "main.h"
+/*
+** ---------------------
+** --- End Includes. ---
+** ---------------------
+*/
+
+
+
+/*
+** -------------------------------------
+** --- Global Variables Declaration. ---
+** -------------------------------------
+*/
+
+
+/*
+** -----------------------------------------
+** --- End Global Variables Declaration. ---
+** -----------------------------------------
+*/
+
+/*
+ SCI2C: ------------------------------------------------------------------
+ SCI2C: //SCI2C: DEFAULT_PRECISION= DOUBLE
+ SCI2C:
+ SCI2C: function mainfunction()
+ SCI2C: ------------------------------------------------------------------
+*/
+SCI2Cint main()
+{
+/*
+** -----------------------------
+** --- Variable Declaration. ---
+** -----------------------------
+*/
+
+ double a = 1;
+
+ double b = 2;
+
+ double c = 0;
+
+ double ans1;
+
+ double __temp1[1][3];
+ SCI2Cint ____temp1Size[2] = {1,3};
+
+ double __temp2[3][1];
+ SCI2Cint ____temp2Size[2] = {3,1};
+
+ double __temp3[1][6];
+ SCI2Cint ____temp3Size[2] = {1,6};
+
+ double x[3][6];
+ SCI2Cint __xSize[2] = {3,6};
+
+ double __temp4[3][6];
+ SCI2Cint ____temp4Size[2] = {3,6};
+
+ double __temp5[3][6];
+ SCI2Cint ____temp5Size[2] = {3,6};
+
+ double __temp6[3][6];
+ SCI2Cint ____temp6Size[2] = {3,6};
+
+ double __temp7[3][6];
+ SCI2Cint ____temp7Size[2] = {3,6};
+
+ double y[3][6];
+ SCI2Cint __ySize[2] = {3,6};
+
+ double ans2;
+
+ double __temp8[3][6];
+ SCI2Cint ____temp8Size[2] = {3,6};
+
+ double __temp9[3][6];
+ SCI2Cint ____temp9Size[2] = {3,6};
+
+ double ans3;
+
+ double __temp10[3][6];
+ SCI2Cint ____temp10Size[2] = {3,6};
+
+ double __temp11[3][6];
+ SCI2Cint ____temp11Size[2] = {3,6};
+
+ double __temp12[3][6];
+ SCI2Cint ____temp12Size[2] = {3,6};
+
+ double __temp13[3][6];
+ SCI2Cint ____temp13Size[2] = {3,6};
+
+ double __temp14[3][6];
+ SCI2Cint ____temp14Size[2] = {3,6};
+
+ double __temp15[3][6];
+ SCI2Cint ____temp15Size[2] = {3,6};
+
+ double __temp16[3][6];
+ SCI2Cint ____temp16Size[2] = {3,6};
+
+ double __temp17[3][6];
+ SCI2Cint ____temp17Size[2] = {3,6};
+
+ double __temp18[3][6];
+ SCI2Cint ____temp18Size[2] = {3,6};
+
+ double __temp19[3][6];
+ SCI2Cint ____temp19Size[2] = {3,6};
+
+ double __temp20[3][6];
+ SCI2Cint ____temp20Size[2] = {3,6};
+
+ double __temp21[3][6];
+ SCI2Cint ____temp21Size[2] = {3,6};
+
+ double w[3][6];
+ SCI2Cint __wSize[2] = {3,6};
+
+ double __temp22[3][6];
+ SCI2Cint ____temp22Size[2] = {3,6};
+
+ double __temp23[3][6];
+ SCI2Cint ____temp23Size[2] = {3,6};
+
+ double __temp24[3][6];
+ SCI2Cint ____temp24Size[2] = {3,6};
+
+ double distxw[3][6];
+ SCI2Cint __distxwSize[2] = {3,6};
+
+ double ans4;
+
+
+
+
+/*
+** ---------------------------------
+** --- End Variable Declaration. ---
+** ---------------------------------
+*/
+/*
+** ---------------
+** --- C code. ---
+** ---------------
+*/
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Simple Scalar Addition ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: a = 1;
+ SCI2C: ##################################################################*/
+ a = d0OpEquald0(1);
+
+ /*SCI2C: ##################################################################
+ SCI2C: b = 2;
+ SCI2C: ##################################################################*/
+ b = d0OpEquald0(2);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = 0;
+ SCI2C: ##################################################################*/
+ c = d0OpEquald0(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = a + b;
+ SCI2C: ##################################################################*/
+ c = d0d0OpPlusd0(a,b);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(c);
+ SCI2C: ##################################################################*/
+ ans1 = d0dispd0(c);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Trigonometric Identity ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: x = (1:3)' * (4:9);
+ SCI2C: ##################################################################*/
+ d0d0OpColond2(1,3,(double* )__temp1);
+ d2OpApexd2((double* )__temp1, ____temp1Size,(double* )__temp2);
+ d0d0OpColond2(4,9,(double* )__temp3);
+ d2d2OpStard2((double* )__temp2, ____temp2Size,(double* )__temp3, ____temp3Size,(double* )x);
+
+ /*SCI2C: ##################################################################
+ SCI2C: y = (sin(x).^2) + (cos(x).^2);
+ SCI2C: ##################################################################*/
+ d2sind2((double* )x, __xSize,(double* )__temp4);
+ d2d0OpDotHatd2((double* )__temp4, ____temp4Size,2,(double* )__temp5);
+ d2cosd2((double* )x, __xSize,(double* )__temp6);
+ d2d0OpDotHatd2((double* )__temp6, ____temp6Size,2,(double* )__temp7);
+ d2d2OpPlusd2((double* )__temp5, ____temp5Size,(double* )__temp7, ____temp7Size,(double* )y);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(x);
+ SCI2C: ##################################################################*/
+ ans2 = d2dispd0((double* )x, __xSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(y-ones(3,6));
+ SCI2C: ##################################################################*/
+ d0d0onesd2(3,6,(double* )__temp8);
+ d2d2OpMinusd2((double* )y, __ySize,(double* )__temp8, ____temp8Size,(double* )__temp9);
+ ans3 = d2dispd0((double* )__temp9, ____temp9Size);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Computation of Distance ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // generate a vector w
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+ SCI2C: ##################################################################*/
+ d2d0OpStard2((double* )x, __xSize,3,(double* )__temp10);
+ d2cosd2((double* )__temp10, ____temp10Size,(double* )__temp11);
+ d2d0OpStard2((double* )__temp11, ____temp11Size,2,(double* )__temp12);
+ d2sind2((double* )__temp12, ____temp12Size,(double* )__temp13);
+ d2d2OpDotStard2((double* )__temp13, ____temp13Size,(double* )x, __xSize,(double* )__temp14);
+ d0d0onesd2(3,6,(double* )__temp15);
+ d2d0OpStard2((double* )y, __ySize,2,(double* )__temp16);
+ d2sind2((double* )__temp16, ____temp16Size,(double* )__temp17);
+ d2d2OpMinusd2((double* )x, __xSize,(double* )__temp17, ____temp17Size,(double* )__temp18);
+ d2cosd2((double* )__temp18, ____temp18Size,(double* )__temp19);
+ d2d2OpDotStard2((double* )__temp15, ____temp15Size,(double* )__temp19, ____temp19Size,(double* )__temp20);
+ d2d2OpPlusd2((double* )__temp14, ____temp14Size,(double* )__temp20, ____temp20Size,(double* )__temp21);
+ d2cosd2((double* )__temp21, ____temp21Size,(double* )w);
+
+ /*SCI2C: ##################################################################
+ SCI2C: distxw = sqrt(x.^2 + w.^2);
+ SCI2C: ##################################################################*/
+ d2d0OpDotHatd2((double* )x, __xSize,2,(double* )__temp22);
+ d2d0OpDotHatd2((double* )w, __wSize,2,(double* )__temp23);
+ d2d2OpPlusd2((double* )__temp22, ____temp22Size,(double* )__temp23, ____temp23Size,(double* )__temp24);
+ d2sqrtd2((double* )__temp24, ____temp24Size,(double* )distxw);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(distxw);
+ SCI2C: ##################################################################*/
+ ans4 = d2dispd0((double* )distxw, __distxwSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: endfunction
+ SCI2C: ##################################################################*/
+
+ /*
+ ** ---------------------
+ ** --- Free Section. ---
+ ** ---------------------
+ */
+ /*
+ ** -------------------------
+ ** --- End Free Section. ---
+ ** -------------------------
+ */
+
+ return(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+}
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.h b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.h
new file mode 100644
index 00000000..ba9fff86
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/main.h
@@ -0,0 +1,44 @@
+/*
+** ************************************************
+** hArtes/POLIBA SCILAB2C
+** Contact: raffaele.nutricato@tiscali.it
+** ************************************************
+*/
+
+
+/*
+** -----------------------
+** --- SCI2C Includes. ---
+** -----------------------
+*/
+#include "/cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2cincludes/sci2clib.h"
+/*
+** ---------------------------
+** --- End SCI2C Includes. ---
+** ---------------------------
+*/
+
+
+/*
+** -------------------
+** --- Prototypes. ---
+** -------------------
+*/
+SCI2Cint main();
+/*
+** -----------------------
+** --- End Prototypes. ---
+** -----------------------
+*/
+
+
+/*
+** ------------------------
+** --- USER2C Includes. ---
+** ------------------------
+*/
+/*
+** ----------------------------
+** --- End USER2C Includes. ---
+** ----------------------------
+*/
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/mytest.exe b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/mytest.exe
new file mode 100644
index 00000000..470d094a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/C_Code/mytest.exe
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CInputParameters.sce b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CInputParameters.sce
new file mode 100644
index 00000000..72ddbf8e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CInputParameters.sce
@@ -0,0 +1,87 @@
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+// === ===
+// === *************** ===
+// === USER PARAMETERS ===
+// === *************** ===
+// === ===
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------------------
+// --- Specify Paths of User Scilab code. ---
+// ------------------------------------------
+UserSciCodeMainDir = 'D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir';
+
+// --- Path + filename of the .sci main file of the code to be translated. ---
+// It is the entry point.
+UserScilabMainFile = fullfile(UserSciCodeMainDir,'scilabcode\mainfunction.sci');
+
+// --- List of the paths containing the .sci files written by the user. ---
+UserSciFilesPaths = ...
+ [...
+ fullfile(UserSciCodeMainDir,'scilabcode');...
+ ];
+
+// --------------------------
+// --- End Specify paths. ---
+// --------------------------
+
+
+// ----------------------------
+// --- Select the run mode. ---
+// ----------------------------
+//RunMode = 'GenLibraryStructure';
+//RunMode = 'Translate';
+RunMode = 'All';
+
+// --- Select one of the following options. ---
+
+// 'GenLibraryStructure';
+// Generates the library structure and exits. It is very
+// useful when the user wants to manually change the files stored in that structure
+// before running the translation. 'GenLibraryStructure' option forces SCI2C to remove
+// the already existing WorkingDir and OutCCCodeDir directories.
+
+// 'Translate';
+// Performs the translation without generating the library structure. It means that the library
+// structure must be already existing. This is useful when the user doesn't want to spend time
+// to generate again that structure or when he wants to force the SCI2C tool to access to
+// a manually-changed library structure. 'Translate' option forces SCI2C to don't remove
+// the already existing WorkingDir. Only OutCCCodeDir directory will be removed.
+
+// 'All';
+// Performs all the actions listed above.
+
+// --------------------------------
+// --- End Select the run mode. ---
+// --------------------------------
+
+
+// ----------------------------
+// --- Translation Options. ---
+// ----------------------------
+// --- Enable (1) / Disable (0) copy of Scilab code into C code. ---
+// If 1 the Scilab code will be copied into the C code in order to show
+// how each Scilab code line has been translated into C code.
+CopySciCodeIntoCCode = 1;
+
+// --- Select the path style for the C code. ---
+// It can be:
+// windows
+// unix
+// cygwin
+CCompilerPathStyle = 'cygwin';
+
+// --- Path + File name of the main SCI2C library header file.
+Sci2CLibMainHeaderFName = 'D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\Scilab2C\CFiles\sci2cincludes\sci2clib.h';
+// --------------------------------
+// --- End Translation Options. ---
+// --------------------------------
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/ASTStack.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/ASTStack.dat
new file mode 100644
index 00000000..dfc75379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/ASTStack.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FileInfo.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FileInfo.dat
new file mode 100644
index 00000000..def2c192
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FileInfo.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/Converted.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/Converted.dat
new file mode 100644
index 00000000..43f81610
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/Converted.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0OpEquald0.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0OpEquald0.dat
new file mode 100644
index 00000000..ba3d9c18
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0OpEquald0.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpColond2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpColond2.dat
new file mode 100644
index 00000000..950ad6e9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpColond2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpPlusd0.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpPlusd0.dat
new file mode 100644
index 00000000..8360a52d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0OpPlusd0.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0onesd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0onesd2.dat
new file mode 100644
index 00000000..a6db28dd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0d0onesd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0dispd0.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0dispd0.dat
new file mode 100644
index 00000000..5c1cbb87
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d0dispd0.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpApexd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpApexd2.dat
new file mode 100644
index 00000000..bdea5def
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpApexd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpEquald2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpEquald2.dat
new file mode 100644
index 00000000..684ef2a1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2OpEquald2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2cosd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2cosd2.dat
new file mode 100644
index 00000000..8b0fd805
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2cosd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpDotHatd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpDotHatd2.dat
new file mode 100644
index 00000000..7a5253fe
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpDotHatd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpStard2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpStard2.dat
new file mode 100644
index 00000000..e8564b01
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d0OpStard2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpDotStard2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpDotStard2.dat
new file mode 100644
index 00000000..14de9f52
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpDotStard2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpMinusd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpMinusd2.dat
new file mode 100644
index 00000000..e5ebae40
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpMinusd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpPlusd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpPlusd2.dat
new file mode 100644
index 00000000..b0ab85df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpPlusd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpStard2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpStard2.dat
new file mode 100644
index 00000000..ade31c9d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2d2OpStard2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2dispd0.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2dispd0.dat
new file mode 100644
index 00000000..1ce43cff
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2dispd0.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sind2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sind2.dat
new file mode 100644
index 00000000..2d6844f3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sind2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sqrtd2.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sqrtd2.dat
new file mode 100644
index 00000000..9cca7181
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/d2sqrtd2.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/main.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/main.dat
new file mode 100644
index 00000000..5c9bd05b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/main.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/return.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/return.dat
new file mode 100644
index 00000000..953c4985
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/FunInfoDatFiles/return.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/SCI2CAvailableC.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/SCI2CAvailableC.dat
new file mode 100644
index 00000000..925a35ca
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/SCI2CAvailableC.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/ToBeConverted.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/ToBeConverted.dat
new file mode 100644
index 00000000..907cddd0
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/ToBeConverted.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/USER2CAvailableC.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/USER2CAvailableC.dat
new file mode 100644
index 00000000..a375e11a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/FunctionList/USER2CAvailableC.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/GBLVAR.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/GBLVAR.dat
new file mode 100644
index 00000000..91ae39c6
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/GBLVAR.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CGeneralReport.txt b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CGeneralReport.txt
new file mode 100644
index 00000000..124e17e9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CGeneralReport.txt
@@ -0,0 +1,193 @@
+
+
+ ***************************
+ ==> SCI2C hArtes/POLIBA Tool!!!
+ ***************************
+
+
+
+ **************************************
+ ==> Initialize SCI2C and USER2C Libraries.
+ **************************************
+
+ Adding Class: Global.
+ Adding Function: global.
+ Adding Class: Float.
+ Adding Function: float.
+ Adding Class: Double.
+ Adding Function: double.
+ Adding Class: FloatComplex.
+ Adding Function: floatcomplex.
+ Adding Class: DoubleComplex.
+ Adding Function: doublecomplex.
+ Adding Class: Sin.
+ Adding Function: sin.
+ Adding Function: sinh.
+ Adding Function: asinh.
+ Adding Function: cos.
+ Adding Function: cosh.
+ Adding Function: tan.
+ Adding Function: tanh.
+ Adding Function: exp.
+ Adding Function: conj.
+ Adding Function: inv.
+ Adding Function: ceil.
+ Adding Function: fix.
+ Adding Function: floor.
+ Adding Function: round.
+ Adding Function: int.
+ Adding Function: OpLogNot.
+ Adding Class: Atan.
+ Adding Function: atan.
+ Adding Class: Sqrt.
+ Adding Function: asin.
+ Adding Function: acos.
+ Adding Function: acosh.
+ Adding Function: atanh.
+ Adding Function: sqrt.
+ Adding Function: log.
+ Adding Function: log10.
+ Adding Class: Zeros.
+ Adding Function: zeros.
+ Adding Function: ones.
+ Adding Function: eye.
+ Adding Function: rand.
+ Adding Class: Sum.
+ Adding Function: sum.
+ Adding Function: prod.
+ Adding Function: mean.
+ Adding Function: st_deviation.
+ Adding Function: variance.
+ Adding Function: max.
+ Adding Function: min.
+ Adding Class: Abs.
+ Adding Function: abs.
+ Adding Function: real.
+ Adding Function: imag.
+ Adding Class: OpDotStar.
+ Adding Function: OpDotStar.
+ Adding Function: OpDotSlash.
+ Adding Class: OpDotHat.
+ Adding Function: OpDotHat.
+ Adding Function: OpHat.
+ Adding Function: OpDotBackSlash.
+ Adding Function: OpLogLt.
+ Adding Function: OpLogLe.
+ Adding Function: OpLogGt.
+ Adding Function: OpLogGe.
+ Adding Function: OpLogAnd.
+ Adding Function: OpLogOr.
+ Adding Class: OpLogEq.
+ Adding Function: OpLogEq.
+ Adding Function: OpLogNe.
+ Adding Class: OpStar.
+ Adding Function: OpStar.
+ Adding Class: OpApex.
+ Adding Function: OpApex.
+ Adding Function: OpDotApex.
+ Adding Function: isnan.
+ Adding Class: OpPlus.
+ Adding Function: OpPlus.
+ Adding Class: OpMinus.
+ Adding Function: OpMinus.
+ Adding Class: OpRc.
+ Adding Function: OpRc.
+ Adding Class: OpCc.
+ Adding Function: OpCc.
+ Adding Class: Find.
+ Adding Function: find.
+ Adding Class: Length.
+ Adding Function: length.
+ Adding Class: Size.
+ Adding Function: size.
+ Adding Class: Return.
+ Adding Function: return.
+ Adding Class: OpColon.
+ Adding Function: OpColon.
+ Adding Class: IsEmpty.
+ Adding Function: isempty.
+ Adding Class: Trace.
+ Adding Function: trace.
+ Adding Function: det.
+ Adding Class: OpIns.
+ Adding Function: OpIns.
+ Adding Class: OpExt.
+ Adding Function: OpExt.
+ Adding Class: Disp.
+ Adding Function: disp.
+ Adding Class: OpEqual.
+ Adding Function: OpEqual.
+ Adding Class: Mopen.
+ Adding Function: mopen.
+ Adding Class: Mput.
+ Adding Function: mput.
+ Adding Class: Mget.
+ Adding Function: mget.
+ Adding Class: Mclose.
+ Adding Function: mclose.
+ Adding Class: Mseek.
+ Adding Function: mseek.
+ Adding Class: Convol.
+ Adding Function: convol.
+ Adding Class: IFFT.
+ Adding Function: ifft.
+ Adding Class: FFT.
+ Adding Function: fft.
+ Adding Class: FFTShift.
+ Adding Function: fftshift.
+ Adding Class: Meanf.
+ Adding Function: meanf.
+ Adding Function: variancef.
+ Adding Function: stdevf.
+ Adding Class: Frmag.
+ Adding Function: frmag.
+ Adding Class: Lev.
+ Adding Function: lev.
+ Adding Class: OpBackSlash.
+ Adding Function: OpBackSlash.
+ Adding Class: Cepstrum.
+ Adding Function: Cepstrum.
+ Adding Class: Spec.
+ Adding Function: Spec.
+ Adding Class: Part.
+ Adding Function: part.
+ Adding Class: Strindex.
+ Adding Function: strindex.
+ Adding Class: StrSubSt.
+ Adding Function: strsubst.
+
+
+ ********************************
+ ==> Load SCI2C and USER2C Libraries.
+ ********************************
+
+
+
+ ********************************************
+ ==> Start translation of function "mainfunction"
+ ********************************************
+
+
+
+ ****************************************************************************************************************************************************************************************
+ ==> Generate the AST in D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\SCI2CTmpResultsReports\mainfunction\mainfunction.ast
+ ****************************************************************************************************************************************************************************************
+
+
+
+ ************************************************************************************************************************************************
+ ==> Generate C code in D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\C_Code\main.c
+ ************************************************************************************************************************************************
+
+
+
+ ***************************************************************************************************************************************************
+ ==> Generating Makefile d:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\C_Code\Makefile
+ ***************************************************************************************************************************************************
+
+
+
+ *************************************
+ ==> Translation Successfully Completed!!!
+ *************************************
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Abs.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Abs.acls
new file mode 100644
index 00000000..f5560aa2
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Abs.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_REAL(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Atan.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Atan.acls
new file mode 100644
index 00000000..995bd3be
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Atan.acls
@@ -0,0 +1,10 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Cepstrum.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Cepstrum.acls
new file mode 100644
index 00000000..5596d6f4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Cepstrum.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_MUL(IN(1).SZ(1),IN(1).SZ(2))
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Convol.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Convol.acls
new file mode 100644
index 00000000..68b3a26b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Convol.acls
@@ -0,0 +1,21 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),'1')
+NIN= 2
+NOUT= 2
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(2).SZ(2)
+OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),'1')
+NIN= 3
+NOUT= 2
+OUT(1).TP= FA_TP_MAX(FA_TP_MAX(IN(1).TP,IN(2).TP),IN(3).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(2).SZ(2)
+OUT(2).TP= FA_TP_MAX(FA_TP_MAX(IN(1).TP,IN(2).TP),IN(3).TP)
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),'1')
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Disp.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Disp.acls
new file mode 100644
index 00000000..6dd29c91
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Disp.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'd'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Double.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Double.acls
new file mode 100644
index 00000000..e02e5fde
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Double.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'd'
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/DoubleComplex.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/DoubleComplex.acls
new file mode 100644
index 00000000..5140dee2
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/DoubleComplex.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'z'
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFT.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFT.acls
new file mode 100644
index 00000000..58f4b41e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFT.acls
@@ -0,0 +1,20 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 3
+NOUT= 1
+OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 4
+NOUT= 1
+OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFTShift.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFTShift.acls
new file mode 100644
index 00000000..995bd3be
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FFTShift.acls
@@ -0,0 +1,10 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Find.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Find.acls
new file mode 100644
index 00000000..d5c1741a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Find.acls
@@ -0,0 +1,26 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
+NIN= 1
+NOUT= 2
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
+OUT(2).TP= IN(1).TP
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
+NIN= 2
+NOUT= 2
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
+OUT(2).TP= IN(1).TP
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Float.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Float.acls
new file mode 100644
index 00000000..26facf00
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Float.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 's'
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FloatComplex.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FloatComplex.acls
new file mode 100644
index 00000000..5c36046a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/FloatComplex.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'c'
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Frmag.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Frmag.acls
new file mode 100644
index 00000000..f54b23a9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Frmag.acls
@@ -0,0 +1,26 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(2).VAL
+NIN= 2
+NOUT= 2
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(2).VAL
+OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= IN(2).VAL
+NIN= 3
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(3).VAL
+NIN= 3
+NOUT= 2
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= IN(3).VAL
+OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= IN(3).VAL
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Global.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Global.acls
new file mode 100644
index 00000000..1e14f36c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Global.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'd'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IFFT.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IFFT.acls
new file mode 100644
index 00000000..c19d6a2a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IFFT.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IsEmpty.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IsEmpty.acls
new file mode 100644
index 00000000..d35b446f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/IsEmpty.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Length.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Length.acls
new file mode 100644
index 00000000..d35b446f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Length.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Lev.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Lev.acls
new file mode 100644
index 00000000..718c15d8
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Lev.acls
@@ -0,0 +1,24 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SUB(IN(1).SZ(1),'1')
+OUT(1).SZ(2)= '1'
+NIN= 1
+NOUT= 2
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SUB (IN(1).SZ(1),'1')
+OUT(1).SZ(2)= '1'
+OUT(2).TP= IN(1).TP
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
+NIN= 1
+NOUT= 3
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SUB(IN(1).SZ(1),'1')
+OUT(1).SZ(2)= '1'
+OUT(2).TP= IN(1).TP
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
+OUT(3).TP= IN(1).TP
+OUT(3).SZ(1)= FA_SUB(IN(1).SZ(1),'1')
+OUT(3).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mclose.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mclose.acls
new file mode 100644
index 00000000..75ee8f0e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mclose.acls
@@ -0,0 +1,7 @@
+NIN= 0
+NOUT= 1
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'i'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Meanf.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Meanf.acls
new file mode 100644
index 00000000..0e30bcee
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Meanf.acls
@@ -0,0 +1,10 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP, IN(2).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 3
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SZ_SEL1(IN(1).SZ(1),IN(3).VAL)
+OUT(1).SZ(2)= FA_SZ_SEL2(IN(1).SZ(2),IN(3).VAL)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mget.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mget.acls
new file mode 100644
index 00000000..1c57f954
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mget.acls
@@ -0,0 +1,5 @@
+NIN= 3
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).VAL)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mopen.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mopen.acls
new file mode 100644
index 00000000..116a4df4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mopen.acls
@@ -0,0 +1,39 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 1
+NOUT= 2
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+OUT(2).TP= FA_TP_USER
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
+NIN= 2
+NOUT= 1
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 2
+NOUT= 2
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+OUT(2).TP= FA_TP_USER
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
+NIN= 3
+NOUT= 1
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 3
+NOUT= 2
+OUT(1).TP= 'f'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+OUT(2).TP= FA_TP_USER
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mput.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mput.acls
new file mode 100644
index 00000000..6dae599e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mput.acls
@@ -0,0 +1,7 @@
+NIN= 3
+NOUT= 0
+NIN= 3
+NOUT= 1
+OUT(1).TP= 'i'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mseek.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mseek.acls
new file mode 100644
index 00000000..0b579afd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Mseek.acls
@@ -0,0 +1,6 @@
+NIN= 1
+NOUT= 0
+NIN= 2
+NOUT= 0
+NIN= 3
+NOUT= 0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpApex.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpApex.acls
new file mode 100644
index 00000000..77919817
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpApex.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(2)
+OUT(1).SZ(2)= IN(1).SZ(1)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpBackSlash.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpBackSlash.acls
new file mode 100644
index 00000000..46dd5c22
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpBackSlash.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPBACKSLASH(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_1(FA_SZ_OPBACKSLASH(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpCc.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpCc.acls
new file mode 100644
index 00000000..5464e4c0
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpCc.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_ADD(IN(1).SZ(1),IN(2).SZ(1))
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpColon.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpColon.acls
new file mode 100644
index 00000000..2e91b876
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpColon.acls
@@ -0,0 +1,10 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_INT(FA_ADD(FA_SUB(IN(2).VAL,IN(1).VAL),'1'))
+NIN= 3
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_INT(FA_ADD(FA_DIV(FA_SUB(IN(3).VAL,IN(1).VAL),IN(2).VAL),'1'))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotHat.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotHat.acls
new file mode 100644
index 00000000..2a886f78
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotHat.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotStar.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotStar.acls
new file mode 100644
index 00000000..2a886f78
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpDotStar.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpEqual.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpEqual.acls
new file mode 100644
index 00000000..e8eaa5ab
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpEqual.acls
@@ -0,0 +1,13 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+NIN= 2
+NOUT= 2
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+OUT(2).TP= IN(2).TP
+OUT(2).SZ(1)= FA_SZ_1(IN(2).SZ)
+OUT(2).SZ(2)= FA_SZ_2(IN(2).SZ)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpExt.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpExt.acls
new file mode 100644
index 00000000..b0cbed31
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpExt.acls
@@ -0,0 +1,10 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_MUL(IN(2).SZ(1),IN(2).SZ(2))
+OUT(1).SZ(2)= '1'
+NIN= 3
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_MUL(IN(2).SZ(1),IN(2).SZ(2))
+OUT(1).SZ(2)= FA_MUL(IN(3).SZ(1),IN(3).SZ(2))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpIns.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpIns.acls
new file mode 100644
index 00000000..0660a252
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpIns.acls
@@ -0,0 +1,4 @@
+NIN= 3
+NOUT= 0
+NIN= 4
+NOUT= 0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpLogEq.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpLogEq.acls
new file mode 100644
index 00000000..2a886f78
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpLogEq.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpMinus.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpMinus.acls
new file mode 100644
index 00000000..9971f7a8
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpMinus.acls
@@ -0,0 +1,10 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPMINUS(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPMINUS(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpPlus.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpPlus.acls
new file mode 100644
index 00000000..44bf0c32
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpPlus.acls
@@ -0,0 +1,10 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPPLUS(IN(1).SZ,IN(2).SZ,IN(1).TP,IN(2).TP))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPPLUS(IN(1).SZ,IN(2).SZ,IN(1).TP,IN(2).TP))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpRc.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpRc.acls
new file mode 100644
index 00000000..36fff9e2
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpRc.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= FA_ADD(IN(1).SZ(2),IN(2).SZ(2))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpStar.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpStar.acls
new file mode 100644
index 00000000..f33dd783
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/OpStar.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)
+OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPSTAR(IN(1).SZ,IN(2).SZ))
+OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPSTAR(IN(1).SZ,IN(2).SZ))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Part.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Part.acls
new file mode 100644
index 00000000..9cb567a9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Part.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= 'g'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).SZ(2))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Return.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Return.acls
new file mode 100644
index 00000000..a6d67766
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Return.acls
@@ -0,0 +1,2 @@
+NIN= 0
+NOUT= 0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sin.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sin.acls
new file mode 100644
index 00000000..51a05ed8
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sin.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Size.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Size.acls
new file mode 100644
index 00000000..78b3c6ad
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Size.acls
@@ -0,0 +1,18 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_REAL(IN(1).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '2'
+NIN= 1
+NOUT= 2
+OUT(1).TP= FA_TP_REAL(IN(1).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+OUT(2).TP= FA_TP_REAL(IN(1).TP)
+OUT(2).SZ(1)= '1'
+OUT(2).SZ(2)= '1'
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_REAL(IN(1).TP)
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Spec.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Spec.acls
new file mode 100644
index 00000000..29e22c96
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Spec.acls
@@ -0,0 +1,13 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= '1'
+NIN= 1
+NOUT= 2
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
+OUT(2).TP= IN(1).TP
+OUT(2).SZ(1)= IN(1).SZ(1)
+OUT(2).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sqrt.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sqrt.acls
new file mode 100644
index 00000000..73ba79d7
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sqrt.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= IN(1).SZ(1)
+OUT(1).SZ(2)= IN(1).SZ(2)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/StrSubSt.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/StrSubSt.acls
new file mode 100644
index 00000000..c5c019ad
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/StrSubSt.acls
@@ -0,0 +1,5 @@
+NIN= 3
+NOUT= 1
+OUT(1).TP= 'g'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(2),IN(3).SZ(2)))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Strindex.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Strindex.acls
new file mode 100644
index 00000000..9cb567a9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Strindex.acls
@@ -0,0 +1,5 @@
+NIN= 2
+NOUT= 1
+OUT(1).TP= 'g'
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).SZ(2))
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sum.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sum.acls
new file mode 100644
index 00000000..1e528ded
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Sum.acls
@@ -0,0 +1,10 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 2
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= FA_SZ_SEL1(IN(1).SZ(1),IN(2).VAL)
+OUT(1).SZ(2)= FA_SZ_SEL2(IN(1).SZ(2),IN(2).VAL)
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Trace.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Trace.acls
new file mode 100644
index 00000000..d0c0c86a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Trace.acls
@@ -0,0 +1,5 @@
+NIN= 1
+NOUT= 1
+OUT(1).TP= IN(1).TP
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Zeros.acls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Zeros.acls
new file mode 100644
index 00000000..a5c3c25b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Classes/Zeros.acls
@@ -0,0 +1,15 @@
+NIN= 0
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= '1'
+OUT(1).SZ(2)= '1'
+NIN= 1
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)
+OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)
+NIN= 2
+NOUT= 1
+OUT(1).TP= FA_TP_USER
+OUT(1).SZ(1)= IN(1).VAL
+OUT(1).SZ(2)= IN(2).VAL
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Cepstrum.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Cepstrum.ann
new file mode 100644
index 00000000..4e17763b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Cepstrum.ann
@@ -0,0 +1 @@
+CLASS: Cepstrum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpApex.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpApex.ann
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpApex.ann
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpBackSlash.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpBackSlash.ann
new file mode 100644
index 00000000..3f9d1814
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpBackSlash.ann
@@ -0,0 +1 @@
+CLASS: OpBackSlash
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpCc.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpCc.ann
new file mode 100644
index 00000000..2748b4c5
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpCc.ann
@@ -0,0 +1 @@
+CLASS: OpCc
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpColon.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpColon.ann
new file mode 100644
index 00000000..981dbed0
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpColon.ann
@@ -0,0 +1 @@
+CLASS: OpColon
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotApex.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotApex.ann
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotApex.ann
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotBackSlash.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotBackSlash.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotBackSlash.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotHat.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotHat.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotHat.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotSlash.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotSlash.ann
new file mode 100644
index 00000000..8aa67ad3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotSlash.ann
@@ -0,0 +1 @@
+CLASS: OpDotStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotStar.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotStar.ann
new file mode 100644
index 00000000..8aa67ad3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpDotStar.ann
@@ -0,0 +1 @@
+CLASS: OpDotStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpEqual.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpEqual.ann
new file mode 100644
index 00000000..87e6b15d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpEqual.ann
@@ -0,0 +1 @@
+CLASS: OpEqual
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpExt.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpExt.ann
new file mode 100644
index 00000000..50bd6675
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpExt.ann
@@ -0,0 +1 @@
+CLASS: OpExt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpHat.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpHat.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpHat.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpIns.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpIns.ann
new file mode 100644
index 00000000..fd2cf196
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpIns.ann
@@ -0,0 +1 @@
+CLASS: OpIns
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogAnd.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogAnd.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogAnd.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogEq.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogEq.ann
new file mode 100644
index 00000000..4a56160c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogEq.ann
@@ -0,0 +1 @@
+CLASS: OpLogEq
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGe.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGe.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGe.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGt.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGt.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogGt.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLe.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLe.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLe.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLt.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLt.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogLt.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNe.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNe.ann
new file mode 100644
index 00000000..4a56160c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNe.ann
@@ -0,0 +1 @@
+CLASS: OpLogEq
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNot.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNot.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogNot.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogOr.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogOr.ann
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpLogOr.ann
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpMinus.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpMinus.ann
new file mode 100644
index 00000000..09c6be0e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpMinus.ann
@@ -0,0 +1 @@
+CLASS: OpMinus
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpPlus.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpPlus.ann
new file mode 100644
index 00000000..e5a93d42
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpPlus.ann
@@ -0,0 +1 @@
+CLASS: OpPlus
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpRc.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpRc.ann
new file mode 100644
index 00000000..3f3ee384
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpRc.ann
@@ -0,0 +1 @@
+CLASS: OpRc
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpStar.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpStar.ann
new file mode 100644
index 00000000..082301fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/OpStar.ann
@@ -0,0 +1 @@
+CLASS: OpStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Spec.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Spec.ann
new file mode 100644
index 00000000..2ead894c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/Spec.ann
@@ -0,0 +1 @@
+CLASS: Spec
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/abs.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/abs.ann
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/abs.ann
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acos.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acos.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acos.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acosh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acosh.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/acosh.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asin.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asin.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asin.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asinh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asinh.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/asinh.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atan.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atan.ann
new file mode 100644
index 00000000..51356b5b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atan.ann
@@ -0,0 +1 @@
+CLASS: Atan
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atanh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atanh.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/atanh.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ceil.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ceil.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ceil.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/conj.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/conj.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/conj.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/convol.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/convol.ann
new file mode 100644
index 00000000..d0529024
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/convol.ann
@@ -0,0 +1 @@
+CLASS: Convol
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cos.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cos.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cos.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cosh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cosh.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/cosh.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/det.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/det.ann
new file mode 100644
index 00000000..4da3715f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/det.ann
@@ -0,0 +1 @@
+CLASS: Trace
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/disp.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/disp.ann
new file mode 100644
index 00000000..2e6a9ad5
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/disp.ann
@@ -0,0 +1 @@
+CLASS: Disp
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/double.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/double.ann
new file mode 100644
index 00000000..667df626
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/double.ann
@@ -0,0 +1 @@
+CLASS: Double
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/doublecomplex.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/doublecomplex.ann
new file mode 100644
index 00000000..266fd573
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/doublecomplex.ann
@@ -0,0 +1 @@
+CLASS: DoubleComplex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/exp.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/exp.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/exp.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/eye.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/eye.ann
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/eye.ann
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fft.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fft.ann
new file mode 100644
index 00000000..b51676f9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fft.ann
@@ -0,0 +1 @@
+CLASS: FFT
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fftshift.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fftshift.ann
new file mode 100644
index 00000000..7d986d4f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fftshift.ann
@@ -0,0 +1 @@
+CLASS: FFTShift
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/find.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/find.ann
new file mode 100644
index 00000000..52c8d020
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/find.ann
@@ -0,0 +1 @@
+CLASS: Find
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fix.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fix.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/fix.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/float.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/float.ann
new file mode 100644
index 00000000..cff917cf
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/float.ann
@@ -0,0 +1 @@
+CLASS: Float
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floatcomplex.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floatcomplex.ann
new file mode 100644
index 00000000..a2bc2f40
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floatcomplex.ann
@@ -0,0 +1 @@
+CLASS: FloatComplex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floor.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floor.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/floor.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/frmag.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/frmag.ann
new file mode 100644
index 00000000..f3e11998
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/frmag.ann
@@ -0,0 +1 @@
+CLASS: Frmag
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/global.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/global.ann
new file mode 100644
index 00000000..602d47af
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/global.ann
@@ -0,0 +1 @@
+CLASS: Global
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ifft.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ifft.ann
new file mode 100644
index 00000000..c2904825
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ifft.ann
@@ -0,0 +1 @@
+CLASS: IFFT
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/imag.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/imag.ann
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/imag.ann
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/int.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/int.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/int.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/inv.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/inv.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/inv.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isempty.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isempty.ann
new file mode 100644
index 00000000..14f24271
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isempty.ann
@@ -0,0 +1 @@
+CLASS: IsEmpty
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isnan.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isnan.ann
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/isnan.ann
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/length.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/length.ann
new file mode 100644
index 00000000..5d2a073b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/length.ann
@@ -0,0 +1 @@
+CLASS: Length
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/lev.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/lev.ann
new file mode 100644
index 00000000..b6da8e7b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/lev.ann
@@ -0,0 +1 @@
+CLASS: Lev
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log10.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log10.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/log10.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/max.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/max.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/max.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mclose.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mclose.ann
new file mode 100644
index 00000000..741aa6fe
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mclose.ann
@@ -0,0 +1 @@
+CLASS: Mclose
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mean.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mean.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mean.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/meanf.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/meanf.ann
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/meanf.ann
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mget.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mget.ann
new file mode 100644
index 00000000..6c933404
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mget.ann
@@ -0,0 +1 @@
+CLASS: Mget
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/min.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/min.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/min.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mopen.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mopen.ann
new file mode 100644
index 00000000..1405ba1d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mopen.ann
@@ -0,0 +1 @@
+CLASS: Mopen
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mput.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mput.ann
new file mode 100644
index 00000000..ccf6b05f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mput.ann
@@ -0,0 +1 @@
+CLASS: Mput
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mseek.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mseek.ann
new file mode 100644
index 00000000..37c64924
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/mseek.ann
@@ -0,0 +1 @@
+CLASS: Mseek
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ones.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ones.ann
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/ones.ann
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/part.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/part.ann
new file mode 100644
index 00000000..6d6a8553
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/part.ann
@@ -0,0 +1 @@
+CLASS: Part
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/prod.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/prod.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/prod.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/rand.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/rand.ann
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/rand.ann
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/real.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/real.ann
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/real.ann
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/return.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/return.ann
new file mode 100644
index 00000000..eabb9118
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/return.ann
@@ -0,0 +1 @@
+CLASS: Return
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/round.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/round.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/round.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sin.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sin.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sin.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sinh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sinh.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sinh.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/size.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/size.ann
new file mode 100644
index 00000000..ca7c556c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/size.ann
@@ -0,0 +1 @@
+CLASS: Size
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sqrt.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sqrt.ann
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sqrt.ann
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/st_deviation.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/st_deviation.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/st_deviation.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/stdevf.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/stdevf.ann
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/stdevf.ann
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strindex.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strindex.ann
new file mode 100644
index 00000000..9dca5862
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strindex.ann
@@ -0,0 +1 @@
+CLASS: Strindex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strsubst.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strsubst.ann
new file mode 100644
index 00000000..03fa10a1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/strsubst.ann
@@ -0,0 +1 @@
+CLASS: StrSubSt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sum.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sum.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/sum.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tan.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tan.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tan.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tanh.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tanh.ann
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/tanh.ann
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/trace.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/trace.ann
new file mode 100644
index 00000000..4da3715f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/trace.ann
@@ -0,0 +1 @@
+CLASS: Trace
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variance.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variance.ann
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variance.ann
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variancef.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variancef.ann
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/variancef.ann
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/zeros.ann b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/zeros.ann
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CAnnotations/Functions/zeros.ann
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Abs.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Abs.lcls
new file mode 100644
index 00000000..fbfa548c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Abs.lcls
@@ -0,0 +1,8 @@
+s0,s0
+d0,d0
+c0,s0
+z0,d0
+s2,s2
+d2,d2
+c2,s2
+z2,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Atan.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Atan.lcls
new file mode 100644
index 00000000..db3aa04c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Atan.lcls
@@ -0,0 +1,12 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
+s0s0,s0
+d0d0,d0
+s2s2,s2
+d2d2,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Cepstrum.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Cepstrum.lcls
new file mode 100644
index 00000000..8f4470ee
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Cepstrum.lcls
@@ -0,0 +1,8 @@
+s0s0,c0
+d0d0,z0
+s0c0,c0
+d0z0,z0
+s2s2,c2
+d2d2,z2
+s2c2,c2
+d2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Convol.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Convol.lcls
new file mode 100644
index 00000000..2e53cf15
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Convol.lcls
@@ -0,0 +1,44 @@
+s0s0,s0
+d0d0,d0
+c0c0,c0
+z0z0,z0
+s0s2,s2
+d0d2,d2
+c0c2,c2
+z0z2,z2
+s2s0,s2
+d2d0,d2
+c2c0,c2
+z2z0,z2
+s2s2,s2
+d2d2,d2
+c2c2,c2
+z2z2,z2
+s0s0,s0s0
+d0d0,d0d0
+c0c0,c0c0
+z0z0,z0z0
+s0s2,s2s2
+d0d2,d2d2
+c0c2,c2c2
+z0z2,z2z2
+s2s0,s2s2
+d2d0,d2d2
+c2c0,c2c2
+z2z0,z2z2
+s2s2,s2s2
+d2d2,d2d2
+c2c2,c2c2
+z2z2,z2z2
+s0s0s0,s0s0
+d0d0d0,d0d0
+c0c0c0,c0c0
+z0z0z0,z0z0
+s0s2s0,s2s0
+d0d2d0,d2d0
+c0c2c0,c2c0
+z0z2z0,z2z0
+s2s2s2,s2s2
+d2d2d2,d2d2
+c2c2c2,c2c2
+z2z2z2,z2z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Disp.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Disp.lcls
new file mode 100644
index 00000000..1899b1d5
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Disp.lcls
@@ -0,0 +1,10 @@
+s0,d0
+d0,d0
+c0,d0
+z0,d0
+g0,d0
+s2,d0
+d2,d0
+c2,d0
+z2,d0
+g2,d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Double.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Double.lcls
new file mode 100644
index 00000000..cdbaa09c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Double.lcls
@@ -0,0 +1,4 @@
+s0,d0
+d0,d0
+s2,d2
+d2,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/DoubleComplex.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/DoubleComplex.lcls
new file mode 100644
index 00000000..b89949c3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/DoubleComplex.lcls
@@ -0,0 +1,8 @@
+s0,z0
+d0,z0
+c0,z0
+z0,z0
+s2,z2
+d2,z2
+c2,z2
+z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFT.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFT.lcls
new file mode 100644
index 00000000..d38a5a3e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFT.lcls
@@ -0,0 +1,32 @@
+s0,c0
+d0,z0
+c0,c0
+z0,z0
+s2,c2
+d2,z2
+c2,c2
+z2,z2
+s0s0,c0
+d0d0,z0
+c0s0,c0
+z0d0,z0
+s2s0,c2
+d2d0,z2
+c2s0,c2
+z2d0,z2
+s0s0s0,c0
+d0d0d0,z0
+c0s0s0,c0
+z0d0d0,z0
+s2s0s0,c2
+d2d0d0,z2
+c2s0s0,c2
+z2d0d0,z2
+s0s0s0s0,c0
+d0d0d0d0,z0
+c0s0s0s0,c0
+z0d0d0d0,z0
+s2s0s0s0,c2
+d2d0d0d0,z2
+c2s0s0s0,c2
+z2d0d0d0,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFTShift.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFTShift.lcls
new file mode 100644
index 00000000..cb8bdb35
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FFTShift.lcls
@@ -0,0 +1,24 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
+s0s0,s0
+s0g2,s0
+d0d0,d0
+d0g2,d0
+c0s0,c0
+c0g2,c0
+z0d0,z0
+z0g2,z0
+s2s0,s2
+s2g2,s2
+d2d0,d2
+d2g2,d2
+c2s0,c2
+c2g2,c2
+z2d0,z2
+z2g2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Find.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Find.lcls
new file mode 100644
index 00000000..1e1c3faa
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Find.lcls
@@ -0,0 +1,16 @@
+s0,s0
+d0,d0
+s2,s2
+d2,d2
+s0,s0s0
+d0,d0d0
+s2,s2s2
+d2,d2d2
+s0s0,s0
+s2s0,s2
+d0d0,d0
+d2d0,d2
+s0s0,s0s0
+s2s0,s2s2
+d0d0,d0d0
+d2d0,d2d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Float.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Float.lcls
new file mode 100644
index 00000000..cd60413d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Float.lcls
@@ -0,0 +1,4 @@
+s0,s0
+d0,s0
+s2,s2
+d2,s2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FloatComplex.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FloatComplex.lcls
new file mode 100644
index 00000000..94a85008
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/FloatComplex.lcls
@@ -0,0 +1,8 @@
+s0,c0
+d0,c0
+c0,c0
+z0,c0
+s2,c2
+d2,c2
+c2,c2
+z2,c2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Frmag.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Frmag.lcls
new file mode 100644
index 00000000..0c848eee
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Frmag.lcls
@@ -0,0 +1,16 @@
+d2d0,d2
+d2d0,d2d2
+d0d0,d0
+d0d0,d0d0
+d2d2d0,d2
+d2d2d0,d2d2
+d0d0d0,d0
+d0d0d0,d0d0
+s2s0,s2
+s2s0,s2s2
+s0s0,s0
+s0s0,s0s0
+s2s2s0,s2
+s2s2s0,s2s2
+s0s0s0,s0
+s0s0s0,s0s0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Global.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Global.lcls
new file mode 100644
index 00000000..dcde1db9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Global.lcls
@@ -0,0 +1 @@
+g2,d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IFFT.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IFFT.lcls
new file mode 100644
index 00000000..e1cde164
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IFFT.lcls
@@ -0,0 +1,8 @@
+s0,c0
+d0,z0
+c0,c0
+z0,z0
+s2,c2
+d2,z2
+c2,c2
+z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IsEmpty.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IsEmpty.lcls
new file mode 100644
index 00000000..dcc6d90b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/IsEmpty.lcls
@@ -0,0 +1,8 @@
+s0,s0
+d0,d0
+c0,s0
+z0,d0
+s2,s0
+d2,d0
+c2,s0
+z2,d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Length.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Length.lcls
new file mode 100644
index 00000000..2db2feb4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Length.lcls
@@ -0,0 +1,12 @@
+s0,s0
+d0,d0
+c0,s0
+z0,d0
+g0,s0
+g0,d0
+s2,s0
+d2,d0
+c2,s0
+z2,d0
+g2,s0
+g2,d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Lev.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Lev.lcls
new file mode 100644
index 00000000..8fc75ecf
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Lev.lcls
@@ -0,0 +1,12 @@
+s2,s2
+s2,s2s0
+s2,s2s0s2
+d2,d2
+d2,d2d0
+d2,d2d0d2
+c2,c2
+c2,c2c0
+c2,c2c0c2
+z2,z2
+z2,z2z0
+z2,z2z0z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mclose.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mclose.lcls
new file mode 100644
index 00000000..c0402ebc
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mclose.lcls
@@ -0,0 +1,2 @@
+f0,
+f0,i0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Meanf.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Meanf.lcls
new file mode 100644
index 00000000..4b349c7d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Meanf.lcls
@@ -0,0 +1,16 @@
+s0s0,s0
+d0d0,d0
+c0s0,c0
+z0d0,z0
+s2s2,s0
+d2d2,d0
+c2s2,c0
+z2d2,z0
+s0s0s0,s0
+d0d0d0,d0
+c0s0s0,c0
+z0d0d0,z0
+s2s2s0,s2
+d2d2d0,d2
+c2s2s0,c2
+z2d2d0,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mget.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mget.lcls
new file mode 100644
index 00000000..506130d0
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mget.lcls
@@ -0,0 +1,8 @@
+s0g2f0,s0
+s0g2f0,d0
+d0g2f0,s0
+d0g2f0,d0
+s0g2f0,s2
+s0g2f0,d2
+d0g2f0,s2
+d0g2f0,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mopen.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mopen.lcls
new file mode 100644
index 00000000..5127dcca
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mopen.lcls
@@ -0,0 +1,10 @@
+g2,f0
+g2,f0s0
+g2,f0d0
+g2g2,f0
+g2g2,f0s0
+g2g2,f0d0
+g2g2s0,f0s0
+g2g2s0,f0d0
+g2g2d0,f0s0
+g2g2d0,f0d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mput.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mput.lcls
new file mode 100644
index 00000000..604c88b1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mput.lcls
@@ -0,0 +1,8 @@
+s0g2f0,
+s2g2f0,
+d0g2f0,
+d2g2f0,
+s0g2f0,i0
+s2g2f0,i0
+d0g2f0,i0
+d2g2f0,i0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mseek.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mseek.lcls
new file mode 100644
index 00000000..4c10ff4f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Mseek.lcls
@@ -0,0 +1,6 @@
+s0,
+s0f0,
+s0f0g2,
+d0,
+d0f0,
+d0f0g2,
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpApex.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpApex.lcls
new file mode 100644
index 00000000..84d73280
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpApex.lcls
@@ -0,0 +1,8 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpBackSlash.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpBackSlash.lcls
new file mode 100644
index 00000000..a90028c3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpBackSlash.lcls
@@ -0,0 +1,32 @@
+s0s0,s0
+s0s2,s2
+s2s0,s2
+s2s2,s2
+d0d0,d0
+d0d2,d2
+d2d0,d2
+d2d2,d2
+s0c0,c0
+c0s0,c0
+c0c0,c0
+c0s2,c2
+s0c2,c2
+c0c2,c2
+c2s0,c2
+s2c0,c2
+c2c0,c2
+s2c2,c2
+c2s2,c2
+c2c2,c2
+d0z0,z0
+z0d0,z0
+z0z0,z0
+z0d2,z2
+d0z2,z2
+z0z2,z2
+z2d0,z2
+d2z0,z2
+z2z0,z2
+d2z2,z2
+z2d2,z2
+z2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpCc.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpCc.lcls
new file mode 100644
index 00000000..d9059b13
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpCc.lcls
@@ -0,0 +1,16 @@
+s0s0,s2
+s0s2,s2
+s2s0,s2
+s2s2,s2
+d0d0,d2
+d0d2,d2
+d2d0,d2
+d2d2,d2
+c0c0,c2
+c0c2,c2
+c2c0,c2
+c2c2,c2
+z0z0,z2
+z0z2,z2
+z2z0,z2
+z2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpColon.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpColon.lcls
new file mode 100644
index 00000000..4b559b7c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpColon.lcls
@@ -0,0 +1,8 @@
+s0s0,s0
+d0d0,d0
+s0s0,s2
+d0d0,d2
+s0s0s0,s0
+d0d0d0,d0
+s0s0s0,s2
+d0d0d0,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotHat.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotHat.lcls
new file mode 100644
index 00000000..d7955bd8
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotHat.lcls
@@ -0,0 +1,16 @@
+s0s0,s0
+d0d0,d0
+c0c0,c0
+z0z0,z0
+s2s0,s2
+d2d0,d2
+c2c0,c2
+z2z0,z2
+s0s2,s2
+d0d2,d2
+c0c2,c2
+z0z2,z2
+s2s2,s2
+d2d2,d2
+c2c2,c2
+z2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotStar.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotStar.lcls
new file mode 100644
index 00000000..b9c54e55
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpDotStar.lcls
@@ -0,0 +1,40 @@
+s0s0,s0
+d0d0,d0
+c0c0,c0
+s0c0,c0
+c0s0,c0
+z0z0,z0
+d0z0,z0
+z0d0,z0
+s2s0,s2
+d2d0,d2
+c2c0,c2
+s2c0,c2
+c2s0,c2
+z2z0,z2
+z2d0,z2
+d2z0,z2
+s0s2,s2
+d0d2,d2
+c0c2,c2
+s0c2,c2
+c0s2,c2
+z0z2,z2
+d0z2,z2
+z0d2,z2
+s2s2,s2
+d2d2,d2
+c2c2,c2
+s2c2,c2
+c2s2,c2
+z2z2,z2
+d2z2,z2
+z2d2,z2
+s2s2,s2
+d2d2,d2
+c2c2,c2
+s2c2,c2
+c2s2,c2
+z2z2,z2
+d2z2,z2
+z2d2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpEqual.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpEqual.lcls
new file mode 100644
index 00000000..35538b5f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpEqual.lcls
@@ -0,0 +1,10 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+g0,g0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
+g2,g2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpExt.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpExt.lcls
new file mode 100644
index 00000000..3dce393a
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpExt.lcls
@@ -0,0 +1,24 @@
+s2s0,s0
+s2s2,s2
+s2s0s0,s0
+s2s2s0,s2
+s2s0s2,s2
+s2s2s2,s2
+d2d0,d0
+d2d2,d2
+d2d0d0,d0
+d2d2d0,d2
+d2d0d2,d2
+d2d2d2,d2
+c2s0,c0
+c2s2,c2
+c2s0s0,c0
+c2s2s0,c2
+c2s0s2,c2
+c2s2s2,c2
+z2d0,z0
+z2d2,z2
+z2d0d0,z0
+z2d2d0,z2
+z2d0d2,z2
+z2d2d2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpIns.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpIns.lcls
new file mode 100644
index 00000000..7309063b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpIns.lcls
@@ -0,0 +1,40 @@
+s2s0s0,
+s2s2s0,
+s2s2s2,
+s2s0s0s0,
+s2s0s2s0,
+s2s2s0s0,
+s2s2s2s0,
+s2s0s2s2,
+s2s2s0s2,
+s2s2s2s2,
+d2d0d0,
+d2d2d0,
+d2d2d2,
+d2d0d0d0,
+d2d0d2d0,
+d2d2d0d0,
+d2d2d2d0,
+d2d0d2d2,
+d2d2d0d2,
+d2d2d2d2,
+c2s0c0,
+c2s2c0,
+c2s2c2,
+c2s0s0c0,
+c2s0s2c0,
+c2s2s0c0,
+c2s2s2c0,
+c2s0s2c2,
+c2s2s0c2,
+c2s2s2c2,
+z2d0z0,
+z2d2z0,
+z2d2z2,
+z2d0d0z0,
+z2d0d2z0,
+z2d2d0z0,
+z2d2d2z0,
+z2d0d2z2,
+z2d2d0z2,
+z2d2d2z2,
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpLogEq.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpLogEq.lcls
new file mode 100644
index 00000000..942a9efb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpLogEq.lcls
@@ -0,0 +1,24 @@
+s0s0,s0
+d0d0,d0
+c0c0,c0
+z0z0,z0
+g0g0,s0
+g0g0,d0
+s2s0,s2
+d2d0,d2
+c2c0,c2
+z2z0,z2
+g2g0,s2
+g2g0,d2
+s0s2,s2
+d0d2,d2
+c0c2,c2
+z0z2,z2
+g0g2,s2
+g0g2,d2
+s2s2,s2
+d2d2,d2
+c2c2,c2
+z2z2,z2
+g2g2,s2
+g2g2,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpMinus.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpMinus.lcls
new file mode 100644
index 00000000..69af2c51
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpMinus.lcls
@@ -0,0 +1,40 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
+s0s0,s0
+d0d0,d0
+s0c0,c0
+c0s0,c0
+c0c0,c0
+d0z0,z0
+z0d0,z0
+z0z0,z0
+s2s0,s2
+d2d0,d2
+s2c0,c2
+c2s0,c2
+c2c0,c2
+d2z0,z2
+z2d0,z2
+z2z0,z2
+s0s2,s2
+d0d2,d2
+s0c2,c2
+c0s2,c2
+c0c2,c2
+d0z2,z2
+z0d2,z2
+z0z2,z2
+s2s2,s2
+d2d2,d2
+s2c2,c2
+c2s2,c2
+c2c2,c2
+d2z2,z2
+z2d2,z2
+z2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpPlus.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpPlus.lcls
new file mode 100644
index 00000000..93ff0895
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpPlus.lcls
@@ -0,0 +1,44 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
+s0s0,s0
+d0d0,d0
+s0c0,c0
+c0s0,c0
+c0c0,c0
+d0z0,z0
+z0d0,z0
+z0z0,z0
+g0g0,g2
+s2s0,s2
+d2d0,d2
+s2c0,c2
+c2s0,c2
+c2c0,c2
+d2z0,z2
+z2d0,z2
+z2z0,z2
+g2g0,g2
+s0s2,s2
+d0d2,d2
+s0c2,c2
+c0s2,c2
+c0c2,c2
+d0z2,z2
+z0d2,z2
+z0z2,z2
+g0g2,g2
+s2s2,s2
+d2d2,d2
+s2c2,c2
+c2s2,c2
+c2c2,c2
+d2z2,z2
+z2d2,z2
+z2z2,z2
+g2g2,g2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpRc.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpRc.lcls
new file mode 100644
index 00000000..d9059b13
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpRc.lcls
@@ -0,0 +1,16 @@
+s0s0,s2
+s0s2,s2
+s2s0,s2
+s2s2,s2
+d0d0,d2
+d0d2,d2
+d2d0,d2
+d2d2,d2
+c0c0,c2
+c0c2,c2
+c2c0,c2
+c2c2,c2
+z0z0,z2
+z0z2,z2
+z2z0,z2
+z2z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpStar.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpStar.lcls
new file mode 100644
index 00000000..c9fd26f1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/OpStar.lcls
@@ -0,0 +1,40 @@
+s0s0,s0
+d0d0,d0
+s0c0,c0
+c0s0,c0
+c0c0,c0
+d0z0,z0
+z0d0,z0
+z0z0,z0
+s2s0,s2
+d2d0,d2
+s2c0,c2
+c2s0,c2
+c2c0,c2
+d2z0,z2
+z2d0,z2
+z2z0,z2
+s0s2,s2
+d0d2,d2
+s0c2,c2
+c0s2,c2
+c0c2,c2
+d0z2,z2
+z0d2,z2
+z0z2,z2
+s2s2,s2
+d2d2,d2
+s2c2,c2
+c2s2,c2
+c2c2,c2
+d2z2,z2
+z2d2,z2
+z2z2,z2
+s2s2,s0
+d2d2,d0
+s2c2,c0
+c2s2,c0
+c2c2,c0
+d2z2,z0
+z2d2,z0
+z2z2,z0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Part.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Part.lcls
new file mode 100644
index 00000000..10c3307e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Part.lcls
@@ -0,0 +1,4 @@
+g2s0,g2
+g2d0,g2
+g2s2,g2
+g2d2,g2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Return.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Return.lcls
new file mode 100644
index 00000000..c528f0f4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Return.lcls
@@ -0,0 +1 @@
+,
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sin.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sin.lcls
new file mode 100644
index 00000000..84d73280
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sin.lcls
@@ -0,0 +1,8 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+c2,c2
+z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Size.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Size.lcls
new file mode 100644
index 00000000..d42f7e34
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Size.lcls
@@ -0,0 +1,24 @@
+s0,s2
+d0,d2
+c0,s2
+z0,d2
+s2,s2
+d2,d2
+c2,s2
+z2,d2
+s0,s0s0
+d0,d0d0
+c0,s0s0
+z0,d0d0
+s2,s0s0
+d2,d0d0
+c2,s0s0
+z2,d0d0
+s0s0,s0
+d0d0,d0
+c0s0,s0
+z0d0,d0
+s2s0,s0
+d2d0,d0
+c2s0,s0
+z2d0,d0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Spec.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Spec.lcls
new file mode 100644
index 00000000..c0fa03de
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Spec.lcls
@@ -0,0 +1,20 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s2
+d2,d2
+s2,c2
+c2,c2
+d2,z2
+z2,z2
+s0,s0s0
+d0,d0d0
+c0,c0c0
+z0,z0z0
+s2,s2s2
+s2,c2c2
+d2,d2d2
+d2,z2z2
+c2,c2c2
+z2,z2z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sqrt.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sqrt.lcls
new file mode 100644
index 00000000..95d445fe
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sqrt.lcls
@@ -0,0 +1,12 @@
+s0,s0
+s0,c0
+d0,d0
+d0,z0
+c0,c0
+z0,z0
+s2,s2
+s2,c2
+d2,d2
+d2,z2
+c2,c2
+z2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/StrSubSt.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/StrSubSt.lcls
new file mode 100644
index 00000000..c4d40633
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/StrSubSt.lcls
@@ -0,0 +1 @@
+g2g2g2,g2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Strindex.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Strindex.lcls
new file mode 100644
index 00000000..acfb7a68
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Strindex.lcls
@@ -0,0 +1,4 @@
+g2g2,s0
+g2g2,d0
+g2g2,s2
+g2g2,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sum.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sum.lcls
new file mode 100644
index 00000000..56bd9142
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Sum.lcls
@@ -0,0 +1,32 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s0
+d2,d0
+c2,c0
+z2,z0
+s0s0,s0
+d0d0,d0
+c0c0,c0
+z0d0,z0
+s2s0,s0
+d2d0,d0
+c2s0,c0
+z2d0,z0
+s2s0,s2
+d2d0,d2
+c2s0,c2
+z2d0,z2
+s0g2,s0
+d0g2,d0
+c0g2,c0
+z0g2,z0
+s2g2,s0
+d2g2,d0
+c2g2,c0
+z2g2,z0
+s2g2,s2
+d2g2,d2
+c2g2,c2
+z2g2,z2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Trace.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Trace.lcls
new file mode 100644
index 00000000..717d532f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Trace.lcls
@@ -0,0 +1,8 @@
+s0,s0
+d0,d0
+c0,c0
+z0,z0
+s2,s0
+d2,d0
+c2,c0
+z2,z0
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Zeros.lcls b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Zeros.lcls
new file mode 100644
index 00000000..b05566fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Classes/Zeros.lcls
@@ -0,0 +1,18 @@
+,s0
+,d0
+s0,s0
+s0,d0
+d0,s0
+d0,d0
+s2,s2
+s2,d2
+d2,s2
+d2,d2
+s0s0,s0
+s0s0,d0
+s0s0,s2
+s0s0,d2
+d0d0,s0
+d0d0,d0
+d0d0,s2
+d0d0,d2
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Cepstrum.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Cepstrum.lst
new file mode 100644
index 00000000..4e17763b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Cepstrum.lst
@@ -0,0 +1 @@
+CLASS: Cepstrum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpApex.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpApex.lst
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpApex.lst
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpBackSlash.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpBackSlash.lst
new file mode 100644
index 00000000..3f9d1814
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpBackSlash.lst
@@ -0,0 +1 @@
+CLASS: OpBackSlash
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpCc.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpCc.lst
new file mode 100644
index 00000000..2748b4c5
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpCc.lst
@@ -0,0 +1 @@
+CLASS: OpCc
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpColon.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpColon.lst
new file mode 100644
index 00000000..981dbed0
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpColon.lst
@@ -0,0 +1 @@
+CLASS: OpColon
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotApex.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotApex.lst
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotApex.lst
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotBackSlash.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotBackSlash.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotBackSlash.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotHat.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotHat.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotHat.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotSlash.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotSlash.lst
new file mode 100644
index 00000000..8aa67ad3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotSlash.lst
@@ -0,0 +1 @@
+CLASS: OpDotStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotStar.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotStar.lst
new file mode 100644
index 00000000..8aa67ad3
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpDotStar.lst
@@ -0,0 +1 @@
+CLASS: OpDotStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpEqual.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpEqual.lst
new file mode 100644
index 00000000..87e6b15d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpEqual.lst
@@ -0,0 +1 @@
+CLASS: OpEqual
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpExt.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpExt.lst
new file mode 100644
index 00000000..50bd6675
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpExt.lst
@@ -0,0 +1 @@
+CLASS: OpExt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpHat.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpHat.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpHat.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpIns.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpIns.lst
new file mode 100644
index 00000000..fd2cf196
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpIns.lst
@@ -0,0 +1 @@
+CLASS: OpIns
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogAnd.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogAnd.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogAnd.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogEq.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogEq.lst
new file mode 100644
index 00000000..4a56160c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogEq.lst
@@ -0,0 +1 @@
+CLASS: OpLogEq
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGe.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGe.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGe.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGt.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGt.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogGt.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLe.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLe.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLe.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLt.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLt.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogLt.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNe.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNe.lst
new file mode 100644
index 00000000..4a56160c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNe.lst
@@ -0,0 +1 @@
+CLASS: OpLogEq
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNot.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNot.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogNot.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogOr.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogOr.lst
new file mode 100644
index 00000000..bb90b5fb
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpLogOr.lst
@@ -0,0 +1 @@
+CLASS: OpDotHat
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpMinus.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpMinus.lst
new file mode 100644
index 00000000..09c6be0e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpMinus.lst
@@ -0,0 +1 @@
+CLASS: OpMinus
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpPlus.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpPlus.lst
new file mode 100644
index 00000000..e5a93d42
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpPlus.lst
@@ -0,0 +1 @@
+CLASS: OpPlus
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpRc.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpRc.lst
new file mode 100644
index 00000000..3f3ee384
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpRc.lst
@@ -0,0 +1 @@
+CLASS: OpRc
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpStar.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpStar.lst
new file mode 100644
index 00000000..082301fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/OpStar.lst
@@ -0,0 +1 @@
+CLASS: OpStar
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Spec.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Spec.lst
new file mode 100644
index 00000000..2ead894c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/Spec.lst
@@ -0,0 +1 @@
+CLASS: Spec
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/abs.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/abs.lst
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/abs.lst
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acos.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acos.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acos.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acosh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acosh.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/acosh.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asin.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asin.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asin.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asinh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asinh.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/asinh.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atan.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atan.lst
new file mode 100644
index 00000000..51356b5b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atan.lst
@@ -0,0 +1 @@
+CLASS: Atan
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atanh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atanh.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/atanh.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ceil.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ceil.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ceil.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/conj.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/conj.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/conj.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/convol.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/convol.lst
new file mode 100644
index 00000000..d0529024
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/convol.lst
@@ -0,0 +1 @@
+CLASS: Convol
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cos.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cos.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cos.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cosh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cosh.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/cosh.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/det.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/det.lst
new file mode 100644
index 00000000..4da3715f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/det.lst
@@ -0,0 +1 @@
+CLASS: Trace
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/disp.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/disp.lst
new file mode 100644
index 00000000..2e6a9ad5
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/disp.lst
@@ -0,0 +1 @@
+CLASS: Disp
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/double.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/double.lst
new file mode 100644
index 00000000..667df626
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/double.lst
@@ -0,0 +1 @@
+CLASS: Double
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/doublecomplex.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/doublecomplex.lst
new file mode 100644
index 00000000..266fd573
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/doublecomplex.lst
@@ -0,0 +1 @@
+CLASS: DoubleComplex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/exp.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/exp.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/exp.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/eye.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/eye.lst
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/eye.lst
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fft.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fft.lst
new file mode 100644
index 00000000..b51676f9
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fft.lst
@@ -0,0 +1 @@
+CLASS: FFT
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fftshift.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fftshift.lst
new file mode 100644
index 00000000..7d986d4f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fftshift.lst
@@ -0,0 +1 @@
+CLASS: FFTShift
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/find.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/find.lst
new file mode 100644
index 00000000..52c8d020
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/find.lst
@@ -0,0 +1 @@
+CLASS: Find
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fix.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fix.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/fix.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/float.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/float.lst
new file mode 100644
index 00000000..cff917cf
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/float.lst
@@ -0,0 +1 @@
+CLASS: Float
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floatcomplex.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floatcomplex.lst
new file mode 100644
index 00000000..a2bc2f40
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floatcomplex.lst
@@ -0,0 +1 @@
+CLASS: FloatComplex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floor.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floor.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/floor.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/frmag.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/frmag.lst
new file mode 100644
index 00000000..f3e11998
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/frmag.lst
@@ -0,0 +1 @@
+CLASS: Frmag
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/global.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/global.lst
new file mode 100644
index 00000000..602d47af
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/global.lst
@@ -0,0 +1 @@
+CLASS: Global
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ifft.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ifft.lst
new file mode 100644
index 00000000..c2904825
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ifft.lst
@@ -0,0 +1 @@
+CLASS: IFFT
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/imag.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/imag.lst
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/imag.lst
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/int.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/int.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/int.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/inv.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/inv.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/inv.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isempty.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isempty.lst
new file mode 100644
index 00000000..14f24271
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isempty.lst
@@ -0,0 +1 @@
+CLASS: IsEmpty
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isnan.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isnan.lst
new file mode 100644
index 00000000..beb7b6fd
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/isnan.lst
@@ -0,0 +1 @@
+CLASS: OpApex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/length.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/length.lst
new file mode 100644
index 00000000..5d2a073b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/length.lst
@@ -0,0 +1 @@
+CLASS: Length
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/lev.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/lev.lst
new file mode 100644
index 00000000..b6da8e7b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/lev.lst
@@ -0,0 +1 @@
+CLASS: Lev
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log10.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log10.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/log10.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/max.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/max.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/max.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mclose.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mclose.lst
new file mode 100644
index 00000000..741aa6fe
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mclose.lst
@@ -0,0 +1 @@
+CLASS: Mclose
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mean.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mean.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mean.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/meanf.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/meanf.lst
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/meanf.lst
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mget.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mget.lst
new file mode 100644
index 00000000..6c933404
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mget.lst
@@ -0,0 +1 @@
+CLASS: Mget
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/min.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/min.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/min.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mopen.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mopen.lst
new file mode 100644
index 00000000..1405ba1d
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mopen.lst
@@ -0,0 +1 @@
+CLASS: Mopen
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mput.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mput.lst
new file mode 100644
index 00000000..ccf6b05f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mput.lst
@@ -0,0 +1 @@
+CLASS: Mput
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mseek.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mseek.lst
new file mode 100644
index 00000000..37c64924
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/mseek.lst
@@ -0,0 +1 @@
+CLASS: Mseek
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ones.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ones.lst
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/ones.lst
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/part.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/part.lst
new file mode 100644
index 00000000..6d6a8553
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/part.lst
@@ -0,0 +1 @@
+CLASS: Part
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/prod.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/prod.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/prod.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/rand.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/rand.lst
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/rand.lst
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/real.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/real.lst
new file mode 100644
index 00000000..d0d31001
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/real.lst
@@ -0,0 +1 @@
+CLASS: Abs
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/return.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/return.lst
new file mode 100644
index 00000000..eabb9118
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/return.lst
@@ -0,0 +1 @@
+CLASS: Return
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/round.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/round.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/round.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sin.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sin.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sin.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sinh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sinh.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sinh.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/size.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/size.lst
new file mode 100644
index 00000000..ca7c556c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/size.lst
@@ -0,0 +1 @@
+CLASS: Size
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sqrt.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sqrt.lst
new file mode 100644
index 00000000..f91ad693
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sqrt.lst
@@ -0,0 +1 @@
+CLASS: Sqrt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/st_deviation.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/st_deviation.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/st_deviation.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/stdevf.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/stdevf.lst
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/stdevf.lst
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strindex.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strindex.lst
new file mode 100644
index 00000000..9dca5862
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strindex.lst
@@ -0,0 +1 @@
+CLASS: Strindex
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strsubst.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strsubst.lst
new file mode 100644
index 00000000..03fa10a1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/strsubst.lst
@@ -0,0 +1 @@
+CLASS: StrSubSt
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sum.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sum.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/sum.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tan.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tan.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tan.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tanh.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tanh.lst
new file mode 100644
index 00000000..172545df
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/tanh.lst
@@ -0,0 +1 @@
+CLASS: Sin
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/trace.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/trace.lst
new file mode 100644
index 00000000..4da3715f
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/trace.lst
@@ -0,0 +1 @@
+CLASS: Trace
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variance.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variance.lst
new file mode 100644
index 00000000..fc9f4ff4
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variance.lst
@@ -0,0 +1 @@
+CLASS: Sum
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variancef.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variancef.lst
new file mode 100644
index 00000000..14ad3379
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/variancef.lst
@@ -0,0 +1 @@
+CLASS: Meanf
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/zeros.lst b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/zeros.lst
new file mode 100644
index 00000000..40b82d62
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SCI2CLib/CFunctionList/Functions/zeros.lst
@@ -0,0 +1 @@
+CLASS: Zeros
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SharedInfo.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SharedInfo.dat
new file mode 100644
index 00000000..b4d95127
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/SharedInfo.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.h b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.h
new file mode 100644
index 00000000..ba9fff86
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.h
@@ -0,0 +1,44 @@
+/*
+** ************************************************
+** hArtes/POLIBA SCILAB2C
+** Contact: raffaele.nutricato@tiscali.it
+** ************************************************
+*/
+
+
+/*
+** -----------------------
+** --- SCI2C Includes. ---
+** -----------------------
+*/
+#include "/cygdrive/d/NutricatoGAPSVN/PROGETTI_APERTI/POLIBA/hArtes/WP2_SCI2C/Software/Version_alpha/Scilab2C/CFiles/sci2cincludes/sci2clib.h"
+/*
+** ---------------------------
+** --- End SCI2C Includes. ---
+** ---------------------------
+*/
+
+
+/*
+** -------------------
+** --- Prototypes. ---
+** -------------------
+*/
+SCI2Cint main();
+/*
+** -----------------------
+** --- End Prototypes. ---
+** -----------------------
+*/
+
+
+/*
+** ------------------------
+** --- USER2C Includes. ---
+** ------------------------
+*/
+/*
+** ----------------------------
+** --- End USER2C Includes. ---
+** ----------------------------
+*/
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.rpt b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.rpt
new file mode 100644
index 00000000..6fffe51b
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main.rpt
@@ -0,0 +1,510 @@
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double a = 1;
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double b = 2;
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double c = 0;
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double ans1;
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp1[1][3];
+ SCI2Cint ____temp1Size[2] = {1,3};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp2[3][1];
+ SCI2Cint ____temp2Size[2] = {3,1};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp3[1][6];
+ SCI2Cint ____temp3Size[2] = {1,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double x[3][6];
+ SCI2Cint __xSize[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp4[3][6];
+ SCI2Cint ____temp4Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp5[3][6];
+ SCI2Cint ____temp5Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp6[3][6];
+ SCI2Cint ____temp6Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp7[3][6];
+ SCI2Cint ____temp7Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double y[3][6];
+ SCI2Cint __ySize[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double ans2;
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+ double __temp8[3][6];
+ SCI2Cint ____temp8Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp9[3][6];
+ SCI2Cint ____temp9Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double ans3;
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp10[3][6];
+ SCI2Cint ____temp10Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp11[3][6];
+ SCI2Cint ____temp11Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp12[3][6];
+ SCI2Cint ____temp12Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp13[3][6];
+ SCI2Cint ____temp13Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp14[3][6];
+ SCI2Cint ____temp14Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+ double __temp15[3][6];
+ SCI2Cint ____temp15Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp16[3][6];
+ SCI2Cint ____temp16Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp17[3][6];
+ SCI2Cint ____temp17Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp18[3][6];
+ SCI2Cint ____temp18Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp19[3][6];
+ SCI2Cint ____temp19Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp20[3][6];
+ SCI2Cint ____temp20Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp21[3][6];
+ SCI2Cint ____temp21Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double w[3][6];
+ SCI2Cint __wSize[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp22[3][6];
+ SCI2Cint ____temp22Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp23[3][6];
+ SCI2Cint ____temp23Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double __temp24[3][6];
+ SCI2Cint ____temp24Size[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+ double distxw[3][6];
+ SCI2Cint __distxwSize[2] = {3,6};
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+ double ans4;
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ ********************************
+ ==> Handling Funcall/Operation/Equal
+ ********************************
+
+
+
+ ************
+ ==> Handling EOL
+ ************
+
+
+
+ *******************
+ ==> Handling EndProgram
+ *******************
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_LOCVAR.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_LOCVAR.dat
new file mode 100644
index 00000000..7bedad40
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_LOCVAR.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_TMPVAR.dat b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_TMPVAR.dat
new file mode 100644
index 00000000..1ef590a2
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_TMPVAR.dat
Binary files differ
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_declarations.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_declarations.c
new file mode 100644
index 00000000..1b5d964c
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_declarations.c
@@ -0,0 +1,99 @@
+
+ double a = 1;
+
+ double b = 2;
+
+ double c = 0;
+
+ double ans1;
+
+ double __temp1[1][3];
+ SCI2Cint ____temp1Size[2] = {1,3};
+
+ double __temp2[3][1];
+ SCI2Cint ____temp2Size[2] = {3,1};
+
+ double __temp3[1][6];
+ SCI2Cint ____temp3Size[2] = {1,6};
+
+ double x[3][6];
+ SCI2Cint __xSize[2] = {3,6};
+
+ double __temp4[3][6];
+ SCI2Cint ____temp4Size[2] = {3,6};
+
+ double __temp5[3][6];
+ SCI2Cint ____temp5Size[2] = {3,6};
+
+ double __temp6[3][6];
+ SCI2Cint ____temp6Size[2] = {3,6};
+
+ double __temp7[3][6];
+ SCI2Cint ____temp7Size[2] = {3,6};
+
+ double y[3][6];
+ SCI2Cint __ySize[2] = {3,6};
+
+ double ans2;
+
+ double __temp8[3][6];
+ SCI2Cint ____temp8Size[2] = {3,6};
+
+ double __temp9[3][6];
+ SCI2Cint ____temp9Size[2] = {3,6};
+
+ double ans3;
+
+ double __temp10[3][6];
+ SCI2Cint ____temp10Size[2] = {3,6};
+
+ double __temp11[3][6];
+ SCI2Cint ____temp11Size[2] = {3,6};
+
+ double __temp12[3][6];
+ SCI2Cint ____temp12Size[2] = {3,6};
+
+ double __temp13[3][6];
+ SCI2Cint ____temp13Size[2] = {3,6};
+
+ double __temp14[3][6];
+ SCI2Cint ____temp14Size[2] = {3,6};
+
+ double __temp15[3][6];
+ SCI2Cint ____temp15Size[2] = {3,6};
+
+ double __temp16[3][6];
+ SCI2Cint ____temp16Size[2] = {3,6};
+
+ double __temp17[3][6];
+ SCI2Cint ____temp17Size[2] = {3,6};
+
+ double __temp18[3][6];
+ SCI2Cint ____temp18Size[2] = {3,6};
+
+ double __temp19[3][6];
+ SCI2Cint ____temp19Size[2] = {3,6};
+
+ double __temp20[3][6];
+ SCI2Cint ____temp20Size[2] = {3,6};
+
+ double __temp21[3][6];
+ SCI2Cint ____temp21Size[2] = {3,6};
+
+ double w[3][6];
+ SCI2Cint __wSize[2] = {3,6};
+
+ double __temp22[3][6];
+ SCI2Cint ____temp22Size[2] = {3,6};
+
+ double __temp23[3][6];
+ SCI2Cint ____temp23Size[2] = {3,6};
+
+ double __temp24[3][6];
+ SCI2Cint ____temp24Size[2] = {3,6};
+
+ double distxw[3][6];
+ SCI2Cint __distxwSize[2] = {3,6};
+
+ double ans4;
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_globaldeclarations.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_globaldeclarations.c
new file mode 100644
index 00000000..56f3b36e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_globaldeclarations.c
@@ -0,0 +1 @@
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_initvars.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_initvars.c
new file mode 100644
index 00000000..56f3b36e
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_initvars.c
@@ -0,0 +1 @@
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1.c
new file mode 100644
index 00000000..9b1114ac
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1.c
@@ -0,0 +1,167 @@
+/*
+ SCI2C: ------------------------------------------------------------------
+ SCI2C: //SCI2C: DEFAULT_PRECISION= DOUBLE
+ SCI2C:
+ SCI2C: function mainfunction()
+ SCI2C: ------------------------------------------------------------------
+*/
+SCI2Cint main()
+{
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Simple Scalar Addition ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: a = 1;
+ SCI2C: ##################################################################*/
+ a = d0OpEquald0(1);
+
+ /*SCI2C: ##################################################################
+ SCI2C: b = 2;
+ SCI2C: ##################################################################*/
+ b = d0OpEquald0(2);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = 0;
+ SCI2C: ##################################################################*/
+ c = d0OpEquald0(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = a + b;
+ SCI2C: ##################################################################*/
+ c = d0d0OpPlusd0(a,b);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(c);
+ SCI2C: ##################################################################*/
+ ans1 = d0dispd0(c);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Trigonometric Identity ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: x = (1:3)' * (4:9);
+ SCI2C: ##################################################################*/
+ d0d0OpColond2(1,3,(double* )__temp1);
+ d2OpApexd2((double* )__temp1, ____temp1Size,(double* )__temp2);
+ d0d0OpColond2(4,9,(double* )__temp3);
+ d2d2OpStard2((double* )__temp2, ____temp2Size,(double* )__temp3, ____temp3Size,(double* )x);
+
+ /*SCI2C: ##################################################################
+ SCI2C: y = (sin(x).^2) + (cos(x).^2);
+ SCI2C: ##################################################################*/
+ d2sind2((double* )x, __xSize,(double* )__temp4);
+ d2d0OpDotHatd2((double* )__temp4, ____temp4Size,2,(double* )__temp5);
+ d2cosd2((double* )x, __xSize,(double* )__temp6);
+ d2d0OpDotHatd2((double* )__temp6, ____temp6Size,2,(double* )__temp7);
+ d2d2OpPlusd2((double* )__temp5, ____temp5Size,(double* )__temp7, ____temp7Size,(double* )y);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(x);
+ SCI2C: ##################################################################*/
+ ans2 = d2dispd0((double* )x, __xSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(y-ones(3,6));
+ SCI2C: ##################################################################*/
+ d0d0onesd2(3,6,(double* )__temp8);
+ d2d2OpMinusd2((double* )y, __ySize,(double* )__temp8, ____temp8Size,(double* )__temp9);
+ ans3 = d2dispd0((double* )__temp9, ____temp9Size);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Computation of Distance ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // generate a vector w
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+ SCI2C: ##################################################################*/
+ d2d0OpStard2((double* )x, __xSize,3,(double* )__temp10);
+ d2cosd2((double* )__temp10, ____temp10Size,(double* )__temp11);
+ d2d0OpStard2((double* )__temp11, ____temp11Size,2,(double* )__temp12);
+ d2sind2((double* )__temp12, ____temp12Size,(double* )__temp13);
+ d2d2OpDotStard2((double* )__temp13, ____temp13Size,(double* )x, __xSize,(double* )__temp14);
+ d0d0onesd2(3,6,(double* )__temp15);
+ d2d0OpStard2((double* )y, __ySize,2,(double* )__temp16);
+ d2sind2((double* )__temp16, ____temp16Size,(double* )__temp17);
+ d2d2OpMinusd2((double* )x, __xSize,(double* )__temp17, ____temp17Size,(double* )__temp18);
+ d2cosd2((double* )__temp18, ____temp18Size,(double* )__temp19);
+ d2d2OpDotStard2((double* )__temp15, ____temp15Size,(double* )__temp19, ____temp19Size,(double* )__temp20);
+ d2d2OpPlusd2((double* )__temp14, ____temp14Size,(double* )__temp20, ____temp20Size,(double* )__temp21);
+ d2cosd2((double* )__temp21, ____temp21Size,(double* )w);
+
+ /*SCI2C: ##################################################################
+ SCI2C: distxw = sqrt(x.^2 + w.^2);
+ SCI2C: ##################################################################*/
+ d2d0OpDotHatd2((double* )x, __xSize,2,(double* )__temp22);
+ d2d0OpDotHatd2((double* )w, __wSize,2,(double* )__temp23);
+ d2d2OpPlusd2((double* )__temp22, ____temp22Size,(double* )__temp23, ____temp23Size,(double* )__temp24);
+ d2sqrtd2((double* )__temp24, ____temp24Size,(double* )distxw);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(distxw);
+ SCI2C: ##################################################################*/
+ ans4 = d2dispd0((double* )distxw, __distxwSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: endfunction
+ SCI2C: ##################################################################*/
+
+ /*
+ ** ---------------------
+ ** --- Free Section. ---
+ ** ---------------------
+ */
+ /*
+ ** -------------------------
+ ** --- End Free Section. ---
+ ** -------------------------
+ */
+
+ return(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+}
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1free.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1free.c
new file mode 100644
index 00000000..41584722
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass1free.c
@@ -0,0 +1,12 @@
+
+ /*
+ ** ---------------------
+ ** --- Free Section. ---
+ ** ---------------------
+ */
+ /*
+ ** -------------------------
+ ** --- End Free Section. ---
+ ** -------------------------
+ */
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass2.c b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass2.c
new file mode 100644
index 00000000..a8ce9700
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/main_pass2.c
@@ -0,0 +1,298 @@
+/*
+** -------------------------------------
+** --- Global Variables Declaration. ---
+** -------------------------------------
+*/
+
+
+/*
+** -----------------------------------------
+** --- End Global Variables Declaration. ---
+** -----------------------------------------
+*/
+
+/*
+ SCI2C: ------------------------------------------------------------------
+ SCI2C: //SCI2C: DEFAULT_PRECISION= DOUBLE
+ SCI2C:
+ SCI2C: function mainfunction()
+ SCI2C: ------------------------------------------------------------------
+*/
+SCI2Cint main()
+{
+/*
+** -----------------------------
+** --- Variable Declaration. ---
+** -----------------------------
+*/
+
+ double a = 1;
+
+ double b = 2;
+
+ double c = 0;
+
+ double ans1;
+
+ double __temp1[1][3];
+ SCI2Cint ____temp1Size[2] = {1,3};
+
+ double __temp2[3][1];
+ SCI2Cint ____temp2Size[2] = {3,1};
+
+ double __temp3[1][6];
+ SCI2Cint ____temp3Size[2] = {1,6};
+
+ double x[3][6];
+ SCI2Cint __xSize[2] = {3,6};
+
+ double __temp4[3][6];
+ SCI2Cint ____temp4Size[2] = {3,6};
+
+ double __temp5[3][6];
+ SCI2Cint ____temp5Size[2] = {3,6};
+
+ double __temp6[3][6];
+ SCI2Cint ____temp6Size[2] = {3,6};
+
+ double __temp7[3][6];
+ SCI2Cint ____temp7Size[2] = {3,6};
+
+ double y[3][6];
+ SCI2Cint __ySize[2] = {3,6};
+
+ double ans2;
+
+ double __temp8[3][6];
+ SCI2Cint ____temp8Size[2] = {3,6};
+
+ double __temp9[3][6];
+ SCI2Cint ____temp9Size[2] = {3,6};
+
+ double ans3;
+
+ double __temp10[3][6];
+ SCI2Cint ____temp10Size[2] = {3,6};
+
+ double __temp11[3][6];
+ SCI2Cint ____temp11Size[2] = {3,6};
+
+ double __temp12[3][6];
+ SCI2Cint ____temp12Size[2] = {3,6};
+
+ double __temp13[3][6];
+ SCI2Cint ____temp13Size[2] = {3,6};
+
+ double __temp14[3][6];
+ SCI2Cint ____temp14Size[2] = {3,6};
+
+ double __temp15[3][6];
+ SCI2Cint ____temp15Size[2] = {3,6};
+
+ double __temp16[3][6];
+ SCI2Cint ____temp16Size[2] = {3,6};
+
+ double __temp17[3][6];
+ SCI2Cint ____temp17Size[2] = {3,6};
+
+ double __temp18[3][6];
+ SCI2Cint ____temp18Size[2] = {3,6};
+
+ double __temp19[3][6];
+ SCI2Cint ____temp19Size[2] = {3,6};
+
+ double __temp20[3][6];
+ SCI2Cint ____temp20Size[2] = {3,6};
+
+ double __temp21[3][6];
+ SCI2Cint ____temp21Size[2] = {3,6};
+
+ double w[3][6];
+ SCI2Cint __wSize[2] = {3,6};
+
+ double __temp22[3][6];
+ SCI2Cint ____temp22Size[2] = {3,6};
+
+ double __temp23[3][6];
+ SCI2Cint ____temp23Size[2] = {3,6};
+
+ double __temp24[3][6];
+ SCI2Cint ____temp24Size[2] = {3,6};
+
+ double distxw[3][6];
+ SCI2Cint __distxwSize[2] = {3,6};
+
+ double ans4;
+
+
+
+
+/*
+** ---------------------------------
+** --- End Variable Declaration. ---
+** ---------------------------------
+*/
+/*
+** ---------------
+** --- C code. ---
+** ---------------
+*/
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Simple Scalar Addition ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: a = 1;
+ SCI2C: ##################################################################*/
+ a = d0OpEquald0(1);
+
+ /*SCI2C: ##################################################################
+ SCI2C: b = 2;
+ SCI2C: ##################################################################*/
+ b = d0OpEquald0(2);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = 0;
+ SCI2C: ##################################################################*/
+ c = d0OpEquald0(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C: c = a + b;
+ SCI2C: ##################################################################*/
+ c = d0d0OpPlusd0(a,b);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(c);
+ SCI2C: ##################################################################*/
+ ans1 = d0dispd0(c);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Trigonometric Identity ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // ------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: x = (1:3)' * (4:9);
+ SCI2C: ##################################################################*/
+ d0d0OpColond2(1,3,(double* )__temp1);
+ d2OpApexd2((double* )__temp1, ____temp1Size,(double* )__temp2);
+ d0d0OpColond2(4,9,(double* )__temp3);
+ d2d2OpStard2((double* )__temp2, ____temp2Size,(double* )__temp3, ____temp3Size,(double* )x);
+
+ /*SCI2C: ##################################################################
+ SCI2C: y = (sin(x).^2) + (cos(x).^2);
+ SCI2C: ##################################################################*/
+ d2sind2((double* )x, __xSize,(double* )__temp4);
+ d2d0OpDotHatd2((double* )__temp4, ____temp4Size,2,(double* )__temp5);
+ d2cosd2((double* )x, __xSize,(double* )__temp6);
+ d2d0OpDotHatd2((double* )__temp6, ____temp6Size,2,(double* )__temp7);
+ d2d2OpPlusd2((double* )__temp5, ____temp5Size,(double* )__temp7, ____temp7Size,(double* )y);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(x);
+ SCI2C: ##################################################################*/
+ ans2 = d2dispd0((double* )x, __xSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(y-ones(3,6));
+ SCI2C: ##################################################################*/
+ d0d0onesd2(3,6,(double* )__temp8);
+ d2d2OpMinusd2((double* )y, __ySize,(double* )__temp8, ____temp8Size,(double* )__temp9);
+ ans3 = d2dispd0((double* )__temp9, ____temp9Size);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // --- Computation of Distance ---
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // -------------------------------
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: // generate a vector w
+ SCI2C: ##################################################################*/
+
+ /*SCI2C: ##################################################################
+ SCI2C: w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+ SCI2C: ##################################################################*/
+ d2d0OpStard2((double* )x, __xSize,3,(double* )__temp10);
+ d2cosd2((double* )__temp10, ____temp10Size,(double* )__temp11);
+ d2d0OpStard2((double* )__temp11, ____temp11Size,2,(double* )__temp12);
+ d2sind2((double* )__temp12, ____temp12Size,(double* )__temp13);
+ d2d2OpDotStard2((double* )__temp13, ____temp13Size,(double* )x, __xSize,(double* )__temp14);
+ d0d0onesd2(3,6,(double* )__temp15);
+ d2d0OpStard2((double* )y, __ySize,2,(double* )__temp16);
+ d2sind2((double* )__temp16, ____temp16Size,(double* )__temp17);
+ d2d2OpMinusd2((double* )x, __xSize,(double* )__temp17, ____temp17Size,(double* )__temp18);
+ d2cosd2((double* )__temp18, ____temp18Size,(double* )__temp19);
+ d2d2OpDotStard2((double* )__temp15, ____temp15Size,(double* )__temp19, ____temp19Size,(double* )__temp20);
+ d2d2OpPlusd2((double* )__temp14, ____temp14Size,(double* )__temp20, ____temp20Size,(double* )__temp21);
+ d2cosd2((double* )__temp21, ____temp21Size,(double* )w);
+
+ /*SCI2C: ##################################################################
+ SCI2C: distxw = sqrt(x.^2 + w.^2);
+ SCI2C: ##################################################################*/
+ d2d0OpDotHatd2((double* )x, __xSize,2,(double* )__temp22);
+ d2d0OpDotHatd2((double* )w, __wSize,2,(double* )__temp23);
+ d2d2OpPlusd2((double* )__temp22, ____temp22Size,(double* )__temp23, ____temp23Size,(double* )__temp24);
+ d2sqrtd2((double* )__temp24, ____temp24Size,(double* )distxw);
+
+ /*SCI2C: ##################################################################
+ SCI2C: disp(distxw);
+ SCI2C: ##################################################################*/
+ ans4 = d2dispd0((double* )distxw, __distxwSize);
+
+ /*SCI2C: ##################################################################
+ SCI2C: endfunction
+ SCI2C: ##################################################################*/
+
+ /*
+ ** ---------------------
+ ** --- Free Section. ---
+ ** ---------------------
+ */
+ /*
+ ** -------------------------
+ ** --- End Free Section. ---
+ ** -------------------------
+ */
+
+ return(0);
+
+ /*SCI2C: ##################################################################
+ SCI2C:
+ SCI2C: ##################################################################*/
+}
+
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction.ast b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction.ast
new file mode 100644
index 00000000..a6ce9bb1
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction.ast
@@ -0,0 +1,272 @@
+ Program
+ Name : mainfunction
+ Outputs: <empty>
+ Inputs : <empty>
+ Statements
+ <EOL>
+ <EOL>
+ Comment : ------------------------------
+ <EOL>
+ Comment : --- Simple Scalar Addition ---
+ <EOL>
+ Comment : ------------------------------
+ <EOL>
+ Equal
+ Expression:
+ Number_x: 1
+ Lhs :
+ Variable: a
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Number_x: 2
+ Lhs :
+ Variable: b
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Number_x: 0
+ Lhs :
+ Variable: c
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Operation
+ Operands:
+ Variable: a
+ Variable: b
+ Operator: +
+ EndOperation
+ Lhs :
+ Variable: c
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Funcall : disp
+ #lhs : 1
+ Rhs :
+ Variable: c
+ EndFuncall
+ Lhs :
+ Variable: ans1
+ EndEqual
+ <EOL>
+ <EOL>
+ Comment : ------------------------------
+ <EOL>
+ Comment : --- Trigonometric Identity ---
+ <EOL>
+ Comment : ------------------------------
+ <EOL>
+ Equal
+ Expression:
+ Operation
+ Operands:
+ Operation
+ Operands:
+ Operation
+ Operands:
+ Number_x: 1
+ Number_x: 3
+ Operator: :
+ EndOperation
+ Operator: '
+ EndOperation
+ Operation
+ Operands:
+ Number_x: 4
+ Number_x: 9
+ Operator: :
+ EndOperation
+ Operator: *
+ EndOperation
+ Lhs :
+ Variable: x
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Operation
+ Operands:
+ Operation
+ Operands:
+ Funcall : sin
+ #lhs : 1
+ Rhs :
+ Variable: x
+ EndFuncall
+ Number_x: 2
+ Operator: .^
+ EndOperation
+ Operation
+ Operands:
+ Funcall : cos
+ #lhs : 1
+ Rhs :
+ Variable: x
+ EndFuncall
+ Number_x: 2
+ Operator: .^
+ EndOperation
+ Operator: +
+ EndOperation
+ Lhs :
+ Variable: y
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Funcall : disp
+ #lhs : 1
+ Rhs :
+ Variable: x
+ EndFuncall
+ Lhs :
+ Variable: ans2
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Funcall : disp
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Variable: y
+ Funcall : ones
+ #lhs : 1
+ Rhs :
+ Number_x: 3
+ Number_x: 6
+ EndFuncall
+ Operator: -
+ EndOperation
+ EndFuncall
+ Lhs :
+ Variable: ans3
+ EndEqual
+ <EOL>
+ <EOL>
+ Comment : -------------------------------
+ <EOL>
+ Comment : --- Computation of Distance ---
+ <EOL>
+ Comment : -------------------------------
+ <EOL>
+ Comment : generate a vector w
+ <EOL>
+ Equal
+ Expression:
+ Funcall : cos
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Operation
+ Operands:
+ Funcall : sin
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Funcall : cos
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Variable: x
+ Number_x: 3
+ Operator: *
+ EndOperation
+ EndFuncall
+ Number_x: 2
+ Operator: *
+ EndOperation
+ EndFuncall
+ Variable: x
+ Operator: .*
+ EndOperation
+ Operation
+ Operands:
+ Funcall : ones
+ #lhs : 1
+ Rhs :
+ Number_x: 3
+ Number_x: 6
+ EndFuncall
+ Funcall : cos
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Variable: x
+ Funcall : sin
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Variable: y
+ Number_x: 2
+ Operator: *
+ EndOperation
+ EndFuncall
+ Operator: -
+ EndOperation
+ EndFuncall
+ Operator: .*
+ EndOperation
+ Operator: +
+ EndOperation
+ EndFuncall
+ Lhs :
+ Variable: w
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Funcall : sqrt
+ #lhs : 1
+ Rhs :
+ Operation
+ Operands:
+ Operation
+ Operands:
+ Variable: x
+ Number_x: 2
+ Operator: .^
+ EndOperation
+ Operation
+ Operands:
+ Variable: w
+ Number_x: 2
+ Operator: .^
+ EndOperation
+ Operator: +
+ EndOperation
+ EndFuncall
+ Lhs :
+ Variable: distxw
+ EndEqual
+ <EOL>
+ Equal
+ Expression:
+ Funcall : disp
+ #lhs : 1
+ Rhs :
+ Variable: distxw
+ EndFuncall
+ Lhs :
+ Variable: ans4
+ EndEqual
+ <EOL>
+ Funcall : return
+ #lhs : 0
+ Rhs :
+ <empty>
+ EndFuncall
+ <EOL>
+ EndProgram
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction_copy.sci b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction_copy.sci
new file mode 100644
index 00000000..e39f7648
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/SCI2CTmpResultsReports/mainfunction/mainfunction_copy.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+// ------------------------------
+// --- Simple Scalar Addition ---
+// ------------------------------
+a = 1;
+b = 2;
+c = 0;
+c = a + b;
+disp(c);
+
+// ------------------------------
+// --- Trigonometric Identity ---
+// ------------------------------
+x = (1:3)' * (4:9);
+y = (sin(x).^2) + (cos(x).^2);
+disp(x);
+disp(y-ones(3,6));
+
+// -------------------------------
+// --- Computation of Distance ---
+// -------------------------------
+// generate a vector w
+w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+distxw = sqrt(x.^2 + w.^2);
+disp(distxw);
+endfunction
+ \ No newline at end of file
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..e39f7648
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci
@@ -0,0 +1,30 @@
+//SCI2C: DEFAULT_PRECISION= DOUBLE
+
+function mainfunction()
+
+// ------------------------------
+// --- Simple Scalar Addition ---
+// ------------------------------
+a = 1;
+b = 2;
+c = 0;
+c = a + b;
+disp(c);
+
+// ------------------------------
+// --- Trigonometric Identity ---
+// ------------------------------
+x = (1:3)' * (4:9);
+y = (sin(x).^2) + (cos(x).^2);
+disp(x);
+disp(y-ones(3,6));
+
+// -------------------------------
+// --- Computation of Distance ---
+// -------------------------------
+// generate a vector w
+w = cos(sin(cos(x*3)*2).* x+ones(3,6).*cos(x-sin(y*2)));
+distxw = sqrt(x.^2 + w.^2);
+disp(distxw);
+endfunction
+ \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/%program_p.sci b/src/Scilab2C/Scilab2C/ASTManagement/%program_p.sci
new file mode 100644
index 00000000..bcd51209
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/%program_p.sci
@@ -0,0 +1,202 @@
+function %program_p(p)
+ //overloading function for "program" type tlist display
+ mprintf("%s\n",string(p))
+endfunction
+
+function txt=%program_string(p)
+//overloading function for "program" type tlist string function
+//main (root) node of the Abstract Formal Tree
+//fields:
+// name : string (the function name)
+// outputs : list of "variable" type tlist (the output arg names)
+// inputs : list of "variable" type tlist (the intput arg names)
+// statements: list of "equal" type tlist and list('EOL') (the
+// instructions list)
+// nblines : number (the number of lines in the scilab function)
+ txt=['Program'
+ 'Name : '+p.name
+ 'Outputs: '+strcat(objectlist2string(p.outputs),' ')
+ 'Inputs : '+strcat(objectlist2string(p.inputs),' ')
+ 'Statements '
+ ' '+objectlist2string(p.statements)
+ 'EndProgram'
+ ]
+endfunction
+
+
+function txt=%equal_string(e)
+//overloading function for "equal" type tlist string function
+//this is a node of the AST
+
+//fields:
+// expression: "expression" type tlist (the right hand side)
+// lhs : list of "variable" type tlist and "operation" type tlist // (the assignment)
+// endsymbol : string (the orginal end-of-instruction symbol (, ; <CR>))
+ txt=['Equal'
+ ' Expression: '
+ ' '+string(e.expression)
+ ' Lhs : '
+ ' '+objectlist2string(e.lhs)
+ 'EndEqual'
+ ]
+endfunction
+
+
+function txt=%for_string(F)
+//overloading function for "for" type tlist string function
+//this is a node of the AST
+//fields:
+// expression : "expression" type tlist (the loop expression)
+// statements : list of "equal" type tlist and list('EOL') (the
+// for instructions list)
+//NUT: raf cambiato ForExpression e ForStatements
+ txt=['For'
+ ' ForExpression:'
+ ' '+string(F.expression)
+ ' ForStatements:'
+ ' '+objectlist2string(F.statements)
+ 'EndFor']
+endfunction
+
+function txt=%while_string(W)
+//overloading function for "while" type tlist string function
+//this is a node of the AST
+//fields:
+// expression : "expression" type tlist (the loop expression)
+// statements : list of "equal" type tlist and list('EOL') (the
+// while instructions list)
+ txt=['While'
+ ' WhileExpression:'
+ ' '+string(W.expression)
+ ' WhileStatements:'
+ ' '+objectlist2string(W.statements)
+ 'EndWhile']
+endfunction
+
+function txt=%ifthenel_string(I)
+//overloading function for "ifthenel" type tlist string function
+//this is a node of the AST
+//fields:
+// expression : "expression" type tlist (the if expression)
+// then : list of "equal" type tlist and list('EOL') (the
+// then instructions list)
+// elseifs : a list of tlists
+// else : list of "equal" type tlist and list('EOL') (the
+// else instructions list)
+ txt=['If '
+ ' Expression:'
+ ' '+string(I.expression)
+ ' If Statements'
+ ' '+objectlist2string(I.then)]
+ for e=I.elseifs
+ txt=[txt;
+ ' Else If Expression'
+ ' '+string(e.expression)
+ ' Else If Statements'
+ ' '+objectlist2string(e.then)]
+ end
+ txt=[txt;
+ ' Else Statements'
+ ' '+objectlist2string(I.else)
+ 'EndIf']
+endfunction
+
+function txt=%operatio_string(O)
+//overloading function for "operation" type tlist string function
+//this is a node of the AST
+//fields:
+// operands: a list
+// operator: a string
+ txt=['Operation'
+ ' Operands:'
+ ' '+objectlist2string(O.operands)
+ ' Operator: '+O.operator
+ 'EndOperation'
+ ]
+endfunction
+
+function txt=%funcall_string(F)
+//overloading function for "funcall" type tlist string function
+//this is a node of the AST
+//fields:
+// rhs : a list
+// name : string, the name of the function
+// lhsnb: number, the number of function lhs
+
+txt=['Funcall : '+F.name
+ ' #lhs : '+string(F.lhsnb)
+ ' Rhs : '
+ ' '+objectlist2string(F.rhs)
+ 'EndFuncall'
+ ]
+endfunction
+
+function txt=%variable_string(v)
+ global anscounter; //NUT: just to fix problem with ans variables.
+//overloading function for "variable" type tlist string function
+//fields: name
+//this is a leaf of the AST
+//NUT: changed here. For me %i is a number not a variable.
+ if (v.name == "%T" | ...
+ v.name == "%F"| ...
+ v.name == "%nan"| ...
+ v.name == "%inf"| ...
+ v.name == "%pi")
+ txt=['Number_x: '+v.name];
+ elseif (v.name == "%i")
+ txt=['Number_X: '+v.name];
+ else
+ if (v.name == 'ans')
+ anscounter = anscounter + 1;
+ txt=['Variable: '+v.name+string(anscounter)];
+ else
+ txt=['Variable: '+v.name];
+ end
+ end
+endfunction
+
+function txt=%cste_string(c)
+//overloading function for "cste" type tlist string function
+//this is a leaf of the AST
+//fields:
+// value : a number or a string
+//NUT: added cste I also need "" for strings in order to be sure that the blanks are
+//NUT: correctly considered and not mistaken with additional blanks present in the ast text file.
+ stringcvalue = string(c.value);
+ if (stringcvalue == "%T" | ...
+ stringcvalue == "%F" | ...
+ stringcvalue == "%nan" | ...
+ stringcvalue == "%inf" | ...
+ stringcvalue == "%pi")
+ txt=['Number_x: '+stringcvalue];
+ elseif (SCI2Cisnum(stringcvalue))
+ //NUT needed to convert format 1D-14 into 1d-14
+ txt=['Number_x: '+strsubst(stringcvalue,'D','e')];
+ elseif (stringcvalue == "%i")
+ txt=['Number_X: '+stringcvalue];
+ else
+ txt=['String: ""'+stringcvalue+'""'];
+ end
+endfunction
+
+function txt=%comment_string(e)
+//overloading function for "comment" type tlist string function
+//fields:
+// text: a string
+//this is a leaf of the AST
+ txt=['Comment : '+e.text]
+endfunction
+
+function txt=objectlist2string(L)
+//auxiliary function for conversion of a list of objects
+//into a string vector
+ txt=[];
+ for o=L,
+ if type(o)==15 then //EOL case
+ txt=[txt;'<'+o(1)+'>'],
+ else
+ txt=[txt; string(o)],
+ end
+ end
+ if txt==[] then txt='<empty>',end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST2Ccode.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST2Ccode.sci
new file mode 100644
index 00000000..bb9b13c1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST2Ccode.sci
@@ -0,0 +1,224 @@
+function AST2Ccode(FileInfoDatFile)
+// function AST2Ccode(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-May-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+//NUT: questa funzione e' da sistemare meglio
+
+// ---------------------
+// --- Load section. ---
+// ---------------------
+// --- Load File Info Structure. ---
+load(FileInfoDatFile,'FileInfo');
+
+// --- Load Shared Info Structure. ---
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+// -------------------------
+// --- End load section. ---
+// -------------------------
+
+// ---------------------------------------------------
+// --- Extraction of the function name and number. ---
+// ---------------------------------------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+// ---------------------------------
+// --- Parameter Initialization. ---
+// ---------------------------------
+global SCI2CSTACK
+SCI2CSTACK = ['EMPTYSTACK'];
+
+global StackPosition;
+StackPosition = 1;
+
+global STACKDEDUG
+STACKDEDUG = 0; // 1 -> Every Pop and Push operation on the stack, the stack content will be printed on screen.
+// -------------------------------------
+// --- End parameter Initialization. ---
+// -------------------------------------
+
+ASTFileName = FileInfo.Funct(nxtscifunnumber).ASTFileName;
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+// --- Open AST file. ---
+SharedInfo.ASTReader.fidAST = SCI2COpenFileRead(ASTFileName);
+fidAST = SharedInfo.ASTReader.fidAST;
+
+OrigWorkAreaUsedBytes = SharedInfo.WorkAreaUsedBytes;
+OrigUsedTempScalarVars = SharedInfo.UsedTempScalarVars;
+
+PrintStepInfo('Generate C code in '+FileInfo.Funct(nxtscifunnumber).FinalCFileName,...
+ FileInfo.GeneralReport,'both');
+// ---------------------------
+// --- End initialization. ---
+// ---------------------------
+
+// ------------------------
+// --- Parse AST header. ---
+// ------------------------
+ASTHeader = AST_ReadASTHeader(fidAST,ReportFileName);
+SharedInfo = AST_HandleHeader(ASTHeader,FileInfo,SharedInfo);
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+AST_PushASTStack('Dummy');
+// ----------------------------
+// --- End Parse AST header. ---
+// ----------------------------
+
+ TempVars = [];
+ SharedInfo.WorkAreaUsedBytes = OrigWorkAreaUsedBytes;
+ SharedInfo.UsedTempScalarVars = OrigUsedTempScalarVars;
+ SharedInfo.ASTReader.UsedTempVars = 0;
+
+// ----------------------------------
+// --- Main loop to read the AST. ---
+// ----------------------------------
+
+while ~meof(fidAST)
+ // Read a line from the AST
+ tline = mgetl(fidAST,1);
+ AST_CheckLineLength(tline);
+ treeline = stripblanks(tline);
+
+ if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+ end
+
+ // Analyze line.
+ select treeline
+
+ // ------------------
+ // --- Functions. ---
+ // ------------------
+ case 'EndOperation' then
+ [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Operation');
+ case 'EndFuncall' then
+ [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Funcall');
+
+ // --------------
+ // --- Equal. ---
+ // --------------
+ case 'EndEqual' then
+ [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,'Equal');
+ SharedInfo = INIT_SharedInfoEqual(SharedInfo);
+ case 'Equal' then
+ SharedInfo.Equal.Enabled = 1; // 1 means enabled -> we are inside an equal AST block.
+ AST_PushASTStack(treeline);
+ case 'Lhs :' then
+ SharedInfo.Equal.Lhs = 1; // 1 means that we are inside the Lhs block of the Equal
+ [EqualInArgName,EqualInArgScope,EqualNInArg] = AST_ReadEqualRhsNames(FileInfo,SharedInfo);
+ SharedInfo.Equal.NInArg = EqualNInArg;
+ for tmpcnt = 1:SharedInfo.Equal.NInArg
+ SharedInfo.Equal.InArg(tmpcnt).Name = EqualInArgName(tmpcnt);
+ SharedInfo.Equal.InArg(tmpcnt).Scope = EqualInArgScope(tmpcnt);
+ end
+ AST_PushASTStack(treeline);
+
+ // ----------------
+ // --- If/Else. ---
+ // ----------------
+ //NUT: da verificare la gestione dello stack
+ case 'If Statements' then
+ error('IF NOT SUPPORTED YET');
+ [FileInfo,SharedInfo] = AST_HandleIfElse(FileInfo,SharedInfo,'if');
+ case 'Else If Expression' then
+ AST_PushASTStack(treeline);
+ [FileInfo,SharedInfo] = AST_HandleIfElse(FileInfo,SharedInfo,'else');
+ case 'Else If Statements' then
+ [FileInfo,SharedInfo] = AST_HandleIfElse(FileInfo,SharedInfo,'elseif');
+ case 'Else Statements' then
+ [FileInfo,SharedInfo] = AST_HandleIfElse(FileInfo,SharedInfo,'else');
+ case 'EndIf' then
+ for counter=1:SharedInfo.CountNestedIf+1
+ SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,'out');
+ end
+ SharedInfo.CountNestedIf = 0;
+
+ // --------------
+ // --- Dummy. ---
+ // --------------
+ case 'Comment :' then
+ AST_HandleEOL(FileInfo,SharedInfo); //NUT: si potrebbe differenziare comment da EOL
+ case '<EOL>' then
+ AST_HandleEOL(FileInfo,SharedInfo);
+
+ // -----------------
+ // --- Epilogue. ---
+ // -----------------
+ case 'EndProgram'
+ SharedInfo = AST_HandleEndProgram(FileInfo,SharedInfo);
+
+ // ------------
+ // --- For. ---
+ // ------------
+ case 'For' then
+ error('FOR NOT SUPPORTED YET');
+ SharedInfo.For.Level = SharedInfo.For.Level + 1;
+ FileInfo = AST_HandleFor(FileInfo,SharedInfo);
+ case 'ForExpression:'
+ AST_PushASTStack(treeline);
+ SharedInfo.ForExpr.OnExec = SharedInfo.ForExpr.OnExec + 1;
+ case 'ForStatements:'
+ [FileInfo,SharedInfo] = AST_HandleForStatem(FileInfo,SharedInfo);
+ case 'EndFor' then
+ SharedInfo = AST_HandleEndFor(FileInfo,SharedInfo);
+ SharedInfo.For.Level = SharedInfo.For.Level - 1;
+
+ // --------------
+ // --- While. ---
+ // --------------
+ case 'While' then
+ error('WHILE NOT SUPPORTED YET');
+ AST_PushASTStack(treeline);
+ SharedInfo.While.Level = SharedInfo.While.Level + 1;
+ case 'WhileExpression:'
+ AST_PushASTStack(treeline);
+ [FileInfo,SharedInfo] = AST_HandleWhileExpr(FileInfo,SharedInfo);
+ case 'WhileStatements:'
+ [FileInfo,SharedInfo] = AST_HandleWhileStatem(FileInfo,SharedInfo);
+ case 'EndWhile' then
+ SharedInfo = AST_HandleEndWhile(FileInfo,SharedInfo);
+ SharedInfo.While.Level = SharedInfo.While.Level - 1;
+
+ // ----------------
+ // --- Default. ---
+ // ----------------
+ else
+ AST_PushASTStack(treeline);
+ end
+end
+// --------------------------------------
+// --- End main loop to read the AST. ---
+// --------------------------------------
+
+mclose(fidAST);
+// ---------------------
+// --- Save section. ---
+// ---------------------
+// --- Save Shared Info Structure. ---
+save(SharedInfoDatFile,SharedInfo);
+// -------------------------
+// --- End save section. ---
+// -------------------------
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckCommonInOutArgs.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckCommonInOutArgs.sci
new file mode 100644
index 00000000..a531abff
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckCommonInOutArgs.sci
@@ -0,0 +1,62 @@
+function AST_CheckCommonInOutArgs(InArg,NInArg,OutArg,NOutArg,ReportFileName)
+// function AST_CheckCommonInOutArgs(InArg,NInArg,OutArg,NOutArg,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+
+ncommonstrings = 0;
+commonstrings = '';
+
+for cnt1 = 1:NInArg
+ for cnt2 = 1:NOutArg
+ if ((InArg(cnt1).Name == OutArg(cnt2).Name) & ...
+ (InArg(cnt1).Dimension > 0))
+ ncommonstrings = ncommonstrings + 1;
+ commonstrings(ncommonstrings) = InArg(cnt1).Name;
+ end
+ end
+end
+
+
+if (ncommonstrings > 0)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Found '+string(ncommonstrings)+' input/output 2-D arguments',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: with the same name: ',ReportFileName,'both','y');
+ for cntstr = 1:ncommonstrings
+ PrintStringInfo('SCI2CERROR: Arg('+string(cntstr)+'): '+commonstrings(cntstr),ReportFileName,'both','y');
+ end
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: This approach is not allowed because it is not safe',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: due to the fact that arrays are passed by reference to functions.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: For example if A is a squared matrix then the following code,',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: A = A'';',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: could generate incorrect results.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please consider renaming input or output arguments.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: See examples below:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: // Example 1: Function call.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: A = zeros(10,9);',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: A = sin(A); // Not Allowed',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: // The previous line must be rewritten as:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: MYTMP = A; // Allowed',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: A = sin(MYTMP); // Allowed',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: // Example 2: Function definition.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: function d = myfun(a,b,c,d) // Not Allowed',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: // The previous line must be rewritten as:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: function e = myfun(a,b,c,d) // Not Allowed',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLastFunc.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLastFunc.sci
new file mode 100644
index 00000000..a1f3ede6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLastFunc.sci
@@ -0,0 +1,65 @@
+function [LhsArgNames,LhsArgScope,NLhsArg] = AST_CheckLastFunc(fidAST,SearchLevel)
+// function [LhsArgNames,LhsArgScope,NLhsArg] = AST_CheckLastFunc(fidAST,SearchLevel)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+astfilepos = mtell(fidAST);
+NLhsArg = 0;
+LhsArgNames = '';
+LhsArgScope = '';
+FlagLastFunc = 0;
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+LhsField = stripblanks(tline);
+if ((SearchLevel == 1) & (LhsField == 'EndFuncall'))
+ SearchLevel = 0;
+ tline = mgetl(fidAST,1);
+ AST_CheckLineLength(tline);
+ LhsField = stripblanks(tline);
+end
+if ((SearchLevel == 0) & (LhsField == 'Lhs :'))
+ tline = mgetl(fidAST,1);
+ AST_CheckLineLength(tline);
+ LhsField = stripblanks(tline);
+ while(LhsField ~= 'EndEqual')
+ NLhsArg = NLhsArg + 1;
+ if (LhsField == '<EOL>')
+ SCI2Cerror('Found <EOL> before EndEqual');
+ elseif (LhsField == 'EndProgram')
+ SCI2Cerror('Found EndProgram before EndEqual');
+ end
+ if (LhsField == 'Operation')
+ LhsField = 'EndEqual'; // Force the exit from the while.
+ NLhsArg = 0;
+ LhsArgNames = '';
+ LhsArgScope = '';
+ else
+ [LhsArgNames(NLhsArg),LhsArgScope(NLhsArg)] = AST_ExtractNameAndScope(LhsField);
+ tline = mgetl(fidAST,1);
+ AST_CheckLineLength(tline);
+ LhsField = stripblanks(tline);
+ end
+ end
+end
+mseek(astfilepos,fidAST,'set');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLineLength.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLineLength.sci
new file mode 100644
index 00000000..7a349d73
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckLineLength.sci
@@ -0,0 +1,21 @@
+function AST_CheckLineLength(instring)
+// function AST_CheckLineLength(instring)
+// -----------------------------------------------------------------
+//
+// Status:
+// 15-May-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+if length(instring) > 77
+ SCI2Cerror('Line too long: please reduce the length of the current line.');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckPrecSpecifier.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckPrecSpecifier.sci
new file mode 100644
index 00000000..bd854165
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_CheckPrecSpecifier.sci
@@ -0,0 +1,53 @@
+function AnnotationFnc = AST_CheckPrecSpecifier(FunctionName,FileInfo,SharedInfo);
+// function AnnotationFnc = AST_CheckPrecSpecifier(FunctionName,FileInfo,SharedInfo);
+// -----------------------------------------------------------------
+//
+// Status:
+// 13-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+PrintStringInfo(' ',ReportFileName,'file','y');
+
+//NUT: da sistemare senza le global
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+AnnotationFnc = 'default';
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+Pop1 = AST_PopASTStack(); // Rhs :
+if (mtlb_strcmp(stripblanks(Pop1),'Rhs :'))
+ Pop2 = AST_PopASTStack(); // #lhs : 1
+ if (mtlb_strcmp(stripblanks(Pop2),'#lhs : 1'))
+ Pop3 = AST_PopASTStack(); // Funcall : double
+ FunctionName = stripblanks(part(Pop3,12:length(Pop3)));
+ for counterdataprec = 1:max(size(SharedInfo.Annotations.DataPrec))
+ if (mtlb_strcmp(FunctionName,SharedInfo.Annotations.DataPrec(counterdataprec)))
+ AnnotationFnc = FunctionName;
+ end
+ end
+ AST_PushASTStack(Pop3);
+ end
+ AST_PushASTStack(Pop2);
+end
+AST_PushASTStack(Pop1);
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_DisplayStack.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_DisplayStack.sci
new file mode 100644
index 00000000..807a4d22
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_DisplayStack.sci
@@ -0,0 +1,33 @@
+function AST_DisplayStack()
+// function AST_DisplayStack()
+// -----------------------------------------------------------------
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+disp('*********************')
+disp('*********************')
+
+if (STACKDEDUG == 1)
+ for counterposition = 1:StackPosition
+ disp(SCI2CSTACK(counterposition,1))
+ end
+end
+disp('---------------------')
+disp('---------------------')
+disp(' ');disp(' ');disp('Press return to continue'); halt;
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ExtractNameAndScope.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ExtractNameAndScope.sci
new file mode 100644
index 00000000..1adc1e30
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ExtractNameAndScope.sci
@@ -0,0 +1,78 @@
+function [ArgName,ArgScope] = AST_ExtractNameAndScope(ASTField)
+// -----------------------------------------------------------------
+// Status:
+// 27-Dec-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+ArgName = '';
+ArgScope = '';
+
+cnttag = 0;
+cnttag = cnttag + 1;
+tagname(cnttag) = 'Number_';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = 'String:';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = 'Variable:';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = 'Global:';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = 'Local:';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = 'Temp:';
+taglength(cnttag) = length(tagname(cnttag));
+
+cnttag = cnttag + 1;
+tagname(cnttag) = '<empty>';
+taglength(cnttag) = length(tagname(cnttag));
+
+fieldlength = length(ASTField);
+
+if (SCI2Cstrncmps1size(tagname(1),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(1)+3:fieldlength));
+ ArgScope = stripblanks(part(ASTField,1:taglength(1)+1));
+elseif (SCI2Cstrncmps1size(tagname(2),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(2)+1:fieldlength));
+ ArgName = part(ArgName,2:length(ArgName)-1); // I remove also the first and the last "
+ ArgScope = 'String';
+elseif (SCI2Cstrncmps1size(tagname(3),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(3)+1:fieldlength));
+ ArgScope = 'Variable';
+elseif (SCI2Cstrncmps1size(tagname(4),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(4)+1:fieldlength));
+ ArgScope = 'Global';
+elseif (SCI2Cstrncmps1size(tagname(5),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(5)+1:fieldlength));
+ ArgScope = 'Local';
+elseif (SCI2Cstrncmps1size(tagname(6),ASTField))
+ ArgName = stripblanks(part(ASTField,taglength(6)+1:fieldlength));
+ ArgScope = 'Temp';
+elseif (SCI2Cstrncmps1size(tagname(7),ASTField))
+ ArgName = '<empty>';
+ ArgScope = 'None';
+else
+ SCI2Cerror('Argument specifier not found in the AST field: '+ASTField);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_GetASTFile.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetASTFile.sci
new file mode 100644
index 00000000..168c2384
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetASTFile.sci
@@ -0,0 +1,49 @@
+function AST_GetASTFile(FileInfoDatFile)
+// function AST_GetASTFile(FileInfoDatFile)
+// -----------------------------------------------------------------
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+// ---------------------------------
+// --- Load File Info Structure. ---
+// ---------------------------------
+clear FileInfo
+load(FileInfoDatFile,'FileInfo');
+
+// -----------------------------------
+// --- Load Shared Info Structure. ---
+// -----------------------------------
+clear SharedInfo
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+// ---------------------------------------------------
+// --- Extraction of the function name and number. ---
+// ---------------------------------------------------
+funname = SharedInfo.NextSCIFunName;
+funnumber = SharedInfo.NextSCIFunNumber;
+
+PrintStepInfo('Generate the AST in '+FileInfo.Funct(funnumber).ASTFileName,...
+ FileInfo.GeneralReport,'both');
+
+SciFile2ASTFile(FileInfo.Funct(funnumber).SCIFileName,...
+ FileInfo.Funct(funnumber).ASTFileName);
+
+// ---------------------
+// --- Save section. ---
+// ---------------------
+// --- Save File Info Structure. ---
+// save(FileInfoDatFile,FileInfo);
+// -------------------------
+// --- End save section. ---
+// -------------------------
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_GetFuncallPrm.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetFuncallPrm.sci
new file mode 100644
index 00000000..dd7fd300
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetFuncallPrm.sci
@@ -0,0 +1,41 @@
+function [FunctionName,InArg,NInArg,OutArg,NOutArg] = ...
+ AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType)
+// function [FunctionName,InArg,NInArg,NOutArg] = ...
+// AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+OutArg = [];
+NOutArg = 0;
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+if (ASTFunType=='Funcall')
+ [FunctionName,InArg,NInArg,NOutArg] = AST_ParseFuncallStruct(FileInfo,SharedInfo);
+elseif (ASTFunType=='Operation')
+ [FunctionName,InArg,NInArg,NOutArg] = AST_ParseOperStruct(FileInfo,SharedInfo);
+elseif (ASTFunType=='Equal')
+ [FunctionName,InArg,NInArg,OutArg,NOutArg] = AST_ParseEqualStruct(FileInfo,SharedInfo);
+else
+ SCI2CerrorFile('Unknown Function type: '+ASTFunType+'.',ReportFileName);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_GetPrecAndLhsArg.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetPrecAndLhsArg.sci
new file mode 100644
index 00000000..0c0b237f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_GetPrecAndLhsArg.sci
@@ -0,0 +1,65 @@
+function [LhsArg,NLhsArg,PrecisionSpecifier,SharedInfo] = AST_GetPrecAndLhsArg(OutArg,NOutArg,FunctionName,FunTypeAnnot,FunSizeAnnot,ASTFunType,FileInfo,SharedInfo);
+// function [LhsArg,NLhsArg,PrecisionSpecifier,SharedInfo] = AST_GetPrecAndLhsArg(OutArg,NOutArg,FunctionName,FunTypeAnnot,FunSizeAnnot,ASTFunType,FileInfo,SharedInfo);
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),8,8);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// ---------------------------------------
+// --- Search for Precision Specifier. ---
+// ---------------------------------------
+if (NOutArg == 1 & FunTypeAnnot == 'FA_TP_USER')
+ PrecisionSpecifier = AST_CheckPrecSpecifier(FunctionName,FileInfo,SharedInfo);
+ if (PrecisionSpecifier == 'default')
+ SearchLevel = 0;
+ else
+ SearchLevel = 1;
+ SharedInfo.SkipNextPrec = 1;
+ end
+else
+ PrecisionSpecifier = '';
+ SearchLevel = 0;
+end
+
+if (ASTFunType~='Equal')
+ [LhsArgNames,LhsArgScope,NLhsArg] = AST_CheckLastFunc(SharedInfo.ASTReader.fidAST,SearchLevel);
+else
+ LhsArgNames = '';
+ LhsArgScope = '';
+ NLhsArg = 0;
+end
+
+LhsArg = [];
+for cntarg = 1:NLhsArg
+ LhsArg(cntarg).Name = LhsArgNames(cntarg);
+ LhsArg(cntarg).Scope = LhsArgScope(cntarg);
+end
+
+if (NLhsArg > 0)
+ SharedInfo.SkipNextEqual = 1; // 1 = the next equal in the AST will not produce C code.
+ if (NLhsArg ~= NOutArg)
+ SCI2CerrorFile('NLhsArg='+string(NLhsArg)+' must be equal to NOutArg='+string(NOutArg)+'.',ReportFileName);
+ end
+else
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEOL.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEOL.sci
new file mode 100644
index 00000000..fab15620
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEOL.sci
@@ -0,0 +1,45 @@
+function AST_HandleEOL(FileInfo,SharedInfo)
+// function AST_HandleEOL(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+//NUT: questa parte e' molto interessante perche' ti puo' aiutare per fare confronti
+//NUT: incrociati tra le annotazioni della funzione e gli argomenti in uscita.
+//NUT: in particolare una volta messi nella tabella dei simboli anche gli argomenti
+//NUT: di uscita puoi benissimo verificare che li stai utilizzando bene nel corpo della funzione stessa.
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+SciFileFid = FileInfo.Funct(nxtscifunnumber).SCICopyFileFid;
+IndentLevel = SharedInfo.NIndent;
+
+PrintStepInfo('Handling EOL',ReportFileName,'file');
+sciline = mgetl(SciFileFid,1);
+
+PrintStringInfo(' ',CPass1FileName,'file','y');
+modeprintstringinfo = 'stdout';
+if (SharedInfo.CopySciCodeIntoCCode == 1)
+ modeprintstringinfo = 'both';
+end
+PrintStringInfo(C_IndentBlanks(IndentLevel)+'/*SCI2C: #############'+'############'+'##############'+'###############'+'############',CPass1FileName,modeprintstringinfo,'y');
+PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: '+sciline,CPass1FileName,modeprintstringinfo,'y');
+PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: #############'+'############'+'##############'+'###############'+'############*/',CPass1FileName,modeprintstringinfo,'y');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndGenFun.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndGenFun.sci
new file mode 100644
index 00000000..85cf495e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndGenFun.sci
@@ -0,0 +1,315 @@
+function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType)
+// function [FileInfo,SharedInfo] = AST_HandleEndGenFun(FileInfo,SharedInfo,ASTFunType)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+Pass1HeaderFileName = FileInfo.Funct(nxtscifunnumber).Pass1HeaderFileName;
+FunInfoDatDir = FileInfo.FunctionList.FunInfoDatDir;
+
+Flag_FunAlreadyCalled = 0;
+PrintStepInfo('Handling Funcall/Operation/Equal',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file');
+
+//NUT: da sistemare senza le global
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// ---------------------------------------------
+// --- Retrieve FunCall Parameters from AST. ---
+// ---------------------------------------------
+//NUT: verifica se ASTFunType e' veramente importante
+[ASTFunName,InArg,NInArg,OutArg,NOutArg] = AST_GetFuncallPrm(FileInfo,SharedInfo,ASTFunType);
+if (ASTFunName == 'OpIns')
+ SharedInfo.SkipNextEqual = 1;
+ SharedInfo.Equal.Nins = SharedInfo.Equal.Nins + 1;
+ //NUT: Force ins to have 0 args. Double check it.
+ NOutArg = 0;
+ //NUT: io aumenterei qui gli argomenti in ingresso della ins cosi qui vengono fatte tutte le modifiche del
+ //NUT: caso e la C_FunCall non se ne deve preoccupare, vedi se lo stesso vale per le altre funzioni
+ //NUT: speciali presenti nell C_FunCall.
+
+ // 1 more input argument containing the values to be inserted in the matrix.
+ NInArg = NInArg + 1;
+ InArg(NInArg).Name = SharedInfo.Equal.InArg(SharedInfo.Equal.Nins).Name;
+ InArg(NInArg).Scope = SharedInfo.Equal.InArg(SharedInfo.Equal.Nins).Scope;
+elseif (ASTFunName == 'global')
+ SharedInfo.SkipNextEqual = 1;
+ SharedInfo.SkipNextFun = 1;
+ if (NInArg ~= 1)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Multiple declaration of global variables is not allowed.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: See example below:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: global var1 var2; //NOT ALLOWED',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: global var1; //ALLOWED',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: global var2; //ALLOWED',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ if (NOutArg ~= 1)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Unexpected number of output arguments for global function.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please report this error to:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: raffaele.nutricato@tiscali.it',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+end
+
+// --------------------------------------
+// --- Read the function annotations. ---
+// --------------------------------------
+if (ASTFunName == 'OpEqual')
+ FunTypeAnnot = '';
+ FunSizeAnnot = '';
+else
+ [FunTypeAnnot,FunSizeAnnot] = FA_GetFunAnn(NInArg,NOutArg,ASTFunName,FileInfo,SharedInfo);
+end
+
+// -------------------------------------------------------------------------------------------
+// --- Search for Equal Lhs and precision specifier to be applied to the current function. ---
+// -------------------------------------------------------------------------------------------
+[LhsArg,NLhsArg,FunPrecSpecifier,SharedInfo] = AST_GetPrecAndLhsArg(OutArg,NOutArg,ASTFunName,FunTypeAnnot,FunSizeAnnot,ASTFunType,FileInfo,SharedInfo);
+//NUT: questa funzione contiene troppi parametri e mi sembra disordinata.
+
+// --------------------------------
+// --- Input Arguments Section. ---
+// --------------------------------
+// --- Get Input Arguments info from their numerical value or from the symbol table. ---
+if (ASTFunName == 'global')
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension,TBScope] = ...
+ ST_GetSymbolInfo(InArg(1).Name,FileInfo,SharedInfo);
+ if (TBFlagfound == 1)
+ InArg(1).Type = TBType;
+ InArg(1).Size = TBSize;
+ InArg(1).Value = TBValue;
+ InArg(1).FindLike = TBFindLike;
+ InArg(1).Dimension = TBDimension;
+ InArg(1).Scope = TBScope;
+ else
+ // That means it is the first time we encounter
+ // this global variable and in C this means that
+ // we don't have to do nothing.
+ // SharedInfo.SkipNextFun = SharedInfo.SkipNextFun + 1;
+ SharedInfo.SkipNextFun = 1;
+
+ InArg(1).Type = 'GBLToBeDefined';
+ InArg(1).Size(1) = 'GBLToBeDefined';
+ InArg(1).Size(2) = 'GBLToBeDefined';
+ InArg(1).Value = %nan;
+ InArg(1).FindLike = %nan;
+ InArg(1).Dimension = %nan;
+ InArg(1).Scope = 'Global';
+
+
+ ST_Set(InArg(1).Name,...
+ InArg(1).Type,...
+ InArg(1).Size,...
+ InArg(1).Value,...
+ InArg(1).FindLike,...
+ InArg(1).Dimension,...
+ FileInfo.GlobalVarFileName);
+ end
+else
+ [InArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo);
+end
+
+// ---------------------------------
+// --- Output Arguments Section. ---
+// ---------------------------------
+// --- Update Out arg structure with info stored in the function annotations. ---
+if (ASTFunName == 'OpEqual')
+ for cntin = 1:NInArg
+ OutArg(cntin).Type = InArg(cntin).Type;
+ OutArg(cntin).Size = InArg(cntin).Size;
+ OutArg(cntin).Dimension = InArg(cntin).Dimension;
+ OutArg(cntin).Value = InArg(cntin).Value;
+ OutArg(cntin).FindLike = InArg(cntin).FindLike;
+ //NUT: forse qui occorre aggiungere lo scope che dovrebbe essere local or global.
+ //NUT: per ora lo scope viene settato da AST_ParseEqualStruct
+ end
+elseif ((ASTFunName == 'OpMinus') & (NInArg == 1) & (InArg(1).Dimension == 0)&(InArg(1).Scope == 'Number'))
+ // --- Manage OpMinus when applied to scalars. ---
+ // -1 is not translated as tmp = OpMinus(1), but
+ // it is considered as a single entity "-1"
+ SharedInfo.SkipNextFun = 1; //RN: SISTEMAMI
+ OutArg(1).Type = InArg(1).Type;
+ OutArg(1).Size = InArg(1).Size;
+ OutArg(1).Dimension = InArg(1).Dimension;
+ OutArg(1).Value = -InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ OutArg(1).Scope = 'Number_'+InArg(1).Type;
+elseif ((ASTFunName == 'float') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // --- Manage OpMinus when applied to scalars. ---
+ // -1 is not translated as tmp = OpMinus(1), but
+ // it is considered as a single entity "-1"
+ SharedInfo.SkipNextFun = 1; //RN: SISTEMAMI
+ OutArg(1).Type = InArg(1).Type;
+ OutArg(1).Size = InArg(1).Size;
+ OutArg(1).Dimension = InArg(1).Dimension;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ OutArg(1).Scope = 'Number_s';
+elseif ((ASTFunName == 'double') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // --- Manage OpMinus when applied to scalars. ---
+ // -1 is not translated as tmp = OpMinus(1), but
+ // it is considered as a single entity "-1"
+ SharedInfo.SkipNextFun = 1;
+ //RN: SISTEMAMI
+ SharedInfo.SkipNextFun = 1; //RN: SISTEMAMI
+ OutArg(1).Type = InArg(1).Type;
+ OutArg(1).Size = InArg(1).Size;
+ OutArg(1).Dimension = InArg(1).Dimension;
+ OutArg(1).Value = InArg(1).Value;
+ OutArg(1).FindLike = InArg(1).FindLike;
+ OutArg(1).Scope = 'Number_d';
+else
+ OutArg = FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,ReportFileName);
+end
+
+// --- Generate the names for the output arguments. ---
+// Update of OutArg.Name and OutArg.Scope fields.
+if ((ASTFunName == 'OpMinus') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ OutArg(1).Name = string(OutArg(1).Value);
+elseif ((ASTFunName == 'float') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ OutArg(1).Name = string(OutArg(1).Value);
+elseif ((ASTFunName == 'double') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ OutArg(1).Name = string(OutArg(1).Value);
+else
+ [OutArg,SharedInfo] = GenOutArgNames(ASTFunName,InArg,NInArg,OutArg,NOutArg,LhsArg,NLhsArg,FileInfo,SharedInfo);
+end
+
+// --- Push in the AST stack the Output arguments. ---
+if (ASTFunName == 'OpEqual')
+ // Do nothing
+else
+ for counteroutargs = 1:NOutArg
+ tmppushstack = OutArg(counteroutargs).Scope+': '+OutArg(counteroutargs).Name;
+ AST_PushASTStack(tmppushstack);
+ end
+end
+
+//NUT: verificare se si puo' accorpare qualcosa qui sotto
+//RN: non capisco come mai analizzo lo scope dopo che faccio il push nello stack dove lo utilizzo!!!
+// --- Scope analysis of the output arguments. ---
+if (ASTFunName == 'OpMinus' & NInArg == 1 & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // Scope already set above.
+elseif (ASTFunName == 'float' & NInArg == 1 & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // Scope already set above.
+elseif (ASTFunName == 'double' & NInArg == 1 & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // Scope already set above.
+else
+ OutArg = ST_AnalyzeScope(OutArg,NOutArg,FileInfo,SharedInfo);
+end
+
+// --- Check if the current function is handling for counter variables. ---
+[OutArg,SharedInfo] = ST_InsForCntVars(InArg,NInArg,OutArg,NOutArg,ASTFunName,FileInfo,SharedInfo);
+
+// --- Store the while condition variable (if any). ---
+SharedInfo = GetWhileCondVariable(OutArg,NOutArg,ASTFunName,FileInfo,SharedInfo);
+
+// --- Update Symbol Table with output arguments. ---
+if ((ASTFunName == 'OpMinus') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // A number is not inserted in the symbol table.
+elseif ((ASTFunName == 'float') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // A number is not inserted in the symbol table.
+elseif ((ASTFunName == 'double') & (NInArg == 1) & (InArg(1).Dimension == 0) & (InArg(1).Scope == 'Number'))
+ // A number is not inserted in the symbol table.
+else
+ ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,'all');
+end
+//NUT: per risparmiare tempo di esecuzione puoi mettere delle if sulle funzioni che devono
+//NUT: essere skippate.
+
+// --------------------------------------------
+// --- Generate the C name of the function. ---
+// --------------------------------------------
+CFunName = C_GenerateFunName(ASTFunName,InArg,NInArg,OutArg,NOutArg);
+
+// -------------------------------------------------------------------------
+// --- Determine which library the function belongs to: USER2C or SCI2C. ---
+// -------------------------------------------------------------------------
+if SCI2Cfileexist(FileInfo.SCI2CLibCAnnFun,ASTFunName+'.ann')
+ LibTypeInfo = 'SCI2C';
+else
+ LibTypeInfo = 'USER2C';
+end
+
+// ---------------------------------------------------------------------------
+// --- Check existence of the FunInfo.dat file -> function already called. ---
+// ---------------------------------------------------------------------------
+FunInfoDatFileName = fullfile(FunInfoDatDir,CFunName+'.dat');
+if SCI2Cfileexist(FunInfoDatDir,CFunName+'.dat')
+ Flag_FunAlreadyCalled = 1;
+end
+
+// ----------------------------------
+// --- Generate FunInfo dat file. ---
+// ----------------------------------
+//NUT: questo .dat deve essere generato sempre perche' cambiano i nomi degli argomenti mentre il resto dovrebbe
+//NUT: essere tutto uguale
+//NUT: magari posso fare una funzione che inserisce solo i campi diversi e fa un check su quelli che
+//NUT: dovrebbero essere identici.
+GenCFunDatFiles(ASTFunName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,CFunName,LibTypeInfo,FunInfoDatDir);
+
+// -----------------------------------
+// --- Update SCI2C Function List. ---
+// -----------------------------------
+// Functions that are not already available in C are stored
+// in the SCI2C Function List and converted in C at the end of
+// the translation of the current .sci file.
+//NUT: il problema della d0d0OpEqual dovrebbe essere legato al fatto che cerco di fare la opequal legata alla ins...
+//NUT: devo evitare di scriveral dentro la lsista delle funzioni da tradurre.
+SharedInfo = FL_UpdateToBeConv(ASTFunName,CFunName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,FileInfo,SharedInfo);
+
+// -----------------------------------------------
+// --- Check on common input/output arguments. ---
+// -----------------------------------------------
+if (((ASTFunName=='OpEqual') & (SharedInfo.SkipNextEqual == 1)) | ...
+ SharedInfo.SkipNextFun > 0 | ...
+ ((sum(mtlb_strcmp(ASTFunName,SharedInfo.Annotations.DataPrec)) > 0) & (SharedInfo.SkipNextPrec == 1)))
+ // Do nothing
+else
+ AST_CheckCommonInOutArgs(InArg,NInArg,OutArg,NOutArg,ReportFileName);
+end
+
+// -----------------------------
+// --- C Generation Section. ---
+// -----------------------------
+// --- Load FunInfo structure. ---
+load(FunInfoDatFileName,'FunInfo');
+
+// --- Generate include. ---
+if ((Flag_FunAlreadyCalled == 0) & (FunInfo.LibTypeInfo == 'USER2C'))
+ PrintStringInfo('#include ""'+CFunName+'.h""',...
+ ReportFileName,'file','y');
+ PrintStringInfo('#include ""'+CFunName+'.h""',...
+ Pass1HeaderFileName,'file','y');
+end
+
+// --- Generate the C code for the current function. ---
+FlagCall = 1;
+SharedInfo = C_Funcall(FunInfo,FileInfo,SharedInfo,FlagCall);
+//NUT: anziche farla fare alla cfuncall l'aggiornamento delle skip metti qui una funzione dedicata a cio'
+//NUT: e' piu' ordinato.
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndProgram.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndProgram.sci
new file mode 100644
index 00000000..15fc2513
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndProgram.sci
@@ -0,0 +1,51 @@
+function SharedInfo = AST_HandleEndProgram(FileInfo,SharedInfo)
+// function SharedInfo = AST_HandleEndProgram(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Jun-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName
+
+IndentLevel = SharedInfo.NIndent;
+CCall = '';
+PrintStepInfo('Handling EndProgram',ReportFileName,'file');
+tmpposfirstscalar = SharedInfo.CurrentFunInfo.PosFirstOutScalar;
+
+if (1==2)
+ //NUT: disabled because at the moment I am able to decode the return instruction.
+ if (SharedInfo.CurrentFunInfo.CFunctionName == SharedInfo.CMainFunName)
+ CCall = CCall+'return(0);';
+ else
+ if (SharedInfo.CurrentFunInfo.PosFirstOutScalar > 0)
+ CCall = CCall+'return('+SharedInfo.CurrentFunInfo.OutArg(tmpposfirstscalar).Name+');'
+ end
+ end
+
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+end
+
+
+SharedInfo.NIndent = SharedInfo.NIndent - 1;
+IndentLevel = SharedInfo.NIndent;
+PrintStringInfo(C_IndentBlanks(IndentLevel)+'}',CPass1FileName,'file','y');
+
+// --- Close the copy of the scilab file. ---
+mclose(FileInfo.Funct(nxtscifunnumber).SCICopyFileFid);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndWhile.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndWhile.sci
new file mode 100644
index 00000000..bcd5c078
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleEndWhile.sci
@@ -0,0 +1,54 @@
+function SharedInfo = AST_HandleEndWhile(FileInfo,SharedInfo)
+// function SharedInfo = AST_HandleEndWhile(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 15-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+CPass1WhileEpilFileName = FileInfo.Funct(nxtscifunnumber).CPass1WhileEpilFileName(SharedInfo.While.Level);
+
+CCall ='';
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// ----------------------------
+// --- Generate the C code. ---
+// ----------------------------
+// --- Copy Epilogue into C code (Pass1) file. ---
+[CLinesArray,N_Lines] = File2StringArray(CPass1WhileEpilFileName);
+CLinesArray = stripblanks(CLinesArray);
+
+for tmpcnt = 1:N_Lines-1
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CLinesArray(tmpcnt),CPass1FileName,'file','y');
+end
+PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent-1)+CLinesArray(N_Lines),CPass1FileName,'file','y');
+
+// --------------------------
+// --- Update SharedInfo. ---
+// --------------------------
+SharedInfo.NIndent = SharedInfo.NIndent - 1;
+
+// -------------------------------
+// --- Delete temporary files. ---
+// -------------------------------
+SCI2Cmdelete(CPass1WhileEpilFileName);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleHeader.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleHeader.sci
new file mode 100644
index 00000000..ce8c5a20
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_HandleHeader.sci
@@ -0,0 +1,182 @@
+function SharedInfo = AST_HandleHeader(ASTHeader,FileInfo,SharedInfo)
+// function SharedInfo = AST_HandleHeader(ASTHeader,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+FunctionName = ASTHeader.Name;
+if (mtlb_strcmp(ASTHeader.Name,SharedInfo.NextSCIFunName) == %F)
+ SCI2CerrorFile('Very strange! AST Name field ""'+ASTHeader.Name+...
+ '""is different from function name ""'+SharedInfo.NextSCIFunName+'"".',ReportFileName);
+end
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// -------------------------------------
+// --- Extract info from AST header. ---
+// -------------------------------------
+TmpInNames = tokens(ASTHeader.Inputs,' ');
+TmpOutNames = tokens(ASTHeader.Outputs,' ');
+
+// Remove Variable: Number: or String: specifier.
+NInArg = 0;
+for tmpcnt = 1:size(TmpInNames,1)
+ TmpSingleName = TmpInNames(tmpcnt);
+ if ((TmpSingleName == 'Variable:') | ...
+ (TmpSingleName == 'String:') | ...
+ (TmpSingleName == 'Number:'))
+ // Skip the specifier.
+ else
+ NInArg = NInArg + 1;
+ InNames(NInArg) = TmpSingleName;
+ end
+end
+
+// Remove Variable: Number: or String: specifier.
+NOutArg = 0;
+for tmpcnt = 1:size(TmpOutNames,1)
+ TmpSingleName = TmpOutNames(tmpcnt);
+ if ((TmpSingleName == 'Variable:') | ...
+ (TmpSingleName == 'String:') | ...
+ (TmpSingleName == 'Number_x:') | ...
+ (TmpSingleName == 'Number_s:') | ...
+ (TmpSingleName == 'Number_d:') | ...
+ (TmpSingleName == 'Number_c:') | ...
+ (TmpSingleName == 'Number_z:'))
+ // Skip the specifier.
+ else
+ NOutArg = NOutArg + 1;
+ OutNames(NOutArg) = TmpSingleName;
+ end
+end
+
+if (mtlb_strcmp(InNames(1),'<empty>'))
+ NInArg = 0;
+else
+ NInArg = size(InNames,1);
+end
+
+if ((OutNames(1)=='<empty>') | (FunctionName == 'ins'))
+ //NUT: Force ins to have 0 args. Double check it.
+ NOutArg = 0;
+else
+ NOutArg = size(OutNames,1);
+end
+
+
+// -------------------------------------
+// --- Load the C function dat file. ---
+// -------------------------------------
+//NUT: This load is useful expecially for the second approach. In this case we are not using
+//NUT: the size info.
+load(fullfile(FileInfo.FunctionList.FunInfoDatDir,SharedInfo.NextCFunName+'.dat'),'FunInfo');
+
+SharedInfo.CurrentFunInfo = FunInfo;
+clear FunInfo
+
+// -----------------------------------------------------------------------------
+// --- Check coherence between In/Out names and In/Out Arg structure loaded. ---
+// -----------------------------------------------------------------------------
+if (length(SharedInfo.CurrentFunInfo.InArg(1).Name) > 0)
+ NInArgDat = size(SharedInfo.CurrentFunInfo.InArg,1);
+else
+ NInArgDat = 0;
+end
+
+if (NInArgDat == NInArg)
+ for tmpcnt = 1:NInArg
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Name = InNames(tmpcnt);
+ if (SharedInfo.CurrentFunInfo.InArg(tmpcnt).Dimension == 0)
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Size(1) = '1';
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Size(2) = '1';
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Value = %nan;
+ else
+ //NUT: using approach 1: Setting for input and output arguments symbolic sizes.
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Size(1) = '__'+SharedInfo.CurrentFunInfo.InArg(tmpcnt).Name+'Size[0]';
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Size(2) = '__'+SharedInfo.CurrentFunInfo.InArg(tmpcnt).Name+'Size[1]';
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Value = %nan;
+ end
+ end
+else
+ SCI2CerrorFile('Number of input arguments specified in AST is different from the number specified in .dat file.',ReportFileName);
+end
+
+
+if (SharedInfo.CurrentFunInfo.NOutArg == NOutArg)
+ for tmpcnt = 1:NOutArg
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Name = OutNames(tmpcnt);
+ end
+else
+ //
+end
+//NUT: using approach 1: Setting for input and output arguments symbolic sizes.
+SharedInfo.CurrentFunInfo.OutArg = ...
+ FA_GetOutArgInfo(SharedInfo.CurrentFunInfo.InArg,NInArg,...
+ SharedInfo.CurrentFunInfo.OutArg,NOutArg,...
+ SharedInfo,...
+ SharedInfo.CurrentFunInfo.FunPrecSpecifier,...
+ SharedInfo.CurrentFunInfo.FunTypeAnnot,SharedInfo.CurrentFunInfo.FunSizeAnnot,ReportFileName);
+
+// -------------------------------------------------------------------------
+// --- Stores InArg structure into the temporary variables symbol table. ---
+// -------------------------------------------------------------------------
+SymbTableFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName;
+
+
+for tmpcnt = 1:NInArg
+
+ ST_Set(SharedInfo.CurrentFunInfo.InArg(tmpcnt).Name,...
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Type,...
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Size,...
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Value,...
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).FindLike,...
+ SharedInfo.CurrentFunInfo.InArg(tmpcnt).Dimension,...
+ SymbTableFileName);
+end
+
+// --------------------------------------------------------------------------
+// --- Stores OutArg structure into the temporary variables symbol table. ---
+// --------------------------------------------------------------------------
+//NUT: verifica se puoi usare l'outarg2symboltable qui.
+for tmpcnt = 1:NOutArg
+
+ ST_Set(SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Name,...
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Type,...
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Size,...
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Value,...
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).FindLike,...
+ SharedInfo.CurrentFunInfo.OutArg(tmpcnt).Dimension,...
+ SymbTableFileName);
+end
+
+// -----------------------------------------------
+// --- Check on common input/output arguments. ---
+// -----------------------------------------------
+AST_CheckCommonInOutArgs(SharedInfo.CurrentFunInfo.InArg,NInArg,SharedInfo.CurrentFunInfo.OutArg,NOutArg,ReportFileName);
+
+// ------------------------
+// --- Generate C code. ---
+// ------------------------
+FlagCall = 0;
+SharedInfo = C_Funcall(SharedInfo.CurrentFunInfo,FileInfo,SharedInfo,FlagCall);
+SharedInfo.NIndent = SharedInfo.NIndent+1; // Increase indentation level.
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseEqualStruct.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseEqualStruct.sci
new file mode 100644
index 00000000..1fa043aa
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseEqualStruct.sci
@@ -0,0 +1,105 @@
+function [FunctionName,InArg,NInArg,OutArg,NOutArg] = AST_ParseEqualStruct(FileInfo,SharedInfo)
+// function [FunctionName,InArg,NInArg,OutArg,NOutArg] = AST_ParseEqualStruct(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+
+// -------------------------------
+// --- Read Output parameters. ---
+// -------------------------------
+LhsField = AST_PopASTStack();
+NOutArg = 0;
+OutputArgumentNames = [];
+OutputArgumentScope = [];
+while (LhsField ~= 'Lhs :')
+ NOutArg = NOutArg + 1;
+ [OutputArgumentNames(NOutArg),OutputArgumentScope(NOutArg)] = AST_ExtractNameAndScope(LhsField);
+ LhsField = AST_PopASTStack();
+ if (LhsField == 'Expression:')
+ SCI2Cerror('Found Expression: before Lhs');
+ elseif (LhsField == 'Equal')
+ SCI2Cerror('Found Equal before Lhs');
+ end
+end
+OutputArgumentNames = SCI2Cflipud(OutputArgumentNames);
+OutputArgumentScope = SCI2Cflipud(OutputArgumentScope);
+
+// ------------------------------
+// --- Read input parameters. ---
+// ------------------------------
+ExprField = AST_PopASTStack();
+NInArg = 0;
+InputArgumentNames = [];
+while (ExprField ~= 'Expression:')
+ NInArg = NInArg + 1;
+ [InputArgumentNames(NInArg),InputArgumentScope(NInArg)] = AST_ExtractNameAndScope(ExprField);
+ ExprField = AST_PopASTStack();
+ if (ExprField == 'Equal')
+ SCI2Cerror('Found Equal before Lhs');
+ end
+end
+InputArgumentNames = SCI2Cflipud(InputArgumentNames);
+InputArgumentScope = SCI2Cflipud(InputArgumentScope);
+
+// ------------------------------
+// --- Extract function name. ---
+// ------------------------------
+FunctionName = AST_PopASTStack();
+if (FunctionName ~= 'Equal') then
+ SCI2Cerror('Problems with Equal, Expected Equal tag.');
+end
+FunctionName = 'OpEqual';
+
+// -------------------------------------
+// --- Generate the InArg structure. ---
+// -------------------------------------
+InArg = [];
+for counterinputargs = 1:NInArg
+ InArg(counterinputargs).Name=InputArgumentNames(counterinputargs);
+ InArg(counterinputargs).Scope=InputArgumentScope(counterinputargs);
+end
+
+// -------------------------------------
+// --- Generate the InArg structure. ---
+// -------------------------------------
+OutArg = [];
+for counteroutputargs = 1:NOutArg
+ OutArg(counteroutputargs).Name=OutputArgumentNames(counteroutputargs);
+ OutArg(counteroutputargs).Scope=OutputArgumentScope(counteroutputargs);
+end
+
+// ------------------------
+// --- Print Some Info. ---
+// ------------------------
+if (SharedInfo.Equal.Nins > 0)
+ if (NInArg ~= SharedInfo.Equal.Nins)
+ SCI2CerrorFile('Number of input arguments must be equal to number of ins functions.',ReportFileName);
+ end
+else
+ if (NInArg ~= NOutArg)
+ SCI2CerrorFile('Number of input arguments must be equal to number of output arguments.',ReportFileName);
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseFuncallStruct.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseFuncallStruct.sci
new file mode 100644
index 00000000..186b7949
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseFuncallStruct.sci
@@ -0,0 +1,77 @@
+function [FunctionName,InArg,NInArg,NOutArg] = AST_ParseFuncallStruct(FileInfo,SharedInfo)
+// function [FunctionName,InArg,NInArg,NOutArg] = AST_ParseFuncallStruct(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+
+// ------------------------------
+// --- Read input parameters. ---
+// ------------------------------
+RhsField = AST_PopASTStack();
+NInArg = 0;
+while (RhsField ~= 'Rhs :')
+ NInArg = NInArg + 1;
+ [InputArgumentNames(NInArg),InputArgumentScope(NInArg)] = AST_ExtractNameAndScope(RhsField);
+ RhsField = AST_PopASTStack();
+ if (RhsField == '#lhs :')
+ SCI2Cerror('Found #lhs before Rhs');
+ elseif (RhsField == 'Funcall :')
+ SCI2Cerror('Found Funcall before Rhs');
+ end
+end
+if (stripblanks(InputArgumentNames(NInArg)) == '<empty>')
+ NInArg = 0;
+ InputArgumentNames = [];
+ InputArgumentScope = [];
+end
+InputArgumentNames = SCI2Cflipud(InputArgumentNames);
+InputArgumentScope = SCI2Cflipud(InputArgumentScope);
+
+// --------------------------------------------
+// --- Extract number of output parameters. ---
+// --------------------------------------------
+buffstring = AST_PopASTStack();
+NOutArg = eval(stripblanks(part(buffstring,10:length(buffstring))));
+
+// ------------------------------
+// --- Extract function name. ---
+// ------------------------------
+buffstring = AST_PopASTStack();
+FunctionName = stripblanks(part(buffstring,12:length(buffstring)));
+
+// -------------------------------------
+// --- Generate the InArg structure. ---
+// -------------------------------------
+InArg = [];
+for counterinputargs = 1:NInArg
+ if (InputArgumentNames(counterinputargs) == 'r')
+ InputArgumentNames(counterinputargs) = 'rr'; //NUT: per ora cerco di risolvere cosi' il baco sulla 'r'
+ end
+ InArg(counterinputargs).Name=InputArgumentNames(counterinputargs);
+ InArg(counterinputargs).Scope=InputArgumentScope(counterinputargs);
+end
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseIfExprStruct.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseIfExprStruct.sci
new file mode 100644
index 00000000..ad39149e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseIfExprStruct.sci
@@ -0,0 +1,74 @@
+function [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType)
+// function [IfCondArg,NIfCondArg] = AST_ParseIfExprStruct(FileInfo,SharedInfo,ASTIfExpType)
+// -----------------------------------------------------------------
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+IfCondArg = [];
+NIfCondArg = 0;
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// ------------------------------------
+// --- Read if condition variables. ---
+// ------------------------------------
+flagendpop = 0;
+IfExprField = AST_PopASTStack();
+if (ASTIfExpType=='if')
+ if (IfExprField=='Expression:')
+ flagendpop = 1;
+ IfExprField = AST_PopASTStack();
+ end
+elseif (ASTIfExpType=='elseif')
+ if (IfExprField=='Else If Expression')
+ flagendpop = 1;
+ end
+else
+ SCI2CerrorFile('Unknown ASTIfExpType ""'+ASTIfExpType+'"".',ReportFileName);
+end
+
+while (flagendpop == 0)
+ if (IfExprField~='<EOL>')
+ if (ASTIfExpType=='if')
+ if (IfExprField=='Expression:')
+ flagendpop = 1;
+ IfExprField = AST_PopASTStack();
+ else
+ NIfCondArg = NIfCondArg + 1;
+ [IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField);
+ end
+ elseif (ASTIfExpType=='elseif')
+ if (IfExprField=='Else If Expression')
+ flagendpop = 1;
+ else
+ NIfCondArg = NIfCondArg + 1;
+ IfCondArg(NIfCondArg) = IfExprField;
+ [IfCondArg(NIfCondArg),tmpscope] = AST_ExtractNameAndScope(IfExprField);
+ end
+ end
+ end
+ IfExprField = AST_PopASTStack();
+end
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseOperStruct.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseOperStruct.sci
new file mode 100644
index 00000000..ea7dc946
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ParseOperStruct.sci
@@ -0,0 +1,64 @@
+function [FunctionName,InArg,NInArg,NOutArg] = AST_ParseOperStruct(FileInfo,SharedInfo)
+// function [FunctionName,InArg,NInArg,NOutArg] = AST_ParseOperStruct(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+buffstring = AST_PopASTStack();
+LabelFunctName = 'Operator: ';
+FunctionName = stripblanks(part(buffstring,length(LabelFunctName)+1:length(buffstring)));
+FunctionName = Operator2FunName(FunctionName);
+
+RhsField = AST_PopASTStack();
+NInArg = 0;
+while (RhsField ~= 'Operands:')
+ NInArg = NInArg + 1;
+ [InputArgumentNames(NInArg),InputArgumentScope(NInArg)] = AST_ExtractNameAndScope(RhsField);
+ RhsField = AST_PopASTStack();
+ if (RhsField == 'Operation')
+ SCI2Cerror('Found Operation before Rhs');
+ end
+end
+
+if (stripblanks(InputArgumentNames(NInArg)) == '<empty>')
+ NInArg = 0;
+ InputArgumentNames = [];
+ InputArgumentScope = [];
+end
+InputArgumentNames = SCI2Cflipud(InputArgumentNames);
+InputArgumentScope = SCI2Cflipud(InputArgumentScope);
+
+OperationField = AST_PopASTStack();
+if (OperationField ~= 'Operation') then
+ SCI2Cerror('Problems with Operation, Expected Operation tag.');
+end
+
+if (FunctionName == 'ins')
+ NOutArg = 0; // It is always 1. Double check it!
+else
+ NOutArg = 1; // It is always 1. Double check it!
+end
+
+InArg = [];
+for counterinputargs = 1:NInArg
+ InArg(counterinputargs).Name=InputArgumentNames(counterinputargs);
+ InArg(counterinputargs).Scope=InputArgumentScope(counterinputargs);
+end
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_PopSCI2CStack.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_PopSCI2CStack.sci
new file mode 100644
index 00000000..ffc209c8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_PopSCI2CStack.sci
@@ -0,0 +1,29 @@
+function stackelement = AST_PopASTStack()
+// function stackelement = AST_PopASTStack()
+// -----------------------------------------------------------------
+// Status:
+// 11-Aug-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),0,0);
+
+global SCI2CSTACK;
+global StackPosition;
+global STACKDEDUG;
+
+if StackPosition == 1
+ SCI2Cerror('Stack empty. Cannot pop from stack.');
+end
+
+stackelement = SCI2CSTACK(StackPosition,1);
+SCI2CSTACK = SCI2CSTACK(1:StackPosition-1);
+StackPosition = StackPosition - 1;
+
+if (STACKDEDUG == 1)
+ AST_DisplayStack();
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_PushSCI2CStack.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_PushSCI2CStack.sci
new file mode 100644
index 00000000..199df7a9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_PushSCI2CStack.sci
@@ -0,0 +1,26 @@
+function AST_PushASTStack(stackelement)
+// function AST_PushASTStack(stackelement)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Aug-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+StackPosition = StackPosition + 1;
+SCI2CSTACK(StackPosition,1) = stackelement;
+
+if (STACKDEDUG == 1)
+ AST_DisplayStack();
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadASTHeader.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadASTHeader.sci
new file mode 100644
index 00000000..d6ba939a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadASTHeader.sci
@@ -0,0 +1,76 @@
+function ASTHeader = AST_ReadASTHeader(fidAST,ReportFileName)
+// function ASTHeader = AST_ReadASTHeader(fidAST,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+ASTHeader = [];
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+treeline = stripblanks(tline);
+if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+end
+if (SCI2Cstrncmps1size('Program',treeline) == 0)
+ SCI2CerrorFile('Expected ""Program"" label in the AST',ReportFileName);
+end
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+treeline = stripblanks(tline);
+if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+end
+if (SCI2Cstrncmps1size('Name : ',treeline) == 0)
+ SCI2CerrorFile('Expected ""Name : "" label in the AST',ReportFileName);
+else
+ ASTHeader.Name = stripblanks(part(treeline,length('Name : ')+1:length(treeline)));
+end
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+treeline = stripblanks(tline);
+if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+end
+if (SCI2Cstrncmps1size('Outputs: ',treeline) == 0)
+ SCI2CerrorFile('Expected ""Outputs: "" label in the AST',ReportFileName);
+else
+ ASTHeader.Outputs = stripblanks(part(treeline,length('Outputs: ')+1:length(treeline)));
+end
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+treeline = stripblanks(tline);
+if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+end
+if (SCI2Cstrncmps1size('Inputs : ',treeline) == 0)
+ SCI2CerrorFile('Expected ""Inputs : "" label in the AST',ReportFileName);
+else
+ ASTHeader.Inputs = stripblanks(part(treeline,length('Inputs : ')+1:length(treeline)));
+end
+
+tline = mgetl(fidAST,1);
+AST_CheckLineLength(tline);
+treeline = stripblanks(tline);
+if STACKDEDUG == 1
+ disp('Read AST Line: '+treeline);
+end
+if (SCI2Cstrncmps1size('Statements ',treeline) == 0)
+ SCI2CerrorFile('Expected ""Statements "" label in the AST',ReportFileName);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadEqualRhsNames.sci b/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadEqualRhsNames.sci
new file mode 100644
index 00000000..3772ead7
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/AST_ReadEqualRhsNames.sci
@@ -0,0 +1,48 @@
+function [RhsNames,RhsScope,NRhs] = AST_ReadEqualRhsNames(FileInfo,SharedInfo)
+// function [RhsNames,RhsScope,NRhs] = AST_ReadEqualRhsNames(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+global SCI2CSTACK
+global StackPosition;
+global STACKDEDUG
+
+
+// -------------------------------
+// --- Read Output parameters. ---
+// -------------------------------
+cntpop = 1;
+NRhs = 0;
+RhsField(cntpop) = AST_PopASTStack();
+RhsNames = [];
+while (RhsField(cntpop) ~= 'Expression:')
+ NRhs = NRhs + 1;
+ [RhsNames(NRhs),RhsScope(NRhs)] = AST_ExtractNameAndScope(RhsField(cntpop));
+ cntpop = cntpop + 1;
+ RhsField(cntpop) = AST_PopASTStack();
+end
+RhsNames = SCI2Cflipud(RhsNames);
+RhsScope = SCI2Cflipud(RhsScope);
+
+for cntpush = cntpop:-1:1
+ AST_PushASTStack(RhsField(cntpush));
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/GenOutArgNames.sci b/src/Scilab2C/Scilab2C/ASTManagement/GenOutArgNames.sci
new file mode 100644
index 00000000..9424e9eb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/GenOutArgNames.sci
@@ -0,0 +1,49 @@
+function [OutArg,SharedInfo] = GenOutArgNames(FunctionName,InArg,NInArg,OldOutArg,NOutArg,LhsArg,NLhsArg,FileInfo,SharedInfo)
+// function [OutArg,SharedInfo] = GenOutArgNames(FunctionName,OutArg,NOutArg,LhsArg,NLhsArg,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),9,9);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+OutArg = OldOutArg;
+
+if (NLhsArg > 0)
+ if (NLhsArg ~= NOutArg)
+ SCI2CerrorFile('NLhsArg='+string(NLhsArg)+' must be equal to NOutArg='+string(NOutArg)+'.',ReportFileName);
+ end
+ for counteroutputargs = 1:NOutArg
+ OutArg(counteroutputargs).Name=LhsArg(counteroutputargs).Name;
+ OutArg(counteroutputargs).Scope=LhsArg(counteroutputargs).Scope;
+ end
+else
+ if ((sum(mtlb_strcmp(FunctionName,SharedInfo.Annotations.DataPrec)) > 0) & ...
+ (SharedInfo.SkipNextPrec == 1))
+ for counteroutputargs = 1:NOutArg
+ OutArg(counteroutputargs).Name = InArg(counteroutputargs).Name;
+ end
+ elseif (mtlb_strcmp(FunctionName,'OpEqual'))
+ else
+ for counteroutputargs = 1:NOutArg
+ if ((SharedInfo.ASTReader.EnableTempVarsReuse == 1) & ...
+ (length(SharedInfo.ASTReader.ReusableTempVars) > 0))
+ TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.ReusableTempVars(1))]);
+ SharedInfo.ASTReader.ReusableTempVars = SharedInfo.ASTReader.ReusableTempVars(2:$);
+ else
+ SharedInfo.ASTReader.UsedTempVars = SharedInfo.ASTReader.UsedTempVars + 1;
+ TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.UsedTempVars)]);
+ end
+ OutArg(counteroutputargs).Name=TmpOutArgName;
+ end
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/Operator2FunName.sci b/src/Scilab2C/Scilab2C/ASTManagement/Operator2FunName.sci
new file mode 100644
index 00000000..f2c705eb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/Operator2FunName.sci
@@ -0,0 +1,101 @@
+function FunName = Operator2FunName(OperatorName);
+// -----------------------------------------------------------------
+//
+// Status:
+// 29-May-2007 -- Nutricato Raffaele: Changed code into a function.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+FuncPrefix = 'Op';
+FuncSuffix = '';
+
+if (OperatorName == '+')
+ FunName = FuncPrefix+'Plus'+FuncSuffix;
+elseif (OperatorName == '-')
+ FunName = FuncPrefix+'Minus'+FuncSuffix;
+elseif (OperatorName == '*')
+ FunName = FuncPrefix+'Star'+FuncSuffix;
+elseif (OperatorName == '.*')
+ FunName = FuncPrefix+'DotStar'+FuncSuffix;
+elseif (OperatorName == '*.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '.*.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '/')
+ FunName = FuncPrefix+'Slash'+FuncSuffix;
+elseif (OperatorName == './')
+ FunName = FuncPrefix+'DotSlash'+FuncSuffix;
+elseif (OperatorName == '/.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == './.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '.\')
+ FunName = FuncPrefix+'DotBackSlash'+FuncSuffix;
+elseif (OperatorName == '\\')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '.\\')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '\\.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '.\\.')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+elseif (OperatorName == '^')
+ FunName = FuncPrefix+'Hat'+FuncSuffix;
+elseif (OperatorName == '.^')
+ FunName = FuncPrefix+'DotHat'+FuncSuffix;
+elseif (OperatorName == '''')
+ FunName = FuncPrefix+'Apex'+FuncSuffix;
+elseif (OperatorName == '.''')
+ FunName = FuncPrefix+'DotApex'+FuncSuffix;
+elseif (OperatorName == '==')
+ FunName = FuncPrefix+'LogEq'+FuncSuffix;
+elseif (OperatorName == '<')
+ FunName = FuncPrefix+'LogLt'+FuncSuffix;
+elseif (OperatorName == '>')
+ FunName = FuncPrefix+'LogGt'+FuncSuffix;
+elseif (OperatorName == '<=')
+ FunName = FuncPrefix+'LogLe'+FuncSuffix;
+elseif (OperatorName == '>=')
+ FunName = FuncPrefix+'LogGe'+FuncSuffix;
+elseif (OperatorName == '~=')
+ FunName = FuncPrefix+'LogNe'+FuncSuffix;
+elseif (OperatorName == '<>')
+ FunName = FuncPrefix+'LogNe'+FuncSuffix;
+elseif (OperatorName == '|')
+ FunName = FuncPrefix+'LogOr'+FuncSuffix;
+elseif (OperatorName == '&')
+ FunName = FuncPrefix+'LogAnd'+FuncSuffix;
+elseif (OperatorName == '~')
+ FunName = FuncPrefix+'LogNot'+FuncSuffix;
+elseif (OperatorName == ':')
+ FunName = FuncPrefix+'Colon'+FuncSuffix;
+elseif (OperatorName == 'rc')
+ FunName = 'OpRc';
+elseif (OperatorName == 'cc')
+ FunName = 'OpCc';
+elseif (OperatorName == 'ins')
+ FunName = 'OpIns';
+elseif (OperatorName == 'ext')
+ FunName = 'OpExt';
+elseif (OperatorName == 'cceol')
+ PrintStringInfo('SCI2CERROR: Operator ""'+OperatorName+'"" not supported.','','stout','y');
+ SCI2Cerror(' ');
+else
+ PrintStringInfo('SCI2CERROR: Unknown Operator ""'+OperatorName+'.','','stout','y');
+ SCI2Cerror(' ');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ASTManagement/SciFile2ASTFile.sci b/src/Scilab2C/Scilab2C/ASTManagement/SciFile2ASTFile.sci
new file mode 100644
index 00000000..1ef28dce
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ASTManagement/SciFile2ASTFile.sci
@@ -0,0 +1,23 @@
+function SciFile2ASTFile(SciFile,ASTFile);
+// function SciFile2ASTFile(SciFile,ASTFile);
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+getf(SciFile);
+[tmppath,ScilabFunName,tmpext] = fileparts(SciFile);
+AST=eval('macr2tree('+ScilabFunName+')');
+
+
+[ASTx,ASTierr]=fileinfo(ASTFile);
+if ASTierr == 0
+ mdelete(ASTFile);
+end
+write(ASTFile,string(AST));
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_FinalizeCode.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_FinalizeCode.sci
new file mode 100644
index 00000000..54454e00
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_FinalizeCode.sci
@@ -0,0 +1,56 @@
+function C_FinalizeCode(FileInfo,SharedInfo)
+// function C_FinalizeCode(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+load(FileInfoDatFile,'FileInfo');
+
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+CPass2FileName = FileInfo.Funct(SharedInfo.NextSCIFunNumber).CPass2FileName;
+FinalCFileName = FileInfo.Funct(SharedInfo.NextSCIFunNumber).FinalCFileName;
+Pass1HeaderFileName = FileInfo.Funct(SharedInfo.NextSCIFunNumber).Pass1HeaderFileName;
+FinalHeaderFileName = FileInfo.Funct(SharedInfo.NextSCIFunNumber).FinalHeaderFileName;
+
+PrintStringInfo('/*',Pass1HeaderFileName,'file','y');
+PrintStringInfo('** ---------------------------- ',Pass1HeaderFileName,'file','y');
+PrintStringInfo('** --- End USER2C Includes. --- ',Pass1HeaderFileName,'file','y');
+PrintStringInfo('** ---------------------------- ',Pass1HeaderFileName,'file','y');
+PrintStringInfo('*/',Pass1HeaderFileName,'file','y');
+
+[tmphdrpath,tmphdrname,tmphdrext] = fileparts(Pass1HeaderFileName);
+
+C_SCI2CHeader(FinalCFileName);
+PrintStringInfo('/*',FinalCFileName,'file','y');
+PrintStringInfo('** ----------------- ',FinalCFileName,'file','y');
+PrintStringInfo('** --- Includes. --- ',FinalCFileName,'file','y');
+PrintStringInfo('** ----------------- ',FinalCFileName,'file','y');
+PrintStringInfo('*/',FinalCFileName,'file','y');
+PrintStringInfo('#include ""'+tmphdrname+tmphdrext+'""',...
+ FinalCFileName,'file','y');
+PrintStringInfo('/*',FinalCFileName,'file','y');
+PrintStringInfo('** --------------------- ',FinalCFileName,'file','y');
+PrintStringInfo('** --- End Includes. --- ',FinalCFileName,'file','y');
+PrintStringInfo('** --------------------- ',FinalCFileName,'file','y');
+PrintStringInfo('*/',FinalCFileName,'file','y');
+PrintStringInfo(' ',FinalCFileName,'file','y');
+PrintStringInfo(' ',FinalCFileName,'file','y');
+PrintStringInfo(' ',FinalCFileName,'file','y');
+SCI2Ccopyfile(CPass2FileName,...
+ FinalCFileName,'append');
+SCI2Ccopyfile(Pass1HeaderFileName,...
+ FinalHeaderFileName,'append');
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_ForExpression.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_ForExpression.sci
new file mode 100644
index 00000000..27f71414
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_ForExpression.sci
@@ -0,0 +1,88 @@
+function SharedInfo = C_ForExpression(FileInfo,SharedInfo)
+// function SharedInfo = C_ForExpression(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 15-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+CPass1ForProlFileName = FileInfo.Funct(nxtscifunnumber).CPass1ForProlFileName(SharedInfo.For.Level);
+CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName;
+CPass1ForEpilFileName = FileInfo.Funct(nxtscifunnumber).CPass1ForEpilFileName(SharedInfo.For.Level);
+
+CCall ='';
+
+if (SharedInfo.ForExpr.AssignmentFun == SharedInfo.CFunId.EqScalar)
+
+ [C_Strings,NumCStrings] = File2StringArray(FileInfo.Funct(nxtscifunnumber).CPass1ForProlFileName(SharedInfo.For.Level));
+ C_Strings = stripblanks(C_Strings);
+
+ for cntstr = 1:NumCStrings
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y');
+ end
+ PrintStringInfo(' ',CPass1ForEpilFileName ,'file','y');
+
+elseif (SharedInfo.ForExpr.AssignmentFun == SharedInfo.CFunId.OpColon)
+ [C_Strings,NumCStrings] = File2StringArray(FileInfo.Funct(nxtscifunnumber).CPass1ForProlFileName(SharedInfo.For.Level));
+ C_Strings = stripblanks(C_Strings);
+ for cntstr = 1:NumCStrings
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y');
+ PrintStringInfo(C_Strings(cntstr),CPass1ForEpilFileName ,'file','y');
+ end
+ PrintStringInfo('}',CPass1ForEpilFileName ,'file','y');
+
+ CCall = 'for('+SharedInfo.ForExpr.SclValCntArg.Name+' = '+SharedInfo.ForExpr.OpColonInfoIn1+'; '...
+ +SharedInfo.ForExpr.SclValCntArg.Name+' <= '+SharedInfo.ForExpr.OpColonInfoIn3+'; '...
+ +SharedInfo.ForExpr.SclValCntArg.Name+' += '+SharedInfo.ForExpr.OpColonInfoIn2+')';
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+ CCall = '{';
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+ SharedInfo.NIndent = SharedInfo.NIndent + 1;
+
+elseif (SharedInfo.ForExpr.AssignmentFun == SharedInfo.CFunId.EqMatrix | ...
+ SharedInfo.ForExpr.AssignmentFun == SharedInfo.CFunId.GenFunMtx)
+
+
+ [C_Strings,NumCStrings] = File2StringArray(FileInfo.Funct(nxtscifunnumber).CPass1ForProlFileName(SharedInfo.For.Level));
+ C_Strings = stripblanks(C_Strings);
+
+ for cntstr = 1:NumCStrings
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y');
+ PrintStringInfo(C_Strings(cntstr),CPass1ForEpilFileName ,'file','y');
+ end
+
+ PrintStringInfo('}',CPass1ForEpilFileName ,'file','y');
+
+ CCall = 'for('+SharedInfo.ForExpr.IntCntArg.Name+' = 0'+'; '+...
+ SharedInfo.ForExpr.IntCntArg.Name+' < '+SharedInfo.ForExpr.MtxValCntArg.Size(1)+'*'+SharedInfo.ForExpr.MtxValCntArg.Size(2)+'; '+...
+ SharedInfo.ForExpr.IntCntArg.Name+'++)';
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+ CCall = '{';
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+ SharedInfo.NIndent = SharedInfo.NIndent + 1;
+
+ CCall = SharedInfo.ForExpr.SclValCntArg.Name+' = '+SharedInfo.ForExpr.MtxValCntArg.Name+'['+SharedInfo.ForExpr.IntCntArg.Name+'];';
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+else
+ SCI2Cerror('Could not manage the for expression.');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_Funcall.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_Funcall.sci
new file mode 100644
index 00000000..2c13f4dc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_Funcall.sci
@@ -0,0 +1,220 @@
+function SharedInfo = C_Funcall(FunInfo,FileInfo,SharedInfo,FlagCall)
+// function SharedInfo = C_Funcall(FunInfo,FileInfo,SharedInfo,FlagCall)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),4,4);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+CPass1FreeFileName = FileInfo.Funct(nxtscifunnumber).CPass1FreeFileName;
+HeaderFileName = FileInfo.Funct(nxtscifunnumber).Pass1HeaderFileName;
+CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName;
+CInitVarsFileName = FileInfo.Funct(nxtscifunnumber).CInitVarsFileName;
+IndentLevel = SharedInfo.NIndent;
+CCall = '';
+
+FunctionName = FunInfo.SCIFunctionName;
+CFunName = FunInfo.CFunctionName;
+InArg = FunInfo.InArg;
+NInArg = FunInfo.NInArg;
+OutArg = FunInfo.OutArg;
+NOutArg = FunInfo.NOutArg;
+PosFirstOutScalar = FunInfo.PosFirstOutScalar;
+
+
+
+if (SharedInfo.SkipNextFun > 0)
+ SharedInfo.SkipNextFun = SharedInfo.SkipNextFun - 1;
+ return;
+end
+
+if ((sum(mtlb_strcmp(FunctionName,SharedInfo.Annotations.DataPrec)) > 0) & ...
+ (SharedInfo.SkipNextPrec == 1))
+ SharedInfo.SkipNextPrec = SharedInfo.SkipNextPrec - 1;
+ return;
+end
+
+if ((mtlb_strcmp(FunctionName,'OpEqual')) & ...
+ (SharedInfo.SkipNextEqual == 1))
+ SharedInfo.SkipNextEqual = SharedInfo.SkipNextEqual - 1;
+ return;
+end
+
+
+
+CCall ='';
+if (FunInfo.CFunctionName == SharedInfo.CMainFunName)
+ if (FlagCall == 1)
+ SCI2Cerror('main function called in a source code!');
+ else
+ CCall =CCall+'SCI2Cint ';
+ end
+else
+ if (PosFirstOutScalar >= 1)
+ if (FlagCall == 1)
+ CCall = CCall+OutArg(PosFirstOutScalar).Name+' = ';
+ else
+ CCall = CCall+C_Type(OutArg(PosFirstOutScalar).Type)+' ';
+ end
+ else
+ if (FlagCall == 0)
+ CCall = CCall+'void ';
+ end
+ end
+end
+
+
+CCall = CCall+CFunName+'(';
+
+clear counterin
+for counterin = 1:NInArg
+
+ if (InArg(counterin).Type == 'g' & InArg(counterin).Scope == 'String')
+ TmpInArgName = '""'+InArg(counterin).Name+'""';
+ elseif (InArg(counterin).Type == 'z' & (InArg(counterin).Scope == 'Number'))
+ TmpInArgName = 'DoubleComplex('+SCI2Cstring(real(InArg(counterin).Value))+','+SCI2Cstring(imag(InArg(counterin).Value))+')';
+ elseif (InArg(counterin).Type == 'c' & (InArg(counterin).Scope == 'Number'))
+ TmpInArgName = 'FloatComplex('+SCI2Cstring(real(InArg(counterin).Value))+','+SCI2Cstring(imag(InArg(counterin).Value))+')';
+ else
+ TmpInArgName = InArg(counterin).Name;
+ end
+
+ TmpInArgType = C_Type(InArg(counterin).Type);
+
+ //if (FunctionName == 'OpEqual')
+ // TmpInArgSizeVar = '__'+OutArg(counterin).Name+'Size';
+ // else
+ TmpInArgSizeVar = '__'+InArg(counterin).Name+'Size';
+ //end
+
+ if (InArg(counterin).Dimension == 0)
+ if (FlagCall == 0)
+ CCall = CCall+TmpInArgType+' ';
+ end
+ CCall = CCall+TmpInArgName+',';
+ else
+ if (FlagCall == 0)
+ CCall = CCall+TmpInArgType+'* '+TmpInArgName+', SCI2Cint* __'+TmpInArgName+'Size,';
+ else
+ CCall = CCall+'('+TmpInArgType+'* )'+TmpInArgName+', '+TmpInArgSizeVar+',';
+ end
+ end
+end
+
+for counterout = 1:NOutArg
+ TmpOutArgName = OutArg(counterout).Name;
+ TmpOutArgType = C_Type(OutArg(counterout).Type);
+ if (counterout == PosFirstOutScalar)
+ if (FlagCall == 0)
+ // --- Write in the declaration file the returned output scalar (if any). ---
+ outscalardeclaration = TmpOutArgType+' '+TmpOutArgName+';';
+ PrintStringInfo(C_IndentBlanks(1)+outscalardeclaration,CDeclarationFileName,'file','y');
+ PrintStringInfo(' ',CDeclarationFileName,'file','y');
+ end
+ else
+ if (OutArg(counterout).Dimension == 0)
+ if (FlagCall == 0)
+ // --- Write in the declaration file the returned output scalar (if any). ---
+ outscalardeclaration = TmpOutArgType+' '+TmpOutArgName+';';
+ PrintStringInfo(C_IndentBlanks(1)+outscalardeclaration,CDeclarationFileName,'file','y');
+ PrintStringInfo(' ',CDeclarationFileName,'file','y');
+ CCall = CCall+TmpOutArgType+'* __ptr'+TmpOutArgName+', ';
+ else
+ CCall = CCall+'&'+TmpOutArgName+', ';//NUT: verifica se ci vuole l'&
+ end
+ else
+ if (FlagCall == 0)
+ CCall = CCall+TmpOutArgType+'* '+TmpOutArgName+',';
+ if (OutArg(counterout).FindLike == 1)
+ CCall = CCall+'SCI2Cint* __'+TmpOutArgName+'Size'+',';
+ end
+ outscalardeclaration = 'SCI2Cint __'+TmpOutArgName+'Size[2];';
+ PrintStringInfo(C_IndentBlanks(1)+outscalardeclaration,CDeclarationFileName,'file','y');
+ outscalardeclaration = '__'+TmpOutArgName+'Size[0] = '+(OutArg(counterout).Size(1))+';';
+ PrintStringInfo(C_IndentBlanks(1)+outscalardeclaration,CInitVarsFileName,'file','y');
+ outscalardeclaration = '__'+TmpOutArgName+'Size[1] = '+(OutArg(counterout).Size(2))+';';
+ PrintStringInfo(C_IndentBlanks(1)+outscalardeclaration,CInitVarsFileName,'file','y');
+ PrintStringInfo(' ',CInitVarsFileName,'file','y');
+ else
+ CCall = CCall+'('+TmpOutArgType+'* )'+OutArg(counterout).Name+',';
+ if (OutArg(counterout).FindLike == 1)
+ CCall = CCall+'(SCI2Cint* ) __'+TmpOutArgName+'Size'+',';
+ end
+ end
+ end
+ end
+end
+
+if (part(CCall,length(CCall):length(CCall)) == ' ')
+ CCall = part(CCall,1:length(CCall)-1);
+end
+if (part(CCall,length(CCall):length(CCall)) == ',')
+ CCall = part(CCall,1:length(CCall)-1);
+end
+
+CCall = CCall+')';
+if (FlagCall == 1)
+ CCall = CCall+';';
+end
+//NUT: la parte di generazione della C call va inserita in una funzione a parte.
+//NUT: tale funzione deve avere anche uno switch che consenta di generare differenti versioni
+//NUT: delle chiamate C in accordo con la libreria disponibile, fermo restando che
+//NUT: e' sempre possibile fornire la lista delle macro.
+if mtlb_strcmp(FunctionName,'return')
+ // Here I introduce the pointer assignment for output scalar arguments.
+ for cntout = 1:SharedInfo.CurrentFunInfo.NOutArg
+ if (cntout ~= SharedInfo.CurrentFunInfo.PosFirstOutScalar & ...
+ SharedInfo.CurrentFunInfo.OutArg(cntout).Dimension == 0)
+ CCall = '';
+ CCall = CCall+'*__ptr'+SharedInfo.CurrentFunInfo.OutArg(cntout).Name+' = '+...
+ SharedInfo.CurrentFunInfo.OutArg(cntout).Name+';';
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+ end
+ end
+
+ PrintStringInfo(C_IndentBlanks(1)+'/*',CPass1FreeFileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(1)+'** ------------------------- ',CPass1FreeFileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(1)+'** --- End Free Section. --- ',CPass1FreeFileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(1)+'** ------------------------- ',CPass1FreeFileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(1)+'*/',CPass1FreeFileName,'file','y');
+ PrintStringInfo(' ',CPass1FreeFileName,'file','y');
+ SCI2Ccopyfile(CPass1FreeFileName,...
+ CPass1FileName,'append');
+
+ CCall = '';
+ if (SharedInfo.CurrentFunInfo.CFunctionName == SharedInfo.CMainFunName)
+ CCall = CCall+'return(0);';
+ else
+ if (SharedInfo.CurrentFunInfo.PosFirstOutScalar > 0)
+ CCall = CCall+'return('+SharedInfo.CurrentFunInfo.OutArg(SharedInfo.CurrentFunInfo.PosFirstOutScalar).Name+');'
+ end
+ end
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+else
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+ if (FlagCall == 0)
+ // Add prototype to the header file
+ C_InitHeader(CCall+';',HeaderFileName,SharedInfo.Sci2CLibMainHeaderFName);
+
+ // Add { at the beginning of the function.
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+'{',CPass1FileName,'file','y');
+
+ end
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenDeclarations.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenDeclarations.sci
new file mode 100644
index 00000000..a972fff8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenDeclarations.sci
@@ -0,0 +1,92 @@
+function Cdeclaration = C_GenDeclarations(ArgStruct,CDeclarationFileName,IndentLevel,ReportFileName,FlagExt)
+// function Cdeclaration = C_GenDeclarations(ArgStruct,CDeclarationFileName,IndentLevel,ReportFileName,FlagExt)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+
+//NUT: ilnome di questa funzione va cambiato perche' le dichiarazioni le fanno anche i for e i while.
+
+
+Cdeclaration = '';
+NDeclarations = 0;
+if (ArgStruct.Dimension > 0)
+ if (FlagExt == 1)
+ Cdeclaration(1) = 'extern ';
+ Cdeclaration(2) = 'extern ';
+ else
+ Cdeclaration(1) = '';
+ Cdeclaration(2) = '';
+ end
+ //NUT: vedi Mem_Alloc_Out per maggiori info sulla rimozione della temp nella if
+ // if ((ArgStruct.Scope=='Temp') | (ArgStruct.FindLike == -1) | (SCI2Cisnum(ArgStruct.Size(1))==%F) | (SCI2Cisnum(ArgStruct.Size(2))==%F))
+ if (ArgStruct.Type=='g')
+ if (isnan(ArgStruct.Value))
+ Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+...
+ ' * '+ArgStruct.Name+';';
+ else
+ Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+...
+ ' '+ArgStruct.Name+'['+ArgStruct.Size(1)+']['+ArgStruct.Size(2)+'] = {'+ArgStruct.Value+'};';
+ end
+ Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size[2] = {'+ArgStruct.Size(1)+','+ArgStruct.Size(2)+'};';
+ NDeclarations = 2;
+ elseif ((ArgStruct.FindLike == -1) | (SCI2Cisnum(ArgStruct.Size(1))==%F) | (SCI2Cisnum(ArgStruct.Size(2))==%F))
+ // Generate only the pointer that will be used by the malloc function.
+ Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+'* '+...
+ ArgStruct.Name+';';
+ // Declare the Size array
+ Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size[2];';
+ NDeclarations = 2;
+ else
+ // Declare the array with its size.
+ Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+...
+ ' '+ArgStruct.Name+'['+ArgStruct.Size(1)+']['+ArgStruct.Size(2)+'];';
+ Cdeclaration(2) = Cdeclaration(2)+C_Type('i')+' __'+ArgStruct.Name+'Size[2] = {'+ArgStruct.Size(1)+','+ArgStruct.Size(2)+'};';
+ NDeclarations = 2;
+ end
+else
+ if (FlagExt == 1)
+ Cdeclaration(1) = 'extern ';
+ else
+ Cdeclaration(1) = '';
+ end
+ Cdeclaration(1) = Cdeclaration(1)+C_Type(ArgStruct.Type)+' '+ArgStruct.Name;
+ if (~isnan(ArgStruct.Value) & (FlagExt == 0))
+ if isreal(ArgStruct.Value)
+ Cdeclaration(1) = Cdeclaration(1)+' = '+SCI2Cstring(ArgStruct.Value);
+ else
+ if (ArgStruct.Type == 'z')
+ Cdeclaration(1) = Cdeclaration(1)+' = DoubleComplex('+SCI2Cstring(real(ArgStruct.Value))+','+SCI2Cstring(imag(ArgStruct.Value))+')';
+ else
+ Cdeclaration(1) = Cdeclaration(1)+' = FloatComplex('+SCI2Cstring(real(ArgStruct.Value))+','+SCI2Cstring(imag(ArgStruct.Value))+')';
+ end
+ end
+ end
+ Cdeclaration(1) = Cdeclaration(1)+';';
+ NDeclarations = 1;
+end
+
+
+// --------------------------------------------
+// --- Write C declaration into the C file. ---
+// --------------------------------------------
+for cntdecl = 1:NDeclarations
+ PrintStringInfo(' '+Cdeclaration(cntdecl),ReportFileName,'file','y');
+end
+for cntdecl = 1:NDeclarations
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+Cdeclaration(cntdecl),CDeclarationFileName,'file','y');
+end
+PrintStringInfo(' ',CDeclarationFileName,'file','y');
+
+endfunction
+//NUT: dove sta il controllo che verifica se dopo aver dichiarato una local A[10] essa viene utilizzata
+//NUT: per memorizzare un A = sin(B) dove B[11]??
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateFunName.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateFunName.sci
new file mode 100644
index 00000000..57987774
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateFunName.sci
@@ -0,0 +1,38 @@
+function CFunName = C_GenerateFunName(FunctionName,InArg,NInArg,OutArg,NOutArg)
+// function CFunName = C_GenerateFunName(FunctionName,InArg,NInArg,OutArg,NOutArg)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+// 11-Nov-2007 -- Raffaele Nutricato: changed naming rule.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+CFunName = '';
+
+for tmpcnt = 1:NInArg
+ if (InArg(tmpcnt).Dimension == 1)
+ CFunName = CFunName+InArg(tmpcnt).Type+'2';
+ else
+ CFunName = CFunName+InArg(tmpcnt).Type+SCI2Cstring(InArg(tmpcnt).Dimension);
+ end
+end
+
+CFunName = CFunName+FunctionName;
+
+for tmpcnt = 1:NOutArg
+ if (OutArg(tmpcnt).Dimension == 1)
+ CFunName = CFunName+OutArg(tmpcnt).Type+'2';
+ else
+ CFunName = CFunName+OutArg(tmpcnt).Type+SCI2Cstring(OutArg(tmpcnt).Dimension);
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateLaunchScript.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateLaunchScript.sci
new file mode 100644
index 00000000..5db67a58
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateLaunchScript.sci
@@ -0,0 +1,75 @@
+function C_GenerateLaunchScript(OutDir,ListSCI2CInputPrmFiles)
+// function C_GenerateLaunchScript(OutDir,ListSCI2CInputPrmFiles)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+ScriptFileName = fullfile(OutDir,'LaunchRegressionTests.rc');
+NTranslations = size(ListSCI2CInputPrmFiles,1);
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+SCI2Cmdelete(ScriptFileName);
+PrintStringInfo('#! /bin/bash ',ScriptFileName,'file','y');
+PrintStringInfo(' ',ScriptFileName,'file','y');
+PrintStringInfo('maindir=$PWD',ScriptFileName,'file','y');
+PrintStringInfo(' ',ScriptFileName,'file','y');
+PrintStringInfo('INTIALIZE()',ScriptFileName,'file','y');
+PrintStringInfo('{',ScriptFileName,'file','y');
+PrintStringInfo(' reportfile=$maindir/RegressionTestsReport.txt',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""#############'+'#################"" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""REPORT OF THE REGRESSION TESTS"" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""#############'+'#################"" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""Author: Raffaele Nutricato"" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""Copyright 2008 Raffaele Nutricato"" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" > $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' cd $maindir ',ScriptFileName,'file','y');
+PrintStringInfo('}',ScriptFileName,'file','y');
+PrintStringInfo(' ',ScriptFileName,'file','y');
+PrintStringInfo('EXECUTE()',ScriptFileName,'file','y');
+PrintStringInfo('{',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""xxxxxxxxxxxxxx'+'xxxxxxxxxxxxxxxxxx'+'xxxxxxxxxxxx""',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""xxxxxxxxxxxxxx'+'xxxxxxxxxxxxxxxxxxxxxxx'+'xxxxxxx"" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo $testname ',ScriptFileName,'file','y');
+PrintStringInfo(' echo $testname >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""xxxxxxxxxxxxxxx'+'xxxxxxxxxxxxxxxxx'+'xxxxxxxxxxxx"" ',ScriptFileName,'file','y');
+PrintStringInfo(' echo ""xxxxxxxxxxxxxxxx'+'xxxxxxxxxxxxxxxxxxxx'+'xxxxxxxx"" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' cd $testname/C_Code',ScriptFileName,'file','y');
+PrintStringInfo(' make >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' cd $maindir',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo(' echo "" "" >> $reportfile',ScriptFileName,'file','y');
+PrintStringInfo('}',ScriptFileName,'file','y');
+PrintStringInfo(' ',ScriptFileName,'file','y');
+PrintStringInfo('#############'+'##############',ScriptFileName,'file','y');
+PrintStringInfo('### ADD YOUR TESTS HERE ###',ScriptFileName,'file','y');
+PrintStringInfo('##############'+'#############',ScriptFileName,'file','y');
+PrintStringInfo('INTIALIZE',ScriptFileName,'file','y');
+PrintStringInfo(' ',ScriptFileName,'file','y');
+
+for cnttransl = 1:NTranslations
+ [testpath,tmpname,tmpext] = fileparts(ListSCI2CInputPrmFiles(cnttransl));
+ testpath = ConvertPathMat2C(testpath,'cygwin');
+ PrintStringInfo('testname=""'+testpath+'""',ScriptFileName,'file','y');
+ PrintStringInfo('EXECUTE $testname',ScriptFileName,'file','y');
+ PrintStringInfo(' ',ScriptFileName,'file','y');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateMakefile.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateMakefile.sci
new file mode 100644
index 00000000..db199b9f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_GenerateMakefile.sci
@@ -0,0 +1,77 @@
+function C_GenerateMakefile(FileInfo,SharedInfo)
+// function C_GenerateMakefile(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+PrintStepInfo('Generating Makefile '+FileInfo.MakefileFilename,...
+ FileInfo.GeneralReport,'both');
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+PrintStringInfo('# SCI2C Makefile',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# Copyright 2007 Raffaele Nutricato ',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# raffaele.nutricato@tiscali.it',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# -----------------------',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# --- USER PARAMETERS ---',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# -----------------------',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('# --- DIRECTORIES AND FILES ---',FileInfo.MakefileFilename,'file','y');
+if (SharedInfo.CCompilerPathStyle == 'windows')
+ makeobjpath = FileInfo.CStyleSCI2CMainDir+'\CFiles\sci2cobj';
+ makecsrcdir = FileInfo.CStyleSCI2CMainDir+'\CFiles\sci2ccode';
+ makehsrcdir = FileInfo.CStyleSCI2CMainDir+'\CFiles\sci2cincludes';
+ makeisrcdir = FileInfo.CStyleSCI2CMainDir+'\CFiles\sci2cinterfaces';
+ makesci2cdir = FileInfo.CStyleOutCCCodeDir;
+elseif (SharedInfo.CCompilerPathStyle == 'unix' | ...
+ SharedInfo.CCompilerPathStyle == 'cygwin')
+ makeobjpath = FileInfo.CStyleSCI2CMainDir+'/CFiles/sci2cobj';
+ makecsrcdir = FileInfo.CStyleSCI2CMainDir+'/CFiles/sci2ccode';
+ makehsrcdir = FileInfo.CStyleSCI2CMainDir+'/CFiles/sci2cincludes';
+ makeisrcdir = FileInfo.CStyleSCI2CMainDir+'/CFiles/sci2cinterfaces';
+ makesci2cdir = FileInfo.CStyleOutCCCodeDir;
+else
+ PrintStringInfo(' ',ReportFileName,'stdout','y');
+ PrintStringInfo('SCI2CERROR: Unkwnown option for CCompilerPathStyle','','both','y');
+ PrintStringInfo('SCI2CERROR: Please check SCI2CInputParameters.sce file.','','both','y');
+ SCI2Cerror(' ');
+end
+
+PrintStringInfo('OBJDIR = '+makeobjpath,FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('CSRCDIR = '+makecsrcdir,FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('HSRCDIR = '+makehsrcdir,FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('ISRCDIR = '+makeisrcdir,FileInfo.MakefileFilename,'file','y');
+//PrintStringInfo('SCI2CDIR = '+makesci2cdir,FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('SCI2CDIR = .',FileInfo.MakefileFilename,'file','y');
+PrintStringInfo('EXEFILENAME = mytest.exe',FileInfo.MakefileFilename,'file','y');
+
+// -------------------------------
+// --- Open template makefile. ---
+// -------------------------------
+fidfile = SCI2COpenFileRead(FileInfo.MakefileTemplate);
+
+// -------------------
+// --- Read lines. ---
+// -------------------
+tmpline = mgetl(fidfile,1);
+while (meof(fidfile) == 0)
+ PrintStringInfo(tmpline,FileInfo.MakefileFilename,'file','y');
+ tmpline = mgetl(fidfile,1);
+end
+
+mclose(fidfile);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfElseBlocks.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfElseBlocks.sci
new file mode 100644
index 00000000..1cf7a36d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfElseBlocks.sci
@@ -0,0 +1,50 @@
+function SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,InOutStatements)
+// function SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,InOutStatements)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+
+IndentLevel = SharedInfo.NIndent;
+
+CCall = '';
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// -----------------------------------------------------
+// --- Generate the C call/Update indentation level. ---
+// -----------------------------------------------------
+if (InOutStatements=='in')
+ CCall = CCall+'{';
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+ IndentLevel = IndentLevel + 1;
+elseif (InOutStatements=='out')
+ CCall = CCall+'}';
+ IndentLevel = IndentLevel - 1;
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+CCall,CPass1FileName,'file','y');
+else
+ SCI2CerrorFile('Unknown setting for InOutStatements: '+InOutStatements'.',ReportFileName);
+end
+
+SharedInfo.NIndent = IndentLevel;
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfExpression.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfExpression.sci
new file mode 100644
index 00000000..c470c047
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IfExpression.sci
@@ -0,0 +1,55 @@
+function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo,SharedInfo)
+// function SharedInfo = C_IfExpression(IfCondArg,NIfCondArg,ASTIfExpType,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+
+if ((NIfCondArg ~= 1) & (ASTIfExpType~='else'))
+ SCI2CerrorFile('Cannot manage ""if/elseif"" with a number of condition variables not equal to 1.',ReportFileName);
+end
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+
+
+if (ASTIfExpType=='if')
+ CFunName = 'if';
+elseif (ASTIfExpType=='elseif')
+ CFunName = 'if';
+elseif (ASTIfExpType=='else')
+ CFunName = 'else';
+else
+ SCI2CerrorFile('Unknown ASTIfExpType ""'+ASTIfExpType+'"".',ReportFileName);
+end
+
+if SCI2Cstrncmps1size(ASTIfExpType,'else')
+ SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,'out');
+end
+
+CCall ='';
+CCall = CCall+CFunName;
+if (ASTIfExpType~='else')
+ CCall = CCall+'('+IfCondArg(1)+')';
+end
+PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+SharedInfo = C_IfElseBlocks(FileInfo,SharedInfo,'in');
+
+if (ASTIfExpType=='elseif')
+ SharedInfo.CountNestedIf = SharedInfo.CountNestedIf + 1;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_IndentBlanks.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IndentBlanks.sci
new file mode 100644
index 00000000..ffca4458
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_IndentBlanks.sci
@@ -0,0 +1,21 @@
+function OutBlanksString = C_IndentBlanks(IndentLevel)
+// function OutBlanksString = C_IndentBlanks(IndentLevel)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+OutBlanksString = '';
+BlanksPerLevel = ' ';
+for cntind = 1:IndentLevel
+ OutBlanksString = OutBlanksString + BlanksPerLevel;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_InitHeader.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_InitHeader.sci
new file mode 100644
index 00000000..ef96f4ba
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_InitHeader.sci
@@ -0,0 +1,48 @@
+function C_InitHeader(C_Prototype,HeaderFileName,Sci2CLibMainHeaderFName)
+// function C_InitHeader(C_Prototype,HeaderFileName,Sci2CLibMainHeaderFName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+
+C_SCI2CHeader(HeaderFileName);
+PrintStringInfo('/*',HeaderFileName,'file','y');
+PrintStringInfo('** ----------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('** --- SCI2C Includes. --- ',HeaderFileName,'file','y');
+PrintStringInfo('** ----------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('*/',HeaderFileName,'file','y');
+PrintStringInfo('#include ""'+Sci2CLibMainHeaderFName+'""',HeaderFileName,'file','y');
+PrintStringInfo('/*',HeaderFileName,'file','y');
+PrintStringInfo('** --------------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('** --- End SCI2C Includes. --- ',HeaderFileName,'file','y');
+PrintStringInfo('** --------------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('*/',HeaderFileName,'file','y');
+PrintStringInfo(' ',HeaderFileName,'file','y');
+PrintStringInfo(' ',HeaderFileName,'file','y');
+PrintStringInfo('/*',HeaderFileName,'file','y');
+PrintStringInfo('** ------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('** --- Prototypes. --- ',HeaderFileName,'file','y');
+PrintStringInfo('** ------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('*/',HeaderFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(0)+C_Prototype,HeaderFileName,'file','y');
+PrintStringInfo('/*',HeaderFileName,'file','y');
+PrintStringInfo('** ----------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('** --- End Prototypes. --- ',HeaderFileName,'file','y');
+PrintStringInfo('** ----------------------- ',HeaderFileName,'file','y');
+PrintStringInfo('*/',HeaderFileName,'file','y');
+PrintStringInfo(' ',HeaderFileName,'file','y');
+PrintStringInfo(' ',HeaderFileName,'file','y');
+PrintStringInfo('/*',HeaderFileName,'file','y');
+PrintStringInfo('** ------------------------ ',HeaderFileName,'file','y');
+PrintStringInfo('** --- USER2C Includes. --- ',HeaderFileName,'file','y');
+PrintStringInfo('** ------------------------ ',HeaderFileName,'file','y');
+PrintStringInfo('*/',HeaderFileName,'file','y');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_MemAllocOutTempVars.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_MemAllocOutTempVars.sci
new file mode 100644
index 00000000..5c3f9905
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_MemAllocOutTempVars.sci
@@ -0,0 +1,32 @@
+function C_MemAllocOutTempVars(OutArg,NOutArg,CPass1FileName,CPass1FreeFileName,IndentLevel,ReportFileName)
+// function C_MemAllocOutTempVars(OutArg,NOutArg,CPass1FileName,CPass1FreeFileName,IndentLevel,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),6,6);
+
+for counterout = 1:NOutArg
+ if (OutArg(counterout).Dimension > 0)
+ if ((OutArg(counterout).FindLike == -1) | (SCI2Cisnum(OutArg(counterout).Size(1))==%F) | (SCI2Cisnum(OutArg(counterout).Size(2))==%F))
+ OutArgName = OutArg(counterout).Name;
+ tmpcode = '__'+OutArgName+'Size[0]='+OutArg(counterout).Size(1)+';';
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+tmpcode,CPass1FileName,'file','y');
+ PrintStringInfo(' '+tmpcode,ReportFileName,'file','y');
+ tmpcode = '__'+OutArgName+'Size[1]='+OutArg(counterout).Size(2)+';';
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+tmpcode,CPass1FileName,'file','y');
+ PrintStringInfo(' '+tmpcode,ReportFileName,'file','y');
+ tmpcode = OutArgName+' = ('+C_Type(OutArg(counterout).Type)+'*) malloc(('+OutArg(counterout).Size(1)+')*('+OutArg(counterout).Size(2)+')*sizeof('+C_Type(OutArg(counterout).Type)+'));';
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+tmpcode,CPass1FileName,'file','y');
+ PrintStringInfo(' '+tmpcode,ReportFileName,'file','y');
+ PrintStringInfo(C_IndentBlanks(1)+'free('+OutArgName+');',CPass1FreeFileName,'file','y');
+ end
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_SCI2CHeader.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_SCI2CHeader.sci
new file mode 100644
index 00000000..f26d45e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_SCI2CHeader.sci
@@ -0,0 +1,24 @@
+function C_SCI2CHeader(FileName)
+// function C_SCI2CHeader(FileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 21-Dec-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+PrintStringInfo('/*',FileName,'file','y');
+PrintStringInfo('** ************************************************',FileName,'file','y');
+PrintStringInfo('** hArtes/POLIBA SCILAB2C',FileName,'file','y');
+PrintStringInfo('** Contact: raffaele.nutricato@tiscali.it',FileName,'file','y');
+PrintStringInfo('** ************************************************',FileName,'file','y');
+PrintStringInfo('*/',FileName,'file','y');
+PrintStringInfo(' ',FileName,'file','y');
+PrintStringInfo(' ',FileName,'file','y');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_Type.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_Type.sci
new file mode 100644
index 00000000..7d727d7e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_Type.sci
@@ -0,0 +1,31 @@
+function OutC_Type = C_Type(ArgType)
+// function OutC_Type = C_Type(ArgType)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+if (ArgType == 's')
+ OutC_Type = 'float';
+elseif (ArgType == 'd')
+ OutC_Type = 'double';
+elseif (ArgType == 'c')
+ OutC_Type = 'floatComplex';
+elseif (ArgType == 'z')
+ OutC_Type = 'doubleComplex';
+elseif (ArgType == 'i')
+ OutC_Type = 'SCI2Cint';
+elseif (ArgType == 'g')
+ OutC_Type = 'char';
+elseif (ArgType == 'f')
+ OutC_Type = 'SCI2CFILEID';
+else
+ SCI2Cerror('Unknown Argument Type: ""'+ArgType+'"".');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/C_WhileExpression.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/C_WhileExpression.sci
new file mode 100644
index 00000000..7a659df2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/C_WhileExpression.sci
@@ -0,0 +1,43 @@
+function SharedInfo = C_WhileExpression(FileInfo,SharedInfo)
+// function SharedInfo = C_WhileExpression(FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 15-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+
+CPass1WhileProlFileName = FileInfo.Funct(nxtscifunnumber).CPass1WhileProlFileName(SharedInfo.While.Level);
+CPass1WhileEpilFileName = FileInfo.Funct(nxtscifunnumber).CPass1WhileEpilFileName(SharedInfo.While.Level);
+CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName;
+
+CCall ='';
+
+[C_Strings,NumCStrings] = File2StringArray(CPass1WhileProlFileName);
+C_Strings = stripblanks(C_Strings);
+for cntstr = 1:NumCStrings
+ PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+C_Strings(cntstr),CPass1FileName,'file','y');
+ PrintStringInfo(C_Strings(cntstr),CPass1WhileEpilFileName ,'file','y');
+end
+
+PrintStringInfo('}',CPass1WhileEpilFileName ,'file','y');
+
+CCall = 'while('+SharedInfo.WhileExpr.CondVar+')';
+PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+CCall = '{';
+PrintStringInfo(C_IndentBlanks(SharedInfo.NIndent)+CCall,CPass1FileName,'file','y');
+
+SharedInfo.NIndent = SharedInfo.NIndent + 1;
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/GenCFunDatFiles.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/GenCFunDatFiles.sci
new file mode 100644
index 00000000..d42507fe
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/GenCFunDatFiles.sci
@@ -0,0 +1,42 @@
+function GenCFunDatFiles(FunctionName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,CFunName,LibTypeInfo,FunInfoDatDir)
+// function GenCFunDatFiles(FunctionName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,CFunName,LibTypeInfo,FunInfoDatDir)
+// -----------------------------------------------------------------
+//
+// Status:
+// 30-Oct-2007 -- Raffaele Nutricato: Author.
+// 30-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),11,11);
+
+
+PosFirstOutScalar = 0;
+FoundOutScalar = 0;
+for counterout = 1:NOutArg
+ if (OutArg(counterout).Dimension == 0)
+ if (FoundOutScalar==0)
+ PosFirstOutScalar = counterout;
+ FoundOutScalar = 1;
+ end
+ end
+end
+
+clear FunInfo
+FunInfo.SCIFunctionName = FunctionName;
+FunInfo.CFunctionName = CFunName;
+FunInfo.FunPrecSpecifier = FunPrecSpecifier;
+FunInfo.FunTypeAnnot = FunTypeAnnot;
+FunInfo.FunSizeAnnot = FunSizeAnnot;
+FunInfo.InArg = InArg;
+FunInfo.NInArg = NInArg;
+FunInfo.OutArg = OutArg;
+FunInfo.NOutArg = NOutArg;
+FunInfo.PosFirstOutScalar = PosFirstOutScalar;
+FunInfo.LibTypeInfo = LibTypeInfo;
+save(fullfile(FunInfoDatDir,CFunName+'.dat'),FunInfo);
+clear FunInfo
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/GetClsFileName.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/GetClsFileName.sci
new file mode 100644
index 00000000..6e560e6a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/GetClsFileName.sci
@@ -0,0 +1,63 @@
+function SCI2CClassFileName = GetClsFileName(FunName,FileInfo,SharedInfo)
+// function SCI2CClassFileName = GetClsFileName(FunName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+tmpannfilename = FunName+'.ann';
+tmpscifilename = FunName+'.sci';
+AnnFileName = '';
+ClsFileName = ''
+
+SCI2CClassSpecifier = SharedInfo.Annotations.FUNCLASS;
+FlagFoundAnnFile = 0;
+if SCI2Cfileexist(FileInfo.USER2CLibCAnnFun,tmpannfilename)
+ FlagFoundAnnFile = 1;
+ AnnFileName = fullfile(FileInfo.USER2CLibCAnnFun,tmpannfilename);
+ SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName);
+ SCI2CClassFileName = fullfile(FileInfo.USER2CLibCAnnCls,SCI2CClassName+'.acls');
+elseif SCI2Cfileexist(FileInfo.USER2CLibSCIAnnFun,tmpannfilename)
+ FlagFoundAnnFile = 1;
+ AnnFileName = fullfile(FileInfo.USER2CLibSCIAnnFun,tmpannfilename);
+ SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName);
+ SCI2CClassFileName = fullfile(FileInfo.USER2CLibSCIAnnCls,SCI2CClassName+'.acls');
+elseif (SCI2Cfileexist(FileInfo.SCI2CLibCAnnFun,tmpannfilename))
+ FlagFoundAnnFile = 1;
+ AnnFileName = fullfile(FileInfo.SCI2CLibCAnnFun,tmpannfilename);
+ SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName);
+ SCI2CClassFileName = fullfile(FileInfo.SCI2CLibCAnnCls,SCI2CClassName+'.acls');
+elseif (SCI2Cfileexist(FileInfo.SCI2CLibSCIAnnFun,tmpannfilename))
+ FlagFoundAnnFile = 1;
+ AnnFileName = fullfile(FileInfo.SCI2CLibSCIAnnFun,tmpannfilename);
+ SCI2CClassName = FL_GetFunctionClass(AnnFileName,SCI2CClassSpecifier,ReportFileName);
+ SCI2CClassFileName = fullfile(FileInfo.SCI2CLibSCIAnnCls,SCI2CClassName+'.acls');
+end
+
+if (FlagFoundAnnFile == 0)
+ [FlagFoundAnnFile,fullpathscifilename] = SCI2CFindFile(FileInfo.UserSciFilesPaths,FunName+'.sci');
+ if (FlagFoundAnnFile == 0)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Missing function annotation. Could not find',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: an associated .sci or .ann file for function: '+FunName,ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ AnnFileName = fullfile(FileInfo.USER2CLibSCIAnnFun,tmpannfilename);
+ SCI2CClassName = FunName;
+ SCI2CClassFileName = fullfile(FileInfo.USER2CLibSCIAnnCls,SCI2CClassName+'.acls');
+ Sci2AnnotationFile(fullpathscifilename,SCI2CClassFileName,AnnFileName,...
+ SharedInfo.Annotations.USERFUN,ReportFileName);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/GetSymbolDimension.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/GetSymbolDimension.sci
new file mode 100644
index 00000000..2c214e7a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/GetSymbolDimension.sci
@@ -0,0 +1,42 @@
+function symboldimension = GetSymbolDimension(Field_Size)
+// function symboldimension = GetSymbolDimension(Field_Size)
+// -----------------------------------------------------------------
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+Nelem = max(size(Field_Size));
+if (Nelem < 2)
+ SCI2Cerror('The size of a symbol cannot be expressed with one or zero numbers.');
+end
+for countersize = 1:Nelem
+ if (SCI2Cisnum(Field_Size(countersize)))
+ tmpnum = eval(Field_Size(countersize));
+ if (tmpnum == 0)
+ SCI2Cerror('Found a symbol that has zeros elements. 0xN or Nx0 matrices are not allowed.');
+ elseif (tmpnum == 1)
+ Field_Type(countersize) = 0;
+ else
+ Field_Type(countersize) = 1;
+ end
+ else
+ Field_Type(countersize) = 1;
+ end
+end
+
+Sum_Field_Type = sum(Field_Type);
+if (Sum_Field_Type == 0)
+ symboldimension = 0;
+elseif (Sum_Field_Type == 1)
+ symboldimension = 2;
+else
+ symboldimension = 2;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/GetWhileCondVariable.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/GetWhileCondVariable.sci
new file mode 100644
index 00000000..5f3ab18f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/GetWhileCondVariable.sci
@@ -0,0 +1,24 @@
+function SharedInfo = GetWhileCondVariable(OutArg,NOutArg,FunctionName,FileInfo,SharedInfo)
+// function SharedInfo = GetWhileCondVariable(OutArg,NOutArg,FunctionName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+if ((SharedInfo.WhileExpr.OnExec > 0) & (NOutArg==1))
+ SharedInfo.WhileExpr.CondVar = OutArg(1).Name;
+ SharedInfo.WhileExpr.DimCondVar = OutArg(1).Dimension;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/JoinDeclarAndCcode.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/JoinDeclarAndCcode.sci
new file mode 100644
index 00000000..d8222027
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/JoinDeclarAndCcode.sci
@@ -0,0 +1,123 @@
+function JoinDeclarAndCcode(FileInfoDatFile)
+// function JoinDeclarAndCcode(FileInfoDatFile)
+// -----------------------------------------------------------------
+// Status:
+// 07-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+load(FileInfoDatFile,'FileInfo');
+
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+funnumber = SharedInfo.NextSCIFunNumber;
+
+CPass1FileName = FileInfo.Funct(funnumber).CPass1FileName;
+CPass2FileName = FileInfo.Funct(funnumber).CPass2FileName;
+CDeclarationFileName = FileInfo.Funct(funnumber).CDeclarationFileName;
+CGblDeclarFileName = FileInfo.Funct(funnumber).CGblDeclarFileName;
+CInitVarsFileName = FileInfo.Funct(funnumber).CInitVarsFileName;
+ReportFileName = FileInfo.Funct(funnumber).ReportFileName;
+
+CPass1V1FileFid = SCI2COpenFileRead(CPass1FileName);
+CDeclarationFileFid = SCI2COpenFileRead(CDeclarationFileName);
+CGblDeclarFileFid = SCI2COpenFileRead(CGblDeclarFileName);
+CInitVarsFileFid = SCI2COpenFileRead(CInitVarsFileName);
+
+
+PrintStringInfo('/*',CPass2FileName,'file','y');
+PrintStringInfo('** -------------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('** --- Global Variables Declaration. ---',CPass2FileName,'file','y');
+PrintStringInfo('** -------------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('*/',CPass2FileName,'file','y');
+
+while (~meof(CGblDeclarFileFid))
+
+ tmpcline = mgetl(CGblDeclarFileFid,1);
+ if (length(tmpcline) == 0)
+ tmpcline = ' ';
+ end
+
+ noblkstmpcline = stripblanks(tmpcline);
+ PrintStringInfo(tmpcline,CPass2FileName,'file','y');
+end
+PrintStringInfo('/*',CPass2FileName,'file','y');
+PrintStringInfo('** -----------------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('** --- End Global Variables Declaration. ---',CPass2FileName,'file','y');
+PrintStringInfo('** -----------------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('*/',CPass2FileName,'file','y');
+PrintStringInfo(' ',CPass2FileName,'file','y');
+
+FoundCurlyBracket = 0;
+while ((~meof(CPass1V1FileFid)) & (FoundCurlyBracket == 0))
+ tmpcline = mgetl(CPass1V1FileFid,1);
+ noblkstmpcline = stripblanks(tmpcline);
+ if (length(noblkstmpcline) > 0)
+ if (SCI2Cstrncmps1size('{',noblkstmpcline))
+ FoundCurlyBracket = 1;
+ end
+ else
+ tmpcline = ' ';
+ end
+ PrintStringInfo(tmpcline,CPass2FileName,'file','y');
+end
+
+if (FoundCurlyBracket == 0)
+ SCI2CerrorFile('""{"" char not found in:'+CPass1FileName,ReportFileName);
+end
+
+PrintStringInfo('/*',CPass2FileName,'file','y');
+PrintStringInfo('** -----------------------------',CPass2FileName,'file','y');
+PrintStringInfo('** --- Variable Declaration. ---',CPass2FileName,'file','y');
+PrintStringInfo('** -----------------------------',CPass2FileName,'file','y');
+PrintStringInfo('*/',CPass2FileName,'file','y');
+while (~meof(CDeclarationFileFid))
+ tmpcline = mgetl(CDeclarationFileFid,1);
+ if (length(tmpcline) == 0)
+ tmpcline = ' ';
+ end
+
+ noblkstmpcline = stripblanks(tmpcline);
+ PrintStringInfo(tmpcline,CPass2FileName,'file','y');
+end
+
+while (~meof(CInitVarsFileFid))
+ tmpcline = mgetl(CInitVarsFileFid,1);
+ if (length(tmpcline) == 0)
+ tmpcline = ' ';
+ end
+
+ noblkstmpcline = stripblanks(tmpcline);
+ PrintStringInfo(tmpcline,CPass2FileName,'file','y');
+end
+PrintStringInfo('/*',CPass2FileName,'file','y');
+PrintStringInfo('** ---------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('** --- End Variable Declaration. ---',CPass2FileName,'file','y');
+PrintStringInfo('** ---------------------------------',CPass2FileName,'file','y');
+PrintStringInfo('*/',CPass2FileName,'file','y');
+
+
+PrintStringInfo('/*',CPass2FileName,'file','y');
+PrintStringInfo('** ---------------',CPass2FileName,'file','y');
+PrintStringInfo('** --- C code. ---',CPass2FileName,'file','y');
+PrintStringInfo('** ---------------',CPass2FileName,'file','y');
+PrintStringInfo('*/',CPass2FileName,'file','y');
+while (~meof(CPass1V1FileFid))
+ tmpcline = mgetl(CPass1V1FileFid,1);
+ if (length(tmpcline) == 0)
+ tmpcline = ' ';
+ end
+ PrintStringInfo(tmpcline,CPass2FileName,'file','y');
+end
+
+mclose(CPass1V1FileFid);
+mclose(CDeclarationFileFid);
+mclose(CGblDeclarFileFid);
+mclose(CInitVarsFileFid);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp
new file mode 100644
index 00000000..65184df1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp
@@ -0,0 +1,230 @@
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+ELEMENTARY_FUNCTIONS_DIR = $(CSRCDIR)/src/elementaryFunctions
+CFLAGS_ELEMENTARY_FUNCTIONS = -I $(ELEMENTARY_FUNCTIONS_DIR)/includes -I $(ELEMENTARY_FUNCTIONS_DIR)/interfaces
+
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+objects = \
+ $(OBJDIR)/doubleComplex.o \
+ $(OBJDIR)/floatComplex.o \
+ $(OBJDIR)/RealToComplex.o \
+ $(OBJDIR)/conj.o \
+ $(OBJDIR)/disp.o \
+ $(OBJDIR)/ones.o \
+ $(OBJDIR)/zeros.o \
+ $(OBJDIR)/OpApex.o \
+ $(OBJDIR)/OpColon.o \
+ $(OBJDIR)/OpDotStar.o \
+ $(OBJDIR)/OpDotHat.o \
+ $(OBJDIR)/OpDotSlash.o \
+ $(OBJDIR)/OpEqual.o \
+ $(OBJDIR)/OpPlus.o \
+ $(OBJDIR)/OpMinus.o \
+ $(OBJDIR)/OpStar.o \
+ $(OBJDIR)/OpIns.o \
+ $(OBJDIR)/OpExt.o \
+ $(OBJDIR)/OpRc.o \
+ $(OBJDIR)/OpCc.o \
+ $(OBJDIR)/cos.o \
+ $(OBJDIR)/cosh.o \
+ $(OBJDIR)/sin.o \
+ $(OBJDIR)/sinh.o \
+ $(OBJDIR)/FileManagement.o \
+ $(OBJDIR)/OpLogLt.o \
+ $(OBJDIR)/OpLogGt.o \
+ $(OBJDIR)/OpLogGe.o \
+ $(OBJDIR)/OpLogLe.o \
+ $(OBJDIR)/OpLogEq.o \
+ $(OBJDIR)/Find.o \
+ $(OBJDIR)/ConvertPrecision.o \
+ $(OBJDIR)/SCI2Cfft.o \
+ $(OBJDIR)/SCI2Cconvol.o \
+ $(OBJDIR)/ssqrts.o \
+ $(OBJDIR)/dsqrts.o \
+ $(OBJDIR)/csqrts.o \
+ $(OBJDIR)/zsqrts.o \
+ $(OBJDIR)/ssqrta.o \
+ $(OBJDIR)/dsqrta.o \
+ $(OBJDIR)/csqrta.o \
+ $(OBJDIR)/zsqrta.o
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(objects)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) $(objects) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(objects)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+$(OBJDIR)/doubleComplex.o: $(CSRCDIR)/doubleComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/doubleComplex.c -o $(OBJDIR)/doubleComplex.o
+
+$(OBJDIR)/floatComplex.o: $(CSRCDIR)/floatComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/floatComplex.c -o $(OBJDIR)/floatComplex.o
+
+$(OBJDIR)/RealToComplex.o: $(CSRCDIR)/RealToComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/RealToComplex.c -o $(OBJDIR)/RealToComplex.o
+
+$(OBJDIR)/conj.o: $(CSRCDIR)/conj.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/conj.c -o $(OBJDIR)/conj.o
+
+$(OBJDIR)/disp.o: $(CSRCDIR)/disp.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/disp.c -o $(OBJDIR)/disp.o
+
+$(OBJDIR)/zeros.o: $(CSRCDIR)/zeros.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/zeros.c -o $(OBJDIR)/zeros.o
+
+$(OBJDIR)/ones.o: $(CSRCDIR)/ones.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ones.c -o $(OBJDIR)/ones.o
+
+$(OBJDIR)/OpApex.o: $(CSRCDIR)/OpApex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpApex.c -o $(OBJDIR)/OpApex.o
+
+$(OBJDIR)/OpColon.o: $(CSRCDIR)/OpColon.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpColon.c -o $(OBJDIR)/OpColon.o
+
+$(OBJDIR)/OpDotStar.o: $(CSRCDIR)/OpDotStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotStar.c -o $(OBJDIR)/OpDotStar.o
+
+$(OBJDIR)/OpDotHat.o: $(CSRCDIR)/OpDotHat.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotHat.c -o $(OBJDIR)/OpDotHat.o
+
+$(OBJDIR)/OpDotSlash.o: $(CSRCDIR)/OpDotSlash.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotSlash.c -o $(OBJDIR)/OpDotSlash.o
+
+$(OBJDIR)/OpEqual.o: $(CSRCDIR)/OpEqual.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpEqual.c -o $(OBJDIR)/OpEqual.o
+
+$(OBJDIR)/OpPlus.o: $(CSRCDIR)/OpPlus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpPlus.c -o $(OBJDIR)/OpPlus.o
+
+$(OBJDIR)/OpMinus.o: $(CSRCDIR)/OpMinus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpMinus.c -o $(OBJDIR)/OpMinus.o
+
+$(OBJDIR)/OpStar.o: $(CSRCDIR)/OpStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpStar.c -o $(OBJDIR)/OpStar.o
+
+$(OBJDIR)/OpIns.o: $(CSRCDIR)/OpIns.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpIns.c -o $(OBJDIR)/OpIns.o
+
+$(OBJDIR)/OpExt.o: $(CSRCDIR)/OpExt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpExt.c -o $(OBJDIR)/OpExt.o
+
+$(OBJDIR)/OpRc.o: $(CSRCDIR)/OpRc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpRc.c -o $(OBJDIR)/OpRc.o
+
+$(OBJDIR)/OpCc.o: $(CSRCDIR)/OpCc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpCc.c -o $(OBJDIR)/OpCc.o
+
+$(OBJDIR)/cos.o: $(CSRCDIR)/cos.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cos.c -o $(OBJDIR)/cos.o
+
+$(OBJDIR)/cosh.o: $(CSRCDIR)/cosh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cosh.c -o $(OBJDIR)/cosh.o
+
+$(OBJDIR)/sin.o: $(CSRCDIR)/sin.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sin.c -o $(OBJDIR)/sin.o
+
+$(OBJDIR)/sinh.o: $(CSRCDIR)/sinh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sinh.c -o $(OBJDIR)/sinh.o
+
+$(OBJDIR)/FileManagement.o: $(CSRCDIR)/FileManagement.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/FileManagement.c -o $(OBJDIR)/FileManagement.o
+
+$(OBJDIR)/OpLogLt.o: $(CSRCDIR)/OpLogLt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLt.c -o $(OBJDIR)/OpLogLt.o
+
+$(OBJDIR)/OpLogGt.o: $(CSRCDIR)/OpLogGt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGt.c -o $(OBJDIR)/OpLogGt.o
+
+$(OBJDIR)/OpLogLe.o: $(CSRCDIR)/OpLogLe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLe.c -o $(OBJDIR)/OpLogLe.o
+
+$(OBJDIR)/OpLogGe.o: $(CSRCDIR)/OpLogGe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGe.c -o $(OBJDIR)/OpLogGe.o
+
+$(OBJDIR)/OpLogEq.o: $(CSRCDIR)/OpLogEq.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogEq.c -o $(OBJDIR)/OpLogEq.o
+
+$(OBJDIR)/Find.o: $(CSRCDIR)/Find.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/Find.c -o $(OBJDIR)/Find.o
+
+$(OBJDIR)/ConvertPrecision.o: $(CSRCDIR)/ConvertPrecision.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ConvertPrecision.c -o $(OBJDIR)/ConvertPrecision.o
+
+$(OBJDIR)/SCI2Cfft.o: $(CSRCDIR)/SCI2Cfft.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cfft.c -o $(OBJDIR)/SCI2Cfft.o
+
+$(OBJDIR)/SCI2Cconvol.o: $(CSRCDIR)/SCI2Cconvol.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cconvol.c -o $(OBJDIR)/SCI2Cconvol.o
+
+$(OBJDIR)/sqrt.o: $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c -o $(OBJDIR)/sqrt.o
+
+$(OBJDIR)/ssqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrts.c -o $(OBJDIR)/ssqrts.o
+
+$(OBJDIR)/dsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrts.c -o $(OBJDIR)/dsqrts.o
+
+$(OBJDIR)/csqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrts.c -o $(OBJDIR)/csqrts.o
+
+$(OBJDIR)/zsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrts.c -o $(OBJDIR)/zsqrts.o
+
+$(OBJDIR)/ssqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrta.c -o $(OBJDIR)/ssqrta.o
+
+$(OBJDIR)/dsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrta.c -o $(OBJDIR)/dsqrta.o
+
+$(OBJDIR)/csqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrta.c -o $(OBJDIR)/csqrta.o
+
+$(OBJDIR)/zsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrta.c -o $(OBJDIR)/zsqrta.o
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc
new file mode 100644
index 00000000..c6ba2a9c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc
@@ -0,0 +1,126 @@
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+SWSRCS = \
+ $(CSRCDIR)/doubleComplex.c \
+ $(CSRCDIR)/floatComplex.c \
+ $(CSRCDIR)/RealToComplex.c \
+ $(CSRCDIR)/conj.c \
+ $(CSRCDIR)/disp.c \
+ $(CSRCDIR)/ones.c \
+ $(CSRCDIR)/zeros.c \
+ $(CSRCDIR)/OpApex.c \
+ $(CSRCDIR)/OpColon.c \
+ $(CSRCDIR)/OpDotStar.c \
+ $(CSRCDIR)/OpDotHat.c \
+ $(CSRCDIR)/OpDotSlash.c \
+ $(CSRCDIR)/OpEqual.c \
+ $(CSRCDIR)/OpPlus.c \
+ $(CSRCDIR)/OpMinus.c \
+ $(CSRCDIR)/OpStar.c \
+ $(CSRCDIR)/OpIns.c \
+ $(CSRCDIR)/OpExt.c \
+ $(CSRCDIR)/OpRc.c \
+ $(CSRCDIR)/OpCc.c \
+ $(CSRCDIR)/cos.c \
+ $(CSRCDIR)/cosh.c \
+ $(CSRCDIR)/sin.c \
+ $(CSRCDIR)/sinh.c \
+ $(CSRCDIR)/FileManagement.c \
+ $(CSRCDIR)/OpLogLt.c \
+ $(CSRCDIR)/OpLogGt.c \
+ $(CSRCDIR)/OpLogGe.c \
+ $(CSRCDIR)/OpLogLe.c \
+ $(CSRCDIR)/OpLogEq.c \
+ $(CSRCDIR)/OpLogOr.c \
+ $(CSRCDIR)/OpLogAnd.c \
+ $(CSRCDIR)/Find.c \
+ $(CSRCDIR)/ConvertPrecision.c \
+ $(CSRCDIR)/SCI2Cfft.c \
+ $(CSRCDIR)/SCI2Cconvol.c \
+ $(CSRCDIR)/ssqrts.c \
+ $(CSRCDIR)/dsqrts.c \
+ $(CSRCDIR)/csqrts.c \
+ $(CSRCDIR)/zsqrts.c \
+ $(CSRCDIR)/ssqrta.c \
+ $(CSRCDIR)/dsqrta.c \
+ $(CSRCDIR)/csqrta.c \
+ $(CSRCDIR)/zsqrta.c \
+ $(CSRCDIR)/sabss.c \
+ $(CSRCDIR)/dabss.c \
+ $(CSRCDIR)/cabss.c \
+ $(CSRCDIR)/zabss.c \
+ $(CSRCDIR)/sabsa.c \
+ $(CSRCDIR)/dabsa.c \
+ $(CSRCDIR)/cabsa.c \
+ $(CSRCDIR)/zabsa.c \
+ $(CSRCDIR)/sexps.c \
+ $(CSRCDIR)/dexps.c \
+ $(CSRCDIR)/cexps.c \
+ $(CSRCDIR)/zexps.c \
+ $(CSRCDIR)/sexpa.c \
+ $(CSRCDIR)/dexpa.c \
+ $(CSRCDIR)/cexpa.c \
+ $(CSRCDIR)/zexpa.c
+
+SWOBJS = $(SWSRCS:.c=.o)
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(SWOBJS)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(SWOBJS) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(SWOBJS)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+# how to compile object code .o from C source files .c (general rule)
+# space between -o and filename for SUN make
+.c.o:
+ $(CC) $(CFLAGS) -c -o $(@) $<
+
+# Make object code from source
+swobjs: $(SWOBJS)
+
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/Sci2AnnotationFile.sci b/src/Scilab2C/Scilab2C/CCodeGeneration/Sci2AnnotationFile.sci
new file mode 100644
index 00000000..e57e4ca8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/Sci2AnnotationFile.sci
@@ -0,0 +1,33 @@
+function Sci2AnnotationFile(SciFileName,ClsFileName,AnnFileName,AnnSpecifier,ReportFileName)
+// function Sci2AnnotationFile(SciFileName,ClsFileName,AnnFileName,AnnSpecifier,ReportFileName)
+// --------------------------------------------------------------------------------
+//
+// Status:
+// 25-Jun-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+[tmppath,tmpfunname,tmpext] = fileparts(SciFileName);
+
+inscifid = SCI2COpenFileRead(SciFileName);
+
+line_position = 0;
+L_AnnSpecifierP1 = length(AnnSpecifier)+1;
+while (meof(inscifid) == 0)
+ check_string = stripblanks(mgetl(inscifid,1));
+ line_position = line_position + 1;
+ L_string = length(check_string);
+ if (L_string >= 1)
+ if (SCI2Cstrncmps1size(AnnSpecifier,check_string))
+ tmpannotation = stripblanks(part(check_string,L_AnnSpecifierP1:L_string));
+ PrintStringInfo(tmpannotation,ClsFileName,'file','y');
+ end
+ end
+end
+mclose(inscifid);
+PrintStringInfo('CLASS: '+tmpfunname,AnnFileName,'file','y');
+endfunction
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c
new file mode 100644
index 00000000..ee3ecc3a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c
@@ -0,0 +1,41 @@
+/*
+** -*- C -*-
+**
+** ConvertPrecision.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+** Copyright Raffaele Nutricato 2008
+*/
+
+
+double s0doubled0(float in)
+{
+ double out;
+ out = (double) in;
+ return (out);
+}
+
+void s2doubled2(float* in, int* inSize, double* out)
+{
+ int i;
+ for (i=0; i<inSize[0]*inSize[1]; i++)
+ {
+ out[i] = (double) in[i];
+ }
+}
+
+float d0floats0(double in)
+{
+ float out;
+ out = (float) in;
+ return (out);
+}
+
+void d2floats2(double* in, int* inSize, float* out)
+{
+ int i;
+ for (i=0; i<inSize[0]*inSize[1]; i++)
+ {
+ out[i] = (float) in[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c
new file mode 100644
index 00000000..427b3551
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c
@@ -0,0 +1,12 @@
+/*
+** -*- C -*-
+**
+** FileManagement.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Rubby Nutricato 2007
+*/
+
+#include "FileManagement.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c
new file mode 100644
index 00000000..e1a3aab6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c
@@ -0,0 +1,7 @@
+/* #include <math.h>*/
+/* Author: Raffaele Nutricato */
+/* raffaele.nutricato@tiscali.it */
+
+#include "Find.h"
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c
new file mode 100644
index 00000000..fa0630e9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c
@@ -0,0 +1,82 @@
+/* #include <math.h>*/
+#include "OpApex.h"
+
+float sOpApexs(float x) {
+ return (x);
+}
+
+double dOpApexs(double x) {
+ return (x);
+}
+
+
+void sOpApexa(float* x, int xrows,int xcols, float* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = x[i*xcols+j];
+ }
+ }
+}
+
+void dOpApexa(double* x, int xrows,int xcols, double* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = x[i*xcols+j];
+ }
+ }
+}
+
+
+floatComplex c0OpApexc0(floatComplex x)
+{
+ return (c0conjc0(x));
+}
+
+void c2OpApexc2(floatComplex* x, int* xSize, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int xrows = xSize[0];
+ int xcols = xSize[1];
+
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = c0conjc0(x[i*xcols+j]);
+ }
+ }
+}
+
+doubleComplex z0OpApexz0(doubleComplex x)
+{
+ return (z0conjz0(x));
+}
+
+
+void z2OpApexz2(doubleComplex* x, int* xSize, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int xrows = xSize[0];
+ int xcols = xSize[1];
+
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = z0conjz0(x[i*xcols+j]);
+ /*~ y[j*xrows+i] = x[i*xcols+j];*/
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c
new file mode 100644
index 00000000..40ffed28
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c
@@ -0,0 +1,211 @@
+/*
+** -*- C -*-
+**
+** OpCc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpCc.h"
+
+void d0d0OpCcd2(double in1, double in2, double* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void d2d0OpCcd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void d0d2OpCcd2(double in2, double* in1, int* in1Size, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void d2d2OpCcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void s0s0OpCcs2(float in1, float in2, float* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void s2s0OpCcs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void s0s2OpCcs2(float in2, float* in1, int* in1Size, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void s2s2OpCcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void z0z0OpCcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void z2z0OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void z0z2OpCcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void z2z2OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void c0c0OpCcc2(floatComplex in1, floatComplex in2, floatComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void c2c0OpCcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void c0c2OpCcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void c2c2OpCcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c
new file mode 100644
index 00000000..76948ec0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c
@@ -0,0 +1,303 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpColon.h"
+
+
+double d0d0OpColond0(double in1, double in2)
+{
+ double i;
+ double out = 0;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+float c0c0OpColons0(floatComplex in1, floatComplex in2)
+{
+ float i = 0;
+ float out = 0;
+ int j=0;
+ for (i = creals(in1) ; i <= creals(in2) ; i+=1)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+double z0z0OpColond0(doubleComplex in1, doubleComplex in2)
+{
+ int i = 0;
+ int j = 0;
+ double out = 0;
+ for (i = ((int) zreals(in1)) ; i <= ((int) zreals(in2)) ; i++)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+void s0s0OpColons2(float in1, float in2, float* out)
+{
+ float i;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void d0d0OpColond2(double in1, double in2, double* out)
+{
+ double i;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void c0c0OpColons2(floatComplex in1, floatComplex in2, float* out)
+{
+ float i = 0;
+ int j=0;
+ for (i = creals(in1) ; i <= creals(in2) ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void z0z0OpColond2(doubleComplex in1, doubleComplex in2, double* out)
+{
+ int i = 0;
+ int j = 0;
+ for (i = ((int) zreals(in1)) ; i <= ((int) zreals(in2)) ; i++)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+float s0s0s0OpColons0(float in1, float in2, float in3)
+{
+ float i;
+ float out=0;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ return (out);
+}
+
+double d0d0d0OpColond0(double in1, double in2, double in3)
+{
+ double i;
+ double out=0;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ return out;
+}
+
+float c0c0c0OpColons0(floatComplex in1, floatComplex in3, floatComplex in2)
+{
+ float i = 0;
+ float out = 0;
+ int j=0;
+
+ if (creals(in2) >= 0)
+ {
+ for (i = creals(in1) ; i <= creals(in2) ; i+=creals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = creals(in1) ; i >= creals(in2) ; i+=creals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+
+ return out;
+}
+
+double z0z0z0OpColond0(doubleComplex in1, doubleComplex in3, doubleComplex in2)
+{
+ int i = 0;
+ int j = 0;
+ double out = 0;
+ if (zreals(in2) >= 0)
+ {
+ for (i = zreals(in1) ; i <= zreals(in2) ; i+=zreals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = zreals(in1) ; i >= zreals(in2) ; i+=zreals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ return out;
+}
+
+void s0s0s0OpColons2(float in1, float in2, float in3, float* out)
+{
+ float i;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void d0d0d0OpColond2(double in1, double in2, double in3, double* out)
+{
+ double i;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3; i += in2)
+ {
+ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ out[j] = i;
+ //~ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void c0c0c0OpColons2(floatComplex in1, floatComplex in3, floatComplex in2, float* out)
+{
+ float i = 0;
+ int j=0;
+
+ if (creals(in2) >= 0)
+ {
+ for (i = creals(in1) ; i <= creals(in2) ; i+=creals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = creals(in1) ; i >= creals(in2) ; i+=creals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void z0z0z0OpColond2(doubleComplex in1, doubleComplex in3, doubleComplex in2, double* out)
+{
+ int i = 0;
+ int j = 0;
+
+ if (zreals(in2) >= 0)
+ {
+ for (i = zreals(in1) ; i <= zreals(in2) ; i+=zreals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = zreals(in1) ; i >= zreals(in2) ; i+=zreals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c
new file mode 100644
index 00000000..02489934
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c
@@ -0,0 +1,76 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotHat.h"
+
+
+float s0s0OpDotHats0(float in1,float in2)
+{
+ return(pow(in1,in2));
+}
+
+void s0s2OpDotHats2(float in1,float* in2, int* in2Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in2Size[0]*in2Size[1]; ++i)
+ {
+ out[i] = pow(in1,in2[i]);
+ }
+}
+
+void s2s0OpDotHats2(float* in1,int* in1Size, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2);
+ }
+}
+
+void s2s2OpDotHats2(float* in1,int* in1Size,float* in2, int* in2Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2[i]);
+ }
+}
+
+double d0d0OpDotHatd0(double in1,double in2)
+{
+ return(pow(in1,in2));
+}
+
+void d0d2OpDotHatd2(double in1,double* in2, int* in2Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in2Size[0]*in2Size[1]; ++i)
+ {
+ out[i] = pow(in1,in2[i]);
+ }
+}
+
+void d2d0OpDotHatd2(double* in1,int* in1Size, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2);
+ }
+}
+
+void d2d2OpDotHatd2(double* in1,int* in1Size,double* in2, int* in2Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c
new file mode 100644
index 00000000..7bb79465
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c
@@ -0,0 +1,115 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotSlash.h"
+
+float s0s0OpDotSlashs0(float x1, float x2){
+ return(x1/x2);
+}
+
+void s0s2OpDotSlashs2(float x1,float* x2, int* x2Size, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = x1/(float)x2[i];
+ }
+}
+
+void s2s0OpDotSlashs2(float* x2, int* x2Size,float x1, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (float)x2[i]/x1;
+ }
+}
+
+void s2s2OpDotSlashs2(float* x1, int* x1Size, float* x2, int* x2Size, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (float)x1[i]/(float)x2[i];
+ }
+}
+
+
+double d0d0OpDotSlashd0(double x1, double x2){
+ return(x1/x2);
+}
+
+void d0d2OpDotSlashd2(double x1,double* x2, int* x2Size, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = x1/(double)x2[i];
+ }
+}
+
+void d2d0OpDotSlashd2(double* x2, int* x2Size,double x1, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (double)x2[i]/x1;
+ }
+}
+
+void d2d2OpDotSlashd2(double* x1, int* x1Size, double* x2, int* x2Size, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (double)x1[i]/(double)x2[i];
+ }
+}
+
+/*
+floatComplex c0c0OpDotSlashc0(floatComplex x1, floatComplex x2)
+{
+ return(x1/x2);
+}
+
+void c0c2OpDotSlashc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = x1/(floatComplex)x2[i];
+ }
+}
+
+void c2c2OpDotSlashc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]/x2[i];
+ }
+}
+
+doubleComplex z0z0OpDotSlashz0(doubleComplex x1, doubleComplex x2)
+{
+ return(x1/x2);
+}
+
+void z0z2OpDotSlashz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = x1/(doubleComplex)x2[i];
+ }
+}
+
+void z2z2OpDotSlashz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]/x2[i];
+ }
+}
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c
new file mode 100644
index 00000000..c39e256a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c
@@ -0,0 +1,228 @@
+/*
+** -*- C -*-
+**
+** OpDotStar.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotStar.h"
+
+float ssOpDotStarss1(float x1, float x2){
+ return(x1*x2);
+}
+
+void ssOpDotStarsa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*(float)x2[i];
+ }
+}
+
+void ssOpDotStaraa1(float* x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]*x2[i];
+ }
+}
+
+
+double ddOpDotStarss1(double x1,double x2){
+ return(x1*x2);
+}
+
+void ddOpDotStarsa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*x2[i];
+ }
+}
+
+void ddOpDotStaraa1(double* x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]*x2[i];
+ }
+}
+
+floatComplex s0c0OpDotStarc0(float x2,floatComplex x1)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0s0OpDotStarc0(floatComplex x1,float x2)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0c0OpDotStarc0(floatComplex x1, floatComplex x2)
+{
+ return(ctimess(x1,x2));
+}
+
+void c0s2OpDotStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void c2c0OpDotStarc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void s2c0OpDotStarc2(float* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s0c2OpDotStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpDotStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2s2OpDotStarc2(floatComplex* x1,int* x1Size,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1[i],FloatComplex(x2[i],0));
+ }
+}
+
+
+void c2c2OpDotStarc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1[i],x2[i]);
+ }
+}
+
+
+doubleComplex z0d0OpDotStarz0(doubleComplex x1, double x2)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex d0z0OpDotStarz0(double x2,doubleComplex x1)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpDotStarz0(doubleComplex x1, doubleComplex x2)
+{
+ return(ztimess(x1,x2));
+}
+
+void z0d2OpDotStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d2z0OpDotStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void z2z0OpDotStarz2(doubleComplex* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void d0z2OpDotStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpDotStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2d2OpDotStarz2(doubleComplex* x1,int* x1Size,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1[i],DoubleComplex(x2[i],0));
+ }
+}
+
+void z2z2OpDotStarz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1[i],x2[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c
new file mode 100644
index 00000000..70f3d504
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c
@@ -0,0 +1,90 @@
+/*
+** -*- C -*-
+**
+** OpEqual.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpEqual.h"
+
+float sOpEquals1(float x)
+{
+ return (x);
+}
+
+double dOpEquals1(double x)
+{
+ return x;
+}
+
+floatComplex c0OpEqualc0(floatComplex x)
+{
+ return x;
+}
+
+doubleComplex z0OpEqualz0(doubleComplex x)
+{
+ return x;
+}
+
+char g0OpEqualg0(char x)
+{
+ return x;
+}
+
+void sOpEquala1(float* x, int size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void dOpEquala1(double* x, int size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void c2OpEqualc2(floatComplex* x, int* xSize, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void z2OpEqualz2(doubleComplex* x, int* xSize, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void g2OpEqualg2(char* x, int* xSize, char* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c
new file mode 100644
index 00000000..0b137b14
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c
@@ -0,0 +1,11 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpExt.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c
new file mode 100644
index 00000000..df386894
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c
@@ -0,0 +1,11 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpIns.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c
new file mode 100644
index 00000000..86deee72
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpLogAnd.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogAnd.h"
+
+void s2s0OpLogAnds2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] && in2);
+ }
+ }
+}
+
+void d2d0OpLogAndd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] && in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c
new file mode 100644
index 00000000..77d3f728
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogEq.h"
+
+void s2s0OpLogEqs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] == in2);
+ }
+ }
+}
+
+void d2d0OpLogEqd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] == in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c
new file mode 100644
index 00000000..3664f2e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogGe.h"
+
+void s2s0OpLogGes2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] >= in2);
+ }
+ }
+}
+
+void d2d0OpLogGed2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] >= in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c
new file mode 100644
index 00000000..25e4bd96
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogGt.h"
+
+void s2s0OpLogGts2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] > in2);
+ }
+ }
+}
+
+void d2d0OpLogGtd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] > in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c
new file mode 100644
index 00000000..a1544489
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogLe.h"
+
+void s2s0OpLogLes2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] <= in2);
+ }
+ }
+}
+
+void d2d0OpLogLed2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] <= in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c
new file mode 100644
index 00000000..a7e6d774
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogLt.h"
+
+void s2s0OpLogLts2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] < in2);
+ }
+ }
+}
+
+void d2d0OpLogLtd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] < in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c
new file mode 100644
index 00000000..eb553b33
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpLogOr.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogOr.h"
+
+void s2s0OpLogOrs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] || in2);
+ }
+ }
+}
+
+void d2d0OpLogOrd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] || in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c
new file mode 100644
index 00000000..03c85689
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c
@@ -0,0 +1,281 @@
+/*
+** -*- C -*-
+**
+** OpMinus.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpMinus.h"
+
+float s0OpMinuss0(float x1)
+{
+ return(-x1);
+}
+
+void s2OpMinuss2(float* in1,int* in1Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = -in1[i];
+ }
+}
+
+double d0OpMinusd0(double x1)
+{
+ return(-x1);
+}
+
+void d2OpMinusd2(double* in1,int* in1Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = -in1[i];
+ }
+}
+
+
+
+float s0s0OpMinuss0(float x1, float x2)
+{
+ return(x1-x2);
+}
+
+void s0s2OpMinuss2(float x2, float* x1,int* x1Size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x2-x1[i];
+ }
+}
+
+void s2s0OpMinuss2(float* x1,int* x1Size, float x2, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2;
+ }
+}
+
+void s2s2OpMinuss2(float* x1,int* x1Size, float* x2,int* x2Size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i)
+ {
+ y[i] = x1[i]-x2[i];
+ }
+}
+
+
+double d0d0OpMinusd0(double x1, double x2)
+{
+ return(x1-x2);
+}
+
+void d0d2OpMinusd2(double x2, double* x1,int* x1Size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x2-x1[i];
+ }
+}
+
+void d2d0OpMinusd2(double* x1,int* x1Size, double x2, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2;
+ }
+}
+
+void d2d2OpMinusd2(double* x1,int* x1Size, double* x2,int* x2Size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2[i];
+ }
+}
+
+
+floatComplex c0OpMinusc0(floatComplex x1)
+{
+ floatComplex x2;
+ x2 = FloatComplex(-creals(x1),-cimags(x1));
+ return(x2);
+}
+
+void c2OpMinusc2(floatComplex* in1,int* in1Size, floatComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = FloatComplex(-creals(in1[i]),-cimags(in1[i]));
+ }
+}
+
+floatComplex s0c0OpMinusc0(float x1,floatComplex x2)
+{
+ return(cdiffs(FloatComplex(x1,0),x2));
+}
+
+doubleComplex d0z0OpMinusz0(double x1,doubleComplex x2)
+{
+ return(zdiffs(DoubleComplex(x1,0),x2));
+}
+
+floatComplex c0c0OpMinusc0(floatComplex x1,floatComplex x2)
+{
+ return(cdiffs(x1,x2));
+}
+
+doubleComplex z0z0OpMinusz0(doubleComplex x1,doubleComplex x2)
+{
+ return(zdiffs(x1,x2));
+}
+
+void c0c2OpMinusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1,x2[i]);
+ }
+}
+
+void c2c0OpMinusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1,x2[i]);
+ }
+}
+
+void c2c2OpMinusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1[i],x2[i]);
+ }
+}
+
+doubleComplex z0OpMinusz0(doubleComplex x1)
+{
+ return(ztimess(DoubleComplex(-1,0),x1));
+}
+
+void z2OpMinusz2(doubleComplex* in1,int* in1Size, doubleComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = ztimess(DoubleComplex(-1,0),in1[i]);
+ }
+}
+
+void z0z2OpMinusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1,x2[i]);
+ }
+}
+
+void z2z0OpMinusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1,x2[i]);
+ }
+}
+
+void z2z2OpMinusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1[i],x2[i]);
+ }
+}
+
+void z2d2OpMinusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+void d2z2OpMinusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void c2s2OpMinusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s2c2OpMinusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s0c2OpMinusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+
+void d0z2OpMinusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c
new file mode 100644
index 00000000..6a3d35e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c
@@ -0,0 +1,267 @@
+/*
+** -*- C -*-
+**
+** OpPlus.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpPlus.h"
+
+float ssOpPlusss1(float x1, float x2){
+ return(x1+x2);
+}
+
+void ssOpPlussa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1+(float)x2[i];
+ }
+}
+
+void ssOpPlusaa1(float* x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]+x2[i];
+ }
+}
+
+
+double ddOpPlusss1(double x1,double x2){
+ return(x1+x2);
+}
+
+void ddOpPlussa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1+x2[i];
+ }
+}
+
+void ddOpPlusaa1(double* x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]+x2[i];
+ }
+}
+
+double d0OpPlusd0(double x1)
+{
+ return(x1);
+}
+
+void d2OpPlusd2(double* in1,int* in1Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+floatComplex c0OpPlusc0(floatComplex x1)
+{
+ return(x1);
+}
+
+void c2OpPlusc2(floatComplex* in1,int* in1Size, floatComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+
+floatComplex c0c0OpPlusc0(floatComplex x1,floatComplex x2)
+{
+ return(cadds(x1,x2));
+}
+
+floatComplex c0s0OpPlusc0(floatComplex x1,float x2)
+{
+ return(cadds(x1,FloatComplex(x2,0)));
+}
+
+floatComplex s0c0OpPlusc0(float x2,floatComplex x1)
+{
+ return(cadds(x1,FloatComplex(x2,0)));
+}
+
+void s0c2OpPlusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpPlusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1,x2[i]);
+ }
+}
+
+void c2c0OpPlusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1,x2[i]);
+ }
+}
+
+void c2c2OpPlusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1[i],x2[i]);
+ }
+}
+
+doubleComplex z0OpPlusz0(doubleComplex x1)
+{
+ return(x1);
+}
+
+void z2OpPlusz2(doubleComplex* in1,int* in1Size, doubleComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+
+doubleComplex d0z0OpPlusz0(double x1,doubleComplex x2)
+{
+ return(zadds(x2,DoubleComplex(x1,0)));
+}
+
+doubleComplex z0d0OpPlusz0(doubleComplex x1,double x2)
+{
+ return(zadds(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpPlusz0(doubleComplex x1,doubleComplex x2)
+{
+ return(zadds(x1,x2));
+}
+
+void d0z2OpPlusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpPlusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1,x2[i]);
+ }
+}
+
+void z2z0OpPlusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1,x2[i]);
+ }
+}
+
+void z2d2OpPlusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+void d2z2OpPlusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void c2s2OpPlusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s2c2OpPlusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void z2z2OpPlusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1[i],x2[i]);
+ }
+}
+
+void g0g0OpPlusg2(char x1, char x2, char* y)
+{
+ y[0] = x1;
+ y[1] = x2;
+}
+
+void g2g2OpPlusg2(char* x1,int* x1Size,char* x2, int* x2Size, char* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < x1Size[1]-1; ++i,++j)
+ {
+ y[j] = x1[i];
+ }
+ for (i = 0; i < x2Size[1]; ++i,++j)
+ {
+ y[j] = x2[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c
new file mode 100644
index 00000000..d13c2fcb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c
@@ -0,0 +1,195 @@
+/*
+** -*- C -*-
+**
+** OpRc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpRc.h"
+
+void d0d0OpRcd2(double in1, double in2, double* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void d2d0OpRcd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void d0d2OpRcd2(double in2, double* in1, int* in1Size, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void d2d2OpRcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void s0s0OpRcs2(float in1, float in2, float* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void s2s0OpRcs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void s0s2OpRcs2(float in2, float* in1, int* in1Size, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void s2s2OpRcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void z0z0OpRcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void z2z0OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void z0z2OpRcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void z2z2OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void c0c0OpRcc2(floatComplex in1, floatComplex in2, floatComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void c2c0OpRcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void c0c2OpRcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void c2c2OpRcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c
new file mode 100644
index 00000000..31879b47
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c
@@ -0,0 +1,398 @@
+/*
+** -*- C -*-
+**
+** OpStar.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpStar.h"
+
+float ssOpStarss1(float x1, float x2){
+ return(x1*x2);
+}
+
+void ssOpStarsa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x1*(float)x2[i];
+ }
+}
+
+void ssOpStaraa1(float* x1,int x1rows, int x1cols, float* x2, int x2cols, float* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = y[i*x2cols+j] + x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+}
+
+double ddOpStarss1(double x1,double x2){
+ return(x1*x2);
+}
+
+void ddOpStarsa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*x2[i];
+ }
+}
+
+void ddOpStaraa1(double* x1,int x1rows, int x1cols, double* x2, int x2cols, double* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ for (i = 0; i < x1rows; i++)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = y[i*x2cols+j] + x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+}
+
+floatComplex s0c0OpStarc0(float x2, floatComplex x1)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0s0OpStarc0(floatComplex x1, float x2)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0c0OpStarc0(floatComplex x1, floatComplex x2)
+{
+ return(ctimess(x1,x2));
+}
+
+void c0s2OpStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s2c0OpStarc2(float* x2, int* x2Size, floatComplex x1, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s0c2OpStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2c0OpStarc2(floatComplex* x2, int* x2Size,floatComplex x1, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2s2OpStarc2(floatComplex* x1,int* x1Size, float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = cadds(y[i*x2cols+j],ctimess(x1[i*x1cols+z],FloatComplex(x2[z*x2cols+j],0)));
+ }
+ }
+ }
+}
+
+void c2c2OpStarc2(floatComplex* x1,int* x1Size, floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = cadds(y[i*x2cols+j],ctimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+}
+
+doubleComplex d0z0OpStarz0(double x2, doubleComplex x1)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0d0OpStarz0(doubleComplex x1, double x2)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpStarz0(doubleComplex x1, doubleComplex x2)
+{
+ return(ztimess(x1,x2));
+}
+
+void z0d2OpStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d2z0OpStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d0z2OpStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2z0OpStarz2(doubleComplex* x2, int* x2Size,doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2d2OpStarz2(doubleComplex* x1,int* x1Size, double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = zadds(y[i*x2cols+j],ztimess(x1[i*x1cols+z],DoubleComplex(x2[z*x2cols+j],0)));
+ }
+ }
+ }
+}
+
+void z2z2OpStarz2(doubleComplex* x1,int* x1Size, doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = zadds(y[i*x2cols+j],ztimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+}
+
+
+
+float s2s2OpStars0(float* x1,int* x1Size, float* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ float y = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y += x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+ return(y);
+}
+
+double d2d2OpStard0(double* x1,int* x1Size, double* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ double y = 0;
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y += x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+ return(y);
+}
+
+floatComplex c2c2OpStarc0(floatComplex* x1,int* x1Size, floatComplex* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ floatComplex y = FloatComplex(0,0);
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y = cadds(y,ctimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+ return(y);
+}
+
+doubleComplex z2z2OpStarz0(doubleComplex* x1,int* x1Size, doubleComplex* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ doubleComplex y = DoubleComplex(0,0);
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y = zadds(y,ztimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+ return(y);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c
new file mode 100644
index 00000000..dd7b5ecf
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c
@@ -0,0 +1,134 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "RealToComplex.h"
+
+floatComplex s0floatcomplexc0(float in)
+{
+ floatComplex out;
+ out = FloatComplex(in,0);
+ return out;
+}
+
+floatComplex d0floatcomplexc0(double in)
+{
+ floatComplex out;
+ out = FloatComplex(in,0);
+ return out;
+}
+
+floatComplex c0floatcomplexc0(floatComplex in)
+{
+ return in;
+}
+
+floatComplex z0floatcomplexc0(doubleComplex in)
+{
+ floatComplex out;
+ out = FloatComplex((float)zreals(in),(float)zimags(in));
+ return out;
+}
+
+void s2floatcomplexc2(float* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = s0floatcomplexc0(in[i]);
+ }
+}
+
+void d2floatcomplexc2(double* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = d0floatcomplexc0(in[i]);
+ }
+}
+
+void c2floatcomplexc2(floatComplex* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = c0floatcomplexc0(in[i]);
+ }
+}
+
+void z2floatcomplexc2(doubleComplex* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = z0floatcomplexc0(in[i]);
+ }
+}
+
+doubleComplex s0doublecomplexz0(float in)
+{
+ doubleComplex out;
+ out = DoubleComplex((double)(in),0);
+ return out;
+}
+
+doubleComplex d0doublecomplexz0(double in)
+{
+ doubleComplex out;
+ out = DoubleComplex(in,0);
+ return out;
+}
+
+doubleComplex c0doublecomplexz0(floatComplex in)
+{
+ doubleComplex out;
+ out = DoubleComplex((double) creals(in),(double) cimags(in));
+ return out;
+}
+
+doubleComplex z0doublecomplexz0(doubleComplex in)
+{
+ return in;
+}
+
+void s2doublecomplexz2(float* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = s0doublecomplexz0(in[i]);
+ }
+}
+
+void d2doublecomplexz2(double* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = d0doublecomplexz0(in[i]);
+ }
+}
+
+void c2doublecomplexz2(floatComplex* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = c0doublecomplexz0(in[i]);
+ }
+}
+
+void z2doublecomplexz2(doubleComplex* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = z0doublecomplexz0(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c
new file mode 100644
index 00000000..989cb9de
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c
@@ -0,0 +1,2 @@
+#include "SCI2Cconvol.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c
new file mode 100644
index 00000000..9cced2e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c
@@ -0,0 +1,13 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "SCI2Cfft.h"
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c
new file mode 100644
index 00000000..f4005a33
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c
@@ -0,0 +1,21 @@
+/*
+** -*- C -*-
+**
+** cabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:23:20 2007 jofret
+** Last update Mon Oct 22 10:46:16 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+
+void cabsa(floatComplex *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = cabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c
new file mode 100644
index 00000000..8cd766df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c
@@ -0,0 +1,30 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+float cabss(floatComplex in) {
+ float real = sabss(creals(in));
+ float imag = sabss(cimags(in));
+ float zMax = max(real, imag);
+ float zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (ssqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c
new file mode 100644
index 00000000..0380e43f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** cexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 14:54:24 2006 jofret
+** Last update Mon Oct 22 09:53:24 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void cexpa(floatComplex* x, int size, floatComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = cexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c
new file mode 100644
index 00000000..667c29d0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+** cexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:04:28 2006 jofret
+** Last update Fri Feb 23 17:08:27 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+#include "cos.h"
+#include "sin.h"
+
+floatComplex cexps(floatComplex z) {
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return FloatComplex(sexps(real)*scoss(imag),
+ sexps(real)*ssins(imag));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c
new file mode 100644
index 00000000..78fbfa76
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c
@@ -0,0 +1,45 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "conj.h"
+
+
+floatComplex c0conjc0(floatComplex in)
+{
+ floatComplex out;
+ out = FloatComplex(creals(in),-cimags(in));
+ return (out);
+}
+
+doubleComplex z0conjz0(doubleComplex in)
+{
+ doubleComplex out;
+ out = DoubleComplex(zreals(in),-zimags(in));
+ return (out);
+}
+
+void c2conjc2(floatComplex* in, int* insize, floatComplex* out)
+{
+ int i;
+
+ for (i=0;i<insize[0]*insize[1];i++)
+ {
+ out[i] = FloatComplex(creals(in[i]),-cimags(in[i]));
+ }
+}
+
+void z2conjz2(doubleComplex* in, int* insize, doubleComplex* out)
+{
+ int i;
+
+ for (i=0;i<insize[0]*insize[1];i++)
+ {
+ out[i] = DoubleComplex(zreals(in[i]),-zimags(in[i]));
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c
new file mode 100644
index 00000000..51c88c0c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c
@@ -0,0 +1,62 @@
+#include <math.h>
+#include "cos.h"
+
+float scoss(float x) {
+ return (cos(x));
+}
+
+double dcoss(double x) {
+ return (cos(x));
+}
+
+floatComplex ccoss(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return FloatComplex(scoss(real) * scoshs(imag),
+ -ssins(real) * ssinhs(imag));
+}
+
+doubleComplex zcoss(doubleComplex z)
+{
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return DoubleComplex(dcoss(real) * dcoshs(imag),
+ -dsins(real) * dsinhs(imag));
+}
+
+void scosa(float* x, int size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = scoss(x[i]);
+ }
+}
+
+void dcosa(double* x, int size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = dcoss(x[i]);
+ }
+}
+
+void ccosa(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ccoss(x[i]);
+ }
+}
+
+void zcosa(doubleComplex* x, int size, doubleComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zcoss(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c
new file mode 100644
index 00000000..0fd7db55
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c
@@ -0,0 +1,40 @@
+#include <math.h>
+#include "cosh.h"
+#include "cos.h"
+
+
+void zcosha(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zcoshs(x[i]);
+ }
+}
+
+float scoshs(float x) {
+ return (cosh(x));
+}
+
+void scosha(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = scoshs(x[i]);
+ }
+}
+
+double dcoshs(double x) {
+ return (cosh(x));
+}
+
+void dcosha(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dcoshs(x[i]);
+ }
+}
+
+doubleComplex zcoshs(doubleComplex z) {
+ double real = zreals(z);
+ double minusImag = -zimags(z);
+
+ return (zcoss(DoubleComplex(minusImag, real)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c
new file mode 100644
index 00000000..62851ff1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** csqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:40:55 2007 bruno
+** Last update Mon Oct 22 09:49:44 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void csqrta(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = csqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c
new file mode 100644
index 00000000..f39b67f5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "sqrt.h"
+
+floatComplex csqrts(floatComplex in) {
+ /* FIXME : Dummy ... */
+ return in;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c
new file mode 100644
index 00000000..5081fa25
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 11:17:25 2007 jofret
+** Last update Mon Oct 22 10:45:56 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void dabsa(double *in, int size, double* out){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = dabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c
new file mode 100644
index 00000000..16f04773
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:25 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+double dabss(double num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c
new file mode 100644
index 00000000..037d89e5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 14:54:56 2006 jofret
+** Last update Mon Oct 22 09:53:15 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void dexpa(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c
new file mode 100644
index 00000000..21c92aca
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** dexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:02:41 2006 jofret
+** Last update Fri Apr 20 14:46:12 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include <math.h>
+#include "exp.h"
+
+double dexps(double x) {
+ return (exp(x));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c
new file mode 100644
index 00000000..4cb7b154
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c
@@ -0,0 +1,194 @@
+#include "disp.h"
+
+ /* =================================
+ =================================
+ === SCILAB 2 C Debug Library. ===
+ =================================
+ =================================
+ */
+/*~ double ddisps1 (double invar)
+{
+ char* invarname = "ans";
+ printf("\n%s: %f\n",invarname,invar);
+ return 0;
+}
+*/
+
+
+double sdisps2 (float invar,char* invarname)
+{
+ printf("\n%s: %g\n",invarname,invar);
+ return 0;
+}
+
+double ddisps2 (double invar,char* invarname)
+{
+ printf("\n%s: %g\n",invarname,invar);
+ return 0;
+}
+
+double cdisps2 (floatComplex invar,char* invarname)
+{
+ printf("\n%s: (%g,%g)\n",invarname,creals(invar),cimags(invar));
+ return 0;
+}
+
+double zdisps2 (doubleComplex invar,char* invarname)
+{
+ printf("\n%s: (%g,%g)\n",invarname,zreals(invar),zimags(invar));
+ return 0;
+}
+
+double g0dispd0(char array)
+{
+ /*int counterrows;*/
+ /*int countercols;*/
+ /*
+ //~ printf("\n");
+ //~ printf("\n%s:\n",arrayname);
+ */
+ printf("\n");
+ printf("%c",array);
+ printf("\n");
+ return 0;
+}
+/*
+double ddispa1(double *array,int* tmparraysize)
+{
+ char* arrayname = "ans";
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf("\t[%d,%d]:%f",counterrows,countercols,array[counterrows*tmparraysize[0]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+*/
+
+double sdispa2(float *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%g",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double ddispa2(double *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%g",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+
+double cdispa2(floatComplex *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:(%g,%g)",counterrows+1,countercols+1,
+ creals(array[counterrows*tmparraysize[1]+countercols]),
+ cimags(array[counterrows*tmparraysize[1]+countercols]));
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double zdispa2(doubleComplex *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:(%g,%g)",counterrows+1,countercols+1,
+ zreals(array[counterrows*tmparraysize[1]+countercols]),
+ zimags(array[counterrows*tmparraysize[1]+countercols]));
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double idispa2(int *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%d",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double g2dispd0(char *array,int* tmparraysize)
+{
+ int counterrows;
+ /*int countercols;*/
+ /*
+ //~ printf("\n");
+ //~ printf("\n%s:\n",arrayname);
+ */
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ printf("\n");
+ printf("%s",array);
+ printf("\n");
+ }
+ return 0;
+}
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c
new file mode 100644
index 00000000..380be331
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c
@@ -0,0 +1,144 @@
+/*
+** -*- C -*-
+**
+** doubleComplex.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:27:08 2006 jofret
+** Last update Thu Aug 16 12:25:46 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include "doubleComplex.h"
+
+#ifndef STDC99
+/*
+** \function zreals
+** \brief Return a Complex Real Part .
+*/
+double zreals(doubleComplex z) {
+ return z.real;
+}
+
+/*
+** \function zimags
+** \brief Return a Complex Imaginary Part .
+*/
+double zimags(doubleComplex z) {
+ return z.imag;
+}
+#else
+/*
+** \function zreals
+** \brief Return a Complex Real Part .
+*/
+double zreals(doubleComplex z) {
+ return creal(z);
+}
+
+/*
+** \function zimags
+** \brief Return a Complex Imaginary Part .
+*/
+double zimags(doubleComplex z) {
+ return cimag(z);
+}
+
+
+#endif
+
+/*
+** \function DoubleComplex
+** \brief construct a Double Complex .
+*/
+doubleComplex DoubleComplex(double real, double imag) {
+ doubleComplex z;
+#ifndef STDC99
+ z.real = real;
+ z.imag = imag;
+#else
+ z = real + I * imag;
+#endif
+ return z;
+}
+
+/*
+** \function isreal
+** \brief check if complex is real .
+*/
+bool zisreals(doubleComplex z) {
+ if (zimags(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** \function isimag
+** \brief check if complex is pure imaginary .
+*/
+bool zisimags(doubleComplex z) {
+ if (zreals(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** Operators
+** {
+*/
+
+/*
+** \function zadds
+** \brief add 2 Complex numbers.
+*/
+doubleComplex zadds(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real + z2.real, z1.imag + z2.imag);
+#else
+ return z1 + z2;
+#endif
+}
+
+/*
+** \function zdiffs
+** \brief diff 2 Complex numbers.
+*/
+doubleComplex zdiffs(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real - z2.real, z1.imag - z2.imag);
+#else
+ return z1 - z2;
+#endif
+}
+
+/*
+** \function ztimess
+** \brief Multiply 2 Complex numbers.
+*/
+doubleComplex ztimess(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real*z2.real - z1.imag*z2.imag,
+ z1.real*z2.imag + z2.real*z1.imag);
+#else
+ return z1 * z2;
+#endif
+}
+
+
+
+
+/*
+** }
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c
new file mode 100644
index 00000000..56d6ea1f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dsqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:40:21 2007 bruno
+** Last update Mon Oct 22 09:49:34 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void dsqrta(double* in, int size, double* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = dsqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c
new file mode 100644
index 00000000..a8159e38
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** dsqrts.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Apr 20 10:59:31 2007 jofret
+** Last update Mon Apr 23 17:37:02 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include <math.h>
+#include "sqrt.h"
+
+double dsqrts(double in){
+ return sqrt(in);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c
new file mode 100644
index 00000000..a5483161
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c
@@ -0,0 +1,143 @@
+/*
+** -*- C -*-
+**
+** floatComplex.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:27:08 2006 jofret
+** Last update Thu Aug 30 09:42:59 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdio.h>
+#include "floatComplex.h"
+
+#ifndef STDC99
+/*
+** \function real
+** \brief Return a Complex Real Part .
+*/
+float creals(floatComplex z) {
+ return z.real;
+}
+
+/*
+** \function imag
+** \brief Return a Complex Imaginary Part .
+*/
+float cimags(floatComplex z) {
+ return z.imag;
+}
+#else
+/*
+** \function real
+** \brief Return a Complex Real Part .
+*/
+float creals(floatComplex z) {
+ return crealf(z);
+}
+
+/*
+** \function imag
+** \brief Return a Complex Imaginary Part .
+*/
+float cimags(floatComplex z) {
+ return cimagf(z);
+}
+#endif
+
+/*
+** \function FloatComplex
+** \brief construct a Float Complex .
+*/
+floatComplex FloatComplex(float a, float b) {
+ floatComplex z;
+#ifndef STDC99
+ z.real = a;
+ z.imag = b;
+#else
+ z = a + I * b;
+#endif
+ return z;
+}
+
+/*
+** \function isreal
+** \brief check if complex is real .
+*/
+bool cisreals(floatComplex z) {
+ if (cimags(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** \function isimag
+** \brief check if complex is pure imaginary .
+*/
+bool cisimags(floatComplex z) {
+ if (creals(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** Operators
+** {
+*/
+
+/*
+** \function cadds
+** \brief add 2 Complex numbers.
+*/
+floatComplex cadds(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real + z2.real, z1.imag + z2.imag);
+#else
+ return z1 + z2;
+#endif
+}
+
+/*
+** \function cdiffs
+** \brief diff 2 Complex numbers.
+*/
+floatComplex cdiffs(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real - z2.real, z1.imag - z2.imag);
+#else
+ return z1 - z2;
+#endif
+}
+
+/*
+** \function ctimess
+** \brief Multiply 2 Complex numbers.
+*/
+floatComplex ctimess(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real*z2.real - z1.imag*z2.imag,
+ z1.real*z2.imag + z2.real*z1.imag);
+#else
+ return z1 * z2;
+#endif
+}
+
+
+
+
+/*
+** }
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c
new file mode 100644
index 00000000..97cafbbd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c
@@ -0,0 +1,40 @@
+/*
+** -*- C -*-
+**
+** OpEqual.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "ones.h"
+void ddonesss1(double in1, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 1;
+ }
+}
+
+double d0d0onesd0(double in1, double in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 1;
+}
+
+void ssonesss1(float in1, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 1;
+ }
+}
+
+float s0s0oness0(float in1, float in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 1;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c
new file mode 100644
index 00000000..df5af141
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 10:53:09 2007 jofret
+** Last update Mon Oct 22 10:45:22 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void sabsa(float *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = sabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c
new file mode 100644
index 00000000..e567b210
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:37 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+float sabss(float num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c
new file mode 100644
index 00000000..3c576971
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 16:03:27 2006 jofret
+** Last update Mon Oct 22 09:53:06 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void sexpa(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = sexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c
new file mode 100644
index 00000000..643e8873
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "exp.h"
+
+float sexps(float x) {
+ return (expf(x));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c
new file mode 100644
index 00000000..748bd338
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c
@@ -0,0 +1,61 @@
+#include <math.h>
+#include "sin.h"
+
+float ssins(float x) {
+ return (sin(x));
+}
+
+double dsins(double x) {
+ return (sin(x));
+}
+
+floatComplex csins(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return(FloatComplex(ssins(real) * scoshs(imag), scoss(real) * ssinhs(imag)));
+}
+
+doubleComplex zsins(doubleComplex z)
+{
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return(DoubleComplex(dsins(real) * dcoshs(imag), dcoss(real) * dsinhs(imag)));
+}
+
+
+void ssina(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = ssins(x[i]);
+ }
+}
+
+void dsina(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = dsins(x[i]);
+ }
+}
+
+void csina(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = csins(x[i]);
+ }
+}
+
+void zsina(doubleComplex* x, int size, doubleComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = zsins(x[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c
new file mode 100644
index 00000000..dbdf7ee9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c
@@ -0,0 +1,58 @@
+#include <math.h>
+#include "sinh.h"
+#include "sin.h"
+
+float ssinhs(float x) {
+ return (sinh(x));
+}
+
+double dsinhs(double x) {
+ return (sinh(x));
+}
+
+floatComplex csinhs(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ floatComplex result = csins(FloatComplex(-imag, real));
+ return (FloatComplex(cimags(result), -creals(result)));
+}
+
+doubleComplex zsinhs(doubleComplex z) {
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ doubleComplex result = zsins(DoubleComplex(-imag, real));
+ return (DoubleComplex(zimags(result), -zreals(result)));
+}
+
+void ssinha(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = ssinhs(x[i]);
+ }
+}
+
+void dsinha(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dsinhs(x[i]);
+ }
+}
+
+void csinha(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = csinhs(x[i]);
+ }
+}
+
+void zsinha(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zsinhs(x[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c
new file mode 100644
index 00000000..6ffa5c26
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** ssqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:06:03 2007 bruno
+** Last update Mon Oct 22 09:49:22 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void ssqrta(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = ssqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c
new file mode 100644
index 00000000..541fea2f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "sqrt.h"
+
+float ssqrts(float in) {
+ return (float) sqrt((float) in);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c
new file mode 100644
index 00000000..56b24ce9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:24:43 2007 jofret
+** Last update Mon Oct 22 10:47:00 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void zabsa(doubleComplex *in, int size, double* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = zabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c
new file mode 100644
index 00000000..4e7b4dd3
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c
@@ -0,0 +1,31 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+double zabss(doubleComplex in) {
+ double real = dabss(zreals(in));
+ double imag = dabss(zimags(in));
+ double zMax = max(real, imag);
+ double zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (dsqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c
new file mode 100644
index 00000000..a80a45df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c
@@ -0,0 +1,41 @@
+/*
+** -*- C -*-
+**
+** zeros.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "zeros.h"
+void d0d0zerosd2(double in1, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 0;
+ }
+}
+
+double d0d0zerosd0(double in1, double in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 0;
+}
+
+void s0s0zeross2(float in1, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 0;
+ }
+}
+
+double s0s0zeross0(float in1, float in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 0;
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c
new file mode 100644
index 00000000..dda49422
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 16:12:02 2006 jofret
+** Last update Mon Oct 22 09:52:57 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void zexpa(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c
new file mode 100644
index 00000000..91babc61
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+** zexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:05:48 2006 jofret
+** Last update Fri Feb 23 17:08:38 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+#include "cos.h"
+#include "sin.h"
+
+doubleComplex zexps(doubleComplex z) {
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return DoubleComplex(dexps(real)*dcoss(imag),
+ dexps(real)*dsins(imag));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c
new file mode 100644
index 00000000..92e6fb1c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zsqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:41:40 2007 bruno
+** Last update Mon Oct 22 09:49:12 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void zsqrta(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = zsqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c
new file mode 100644
index 00000000..05d9192e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "sqrt.h"
+
+doubleComplex zsqrts(doubleComplex in) {
+ /* FIXME : Dummy ... */
+ return in;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h
new file mode 100644
index 00000000..0546432d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** ConvertPrecision.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+** Copyright Raffaele Nutricato 2008
+*/
+
+#ifndef __ConvertPrecision_H__
+#define __ConvertPrecision_H__
+
+
+double s0doubled0(float in);
+void s2doubled2(float* in, int* inSize, double* out);
+float d0floats0(double in);
+void d2floats2(double* in, int* inSize, float* out);
+#endif /* !__ConvertPrecision_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h
new file mode 100644
index 00000000..937a66ef
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h
@@ -0,0 +1,13 @@
+/*
+** -*- C -*-
+**
+** FileManagement.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Rubby Nutricato 2007
+** 31-dec-2007
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h
new file mode 100644
index 00000000..be3e590c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+
+#ifndef __FIND_H__
+#define __FIND_H__
+
+
+#endif /* !__FIND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h
new file mode 100644
index 00000000..a0925707
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** OpApex.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#ifndef __OPAPEX_H__
+#define __OPAPEX_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "conj.h"
+
+/*
+** Compute OpApex for different types .
+*/
+
+float sOpApexs(float in);
+double dOpApexs(double in);
+void sOpApexa(float* x, int xrow,int xcols, float* y);
+void dOpApexa(double* in, int xrow, int xcols, double* out);
+
+floatComplex c0OpApexc0(floatComplex x);
+void c2OpApexc2(floatComplex* x, int* xSize, floatComplex* y);
+doubleComplex z0OpApexz0(doubleComplex x);
+void z2OpApexz2(doubleComplex* x, int* xSize, doubleComplex* y);
+
+#endif /* !__OPAPEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h
new file mode 100644
index 00000000..ca32b422
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** OpCc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void s0s0OpCcs2(float in1, float in2, float* out);
+void s2s0OpCcs2(float* in1, int* in1Size, float in2, float* out);
+void s0s2OpCcs2(float in2, float* in1, int* in1Size, float* out);
+void s2s2OpCcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out);
+
+void d0d0OpCcd2(double in1, double in2, double* out);
+void d2d0OpCcd2(double* in1, int* in1Size, double in2, double* out);
+void d0d2OpCcd2(double in2, double* in1, int* in1Size, double* out);
+void d2d2OpCcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out);
+
+void c0c0OpCcc2(floatComplex in1, floatComplex in2, floatComplex* out);
+void c2c0OpCcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out);
+void c0c2OpCcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out);
+void c2c2OpCcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out);
+
+void z0z0OpCcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out);
+void z2z0OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out);
+void z0z2OpCcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out);
+void z2z2OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out);
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h
new file mode 100644
index 00000000..9a0ff883
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h
@@ -0,0 +1,36 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPCOLON_H__
+#define __OPCOLON_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+float s0s0OpColons0(float in1, float in2);
+double d0d0OpColond0(double in1, double in2);
+float c0c0OpColons0(floatComplex in1, floatComplex in2);
+double z0z0OpColond0(doubleComplex in1, doubleComplex in2);
+
+void s0s0OpColons2(float in1, float in2, float* out);
+void d0d0OpColond2(double in1, double in2, double* out);
+void c0c0OpColons2(floatComplex in1, floatComplex in2, float* out);
+void z0z0OpColond2(doubleComplex in1, doubleComplex in2, double* out);
+
+float s0s0s0OpColons0(float in1, float in2, float in3);
+double d0d0d0OpColond0(double in1, double in2, double in3);
+float c0c0c0OpColons0(floatComplex in1, floatComplex in3, floatComplex in2);
+double z0z0z0OpColond0(doubleComplex in1, doubleComplex in3, doubleComplex in2);
+
+void s0s0s0OpColons2(float in1, float in2, float in3,float* out);
+void d0d0d0OpColond2(double in1, double in2, double in3, double* out);
+void c0c0c0OpColons2(floatComplex in1, floatComplex in3, floatComplex in2, float* out);
+void z0z0z0OpColond2(doubleComplex in1, doubleComplex in3, doubleComplex in2, double* out);
+
+#endif /* !__OPCOLON_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h
new file mode 100644
index 00000000..857362c9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h
@@ -0,0 +1,30 @@
+/*
+** -*- C -*-
+**
+** DotHat.h
+** Made by Raffaele Nutricato
+**
+**
+*/
+
+#ifndef __OPDOTHAT_H__
+#define __OPDOTHAT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "math.h"
+
+/*
+** Compute DotHat for different types .
+*/
+
+float s0s0OpDotHats0(float in1,float in2);
+void s0s2OpDotHats2(float in1,float* in2, int* in2Size, float* out);
+void s2s0OpDotHats2(float* in1,int* in1Size, float in2, float* out);
+void s2s2OpDotHats2(float* in1,int* in1Size,float* in2, int* in2Size, float* out);
+double d0d0OpDotHatd0(double in1,double in2);
+void d0d2OpDotHatd2(double in1,double* in2, int* in2Size, double* out);
+void d2d0OpDotHatd2(double* in1,int* in1Size, double in2, double* out);
+void d2d2OpDotHatd2(double* in1,int* in1Size,double* in2, int* in2Size, double* out);
+
+#endif /* !__OPDOTHAT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h
new file mode 100644
index 00000000..82117ec1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h
@@ -0,0 +1,39 @@
+/*
+** -*- C -*-
+**
+** DotSlash.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#ifndef __OPDOTSLASH_H__
+#define __OPDOTSLASH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute DotSlash for different types .
+*/
+
+float s0s0OpDotSlashs0(float x1, float x2);
+void s0s2OpDotSlashs2(float x1,float* x2, int* x2Size, float* y);
+void s2s0OpDotSlashs2(float* x2, int* x2Size,float x1, float* y);
+void s2s2OpDotSlashs2(float* x1,int* x1Size,float* x2, int* x2Size, float* y);
+double d0d0OpDotSlashd0(double x1, double x2);
+void d0d2OpDotSlashd2(double x1,double* x2, int* x2Size, double* y);
+void d2d0OpDotSlashd2(double* x2, int* x2Size,double x1, double* y);
+void d2d2OpDotSlashd2(double* x1,int* x1Size,double* x2, int* x2Size, double* y);
+
+/*
+//~ floatComplex c0c0OpDotSlashc0(floatComplex x1, floatComplex x2);
+//~ void c0c2OpDotSlashc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+//~ void c2c2OpDotSlashc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+//~ doubleComplex z0z0OpDotSlashz0(doubleComplex x1, doubleComplex x2);
+//~ void z0z2OpDotSlashz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+//~ void z2z2OpDotSlashz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+*/
+#endif /* !__OPDOTSLASH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h
new file mode 100644
index 00000000..4ba14306
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h
@@ -0,0 +1,46 @@
+/*
+** -*- C -*-
+**
+** DotStar.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute DotStar for different types .
+*/
+
+float ssOpDotStarss1(float in1,float in2);
+void ssOpDotStarsa1(float in1,float* in2, int size, float* out);
+void ssOpDotStaraa1(float* in1,float* in2, int size, float* out);
+
+double ddOpDotStarss1(double in1,double in2);
+void ddOpDotStarsa1(double in1,double* in2, int size, double* out);
+void ddOpDotStaraa1(double* in1,double* in2, int size, double* out);
+
+floatComplex s0c0OpDotStarc0(float x2,floatComplex x1);
+floatComplex c0s0OpDotStarc0(floatComplex x1,float x2);
+floatComplex c0c0OpDotStarc0(floatComplex x1, floatComplex x2);
+void c0s2OpDotStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y);
+void c2c0OpDotStarc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void s2c0OpDotStarc2(float* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void s0c2OpDotStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0c2OpDotStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2s2OpDotStarc2(floatComplex* x1,int* x1Size,float* x2, int* x2Size, floatComplex* y);
+void c2c2OpDotStarc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex z0d0OpDotStarz0(doubleComplex x1, double x2);
+doubleComplex d0z0OpDotStarz0(double x2,doubleComplex x1);
+doubleComplex z0z0OpDotStarz0(doubleComplex x1, doubleComplex x2);
+void z0d2OpDotStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y);
+void z2z0OpDotStarz2(doubleComplex* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d2z0OpDotStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d0z2OpDotStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpDotStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2d2OpDotStarz2(doubleComplex* x1,int* x1Size,double* x2, int* x2Size, doubleComplex* y);
+void z2z2OpDotStarz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h
new file mode 100644
index 00000000..da36059a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h
@@ -0,0 +1,33 @@
+/*
+** -*- C -*-
+**
+** OpEqual.h
+** Made by Raffaele Nutricato
+**
+**
+*/
+
+#ifndef __OPEQUAL_H__
+#define __OPEQUAL_H__
+
+#include <string.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Opequal for different types .
+*/
+
+float sOpEquals1(float x);
+double dOpEquals1(double x);
+floatComplex c0OpEqualc0(floatComplex x);
+doubleComplex z0OpEqualz0(doubleComplex x);
+char g0OpEqualg0(char x);
+
+void sOpEquala1(float* x, int size, float* y);
+void dOpEquala1(double* x, int size, double* y);
+void c2OpEqualc2(floatComplex* x, int* xSize, floatComplex* y);
+void z2OpEqualz2(doubleComplex* x, int* xSize, doubleComplex* y);
+void g2OpEqualg2(char* x, int* xSize, char* y);
+
+#endif /* !__OPEQUAL_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h
new file mode 100644
index 00000000..d30344cb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h
@@ -0,0 +1,14 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPEXT_H__
+#define __OPEXT_H__
+
+
+#endif /* !__OPEXT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h
new file mode 100644
index 00000000..29a5e98f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPINS_H__
+#define __OPINS_H__
+
+
+
+#endif /* !__OPINS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h
new file mode 100644
index 00000000..8d61a59c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGAND_H__
+#define __OPLOGAND_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogAnds0(in1,in2) \
+ (float) (in1 && in2)
+void s2s0OpLogAnds2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogAndd0(in1,in2) \
+ (double) (in1 && in2)
+void d2d0OpLogAndd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGAND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h
new file mode 100644
index 00000000..f2920c4d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGEQ_H__
+#define __OPLOGEQ_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogEqs0(in1,in2) \
+ (float) (in1 == in2)
+void s2s0OpLogEqs2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogEqd0(in1,in2) \
+ (double) (in1 == in2)
+void d2d0OpLogEqd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGGT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h
new file mode 100644
index 00000000..798086f2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGGE_H__
+#define __OPLOGGE_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogGes0(in1,in2) \
+ (float) (in1 >= in2)
+void s2s0OpLogGes2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogGed0(in1,in2) \
+ (double) (in1 >= in2)
+void d2d0OpLogGed2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLE_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h
new file mode 100644
index 00000000..e8128e76
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGGT_H__
+#define __OPLOGGT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogGts0(in1,in2) \
+ (float) (in1 > in2)
+void s2s0OpLogGts2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogGtd0(in1,in2) \
+ (double) (in1 > in2)
+void d2d0OpLogGtd2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGGT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h
new file mode 100644
index 00000000..f66c4c1f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGLE_H__
+#define __OPLOGLE_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogLes0(in1,in2) \
+ (float) (in1 <= in2)
+void s2s0OpLogLes2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogLed0(in1,in2) \
+ (double) (in1 <= in2)
+void d2d0OpLogLed2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLE_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h
new file mode 100644
index 00000000..ce1981fb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGLT_H__
+#define __OPLOGLT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogLts0(in1,in2) \
+ (float) (in1 < in2)
+void s2s0OpLogLts2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogLtd0(in1,in2) \
+ (double) (in1 < in2)
+void d2d0OpLogLtd2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h
new file mode 100644
index 00000000..331cae78
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGOR_H__
+#define __OPLOGOR_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogOrs0(in1,in2) \
+ (float) (in1 || in2)
+void s2s0OpLogOrs2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogOrd0(in1,in2) \
+ (double) (in1 || in2)
+void d2d0OpLogOrd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGOR_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h
new file mode 100644
index 00000000..42ff39c5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h
@@ -0,0 +1,59 @@
+/*
+** -*- C -*-
+**
+** OpMinus.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+#ifndef __OPMINUS_H__
+#define __OPMINUS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute OpMinus for different types .
+*/
+
+float s0s0OpMinuss0(float x1, float x2);
+floatComplex s0c0OpMinusc0(float x1,floatComplex x2);
+void s0s2OpMinuss2(float x2, float* x1,int* x1Size, float* y);
+void s2s0OpMinuss2(float* x1,int* x1Size, float x2, float* y);
+void s2s2OpMinuss2(float* x1,int* x1Size, float* x2,int* x2Size, float* y);
+
+double d0d0OpMinusd0(double x1, double x2);
+void d0d2OpMinusd2(double x2, double* x1,int* x1Size, double* y);
+void d2d0OpMinusd2(double* x1,int* x1Size, double x2, double* y);
+void d2d2OpMinusd2(double* x1,int* x1Size, double* x2,int* x2Size, double* y);
+
+float s0OpMinuss0(float x1);
+void s2OpMinuss2(float* in1,int* in1Size, float* out);
+double d0OpMinusd0(double x1);
+void d2OpMinusd2(double* in1,int* in1Size, double* out);
+
+floatComplex c0OpMinusc0(floatComplex x1);
+void c2OpMinusc2(floatComplex* in1,int* in1Size, floatComplex* out);
+floatComplex c0c0OpMinusc0(floatComplex x1,floatComplex x2);
+void c0c2OpMinusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpMinusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void c2c2OpMinusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex z0OpMinusz0(doubleComplex x1);
+void z2OpMinusz2(doubleComplex* in1,int* in1Size, doubleComplex* out);
+doubleComplex z0z0OpMinusz0(doubleComplex x1,doubleComplex x2);
+void z0z2OpMinusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpMinusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y);
+void z2z2OpMinusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+
+void z2d2OpMinusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y);
+void d2z2OpMinusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void c2s2OpMinusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y);
+void s2c2OpMinusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex d0z0OpMinusz0(double x1,doubleComplex x2);
+void s0c2OpMinusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void d0z2OpMinusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+
+#endif /* !__OPMINUS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h
new file mode 100644
index 00000000..ee7cd038
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h
@@ -0,0 +1,60 @@
+/*
+** -*- C -*-
+**
+** OpPlus.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+#ifndef __OPPLUS_H__
+#define __OPPLUS_H__
+
+#include <string.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute OpPlus for different types .
+*/
+
+float ssOpPlusss1(float in1,float in2);
+void ssOpPlussa1(float in1,float* in2, int size, float* out);
+void ssOpPlusaa1(float* x1,float* x2, int size, float* y);
+
+double ddOpPlusss1(double in1,double in2);
+void ddOpPlussa1(double in1,double* in2, int size, double* out);
+void ddOpPlusaa1(double* x1,double* x2, int size, double* y);
+double d0OpPlusd0(double x1);
+void d2OpPlusd2(double* in1,int* in1Size, double* out);
+
+floatComplex c0OpPlusc0(floatComplex x1);
+void c2OpPlusc2(floatComplex* in1,int* in1Size, floatComplex* out);
+floatComplex c0c0OpPlusc0(floatComplex x1,floatComplex x2);
+void s0c2OpPlusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0c2OpPlusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpPlusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void c2c2OpPlusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+floatComplex c0s0OpPlusc0(floatComplex x1,float x2);
+floatComplex s0c0OpPlusc0(float x2,floatComplex x1);
+
+doubleComplex z0OpPlusz0(doubleComplex x1);
+void z2OpPlusz2(doubleComplex* in1,int* in1Size, doubleComplex* out);
+doubleComplex z0d0OpPlusz0(doubleComplex x1,double x2);
+doubleComplex d0z0OpPlusz0(double x1,doubleComplex x2);
+doubleComplex z0z0OpPlusz0(doubleComplex x1,doubleComplex x2);
+void d0z2OpPlusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpPlusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpPlusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y);
+void z2z2OpPlusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void g0g0OpPlusg2(char x1,char x2, char* y); /*RN pensa alla possibilita' di avere sempre e solo stringhe e mai caratteri.*/
+void g2g2OpPlusg2(char* x1,int* x1Size,char* x2, int* x2Size, char* y);
+
+
+void z2d2OpPlusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y);
+void d2z2OpPlusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void c2s2OpPlusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y);
+void s2c2OpPlusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+
+#endif /* !__OPPLUS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h
new file mode 100644
index 00000000..e121f309
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h
@@ -0,0 +1,35 @@
+/*
+** -*- C -*-
+**
+** OpRc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+#ifndef __OPRC_H__
+#define __OPRC_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void d0d0OpRcd2(double in1, double in2, double* out);
+void d2d0OpRcd2(double* in1, int* in1Size, double in2, double* out);
+void d0d2OpRcd2(double in2, double* in1, int* in1Size, double* out);
+void d2d2OpRcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out);
+
+void s0s0OpRcs2(float in1, float in2, float* out);
+void s2s0OpRcs2(float* in1, int* in1Size, float in2, float* out);
+void s0s2OpRcs2(float in2, float* in1, int* in1Size, float* out);
+void s2s2OpRcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out);
+
+void z0z0OpRcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out);
+void z2z0OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out);
+void z0z2OpRcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out);
+void z2z2OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out);
+
+void c0c0OpRcc2(floatComplex in1, floatComplex in2, floatComplex* out);
+void c2c0OpRcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out);
+void c0c2OpRcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out);
+void c2c2OpRcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out);
+#endif /* !__OPRC_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h
new file mode 100644
index 00000000..75ac1bf6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h
@@ -0,0 +1,48 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPSTAR_H__
+#define __OPSTAR_H__
+
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+float ssOpStarss1(float x1, float x2);
+void ssOpStarsa1(float x1,float* x2, int size, float* y);
+void ssOpStaraa1(float* x1,int x1rows, int x1cols, float* x2, int x2cols, float* y);
+double ddOpStarss1(double x1,double x2);
+void ddOpStarsa1(double x1,double* x2, int size, double* y);
+void ddOpStaraa1(double* x1,int x1rows, int x1cols, double* x2, int x2cols, double* y);
+floatComplex s0c0OpStarc0(float x2, floatComplex x1);
+floatComplex c0s0OpStarc0(floatComplex x1, float x2);
+floatComplex c0c0OpStarc0(floatComplex x1, floatComplex x2);
+void s0c2OpStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0s2OpStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y);
+void s2c0OpStarc2(float* x2, int* x2Size, floatComplex x1, floatComplex* y);
+void c0c2OpStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpStarc2(floatComplex* x2, int* x2Size,floatComplex x1, floatComplex* y);
+void c2s2OpStarc2(floatComplex* x1,int* x1Size, float* x2, int* x2Size, floatComplex* y);
+void c2c2OpStarc2(floatComplex* x1,int* x1Size, floatComplex* x2, int* x2Size, floatComplex* y);
+doubleComplex d0z0OpStarz0(double x2, doubleComplex x1);
+doubleComplex z0d0OpStarz0(doubleComplex x1, double x2);
+doubleComplex z0z0OpStarz0(doubleComplex x1, doubleComplex x2);
+void z0d2OpStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y);
+void d2z0OpStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d0z2OpStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpStarz2(doubleComplex* x2, int* x2Size,doubleComplex x1, doubleComplex* y);
+void z2d2OpStarz2(doubleComplex* x1,int* x1Size, double* x2, int* x2Size, doubleComplex* y);
+void z2z2OpStarz2(doubleComplex* x1,int* x1Size, doubleComplex* x2, int* x2Size, doubleComplex* y);
+float s2s2OpStars0(float* x1,int* x1Size, float* x2,int* x2Size);
+double d2d2OpStard0(double* x1,int* x1Size, double* x2,int* x2Size);
+floatComplex c2c2OpStarc0(floatComplex* x1,int* x1Size, floatComplex* x2,int* x2Size);
+doubleComplex z2z2OpStarz0(doubleComplex* x1,int* x1Size, doubleComplex* x2,int* x2Size);
+#endif /* !__OPSTAR_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h
new file mode 100644
index 00000000..6de98be2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h
@@ -0,0 +1,33 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __REALTOCOMPLEX_H__
+#define __REALTOCOMPLEX_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+floatComplex s0floatcomplexc0(float in);
+floatComplex d0floatcomplexc0(double in);
+floatComplex c0floatcomplexc0(floatComplex in);
+floatComplex z0floatcomplexc0(doubleComplex in);
+void s2floatcomplexc2(float* in, int* inSize, floatComplex* out);
+void d2floatcomplexc2(double* in, int* inSize, floatComplex* out);
+void c2floatcomplexc2(floatComplex* in, int* inSize, floatComplex* out);
+void z2floatcomplexc2(doubleComplex* in, int* inSize, floatComplex* out);
+
+doubleComplex s0doublecomplexz0(float in);
+doubleComplex d0doublecomplexz0(double in);
+doubleComplex c0doublecomplexz0(floatComplex in);
+doubleComplex z0doublecomplexz0(doubleComplex in);
+void s2doublecomplexz2(float* in, int* inSize, doubleComplex* out);
+void d2doublecomplexz2(double* in, int* inSize, doubleComplex* out);
+void c2doublecomplexz2(floatComplex* in, int* inSize, doubleComplex* out);
+void z2doublecomplexz2(doubleComplex* in, int* inSize, doubleComplex* out);
+#endif /* !__REALTOCOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h
new file mode 100644
index 00000000..a129a410
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h
@@ -0,0 +1,280 @@
+/*
+** ----------------------
+** --- Class OPEQUAL. ---
+** ----------------------
+*/
+/* --- Equal. --- */
+#define s0OpEquals0(in) \
+sOpEquals1(in);
+
+#define s2OpEquals2(inptr,insizeptr,outptr) \
+sOpEquala1(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d0OpEquald0(in) \
+dOpEquals1(in);
+
+#define d2OpEquald2(inptr,insizeptr,outptr) \
+dOpEquala1(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/*
+// ---------------------
+// --- Class OPSTAR. ---
+// ---------------------
+*/
+/* --- OpStar. --- */
+#define s0s0OpStars0(in1,in2) \
+ssOpStarss1(in1,in2);
+
+#define s0s2OpStars2(in1,inptr2,insizeptr2,outptr) \
+ssOpStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s0OpStars2(inptr2,insizeptr2,in1,outptr) \
+ssOpStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define s2s2OpStars2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpStaraa1(inptr1,insizeptr1[0],insizeptr1[1], inptr2, insizeptr2[1], outptr);
+
+#define d0d0OpStard0(in1,in2) \
+ddOpStarss1(in1,in2);
+
+#define d0d2OpStard2(in1,inptr2,insizeptr2,outptr) \
+ddOpStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpStard2(inptr2,insizeptr2,in1,outptr) \
+ddOpStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+#define d2d2OpStard2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpStaraa1(inptr1,insizeptr1[0],insizeptr1[1], inptr2, insizeptr2[1], outptr);
+
+/*
+// ---------------------
+// --- Class OPPLUS. ---
+// ---------------------
+*/
+/* --- OpPlus. ---*/
+/*RN volendo puoi fare una sola macro del tipo sa1() che serve per tutte le operazioni*/
+#define s0s0OpPluss0(in1,in2) \
+ssOpPlusss1(in1,in2);
+
+#define s0s2OpPluss2(in1,inptr2,insizeptr2,outptr) \
+ssOpPlussa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s2OpPluss2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpPlusaa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr)
+
+#define s2s0OpPluss2(inptr2,insizeptr2,in1,outptr) \
+ssOpPlussa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define d0d0OpPlusd0(in1,in2) \
+ddOpPlusss1(in1,in2);
+
+#define d2d2OpPlusd2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpPlusaa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr);
+
+#define d0d2OpPlusd2(in1,inptr2,insizeptr2,outptr) \
+ddOpPlussa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpPlusd2(inptr2,insizeptr2,in1,outptr) \
+ddOpPlussa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+
+/* --- OpDotStar. ---*/
+#define s0s0OpDotStars0(in1,in2) \
+ssOpDotStarss1(in1,in2);
+
+#define s0s2OpDotStars2(in1,inptr2,insizeptr2,outptr) \
+ssOpDotStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s2OpDotStars2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpDotStaraa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr)
+
+#define s2s0OpDotStars2(inptr2,insizeptr2,in1,outptr) \
+ssOpDotStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define d0d0OpDotStard0(in1,in2) \
+ddOpDotStarss1(in1,in2);
+
+#define d2d2OpDotStard2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpDotStaraa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr);
+
+#define d0d2OpDotStard2(in1,inptr2,insizeptr2,outptr) \
+ddOpDotStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpDotStard2(inptr2,insizeptr2,in1,outptr) \
+ddOpDotStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+/*
+// ---------------------
+// --- Class ^. ---
+// ---------------------
+*/
+/*RN DA FARE ANCORA forse la si puo' integrare dentro le operazioni OPPLUS*/
+
+/*
+// ---------------------
+// --- Class OPAPEX. ---
+// ---------------------
+*/
+/* --- OpApex. ---*/
+#define s0OpApexs0(in) \
+sOpApexs(in);
+
+#define d0OpApexd0(in) \
+dOpApexs(in);
+
+#define s2OpApexs2(inptr,insizeptr,outptr) \
+sOpApexa(inptr, insizeptr[0],insizeptr[1], outptr);
+
+#define d2OpApexd2(inptr,insizeptr,outptr) \
+dOpApexa(inptr, insizeptr[0],insizeptr[1], outptr);
+
+/*
+// ---------------------
+// --- Class SIN. ---
+// ---------------------
+*/
+/* --- sin. ---*/
+#define s0sins0(inptr) \
+ssins(inptr);
+
+#define d0sind0(inptr) \
+dsins(inptr);
+
+#define c0sinc0(inptr) \
+csins(inptr);
+
+#define z0sinz0(inptr) \
+zsins(inptr);
+
+#define s2sins2(inptr,insizeptr,outptr) \
+ssina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2sind2(inptr,insizeptr,outptr) \
+dsina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2sinc2(inptr,insizeptr,outptr) \
+csina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2sinz2(inptr,insizeptr,outptr) \
+zsina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/* --- cos. ---*/
+#define s0coss0(inptr) \
+scoss(inptr);
+
+#define d0cosd0(inptr) \
+dcoss(inptr);
+
+#define c0cosc0(inptr) \
+ccoss(inptr);
+
+#define z0cosz0(inptr) \
+zcoss(inptr);
+
+#define s2coss2(inptr,insizeptr,outptr) \
+scosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2cosd2(inptr,insizeptr,outptr) \
+dcosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2cosc2(inptr,insizeptr,outptr) \
+ccosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2cosz2(inptr,insizeptr,outptr) \
+zcosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/* --- sinh. ---*/
+#define s0sinhs0(inptr) \
+ssinhs(inptr);
+
+#define d0sinhd0(inptr) \
+dsinhs(inptr);
+
+#define c0sinhc0(inptr) \
+csinhs(inptr);
+
+#define z0sinhz0(inptr) \
+zsins(inptr);
+
+#define s2sinhs2(inptr,insizeptr,outptr) \
+ssinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2sinhd2(inptr,insizeptr,outptr) \
+dsinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2sinhc2(inptr,insizeptr,outptr) \
+csinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2sinhz2(inptr,insizeptr,outptr) \
+zsinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+
+/*
+// ---------------------
+// --- Class DISP. ---
+// ---------------------
+*/
+#define s0dispd0(invar) \
+sdisps2 (invar, #invar );
+
+#define d0dispd0(invar) \
+ddisps2 (invar, #invar );
+
+#define c0dispd0(invar) \
+cdisps2 (invar, #invar );
+
+#define z0dispd0(invar) \
+zdisps2 (invar, #invar );
+
+#define s2dispd0(invar,insize) \
+sdispa2 (invar, insize, #invar );
+
+#define d2dispd0(invar,insize) \
+ddispa2 (invar, insize, #invar );
+
+#define c2dispd0(invar,insize) \
+cdispa2 (invar, insize, #invar );
+
+#define z2dispd0(invar,insize) \
+zdispa2 (invar, insize, #invar );
+
+#define i2dispd0(invar,insize) \
+idispa2 (invar, insize, #invar );
+/*
+// --------------------
+// --- Class ZEROS. ---
+// --------------------
+*/
+/* --- ones. ---*/
+#define d0d0onesd2(inptr1,inptr2,outptr) \
+ddonesss1(inptr1, inptr2, outptr);
+
+#define onesd0() \
+1
+
+#define d0onesd0(in1) \
+1
+
+#define d2onesd2(inptr,insizeptr,outptr) \
+ddonesss1(insizeptr[0], insizeptr[1], outptr);
+
+#define d0d0onesd2(inptr1,inptr2,outptr) \
+ddonesss1(inptr1, inptr2, outptr);
+
+#define s0s0oness2(inptr1,inptr2,outptr) \
+ssonesss1(inptr1, inptr2, outptr);
+
+#define oness0() \
+1
+
+#define s0oness0(in1) \
+1
+
+#define s2oness2(inptr,insizeptr,outptr) \
+ssonesss1(insizeptr[0], insizeptr[1], outptr);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h
new file mode 100644
index 00000000..3fb3b9e9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#ifndef __CONVOL_H__
+#define __CONVOL_H__
+
+#include "SCI2CMacroInterface.h"
+#endif /* !__CONVOL_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h
new file mode 100644
index 00000000..f82b74b4
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h
@@ -0,0 +1,16 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#ifndef __SCI2CFFT_H__
+#define __SCI2CFFT_H__
+
+#include "SCI2CMacroInterface.h"
+
+#endif /* !__SCI2CFFT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h
new file mode 100644
index 00000000..09c0a89b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h
@@ -0,0 +1,87 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#ifndef __ABS_H__
+#define __ABS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "sqrt.h"
+
+
+/**
+ ** \brief Float Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the float we must determine abs.
+ ** \return -in or in depending on the sign of in.
+ **/
+float sabss(float in);
+
+/**
+ ** \brief Double Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double we must determine abs.
+ ** \return -in or +in depending on the abs of in.
+ **/
+double dabss(double in);
+
+/**
+ ** \brief Float Complex Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the float complex we must determine abs i.e. module.
+ ** \return |in|.
+ **/
+float cabss(floatComplex in);
+
+/**
+ ** \brief Double Complex Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double complex we must determine abs i.e. module.
+ ** \return |in|.
+ **/
+double zabss(doubleComplex in);
+
+/**
+ ** \brief Float Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the float array we must determine abs.
+ ** \param out : the float array result.
+ **/
+void sabsa(float *in, int size, float* out);
+
+/**
+ ** \brief Double Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the double array we must determine abs.
+ ** \param out : the double array result.
+ **/
+void dabsa(double *in, int size, double* out);
+
+/**
+ ** \brief Float Complex Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the float complex array we must determine abs i.e. module.
+ ** \param out : the float complex array result i.e out[n] = |in[n]|.
+ **/
+void cabsa(floatComplex *in, int size, float* out);
+
+/**
+ ** \brief Double Complex Array Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double complex array we must determine abs i.e. module.
+ ** \param out : the double complex array result i.e out[n] = |in[n]|.
+ **/
+void zabsa(doubleComplex *in, int size, double* out);
+
+#endif /* !__ABS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabsa.c
new file mode 100644
index 00000000..a7d41efc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** cabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:23:20 2007 jofret
+** Last update Mon Oct 22 10:46:16 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void cabsa(floatComplex *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = cabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabss.c
new file mode 100644
index 00000000..8cd766df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cabss.c
@@ -0,0 +1,30 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+float cabss(floatComplex in) {
+ float real = sabss(creals(in));
+ float imag = sabss(cimags(in));
+ float zMax = max(real, imag);
+ float zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (ssqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h
new file mode 100644
index 00000000..a25aa0df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sin.h
+** Made by Raffaele Nutricato
+**
+*/
+
+#ifndef __CONJ_H__
+#define __CONJ_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+floatComplex c0conjc0(floatComplex in);
+doubleComplex z0conjz0(doubleComplex in);
+void c2conjc2(floatComplex* in, int* insize, floatComplex* out);
+void z2conjz2(doubleComplex* in, int* insize, doubleComplex* out);
+
+#endif /* !__CONJ_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h
new file mode 100644
index 00000000..9eb49544
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+** constant.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Mar 30 12:03:14 2007 jofret
+** Last update Mon Oct 22 17:23:08 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __CONSTANT_H__
+#define __CONSTANT_H__
+
+#include <math.h>
+#define PI 3.1415826535
+#define SCI2C_PI 3.1415826535
+#define SCI2C_T 1
+#define SCI2C_F 0
+#define SCI2C_NAN nan("")
+#define SCI2C_INF 1e100000
+#define SCI2C_IMG_C FloatComplex(0,1)
+#define SCI2C_IMG_Z DoubleComplex(0,1)
+
+#endif /* !__CONSTANT_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h
new file mode 100644
index 00000000..97359dee
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** cos.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __COS_H__
+#define __COS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "cos.h"
+#include "sin.h"
+#include "cosh.h"
+#include "sinh.h"
+
+
+/*
+** Compute Cosine for different types .
+*/
+
+float scoss(float in);
+double dcoss(double in);
+floatComplex ccoss(floatComplex in);
+doubleComplex zcoss(doubleComplex in);
+
+void scosa(float* in, int size, float* out);
+void dcosa(double* in, int size, double* out);
+void ccosa(floatComplex* in, int size, floatComplex* out);
+void zcosa(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__COS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h
new file mode 100644
index 00000000..543497d2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+** cosh.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:33:12 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __COSH_H__
+#define __COSH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void zcosha(doubleComplex* x, int size, doubleComplex* y);
+float scoshs(float x);
+void scosha(float* x, int size, float* y);
+double dcoshs(double x);
+void dcosha(double* x, int size, double* y);
+doubleComplex zcoshs(doubleComplex z);
+
+#endif /* !__COSH_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabsa.c
new file mode 100644
index 00000000..5081fa25
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 11:17:25 2007 jofret
+** Last update Mon Oct 22 10:45:56 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void dabsa(double *in, int size, double* out){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = dabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabss.c
new file mode 100644
index 00000000..16f04773
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/dabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:25 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+double dabss(double num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h
new file mode 100644
index 00000000..87ef98d6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h
@@ -0,0 +1,27 @@
+#include<stdio.h>
+#include<math.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+// ===================
+// === Prototypes. ===
+// ===================
+*/
+double sdisps2 (float invar,char* invarname);
+double ddisps2 (double invar,char* invarname);
+double cdisps2 (floatComplex invar,char* invarname);
+double zdisps2 (doubleComplex invar,char* invarname);
+double g0dispd0 (char invar);
+
+double sdispa2(float *array,int* tmparraysize,char* arrayname);
+double ddispa2(double *array,int* tmparraysize,char* arrayname);
+double cdispa2(floatComplex *array,int* tmparraysize,char* arrayname);
+double zdispa2(doubleComplex *array,int* tmparraysize,char* arrayname);
+double idispa2(int *array,int* tmparraysize,char* arrayname);
+double g2dispd0(char *array,int* tmparraysize);
+
+/*
+//RN mi sembra che la disp di scilab ritorni ans mentre nei nomi delle prototype creati
+//RN da scilab viene sempre fuori uno 0 come output arguments.
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h
new file mode 100644
index 00000000..e43c8bd0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h
@@ -0,0 +1,67 @@
+/*
+** -*- C -*-
+**
+** doubleComplex.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:50:08 2006 jofret
+** Last update Thu Aug 16 11:57:12 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __DOUBLECOMPLEX_H__
+#define __DOUBLECOMPLEX_H__
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdbool.h>
+
+#ifndef STDC99
+/*
+** Hand made Double Complex definition
+** {
+*/
+struct double_complex
+{
+ double real;
+ double imag;
+};
+
+typedef struct double_complex doubleComplex;
+/*
+** }
+*/
+#else
+/*
+** Standard C99 Complex
+** {
+*/
+#include <complex.h>
+
+typedef double complex doubleComplex;
+/*
+** }
+*/
+#endif
+
+double zreals(doubleComplex);
+double zimags(doubleComplex);
+doubleComplex DoubleComplex(double, double);
+bool zisreals(doubleComplex);
+bool zisimags(doubleComplex);
+
+doubleComplex zadds(doubleComplex, doubleComplex);
+doubleComplex zdiffs(doubleComplex, doubleComplex);
+doubleComplex ztimess(doubleComplex, doubleComplex);
+doubleComplex zdevides(doubleComplex, doubleComplex);
+#endif /* !__DOUBLECOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h
new file mode 100644
index 00000000..64ff310a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h
@@ -0,0 +1,80 @@
+/*
+** -*- C -*-
+**
+** exp.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:29:44 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __EXP_H__
+#define __EXP_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Exponential for different types .
+*/
+
+/*
+** \brief Float Exponential function
+** \param in : input value.
+*/
+float sexps(float in);
+
+/*
+** \brief Double Exponential function
+** \param in : input value.
+*/
+double dexps(double in);
+
+/*
+** \brief Float Complex Exponential function
+** \param in : input value.
+*/
+floatComplex cexps(floatComplex in);
+
+/*
+** \brief Double Complex Exponential function
+** \param in : input value.
+*/
+doubleComplex zexps(doubleComplex in);
+
+/*
+** \brief Float Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void sexpa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dexpa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void cexpa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zexpa(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__EXP_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h
new file mode 100644
index 00000000..64afed90
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h
@@ -0,0 +1,69 @@
+/*
+** -*- C -*-
+**
+** floatComplex.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:50:08 2006 jofret
+** Last update Thu Aug 16 12:14:57 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __FLOATCOMPLEX_H__
+#define __FLOATCOMPLEX_H__
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdbool.h>
+
+#ifndef STDC99
+/*
+** Hand made Float Complex definition
+** {
+*/
+struct float_complex
+{
+ float real;
+ float imag;
+};
+
+typedef struct float_complex floatComplex;
+/*
+** }
+*/
+#else
+/*
+** C99 Standard
+** {
+*/
+#include <complex.h>
+
+typedef float complex floatComplex;
+/*
+** }
+*/
+#endif
+
+
+float creals(floatComplex);
+float cimags(floatComplex);
+floatComplex FloatComplex(float, float);
+bool cisreals(floatComplex);
+bool cisimags(floatComplex);
+
+floatComplex cadds(floatComplex, floatComplex);
+floatComplex cdiffs(floatComplex, floatComplex);
+floatComplex ctimess(floatComplex, floatComplex);
+floatComplex cdevides(floatComplex, floatComplex);
+
+#endif /* !__FLOATCOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h
new file mode 100644
index 00000000..037ac32e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h
@@ -0,0 +1,95 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET, POLIBA Raffaele Nutricato
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __LENGTH_H__
+#define __LENGTH_H__
+
+/**
+ ** WARNING :
+ ** We assume size of arrays are known, so we
+ ** use #define to avoid compilation warnings
+ ** such as "unused parameter"
+ **/
+
+/**
+ ** \brief Float Size Scalar function
+ ** Determine the size of an array.
+ ** \param in : the float array we must determine size.
+ ** \param size : the number of elements.
+ ** \return the size of in.
+ **/
+#define slengths(in) 1.0f
+
+/**
+ ** \brief Float length Scalar function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define dlengths(in) 1.0
+
+/**
+ ** \brief Complex Float length Scalar function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define clengths(in) 1.0f
+
+/**
+ ** \brief Complex Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define zlengths(in) 1.0
+
+/**
+ ** \brief Float length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define slengtha(in, size) size
+
+/**
+ ** \brief Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define dlengtha(in, size) size
+
+/**
+ ** \brief Complex Float length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define clengtha(in, size) size
+
+/**
+ ** \brief Complex Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define zlengtha(in, size) size
+
+#endif /* !__LENGTH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in
new file mode 100644
index 00000000..52ed2d07
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in
@@ -0,0 +1,141 @@
+/* includes/machine.h.in. Generated from configure.ac by autoheader. */
+
+#ifndef MACHINE_H
+#define MACHINE_H
+
+
+
+/* Define C2F without Trailing Underscore */
+#undef C2F
+
+/* Cname */
+#undef CNAME
+
+/* Define C2F without Trailing Underscore */
+#undef F2C
+
+/* Define to 1 if your Fortran compiler doesn't accept -c and -o together. */
+#undef F77_NO_MINUS_C_MINUS_O
+
+/* Define to 1 if you have the <complex.h> header file. */
+#undef HAVE_COMPLEX_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* With the Atlas Lib */
+#undef WITH_ATLAS
+
+/* If leading underscores */
+#undef WLU
+
+/* If trailing underscores */
+#undef WTU
+
+
+/*
+ Define integer C type which must fit Fortran integer
+ For Scilab to work, the rule is:
+ size of Fortran double precision = 2 * size of Fortran integer
+
+ At the present time, we suppose:
+ size of Fortran integer = 4 bytes
+ size of Fortran double precision = 8 bytes
+ size of C int = 4 bytes
+*/
+
+typedef int integer;
+
+/* define boolean type */
+#ifdef BOOL
+ #undef BOOL
+#endif
+
+typedef int BOOL ;
+
+#ifdef TRUE
+ #undef TRUE
+#endif
+#define TRUE 1
+
+#ifdef FALSE
+ #undef FALSE
+#endif
+#define FALSE 0
+
+/* params.h */
+#ifdef __STDC__
+#ifndef __PARAMS
+#define __PARAMS(paramlist) paramlist
+#endif
+#ifndef _PARAMS
+#define _PARAMS(paramlist) paramlist
+#endif
+#else
+#ifndef __PARAMS
+#define __PARAMS(paramlist) ()
+#endif
+#ifndef _PARAMS
+#define _PARAMS(paramlist) ()
+#endif
+#endif
+
+#endif /* MACHINE_H */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h
new file mode 100644
index 00000000..30317114
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __MAX_H__
+#define __MAX_H__
+
+#define max(a,b) (a>=b?a:b)
+
+#endif /* !__MAX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h
new file mode 100644
index 00000000..462bd671
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h
@@ -0,0 +1,17 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+#ifndef __MIN_H__
+#define __MIN_H__
+
+#define min(a,b) (a<=b?a:b)
+
+#endif /* !__MIN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h
new file mode 100644
index 00000000..59d8c2fe
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** notFound.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:12:17 2007 jofret
+** Last update Tue Feb 13 17:16:47 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __NOT_FOUND_H__
+#define __NOT_FOUND_H__
+
+#define NOT_FOUND -1
+
+#endif /* !__NOT_FOUND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h
new file mode 100644
index 00000000..28c5fb5b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** ones.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+/*
+** Compute OpPlus for different types .
+*/
+
+void ddonesss1(double in1, double in2, double* out);
+double d0d0onesd0(double in1, double in2);
+
+void ssonesss1(float in1, float in2, float* out);
+float s0s0oness0(float in1, float in2);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabsa.c
new file mode 100644
index 00000000..df5af141
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 10:53:09 2007 jofret
+** Last update Mon Oct 22 10:45:22 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void sabsa(float *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = sabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabss.c
new file mode 100644
index 00000000..e567b210
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:37 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+float sabss(float num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h
new file mode 100644
index 00000000..e76c77ce
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h
@@ -0,0 +1,51 @@
+#define SCI2Cint int
+#include "SCI2CMacroInterface.h"
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include "constant.h"
+#include "notFound.h"
+#include "doubleComplex.h"
+#include "length.h"
+#include "int_length.h"
+#include "min.h"
+#include "max.h"
+#include "floatComplex.h"
+#include "RealToComplex.h"
+#include "conj.h"
+#include "cos.h"
+#include "disp.h"
+#include "ones.h"
+#include "zeros.h"
+#include "OpApex.h"
+#include "OpColon.h"
+#include "OpDotStar.h"
+#include "OpDotSlash.h"
+#include "OpDotHat.h"
+#include "OpEqual.h"
+#include "OpPlus.h"
+#include "OpMinus.h"
+#include "OpStar.h"
+#include "OpIns.h"
+#include "OpExt.h"
+#include "OpCc.h"
+#include "OpRc.h"
+#include "sin.h"
+#include "FileManagement.h"
+#include "Find.h"
+#include "OpLogGt.h"
+#include "OpLogLt.h"
+#include "OpLogGe.h"
+#include "OpLogLe.h"
+#include "OpLogEq.h"
+#include "OpLogOr.h"
+#include "OpLogAnd.h"
+#include "ConvertPrecision.h"
+#include "SCI2Cfft.h"
+#include "SCI2Cconvol.h"
+#include "sqrt.h"
+#include "int_sqrt.h"
+#include "abs.h"
+#include "int_abs.h"
+#include "exp.h"
+#include "int_exp.h"
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h
new file mode 100644
index 00000000..327e7d43
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** sin.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __SIN_H__
+#define __SIN_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+
+/*
+** Compute Cosine for different types .
+*/
+
+float ssins(float in);
+double dsins(double in);
+floatComplex csins(floatComplex z);
+doubleComplex zsins(doubleComplex in);
+
+void ssina(float* in, int size, float* out);
+void dsina(double* in, int size, double* out);
+void csina(floatComplex* in, int size, floatComplex* out);
+void zsina(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__SIN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h
new file mode 100644
index 00000000..ba88bb26
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** sinh.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:24:13 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __SINH_H__
+#define __SINH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include <math.h>
+#include "sin.h"
+
+float ssinhs(float x);
+double dsinhs(double x);
+floatComplex csinhs(floatComplex z);
+doubleComplex zsinhs(doubleComplex z);
+
+void ssinha(float* x, int size, float* y);
+void dsinha(double* x, int size, double* y);
+void csinha(floatComplex* x, int size, floatComplex* y);
+void zsinha(doubleComplex* x, int size, doubleComplex* y);
+
+
+#endif /* !__SINH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h
new file mode 100644
index 00000000..01175948
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h
@@ -0,0 +1,79 @@
+/*
+** -*- C -*-
+**
+** sqrt.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Mar 22 08:54:39 2007 jofret
+** Last update Mon Oct 22 10:02:53 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __SQRT_H__
+#define __SQRT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Square Root for different types .
+*/
+
+/*
+** \brief Float Square Root function
+** \param in : input value.
+*/
+float ssqrts(float in);
+
+/*
+** \brief Double Square Root function
+** \param in : input value.
+*/
+double dsqrts(double in);
+
+/*
+** \brief Float Complex Square Root function
+** \param in : input value.
+*/
+floatComplex csqrts(floatComplex in);
+
+/*
+** \brief Double Complex Square Root function
+** \param in : input value.
+*/
+doubleComplex zsqrts(doubleComplex in);
+
+/*
+** \brief Float Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void ssqrta(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dsqrta(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void csqrta(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zsqrta(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__SQRT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabsa.c
new file mode 100644
index 00000000..56b24ce9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:24:43 2007 jofret
+** Last update Mon Oct 22 10:47:00 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void zabsa(doubleComplex *in, int size, double* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = zabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabss.c
new file mode 100644
index 00000000..4e7b4dd3
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zabss.c
@@ -0,0 +1,31 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+double zabss(doubleComplex in) {
+ double real = dabss(zreals(in));
+ double imag = dabss(zimags(in));
+ double zMax = max(real, imag);
+ double zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (dsqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h
new file mode 100644
index 00000000..bc739f1b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+** zeros.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+void d0d0zerosd2(double in1, double in2, double* out);
+double d0d0zerosd0(double in1, double in2);
+void s0s0zeross2(float in1, float in2, float* out);
+double s0s0zeross0(float in1, float in2);
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h
new file mode 100644
index 00000000..a343db09
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h
@@ -0,0 +1,54 @@
+/*
+** -*- C -*-
+**
+** int_abs.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for abs in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_ABS_H__
+#define __INT_ABS_H__
+
+#define s0abss0(in) \
+sabss(in);
+
+#define d0absd0(in) \
+dabss(in);
+
+#define c0abss0(in) \
+cabss(in);
+
+#define z0absd0(in) \
+zabss(in);
+
+#define s2abss2(inptr,insizeptr,outptr) \
+sabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2absd2(inptr,insizeptr,outptr) \
+dabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2abss2(inptr,insizeptr,outptr) \
+cabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2absd2(inptr,insizeptr,outptr) \
+zabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#endif /* !__INT_ABS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h
new file mode 100644
index 00000000..92c3917b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h
@@ -0,0 +1,55 @@
+/*
+** -*- C -*-
+**
+** int_exp.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for exp in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_EXP_H__
+#define __INT_EXP_H__
+
+
+#define s0exps0(in) \
+sexps(in)
+
+#define d0expd0(in) \
+dexps(in)
+
+#define c0expc0(in) \
+cexps(in)
+
+#define z0expz0(in) \
+zexps(in)
+
+#define s2exps2(inptr,insizeptr,outptr) \
+sexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define d2expd2(inptr,insizeptr,outptr) \
+dexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define c2expc2(inptr,insizeptr,outptr) \
+cexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define z2expz2(inptr,insizeptr,outptr) \
+zexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#endif /* !__INT_EXP_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h
new file mode 100644
index 00000000..29546f5b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h
@@ -0,0 +1,70 @@
+/*
+** -*- C -*-
+**
+** int_length.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for length in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('g0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('g0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+ PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_LENGTH_H__
+#define __INT_LENGTH_H__
+
+#define s0lengths0(in) \
+slengths(in)
+
+#define d0lengthd0(in) \
+dlengths(in)
+
+#define c0lengths0(in) \
+clengths(in)
+
+#define z0lengthd0(in) \
+zlengths(in)
+
+#define g0lengths0(in) \
+slengths(in)
+
+#define g0lengthd0(in) \
+dlengths(in)
+
+#define s2lengths0(inptr,insizeptr) \
+slengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define d2lengthd0(inptr,insizeptr) \
+dlengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define c2lengths0(inptr,insizeptr) \
+clengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define z2lengthd0(inptr,insizeptr) \
+zlengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define g2lengths0(inptr,insizeptr) \
+slengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define g2lengthd0(inptr,insizeptr) \
+dlengtha(inptr, insizeptr[0]*insizeptr[1])
+#endif /* !__INT_LENGTH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h
new file mode 100644
index 00000000..e8bd7e97
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h
@@ -0,0 +1,71 @@
+/*
+** -*- C -*-
+**
+** int_sqrt.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for sqrt in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_SQRT_H__
+#define __INT_SQRT_H__
+
+#define s0sqrts0(in) \
+ssqrts(in)
+
+#define s0sqrtc0(in) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define d0sqrtd0(in) \
+dsqrts(in)
+
+#define d0sqrtz0(in) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define c0sqrtc0(in) \
+csqrts(in)
+
+#define z0sqrtz0(in) \
+zsqrts(in)
+
+#define s2sqrts2(inptr,insizeptr,outptr) \
+ssqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define s2sqrtc2(inptr,insizeptr,outptr) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define d2sqrtd2(inptr,insizeptr,outptr) \
+dsqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define d2sqrtz2(inptr,insizeptr,outptr) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define c2sqrtc2(inptr,insizeptr,outptr) \
+csqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define z2sqrtz2(inptr,insizeptr,outptr) \
+zsqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#endif /* !__INT_SQRT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt b/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt
new file mode 100644
index 00000000..54f467f7
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt
@@ -0,0 +1,2 @@
+for the moment the makefile generates the obj files in
+the source directory where .c files are stored. \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/ErrorMessages/EM_NanSize.sci b/src/Scilab2C/Scilab2C/ErrorMessages/EM_NanSize.sci
new file mode 100644
index 00000000..2595a32b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ErrorMessages/EM_NanSize.sci
@@ -0,0 +1,82 @@
+function EM_NanSize(ReportFileName)
+// function EM_NanSize(ReportFileName)
+// -----------------------------------------------------------------
+//
+// Input data:
+// //NUT: Add description here
+//
+// Output data:
+// //NUT: Add description here
+//
+// Status:
+// 13-Feb-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+PrintStringInfo(' ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Cannot initialize a local or global variable with a variable value',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: coming from a function or an operation.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: See code below:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: a = 10;',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: b = 10;',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: c = a+b;',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: D = zeros(a,b); // Allowed',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: E = zeros(10,b); // Allowed',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: F = zeros(10,5); // Allowed',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: G = zeros(10,c); // Not Allowed because c value is not known at transation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: H = 10:c:9;// Not Allowed because c value is not known at transation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: The same problem arises in for loops.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: SCI2C forbids use of step values in ""for"" loops which come from ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: a function or an operation.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Always specify its value.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Example: ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Scilab Code:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: unkstep = 2*cos(0); // It means that unkstep is not known at translation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: The code above is not allowed. You can change it as shown below:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: unkstep = 2; // This time the value of unkstep is known at translation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: The reason for this limitation is related to the impossibility to generate optimized C code.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: when the step is unknown.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Look at the following example for more details,',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Scilab Code:;',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: If unkstep variable value is unkwnown it is not possible to generate',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: optimized C code.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Infact, if unkstep is >= 0, the correct C code is:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: If unkstep is < 0 the correct C code is:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10; cnt>=1; cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Note how the condition cnt<=1 changes to cnt>=1.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: In order to take into account of this possibility ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: SCI2C translator should generate both codes and then ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: insert them into an if/else block as shown here: ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: if (unkstep >= 0)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: {',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: }',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: else{',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: {',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: }',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Of course it is not optimized C code.',ReportFileName,'both','y');
+PrintStringInfo(' ',ReportFileName,'both','y');
+SCI2Cerror(' ');
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ErrorMessages/EM_UnknownStep.sci b/src/Scilab2C/Scilab2C/ErrorMessages/EM_UnknownStep.sci
new file mode 100644
index 00000000..9f8d39e7
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ErrorMessages/EM_UnknownStep.sci
@@ -0,0 +1,70 @@
+function EM_UnknownStep(ReportFileName)
+// function EM_UnknownStep(ReportFileName)
+// -----------------------------------------------------------------
+//
+// Input data:
+// //NUT: Add description here
+//
+// Output data:
+// //NUT: Add description here
+//
+// Status:
+// 13-Feb-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+PrintStringInfo(' ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: SCI2C forbids use of step values in ""for"" loops which come from ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: a function or an operation.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Always specify its value.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Example: ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Scilab Code:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: unkstep = 2*cos(0); // It means that unkstep is not known at translation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: The code above is not allowed. You can change it as shown below:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: unkstep = 2; // This time the value of unkstep is known at translation time.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: The reason for this limitation is related to the impossibility to generate optimized C code.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: when the step is unknown.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Look at the following example for more details,',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Scilab Code:;',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for cnt=10:unkstep:1',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: end',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: If unkstep variable value is unkwnown it is not possible to generate',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: optimized C code.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Infact, if unkstep is >= 0, the correct C code is:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: If unkstep is < 0 the correct C code is:',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10; cnt>=1; cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Note how the condition cnt<=1 changes to cnt>=1.',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: In order to take into account of this possibility ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: SCI2C translator should generate both codes and then ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: insert them into an if/else block as shown here: ',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: if (unkstep >= 0)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: {',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: }',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: else{',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: {',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: for (cnt=10;cnt<=1;cnt+=unkstep)',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: disp(cnt);',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: }',ReportFileName,'both','y');
+PrintStringInfo('SCI2CERROR: Of course it is not optimized C code.',ReportFileName,'both','y');
+PrintStringInfo(' ',ReportFileName,'both','y');
+SCI2Cerror(' ');
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ErrorMessages/EM_ZeroSize.sci b/src/Scilab2C/Scilab2C/ErrorMessages/EM_ZeroSize.sci
new file mode 100644
index 00000000..fede8f0d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ErrorMessages/EM_ZeroSize.sci
@@ -0,0 +1,27 @@
+function EM_ZeroSize(ReportFileName)
+// function EM_ZeroSize(ReportFileName)
+// -----------------------------------------------------------------
+//
+// Input data:
+// //NUT: Add description here
+//
+// Output data:
+// //NUT: Add description here
+//
+// Status:
+// 13-Feb-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+PrintStringInfo('SCI2CERROR: Cannot handle zero-size arrays.',ReportFileName,'both','y');
+PrintStringInfo(' ',ReportFileName,'both','y');
+SCI2Cerror(' ');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_ADD.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_ADD.sci
new file mode 100644
index 00000000..0c056c1f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_ADD.sci
@@ -0,0 +1,29 @@
+function opout = FA_ADD(in1,in2)
+// function opout = FA_ADD(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+if (SCI2Cisnum(in1) & SCI2Cisnum(in2))
+ in1num = eval(in1);
+ in2num = eval(in2);
+ outnum = in1num+in2num;
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+else
+ opout = string(in1+'+'+in2);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_DIV.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_DIV.sci
new file mode 100644
index 00000000..2460ee77
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_DIV.sci
@@ -0,0 +1,27 @@
+function opout = FA_DIV(in1,in2)
+// function opout = FA_DIV(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+if (SCI2Cisnum(in1) & SCI2Cisnum(in2))
+ in1num = eval(in1);
+ in2num = eval(in2);
+ outnum = in1num/in2num;
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+else
+ opout = string(in1)+'/'+string(in2);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetDefaultPrecision.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetDefaultPrecision.sci
new file mode 100644
index 00000000..5c27c641
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetDefaultPrecision.sci
@@ -0,0 +1,43 @@
+function defaultprecision = FA_GetDefaultPrecision(scifilename,ReportFileName)
+// function defaultprecision = FA_GetDefaultPrecision(scifilename,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Feb-2008 -- Raffaele Nutricato: Author.
+// 12-Feb-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+defaultprecision = 'd';
+annotationstring = '//SCI2C: DEFAULT_PRECISION='
+
+scifid = SCI2COpenFileRead(scifilename);
+
+foundannotation = 0;
+line_position = 0;
+while ((meof(scifid) == 0) & (foundannotation == 0))
+ check_string = stripblanks(mgetl(scifid,1));
+ line_position = line_position + 1;
+ if (~isempty(check_string))
+
+ if (SCI2Cstrncmps1size(annotationstring,check_string))
+ tmpprecision = stripblanks(part(check_string,length(annotationstring)+1:length(check_string)));
+ foundannotation = 1;
+ end
+ end
+end
+
+if (foundannotation == 0)
+else
+ if (tmpprecision == 'FLOAT')
+ defaultprecision = 's';
+ elseif (tmpprecision == 'DOUBLE')
+ defaultprecision = 'd';
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetFunAnn.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetFunAnn.sci
new file mode 100644
index 00000000..08248966
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetFunAnn.sci
@@ -0,0 +1,129 @@
+function [FunTypeAnnot,FunSizeAnnot] = ...
+ FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
+// function [FunTypeAnnot,FunSizeAnnot] = ...
+// FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+SCI2CClassFileName = GetClsFileName(FunName,FileInfo,SharedInfo);
+FunTypeAnnot = '';
+FunSizeAnnot = '';
+inclsfid = SCI2COpenFileRead(SCI2CClassFileName);
+
+FoundNIn = 0;
+FoundNOut = 0;
+line_position = 0;
+while ((meof(inclsfid) == 0) & (FoundNIn == 0) & (FoundNOut == 0))
+ check_string = stripblanks(mgetl(inclsfid,1));
+ line_position = line_position + 1;
+ if (~isempty(check_string))
+
+ if (SCI2Cstrncmps1size(SharedInfo.Annotations.FUNNIN,check_string))
+ FUNNINAnnot = part(check_string,length(SharedInfo.Annotations.FUNNIN)+1:length(check_string));
+ if (eval(FUNNINAnnot) == NInArg)
+ FoundNIn = 1;
+ check_string = stripblanks(mgetl(inclsfid,1));
+ line_position = line_position + 1;
+ if (~isempty(check_string))
+
+ if (SCI2Cstrncmps1size(SharedInfo.Annotations.FUNNOUT,check_string))
+ FUNNOUTAnnot = part(check_string,length(SharedInfo.Annotations.FUNNOUT)+1:length(check_string));
+
+ if (eval(FUNNOUTAnnot) == NOutArg)
+ FoundNOut = 1;
+ else
+ FoundNIn = 0;
+ end
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Incorrect format for function annotation.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Expected '+SharedInfo.Annotations.FUNNIN+' field in the annotations of the function.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Incorrect format for function annotation.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Expected '+SharedInfo.Annotations.FUNNIN+' field in the annotations of the function.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ end
+ end
+ end
+end
+
+if (FoundNOut*FoundNIn == 0)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please check file: '+SCI2CClassFileName,ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Incorrect function annotation.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: There are two possibilities:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: 1. Syntax error in function annotations.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: 2. Missing the right combination of NIN/NOUT annotations: ""'+SharedInfo.Annotations.FUNNIN+string(NInArg)+','+SharedInfo.Annotations.FUNNOUT+' '+string(NOutArg)+'"".',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+else
+ for cntout = 1:NOutArg
+ SCI2C_nout=cntout; // Useful for eval.
+
+ check_string = stripblanks(mgetl(inclsfid,1));
+ line_position = line_position + 1;
+ if (isempty(check_string) == %F)
+ tmpannstring = eval(SharedInfo.Annotations.FUNTYPE);
+ if (SCI2Cstrncmps1size(tmpannstring,check_string))
+ FunTypeAnnot(cntout) = ...
+ stripblanks(part(check_string,length(tmpannstring)+1:length(check_string)));
+ end
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Line '+string(line_position)+' Function type annotation not found in file: '+SCI2CClassFileName,ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+
+ SCI2C_nelem = 1; // Useful for eval.
+ line_position = line_position + 1;
+ if (isempty(check_string) == %F)
+ tmpannstring = eval(SharedInfo.Annotations.FUNSIZE);
+ check_string = stripblanks(mgetl(inclsfid,1));
+ if (SCI2Cstrncmps1size(tmpannstring,check_string))
+ FunSizeAnnot(cntout,1) = ...
+ stripblanks(part(check_string,length(tmpannstring)+1:length(check_string)));
+ end
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Line '+string(line_position)+' Function size annotation not found in file: '+SCI2CClassFileName,ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ SCI2C_nelem = 2;
+ line_position = line_position + 1;
+ if (isempty(check_string) == %F)
+ tmpannstring = eval(SharedInfo.Annotations.FUNSIZE);
+ check_string = stripblanks(mgetl(inclsfid,1));
+ if (SCI2Cstrncmps1size(tmpannstring,check_string))
+ FunSizeAnnot(cntout,2) = ...
+ stripblanks(part(check_string,length(tmpannstring)+1:length(check_string)));
+ end
+ else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Line '+string(line_position)+' Function type annotation (//_SCI2C_FUNSIZE:) not found in file: '+SCI2CClassFileName,ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ end
+end
+mclose(inclsfid);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetOutArgInfo.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetOutArgInfo.sci
new file mode 100644
index 00000000..9aadf4a2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_GetOutArgInfo.sci
@@ -0,0 +1,104 @@
+function UpdatedOutArg = ...
+ FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,ReportFileName)
+// function UpdatedOutArg = ...
+// FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 25-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),9,9);
+
+UpdatedOutArg = OutArg;
+for cntin = 1:NInArg
+ IN(cntin).TP = InArg(cntin).Type;
+ IN(cntin).SZ(1) = InArg(cntin).Size(1);
+ IN(cntin).SZ(2) = InArg(cntin).Size(2);
+ if ((isnan(InArg(cntin).Value)) & (GetSymbolDimension(InArg(cntin).Size) == 0))
+ IN(cntin).VAL = InArg(cntin).Name;
+ else
+ IN(cntin).VAL = string(InArg(cntin).Value);
+ end
+end
+DefaultPrecision = SharedInfo.DefaultPrecision;
+
+if (mtlb_strcmp(FunTypeAnnot(1),''))
+ NOutArg = 0;
+else
+ NOutArg = max(size(FunTypeAnnot));
+end
+
+flagfindlike = 0;
+for counterin = 1:NInArg
+ if (InArg(counterin).FindLike == 1 | InArg(counterin).FindLike == -1)
+ flagfindlike = -1;
+ end
+end
+
+for counterout = 1:NOutArg
+ if(mtlb_strcmp(FunTypeAnnot,'FA_TP_USER'))
+ UpdatedOutArg(counterout).Type = FA_TP_USER(FunPrecSpecifier,DefaultPrecision);
+ else
+ UpdatedOutArg(counterout).Type = eval(FunTypeAnnot(counterout));
+ end
+ UpdatedOutArg(counterout).FindLike = 0;
+ lengthFA_SZ_RTMAX = length('FA_SZ_RTMAX');
+
+ if (SCI2Cstrncmps1size('FA_SZ_RTMAX',FunSizeAnnot(counterout,1)))
+ UpdatedOutArg(counterout).FindLike = 1;
+ FunSizeAnnot(counterout,1) = part(FunSizeAnnot(counterout,1),lengthFA_SZ_RTMAX+1:length(FunSizeAnnot(counterout,1)));
+ end
+
+ if (SCI2Cstrncmps1size('FA_SZ_RTMAX',FunSizeAnnot(counterout,2)))
+ UpdatedOutArg(counterout).FindLike = 1;
+ FunSizeAnnot(counterout,2) = part(FunSizeAnnot(counterout,2),lengthFA_SZ_RTMAX+1:length(FunSizeAnnot(counterout,2)));
+ end
+
+ if (flagfindlike == -1)
+ UpdatedOutArg(counterout).FindLike = -1;
+ end
+
+ tmpeval = eval(FunSizeAnnot(counterout,1));
+ if (IsNanSize(tmpeval))
+ if SharedInfo.ForExpr.OnExec == 0
+ EM_NanSize(ReportFileName);
+ else
+ UpdatedOutArg(counterout).Size(1) = string(tmpeval);
+ end
+ elseif(SCI2Cisnum(tmpeval))
+ if (eval(tmpeval) <= 0)
+ EM_ZeroSize(ReportFileName);
+ else
+ UpdatedOutArg(counterout).Size(1) = string(tmpeval);
+ end
+ else
+ UpdatedOutArg(counterout).Size(1) = string(tmpeval);
+ end
+
+ tmpeval = eval(FunSizeAnnot(counterout,2));
+ if (IsNanSize(tmpeval))
+ if SharedInfo.ForExpr.OnExec == 0
+ EM_NanSize(ReportFileName);
+ else
+ UpdatedOutArg(counterout).Size(2) = string(tmpeval);
+ end
+ elseif(SCI2Cisnum(tmpeval))
+ if (eval(tmpeval) <= 0)
+ EM_ZeroSize(ReportFileName);
+ else
+ UpdatedOutArg(counterout).Size(2) = string(tmpeval);
+ end
+ else
+ UpdatedOutArg(counterout).Size(2) = string(tmpeval);
+ end
+
+ UpdatedOutArg(counterout).Value = %nan;
+ UpdatedOutArg(counterout).Dimension = GetSymbolDimension(UpdatedOutArg(counterout).Size);
+ UpdatedOutArg(counterout).Scope = 'Temp';//NUT anche su questo si puo' ragionare verifica anche la handleoperation.
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_INT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_INT.sci
new file mode 100644
index 00000000..9c42b579
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_INT.sci
@@ -0,0 +1,25 @@
+function opout = FA_INT(in1)
+// function opout = FA_INT(in1)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+if (SCI2Cisnum(in1))
+ outnum = int(eval(in1));
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+else
+ opout = in1;
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MAX.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MAX.sci
new file mode 100644
index 00000000..1e0571b8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MAX.sci
@@ -0,0 +1,35 @@
+function opout = FA_MAX(in1,in2)
+// function opout = FA_MAX(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+SCI2Cerror('Not allowed to use FA_MAX in this release.');
+
+if (SCI2Cisnum(in1))
+ in1num = eval(in1);
+ if (SCI2Cisnum(in2))
+ in2num = eval(in2);
+ outnum = max(in1num,in2num);
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+ else
+ if (in1num == 1)
+ opout = string(in2);
+ end
+ end
+else
+ opout = string(in1);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MUL.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MUL.sci
new file mode 100644
index 00000000..096c6c1e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_MUL.sci
@@ -0,0 +1,34 @@
+function opout = FA_MUL(in1,in2)
+// function opout = FA_MUL(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (SCI2Cisnum(in1) & SCI2Cisnum(in2))
+ in1num = eval(in1);
+ in2num = eval(in2);
+ outnum = in1num*in2num;
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+else
+ opout = string(in1)+'*'+string(in2);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SUB.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SUB.sci
new file mode 100644
index 00000000..c7f8d902
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SUB.sci
@@ -0,0 +1,33 @@
+function opout = FA_SUB(in1,in2)
+// function opout = FA_SUB(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (SCI2Cisnum(in1) & SCI2Cisnum(in2))
+ in1num = eval(in1);
+ in2num = eval(in2);
+ outnum = in1num-in2num;
+ if isnan(outnum)
+ opout = '__SCI2CNANSIZE';
+ else
+ opout = string(outnum);
+ end
+else
+ opout = string(in1)+'-'+string(in2);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci
new file mode 100644
index 00000000..3e9ee878
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci
@@ -0,0 +1,10 @@
+function outsize = FA_SZ_1(insize)
+// function outsize = FA_SZ_1(insize)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(1);
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci
new file mode 100644
index 00000000..414dcc01
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci
@@ -0,0 +1,10 @@
+function outsize = FA_SZ_2(insize)
+// function outsize = FA_SZ_2(insize)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(2);
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPAPEX.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPAPEX.sci
new file mode 100644
index 00000000..08da38dc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPAPEX.sci
@@ -0,0 +1,24 @@
+function opoutsize = FA_SZ_OPAPEX(in1size)
+// function opoutsize = FA_SZ_OPAPEX(in1size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Jan-2008 -- Raffaele Nutricato: Author.
+// 08-Jan-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+opoutsize(1) = string(in1size(2));
+opoutsize(2) = string(in1size(1));
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci
new file mode 100644
index 00000000..bc9edffb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci
@@ -0,0 +1,37 @@
+function opoutsize = FA_SZ_OPBACKSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPBACKSLASH(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Alberto Morea: Author.
+// 08-Mar-2008 -- Raffaele Nutricato: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+in1size=string(in1size);
+in2size=string(in2size);
+
+// --- Get dimensions of input arguments. ---
+in1dim = GetSymbolDimension(in1size);
+in2dim = GetSymbolDimension(in2size);
+
+if (in1dim == 0)
+ opoutsize = in2size;
+elseif (in2dim == 0)
+ opoutsize = in1size;
+else
+ opoutsize(1) = in1size(2);
+ opoutsize(2) = in2size(2);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPCC.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPCC.sci
new file mode 100644
index 00000000..8c00aec0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPCC.sci
@@ -0,0 +1,38 @@
+function opoutsize = FA_SZ_OPCC(in1size,in2size)
+// function opoutsize = FA_SZ_OPCC(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1size = string(in1size);
+in2size = string(in2size);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+// --- Get dimensions of input arguments. ---
+in1dim = GetSymbolDimension(in1size);
+in2dim = GetSymbolDimension(in2size);
+
+if (SCI2Cisnum(in1size(1)) & SCI2Cisnum(in2size(1)))
+ in1num = eval(in1size(1));
+ in2num = eval(in2size(1));
+ opoutsize(1) = string(in1num+in2num);
+else
+ opoutsize(1) = string(in1size(1))+'+'+string(in2size(1));
+end
+
+opoutsize(2) = in1size(2);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci
new file mode 100644
index 00000000..43675822
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci
@@ -0,0 +1,13 @@
+function opoutsize = FA_SZ_OPDOTAPEX(in1size)
+// function opoutsize = FA_SZ_OPDOTAPEX(in1size)
+// -----------------------------------------------------------------
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTAPEX(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci
new file mode 100644
index 00000000..21502c0b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci
@@ -0,0 +1,14 @@
+function opoutsize = FA_SZ_OPDOTBACKSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTBACKSLASH(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTHAT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTHAT.sci
new file mode 100644
index 00000000..af522bac
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTHAT.sci
@@ -0,0 +1,43 @@
+function opoutsize = FA_SZ_OPDOTHAT(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTHAT(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPDOTHAT operator.
+//
+// Assuming:
+// size(in1) = [in1r,in1c]
+// size(in2) = [in2r,in2c]
+// size(out) = [outr,outc]
+//
+// we have the following combinations:
+// in1 in2 outr outc
+// -----------------------
+// S S in2r in2c
+// S M in2r in2c
+// M S in1r in1c
+// M M in1r in1c
+//
+// Where S means that the input is a scalar
+// and M means that the input is a matrix.
+//
+// Input data:
+// in1size: size of input number 1. It is an array of 2 strings.
+// The first string specifies the number of rows.
+// The second string specifies the number of columns.
+//
+// in2size: size of input number 2. It is an array of 2 strings.
+// The first string specifies the number of rows.
+// The second string specifies the number of columns.
+//
+// Output data:
+// opoutsize: size of output. It is an array of 2 strings.
+// The first string specifies the number of rows.
+// The second string specifies the number of columns.
+//
+// Status:
+// 10-Dec-2007 -- Raffaele Nutricato: Author.
+// 10-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci
new file mode 100644
index 00000000..b30e3f29
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci
@@ -0,0 +1,15 @@
+function opoutsize = FA_SZ_OPDOTSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTSLASH(in1size,in2size)
+// -----------------------------------------------------------------
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci
new file mode 100644
index 00000000..7b326fb6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci
@@ -0,0 +1,22 @@
+function opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size)
+// -----------------------------------------------------------------
+// Status:
+// 08-Jan-2008 -- Raffaele Nutricato: Author.
+// 08-Jan-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1dim = GetSymbolDimension(in1size);
+
+if (in1dim == 0)
+ opoutsize = string(in2size);
+else
+ opoutsize = string(in1size);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPHAT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPHAT.sci
new file mode 100644
index 00000000..8de8672b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPHAT.sci
@@ -0,0 +1,12 @@
+function opoutsize = FA_SZ_OPHAT(in1size,in2size)
+// function opoutsize = FA_SZ_OPHAT(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 10-Dec-2007 -- Raffaele Nutricato: Author.
+// 10-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGAND.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGAND.sci
new file mode 100644
index 00000000..8cf7530c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGAND.sci
@@ -0,0 +1,15 @@
+function opoutsize = FA_SZ_OPLOGAND(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGAND(in1size,in2size)
+// -----------------------------------------------------------------
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGEQ.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGEQ.sci
new file mode 100644
index 00000000..f6ce325a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGEQ.sci
@@ -0,0 +1,13 @@
+function opoutsize = FA_SZ_OPLOGEQ(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGEQ(in1size,in2size)
+// -----------------------------------------------------------------
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGE.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGE.sci
new file mode 100644
index 00000000..4bcac9da
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGE.sci
@@ -0,0 +1,14 @@
+function opoutsize = FA_SZ_OPLOGGE(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGGE(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGT.sci
new file mode 100644
index 00000000..745ce6c5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGGT.sci
@@ -0,0 +1,14 @@
+function opoutsize = FA_SZ_OPLOGGT(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGGT(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLE.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLE.sci
new file mode 100644
index 00000000..edda359f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLE.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGLE(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGLE(in1size,in2size)
+// -----------------------------------------------------------------
+// Alias of FA_SZ_OPDOTSTAR.
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLT.sci
new file mode 100644
index 00000000..81b1b256
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGLT.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGLT(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGLT(in1size,in2size)
+// -----------------------------------------------------------------
+// Alias of FA_SZ_OPDOTSTAR.
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNE.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNE.sci
new file mode 100644
index 00000000..ff62abbf
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNE.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGNE(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGNE(in1size,in2size)
+// -----------------------------------------------------------------
+// Alias of FA_SZ_OPDOTSTAR.
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNOT.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNOT.sci
new file mode 100644
index 00000000..3b0c6549
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGNOT.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGNOT(in1size)
+// function opoutsize = FA_SZ_OPLOGNOT(in1size)
+// -----------------------------------------------------------------
+// Alias of FA_SZ_OPDOTAPEX.
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTAPEX(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGOR.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGOR.sci
new file mode 100644
index 00000000..bbdfce45
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPLOGOR.sci
@@ -0,0 +1,14 @@
+function opoutsize = FA_SZ_OPLOGOR(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGOR(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPMINUS.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPMINUS.sci
new file mode 100644
index 00000000..d049223d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPMINUS.sci
@@ -0,0 +1,17 @@
+function opoutsize = FA_SZ_OPMINUS(in1size,in2size)
+// function opoutsize = FA_SZ_OPMINUS(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+opoutsize = FA_SZ_OPPLUSA(in1size,in2size);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUS.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUS.sci
new file mode 100644
index 00000000..80c9dd3c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUS.sci
@@ -0,0 +1,50 @@
+function opoutsize = FA_SZ_OPPLUS(in1size,in2size,in1type,in2type)
+// function opoutsize = FA_SZ_OPPLUS(in1size,in2size,in1type,in2type)
+// -----------------------------------------------------------------
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),4,4);
+
+in1size = string(in1size);
+in2size = string(in2size);
+in1type = string(in1type);
+in2type = string(in2type);
+in1dim = GetSymbolDimension(in1size);
+
+if ((in1type ~= 'g') & (in2type ~= 'g'))
+ opoutsize = FA_SZ_OPPLUSA(in1size,in2size);
+elseif ((in1type == 'g') & (in2type == 'g'))
+ opoutsize(1) = '1';
+ if (SCI2Cisnum(in1size(1)) & SCI2Cisnum(in2size(1)))
+ in1num = eval(in1size(1));
+ in2num = eval(in2size(1));
+ if (in1num > 1 | in2num > 1)
+ SCI2Cerror('String catenation can be performed only on strings of 1 x N size not N x 1 size');
+ end
+ end
+ if (SCI2Cisnum(in1size(2)) & SCI2Cisnum(in2size(2)))
+ in1num = eval(in1size(2));
+ in2num = eval(in2size(2));
+ opoutsize(2) = string(in1num+in2num-1);
+ if isnan(opoutsize(2))
+ opoutsize(2) = '__SCI2CNANSIZE';
+ else
+ opoutsize(2) = string(opoutsize(2));
+ end
+ else
+ opoutsize(2) = string(in1size(2))+'+'+string(in2size(2))+'-1';
+ end
+else
+ SCI2Cerror('Unexpected type combination for ""+"" operator (type1,type2): ('+in1type+in2type+').');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUSA.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUSA.sci
new file mode 100644
index 00000000..4d9e868c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPPLUSA.sci
@@ -0,0 +1,28 @@
+function opoutsize = FA_SZ_OPPLUSA(in1size,in2size)
+// function opoutsize = FA_SZ_OPPLUSA(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 18-Mar-2008 -- Raffaele Nutricato: Author.
+// 18-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1size = string(in1size);
+in2size = string(in2size);
+in1dim = GetSymbolDimension(in1size);
+
+if (in1dim == 0)
+ opoutsize = in2size;
+else
+ opoutsize = in1size;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPRC.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPRC.sci
new file mode 100644
index 00000000..56a77677
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPRC.sci
@@ -0,0 +1,32 @@
+function opoutsize = FA_SZ_OPRC(in1size,in2size)
+// function opoutsize = FA_SZ_OPRC(in1size,in2size)
+// -----------------------------------------------------------------
+//
+//
+// Status:
+// 08-Mar-2008 -- Raffaele Nutricato: Author.
+// 08-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1size = string(in1size);
+in2size = string(in2size);
+
+in1dim = GetSymbolDimension(in1size);
+in2dim = GetSymbolDimension(in2size);
+
+opoutsize(1) = in1size(1);
+
+if (SCI2Cisnum(in1size(2)) & SCI2Cisnum(in2size(2)))
+ in1num = eval(in1size(2));
+ in2num = eval(in2size(2));
+ opoutsize(2) = string(in1num+in2num);
+else
+ opoutsize(2) = string(in1size(2))+'+'+string(in2size(2));
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPSTAR.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPSTAR.sci
new file mode 100644
index 00000000..1fe0f7b4
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_OPSTAR.sci
@@ -0,0 +1,30 @@
+function opoutsize = FA_SZ_OPSTAR(in1size,in2size)
+// function opoutsize = FA_SZ_OPSTAR(in1size,in2size)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1size = string(in1size);
+in2size = string(in2size);
+
+in1dim = GetSymbolDimension(in1size);
+in2dim = GetSymbolDimension(in2size);
+
+if (in1dim == 0)
+ opoutsize = in2size;
+elseif (in2dim == 0)
+ opoutsize = in1size;
+else
+ opoutsize(1) = in1size(1);
+ opoutsize(2) = in2size(2);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL1.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL1.sci
new file mode 100644
index 00000000..26404323
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL1.sci
@@ -0,0 +1,29 @@
+function opout = FA_SZ_SEL1(in1,in2)
+// function opout = FA_SZ_SEL1(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 16-Mar-2008 -- Raffaele Nutricato: Author.
+// 16-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+ReportFileName = '';
+in2 = string(in2);
+
+if (in2 == '1')
+ opout = '1';
+elseif (in2 == '2')
+ opout = in1;
+else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Cannot associate the second input argument to a known specifier.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please rearrange your code by using one of the following specifiers:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: 1 or 2.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL2.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL2.sci
new file mode 100644
index 00000000..8ba07a06
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_SEL2.sci
@@ -0,0 +1,29 @@
+function opout = FA_SZ_SEL2(in1,in2)
+// function opout = FA_SZ_SEL2(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 16-Mar-2008 -- Raffaele Nutricato: Author.
+// 16-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+ReportFileName = '';
+in2 = string(in2);
+
+if (in2 == '1')
+ opout = in1;
+elseif (in2 == '2')
+ opout = '1';
+else
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Cannot associate the second input argument to a known specifier.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please rearrange your code by using one of the following specifiers:',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: 1 or 2.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_C.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_C.sci
new file mode 100644
index 00000000..db30d6b0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_C.sci
@@ -0,0 +1,21 @@
+function typeout = FA_TP_C()
+// function typeout = FA_TP_C()
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+typeout = 'c';
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_COMPLEX.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_COMPLEX.sci
new file mode 100644
index 00000000..10843939
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_COMPLEX.sci
@@ -0,0 +1,26 @@
+function typeout = FA_TP_COMPLEX(in1)
+// function typeout = FA_TP_COMPLEX(in1)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Jan-2008 -- Raffaele Nutricato: Author.
+// 26-Jan-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+if (in1 == 's')
+ typeout = 'c';
+elseif (in1 == 'd')
+ typeout = 'z';
+else
+ typeout = in1;
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_D.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_D.sci
new file mode 100644
index 00000000..b59187bc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_D.sci
@@ -0,0 +1,21 @@
+function typeout = FA_TP_D()
+// function typeout = FA_TP_D()
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+typeout = 'd';
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_I.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_I.sci
new file mode 100644
index 00000000..5ed5871e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_I.sci
@@ -0,0 +1,21 @@
+function typeout = FA_TP_I()
+// function typeout = FA_TP_I()
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+typeout = 'i';
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_MAX.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_MAX.sci
new file mode 100644
index 00000000..51bad937
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_MAX.sci
@@ -0,0 +1,31 @@
+function opout = FA_TP_MAX(in1,in2)
+// function opout = FA_TP_MAX(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+in1Pin2 = in1+in2;
+opout = in1;
+
+if (in2 == 'z')
+ opout = 'z';
+elseif (in1Pin2 == 'sd')
+ opout = 'd';
+elseif (in1Pin2 == 'sc')
+ opout = 'c';
+elseif (in1Pin2 == 'dc')
+ opout = 'z';
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_REAL.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_REAL.sci
new file mode 100644
index 00000000..c82c54c2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_REAL.sci
@@ -0,0 +1,26 @@
+function opout = FA_TP_REAL(in1)
+// function opout = FA_TP_REAL(in1)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Mar-2008 -- Raffaele Nutricato: Author.
+// 26-Mar-2008 -- Alberto Morea: Test Ok.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+opout = in1;
+
+if (in1 == 'c')
+ opout = 's';
+elseif (in1 == 'z')
+ opout = 'd';
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_S.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_S.sci
new file mode 100644
index 00000000..603def8f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_S.sci
@@ -0,0 +1,20 @@
+function typeout = FA_TP_S()
+// function typeout = FA_TP_S()
+// -----------------------------------------------------------------
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+typeout = 's';
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_USER.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_USER.sci
new file mode 100644
index 00000000..9239c349
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_USER.sci
@@ -0,0 +1,23 @@
+function type_out = FA_TP_USER(PrecisionSpecifier,DefaultType)
+// function type_out = FA_TP_USER(PrecisionSpecifier,DefaultType)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+if (mtlb_strcmp(PrecisionSpecifier,'int'))
+ type_out = 'i';
+elseif (mtlb_strcmp(PrecisionSpecifier,'float'))
+ type_out = 's';
+elseif (mtlb_strcmp(PrecisionSpecifier,'double'))
+ type_out = 'd';
+elseif (mtlb_strcmp(PrecisionSpecifier,'default'))
+ type_out = DefaultType;
+else
+ SCI2Cerror('Unknown precision function: ""'+AnnotationFnc+'"".');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_Z.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_Z.sci
new file mode 100644
index 00000000..b94a1bff
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_TP_Z.sci
@@ -0,0 +1,24 @@
+function typeout = FA_TP_Z()
+// function typeout = FA_TP_Z()
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'z';
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_ExistCFunction.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_ExistCFunction.sci
new file mode 100644
index 00000000..bd8ab561
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_ExistCFunction.sci
@@ -0,0 +1,73 @@
+function flagexist = FL_ExistCFunction(CFunName,USER2CAvailableCDat,SCI2CAvailableCDat,ConvertedDat,ToBeConvertedDat,ReportFileName)
+// function flagexist = FL_ExistCFunction(CFunName,USER2CAvailableCDat,SCI2CAvailableCDat,ConvertedDat,ToBeConvertedDat,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 30-Oct-2007 -- Raffaele Nutricato: Author.
+// 30-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),6,6);
+
+flagexist = %F;
+
+
+AvailableDat = USER2CAvailableCDat;
+load(AvailableDat,'Available');
+NAvail = size(Available,1);
+
+tmpcnt = 1;
+while ((tmpcnt <=NAvail) & (flagexist == %F))
+ if mtlb_strcmp(Available(tmpcnt),CFunName)
+ flagexist = %T;
+ end
+ tmpcnt = tmpcnt + 1;
+end
+clear Available
+
+if (flagexist == %F)
+ AvailableDat = SCI2CAvailableCDat;
+ load(AvailableDat,'Available');
+ NAvail = size(Available,1);
+
+ tmpcnt = 1;
+ while ((tmpcnt <=NAvail) & (flagexist == %F))
+ if mtlb_strcmp(Available(tmpcnt),CFunName)
+ flagexist = %T;
+ end
+ tmpcnt = tmpcnt + 1;
+ end
+ clear Available
+end
+
+if (flagexist == %F)
+ load(ConvertedDat,'Converted');
+ NConv = size(Converted,1);
+ tmpcnt = 1;
+ while ((tmpcnt <=NConv) & (flagexist == %F))
+ if mtlb_strcmp(Converted(tmpcnt),CFunName)
+ flagexist = %T;
+ end
+ tmpcnt = tmpcnt + 1;
+ end
+ clear Converted
+end
+
+if (flagexist == %F)
+ load(ToBeConvertedDat,'ToBeConverted');
+ NToBeConv = size(ToBeConverted,1);
+ tmpcnt = 1;
+ while ((tmpcnt <=NToBeConv) & (flagexist == %F))
+ if mtlb_strcmp(ToBeConverted(tmpcnt).CFunctionName,CFunName)
+ flagexist = %T;
+ end
+ tmpcnt = tmpcnt + 1;
+ end
+ clear ToBeConverted
+end
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_ExtractFuncList.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_ExtractFuncList.sci
new file mode 100644
index 00000000..4c2f2daf
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_ExtractFuncList.sci
@@ -0,0 +1,37 @@
+function [CFuncList,NElements] = FL_ExtractFuncList(FunctionDir,ClassDir,SCI2CClassSpecifier,ExtFLCls,ReportFileName)
+// function [CFuncList,NElements] = FL_ExtractFuncList(FunctionDir,ClassDir,SCI2CClassSpecifier,ExtFLCls,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 05-Jan-2008 -- Nutricato Raffaele: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+tmppwd = pwd();
+cd(FunctionDir);
+funfiles = ls();
+cd(tmppwd);
+NFunFiles = size(funfiles,1);
+
+CFuncList = '';
+NElements = 0;
+
+for cntfun = 1:NFunFiles
+ FunFileName = fullfile(FunctionDir,funfiles(cntfun));
+ ClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName);
+ ClassFileName = fullfile(ClassDir,ClassName);
+ [tmpfunlist,tmpnelem] = File2StringArray(ClassFileName+ExtFLCls);
+ [tmppath,tmpfunname,tmpext] = fileparts(FunFileName);
+ tmpfunlist = FL_InOutArgs2CFunNames(tmpfunname,tmpfunlist,tmpnelem);
+ for cnttmpfun = 1:tmpnelem
+ NElements = NElements + 1;
+ CFuncList(NElements) = tmpfunlist(cnttmpfun);
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci
new file mode 100644
index 00000000..1d2185ad
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci
@@ -0,0 +1,34 @@
+function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
+// function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+inannfid = SCI2COpenFileRead(FunFileName);
+
+FoundClass = 0;
+if (meof(inannfid) == 0)
+ check_string = stripblanks(mgetl(inannfid,1));
+ if (~isempty(check_string))
+ if (SCI2Cstrncmps1size(SCI2CClassSpecifier,check_string))
+ SCI2CClassName = part(check_string,length(SCI2CClassSpecifier)+1:length(check_string));
+ FoundClass = 1;
+ else
+ SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" in '+FunFileName+'.',ReportFileName);
+ end
+ end
+end
+mclose(inannfid);
+if (FoundClass == 0)
+ SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" specifier.',ReportFileName);
+end
+
+endfunction
+ \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_InOutArgs2CFunNames.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_InOutArgs2CFunNames.sci
new file mode 100644
index 00000000..37cac8e3
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_InOutArgs2CFunNames.sci
@@ -0,0 +1,37 @@
+function FunNameCFuncList = FL_InOutArgs2CFunNames(FunctionName,CommaSepCFuncList,CFuncListNElem)
+// function FunNameCFuncList = FL_InOutArgs2CFunNames(FunctionName,CommaSepCFuncList,CFuncListNElem)
+// -----------------------------------------------------------------
+//
+// Status:
+// 05-Jan-2008 -- Nutricato Raffaele: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+
+FunNameCFuncList = '';
+SepChar = ',';
+for cntelem = 1:CFuncListNElem
+ tmptokens = tokens(CommaSepCFuncList(cntelem),SepChar);
+ if (size(tmptokens,1) == 0)
+ FunNameCFuncList(cntelem) = FunctionName;
+ elseif (size(tmptokens,1) == 1)
+ if part(tmptokens,1:1) == ','
+ FunNameCFuncList(cntelem) = FunctionName+tmptokens(2);
+ else
+ FunNameCFuncList(cntelem) = tmptokens(1)+FunctionName;
+ end
+ elseif (size(tmptokens,1) == 2)
+ FunNameCFuncList(cntelem) = tmptokens(1)+FunctionName+tmptokens(2);
+ else
+ disp('Incorrect format for the function list class.');
+ disp('Check the following function list class item: ""'+CommaSepCFuncList(cntelem)+'"".');
+ SCI2Cerror(' ');
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateConverted.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateConverted.sci
new file mode 100644
index 00000000..b2abd80d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateConverted.sci
@@ -0,0 +1,21 @@
+function Converted = FL_UpdateConverted(NFilesToTranslate,ConvertedDatFile)
+// function Converted = FL_UpdateConverted(NFilesToTranslate,ConvertedDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+load(ConvertedDatFile,'Converted');
+
+if (NFilesToTranslate >= 1)
+ NConvP1 = size(Converted,1)+1;
+ Converted(NConvP1) = SharedInfo.NextCFunName;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateToBeConv.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateToBeConv.sci
new file mode 100644
index 00000000..305b5091
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_UpdateToBeConv.sci
@@ -0,0 +1,55 @@
+function SharedInfo = FL_UpdateToBeConv(ASTFunName,CFunName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,FileInfo,SharedInfo)
+// function SharedInfo = FL_UpdateToBeConv(ASTFunName,CFunName,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,InArg,NInArg,OutArg,NOutArg,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),11,11);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+SCI2CAvailableCDat = FileInfo.FunctionList.SCI2CAvailableCDat;
+USER2CAvailableCDat = FileInfo.FunctionList.USER2CAvailableCDat;
+ConvertedDat = FileInfo.FunctionList.ConvertedDat;
+ToBeConvertedDat = FileInfo.FunctionList.ToBeConvertedDat;
+FunInfoDatDir = FileInfo.FunctionList.FunInfoDatDir;
+
+
+if (SharedInfo.SkipNextFun > 0)
+ PrintStringInfo(' Current function will not be inserted in the Function List.',ReportFileName,'file','y');
+ return;
+end
+
+if ((sum(mtlb_strcmp(ASTFunName,SharedInfo.Annotations.DataPrec)) > 0) & ...
+ (SharedInfo.SkipNextPrec == 1))
+ return;
+end
+
+if ((mtlb_strcmp(ASTFunName,'OpEqual')) & ...
+ (SharedInfo.SkipNextEqual == 1))
+ return;
+end
+
+flagexist = FL_ExistCFunction(CFunName,USER2CAvailableCDat,SCI2CAvailableCDat,ConvertedDat,ToBeConvertedDat,ReportFileName);
+
+if (flagexist == %F)
+
+ load(ToBeConvertedDat,'ToBeConverted');
+
+ NToConvP1 = size(ToBeConverted,1)+1;
+ ToBeConverted(NToConvP1).SCIFunctionName = ASTFunName;
+ ToBeConverted(NToConvP1).CFunctionName = CFunName;
+
+ save(ToBeConvertedDat,ToBeConverted);
+ SharedInfo.NFilesToTranslate = SharedInfo.NFilesToTranslate + 1;
+
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/Array2String.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/Array2String.sci
new file mode 100644
index 00000000..2b0bd2b9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/Array2String.sci
@@ -0,0 +1,26 @@
+function [StringArray] = Array2String(InArray);
+// function [StringArray] = Array2String(InArray);
+// -----------------------------------------------------------------
+//
+// Status:
+// 13-May-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+[Nrows,Ncols] = size(InArray);
+
+StringArray = '[';
+for counterrows = 1:Nrows
+ for countercols = 1:Ncols
+ StringArray = StringArray + string(InArray(counterrows,countercols)) + ',';
+ end
+ StringArray = part(StringArray,1:(length(StringArray)-1)); // Remove the last ','
+ StringArray = StringArray+';';
+end
+StringArray = part(StringArray,1:(length(StringArray)-1)); // Remove the last ';'
+StringArray = StringArray+']';
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/ConvertPathMat2C.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/ConvertPathMat2C.sci
new file mode 100644
index 00000000..0bd57c9b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/ConvertPathMat2C.sci
@@ -0,0 +1,48 @@
+function OutPath = ConvertPathMat2C(InPath,CPathStyle)
+// function OutPath = ConvertPathMat2C(InPath,CPathStyle)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Jan-2008 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+if (CPathStyle == 'windows')
+ OutPath=strsubst(InPath,'/','\');
+elseif (CPathStyle == 'unix')
+ OutPath=strsubst(InPath,'\','/');
+elseif (CPathStyle == 'cygwin')
+ OutPath=strsubst(InPath,'\','/');
+ OutPath=strsubst(OutPath,'A:','/cygdrive/a');
+ OutPath=strsubst(OutPath,'B:','/cygdrive/b');
+ OutPath=strsubst(OutPath,'C:','/cygdrive/c');
+ OutPath=strsubst(OutPath,'D:','/cygdrive/d');
+ OutPath=strsubst(OutPath,'E:','/cygdrive/e');
+ OutPath=strsubst(OutPath,'F:','/cygdrive/f');
+ OutPath=strsubst(OutPath,'G:','/cygdrive/g');
+ OutPath=strsubst(OutPath,'H:','/cygdrive/h');
+ OutPath=strsubst(OutPath,'I:','/cygdrive/i');
+ OutPath=strsubst(OutPath,'J:','/cygdrive/j');
+ OutPath=strsubst(OutPath,'K:','/cygdrive/k');
+ OutPath=strsubst(OutPath,'L:','/cygdrive/l');
+ OutPath=strsubst(OutPath,'M:','/cygdrive/m');
+ OutPath=strsubst(OutPath,'N:','/cygdrive/n');
+ OutPath=strsubst(OutPath,'O:','/cygdrive/o');
+ OutPath=strsubst(OutPath,'P:','/cygdrive/p');
+ OutPath=strsubst(OutPath,'Q:','/cygdrive/q');
+ OutPath=strsubst(OutPath,'R:','/cygdrive/r');
+ OutPath=strsubst(OutPath,'S:','/cygdrive/s');
+ OutPath=strsubst(OutPath,'T:','/cygdrive/t');
+ OutPath=strsubst(OutPath,'U:','/cygdrive/u');
+ OutPath=strsubst(OutPath,'V:','/cygdrive/v');
+ OutPath=strsubst(OutPath,'W:','/cygdrive/w');
+ OutPath=strsubst(OutPath,'X:','/cygdrive/x');
+ OutPath=strsubst(OutPath,'Y:','/cygdrive/y');
+ OutPath=strsubst(OutPath,'Z:','/cygdrive/z');
+else
+ OutPath = InPath;
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/File2StringArray.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/File2StringArray.sci
new file mode 100644
index 00000000..cf3cdda8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/File2StringArray.sci
@@ -0,0 +1,27 @@
+function [String_Array,N_Strings] = File2StringArray(InFileName)
+// function [String_Array,N_Strings] = File2StringArray(InFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 10-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+N_Strings = 0;
+String_Array = '';
+fidfile = SCI2COpenFileRead(InFileName);
+
+tmpline = mgetl(fidfile,1);
+while (meof(fidfile) == 0)
+ N_Strings = N_Strings + 1;
+ String_Array(N_Strings) = tmpline;
+ tmpline = mgetl(fidfile,1);
+end
+
+mclose(fidfile);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/FunName2SciFileName.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/FunName2SciFileName.sci
new file mode 100644
index 00000000..81672afa
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/FunName2SciFileName.sci
@@ -0,0 +1,37 @@
+function ScilabFileName = FunName2SciFileName(DirList,InFunName);
+// function ScilabFileName = FunName2SciFileName(DirList,InFunName);
+// -----------------------------------------------------------------
+// Status:
+// 16-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+if (prod(size(DirList)) == 0)
+ SCI2Cerror('Incorrect DirList parameter.');
+end
+
+if (prod(size(InFunName)) == 0)
+ SCI2Cerror('Incorrect InFunName parameter.');
+end
+
+for tmpcounter = 1:max(size(DirList))
+ PathList(tmpcounter) = fullfile(DirList(tmpcounter),(InFunName+'.sci'));
+end
+
+ScilabFileName = listfiles(PathList);
+
+if ((prod(size(ScilabFileName))) > 1)
+ disp(ScilabFileName);
+ SCI2Cerror('Found more than one scilab file.');
+end
+
+if ((prod(size(ScilabFileName))) < 1)
+ disp(ScilabFileName);
+ SCI2Cerror('Scilab file ""'+InFunName+'.sci"", not found');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/IsNanSize.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/IsNanSize.sci
new file mode 100644
index 00000000..5673e5ca
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/IsNanSize.sci
@@ -0,0 +1,22 @@
+function outbool = IsNanSize(instring)
+// function outbool = IsNanSize(instring)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Feb-2008 -- Nutricato Raffaele: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+outbool = %F;
+indexval = strindex(instring,'__SCI2CNANSIZE');
+
+if(length(indexval)>=1)
+ outbool = %T;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/KeyStr2FileStrPos.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/KeyStr2FileStrPos.sci
new file mode 100644
index 00000000..07c4b063
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/KeyStr2FileStrPos.sci
@@ -0,0 +1,58 @@
+function [flag_found,requested_line,line_position] = KeyStr2FileStrPos(filename,key_string,method)
+// function [flag_found,requested_line,line_position] = KeyStr2FileStrPos(filename,key_string,method)
+// --------------------------------------------------------------------------------
+//
+//
+// Status:
+// 08-Jul-2002 -- Author: Raffaele Nutricato
+// 08-Jul-2002 -- Raffaele Nutricato: Revision OK
+// 23-Nov-2004 -- Raffaele Nutricato: Changed disp to warning in if (flag_found == 0).
+// It allows to disable the message it generates
+// by using warning off.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,3);
+
+
+if (argn(2) == 2)
+ method = 'no_cut';
+end
+method = convstr(method, 'u');
+
+flag_found = 0;
+requested_line = '';
+line_position = 0;
+
+[fid,mess] = mopen(filename,'r');
+if ( fid == -1 )
+ disp(['Cannot open: '+filename])
+ disp(mess);
+ flag_found = 0;
+ return;
+end
+
+num_chars = length(key_string);
+while (meof(fid) == 0)
+ check_string = fgetl(fid);
+ line_position = line_position + 1;
+ if (key_string == check_string) & (key_string == num_chars) then
+ flag_found = 1;
+ requested_line = check_string;
+ if (method =='cut') then
+ requested_line(1:num_chars) = [];
+ end
+ mclose(fid);
+ return;
+ end
+end
+
+if (flag_found == 0)
+ warning('Warning: string ' + key_string + ' not found in file: ' + filename);
+ mclose(fid);
+end
+
+mclose(fid);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStepInfo.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStepInfo.sci
new file mode 100644
index 00000000..b9423f64
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStepInfo.sci
@@ -0,0 +1,54 @@
+function PrintStepInfo(inputstring,filename,outputtype)
+// function PrintStepInfo(inputstring,filename,outputtype)
+// -----------------------------------------------------------------
+// Output data:
+//
+// Status:
+// 02-Jan-2006 -- Nutricato Raffaele: Author.
+// 02-Jan-2006 -- Nutricato Raffaele: TEST OK.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,3);
+
+
+if argn(2) < 3
+ bothout = 'n';
+ if argn(2) < 2
+ filename = '';
+ end
+end
+if (length(filename) == 0)
+ outputtype = 'stdout'; // Prints only on the stdout.
+end
+
+Nstars = length(inputstring);
+starstring = [];
+for counterstars = 1:Nstars
+ starstring = starstring+'*';
+end
+blankstring = [' '];
+
+if ((outputtype=='both') | (outputtype=='stdout'))
+ // disp(' ')
+ // disp(' ')
+ disp(blankstring+' '+starstring);
+ disp(blankstring+'==> '+inputstring);
+ disp(blankstring+' '+starstring);
+ // disp(' ')
+end
+
+if ((outputtype=='both') | (outputtype=='file'))
+ filenamefprintf(filename,'y',' ');
+ filenamefprintf(filename,'y',' ');
+ filenamefprintf(filename,'y',blankstring+' '+starstring);
+ filenamefprintf(filename,'y',blankstring+'==> '+inputstring);
+ filenamefprintf(filename,'y',blankstring+' '+starstring);
+ filenamefprintf(filename,'y',' ');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStringInfo.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStringInfo.sci
new file mode 100644
index 00000000..6ccde3b2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/PrintStringInfo.sci
@@ -0,0 +1,45 @@
+function PrintStringInfo(str, filename, outputtype, ennewline)
+// function PrintStringInfo(str,filename,outputtype,ennewline)
+// -----------------------------------------------------------------
+//
+// Status:
+// 02-Jan-2006 -- Nutricato Raffaele: Author.
+// 02-Jan-2006 -- Nutricato Raffaele: TEST OK.
+// 02-May-2006 -- Nutricato Raffaele: Added ennewline.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),0,4);
+
+ if argn(2) < 4
+ ennewline = 'y';
+ if argn(2) < 3
+ outputtype = 'stdout';
+ if argn(2) < 2
+ filename = '';
+ if argn(2) < 1
+ str = '';
+ end
+ end
+ end
+ end
+
+ if (length(filename) == 0) then
+ outputtype = 'stdout'; // Prints only on the stdout.
+ end
+
+ if (outputtype=='both') | (outputtype=='stdout')
+ disp(str)
+ end
+
+ if (outputtype=='both') | (outputtype=='file')
+ if (ennewline=='y')
+ filenamefprintf(filename,'y',str);
+ else
+ filenamefprintf(filename,'n',str);
+ end
+ end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/ReadStringCard.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/ReadStringCard.sci
new file mode 100644
index 00000000..a934a833
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/ReadStringCard.sci
@@ -0,0 +1,39 @@
+function cardvalue = ReadStringCard(filename,cardname,commentdelim,enableerror)
+// function cardvalue = ReadStringCard(filename,cardname,commentdelim,enableerror)
+// -----------------------------------------------------------------
+//
+// Status:
+// 06-Feb-2004 -- Nutricato Raffaele: Author.
+// 06-Feb-2004 -- Nutricato Raffaele: TEST OK.
+// 25-Jun-2004 -- Nutricato Raffaele: Added Comment delimiter
+// and enableerror as input parameter.
+// 13-Apr-2007 -- Intelligente Fabio: Rewritten from Matlab to Scilab.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,3);
+
+if argn(2) == 2 then
+ commentdelim = ' ';
+ enableerror = 'y';
+
+elseif argn(2) == 3 then
+ enableerror = 'y';
+end
+
+[flag_found,requested_line,dummy2] = ...
+ KeyString2FileStringPos(filename,cardname,'cut');
+cardvalue = stripblanks(strtok(requested_line,commentdelim));
+clear requested_line dummy2
+
+if (flag_found == 0) then
+ if (enableerror == 'y') then
+ SCI2Cerror([cardname,' not found']);
+ else
+ warning([cardname,' not found']);
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CCreateDir.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CCreateDir.sci
new file mode 100644
index 00000000..8de1a683
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CCreateDir.sci
@@ -0,0 +1,21 @@
+function SCI2CCreateDir(OutDir)
+// function SCI2CCreateDir(OutDir)
+// -----------------------------------------------------------------
+//
+// Status:
+// 25-Jun-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+[tmppath,tmpfname,tmpextension]=fileparts(OutDir) ;
+
+status_dir = mkdir(tmppath,tmpfname+tmpextension) ;
+if (status_dir == 0)
+ SCI2Cerror('Cannot create: '+OutDir);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CFindFile.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CFindFile.sci
new file mode 100644
index 00000000..11b656ef
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CFindFile.sci
@@ -0,0 +1,28 @@
+function [FlagFound,SCIFileName] = SCI2CFindFile(PathList,FileName)
+// function [FlagFound,SCIFileName] = SCI2CFindFile(PathList,FileName)
+// -----------------------------------------------------------------
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+FlagFound = 0;
+SCIFileName = '';
+
+Nscipaths = size(PathList,1);
+counterscipaths = 1;
+while ((FlagFound == 0) & (counterscipaths <= Nscipaths))
+ dirscifilename = PathList(counterscipaths);
+ fullpathscifilename = fullfile(dirscifilename,FileName);
+ if (SCI2Cfileexist(dirscifilename,FileName))
+ FlagFound = 1;
+ SCIFileName = fullpathscifilename;
+ end
+ counterscipaths = counterscipaths + 1;
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CNInArgCheck.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CNInArgCheck.sci
new file mode 100644
index 00000000..971e1c71
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CNInArgCheck.sci
@@ -0,0 +1,16 @@
+function SCI2CNInArgCheck(NInArgs,MinNArgs,MaxNArgs)
+// function SCI2CNInArgCheck(NInArgs,MinNArgs,MaxNArgs)
+// -----------------------------------------------------------------
+//
+// Status:
+// 23-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato
+// -----------------------------------------------------------------
+
+if ((NInArgs < MinNArgs) | (NInArgs > MaxNArgs))
+ SCI2Cerror('Incorrect number of input arguments.');
+end
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileRead.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileRead.sci
new file mode 100644
index 00000000..4d93876f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileRead.sci
@@ -0,0 +1,19 @@
+function fidnumber = SCI2COpenFileRead(filename)
+// function fidnumber = SCI2COpenFileRead(filename)
+// --------------------------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+[fidnumber,fiderror] = mopen(filename,'r');
+if (fiderror < 0)
+ SCI2Cerror(['Cannot open (in read mode): '+filename]);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileWrite.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileWrite.sci
new file mode 100644
index 00000000..2b25f4be
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2COpenFileWrite.sci
@@ -0,0 +1,19 @@
+function fidnumber = SCI2COpenFileWrite(filename)
+// function fidnumber = SCI2COpenFileWrite(filename)
+// --------------------------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+[fidnumber,fiderror] = mopen(filename,'w');
+if (fiderror < 0)
+ SCI2Cerror(['Cannot open (in write mode): '+filename]);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CTemplate.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CTemplate.sci
new file mode 100644
index 00000000..0d83130d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CTemplate.sci
@@ -0,0 +1,18 @@
+function out = SCI2CTemplate(in1,in2)
+// function out = SCI2CTemplate(in1,in2)
+// -----------------------------------------------------------------
+//
+// Status:
+// 03-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Ccopyfile.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Ccopyfile.sci
new file mode 100644
index 00000000..7efd635b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Ccopyfile.sci
@@ -0,0 +1,29 @@
+function SCI2Ccopyfile(InFileName,OutFileName,CopyMode)
+// function SCI2Ccopyfile(InFileName,OutFileName,CopyMode)
+// -----------------------------------------------------------------
+//
+// Status:
+// 23-Nov-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+if (CopyMode == 'append')
+ fidIn = SCI2COpenFileRead(InFileName);
+
+ tmpline = mgetl(fidIn,1);
+ while (meof(fidIn) == 0)
+ PrintStringInfo(tmpline, OutFileName, 'file', 'y');
+ tmpline = mgetl(fidIn,1);
+ end
+ mclose(fidIn);
+elseif (CopyMode == 'overwrite')
+ PrintStringInfo(' ', OutFileName, 'file', 'y'); // Cannot use scilab copyfile when the directory is empty!.
+ copyfile(InFileName,OutFileName);
+else
+ SCI2Cerror('Unknown CopyMode: ""'+CopyMode+'""');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cerror.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cerror.sci
new file mode 100644
index 00000000..bbe1fd5d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cerror.sci
@@ -0,0 +1,17 @@
+function SCI2Cerror(errorstring)
+// function SCI2Cerror(errorstring)
+// -----------------------------------------------------------------
+//
+// Status:
+// 02-May-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+mclose('all')
+error('###SCI2CERROR: '+errorstring);
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CerrorFile.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CerrorFile.sci
new file mode 100644
index 00000000..9ee8962d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2CerrorFile.sci
@@ -0,0 +1,17 @@
+function SCI2CerrorFile(errorstring,filename);
+// function SCI2CerrorFile(errorstring,filename);
+// -----------------------------------------------------------------
+//
+// Status:
+// 02-May-2006 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+mclose('all')
+PrintStringInfo('Error: '+errorstring,filename,'both');
+error('####SCI2C_ERROR -> Read File: '+filename+'.');
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cfileexist.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cfileexist.sci
new file mode 100644
index 00000000..698ee637
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cfileexist.sci
@@ -0,0 +1,26 @@
+function ExistTest = SCI2Cfileexist(InDir,FileName)
+// function ExistTest = SCI2Cfileexist(InDir,FileName)
+// -----------------------------------------------------------------
+// Status:
+// 12-Jun-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+tmppwd = pwd();
+cd(InDir);
+allfiles = ls(FileName);
+cd(tmppwd);
+
+if (size(allfiles,1) == 0)
+ ExistTest = %F;
+elseif (size(allfiles,1) == 1)
+ ExistTest = %T;
+else
+ SCI2Cerror('Very Strange! Found more than one file with the same name.');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cflipud.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cflipud.sci
new file mode 100644
index 00000000..f7de4a3e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cflipud.sci
@@ -0,0 +1,19 @@
+function OutputData = SCI2Cflipud(InputData)
+// function OutputData = SCI2Cflipud(InputData)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-May-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+NInputs = size(InputData,1);
+OutputData = InputData; // To be sure that they will have the same structure.
+for cnt = 1:NInputs
+ OutputData(cnt) = InputData(NInputs-cnt+1);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cisnum.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cisnum.sci
new file mode 100644
index 00000000..770574e5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cisnum.sci
@@ -0,0 +1,19 @@
+function outbool = SCI2Cisnum(instring)
+// function outbool = SCI2Cisnum(instring)
+// -----------------------------------------------------------------
+// Status:
+// 12-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+instring = convstr(instring,'l');
+outbool = isnum(instring);
+firstchar = part(instring,1:1);
+if (firstchar == 'd' | firstchar == 'e')
+ outbool = %F;
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cmdelete.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cmdelete.sci
new file mode 100644
index 00000000..ceae4783
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cmdelete.sci
@@ -0,0 +1,19 @@
+function SCI2Cmdelete(InFile)
+// function SCI2Cmdelete(InFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+[Inx,Inierr]=fileinfo(InFile);
+if Inierr == 0
+ mdelete(InFile);//NUT: questa stampa a video il file che sta cancellando.
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstring.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstring.sci
new file mode 100644
index 00000000..708b7a2b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstring.sci
@@ -0,0 +1,16 @@
+function outstring = SCI2Cstring(innum)
+// function outstring = SCI2Cstring(innum)
+// -----------------------------------------------------------------
+//
+// Status:
+// 07-May-2008 -- Nutricato Raffaele: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+outstring=strsubst(string(innum),'D','e');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmp.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmp.sci
new file mode 100644
index 00000000..6e4be187
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmp.sci
@@ -0,0 +1,16 @@
+function res = SCI2Cstrncmp(s1,s2,n)
+// function res = SCI2Cstrncmp(s1,s2,n)
+// -----------------------------------------------------------------
+//
+// Status:
+// 16-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+res = (part(s1,1:n) == part(s2,1:n));
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmps1size.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmps1size.sci
new file mode 100644
index 00000000..f4dd2789
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SCI2Cstrncmps1size.sci
@@ -0,0 +1,17 @@
+function res = SCI2Cstrncmps1size(s1,s2);
+// function res = SCI2Cstrncmps1size(s1,s2);
+// -----------------------------------------------------------------
+//
+// Status:
+// 16-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+n = length(s1);
+res = (part(s1,1:n) == part(s2,1:n));
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/SizeInByte.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/SizeInByte.sci
new file mode 100644
index 00000000..8c52c4fb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/SizeInByte.sci
@@ -0,0 +1,24 @@
+function SizeIn = SizeInByte(InDataType)
+// function SizeIn = SizeInByte(InDataType)
+// -----------------------------------------------------------------
+// Status:
+// 12-May-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+if (InDataType == 'float')
+ SizeIn = 4;
+elseif (InDataType == 'double')
+ SizeIn = 8;
+elseif (InDataType == 'floatComplex*')
+ SizeIn = 8;
+elseif (InDataType == 'doubleComplex*')
+ SizeIn = 16;
+else
+ error('Unknown data type: '+InDataType);
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/dispina.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/dispina.sci
new file mode 100644
index 00000000..dc07cddc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/dispina.sci
@@ -0,0 +1,31 @@
+function dispina(instring);
+// function dispina(instring);
+// -----------------------------------------------------------------
+// Quista sacciu sulu iou comu funziona e a ce me serve.
+//
+// Input data:
+//
+// Output data:
+//
+// Status:
+// 12-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp(instring);
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+disp('++++++++++++++++++++++++++++++++++++++++++++++++++')
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/filenamefprintf.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/filenamefprintf.sci
new file mode 100644
index 00000000..72fcaf70
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/filenamefprintf.sci
@@ -0,0 +1,27 @@
+function filenamefprintf(filename,ennewline,str)
+// function filenamefprintf(filename,ennewline,str)
+// --------------------------------------------------------------------------------
+//
+// Status:
+// 31-Jan-2006 -- Nutricato Raffaele: Author.
+// 31-Jan-2006 -- Nutricato Raffaele: TEST OK.
+//
+// Copyright 2006 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+
+ [FidReportFile, mess] = mopen(filename,'a+');
+ if (FidReportFile == -1) then
+ SCI2Cerror(mess);
+ end
+ if ennewline=='y' then
+ mfprintf(FidReportFile,'%s\n',str);
+ else
+ mfprintf(FidReportFile,'%s',str);
+ end
+ mclose(FidReportFile);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/float.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/float.sci
new file mode 100644
index 00000000..2a75af21
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/float.sci
@@ -0,0 +1,15 @@
+function y = float(x)
+// -----------------------------------------------------------------
+// Status:
+// 12-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+
+y = x;
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/GeneralFunctions/squeezestrings.sci b/src/Scilab2C/Scilab2C/GeneralFunctions/squeezestrings.sci
new file mode 100644
index 00000000..83e1ea3d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/GeneralFunctions/squeezestrings.sci
@@ -0,0 +1,19 @@
+function OutString = squeezestrings(InStringArray)
+// function OutString = squeezestrings(InStringArray)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Apr-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+OutString = [];
+for counterstrings = 1:max(size(InStringArray))
+ OutString = OutString+InStringArray(counterstrings);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci b/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci
new file mode 100644
index 00000000..55f74449
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci
@@ -0,0 +1,85 @@
+// Before launching this script, please
+// check all the paths below.
+// User should change parameters only in (USER PARAMETERS) sections.
+// cd C:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C; exec LaunchMultiRunSCI2C.sci
+
+// --- CLEAN WORKSPACE ---
+exec full_reset.sce;
+mode(-1);
+
+// --- GENERAL SETTINGS (USER PARAMETERS) ---
+RunsDirectory = pwd(); // Path of the SCI2CRuns directory
+SCI2CDirectory = 'D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C'; // Path of the Scilab2C directory
+
+// --- SPECIFIC SETTINGS (USER PARAMETERS) ---
+FullListSCI2CInputPrmFiles = ...
+ [...
+ fullfile('D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\SCI2CTests\RegressionTests\test001_verysimple','SCI2CInputParameters.sce');...
+ fullfile('C:\SCI2CTests\RegressionTests\test002_Symbols','SCI2CInputParameters.sce');...
+ fullfile('C:\SCI2CTests\RegressionTests\test003_fft','SCI2CInputParameters.sce');...
+ fullfile('C:\SCI2CTests\RegressionTests\test004_ScalarProduct','SCI2CInputParameters.sce');...
+ fullfile('C:\SCI2CTests\RegressionTests\test100_recursivefunctions','SCI2CInputParameters.sce');...
+ fullfile('C:\SCI2CTests\RegressionTests\test999_WorkingDir','SCI2CInputParameters.sce');...
+ ];
+WorkingListSCI2CInputPrmFiles = ...
+ [...
+ fullfile('..\SCI2CTests\RegressionTests\test999_WorkingDir','SCI2CInputParameters.sce');...
+ ];
+
+// Select one of the two lists above.
+
+ListSCI2CInputPrmFiles = WorkingListSCI2CInputPrmFiles;
+//ListSCI2CInputPrmFiles = FullListSCI2CInputPrmFiles;
+
+// ================================
+// ================================
+// ================================
+// ================================
+
+// --- LAUNCH MULTIRUNSCI2C ---
+NTranslations = size(ListSCI2CInputPrmFiles,1);
+for cnttransl = 1:NTranslations
+ cd(SCI2CDirectory);
+
+ SCI2CInputPrmFileName = ListSCI2CInputPrmFiles(cnttransl);
+
+ // --- LAUNCH USER SCI CODE TO TEST IT BEFORE TRANSLATING IT!!! ---
+ cd(SCI2CDirectory)
+ getf("runscicode.sci");
+ runscicode(SCI2CInputPrmFileName);
+
+ // --- ASK USER FOR CONTINUATION. ---
+ userchoice = input('Start translation [y/n]?','s');
+ if (userchoice == 'y')
+
+ // --- LAUNCH SCI2C ---
+ cd(SCI2CDirectory)
+ getf("runsci2c.sci");
+ runsci2c(SCI2CInputPrmFileName);
+ cd(SCI2CDirectory)
+ else
+ end
+end
+
+// ----------------------------------------
+// --- Compile and Launch all the code. ---
+// ----------------------------------------
+// This option is available only for regression tests.
+if (1==1)
+ cd(fullfile(SCI2CDirectory,'ToolInitialization'));
+ exec('INIT_SCI2CLoader.sce');
+
+ PrintStepInfo('Generate Script for Regression Tests...Available only for Debug.','','both');
+ C_GenerateLaunchScript('D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\SCI2CTests\RegressionTests',ListSCI2CInputPrmFiles);
+end
+
+// ---------------------------------------
+// --- Go back to the start directory. ---
+// ---------------------------------------
+cd (RunsDirectory);
+
+// ------------------------
+// --- Close all files. ---
+// ------------------------
+// --- This must be the last instruction. ---
+mclose('all');
diff --git a/src/Scilab2C/Scilab2C/LaunchRunSCI2C.sci b/src/Scilab2C/Scilab2C/LaunchRunSCI2C.sci
new file mode 100644
index 00000000..db550055
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/LaunchRunSCI2C.sci
@@ -0,0 +1,36 @@
+// Before launching this script, please
+// check all the paths below.
+// User should change parameters only in (USER PARAMETERS) sections.
+// cd C:\SCI2CTests\SCI2CRuns; exec LaunchRunSCI2C.sci
+
+// --- CLEAN WORKSPACE ---
+exec full_reset.sce;
+mode(-1);
+
+// --- GENERAL SETTINGS (USER PARAMETERS) ---
+RunsDirectory = pwd(); // Path of the SCI2CRuns directory
+SCI2CDirectory = 'D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\Scilab2C'; // Path of the Scilab2C directory
+
+// --- SPECIFIC SETTINGS (USER PARAMETERS) ---
+SCI2CInputPrmFileName = 'D:\NutricatoGAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\SCI2CInputParameters.sce'; // Path + file name of the input parameters.
+
+// --- LAUNCH USER SCI CODE TO TEST IT BEFORE TRANSLATING IT!!! ---
+cd(SCI2CDirectory)
+getf("runscicode.sci");
+runscicode(SCI2CInputPrmFileName);
+
+// --- ASK USER FOR CONTINUATION. ---
+userchoice = input('Start translation [y/n]?','s');
+if (userchoice == 'y')
+ // --- LAUNCH SCI2C ---
+ cd(SCI2CDirectory)
+ getf("runsci2c.sci");
+ runsci2c(SCI2CInputPrmFileName);
+ cd(SCI2CDirectory)
+end
+
+// --- GO BACK TO THE START DIRECTORY. ---
+cd (RunsDirectory);
+
+// --- CLOSE ALL FILES. ---
+mclose('all');
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_AnalyzeScope.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_AnalyzeScope.sci
new file mode 100644
index 00000000..1cfe3eb8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_AnalyzeScope.sci
@@ -0,0 +1,60 @@
+function OutArg = ST_AnalyzeScope(OldOutArg,NOutArg,FileInfo,SharedInfo);
+// function OutArg = ST_AnalyzeScope(OldOutArg,NOutArg,FileInfo,SharedInfo);
+// -----------------------------------------------------------------
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),4,4);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+
+OutArg = OldOutArg;
+GlobalVarsFileName = FileInfo.GlobalVarFileName;
+LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName;
+TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName;
+
+for cntout = 1:NOutArg
+ TBName = OutArg(cntout).Name;
+
+ SymbolTableFileName = TempVarsFileName;
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,SymbolTableFileName);
+ if (TBFlagfound == 0)
+ else
+ SCI2CerrorFile('Found a temp symbol in '+SymbolTableFileName+...
+ ' with the same name of the equal output argument ""'+TBName+'"".',ReportFileName);
+ end
+
+ SymbolTableFileName = LocalVarsFileName;
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,SymbolTableFileName);
+ if (TBFlagfound == 0)
+ else
+ OutArg(cntout).Scope = 'Local';
+ end
+
+ if (TBFlagfound == 0)
+ SymbolTableFileName = GlobalVarsFileName;
+ [TBFlagfound2,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,SymbolTableFileName);
+ if (TBFlagfound2 == 0)
+ if SCI2Cstrncmps1size(SharedInfo.ASTReader.TempVarsName,OutArg(cntout).Name)
+ OutArg(cntout).Scope = 'Temp';
+ else
+ OutArg(cntout).Scope = 'Local';
+ end
+ else
+ OutArg(cntout).Scope = 'Global';
+ end
+ end
+
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_Del.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_Del.sci
new file mode 100644
index 00000000..7ccac3c5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_Del.sci
@@ -0,0 +1,27 @@
+function ST_Del(TBName,SymbolTableFileName)
+// function ST_Del(TBName,SymbolTableFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+SCI2CSymbolTable = ST_Load(SymbolTableFileName);
+
+[TBFlagfound,TBPosition] = ST_FindPos(TBName,SymbolTableFileName);
+
+if (TBFlagfound == 0)
+ SCI2Cerror('Missing symbol: trying to del a non existing symbol ""'+TBName+'"".');
+elseif (TBFlagfound == 1)
+ SCI2CSymbolTable(TBPosition) = [];
+
+ ST_Save(SymbolTableFileName,SCI2CSymbolTable);
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_FindPos.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_FindPos.sci
new file mode 100644
index 00000000..de466567
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_FindPos.sci
@@ -0,0 +1,32 @@
+function [TBFlagfound,TBPosition] = ST_FindPos(TBName,SymbolTableFileName)
+// function [TBFlagfound,TBPosition] = ST_FindPos(TBName,SymbolTableFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+SCI2CSymbolTable = ST_Load(SymbolTableFileName);
+
+TBFlagfound = 0;
+TBPosition = 0;
+NEntries = max(size(SCI2CSymbolTable));
+for countertable = 1:NEntries
+ if (mtlb_strcmp(TBName,SCI2CSymbolTable(countertable).Name))
+ TBFlagfound = TBFlagfound + 1;
+ TBPosition = countertable;
+ end
+end
+
+if (TBFlagfound > 1)
+ SCI2Cerror('Symbol table conflict: found two symbols with the same name ""'+TBName+'"".');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_Get.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_Get.sci
new file mode 100644
index 00000000..e6a99e0e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_Get.sci
@@ -0,0 +1,48 @@
+function [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(Field_Name,SymbolTableFileName)
+// function [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+// ST_Get(Field_Name,SymbolTableFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+[tmpnams,tmptyps,tmpdims,tmpvols]=listvarinfile(SymbolTableFileName);
+if (max(size(tmpnams)) > 1)
+ SCI2Cerror('More than one variable found in ""'+SymbolTableFileName+'"".');
+end
+load(SymbolTableFileName,tmpnams);
+SCI2CSymbolTable = eval(tmpnams);
+
+TBFlagfound = 0;
+TBType = '';
+TBSize(1) = '';
+TBSize(2) = '';
+TBValue = %nan;
+TBFindLike = %nan;
+TBDimension = %nan;
+if (TBFlagfound == 0)
+ NEntries = max(size(SCI2CSymbolTable));
+ for countertable = 1:NEntries
+ if (mtlb_strcmp(Field_Name,SCI2CSymbolTable(countertable).Name))
+ TBFlagfound = TBFlagfound + 1;
+ TBType = SCI2CSymbolTable(countertable).Type; // String
+ TBSize = SCI2CSymbolTable(countertable).Size; // String
+ TBValue = SCI2CSymbolTable(countertable).Value;
+ TBFindLike = SCI2CSymbolTable(countertable).FindLike; // Number: 0 or 1.
+ TBDimension = SCI2CSymbolTable(countertable).Dimension; // Number: 0 or 1 or 2.
+ end
+ end
+end
+
+if (TBFlagfound > 1)
+ SCI2Cerror('Symbol table conflict: found two symbols with the same name ""'+TBName+'"".');
+end
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_GetInArgInfo.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_GetInArgInfo.sci
new file mode 100644
index 00000000..b9b54b95
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_GetInArgInfo.sci
@@ -0,0 +1,105 @@
+function [UpdatedInArg,SharedInfo] = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo)
+// function UpdatedInArg = ST_GetInArgInfo(InArg,NInArg,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),4,4);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+
+UpdatedInArg = InArg;
+
+for cntinarg = 1:NInArg
+ tmpname = InArg(cntinarg).Name;
+ tmpscope = InArg(cntinarg).Scope;
+ lengthNumber = length('Number_');
+ if (part(tmpscope,1:lengthNumber) == 'Number_')
+ UpdatedInArg(cntinarg).Type = part(tmpscope,lengthNumber+1:lengthNumber+1);
+ if (UpdatedInArg(cntinarg).Type == 'x')
+ UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default.
+ elseif (UpdatedInArg(cntinarg).Type == 'X')
+ if (SharedInfo.DefaultPrecision == 's')
+ UpdatedInArg(cntinarg).Type = 'c'; // It is the default.
+ elseif (SharedInfo.DefaultPrecision == 'd')
+ UpdatedInArg(cntinarg).Type = 'z'; // It is the default.
+ else
+ SCI2Cerror('Unexpected value for SharedInfo.DefaultPrecision: ""'+SharedInfo.DefaultPrecision+'""');
+ end
+ end
+ if (tmpname == '%pi')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_PI';
+ numvalue = %pi;
+ elseif (tmpname == '%T')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_T';
+ numvalue = 1;
+ elseif (tmpname == '%F')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_F';
+ numvalue = 0;
+ elseif (tmpname == '%nan')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_NAN';
+ numvalue = %nan;
+ elseif (tmpname == '%inf')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_INF';
+ numvalue = %nan; // Otherwise it will put in the C code Inf value.
+ elseif (tmpname == '%i')
+ UpdatedInArg(cntinarg).Name = 'SCI2C_IMG_'+convstr(UpdatedInArg(cntinarg).Type,'u');
+ numvalue = %i;
+ else
+ numvalue = eval(tmpname);
+ end
+
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = '1';
+ UpdatedInArg(cntinarg).Value = numvalue;
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 0;
+ UpdatedInArg(cntinarg).Scope = 'Number';
+
+ elseif (tmpscope == 'String')
+ SharedInfo.ASTReader.UsedTempVars = SharedInfo.ASTReader.UsedTempVars + 1;
+ TmpOutArgName = strcat([SharedInfo.ASTReader.TempVarsName,string(SharedInfo.ASTReader.UsedTempVars)]);
+
+ UpdatedInArg(cntinarg).Name = TmpOutArgName; // Change the name.
+ UpdatedInArg(cntinarg).Type = 'g'; // it is the default.
+ UpdatedInArg(cntinarg).Size(1) = '1';
+ UpdatedInArg(cntinarg).Size(2) = string(length(tmpname)+1); //+1 = (\0)
+ UpdatedInArg(cntinarg).Value = '""'+tmpname+'""';
+ UpdatedInArg(cntinarg).FindLike = 0;
+ UpdatedInArg(cntinarg).Dimension = 2; //NUT: in future releases you can set this field to 1.
+ UpdatedInArg(cntinarg).Scope = 'Temp';
+
+ ST_InsOutArg(UpdatedInArg(cntinarg),1,FileInfo,SharedInfo,'all');
+
+ elseif (tmpscope == 'Variable' | tmpscope == 'Global' | tmpscope == 'Local' | tmpscope == 'Temp')
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension,TBScope] = ST_GetSymbolInfo(tmpname,FileInfo,SharedInfo);
+ if (TBFlagfound == 0)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Unknown symbol ""'+tmpname+'"".',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Be sure to initialize every symbol you are using.',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Before running the SCI2C translator, remember to run the code you are trying',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: to translate in order to check syntax errors.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ end
+ UpdatedInArg(cntinarg).Type = TBType;
+ UpdatedInArg(cntinarg).Size = TBSize;
+ UpdatedInArg(cntinarg).Value = TBValue;
+ UpdatedInArg(cntinarg).FindLike = TBFindLike;
+ UpdatedInArg(cntinarg).Dimension = TBDimension;
+ UpdatedInArg(cntinarg).Scope = TBScope;
+
+ else
+ SCI2Cerror('Unknown scope identifier ""'+tmpscope+'"" for variable ""'+tmpname+'"".');
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_GetSymbolInfo.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_GetSymbolInfo.sci
new file mode 100644
index 00000000..d5836fd0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_GetSymbolInfo.sci
@@ -0,0 +1,53 @@
+function [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension,TBScope] = ST_GetSymbolInfo(TBName,FileInfo,SharedInfo)
+// function [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension,TBScope] = ST_GetSymbolInfo(TBName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+
+GlobalVarsFileName = FileInfo.GlobalVarFileName;
+LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName;
+TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName;
+
+TBFlagfound = 0;
+TBType = '';
+TBSize(1) = '';
+TBSize(2) = '';
+TBValue = %nan
+TBFindLike = %nan
+TBDimension = %nan;
+TBScope = '';
+
+[TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,TempVarsFileName);
+if (TBFlagfound == 1);
+ TBScope = 'Temp';
+end
+
+if (TBFlagfound == 0);
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,LocalVarsFileName);
+ if (TBFlagfound == 1);
+ TBScope = 'Local';
+ end
+end
+
+if (TBFlagfound == 0);
+ [TBFlagfound,TBType,TBSize,TBValue,TBFindLike,TBDimension] = ...
+ ST_Get(TBName,GlobalVarsFileName);
+ if (TBFlagfound == 1);
+ TBScope = 'Global';
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_InsForCntVars.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_InsForCntVars.sci
new file mode 100644
index 00000000..9ff150c6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_InsForCntVars.sci
@@ -0,0 +1,116 @@
+function [OutArg,SharedInfo] = ST_InsForCntVars(InArg,NInArg,OutArg,NOutArg,FunctionName,FileInfo,SharedInfo)
+// function [OutArg,SharedInfo] = ST_InsForCntVars(InArg,NInArg,OutArg,NOutArg,FunctionName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),7,7);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+
+
+if ((SharedInfo.ForExpr.OnExec > 0) & (NOutArg==1) & (OutArg.Scope~='Temp'))
+
+ if (FunctionName == 'OpColon')
+
+ SharedInfo.SkipNextFun = 1;
+
+ OutArg.Size(1) = '1';
+ OutArg.Size(2) = '1';
+ OutArg.Value = %nan;
+ OutArg.FindLike = 0;
+ OutArg.Dimension = 0;
+ SharedInfo.ForExpr.OpColonInfoIn1 = InArg(1).Name;
+
+ if (NInArg == 2)
+ SharedInfo.ForExpr.OpColonInfoIn2 = '1';
+ SharedInfo.ForExpr.OpColonInfoIn3 = InArg(2).Name;
+ else
+ SharedInfo.ForExpr.OpColonInfoIn2 = InArg(2).Name;
+ if isnan(InArg(2).Value)
+ EM_UnknownStep(ReportFileName);
+ end
+
+ SharedInfo.ForExpr.OpColonInfoIn3 = InArg(3).Name;
+ end
+
+ SharedInfo.ForExpr.AssignmentFun = SharedInfo.CFunId.OpColon;
+ SharedInfo.ForExpr.IntCntArg = [];
+ SharedInfo.ForExpr.MtxValCntArg = [];
+ SharedInfo.ForExpr.SclValCntArg = OutArg;
+
+ elseif ((FunctionName == 'OpEqual') & (SharedInfo.ForExpr.AssignmentFun == 0))
+ if (OutArg.Dimension > 0)
+ SharedInfo.SkipNextFun = 1;
+ OutArg.Size(1) = '1';
+ OutArg.Size(2) = '1';
+ OutArg.Value = %nan;
+ OutArg.FindLike = 0;
+ OutArg.Dimension = 0;
+
+ NNewArg = 1;
+ NewArg(NNewArg).Name = SharedInfo.ASTReader.TempForCntVarsName+string(SharedInfo.CountForTempVars);
+ SharedInfo.CountForTempVars = SharedInfo.CountForTempVars + 1;
+ NewArg(NNewArg).Size(1) = '1';
+ NewArg(NNewArg).Size(2) = '1';
+ NewArg(NNewArg).Type = 'i';
+ NewArg(NNewArg).Value = 0;
+ NewArg(NNewArg).FindLike = 0;
+ NewArg(NNewArg).Dimension = 0;
+ NewArg(NNewArg).Scope = 'Temp';
+
+ NNewArg = 1;
+ ST_InsOutArg(NewArg,NNewArg,FileInfo,SharedInfo,'all');
+
+ SharedInfo.ForExpr.AssignmentFun = SharedInfo.CFunId.EqMatrix;
+ SharedInfo.ForExpr.IntCntArg = NewArg(1);
+ SharedInfo.ForExpr.MtxValCntArg = InArg(1);
+ SharedInfo.ForExpr.SclValCntArg = OutArg;
+ else
+ SharedInfo.ForExpr.AssignmentFun = SharedInfo.CFunId.EqScalar;
+ end
+ else
+ if (OutArg.Dimension > 0)
+
+ NewArg = OutArg;
+ OutArg.Name = SharedInfo.ASTReader.TempForValVarsName+OutArg.Name;
+
+ NNewArg = 1;
+ NewArg(NNewArg).Size(1) = '1';
+ NewArg(NNewArg).Size(2) = '1';
+ NewArg(NNewArg).Value = %nan;
+ NewArg(NNewArg).FindLike = 0;
+ NewArg(NNewArg).Dimension = 0;
+
+ NNewArg = 2;
+ NewArg(NNewArg).Name = SharedInfo.ASTReader.TempForCntVarsName+string(SharedInfo.CountForTempVars);
+ SharedInfo.CountForTempVars = SharedInfo.CountForTempVars + 1;
+ NewArg(NNewArg).Size(1) = '1';
+ NewArg(NNewArg).Size(2) = '1';
+ NewArg(NNewArg).Type = 'i';
+ NewArg(NNewArg).Value = 0;
+ NewArg(NNewArg).FindLike = 0;
+ NewArg(NNewArg).Dimension = 0;
+ NewArg(NNewArg).Scope = 'Temp';
+
+ NNewArg = 2;
+ ST_InsOutArg(NewArg,NNewArg,FileInfo,SharedInfo,'all');
+
+ SharedInfo.ForExpr.AssignmentFun = SharedInfo.CFunId.GenFunMtx;
+ SharedInfo.ForExpr.IntCntArg = NewArg(2);
+ SharedInfo.ForExpr.MtxValCntArg = OutArg(1);
+ SharedInfo.ForExpr.SclValCntArg = NewArg(1);
+ end
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_InsOutArg.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_InsOutArg.sci
new file mode 100644
index 00000000..3f5a1c99
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_InsOutArg.sci
@@ -0,0 +1,114 @@
+function ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,MatchRule)
+// function ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,MatchRule)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+nxtscifunname = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName;
+CGblDeclarFileName = FileInfo.Funct(nxtscifunnumber).CGblDeclarFileName;
+
+GlobalVarsFileName = FileInfo.GlobalVarFileName;
+LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName;
+TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName;
+
+CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName;
+CPass1FreeFileName = FileInfo.Funct(nxtscifunnumber).CPass1FreeFileName;
+
+
+
+
+for counteroutput = 1:NOutArg
+
+ if mtlb_strcmp(OutArg(counteroutput).Scope,'Temp')
+ SymbTableFileName = TempVarsFileName;
+ elseif mtlb_strcmp(OutArg(counteroutput).Scope,'Local')
+ SymbTableFileName = LocalVarsFileName;
+ elseif mtlb_strcmp(OutArg(counteroutput).Scope,'Global')
+ SymbTableFileName = GlobalVarsFileName;
+ else
+ SCI2Cerror('Unknown scope ""'+OutArg(counteroutput).Scope+'"" for symbol: '+OutArg(counteroutput).Name);
+ end
+
+
+ [TBFlagfound,TBFlagEqualSymbols] = ...
+ ST_MatchSymbol(OutArg(counteroutput).Name,...
+ OutArg(counteroutput).Type,...
+ OutArg(counteroutput).Size,...
+ OutArg(counteroutput).Value,...
+ OutArg(counteroutput).FindLike,...
+ OutArg(counteroutput).Dimension,...
+ SymbTableFileName,MatchRule);
+
+ if (TBFlagfound == 1)
+ if (TBFlagEqualSymbols == 0)
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+...
+ OutArg(counteroutput).Name+'"" with different settings',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: Please check that you are not using variable ""'+OutArg(counteroutput).Name+'""',ReportFileName,'both','y');
+ PrintStringInfo('SCI2CERROR: with different sizes and/or types.',ReportFileName,'both','y');
+ PrintStringInfo(' ',ReportFileName,'both','y');
+ SCI2Cerror(' ');
+ else
+ if ((GetSymbolDimension(OutArg(counteroutput).Size)) == 0)
+ ST_Set(OutArg(counteroutput).Name,...
+ OutArg(counteroutput).Type,...
+ OutArg(counteroutput).Size,...
+ OutArg(counteroutput).Value,...
+ OutArg(counteroutput).FindLike,...
+ OutArg(counteroutput).Dimension,...
+ SymbTableFileName);
+ end
+ if (OutArg(counteroutput).Scope=='Global')
+ IndentLevelGlobal = 0; //NUT: forced always to 1
+ FlagExt = 1;
+ C_GenDeclarations(OutArg(counteroutput),CGblDeclarFileName,IndentLevelGlobal,ReportFileName,FlagExt);
+ end
+ end
+ elseif (TBFlagfound == 2)
+ ST_Set(OutArg(counteroutput).Name,...
+ OutArg(counteroutput).Type,...
+ OutArg(counteroutput).Size,...
+ OutArg(counteroutput).Value,...
+ OutArg(counteroutput).FindLike,...
+ OutArg(counteroutput).Dimension,...
+ SymbTableFileName);
+ IndentLevel = 0; //NUT: forced always to 1
+ FlagExt = 0;
+ C_GenDeclarations(OutArg(counteroutput),CGblDeclarFileName,IndentLevel,ReportFileName,FlagExt);
+ else
+ if (OutArg(counteroutput).FindLike == 1)
+ TmpOutArgSize(1) = '__'+OutArg(counteroutput).Name+'Size[0]';
+ TmpOutArgSize(2) = '__'+OutArg(counteroutput).Name+'Size[1]';
+ else
+ TmpOutArgSize(1) = OutArg(counteroutput).Size(1);
+ TmpOutArgSize(2) = OutArg(counteroutput).Size(2);
+ end
+ ST_Set(OutArg(counteroutput).Name,...
+ OutArg(counteroutput).Type,...
+ TmpOutArgSize,...
+ OutArg(counteroutput).Value,...
+ OutArg(counteroutput).FindLike,...
+ OutArg(counteroutput).Dimension,...
+ SymbTableFileName);
+ IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1
+ IndentLevelMalloc = SharedInfo.NIndent;
+ FlagExt = 0;
+ C_GenDeclarations(OutArg(counteroutput),CDeclarationFileName,IndentLevelDeclaration,ReportFileName,FlagExt);
+ C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName);
+ end
+
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_Load.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_Load.sci
new file mode 100644
index 00000000..24fa30f1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_Load.sci
@@ -0,0 +1,20 @@
+function SCI2CSymbolTable = ST_Load(SymbolTableFileName)
+// function SCI2CSymbolTable = ST_Load(SymbolTableFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+[tmpnams,tmptyps,tmpdims,tmpvols]=listvarinfile(SymbolTableFileName);
+if (max(size(tmpnams)) > 1)
+ SCI2Cerror('More than one variable found in ""'+SymbolTableFileName+'"".');
+end
+load(SymbolTableFileName,tmpnams);
+SCI2CSymbolTable = eval(tmpnams);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_MatchSymbol.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_MatchSymbol.sci
new file mode 100644
index 00000000..3029851c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_MatchSymbol.sci
@@ -0,0 +1,51 @@
+function [TBFlagfound,TBFlagEqualSymbols] = ST_MatchSymbol(TBName,TBType,TBSize,TBValue,TBFindLike,TBDimension,SymbolTableFileName,MatchRule)
+// function [TBFlagfound,TBFlagEqualSymbols] = ST_MatchSymbol(TBName,TBType,TBSize,TBValue,TBFindLike,TBDimension,SymbolTableFileName,MatchRule)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),8,8);
+
+TBFlagfound = 0;
+TBFlagEqualSymbols = 0;
+
+[TBFlagfound,tmpType,tmpSize,tmpValue,tmpFindLike,tmpDimension] = ...
+ ST_Get(TBName,SymbolTableFileName);
+
+if (TBFlagfound == 1)
+ if (tmpType == 'GBLToBeDefined')
+ TBFlagfound = 2;
+ TBFlagEqualSymbols = 0;
+ else
+ TBFlagEqualSymbols = 1;
+ if (MatchRule == 'type' | MatchRule == 'all')
+ if (mtlb_strcmp(tmpType,TBType) == %F)
+ TBFlagEqualSymbols = 0;
+ end
+ end
+ if (MatchRule == 'size' | MatchRule == 'all')
+ if (tmpDimension ~= TBDimension)
+ TBFlagEqualSymbols = 0;
+ end
+ if (SCI2Cisnum(tmpSize(1))) & (SCI2Cisnum(TBSize(1)))
+ if (mtlb_strcmp(tmpSize(1),TBSize(1)) == %F)
+ TBFlagEqualSymbols = 0;
+ end
+ end
+ if (SCI2Cisnum(tmpSize(2))) & (SCI2Cisnum(TBSize(2)))
+ if (mtlb_strcmp(tmpSize(2),TBSize(2)) == %F)
+ TBFlagEqualSymbols = 0;
+ end
+ end
+ end
+ end
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_Save.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_Save.sci
new file mode 100644
index 00000000..0e8319a6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_Save.sci
@@ -0,0 +1,33 @@
+function ST_Save(SymbolTableFileName,SCI2CSymbolTable)
+// function ST_Save(SymbolTableFileName,SCI2CSymbolTable)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+[tmpnams,tmptyps,tmpdims,tmpvols]=listvarinfile(SymbolTableFileName);
+if (max(size(tmpnams)) > 1)
+ SCI2Cerror('More than one variable found in ""'+SymbolTableFileName+'"".');
+end
+
+if (mtlb_strcmp(tmpnams,'GlobalVars'))
+ GlobalVars = SCI2CSymbolTable;
+ save(SymbolTableFileName,GlobalVars);
+elseif (mtlb_strcmp(tmpnams,'LocalVars'))
+ LocalVars = SCI2CSymbolTable;
+ save(SymbolTableFileName,LocalVars);
+elseif (mtlb_strcmp(tmpnams,'TempVars'))
+ TempVars = SCI2CSymbolTable;
+ save(SymbolTableFileName,TempVars);
+else
+ SCI2Cerror('Unknow table: ""'+tmpnams+'"".');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/SymbolTable/ST_Set.sci b/src/Scilab2C/Scilab2C/SymbolTable/ST_Set.sci
new file mode 100644
index 00000000..4acde828
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/SymbolTable/ST_Set.sci
@@ -0,0 +1,35 @@
+function ST_Set(TBName,TBType,TBSize,TBValue,TBFindLike,TBDimension,SymbolTableFileName)
+// function ST_Set(TBName,TBType,TBSize,TBValue,TBFindLike,TBDimension,SymbolTableFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+SCI2CNInArgCheck(argn(2),7,7);
+
+SCI2CSymbolTable = ST_Load(SymbolTableFileName);
+
+[TBFlagfound,TBPosition] = ST_FindPos(TBName,SymbolTableFileName);
+
+if (TBFlagfound == 0)
+ TBPosition = max(size(SCI2CSymbolTable))+1;
+end
+
+SCI2CSymbolTable(TBPosition).Name = TBName; // string.
+SCI2CSymbolTable(TBPosition).Type = TBType; // char.
+SCI2CSymbolTable(TBPosition).Size = TBSize; // structure of two strings (Size(1) and Size(2)).
+SCI2CSymbolTable(TBPosition).Value = TBValue; // int/real/complex number. %nan when the value is not available or isn't a scalar.
+SCI2CSymbolTable(TBPosition).FindLike = TBFindLike; // int number. FindLike = 1, when the symbol comes from a find-like function.
+ // FindLike = -1 when the function is not find-like but it is making use of input arguments that are find-like.
+ // FindLike = 0 in all other cases.
+SCI2CSymbolTable(TBPosition).Dimension = TBDimension; // int number.
+
+ST_Save(SymbolTableFileName,SCI2CSymbolTable);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_CreateDirs.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_CreateDirs.sci
new file mode 100644
index 00000000..50ba70f0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_CreateDirs.sci
@@ -0,0 +1,48 @@
+function INIT_CreateDirs(FileInfo)
+// function INIT_CreateDirs(FileInfo)
+// -----------------------------------------------------------------
+//
+// Status:
+// 03-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+SCI2CCreateDir(FileInfo.WorkingDir);
+SCI2CCreateDir(FileInfo.OutCCCodeDir);
+
+SCI2CCreateDir(FileInfo.SCI2CLibDir);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIAnnDir);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIAnnFun);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIAnnCls);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIFunListDir);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIFLFun);
+SCI2CCreateDir(FileInfo.SCI2CLibSCIFLCls);
+SCI2CCreateDir(FileInfo.SCI2CLibCAnnDir);
+SCI2CCreateDir(FileInfo.SCI2CLibCAnnFun);
+SCI2CCreateDir(FileInfo.SCI2CLibCAnnCls);
+SCI2CCreateDir(FileInfo.SCI2CLibCFunListDir);
+SCI2CCreateDir(FileInfo.SCI2CLibCFLFun);
+SCI2CCreateDir(FileInfo.SCI2CLibCFLCls);
+
+SCI2CCreateDir(FileInfo.USER2CLibDir);
+SCI2CCreateDir(FileInfo.USER2CLibSCIAnnDir);
+SCI2CCreateDir(FileInfo.USER2CLibSCIAnnFun);
+SCI2CCreateDir(FileInfo.USER2CLibSCIAnnCls);
+SCI2CCreateDir(FileInfo.USER2CLibSCIFunListDir);
+SCI2CCreateDir(FileInfo.USER2CLibSCIFLFun);
+SCI2CCreateDir(FileInfo.USER2CLibSCIFLCls);
+SCI2CCreateDir(FileInfo.USER2CLibCAnnDir);
+SCI2CCreateDir(FileInfo.USER2CLibCAnnFun);
+SCI2CCreateDir(FileInfo.USER2CLibCAnnCls);
+SCI2CCreateDir(FileInfo.USER2CLibCFunListDir);
+SCI2CCreateDir(FileInfo.USER2CLibCFLFun);
+SCI2CCreateDir(FileInfo.USER2CLibCFLCls);
+
+SCI2CCreateDir(FileInfo.FunctionList.MainDir);
+SCI2CCreateDir(FileInfo.FunctionList.FunInfoDatDir);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci
new file mode 100644
index 00000000..8754ee9f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -0,0 +1,3094 @@
+function INIT_FillSCI2LibCDirs(FileInfo,SharedInfoExtension)
+// function INIT_FillSCI2LibCDirs(FileInfo,SharedInfoExtension)
+// -----------------------------------------------------------------
+//
+// Status:
+// 24-Dec-2007 -- Raffaele Nutricato: Author.
+// 24-Dec-2007 -- Alberto Morea: Test Ok.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+SCI2CLibCAnnClsDir = FileInfo.SCI2CLibCAnnCls;
+ExtensionCAnnCls = SharedInfoExtension.AnnotationClasses;
+
+SCI2CLibCAnnFunDir = FileInfo.SCI2CLibCAnnFun;
+ExtensionCAnnFun = SharedInfoExtension.AnnotationFunctions;
+
+SCI2CLibCFLClsDir = FileInfo.SCI2CLibCFLCls;
+ExtensionCFuncListCls = SharedInfoExtension.FuncListClasses;
+
+SCI2CLibCFLFunDir = FileInfo.SCI2CLibCFLFun;
+ExtensionCFuncListFun = SharedInfoExtension.FuncListFunctions;
+
+GeneralReport = FileInfo.GeneralReport;
+ArgSeparator = ',';
+
+ClassName = 'Global';
+
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+FunctionName = 'global';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+ClassName = 'Float';
+
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''s''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+//PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+//PrintStringInfo('z0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'s2',ClassFileName,'file','y');
+//PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
+//PrintStringInfo('z2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'float';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Double. ---
+// ---------------------
+ClassName = 'Double';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+//PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y');
+//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y');
+//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'double';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------------
+// --- Class FloatComplex. ---
+// ----------------------------
+//NUT sulla complex c'e' da capire se servono due o un solo argomento.
+//NUT secondo me ne va bene uno perche' serve per fare il casting di una variabile
+//NUT reale in una variabile complessa
+ClassName = 'FloatComplex';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''c''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'floatcomplex';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------------
+// --- Class DoubleComplex. ---
+// ----------------------------
+//NUT sulla complex c'e' da capire se servono due o un solo argomento.
+//NUT secondo me ne va bene uno perche' serve per fare il casting di una variabile
+//NUT reale in una variabile complessa
+ClassName = 'DoubleComplex';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''z''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'doublecomplex';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ------------------
+// --- Class Sin. ---
+// ------------------
+ClassName = 'Sin';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'sin';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'sinh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'asinh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'cos';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'cosh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'tan';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'tanh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'exp';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'conj';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//NUT verifica
+FunctionName = 'inv';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'ceil';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'fix';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'floor';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'round';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'int';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogNot';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Atan. ---
+// -------------------
+ClassName = 'Atan';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+// PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+// PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+// PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+// PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'atan';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Sqrt. ---
+// -------------------
+ClassName = 'Sqrt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'asin';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'acos';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'acosh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'atanh';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'sqrt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'log';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'log10';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class Zeros. ---
+// --------------------
+ClassName = 'Zeros';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).VAL',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(2).VAL',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo(ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo(ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+//NUT: no mixed input types are allowed.
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'zeros';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'ones';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'eye';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//NUT rand function doesn't behave like zeros and ones functions.
+FunctionName = 'rand';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class Sum. ---
+// --------------------
+ClassName = 'Sum';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_SEL1(IN(1).SZ(1),IN(2).VAL)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_SEL2(IN(1).SZ(2),IN(2).VAL)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0g2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0g2'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2g2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z2g2'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2g2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2g2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'sum';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'prod';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'mean';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'st_deviation';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'variance';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'max';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'min';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+// --------------------
+// --- Class Abs. ---
+// --------------------
+ClassName = 'Abs';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_REAL(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'abs';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'real';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'imag';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ------------------------
+// --- Class OpDotStar. ---
+// ------------------------
+ClassName = 'OpDotStar';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpDotStar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpDotSlash';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// ------------------------
+// --- Class OpDotHat. ---
+// ------------------------
+ClassName = 'OpDotHat';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpDotHat';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//NUT verifica l'hat se e' ben annotato. L'input deve essere una matrice quadrata
+FunctionName = 'OpHat';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpDotBackSlash';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogLt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogLe';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogGt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogGe';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogAnd';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogOr';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class OpLogEq. ---
+// ----------------------
+ClassName = 'OpLogEq';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPDOTSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('g0g0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('g0g0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g2g0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('g2g0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g0g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('g0g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpLogEq';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpLogNe';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class OpStar. ---
+// ---------------------
+ClassName = 'OpStar';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPSTAR(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpStar';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//NUT vedi che la opstar non funziona quando faccio scalare*matrice. o matrice*scalare.
+//NUT la lista delle funzioni disponibili e' identica a quella della classe 3.
+
+// ---------------------
+// --- Class OpApex. ---
+// ---------------------
+ClassName = 'OpApex';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpApex';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'OpDotApex';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'isnan';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class OpPlus. ---
+// ---------------------
+ClassName = 'OpPlus';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPPLUS(IN(1).SZ,IN(2).SZ,IN(1).TP,IN(2).TP))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPPLUS(IN(1).SZ,IN(2).SZ,IN(1).TP,IN(2).TP))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('g0g0'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g2g0'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g0g2'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpPlus';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class OpMinus. ---
+// ----------------------
+ClassName = 'OpMinus';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPMINUS(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(FA_SZ_OPMINUS(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpMinus';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class OpRc. ---
+// -------------------
+ClassName = 'OpRc';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_ADD(IN(1).SZ(2),IN(2).SZ(2))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types considered
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+PrintStringInfo('d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('c0c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('z0z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpRc';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class OpCc. ---
+// -------------------
+ClassName = 'OpCc';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_ADD(IN(1).SZ(1),IN(2).SZ(1))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types considered
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+PrintStringInfo('d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('c0c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('z0z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpCc';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// -------------------
+// --- Class Find. ---
+// -------------------
+ClassName = 'Find';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(1),IN(1).SZ(2)))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'find';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Length. ---
+// ---------------------
+ClassName = 'Length';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('g0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('g0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'length';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// -------------------
+// --- Class Size. ---
+// -------------------
+ClassName = 'Size';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_REAL(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''2''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_REAL(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_REAL(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_REAL(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'size';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Return. ---
+// ---------------------
+ClassName = 'Return';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo(ArgSeparator,ClassFileName,'file','y');
+
+//NUT anche se metto Return funziona bene comunque! cerca di capire il motivo.
+//NUT limited use to zero in and out args only.
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'return';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class OpColon. ---
+// ----------------------
+ClassName = 'OpColon';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_INT(FA_ADD(FA_SUB(IN(2).VAL,IN(1).VAL),''1''))',ClassFileName,'file','y');
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).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(IN(3).VAL,IN(1).VAL),IN(2).VAL),''1''))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+// PrintStringInfo('c0c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+// PrintStringInfo('z0z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+// PrintStringInfo('c0c0'+ArgSeparator+'s2',ClassFileName,'file','y');
+// PrintStringInfo('z0z0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+// PrintStringInfo('c0c0c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+// PrintStringInfo('z0z0z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+// PrintStringInfo('c0c0c0'+ArgSeparator+'s2',ClassFileName,'file','y');
+// PrintStringInfo('z0z0z0'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpColon';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class IsEmpty. ---
+// ----------------------
+ClassName = 'IsEmpty';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'isempty';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class Trace. ---
+// ----------------------
+ClassName = 'Trace';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'trace';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+//NUT det is a little bit complex but for the moment we assume that
+//NUT that det works as trace function.
+FunctionName = 'det';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class OpIns. ---
+// --------------------
+ClassName = 'OpIns';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s2s0s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s0s0s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s0s2s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s0s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s2s0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s0s2s2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s0s2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2s2s2s2'+ArgSeparator,ClassFileName,'file','y');
+
+PrintStringInfo('d2d0d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d0d0d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d0d2d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d0d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d2d0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d0d2d2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d0d2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2d2d2d2'+ArgSeparator,ClassFileName,'file','y');
+
+PrintStringInfo('c2s0c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2c2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s0s0c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s0s2c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2s0c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2s2c0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s0s2c2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2s0c2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('c2s2s2c2'+ArgSeparator,ClassFileName,'file','y');
+
+PrintStringInfo('z2d0z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2z2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d0d0z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d0d2z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2d0z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2d2z0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d0d2z2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2d0z2'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('z2d2d2z2'+ArgSeparator,ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpIns';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class OpExt. ---
+// --------------------
+ClassName = 'OpExt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_MUL(IN(2).SZ(1),IN(2).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_MUL(IN(2).SZ(1),IN(2).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_MUL(IN(3).SZ(1),IN(3).SZ(2))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s2s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+PrintStringInfo('d2d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('c2s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c2s2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('z2d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z2d2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpExt';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Disp. ---
+// -------------------
+ClassName = 'Disp';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''d''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('g0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'disp';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ----------------------
+// --- Class OpEqual. ---
+// ----------------------
+ClassName = 'OpEqual';
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(IN(1).SZ)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_2(IN(1).SZ)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(2).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= FA_SZ_1(IN(2).SZ)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SZ_2(IN(2).SZ)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('g0'+ArgSeparator+'g0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'g2',ClassFileName,'file','y');
+//NUT per ora non considero le equal con nin != 1
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpEqual';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// --------------------
+// --- Class Mopen. ---
+// --------------------
+ClassName = 'Mopen';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''f''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('g2'+ArgSeparator+'f0',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'f0s0',ClassFileName,'file','y');
+PrintStringInfo('g2'+ArgSeparator+'f0d0',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'f0',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'f0s0',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'f0d0',ClassFileName,'file','y');
+PrintStringInfo('g2g2s0'+ArgSeparator+'f0s0',ClassFileName,'file','y');
+PrintStringInfo('g2g2s0'+ArgSeparator+'f0d0',ClassFileName,'file','y');
+PrintStringInfo('g2g2d0'+ArgSeparator+'f0s0',ClassFileName,'file','y');
+PrintStringInfo('g2g2d0'+ArgSeparator+'f0d0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'mopen';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Mput. ---
+// -------------------
+ClassName = 'Mput';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0g2f0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s2g2f0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d0g2f0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('d2g2f0'+ArgSeparator,ClassFileName,'file','y');
+PrintStringInfo('s0g2f0'+ArgSeparator+'i0',ClassFileName,'file','y'); //NUT la mput e' strana
+PrintStringInfo('s2g2f0'+ArgSeparator+'i0',ClassFileName,'file','y');
+PrintStringInfo('d0g2f0'+ArgSeparator+'i0',ClassFileName,'file','y');
+PrintStringInfo('d2g2f0'+ArgSeparator+'i0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'mput';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Mget. ---
+// -------------------
+ClassName = 'Mget';
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_USER',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).VAL)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0g2f0'+ArgSeparator+'s0',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('s0g2f0'+ArgSeparator+'d0',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0g2f0'+ArgSeparator+'s0',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0g2f0'+ArgSeparator+'d0',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('s0g2f0'+ArgSeparator+'s2',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('s0g2f0'+ArgSeparator+'d2',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0g2f0'+ArgSeparator+'s2',ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0g2f0'+ArgSeparator+'d2',ClassFileName,'file','y'); //NUT da chiarire
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'mget';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Mclose. ---
+// ---------------------
+ClassName = 'Mclose';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 0',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''i''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('f0'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('f0'+ArgSeparator+'i0',ClassFileName,'file','y'); //NUT da chiarire
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'mclose';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Mseek. ---
+// ---------------------
+ClassName = 'Mseek';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 0 ',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('s0f0'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('s0f0g2'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+
+PrintStringInfo('d0'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0f0'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+PrintStringInfo('d0f0g2'+ArgSeparator,ClassFileName,'file','y'); //NUT da chiarire
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'mseek';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ---------------------
+// --- Class Convol. ---
+// ---------------------
+ClassName = 'Convol';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),''1'')',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(2).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),''1'')',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(FA_TP_MAX(IN(1).TP,IN(2).TP),IN(3).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(2).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_MAX(FA_TP_MAX(IN(1).TP,IN(2).TP),IN(3).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= FA_SUB(FA_ADD(IN(1).SZ(2),IN(2).SZ(2)),''1'')',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0z0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('c0c0c0'+ArgSeparator+'c0c0',ClassFileName,'file','y');
+PrintStringInfo('z0z0z0'+ArgSeparator+'z0z0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s2s0'+ArgSeparator+'s2s0',ClassFileName,'file','y');
+PrintStringInfo('d0d2d0'+ArgSeparator+'d2d0',ClassFileName,'file','y');
+PrintStringInfo('c0c2c0'+ArgSeparator+'c2c0',ClassFileName,'file','y');
+PrintStringInfo('z0z2z0'+ArgSeparator+'z2z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2s2'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('c2c2c2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('z2z2z2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+
+//NUT non metto tutte le combinazioni ma prima cerco di capire cosa mi offre INRIA
+//NUT come libreria a disposizione.
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'convol';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class IFFT. ---
+// -------------------
+ClassName = 'IFFT';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'ifft';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ------------------
+// --- Class FFT. ---
+// ------------------
+ClassName = 'FFT';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 4',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_COMPLEX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2d0d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2s0s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d0d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('c0s0s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0s0s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2d0d0d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('c2s0s0s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d0d0d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+
+//NUT non metto tutte le combinazioni ma prima cerco di capire cosa mi offre INRIA
+//NUT come libreria a disposizione.
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'fft';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -----------------------
+// --- Class FFTShift. ---
+// -----------------------
+ClassName = 'FFTShift';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0g2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0g2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2g2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2g2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'fftshift';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// --------------------
+// --- Class Meanf. ---
+// --------------------
+ClassName = 'Meanf';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP, IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_SEL1(IN(1).SZ(1),IN(3).VAL)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_SEL2(IN(1).SZ(2),IN(3).VAL)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s0s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('c2s2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('z2d2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'meanf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'variancef';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+FunctionName = 'stdevf';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------
+// --- Class Frmag. ---
+// --------------------
+ClassName = 'Frmag';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(2).VAL',ClassFileName,'file','y');
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(2).VAL',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= IN(2).VAL',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(3).VAL',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(3).VAL',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_MAX(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= IN(3).VAL',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('d2d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2d0'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0d0d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('s2s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2s0'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('s0s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0s0s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'frmag';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// ------------------
+// --- Class Lev. ---
+// ------------------
+ClassName = 'Lev';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SUB(IN(1).SZ(1),''1'')',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SUB (IN(1).SZ(1),''1'')',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 3',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SUB(IN(1).SZ(1),''1'')',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(1)= FA_SUB(IN(1).SZ(1),''1'')',ClassFileName,'file','y');
+PrintStringInfo('OUT(3).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2s0s2',ClassFileName,'file','y');
+
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d0d2',ClassFileName,'file','y');
+
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2c0',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2c0c2',ClassFileName,'file','y');
+
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2z0',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2z0z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'lev';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// --------------------------
+// --- Class OpBackSlash. ---
+// --------------------------
+ClassName = 'OpBackSlash';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP) ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_SZ_1(FA_SZ_OPBACKSLASH(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_1(FA_SZ_OPBACKSLASH(IN(1).SZ,IN(2).SZ))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+
+PrintStringInfo('c0s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'OpBackSlash';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -----------------------
+// --- Class Cepstrum. ---
+// -----------------------
+ClassName = 'Cepstrum';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP,IN(2).TP) ',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= FA_MUL(IN(1).SZ(1),IN(1).SZ(2))',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('s0s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s0c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+PrintStringInfo('s2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('s2c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'Cepstrum';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Spec. ---
+// -------------------
+ClassName = 'Spec';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 2',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+
+PrintStringInfo('s0'+ArgSeparator+'s0s0',ClassFileName,'file','y');
+PrintStringInfo('d0'+ArgSeparator+'d0d0',ClassFileName,'file','y');
+PrintStringInfo('c0'+ArgSeparator+'c0c0',ClassFileName,'file','y');
+PrintStringInfo('z0'+ArgSeparator+'z0z0',ClassFileName,'file','y');
+
+PrintStringInfo('s2'+ArgSeparator+'s2s2',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2d2',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+PrintStringInfo('c2'+ArgSeparator+'c2c2',ClassFileName,'file','y');
+PrintStringInfo('z2'+ArgSeparator+'z2z2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'Spec';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -------------------
+// --- Class Part. ---
+// -------------------
+ClassName = 'Part';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).SZ(2))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('g2s0'+ArgSeparator+'g2',ClassFileName,'file','y');
+PrintStringInfo('g2d0'+ArgSeparator+'g2',ClassFileName,'file','y');
+PrintStringInfo('g2s2'+ArgSeparator+'g2',ClassFileName,'file','y');
+PrintStringInfo('g2d2'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'part';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -----------------------
+// --- Class Strindex. ---
+// -----------------------
+ClassName = 'Strindex';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 2',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(IN(1).SZ(2))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('g2g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('g2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'strindex';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+// -----------------------
+// --- Class StrSubSt. ---
+// -----------------------
+ClassName = 'StrSubSt';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+PrintStringInfo('NIN= 3',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= FA_SZ_RTMAX(FA_MUL(IN(1).SZ(2),IN(3).SZ(2)))',ClassFileName,'file','y');
+
+// --- Function List Class. ---
+//NUT: no mixed data types
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+
+PrintStringInfo('g2g2g2'+ArgSeparator+'g2',ClassFileName,'file','y');
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'strsubst';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+// ////////////////////////////////////////////
+// /////PARTE INTRODOTTA DA ALBERTO MOREA
+// /////////////////////////////////////////////
+// ///////////////////////////////////////////////
+
+// // DOMAINS DEFINITION FOR EVERY CLASS-LEADER IN SCI2C LIBRARY
+
+// // In the following lets:
+// // N,R ,C are the standard sets of integer,real ,complex numbers
+// // I,J c R are intervals of real numbers
+// // {} the empty set
+// // Sel={'r','c'} or {0,1} are the selection sets r=row,c=column
+// // B={T,F} is Boolean set
+// // F is the standard set of File IDentify files
+// // G is the standard alphanumeric string domain
+
+// // For every sci2c function library class we reported
+// // the domains , annotations only for the class-leader
+
+// // Example [y1,y2]=Fun(x1,x2,x3) : scilab library function call
+
+// // Domain RxNxSel->{R,R} :the first input element is real number ,the second is integer ,
+// // the last is in the selection set
+// // The first output and the second are real numbers
+
+// // Notice : only default (double) precision are considered for real and complex data
+// // The dimension of the input/output data are provided in the mapping schema
+
+// // d0 = double real scalar
+// // d2 = double real vector or matrix
+// // z0= double complex scalar
+// // z2= double complex vector or matrix
+
+// // ---------------------
+// // --- Class Global. ---
+// // ---------------------
+
+// // DOMAINS G -> R
+
+// //////////////////////////////////
+
+
+// // ---------------------
+// // --- Class Float. ---
+// // ---------------------
+
+// // DOMAINS R -> R
+
+// //////////////////////////////////
+
+
+// // ---------------------
+// // --- Class Double. ---
+// // ---------------------
+
+// // DOMAINS R -> R
+
+// //////////////////////////////////
+
+// // ----------------------------
+// // --- Class FloatComplex. ---
+// // ----------------------------
+
+// // DOMAINS 1)R -> C
+// // 2)C -> C
+
+// /////////////////////////////////
+
+// // ----------------------------
+// // --- Class DoubleComplex. ---
+// // ----------------------------
+
+// // DOMAINS 1) R -> C
+// // 2) C -> C
+
+// /////////////////////////////////
+
+// // ------------------
+// // --- Class Sin. ---
+// // ------------------
+
+// // DOMAINS 1) IcR -> JcR
+// // 2) C -> C
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class Atan. ---
+// // -------------------
+
+// // DOMAINS 1) IcR -> JcR
+// // 2) C -> C
+// // 3) RxR -> JcR
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class Sqrt. ---
+// // -------------------
+
+// // DOMAINS 1) IcR -> JcR
+// // 2) R -> R
+// // 3) C -> C
+
+ // /////////////////////////////////
+
+// // --------------------
+// // --- Class Zeros. ---
+// // --------------------
+
+// // DOMAINS 1) {}->R
+// // 2) NxN -> R
+// // 3) R -> R
+// // 4) C -> R
+
+// /////////////////////////////////
+
+// // --------------------
+// // --- Class Sum. ---
+// // --------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+// // 3) RxSel -> R
+// // 4) CxSel -> R
+
+ // /////////////////////////////////
+
+// // --------------------
+// // --- Class Abs. ---
+// // --------------------
+
+// // DOMAINS 1) R -> R+
+// // 2) C -> R+
+
+// /////////////////////////////////
+
+// // ------------------------
+// // --- Class OpDotStar. ---
+// // ------------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxC -> C
+// // 3) RxC -> C
+// // 4) CxR -> C
+
+// /////////////////////////////////
+
+// // ------------------------
+// // --- Class OpDotHat. ---
+// // ------------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxC -> C
+
+// /////////////////////////////////
+
+// // ----------------------
+// // --- Class OpLogEq. ---
+// // ----------------------
+
+// // DOMAINS 1) RxR -> B
+// // 2) CxC -> B
+// // 3) GxG -> B
+
+// /////////////////////////////////
+
+// // ---------------------
+// // --- Class OpStar. ---
+// // ---------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxC -> C
+// // 3) RxC -> C
+// // 4) CxR -> C
+
+// /////////////////////////////////
+
+// // ---------------------
+// // --- Class OpApex. ---
+// // ---------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+
+// /////////////////////////////////
+
+// // ---------------------
+// // --- Class OpPlus. ---
+// // ---------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+// // 3) RxR -> R
+// // 4) CxC -> C
+// // 5) RxC -> C
+// // 6) CxR -> C
+// // 7) GxG -> G
+
+// /////////////////////////////////
+
+// // ----------------------
+// // --- Class OpMinus. ---
+// // ----------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+// // 3) RxR -> R
+// // 4) CxC -> C
+// // 5) RxC -> C
+// // 6) CxR -> C
+
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class OpRc. ---
+// // -------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxC -> C
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class OpCc. ---
+// // -------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxC -> C
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class Find. ---
+// // -------------------
+
+// // DOMAINS 1) R -> N
+// // 2) R -> {N,N}
+// // 3) RxN -> N
+// // 4) RxN ->{N,N}
+
+// /////////////////////////////////
+
+// // ---------------------
+// // --- Class Length. ---
+// // ---------------------
+
+// // DOMAINS 1) R -> N
+// // 2) C -> N
+// // 3) G -> N
+
+// /////////////////////////////////
+
+// // -------------------
+// // --- Class Size. ---
+// // -------------------
+
+// // DOMAINS 1) R -> {N,N}
+// // 2) C -> {N,N}
+// // 3) RxSel -> {N,N}
+// // 4) CxSel -> {N,N}
+
+// /////////////////////////////////
+
+// // ---------------------
+// // --- Class Return. ---
+// // ---------------------
+// // DOMAINS 1) {} -> {}
+
+// /////////////////////////////////
+
+// // ----------------------
+// // --- Class OpColon. ---
+// // ----------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) RxRxR -> R
+
+// /////////////////////////////////
+
+// // ----------------------
+// // --- Class IsEmpty. ---
+// // ----------------------
+
+// // DOMAINS 1) R -> B
+// // 2) C -> B
+
+// /////////////////////////////////
+
+// // ----------------------
+// // --- Class Trace. ---
+// // ----------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+
+// ////////////////////////////////
+
+// // --------------------
+// // --- Class OpIns. ---
+// // --------------------
+
+// // DOMAINS 1) RxRxR -> {}
+// // 2) RxRxRxR -> {}
+// // 3) CxRxR -> {}
+// // 4) CxRxRxC -> {}
+// // 5) CxRxC -> {}
+
+// ////////////////////////////////
+
+// // --------------------
+// // --- Class OpExt. ---
+// // --------------------
+
+// // DOMAINS 1) RxR -> R
+// // 2) CxR -> C
+// // 3) CxRxR -> C
+
+// ////////////////////////////////
+
+// // -------------------
+// // --- Class Disp. ---
+// // -------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> R
+// // 3) G -> R
+
+// ////////////////////////////////
+
+// // ----------------------
+// // --- Class OpEqual. ---
+// // ----------------------
+
+// // DOMAINS 1) R -> R
+// // 2) C -> C
+// // 3) G -> G
+
+// ////////////////////////////////
+
+// // --------------------
+// // --- Class Mopen. ---
+// // --------------------
+
+// // DOMAINS 1) G -> F
+// // 2) GxG -> F
+// // 3) GxGxR -> {F,R}
+// // 4) G -> {F,R}
+// // 5) GxG -> {F,R}
+
+// ////////////////////////////////
+
+// // -------------------
+// // --- Class Mput. ---
+// // -------------------
+
+// // DOMAINS 1) RxGxF -> {}
+// // 2) RxGxF -> N
+
+// ////////////////////////////////
+
+// // -------------------
+// // --- Class Mget. ---
+// // -------------------
+
+// // DOMAINS 1) RxGxF -> N
+
+// ////////////////////////////////
+
+// // ---------------------
+// // --- Class Mclose. ---
+// // ---------------------
+
+// // DOMAINS 1) {} -> N
+// // 2) F -> N
+
+// ////////////////////////////////
+
+// // ---------------------
+// // --- Class Mseek. ---
+// // ---------------------
+
+// // DOMAINS 1) R -> {}
+// // 2) RxF -> {}
+// // 3) RxFxG -> {}
+
+// ////////////////////////////////
+
+// // ---------------------
+// // --- Class Convol. ---
+// // ---------------------
+
+// // DOMAINS 1) RxR->R
+ // 2) CxC->C
+ // 3) RxC->C
+ // 4) CxR->C
+ // 5) RxR->{R,R}
+ // 6) CxC->{C,C}
+ // 7) RxC->{C,C}
+ // 8) CxR->{C,C}
+ // 9) CxC->{C,C}
+ // 10) RxRxR->{R,R}
+ // 11) RxCxC->{C,C}
+ // and so on …..
+
+
+// ////////////////////////////////
+
+
+// // -------------------
+// // --- Class IFFT. ---
+// // -------------------
+
+// // DOMAINS 1) R->C
+ // 2) C->C
+
+ // ////////////////////////////////
+
+// // ------------------
+// // --- Class FFT. ---
+// // ------------------
+
+// // DOMAINS 1) R->C
+ // 2) RxN->C
+ // 3) C->C
+ // 4) CxN->C
+ // 5) RxNxN->C
+ // 6) CxNxN->C
+ // 7) RxNxNxN->C
+ // 8) CxNxNxN->C
+
+// ////////////////////////////////
+
+// // -----------------------
+// // --- Class FFTShift. ---
+// // -----------------------
+
+// // DOMAINS 1) R->R
+ // 2) C->C
+ // 3) RxR->R
+ // 4) RxG->R
+ // 5) CxR->C
+ // 6) CxG->C
+
+// ////////////////////////////////
+
+// // --------------------
+// // --- Class Meanf. ---
+// // --------------------
+
+// // DOMAINS 1) R->R
+ // 2) C->C
+ // 3) CxSel->C
+ // 4) RxSel->R
+
+// ////////////////////////////////
+
+// // --------------------
+// // --- Class Frmag. ---
+// // --------------------
+
+// // DOMAINS 1) RxN->R
+ // 2) RxN->{R,R}
+ // 3) RxRxN->R
+ // 4) RxRxN->{R,R}
+
+// ////////////////////////////////
+
+// // ------------------
+// // --- Class Lev. ---
+// // ------------------
+
+// // DOMAINS 1) R->R
+ // 2) R->{R,R}
+ // 3) R->{R,R,R}
+ // 4) C->C
+ // 5) C->{C,C}
+ // 6) C->{C,C,C}
+
+// ////////////////////////////////
+
+// // --------------------------
+// // --- Class OpBackSlash. ---
+// // --------------------------
+
+// // DOMAINS 1) RxR->R
+ // 2) CxC->C
+ // 3) RxC->C
+ // 4) CxR->C
+
+// ////////////////////////////////
+
+// // -----------------------
+// // --- Class Cepstrum. ---
+// // -----------------------
+
+// // DOMAINS 1) RxR->C
+ // 2) RxC->C
+
+// ////////////////////////////////
+
+// // -----------------------
+// // --- Class Spec. ---
+// // -----------------------
+
+// // DOMAINS 1) R->R
+ // 2) C->C
+ // 3) R->{R,R}
+ // 4) C->{C,C}
+
+// ////////////////////////////////
+
+// // -------------------
+// // --- Class Part. ---
+// // -------------------
+
+// // DOMAINS 1) GxN->G
+
+// ////////////////////////////////
+
+// // -----------------------
+// // --- Class Strindex. ---
+// // -----------------------
+
+// // DOMAINS 1) GxG->N
+
+// ////////////////////////////////
+
+// // -----------------------
+// // --- Class StrSubSt. ---
+// // -----------------------
+
+// // DOMAINS 1) GxGxG->G
+
+// ////////////////////////////////
+
+
+// ////////////////////////////////
+// ////////////////////////////////
+// // fine parte introdotta alberto
+// ////////////////////////////////
+// ////////////////////////////////
+
+// //RNU se puoi sistema meglio la parte introdotta da al.
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenAnnFLFunctions.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenAnnFLFunctions.sci
new file mode 100644
index 00000000..d72b85f8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenAnnFLFunctions.sci
@@ -0,0 +1,18 @@
+function INIT_GenAnnFLFunctions(FunctionName,FunctionsOutDir,ClassName,ReportFile,ExtensionCAnnFun)
+// function INIT_GenAnnFLFunctions(FunctionName,FunctionsOutDir,ClassName,ReportFile,ExtensionCAnnFun)
+// -----------------------------------------------------------------
+//
+// Status:
+// 17-Jun-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),5,5);
+
+FunctionExtension = ExtensionCAnnFun;
+FunctionFileName = fullfile(FunctionsOutDir,FunctionName+FunctionExtension);
+PrintStringInfo('CLASS: '+ClassName,FunctionFileName,'file','y');
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenFileInfo.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenFileInfo.sci
new file mode 100644
index 00000000..6c44eeab
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenFileInfo.sci
@@ -0,0 +1,74 @@
+function FileInfo = INIT_GenFileInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths)
+// function FileInfo = INIT_GenFileInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths)
+// -----------------------------------------------------------------
+//
+// Status:
+// 03-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+FileInfo.SCI2CMainDir = pwd();
+FileInfo.WorkingDir = WorkingDir;
+FileInfo.OutCCCodeDir = OutCCCodeDir;
+FileInfo.UserSciFilesPaths = UserSciFilesPaths;
+
+FileInfo.FileInfoDatFile = fullfile(FileInfo.WorkingDir,'FileInfo.dat');
+FileInfo.SharedInfoDatFile = fullfile(FileInfo.WorkingDir,'SharedInfo.dat');
+FileInfo.GlobalVarFileName = fullfile(FileInfo.WorkingDir,'GBLVAR.dat');
+FileInfo.ASTStackDataFile = fullfile(FileInfo.WorkingDir,'ASTStack.dat');
+
+FileInfo.SCI2CLibDir = fullfile(FileInfo.WorkingDir,'SCI2CLib');
+
+FileInfo.SCI2CLibSCIAnnDir = fullfile(FileInfo.SCI2CLibDir,'SCIAnnotations');
+FileInfo.SCI2CLibSCIAnnFun = fullfile(FileInfo.SCI2CLibSCIAnnDir,'Functions');
+FileInfo.SCI2CLibSCIAnnCls = fullfile(FileInfo.SCI2CLibSCIAnnDir,'Classes');
+
+FileInfo.SCI2CLibSCIFunListDir = fullfile(FileInfo.SCI2CLibDir,'SCIFunctionList');
+FileInfo.SCI2CLibSCIFLFun = fullfile(FileInfo.SCI2CLibSCIFunListDir,'Functions');
+FileInfo.SCI2CLibSCIFLCls = fullfile(FileInfo.SCI2CLibSCIFunListDir,'Classes');
+
+FileInfo.SCI2CLibCAnnDir = fullfile(FileInfo.SCI2CLibDir,'CAnnotations');
+FileInfo.SCI2CLibCAnnFun = fullfile(FileInfo.SCI2CLibCAnnDir,'Functions');
+FileInfo.SCI2CLibCAnnCls = fullfile(FileInfo.SCI2CLibCAnnDir,'Classes');
+
+FileInfo.SCI2CLibCFunListDir = fullfile(FileInfo.SCI2CLibDir,'CFunctionList');
+FileInfo.SCI2CLibCFLFun = fullfile(FileInfo.SCI2CLibCFunListDir,'Functions');
+FileInfo.SCI2CLibCFLCls = fullfile(FileInfo.SCI2CLibCFunListDir,'Classes');
+
+
+FileInfo.USER2CLibDir = fullfile(FileInfo.WorkingDir,'USER2CLib');
+
+FileInfo.USER2CLibSCIAnnDir = fullfile(FileInfo.USER2CLibDir,'SCIAnnotations');
+FileInfo.USER2CLibSCIAnnFun = fullfile(FileInfo.USER2CLibSCIAnnDir,'Functions');
+FileInfo.USER2CLibSCIAnnCls = fullfile(FileInfo.USER2CLibSCIAnnDir,'Classes');
+
+FileInfo.USER2CLibSCIFunListDir = fullfile(FileInfo.USER2CLibDir,'SCIFunctionList');
+FileInfo.USER2CLibSCIFLFun = fullfile(FileInfo.USER2CLibSCIFunListDir,'Functions');
+FileInfo.USER2CLibSCIFLCls = fullfile(FileInfo.USER2CLibSCIFunListDir,'Classes');
+
+FileInfo.USER2CLibCAnnDir = fullfile(FileInfo.USER2CLibDir,'CAnnotations');
+FileInfo.USER2CLibCAnnFun = fullfile(FileInfo.USER2CLibCAnnDir,'Functions');
+FileInfo.USER2CLibCAnnCls = fullfile(FileInfo.USER2CLibCAnnDir,'Classes');
+
+FileInfo.USER2CLibCFunListDir = fullfile(FileInfo.USER2CLibDir,'CFunctionList');
+FileInfo.USER2CLibCFLFun = fullfile(FileInfo.USER2CLibCFunListDir,'Functions');
+FileInfo.USER2CLibCFLCls = fullfile(FileInfo.USER2CLibCFunListDir,'Classes');
+
+FileInfo.FunctionList.MainDir = fullfile(FileInfo.WorkingDir,'FunctionList');
+FileInfo.FunctionList.SCI2CAvailableCDat = fullfile(FileInfo.FunctionList.MainDir,'SCI2CAvailableC.dat');
+FileInfo.FunctionList.USER2CAvailableCDat = fullfile(FileInfo.FunctionList.MainDir,'USER2CAvailableC.dat');
+FileInfo.FunctionList.ConvertedDat = fullfile(FileInfo.FunctionList.MainDir,'Converted.dat');
+FileInfo.FunctionList.ToBeConvertedDat = fullfile(FileInfo.FunctionList.MainDir,'ToBeConverted.dat');
+FileInfo.FunctionList.FunInfoDatDir = fullfile(FileInfo.FunctionList.MainDir,'FunInfoDatFiles');
+
+FileInfo.GeneralReport = fullfile(FileInfo.WorkingDir,'SCI2CGeneralReport.txt');
+
+FileInfo.CStyleSCI2CMainDir = ConvertPathMat2C(FileInfo.SCI2CMainDir,SharedInfo.CCompilerPathStyle);
+FileInfo.CStyleOutCCCodeDir = ConvertPathMat2C(OutCCCodeDir,SharedInfo.CCompilerPathStyle);
+FileInfo.MakefileFilename = fullfile(FileInfo.CStyleOutCCCodeDir,'Makefile');
+FileInfo.MakefileTemplate = fullfile(FileInfo.SCI2CMainDir,'CCodeGeneration','SCI2CMakefileTemplate.rc');
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenLibraries.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenLibraries.sci
new file mode 100644
index 00000000..3b04c29d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenLibraries.sci
@@ -0,0 +1,27 @@
+function INIT_GenLibraries(FileInfoDatFile)
+// function INIT_GenLibraries(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Jun-2007 -- Nutricato Raffaele: Author.
+// 03-Jan-2008 -- Nutricato Raffaele: Changed directory structure.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+clear FileInfo
+load(FileInfoDatFile,'FileInfo');
+
+clear SharedInfo
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+PrintStepInfo('Initialize SCI2C and USER2C Libraries.',...
+ FileInfo.GeneralReport,'both');
+
+INIT_FillSCI2LibCDirs(FileInfo,SharedInfo.Extension);
+
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenSharedInfo.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenSharedInfo.sci
new file mode 100644
index 00000000..bf6a9357
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_GenSharedInfo.sci
@@ -0,0 +1,71 @@
+function SharedInfo = INIT_GenSharedInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths,...
+ RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName)
+// function SharedInfo = INIT_GenSharedInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths,...
+// RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 03-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),8,8);
+
+SharedInfo.CCompilerPathStyle = CCompilerPathStyle;
+SharedInfo.RunMode = RunMode;
+SharedInfo.Sci2CLibMainHeaderFName = ConvertPathMat2C(Sci2CLibMainHeaderFName,SharedInfo.CCompilerPathStyle);
+
+SharedInfo.NextSCIFileName = UserScilabMainFile;
+[scipath,funname,sciext] = fileparts(UserScilabMainFile);
+SharedInfo.SCIMainFunName = funname;
+SharedInfo.CMainFunName = 'main';
+SharedInfo.NextSCIFunName = SharedInfo.SCIMainFunName; //NUT: per ora no so cosa metter
+SharedInfo.NextCFunName = SharedInfo.CMainFunName; //NUT: per ora no so cosa metter //NUT: questo viene aggiornato dalla C_Funcall
+SharedInfo.NextSCIFunNumber = 1;
+SharedInfo.NFilesToTranslate = 1;
+
+
+SharedInfo.Annotations.GBLVAR = 'global';
+SharedInfo.Annotations.DataPrec = {'SCI2Cint','float','double'};
+SharedInfo.Annotations.FUNNIN = 'NIN=';
+SharedInfo.Annotations.FUNNOUT = 'NOUT=';
+SharedInfo.Annotations.FUNTYPE = '''OUT(''+string(SCI2C_nout)+'').TP='''; // Type includes also precision.
+SharedInfo.Annotations.FUNSIZE = '''OUT(''+string(SCI2C_nout)+'').SZ(''+string(SCI2C_nelem)+'')= ''';
+SharedInfo.Annotations.FUNCLASS = 'CLASS: ';
+SharedInfo.Annotations.USERFUN = '//SCI2C: ';
+
+SharedInfo.TotTempScalarVars = TotTempScalarVars;
+SharedInfo.UsedTempScalarVars = 0;
+SharedInfo.TempScalarVarsName = '__Scalar';
+SharedInfo.WorkAreaUsedBytes = WorkAreaSizeBytes;
+SharedInfo.UsedTempScalarVars = WorkAreaSizeBytes;
+SharedInfo.ASTReader.fidAST = -1;
+SharedInfo.ASTReader.UsedTempVars = 0;
+SharedInfo.ASTReader.TempVarsName = '__temp';
+SharedInfo.ASTReader.TempForCntVarsName = '__tmpcnt';
+SharedInfo.ASTReader.TempForValVarsName = '__TmpVal';
+SharedInfo.ASTReader.TempWhileCntVarsName = '__tmpWhilecnt';//NUT: vedi se serve.
+SharedInfo.ASTReader.TempWhileValVarsName = '__TmpWhileVal'; //NUT: vedi se serve
+SharedInfo.ASTReader.EnableTempVarsReuse = EnableTempVarsReuse; //NUT: non so se la devo rimuovere.
+SharedInfo.ASTReader.ReusableTempVars = [];//NUT: to be removed
+
+SharedInfo.NIndent = 0; // Indentation Level.
+SharedInfo.SkipNextEqual = 0; // 1 = the next equal in the AST will not produce C code.
+SharedInfo.SkipNextPrec = 0; // 1 = the next precision specifier in the AST will not produce C code.
+SharedInfo.SkipNextFun = 0;
+SharedInfo.CopySciCodeIntoCCode = CopySciCodeIntoCCode;
+SharedInfo.CountNestedIf = 0; // Number of nested if.
+
+SharedInfo.CFunId.OpColon = 3;
+SharedInfo.CFunId.EqScalar = 4;
+SharedInfo.CFunId.EqMatrix = 5;
+SharedInfo.CFunId.GenFunMtx = 6; // (scalar functions are fall in the scalar equal category.)
+
+SharedInfo = INIT_SharedInfoEqual(SharedInfo);
+SharedInfo.Extension.AnnotationFunctions = '.ann'; // Stands for annotation
+SharedInfo.Extension.AnnotationClasses = '.acls'; // Stands for annotation class.
+SharedInfo.Extension.FuncListFunctions = '.lst'; // Stands for list
+SharedInfo.Extension.FuncListClasses = '.lcls'; // Stands for list class
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci
new file mode 100644
index 00000000..768442a4
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci
@@ -0,0 +1,41 @@
+function INIT_LoadLibraries(FileInfoDatFile)
+// function INIT_LoadLibraries(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Jun-2007 -- Raffaele Nutricato: Author.
+// 03-Jan-2008 -- Raffaele Nutricato: Changed directory structure.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+clear FileInfo
+load(FileInfoDatFile,'FileInfo');
+
+clear SharedInfo
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+PrintStepInfo('Load SCI2C and USER2C Libraries.',FileInfo.GeneralReport,'both');
+
+SCI2CAvailableC = [];
+USER2CAvailableC = [];
+Converted = [];
+ToBeConverted(1).SCIFunctionName = SharedInfo.NextSCIFunName;
+ToBeConverted(1).CFunctionName = SharedInfo.NextCFunName;
+
+[SCI2CAvailableC,SCI2CNElem] = FL_ExtractFuncList(FileInfo.SCI2CLibCFLFun,FileInfo.SCI2CLibCFLCls,...
+ SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
+
+[USER2CAvailableC,USER2CNElem] = FL_ExtractFuncList(FileInfo.USER2CLibCFLFun,FileInfo.USER2CLibCFLCls,...
+ SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
+
+Available = SCI2CAvailableC;
+save(FileInfo.FunctionList.SCI2CAvailableCDat,Available);
+Available = USER2CAvailableC;
+save(FileInfo.FunctionList.USER2CAvailableCDat,Available);
+save(FileInfo.FunctionList.ConvertedDat,Converted);
+save(FileInfo.FunctionList.ToBeConvertedDat,ToBeConverted);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_RemoveDirs.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_RemoveDirs.sci
new file mode 100644
index 00000000..900167bd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_RemoveDirs.sci
@@ -0,0 +1,42 @@
+function INIT_RemoveDirs(FileInfo,SharedInfoRunMode)
+// function INIT_RemoveDirs(FileInfo,SharedInfoRunMode)
+// -----------------------------------------------------------------
+//
+// Output data:
+// ---
+//
+// Status:
+// 03-Jan-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),2,2);
+
+if (SharedInfoRunMode == 'GenLibraryStructure' | SharedInfoRunMode == 'All')
+ disp('Removing directory: '+FileInfo.WorkingDir);
+ disp('Removing directory: '+FileInfo.OutCCCodeDir);
+ yesno = 'y';
+ if (yesno=='y')
+ rmdir(FileInfo.WorkingDir,'s');
+ rmdir(FileInfo.OutCCCodeDir,'s');
+ else
+ SCI2Cerror('Cannot continue, because you don''t want to delete: '+FileInfo.WorkingDir);
+ SCI2Cerror('Cannot continue, because you don''t want to delete: '+FileInfo.OutCCCodeDir);
+ end
+elseif (SharedInfoRunMode == 'Translate')
+ disp('Removing directory: '+FileInfo.OutCCCodeDir);
+ yesno = 'y';
+ if (yesno=='y')
+ rmdir(FileInfo.OutCCCodeDir,'s');
+ else
+ SCI2Cerror('Cannot continue, because you don''t want to delete: '+FileInfo.OutCCCodeDir);
+ end
+else
+ disp('Unknown RunMode: ""'+SharedInfoRunMode+'"".');
+ disp('Please check RunMode parameter in the SCI2CInputParameters.sce file');
+ SCI2Cerror(' ');
+end
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2C.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2C.sci
new file mode 100644
index 00000000..8e2d28b8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2C.sci
@@ -0,0 +1,77 @@
+function [FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile)
+// function [FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile)
+// -----------------------------------------------------------------
+// Status:
+// 13-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+exec(SCI2CInputPrmFile);
+WorkAreaSizeBytes = 2000*8; // 2000 locations of double
+TotTempScalarVars = 20;
+EnableTempVarsReuse = 0; // 0 = Disable; 1 = Enable.
+
+
+[SCI2CResultDir,tmpfile,tmpext] = fileparts(SCI2CInputPrmFile);
+
+WorkingDir = fullfile(SCI2CResultDir,'SCI2CTmpResultsReports');
+OutCCCodeDir = fullfile(SCI2CResultDir,'C_Code');
+
+SharedInfo = INIT_GenSharedInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths,...
+ RunMode,UserScilabMainFile,TotTempScalarVars,EnableTempVarsReuse,Sci2CLibMainHeaderFName);
+
+FileInfo = INIT_GenFileInfo(WorkingDir,OutCCCodeDir,UserSciFilesPaths);
+PrintStepInfo('SCI2C hArtes/POLIBA Tool!!!',FileInfo.GeneralReport,'stdout');
+
+INIT_RemoveDirs(FileInfo,SharedInfo.RunMode);
+
+INIT_CreateDirs(FileInfo);
+PrintStepInfo('SCI2C hArtes/POLIBA Tool!!!',FileInfo.GeneralReport,'file');
+
+GlobalVars = [];
+save(FileInfo.GlobalVarFileName,GlobalVars);
+
+clear FunInfo
+FunInfo.SCIFunctionName = SharedInfo.NextSCIFunName;
+FunInfo.CFunctionName = SharedInfo.NextCFunName;
+FunInfo.FunPrecSpecifier = ''; //NUT: si riferiscono al main verifica se sono corrette
+FunInfo.FunTypeAnnot = ''; //NUT: si riferiscono al main verifica se sono corrette
+FunInfo.FunSizeAnnot = ''; //NUT: si riferiscono al main verifica se sono corrette
+FunInfo.NInArg = 0;//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(1).Name = '';//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(1).Type = '';//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(1).Value = %nan;//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(1).Size(1) = '';//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(1).Dimension = '';//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.InArg(2).Size(2) = '';//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.NOutArg = 0;//NUT: si riferiscono al main verifica se sono corrette
+FunInfo.OutArg(1).Name = '';
+FunInfo.OutArg(1).Type = '';
+FunInfo.OutArg(1).Size(1) = '';
+FunInfo.OutArg(1).Size(2) = '';
+FunInfo.OutArg(1).Dimension = '';
+FunInfo.PosFirstOutScalar = 0;
+FunInfo.LibTypeInfo = 'USER2C';
+save(fullfile(FileInfo.FunctionList.FunInfoDatDir,FunInfo.CFunctionName+'.dat'),FunInfo);
+clear FunInfo
+
+clear ASTStack
+ASTStack.SCI2CSTACK = 'EMPTYSTACK';
+ASTStack.StackPosition = 1;
+ASTStack.STACKDEDUG = 0;
+save(FileInfo.ASTStackDataFile,ASTStack);
+clear ASTStack
+
+save(FileInfo.FileInfoDatFile,FileInfo);
+save(FileInfo.SharedInfoDatFile,SharedInfo);
+FileInfoDatFile = FileInfo.FileInfoDatFile;
+SharedInfoDatFile = FileInfo.SharedInfoDatFile;
+
+global anscounter; //NUT: just to fix problem with ans variables.
+anscounter = 0;
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2CLoader.sce b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2CLoader.sce
new file mode 100644
index 00000000..bd07f892
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SCI2CLoader.sce
@@ -0,0 +1,72 @@
+// -----------------------------------------------------------------
+// Load SCI2C directories and files.
+//
+// Input data:
+// SCI2CLoaderMainDir: path of the directory where this script (main.sce) is stored.
+//
+// Output data:
+// ---
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CLoaderMainDir = '..';
+
+// ---------------------------
+// --- Define Directories. ---
+// ---------------------------
+// Directory containing functions related to the management of the Abstract Syntactic tree.
+ASTManagement = 'ASTManagement';
+
+// Directory containing functions that produce the C code.
+CCodeGeneration = 'CCodeGeneration';
+
+// Directory containing functions that perform general tasks.
+GeneralFunctions = 'GeneralFunctions';
+
+// Directory containing functions that perform the initialization of the SCI2C tool.
+ToolInitialization = 'ToolInitialization';
+
+// Directory containing functions that perform the function annotation.
+FunctionAnnotation = 'FunctionAnnotation';
+
+// Directory containing functions that handle symbol table.
+SymbolTable = 'SymbolTable';
+
+// Directory containing functions that handle function lists.
+FunctionList = 'FunctionList';
+
+// Directory containing functions that print SCI2C error messages.
+ErrorMessages = 'ErrorMessages';
+
+
+// -------------------------------
+// --- End Define Directories. ---
+// -------------------------------
+
+// -------------
+// --- getd. ---
+// -------------
+getd(fullfile(SCI2CLoaderMainDir,ASTManagement));
+getd(fullfile(SCI2CLoaderMainDir,CCodeGeneration));
+getd(fullfile(SCI2CLoaderMainDir,GeneralFunctions));
+getd(fullfile(SCI2CLoaderMainDir,ToolInitialization));
+getd(fullfile(SCI2CLoaderMainDir,FunctionAnnotation));
+getd(fullfile(SCI2CLoaderMainDir,SymbolTable));
+getd(fullfile(SCI2CLoaderMainDir,FunctionList));
+getd(fullfile(SCI2CLoaderMainDir,ErrorMessages));
+// -----------------
+// --- End getd. ---
+// -----------------
+
+// -------------
+// --- exec. ---
+// -------------
+exec(fullfile(SCI2CLoaderMainDir,ASTManagement,'%program_p.sci'));
+// -----------------
+// --- End exec. ---
+// -----------------
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SharedInfoEqual.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SharedInfoEqual.sci
new file mode 100644
index 00000000..95fc644f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_SharedInfoEqual.sci
@@ -0,0 +1,21 @@
+function SharedInfo = INIT_SharedInfoEqual(SharedInfo)
+// function SharedInfo = INIT_SharedInfoEqual(SharedInfo)
+// -----------------------------------------------------------------
+// Status:
+// 13-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+SharedInfo.Equal.Enabled = 0; // 1 means enabled -> we are inside an equal AST block.
+SharedInfo.Equal.NInArg = 0;
+SharedInfo.Equal.InArg(1).Name = '';
+SharedInfo.Equal.NOutArg = 0;
+SharedInfo.Equal.OutArg(1).Name = '';
+SharedInfo.Equal.Lhs = 0;
+SharedInfo.Equal.Nins = 0; // Counts the number of ins found in the lhs of the Equal.
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/ManageNextConversion.sci b/src/Scilab2C/Scilab2C/ToolInitialization/ManageNextConversion.sci
new file mode 100644
index 00000000..c24f6b63
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/ManageNextConversion.sci
@@ -0,0 +1,47 @@
+function FlagContinueTranslation = ManageNextConversion(FileInfoDatFile)
+// function FlagContinueTranslation = ManageNextConversion(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+load(FileInfoDatFile,'FileInfo');
+
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+load(FileInfo.FunctionList.ToBeConvertedDat,'ToBeConverted');
+FlagContinueTranslation = 0;
+
+C_FinalizeCode(FileInfo,SharedInfo);
+
+SharedInfo.NFilesToTranslate = SharedInfo.NFilesToTranslate - 1;
+if (SharedInfo.NFilesToTranslate >= 1)
+ ToBeConverted(1) = [];
+ FlagContinueTranslation = 1;
+ SharedInfo.NextSCIFunName = ToBeConverted(1).SCIFunctionName;
+ SharedInfo.NextCFunName = ToBeConverted(1).CFunctionName;
+ SharedInfo.NextSCIFunNumber = SharedInfo.NextSCIFunNumber + 1;
+ [FlagFound,SharedInfo.NextSCIFileName] = ...
+ SCI2CFindFile(FileInfo.UserSciFilesPaths,SharedInfo.NextSCIFunName+'.sci');
+ if (FlagFound == 0)
+ SCI2CerrorFile('Cannot find a scilab file to generate ""'+SharedInfo.NextCFunName+'"".',...
+ FileInfo.GeneralReport);
+ end
+end
+
+
+save(FileInfo.SharedInfoDatFile,SharedInfo);
+clear SharedInfo
+
+save(FileInfo.FunctionList.ToBeConvertedDat,ToBeConverted);
+clear ToBeConverted
+
+clear FileInfo
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.bkp b/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.bkp
new file mode 100644
index 00000000..7af3343c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.bkp
@@ -0,0 +1,87 @@
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+// === ===
+// === *************** ===
+// === USER PARAMETERS ===
+// === *************** ===
+// === ===
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------------------
+// --- Specify Paths of User Scilab code. ---
+// ------------------------------------------
+UserSciCodeMainDir = 'C:\SCI2CTests\RegressionTests\test999';
+
+// --- Path + filename of the .sci main file of the code to be translated. ---
+// It is the entry point.
+UserScilabMainFile = fullfile(UserSciCodeMainDir,'scilabcode\mainfun.sci');
+
+// --- List of the paths containing the .sci files written by the user. ---
+UserSciFilesPaths = ...
+ [...
+ fullfile(UserSciCodeMainDir,'scilabcode');...
+ ];
+
+// --------------------------
+// --- End Specify paths. ---
+// --------------------------
+
+
+// ----------------------------
+// --- Select the run mode. ---
+// ----------------------------
+//RunMode = 'GenLibraryStructure';
+//RunMode = 'Translate';
+RunMode = 'All';
+
+// --- Select one of the following options. ---
+
+// 'GenLibraryStructure';
+// Generates the library structure and exits. It is very
+// useful when the user wants to manually change the files stored in that structure
+// before running the translation. 'GenLibraryStructure' option forces SCI2C to remove
+// the already existing WorkingDir and OutCCCodeDir directories.
+
+// 'Translate';
+// Performs the translation without generating the library structure. It means that the library
+// structure must be already existing. This is useful when the user doesn't want to spend time
+// to generate again that structure or when he wants to force the SCI2C tool to access to
+// a manually-changed library structure. 'Translate' option forces SCI2C to don't remove
+// the already existing WorkingDir. Only OutCCCodeDir directory will be removed.
+
+// 'All';
+// Performs all the actions listed above.
+
+// --------------------------------
+// --- End Select the run mode. ---
+// --------------------------------
+
+
+// ----------------------------
+// --- Translation Options. ---
+// ----------------------------
+// --- Enable (1) / Disable (0) copy of Scilab code into C code. ---
+// If 1 the Scilab code will be copied into the C code in order to show
+// how each Scilab code line has been translated into C code.
+CopySciCodeIntoCCode = 1;
+
+// --- Select the path style for the C code. ---
+// It can be:
+// windows
+// unix
+// cygwin
+CCompilerPathStyle = 'cygwin';
+
+// --- Path + File name of the main SCI2C library header file.
+Sci2CLibMainHeaderFName = 'C:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C\CFiles\sci2cincludes\sci2clib.h';
+// --------------------------------
+// --- End Translation Options. ---
+// --------------------------------
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.sce b/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.sce
new file mode 100644
index 00000000..7af3343c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/SCI2CInputParameters.sce
@@ -0,0 +1,87 @@
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+// === ===
+// === *************** ===
+// === USER PARAMETERS ===
+// === *************** ===
+// === ===
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------------------
+// --- Specify Paths of User Scilab code. ---
+// ------------------------------------------
+UserSciCodeMainDir = 'C:\SCI2CTests\RegressionTests\test999';
+
+// --- Path + filename of the .sci main file of the code to be translated. ---
+// It is the entry point.
+UserScilabMainFile = fullfile(UserSciCodeMainDir,'scilabcode\mainfun.sci');
+
+// --- List of the paths containing the .sci files written by the user. ---
+UserSciFilesPaths = ...
+ [...
+ fullfile(UserSciCodeMainDir,'scilabcode');...
+ ];
+
+// --------------------------
+// --- End Specify paths. ---
+// --------------------------
+
+
+// ----------------------------
+// --- Select the run mode. ---
+// ----------------------------
+//RunMode = 'GenLibraryStructure';
+//RunMode = 'Translate';
+RunMode = 'All';
+
+// --- Select one of the following options. ---
+
+// 'GenLibraryStructure';
+// Generates the library structure and exits. It is very
+// useful when the user wants to manually change the files stored in that structure
+// before running the translation. 'GenLibraryStructure' option forces SCI2C to remove
+// the already existing WorkingDir and OutCCCodeDir directories.
+
+// 'Translate';
+// Performs the translation without generating the library structure. It means that the library
+// structure must be already existing. This is useful when the user doesn't want to spend time
+// to generate again that structure or when he wants to force the SCI2C tool to access to
+// a manually-changed library structure. 'Translate' option forces SCI2C to don't remove
+// the already existing WorkingDir. Only OutCCCodeDir directory will be removed.
+
+// 'All';
+// Performs all the actions listed above.
+
+// --------------------------------
+// --- End Select the run mode. ---
+// --------------------------------
+
+
+// ----------------------------
+// --- Translation Options. ---
+// ----------------------------
+// --- Enable (1) / Disable (0) copy of Scilab code into C code. ---
+// If 1 the Scilab code will be copied into the C code in order to show
+// how each Scilab code line has been translated into C code.
+CopySciCodeIntoCCode = 1;
+
+// --- Select the path style for the C code. ---
+// It can be:
+// windows
+// unix
+// cygwin
+CCompilerPathStyle = 'cygwin';
+
+// --- Path + File name of the main SCI2C library header file.
+Sci2CLibMainHeaderFName = 'C:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C\CFiles\sci2cincludes\sci2clib.h';
+// --------------------------------
+// --- End Translation Options. ---
+// --------------------------------
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/UpdateSCI2CInfo.sci b/src/Scilab2C/Scilab2C/ToolInitialization/UpdateSCI2CInfo.sci
new file mode 100644
index 00000000..6f1fde29
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/UpdateSCI2CInfo.sci
@@ -0,0 +1,129 @@
+function UpdateSCI2CInfo(FileInfoDatFile)
+// function UpdateSCI2CInfo(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 13-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+clear FileInfo
+load(FileInfoDatFile,'FileInfo');
+
+clear SharedInfo
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+
+funname = SharedInfo.NextSCIFunName;
+funnumber = SharedInfo.NextSCIFunNumber;
+
+PrintStepInfo('Start translation of function ""'+funname+'""',...
+ FileInfo.GeneralReport,'both');
+FileInfo.Funct(funnumber).Name = funname;
+FileInfo.Funct(funnumber).SCIFileName = SharedInfo.NextSCIFileName;
+FileInfo.Funct(funnumber).ASTFileName = fullfile(FileInfo.WorkingDir,funname,funname+'.ast');
+FileInfo.Funct(funnumber).CPass1FileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1.c');
+FileInfo.Funct(funnumber).PfxP1ForProlFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1ProlFor');
+FileInfo.Funct(funnumber).PfxP1ForEpilFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1EpilFor');
+FileInfo.Funct(funnumber).PfxP1WhileProlFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1ProlWhile');
+FileInfo.Funct(funnumber).PfxP1WhileEpilFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1EpilWhile');
+FileInfo.Funct(funnumber).CPass1FreeFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass1free.c');
+FileInfo.Funct(funnumber).CPass2FileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_pass2.c');
+FileInfo.Funct(funnumber).Pass1HeaderFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'.h');
+FileInfo.Funct(funnumber).FinalCFileName = fullfile(FileInfo.OutCCCodeDir,SharedInfo.NextCFunName+'.c');
+FileInfo.Funct(funnumber).FinalHeaderFileName = fullfile(FileInfo.OutCCCodeDir,SharedInfo.NextCFunName+'.h');
+FileInfo.Funct(funnumber).CInitVarsFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_initvars.c');
+FileInfo.Funct(funnumber).CDeclarationFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_declarations.c');
+FileInfo.Funct(funnumber).CGblDeclarFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_globaldeclarations.c');
+FileInfo.Funct(funnumber).ReportFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'.rpt');
+FileInfo.Funct(funnumber).LocalVarFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_LOCVAR.dat');
+FileInfo.Funct(funnumber).TempVarFileName = fullfile(FileInfo.WorkingDir,funname,SharedInfo.NextCFunName+'_TMPVAR.dat');
+FileInfo.Funct(funnumber).SCICopyFileName = fullfile(FileInfo.WorkingDir,funname,funname+'_copy.sci');
+
+
+SharedInfo.NIndent = 0; // Indentation Level. Useful to produce indentated C code.
+SharedInfo.SkipNextEqual = 0; // 1 = the next equal in the AST will not produce C code.
+SharedInfo.SkipNextPrec = 0; // 1 = the next precision specifier in the AST will not produce C code.
+SharedInfo.SkipNextFun = 0; // 1 = the next function in the AST will not produce C code.
+SharedInfo.ASTReader.fidAST = -1;
+SharedInfo.CountNestedIf = 0;
+SharedInfo.CountForTempVars = 0;
+SharedInfo.For.Level = 0;
+SharedInfo.ForExpr.OnExec = 0;
+SharedInfo.ForExpr.IntCntArg = [];
+SharedInfo.ForExpr.MtxValCntArg = [];
+SharedInfo.ForExpr.SclValCntArg = [];
+SharedInfo.ForExpr.OpColonInfoIn1 = '';
+SharedInfo.ForExpr.OpColonInfoIn2 = '';
+SharedInfo.ForExpr.OpColonInfoIn3 = '';
+SharedInfo.ForExpr.AssignmentFun = 0;
+
+SharedInfo.WhileExpr.OnExec = 0;
+SharedInfo.WhileExpr.CondVar = '';
+SharedInfo.WhileExpr.DimCondVar = -1;
+SharedInfo.While.Level = 0;
+
+
+SharedInfo.CFunId.OpColon = 3;
+SharedInfo.CFunId.EqScalar = 4;
+SharedInfo.CFunId.EqMatrix = 5;
+SharedInfo.CFunId.GenFunMtx = 6; // (scalar functions are fall in the scalar equal category.)
+
+SharedInfo = INIT_SharedInfoEqual(SharedInfo);
+
+
+Converted = FL_UpdateConverted(SharedInfo.NFilesToTranslate,FileInfo.FunctionList.ConvertedDat);
+
+rmdir(fullfile(FileInfo.WorkingDir,funname),'s');
+mkdir(FileInfo.WorkingDir,funname);
+
+PrintStringInfo(' ',FileInfo.Funct(funnumber).SCICopyFileName,'file','y'); // Cannot use copyfile when the directory is empty!.
+SCI2Ccopyfile(FileInfo.Funct(funnumber).SCIFileName,FileInfo.Funct(funnumber).SCICopyFileName,'overwrite');
+
+FileInfo.Funct(funnumber).SCICopyFileFid = SCI2COpenFileRead(FileInfo.Funct(funnumber).SCICopyFileName);
+scicopyfid = FileInfo.Funct(funnumber).SCICopyFileFid;
+CPass1FileName = FileInfo.Funct(funnumber).CPass1FileName;
+IndentLevel = SharedInfo.NIndent;
+FoundFunctionKey = 0;
+PrintStringInfo(C_IndentBlanks(IndentLevel)+'/*',CPass1FileName,'file','y');
+PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: ------------------------------------------------------------------',CPass1FileName,'file','y');
+while (~meof(scicopyfid) & (FoundFunctionKey==0))
+ sciline = mgetl(scicopyfid,1);
+ noblkssciline = stripblanks(sciline);
+ if (SCI2Cstrncmps1size('function',noblkssciline))
+ FoundFunctionKey = 1;
+ end
+ PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: '+sciline,CPass1FileName,'file','y');
+end
+PrintStringInfo(C_IndentBlanks(IndentLevel)+' SCI2C: ------------------------------------------------------------------',CPass1FileName,'file','y');
+PrintStringInfo(C_IndentBlanks(IndentLevel)+'*/',CPass1FileName,'file','y');
+
+PrintStringInfo(' ',FileInfo.Funct(funnumber).CDeclarationFileName,'file','y');
+PrintStringInfo(' ',FileInfo.Funct(funnumber).CGblDeclarFileName,'file','y');
+PrintStringInfo(' ',FileInfo.Funct(funnumber).CInitVarsFileName,'file','y');
+CPass1FreeFileName = FileInfo.Funct(funnumber).CPass1FreeFileName;
+PrintStringInfo(' ',CPass1FreeFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(1)+'/*',CPass1FreeFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(1)+'** --------------------- ',CPass1FreeFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(1)+'** --- Free Section. --- ',CPass1FreeFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(1)+'** --------------------- ',CPass1FreeFileName,'file','y');
+PrintStringInfo(C_IndentBlanks(1)+'*/',CPass1FreeFileName,'file','y');
+
+LocalVars = [];
+TempVars = [];
+
+SharedInfo.DefaultPrecision = ...
+ FA_GetDefaultPrecision(FileInfo.Funct(funnumber).SCICopyFileName,FileInfo.Funct(funnumber).ReportFileName);
+
+save(FileInfoDatFile,FileInfo);
+
+save(FileInfo.SharedInfoDatFile,SharedInfo);
+save(FileInfo.Funct(funnumber).LocalVarFileName,LocalVars);
+save(FileInfo.Funct(funnumber).TempVarFileName,TempVars);
+
+save(FileInfo.FunctionList.ConvertedDat,Converted);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/doublecomplex.sci b/src/Scilab2C/Scilab2C/ToolInitialization/doublecomplex.sci
new file mode 100644
index 00000000..e6ce84f6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/doublecomplex.sci
@@ -0,0 +1,16 @@
+function y = doublecomplex(x)
+// function y = doublecomplex(x)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+y = x+0*%i;
+
+endfunction \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/floatcomplex.sci b/src/Scilab2C/Scilab2C/ToolInitialization/floatcomplex.sci
new file mode 100644
index 00000000..c882b8a2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/floatcomplex.sci
@@ -0,0 +1,16 @@
+function y = floatcomplex(x)
+// function y = floatcomplex(x)
+// -----------------------------------------------------------------
+//
+// Status:
+// 27-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+y = x+0*%i;
+
+endfunction \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/full_reset.sce b/src/Scilab2C/Scilab2C/full_reset.sce
new file mode 100644
index 00000000..0c8a935e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/full_reset.sce
@@ -0,0 +1,16 @@
+// Clear files, variables, figures, screen.
+mode(-1);
+clc;
+
+disp('Starting full reset...')
+//disp('Press enter to continue...');
+//halt;
+
+clc;
+clear
+//mclose('all');
+// Assuming that max 50 figures are currently open
+for counter =1:50
+ close
+end
+lines(0)
diff --git a/src/Scilab2C/Scilab2C/runsci2c.sci b/src/Scilab2C/Scilab2C/runsci2c.sci
new file mode 100644
index 00000000..387e0283
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/runsci2c.sci
@@ -0,0 +1,103 @@
+function runsci2c(SCI2CInputPrmFile)
+// function runsci2c(SCI2CInputPrmFile)
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+//
+// This is the main function of SCI2C.
+//
+// Input data:
+// SCI2CInputPrmFile: path+filename of the input parameters file.
+//
+// Output data:
+// ---
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+// 11-Apr-2007 -- Alberto Morea: Tests.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// -------------------
+// --- Soft reset. ---
+// -------------------
+mode(-1);
+clc;
+// -----------------------
+// --- End Soft reset. ---
+// -----------------------
+
+// -------------------------
+// --- Input Parameters. ---
+// -------------------------
+RunSci2CMainDir = pwd();
+// -----------------------------
+// --- End input Parameters. ---
+// -----------------------------
+
+// -------------------------------
+// --- Perform Intializations. ---
+// -------------------------------
+// --- Load SCI2C directories and files. ---
+cd(fullfile(RunSci2CMainDir,'ToolInitialization'));
+exec('INIT_SCI2CLoader.sce');
+cd(RunSci2CMainDir);
+
+// --- Initialize the SCI2C tool directories and files. ---
+[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile);
+
+// --- Load RunMode. ---
+load(SharedInfoDatFile,'SharedInfo');
+RunMode = SharedInfo.RunMode;
+clear ShareInfo
+
+// --- Generation of the library structure. ---
+if (RunMode == 'GenLibraryStructure' | RunMode == 'All')
+ INIT_GenLibraries(FileInfoDatFile);
+end
+
+// --- Load Library Info. ---
+INIT_LoadLibraries(FileInfoDatFile);
+
+// -----------------------------------
+// --- End Perform Intializations. ---
+// -----------------------------------
+
+// ----------------------------------
+// --- Perform SCI2C Translation. ---
+// ----------------------------------
+if (RunMode == 'All' | RunMode == 'Translate')
+ FlagContinueTranslation = 1;
+ while(FlagContinueTranslation == 1)
+ UpdateSCI2CInfo(FileInfoDatFile);
+ AST_GetASTFile(FileInfoDatFile);
+ AST2Ccode(FileInfoDatFile);
+ JoinDeclarAndCcode(FileInfoDatFile);
+ FlagContinueTranslation = ManageNextConversion(FileInfoDatFile);
+ end
+end
+
+// --------------------------
+// --- Generate Makefile. ---
+// --------------------------
+load(FileInfoDatFile,'FileInfo');
+load(SharedInfoDatFile,'SharedInfo');
+C_GenerateMakefile(FileInfo,SharedInfo);
+clear FileInfo
+clear SharedInfo
+
+// -----------------
+// --- Epilogue. ---
+// -----------------
+load(FileInfoDatFile,'FileInfo');
+if (RunMode == 'All' | RunMode == 'Translate')
+ PrintStepInfo('Translation Successfully Completed!!!',FileInfo.GeneralReport,'both');
+elseif (RunMode == 'GenLibraryStructure')
+ PrintStepInfo('Library Structure Successfully Created!!!',FileInfo.GeneralReport,'both');
+end
+clear FileInfo
diff --git a/src/Scilab2C/Scilab2C/runscicode.sci b/src/Scilab2C/Scilab2C/runscicode.sci
new file mode 100644
index 00000000..d91a705e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/runscicode.sci
@@ -0,0 +1,64 @@
+function runscicode(SCI2CInputPrmFile)
+// function runscicode(SCI2CInputPrmFile)
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+//
+// Run the code written by the user before translating it.
+//
+// Input data:
+// ---
+// Output data:
+// ---
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// -------------------
+// --- Soft reset. ---
+// -------------------
+mode(-1);
+clc;
+// -----------------------
+// --- End Soft reset. ---
+// -----------------------
+
+// -------------------------
+// --- Input Parameters. ---
+// -------------------------
+RunSci2CMainDir = pwd();
+// -----------------------------
+// --- End input Parameters. ---
+// -----------------------------
+
+cd(fullfile(RunSci2CMainDir,'ToolInitialization'));
+exec('INIT_SCI2CLoader.sce');
+cd(RunSci2CMainDir);
+
+// --- Read user parameters. ---
+exec(SCI2CInputPrmFile);
+
+
+// --- Add all user paths. ---
+for cntpath = 1:size(UserSciFilesPaths,1)
+ getd(UserSciFilesPaths(cntpath));
+end
+
+// --- Execute code. ---
+disp('-----------------------------------');
+disp('--- Executing your SCILAB code. ---');
+disp('-----------------------------------');
+[tmppath,tmpfile,tmpext] = fileparts(UserScilabMainFile);
+cd(tmppath);
+execstr(tmpfile+tmpext);
+cd(RunSci2CMainDir);
+disp('------------------------------------------');
+disp('--- End Execution of your SCILAB code. ---');
+disp('------------------------------------------');
diff --git a/src/Scilab2C/readme.txt b/src/Scilab2C/readme.txt
new file mode 100644
index 00000000..70c230a8
--- /dev/null
+++ b/src/Scilab2C/readme.txt
@@ -0,0 +1,6 @@
+tolti tutti i commenti dall'ast management.
+togliere tutti i commenti dalle altre dir.
+rimuovere annotazione di molte funzioni nel fill
+rimuovere funzionalita' delle global e dei cicli for.
+rimuovere supporto alle stringhe.
+trovare con al un esempio piu' carino. \ No newline at end of file