summaryrefslogtreecommitdiff
path: root/src/Scilab2C
diff options
context:
space:
mode:
authornutricato2009-02-25 16:42:37 +0000
committernutricato2009-02-25 16:42:37 +0000
commit04e69b34a4a749351d485bbe7f78603151c4c5d0 (patch)
treef2354064636a3b0f901dbddf182b491c302e5cc1 /src/Scilab2C
parent44b19f6c02e10bcded018b255b8b37ce01dca61f (diff)
downloadscilab2c-04e69b34a4a749351d485bbe7f78603151c4c5d0.tar.gz
scilab2c-04e69b34a4a749351d485bbe7f78603151c4c5d0.tar.bz2
scilab2c-04e69b34a4a749351d485bbe7f78603151c4c5d0.zip
Diffstat (limited to 'src/Scilab2C')
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci127
1 files changed, 70 insertions, 57 deletions
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci
index b1d3637e..d3a95dc1 100644
--- a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci
@@ -1,7 +1,18 @@
function INIT_FillSCI2LibCDirs(FileInfo,SharedInfoExtension)
// function INIT_FillSCI2LibCDirs(FileInfo,SharedInfoExtension)
// -----------------------------------------------------------------
+// #RNU_RES_B
+// Generates files for the SCI2CLib CFunctionList and CAnnotations
+// directories.
+//
+// Input data:
+// FileInfo: structure containing all info about SCI2C files.
+// SharedInfoExtension: structure containing the file extensions.
//
+// Output data:
+// ---
+//
+// #RNU_RES_E
// Status:
// 24-Dec-2007 -- Raffaele Nutricato: Author.
// 24-Dec-2007 -- Alberto Morea: Test Ok.
@@ -10,8 +21,14 @@ function INIT_FillSCI2LibCDirs(FileInfo,SharedInfoExtension)
// Contact: raffaele.nutricato@tiscali.it
// -----------------------------------------------------------------
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
SCI2CNInArgCheck(argn(2),2,2);
+// -----------------------
+// --- Initialization. ---
+// -----------------------
SCI2CLibCAnnClsDir = FileInfo.SCI2CLibCAnnCls;
ExtensionCAnnCls = SharedInfoExtension.AnnotationClasses;
@@ -26,9 +43,33 @@ ExtensionCFuncListFun = SharedInfoExtension.FuncListFunctions;
GeneralReport = FileInfo.GeneralReport;
ArgSeparator = ',';
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
-ClassName = 'Global';
+// --------------------------------------------------------------------------------
+// --- Generate Function List class files for C functions of the SCI2C library. ---
+// --------------------------------------------------------------------------------
+//NUT old call to INIT_GenSCI2CLibCFLCls
+// INIT_GenSCI2CLibCFLCls(SCI2CLibCFLClsDir,ExtensionCFuncListCls,GeneralReport)
+// SCI2CLibCFLClsDir,ExtensionCFLCls,GeneralReport
+//NUT verifica le annotazioni di tutte le classi.
+
+// -----------------------------------------------------------------------------------------
+// --- Generate Function List and Annotation files for C functions of the SCI2C library. ---
+// -----------------------------------------------------------------------------------------
+
+
+// ---------------------
+// --- Class Global. ---
+// ---------------------
+ClassName = 'Global';
+// #RNU_RES_B
+//NUT: global function can work with a generic number of input arguments.
+//NUT: we force the global function to work with one input argument only.
+// --- Class Annotation. ---
+// #RNU_RES_E
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 1',ClassFileName,'file','y');
@@ -37,16 +78,22 @@ 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('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
-
+
+// --- Annotation Function And Function List Function. ---
FunctionName = 'global';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+// ---------------------
+// --- Class Float. ---
+// ---------------------
ClassName = 'Float';
+// --- Class Annotation. ---
PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
PrintStringInfo('NIN= 1',ClassFileName,'file','y');
@@ -278,6 +325,11 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+FunctionName = 'SCI2Cresize';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
FunctionName = 'sign';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
@@ -344,7 +396,7 @@ 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).TP= FA_TP_USER',ClassFileName,'file','y'); //FOR INRIA changed from IN(1).TP to FA_TP_USER
PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
@@ -406,10 +458,6 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both',
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
-
-
-
// --------------------
// --- Class Zeros. ---
// --------------------
@@ -426,13 +474,13 @@ 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= IN(1).TP',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= IN(1).TP',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');
@@ -442,20 +490,6 @@ 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');
-//PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
-//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y');
-//PrintStringInfo('z2'+ArgSeparator+'s2',ClassFileName,'file','y');
-//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
-
-
PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
@@ -465,7 +499,6 @@ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
-
//NUT: no mixed input types are allowed.
PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
PrintStringInfo('s0s0'+ArgSeparator+'d0',ClassFileName,'file','y');
@@ -760,7 +793,6 @@ PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
-
// --- Annotation Function And Function List Function. ---
FunctionName = 'OpDotHat';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
@@ -814,11 +846,11 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
ClassName = 'OpLogEq';
// --- Class Annotation. ---
-PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'both','y');
+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_PREC(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MIN_REAL(IN(1).TP,IN(2).TP)',ClassFileName,'file','y'); //RNU
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');
@@ -831,11 +863,6 @@ PrintStringInfo('z0z0'+ArgSeparator+'d0',ClassFileName,'file','y');
PrintStringInfo('g0g0'+ArgSeparator+'s0',ClassFileName,'file','y');
PrintStringInfo('g0g0'+ArgSeparator+'d0',ClassFileName,'file','y');
-PrintStringInfo('s0c0'+ArgSeparator+'s0',ClassFileName,'file','y');
-PrintStringInfo('d0z0'+ArgSeparator+'d0',ClassFileName,'file','y');
-PrintStringInfo('c0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
-PrintStringInfo('z0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
-
PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('c2c0'+ArgSeparator+'s2',ClassFileName,'file','y');
@@ -843,22 +870,12 @@ PrintStringInfo('z2z0'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('g2g0'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('g2g0'+ArgSeparator+'d2',ClassFileName,'file','y');
-PrintStringInfo('s2c0'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('d2z0'+ArgSeparator+'d2',ClassFileName,'file','y');
-PrintStringInfo('c2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('z2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
-
PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('c0c2'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('z0z2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('g0g2'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('g0g2'+ArgSeparator+'d2',ClassFileName,'file','y');
-
-PrintStringInfo('s0c2'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('d0z2'+ArgSeparator+'d2',ClassFileName,'file','y');
-PrintStringInfo('c0s2'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('z0d2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
@@ -867,11 +884,12 @@ PrintStringInfo('z2z2'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('g2g2'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('g2g2'+ArgSeparator+'d2',ClassFileName,'file','y');
-PrintStringInfo('s2c2'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('d2z2'+ArgSeparator+'d2',ClassFileName,'file','y');
-PrintStringInfo('c2s2'+ArgSeparator+'s2',ClassFileName,'file','y');
-PrintStringInfo('z2d2'+ArgSeparator+'d2',ClassFileName,'file','y');
-
+PrintStringInfo('c2s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('z2d0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('z0d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('c0s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('d2z0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s2c0'+ArgSeparator+'s2',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
FunctionName = 'OpLogEq';
@@ -953,14 +971,11 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
//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.
-
FunctionName = 'OpSlash';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
-
// ---------------------
// --- Class OpApex. ---
// ---------------------
@@ -1258,7 +1273,6 @@ PrintStringInfo('c2s2'+ArgSeparator+'c2',ClassFileName,'file','y');
PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y');
PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y');
-
// --- Annotation Function And Function List Function. ---
FunctionName = 'OpCc';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
@@ -1267,7 +1281,7 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex
// -------------------
-// --- Class FOpFind. ---
+// --- Class Find. ---
// -------------------
ClassName = 'Find';
@@ -1470,12 +1484,12 @@ 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_PREC(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MIN_REAL(IN(1).TP,IN(2).TP)',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
PrintStringInfo('OUT(1).SZ(2)= FA_INT(FA_ADD(FA_SUB(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= FA_TP_PREC(IN(1).TP,IN(2).TP,IN(3).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MIN_REAL(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)= FA_INT(FA_ADD(FA_DIV(FA_SUB(IN(3).VAL,IN(1).VAL),IN(2).VAL),''1''))',ClassFileName,'file','y');
@@ -1681,7 +1695,6 @@ PrintStringInfo('z2d0d2d2'+ArgSeparator,ClassFileName,'file','y');
PrintStringInfo('z2d2d0d2'+ArgSeparator,ClassFileName,'file','y');
PrintStringInfo('z2d2d2d2'+ArgSeparator,ClassFileName,'file','y');
-
// --- Annotation Function And Function List Function. ---
FunctionName = 'OpIns';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'both','y');
@@ -2619,10 +2632,10 @@ 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= FA_TP_MAX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= FA_TP_MAX(IN(1).TP)',ClassFileName,'file','y'); //FOR INRIA FA_TP_MAX NEEDS 2 Input args
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= FA_TP_MAX(IN(1).TP)',ClassFileName,'file','y');
+PrintStringInfo('OUT(2).TP= FA_TP_MAX(IN(1).TP)',ClassFileName,'file','y'); //FOR INRIA FA_TP_MAX NEEDS 2 Input args
PrintStringInfo('OUT(2).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
PrintStringInfo('OUT(2).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');