summaryrefslogtreecommitdiff
path: root/macros/FunctionAnnotation
diff options
context:
space:
mode:
Diffstat (limited to 'macros/FunctionAnnotation')
-rw-r--r--macros/FunctionAnnotation/FA_FSFIRLIN_SZ.sci9
-rw-r--r--macros/FunctionAnnotation/FA_GetDefaultPrecision.sci11
-rw-r--r--macros/FunctionAnnotation/FA_GetFunAnn.sci21
-rw-r--r--macros/FunctionAnnotation/FA_GetOutArgInfo.sci46
-rw-r--r--macros/FunctionAnnotation/FA_INSZ_RPI.sci5
-rw-r--r--macros/FunctionAnnotation/FA_SCHUR_SZ.sci42
-rw-r--r--macros/FunctionAnnotation/FA_SCHUR_TP.sci38
-rw-r--r--macros/FunctionAnnotation/FA_SZ_1.sci1
-rw-r--r--macros/FunctionAnnotation/FA_SZ_2.sci1
-rw-r--r--macros/FunctionAnnotation/FA_SZ_AMELL.sci9
-rw-r--r--macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci40
-rw-r--r--macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci61
-rw-r--r--macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci30
-rw-r--r--macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci20
-rw-r--r--macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci21
-rw-r--r--macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci20
-rw-r--r--macros/FunctionAnnotation/FA_SZ_DIFF.sci58
-rw-r--r--macros/FunctionAnnotation/FA_SZ_FACTOR.sci20
-rw-r--r--macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci23
-rw-r--r--macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci33
-rw-r--r--macros/FunctionAnnotation/FA_SZ_LQE.sci37
-rw-r--r--macros/FunctionAnnotation/FA_SZ_LQR.sci34
-rw-r--r--macros/FunctionAnnotation/FA_SZ_MODSN.sci11
-rw-r--r--macros/FunctionAnnotation/FA_SZ_OBSCNT.sci48
-rw-r--r--macros/FunctionAnnotation/FA_SZ_PRIMES.sci21
-rw-r--r--macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci50
-rw-r--r--macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci38
-rw-r--r--macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci103
-rw-r--r--macros/FunctionAnnotation/FA_SZ_U_SVA.sci39
-rw-r--r--macros/FunctionAnnotation/FA_TP_ASCII.sci10
-rw-r--r--macros/FunctionAnnotation/FA_TP_CVIMAGE.sci37
-rw-r--r--macros/FunctionAnnotation/FA_TP_INT16.sci37
-rw-r--r--macros/FunctionAnnotation/FA_TP_INT8.sci37
-rw-r--r--macros/FunctionAnnotation/FA_TP_MODSN.sci10
-rw-r--r--macros/FunctionAnnotation/FA_TP_UINT16.sci37
-rw-r--r--macros/FunctionAnnotation/FA_TP_UINT8.sci37
-rw-r--r--macros/FunctionAnnotation/names81
37 files changed, 1147 insertions, 29 deletions
diff --git a/macros/FunctionAnnotation/FA_FSFIRLIN_SZ.sci b/macros/FunctionAnnotation/FA_FSFIRLIN_SZ.sci
new file mode 100644
index 00000000..c1dc9e50
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_FSFIRLIN_SZ.sci
@@ -0,0 +1,9 @@
+function outp=FA_FSFIRLIN_SZ(in1sz2)
+ in1sz2=string(in1sz2);
+ in1sz=eval(in1sz2);
+ if(int(in1sz/2)==in1sz/2) then
+ outp=string(4*in1sz+1);
+ else
+ outp=string(4*in1sz+3);
+ end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci b/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
index 3afe2648..3603c572 100644
--- a/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
+++ b/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
@@ -79,6 +79,17 @@ else
defaultprecision = 's';
elseif (tmpprecision == 'DOUBLE')
defaultprecision = 'd';
+ elseif (tmpprecision == 'UINT8')
+ defaultprecision = 'u8';
+ elseif (tmpprecision == 'INT8')
+ defaultprecision = 'i8';
+ elseif (tmpprecision == 'UINT16')
+ defaultprecision = 'u16';
+ elseif (tmpprecision == 'INT16')
+ defaultprecision = 'i16';
+ elseif (tmpprecision == 'CVIMAGE')
+ defaultprecision = 'IplImage'
+
end
end
diff --git a/macros/FunctionAnnotation/FA_GetFunAnn.sci b/macros/FunctionAnnotation/FA_GetFunAnn.sci
index e5fb8ac8..3fadd1f2 100644
--- a/macros/FunctionAnnotation/FA_GetFunAnn.sci
+++ b/macros/FunctionAnnotation/FA_GetFunAnn.sci
@@ -1,4 +1,4 @@
-function [FunTypeAnnot,FunSizeAnnot] = ...
+function [FunTypeAnnot,FunSizeAnnot,NOutArg_mod] = ...
FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
// function [FunTypeAnnot,FunSizeAnnot] = ...
// FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
@@ -52,7 +52,7 @@ FunSizeAnnot = '';
// ---------------------------------------------
// --- Open the .sci file (read only). ---
inclsfid = SCI2COpenFileRead(SCI2CClassFileName);
-
+PrintStringInfo(' '+string(inclsfid),ReportFileName,'file','y');
// #RNU_RES_B
// --- Loop over the lines of the input file. ---
// Position file pointer to the desired NInArg/NOutArg section,
@@ -71,6 +71,7 @@ while ((meof(inclsfid) == 0) & (FoundNIn == 0) & (FoundNOut == 0))
// #RNU_RES_E
if (SCI2Cstrncmps1size(SharedInfo.Annotations.FUNNIN,check_string))
FUNNINAnnot = part(check_string,length(SharedInfo.Annotations.FUNNIN)+1:length(check_string));
+
// #RNU_RES_B
// --- Check NIN value. ---
// #RNU_RES_E
@@ -89,7 +90,6 @@ while ((meof(inclsfid) == 0) & (FoundNIn == 0) & (FoundNOut == 0))
// #RNU_RES_E
if (SCI2Cstrncmps1size(SharedInfo.Annotations.FUNNOUT,check_string))
FUNNOUTAnnot = part(check_string,length(SharedInfo.Annotations.FUNNOUT)+1:length(check_string));
-
// #RNU_RES_B
// --- Check NOUT value. ---
// #RNU_RES_E
@@ -99,6 +99,8 @@ while ((meof(inclsfid) == 0) & (FoundNIn == 0) & (FoundNOut == 0))
ReportFileName,'file','y');
// #RNU_RES_E
FoundNOut = 1;
+ elseif(eval(FUNNOUTAnnot) == 0)
+ FoundNOut = 1
else
FoundNIn = 0;
end
@@ -131,7 +133,15 @@ if (FoundNOut*FoundNIn == 0)
PrintStringInfo(' ',ReportFileName,'both','y');
error(9999, 'SCI2CERROR: Incorrect function annotation.');
else
-
+ //This change has been made in order to supress the generation
+ //of output variables in case of functions which do not return
+ //anything.
+ if(eval(FUNNOUTAnnot) == 0)
+ NOutArg_mod = 0;
+ else
+ NOutArg_mod = NOutArg
+ end
+
// In case we are reading to much informations
readNewLine = %t;
@@ -194,11 +204,14 @@ else
end
end
end
+
+
end
// --- End loop over the lines of the input file. ---
mclose(inclsfid);
// -------------------------------------------------
// --- End Read the annotations of the function. ---
// -------------------------------------------------
+PrintStringInfo(' end of annotation '+string(NOutArg_mod),ReportFileName,'file','y');
endfunction
diff --git a/macros/FunctionAnnotation/FA_GetOutArgInfo.sci b/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
index 84640dfc..284f4a29 100644
--- a/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
+++ b/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
@@ -1,5 +1,6 @@
function UpdatedOutArg = ...
- FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,ReportFileName)
+ FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier, ...
+ FunTypeAnnot,FunSizeAnnot,ReportFileName,ASTFunName)
// function UpdatedOutArg = ...
// FA_GetOutArgInfo(InArg,NInArg,OutArg,NOutArg,SharedInfo,FunPrecSpecifier,FunTypeAnnot,FunSizeAnnot,ReportFileName)
// -----------------------------------------------------------------
@@ -23,10 +24,12 @@ function UpdatedOutArg = ...
// ------------------------------
// --- Check input arguments. ---
// ------------------------------
-SCI2CNInArgCheck(argn(2),9,9);
+SCI2CNInArgCheck(argn(2),10,10);
// -----------------------
// --- Initialization. ---
// -----------------------
+
+
UpdatedOutArg = OutArg;
for cntin = 1:NInArg
IN(cntin).TP = InArg(cntin).Type;
@@ -44,17 +47,18 @@ for cntin = 1:NInArg
end
end
DefaultPrecision = SharedInfo.DefaultPrecision;
-
// ---------------------------
// --- End Initialization. ---
// ---------------------------
if (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)
// #RNU_RES_B
@@ -68,7 +72,6 @@ for counterin = 1:NInArg
end
for counterout = 1:NOutArg
-
if(FunTypeAnnot == 'FA_TP_USER')
UpdatedOutArg(counterout).Type = FA_TP_USER(FunPrecSpecifier,DefaultPrecision);
else
@@ -92,14 +95,26 @@ for counterout = 1:NOutArg
UpdatedOutArg(counterout).FindLike = -1;
end
- // #RNU_RES_B
- // When the size is given by e IN(x).VAL annotation we can have two cases:
- // IN(x).VAL is a number or IN(x).VAL is %nan. When it is %nan the
- // size is equal to the name of IN(x).
- // This is a dynamic memory extension of a local variable and for the moment
- // we issue an error according to SCI2C specifications
- // #RNU_RES_E
+// #RNU_RES_B
+// When the size is given by e IN(x).VAL annotation we can have two cases:
+// IN(x).VAL is a number or IN(x).VAL is %nan. When it is %nan the
+// size is equal to the name of IN(x).
+// This is a dynamic memory extension of a local variable and for the moment
+// we issue an error according to SCI2C specifications
+// #RNU_RES_E
+// disp(FunSizeAnnot(2),FunSizeAnnot(1))
+// Ukasha
+// if ASTFunName == svd
+// x=1;
+// for i=1:InArg(1).Size(1)
+// for j=1:InArg(1).Size(2)
+// A(i)(j)=InArg(1).Value(x);
+// end
+// end
+// [U,S,V]=svd(A,"e");
+
+
for iterOutputPosition=1:size(FunSizeAnnot, 'c')
tmpeval = eval(FunSizeAnnot(counterout, iterOutputPosition));
if (IsNanSize(tmpeval))
@@ -118,8 +133,13 @@ for counterout = 1:NOutArg
UpdatedOutArg(counterout).Size(iterOutputPosition) = string(tmpeval);
end
end
-
- UpdatedOutArg(counterout).Value = %nan;
+ if(ASTFunName == 'syslin')
+ no_of_st = eval(InArg(2).Size(1))
+ no_of_ip = eval(InArg(3).Size(2))
+ UpdatedOutArg(counterout).Value = no_of_st+no_of_ip*0.1;
+ else
+ UpdatedOutArg(counterout).Value = %nan;
+ end
UpdatedOutArg(counterout).Dimension = GetSymbolDimension(UpdatedOutArg(counterout).Size);
UpdatedOutArg(counterout).Scope = 'Temp';//NUT anche su questo si puo' ragionare verifica anche la handleoperation.
end
diff --git a/macros/FunctionAnnotation/FA_INSZ_RPI.sci b/macros/FunctionAnnotation/FA_INSZ_RPI.sci
new file mode 100644
index 00000000..da924ce4
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_INSZ_RPI.sci
@@ -0,0 +1,5 @@
+function outp=FA_INSZ_RPI(in2val)
+ in2val=string(in2val);
+ l=length(in2val);
+ outp=l;
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SCHUR_SZ.sci b/macros/FunctionAnnotation/FA_SCHUR_SZ.sci
new file mode 100644
index 00000000..7b426e1c
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SCHUR_SZ.sci
@@ -0,0 +1,42 @@
+function out2sz = FA_SCHUR_SZ(in2tp,in1sz)
+//function out2sz = FA_SCHUR_SZ(in2tp,in1sz)
+// -----------------------------------------------------------------
+// Get size of output for Schur function
+//
+// Input data:
+// in2tp: string specifying the type of second input argument.
+// in1sz: string specifying the size of first input argument.
+//
+// Output data:
+// out2sz: string containing the size for second output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+in2type = string(in2tp);
+in1sz = string(in1sz);
+in1dim = eval(in1sz);
+
+if(in2type == 'g')
+ out2sz = '1'
+else
+ out2sz = string(in1dim)
+end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SCHUR_TP.sci b/macros/FunctionAnnotation/FA_SCHUR_TP.sci
new file mode 100644
index 00000000..828ea1e5
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SCHUR_TP.sci
@@ -0,0 +1,38 @@
+function out2tp = FA_SCHUR_TP(in2tp)
+// function out2tp = FA_SCHUR_TP(in2tp)
+// -----------------------------------------------------------------
+// Get type of output for Schur function
+//
+// Input data:
+// in2tp: string specifying the type of second input argument.
+//
+// Output data:
+// out2tp: string containing the type for second output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(1),1,1);
+
+in2type = string(in2tp);
+
+if(in2type == 'g')
+ out2tp = 'd'
+else
+ out2tp = in2type
+end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_1.sci b/macros/FunctionAnnotation/FA_SZ_1.sci
index d9a481ce..3d20b992 100644
--- a/macros/FunctionAnnotation/FA_SZ_1.sci
+++ b/macros/FunctionAnnotation/FA_SZ_1.sci
@@ -17,4 +17,5 @@ function outsize = FA_SZ_1(insize)
// -----------------------------------------------------------------
outsize = insize(1);
+
endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_2.sci b/macros/FunctionAnnotation/FA_SZ_2.sci
index 64fdac10..164cab3f 100644
--- a/macros/FunctionAnnotation/FA_SZ_2.sci
+++ b/macros/FunctionAnnotation/FA_SZ_2.sci
@@ -17,4 +17,5 @@ function outsize = FA_SZ_2(insize)
// -----------------------------------------------------------------
outsize = insize(2);
+
endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_AMELL.sci b/macros/FunctionAnnotation/FA_SZ_AMELL.sci
new file mode 100644
index 00000000..6cf27b0d
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_AMELL.sci
@@ -0,0 +1,9 @@
+function outp=FA_SZ_AMELL(in1sz)
+ in1sz=string(in1sz);
+ insz=eval(in1sz);
+ if(insz>1) then
+ outp=string(insz);
+ else
+ outp="1";
+ end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci b/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci
new file mode 100644
index 00000000..3aea8397
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci
@@ -0,0 +1,40 @@
+function outsize = FA_SZ_COLUMN_DIAG(insize)
+//function outsize = FA_SZ_COLUMN_DIAG(insize)
+// -----------------------------------------------------------------
+// Get size of column of the output for diag function
+//
+// Input data:
+// insize: string specifying the size of input argument.
+//
+// Output data:
+// outsize: string containing the column size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(1),1,1);
+
+ if(insize(2)=='1') then
+ outsize = insize(1);
+
+ elseif(insize(1) == insize(2))
+ outsize = '1';
+ else
+ outsize = insize(2);
+
+ end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci b/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci
new file mode 100644
index 00000000..8a313fee
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci
@@ -0,0 +1,61 @@
+function outsize =FA_SZ_COL_DIAG_IN_EX(insize,val)
+//function outsize =FA_SZ_COL_DIAG_IN_EX(insize,val)
+// -----------------------------------------------------------------
+// Get size of column of the output for diag(insert) function
+//
+// Input data:
+// insize: string specifying the size of input argument.
+// val: string containing value of second input
+//
+// Output data:
+// outsize: string containing the column size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+///////////////////////////////COLUMN SIZE FOR INSERT POSITION////////////////
+
+
+
+ if((insize(1) == '1')) // If ROW size is 1
+ if(val == '0') then //For Oth position
+ outsize = insize(2); //COLUMN size is equal to COLUMN size
+ else // For ...-2,-1,1,2... position
+ outsize = string(eval(insize(2))+abs(eval(val)));
+ // COLUMN size is equal to COLUMN size + absolute value of position(for 1*3 matrix and 2nd postion COLUMN size is (3+2)=5
+ end
+ elseif((insize(2) == '1')) // If COLUMN size is 1
+ if(val == '0') then //For Oth position
+ outsize = insize(1); //COLUMNS size is equal to ROW size
+ else // For ...-2,-1,1,2.... position
+ outsize = string(eval(insize(1))+abs(eval(val)));
+ // COLUMN size is equal to ROW size + absolute value of position(for 3*1 matrix and 1st postion COLUMN size is (3+1)=4
+ end
+////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////COLUMN SIZE FOR EXTRACT POSITION////////////////////
+
+ else
+ outsize = '1'; // For extract condition COLUMN size is always ONE.
+ end
+
+////////////////////////////////////////////////////////////////////////////////
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci b/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci
new file mode 100644
index 00000000..4cd6467d
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci
@@ -0,0 +1,30 @@
+function opout = FA_SZ_DEC2BASE(in1val,in2val)
+
+// 07-Sep-2016 -- Author : Shamik Guha
+
+
+in1val=string(in1val);
+in2val=string(in2val);
+if (isnum(in1val)) then
+ in1_num = eval(in1val) ;
+ in2_num = eval(in2val) ;
+ out=dec2base(in1_num,in2_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+in1val+".");
+
+end
+if (in2_num>10) then
+ out=sci2exp(out);
+ opout=string(length(out)-2);
+ //disp(opout);
+ out=string(out);
+else
+ out=eval(out);
+ //disp(out);
+ opout=string(floor(log10(abs(out)+1))+1);
+ //disp(opout);
+ out=string(out);
+end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci b/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci
new file mode 100644
index 00000000..75d0cb07
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci
@@ -0,0 +1,20 @@
+function opout = FA_SZ_DEC2BIN(inval)
+
+// 07-Sep-2016 -- Author : Shamik Guha
+
+inval=string(inval);
+if (isnum(inval)) then
+ in_num = eval(inval) ;
+ out=dec2bin(in_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+inval+".");
+
+end
+
+out=eval(out);
+
+opout=string(floor(log10(abs(out)+1))+1);
+out=string(out);
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci b/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci
new file mode 100644
index 00000000..c1e07773
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci
@@ -0,0 +1,21 @@
+function opout = FA_SZ_DEC2HEX(inval)
+
+// 07-Sep-2016 -- Author : Shamik Guha
+
+inval=string(inval);
+if (isnum(inval)) then
+ in_num = eval(inval) ;
+ out=dec2hex(in_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+inval+".");
+
+end
+
+out=sci2exp(out);
+
+opout=string(length(out)-2);
+//disp(opout);
+out=string(out);
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci b/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci
new file mode 100644
index 00000000..056d333d
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci
@@ -0,0 +1,20 @@
+function opout = FA_SZ_DEC2OCT(inval)
+
+// 07-Sep-2016 -- Author : Shamik Guha
+
+inval=string(inval);
+if (isnum(inval)) then
+ in_num = eval(inval) ;
+ out=dec2oct(in_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+inval+".");
+
+end
+
+out=eval(out);
+
+opout=string(floor(log10(abs(out)+1))+1);
+out=string(out);
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_DIFF.sci b/macros/FunctionAnnotation/FA_SZ_DIFF.sci
new file mode 100644
index 00000000..5639ce77
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_DIFF.sci
@@ -0,0 +1,58 @@
+function outsize = FA_SZ_DIFF(in1size, in2val, in3val)
+//function outsize = FA_SZ_DIFF(in1size, in2val, in3val)
+// -----------------------------------------------------------------
+// Get size of output for diff function
+//
+// Input data:
+// in1size: string specifying the size of first input argument.
+// in2val: string specifying the value of second input argument.
+// in3val: string specifying the value of third input argument.
+//
+// Output data:
+// outsize: string containing the size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(3),3,3);
+
+ in1size = string(in1size);
+ in1row = eval(in1size(1));
+ in1col = eval(in1size(2));
+ in2val = string(in2val);
+ in2num = eval(in2val);
+ in3num = eval(in3val);
+
+if(in3num == 0)
+ if((in1row == 1) & (in1col <> 1)) //input is row vector
+ outsize(1) = '1';
+ outsize(2) = string (in1col - in2num);
+ elseif((in1col == 1) & (in1row <> 1)) //input is column vector
+ outsize(1) = string(in1row - in2num);
+ outsize(2) = '1';
+ else // input is matrix. output is a column matrix
+ outsize(1) = string((in1row * in1col)- in2num);
+ outsize(2) = '1';
+ end
+elseif (in3num == 1) //Difference along rows
+ outsize(1) = string(in1row - in2num);
+ outsize(2) = string(in1col);
+elseif (in3num == 2) //Difference along columns
+ outsize(1) = string(in1row);
+ outsize(2) = string(in1col - in2num);
+end
+endfunction \ No newline at end of file
diff --git a/macros/FunctionAnnotation/FA_SZ_FACTOR.sci b/macros/FunctionAnnotation/FA_SZ_FACTOR.sci
new file mode 100644
index 00000000..d816ff75
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_FACTOR.sci
@@ -0,0 +1,20 @@
+function opout = FA_SZ_FACTOR(inval)
+
+// 17-Dec-2016 -- Author : Shamik Guha
+
+inval=string(inval);
+if (isnum(inval)) then
+ in_num = eval(inval) ;
+ out=factor(in_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+inval+".");
+
+end
+
+
+out=(length(out));
+opout=string(out);
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci b/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
index 422e04e2..5ff03a60 100644
--- a/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
+++ b/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
@@ -15,23 +15,22 @@ SCI2CNInArgCheck(argn(2),2,2);
if (isnum(in1))
- in1num = eval(in1) ;
- if isnan(in1num)
- opout = '__SCI2CNANSIZE';
- elseif ( in1num < 0 )
- opout= '0' ;
- else
- opout = string ( floor (abs(in1num))) ;
-
- end
+ in1num = eval(in1) ;
+ if isnan(in1num)
+ opout = '__SCI2CNANSIZE';
+ elseif ( in1num < 0 )
+ opout= '0' ;
+ else
+ opout = string ( floor (abs(in1num))) ;
+ end
else
- opout = in2+"0floor"+in2+"0"+"("+in1+")";
- opout = in2+"0abs"+in2+"0"+"("+opout+")";
+ opout = in2+"0floor"+in2+"0"+"("+in1+")";
+ opout = in2+"0abs"+in2+"0"+"("+opout+")";
+
end
endfunction
-
diff --git a/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci b/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci
new file mode 100644
index 00000000..86f2aa7d
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci
@@ -0,0 +1,33 @@
+function outsize = FA_SZ_LINSPACE_ROW(insize)
+//function outsize = FA_SZ_LINSPACE_ROW(insize)
+// -----------------------------------------------------------------
+// Get size of row for output for linspace function
+//
+// Input data:
+// insize: string specifying the size of first input argument.
+//
+// Output data:
+// outsize: string containing the row size of output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(1),1,1);
+
+ in1num = string(eval(insize(1)));
+ outsize = in1num;
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_LQE.sci b/macros/FunctionAnnotation/FA_SZ_LQE.sci
new file mode 100644
index 00000000..6ddd1988
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_LQE.sci
@@ -0,0 +1,37 @@
+function outsize = FA_SZ_LQE(inval,insz)
+//function outsize = FA_SZ_LQE(inval,insz)
+// -----------------------------------------------------------------
+// Get size of output for lqe function
+//
+// Input data:
+// inval: string specifying the value of input argument.
+// insz: string specifying the size of input argument.
+//
+// Output data:
+// outsize: string containing the size for second output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+ inval = eval(inval)
+ insz = eval(insz)
+ outsize(1) = string(int(inval));
+ outsize(2) = string(insz-int(inval));
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_LQR.sci b/macros/FunctionAnnotation/FA_SZ_LQR.sci
new file mode 100644
index 00000000..cf1884aa
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_LQR.sci
@@ -0,0 +1,34 @@
+function outsize = FA_SZ_LQR(inval)
+//function outsize = FA_SZ_LQR(inval)
+// -----------------------------------------------------------------
+// Get size of output for lqr function
+//
+// Input data:
+// inval: string specifying the value of input argument.
+//
+// Output data:
+// outsize: string containing the size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(1),1,1);
+
+ inval = eval(inval)
+ outsize(1) = string(int(inval));
+ outsize(2) = string(modulo(inval*10,10));
+ endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_MODSN.sci b/macros/FunctionAnnotation/FA_SZ_MODSN.sci
new file mode 100644
index 00000000..4a58e644
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_MODSN.sci
@@ -0,0 +1,11 @@
+function outt=FA_SZ_MODSN(in1sz)
+
+in1sz=string(in1sz);
+in1s=eval(in1sz)
+if(in1s>1) then
+ outt=string(in1s);
+else
+ outt=string(1);
+end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci b/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci
new file mode 100644
index 00000000..a7cb85b9
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci
@@ -0,0 +1,48 @@
+function outsize = FA_SZ_OBSCNT(inval,insz1,insz2,nout)
+//function outsize = FA_SZ_OBSCNT(inval,insz1,insz2,nout)
+// -----------------------------------------------------------------
+// Get size of output for obscont function
+//
+// Input data:
+// inval: string specifying the value of first input argument.
+// insz1: string specifying the row size of first input argument.
+// insz2: string specifying the col size of first input argument.
+// nout: string specifying number of output arguments
+//
+// Output data:
+// outsize: string containing the size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(4),4,4);
+
+ inval = eval(inval);
+ insz1 = eval(insz1);
+ insz2 = eval(insz2);
+ //nout = eval(nout);
+ no_of_st = int(inval);
+ no_of_in = insz2 - no_of_st;
+ no_of_op = insz1 - no_of_st;
+ if(nout == 1)
+ outsize(1) = string(no_of_st+no_of_op+2);
+ outsize(2) = string(no_of_st+no_of_in);
+ else
+ outsize(1) = string(no_of_st+no_of_in+no_of_op+2);
+ outsize(2) = string(no_of_st+no_of_in+no_of_op);
+ end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_PRIMES.sci b/macros/FunctionAnnotation/FA_SZ_PRIMES.sci
new file mode 100644
index 00000000..5a450686
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_PRIMES.sci
@@ -0,0 +1,21 @@
+function opout = FA_SZ_PRIMES(inval)
+
+// 17-Dec-2016 -- Author : Shamik Guha
+
+inval=string(inval);
+if (isnum(inval)) then
+ in_num = eval(inval) ;
+ out=primes(in_num);
+ //disp(out);
+
+else
+ error(36, "Wrong input argument "+inval+".");
+
+end
+
+
+out=(length(out));
+opout=string(out);
+//disp(opout);
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci b/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci
new file mode 100644
index 00000000..527217a5
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci
@@ -0,0 +1,50 @@
+function outsize = FA_SZ_ROW_COLUMN_CAT(inval,in1size,in2size)
+//function outsize = FA_SZ_ROW_COLUMN_CAT(inval,in1size,in2size)
+// -----------------------------------------------------------------
+// Get size of row (col) of the output for cat function
+//
+// Input data:
+// inval: string specifying the value of input argument.
+// in1size: string specifying the row (col) of second input
+// in3size: string specifying the row (col) of third input
+// Output data:
+// outsize: string containing the column size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),3,3);
+
+
+in1size = string(in1size);
+in2size = string(in2size);
+inval = string(inval);
+if(inval == '1') then
+ in1num_r = eval(in1size);
+ in2num_r = eval(in2size);
+ outsize(1) = string(in1num_r + in2num_r);
+ outsize(2) = string(in2num_r);
+elseif(inval == '2') then
+ in1num_c = eval(in1size);
+ in2num_c = eval(in2size);
+ outsize(1) = string(in1num_c);
+ outsize(2) = string(in1num_c + in2num_c);
+else
+ error(36, "Wrong input argument "+inval+". Use 1 or 2 as first argument in cat command.");
+end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci b/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci
new file mode 100644
index 00000000..1417b42b
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci
@@ -0,0 +1,38 @@
+function outsize = FA_SZ_ROW_DIAG(insize)
+//function outsize = FA_SZ_ROW_DIAG(insize)
+// -----------------------------------------------------------------
+// Get size of row of the output for diag function
+//
+// Input data:
+// insize: string specifying the size of input argument.
+//
+// Output data:
+// outsize: string containing the row size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(1),1,1);
+
+if(insize(1)=='1') then
+ outsize = insize(2);
+elseif(insize(1) == insize(2))
+ outsize = insize(1);
+else
+ outsize = insize(1);
+end
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci b/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci
new file mode 100644
index 00000000..1dddfb77
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci
@@ -0,0 +1,103 @@
+function outsize = FA_SZ_ROW_DIAG_INS_EXT(insize,val)
+//function outsize = FA_SZ_ROW_DIAG_INS_EXT(insize,val)
+// -----------------------------------------------------------------
+// Get row size of output for diag(insert) function
+//
+// Input data:
+// insize: string specifying the size of first input argument.
+// val: string specifying the value of second input argument.
+//
+// Output data:
+// outsize: string containing the size for output argument.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Mushir
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+ // val ==> Position value ...,-2,-1,0,1,2....
+ //insize ==> insize(1) will give ROW size and insize(2) will give COLUMN size.
+ insize = string(insize);
+ row_num = eval(insize(1));
+ col_num = eval(insize(2));
+ val_num = eval(val);
+ ///////////////////// FOR INSERT CONDITION //////////////////////////////
+
+
+
+ if(row_num == 1)
+ if(val_num == 0) then // For 0th position
+ outsize = string(col_num);// ROW size is equal to COLUMN size
+
+ else // For ....-2,-1,1,2... positions
+ outsize = string(col_num+abs(val_num));
+ //ROW is equal to COLUMN SIZE + position value (i.e for 1*4 matrix and insert position 1 then ROW size is 4+1 = 5 )
+
+ end
+ elseif(col_num == 1) // if Column size is one
+ if(val_num == 0) then // For Oth position
+ outsize = string(row_num); // ROW size is equal to ROW size
+
+ else // ....-2,-1,1,2... positions.
+ outsize = string(row_num + abs(val_num));
+ //ROW is equal to ROW SIZE + position value (i.e for 4*1 matrix and insert position 1 then ROW size is 4+1 = 5 )
+
+ end
+
+ /////////////////////////////////////////////////////////////////////////////
+
+
+ //////////////////////////// FOR EXTRACT CONDITION /////////////////////////
+
+ elseif(row_num == col_num) // For no. of rows equal to no. of column (R == C)
+ if(val_num == 0) then //For 0th position
+ outsize = string(col_num); // No. of row is equal to column size
+ else //For ....-2,-1,1,2... Positions
+ outsize = string(col_num-abs(val_num)); //row value is equal to subtraction of column size and absolute value of position (i.e +ve and -ve both position values)
+ end
+ elseif(row_num > col_num) // for no. of rows greater than no. of column (R > C)
+ if(val_num == 0) then // if 0th position
+ outsize = string(col_num); // No. of row is equal to column size
+ elseif(val_num > 0) then // For +ve positions i.e 1,2,3.....
+ outsize = string(col_num-abs(val_num)); // No. of row is equal to subtraction of column size and absolute value of +ve postion
+
+ elseif(val_num < 0 ) then // For -ve positions i.e -1,-2,-3
+ temp_outsize1 = row_num-abs(val_num); //In this row values are varying for 4*3 matrix there is no repetition of same row values,for 5*3 matrix there is (5-3 = 2) two same row size(i.e 3 and 3) for -1,-2 position and for 6*3 matrix there is (6-3 = 3) three same row size(i.e 3 ,3,3) for -1,-2,-3 position
+ if(temp_outsize1 >= col_num) // if temp_outsize1 is greater than equal to column size then
+ outsize = string(col_num); // row size is equal to column
+ else
+ outsize = string(row_num-abs(val_num)); // else row size is substractio of row and abosulte value of position(i.e -1,-2,-3)
+ end
+ end
+ elseif(row_num < col_num) // for no. of rows less than no. of column size
+ if(val_num == 0) then // if 0th position
+ outsize = string(row_num); // No. of row is equal to row size
+ elseif(val_num > 0) then // for +ve positions i.e 1,2 3.....
+ temp_outsize2 = col_num-abs(val_num);// In this column values are varying for 3*4 matrix there is no repetition of same row values,for 3*5 matrix there is (5-3 =2) two same row size (i.e 3, 3 ) for 1 ,2 position and for 3*6 matrix there is (6-3 = 3) three row size (i.e 3 ,3 ,3) for 1,2 3 position
+ if(temp_outsize2 >= row_num) // if temp_outsize2 is greater than equal to row size then
+ outsize = string(row_num); // row size is equal to row size
+ else
+ outsize = string(col_num-abs(val_num)); // else row size substractio of column and absolute value
+ end
+ elseif(val_num < 0) then // for -ve positions i.e -1,-2,-3 .. positions
+ outsize = string(row_num-abs(val_num)); // row size is substraction of row size and absolute value of position values(-1,-2,-3)
+ end
+
+ //////////////////////////////////////////////////////////////////////////////////////
+ end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_SZ_U_SVA.sci b/macros/FunctionAnnotation/FA_SZ_U_SVA.sci
new file mode 100644
index 00000000..3b8b25c5
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_SZ_U_SVA.sci
@@ -0,0 +1,39 @@
+function opout = FA_SZ_U_SVA(in1,in2)
+
+// function opout = FA_SZ_U_SVA(in1,in2)
+// -----------------------------------------------------------------
+// Determines the number of rows of the output arguments
+// according to the second input argument.
+//
+// Input data:
+// in1: specifying a matrix or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed size of U matrix.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Sandeep Gupta
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+//in1 = string(in1);
+// disp(in1)
+// disp(in2)
+//in1 = eval(in1);
+//in2 = string(in2);
+//in2 = eval(in2);
+//[U,S,V] = sva(in1,in2);
+//outsize = size(U)
+//opout = outsize(2)
+opout = string(in2)
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_ASCII.sci b/macros/FunctionAnnotation/FA_TP_ASCII.sci
new file mode 100644
index 00000000..e05dd7ae
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_ASCII.sci
@@ -0,0 +1,10 @@
+function outtp=FA_TP_ASCII(in1tp)
+
+in1tp=string(in1tp);
+if(in1tp=='g') then
+ outtp='u8';
+else
+ outtp='g';
+end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci b/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci
new file mode 100644
index 00000000..5e87ab81
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci
@@ -0,0 +1,37 @@
+function typeout = FA_TP_CVIMAGE()
+// function typeout = FA_TP_INT16()
+// -----------------------------------------------------------------
+// Returns the OpenCV image type specifier (im)
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'im';
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_INT16.sci b/macros/FunctionAnnotation/FA_TP_INT16.sci
new file mode 100644
index 00000000..b7e25cad
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_INT16.sci
@@ -0,0 +1,37 @@
+function typeout = FA_TP_INT16()
+// function typeout = FA_TP_INT16()
+// -----------------------------------------------------------------
+// Returns the "int16" type specifier
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'i16';
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_INT8.sci b/macros/FunctionAnnotation/FA_TP_INT8.sci
new file mode 100644
index 00000000..f1e2bf26
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_INT8.sci
@@ -0,0 +1,37 @@
+function typeout = FA_TP_INT8()
+// function typeout = FA_TP_INT8()
+// -----------------------------------------------------------------
+// Returns the "int8" type specifier
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'i8';
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_MODSN.sci b/macros/FunctionAnnotation/FA_TP_MODSN.sci
new file mode 100644
index 00000000..f766b4e7
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_MODSN.sci
@@ -0,0 +1,10 @@
+function outtp=FA_TP_MODSN(in1tp)
+
+in1tp=string(in1tp);
+if(in1tp=='d') then
+ outtp='d';
+else
+ outtp='z';
+end
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_UINT16.sci b/macros/FunctionAnnotation/FA_TP_UINT16.sci
new file mode 100644
index 00000000..b77d7751
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_UINT16.sci
@@ -0,0 +1,37 @@
+function typeout = FA_TP_UINT16()
+// function typeout = FA_TP_UINT16()
+// -----------------------------------------------------------------
+// Returns the "uint16" type specifier
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'u16';
+
+endfunction
diff --git a/macros/FunctionAnnotation/FA_TP_UINT8.sci b/macros/FunctionAnnotation/FA_TP_UINT8.sci
new file mode 100644
index 00000000..f31cde0f
--- /dev/null
+++ b/macros/FunctionAnnotation/FA_TP_UINT8.sci
@@ -0,0 +1,37 @@
+function typeout = FA_TP_UINT8()
+// function typeout = FA_TP_UINT8()
+// -----------------------------------------------------------------
+// Returns the "uint8" type specifier
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Siddhesh Wani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),0,0);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+typeout = 'u8';
+
+endfunction
diff --git a/macros/FunctionAnnotation/names b/macros/FunctionAnnotation/names
new file mode 100644
index 00000000..423c825a
--- /dev/null
+++ b/macros/FunctionAnnotation/names
@@ -0,0 +1,81 @@
+FA_ADD
+FA_DIV
+FA_FSFIRLIN_SZ
+FA_GetDefaultPrecision
+FA_GetFunAnn
+FA_GetOutArgInfo
+FA_GetResizeApproach
+FA_INSZ_RPI
+FA_INT
+FA_MAX
+FA_MIN
+FA_MUL
+FA_REAL
+FA_SCHUR_SZ
+FA_SCHUR_TP
+FA_SUB
+FA_SZ_1
+FA_SZ_2
+FA_SZ_AMELL
+FA_SZ_COLUMN_DIAG
+FA_SZ_COL_DIAG_IN_EX
+FA_SZ_DEC2BASE
+FA_SZ_DEC2BIN
+FA_SZ_DEC2HEX
+FA_SZ_DEC2OCT
+FA_SZ_DIFF
+FA_SZ_FACTOR
+FA_SZ_FROM_VAL
+FA_SZ_LINSPACE_ROW
+FA_SZ_LQE
+FA_SZ_LQR
+FA_SZ_MODSN
+FA_SZ_OBSCNT
+FA_SZ_OPAPEX
+FA_SZ_OPBACKSLASH
+FA_SZ_OPCC
+FA_SZ_OPDOTAPEX
+FA_SZ_OPDOTBACKSLASH
+FA_SZ_OPDOTHAT
+FA_SZ_OPDOTSLASH
+FA_SZ_OPDOTSTAR
+FA_SZ_OPHAT
+FA_SZ_OPLOGAND
+FA_SZ_OPLOGEQ
+FA_SZ_OPLOGGE
+FA_SZ_OPLOGGT
+FA_SZ_OPLOGLE
+FA_SZ_OPLOGLT
+FA_SZ_OPLOGNE
+FA_SZ_OPLOGNOT
+FA_SZ_OPLOGOR
+FA_SZ_OPMINUS
+FA_SZ_OPPLUS
+FA_SZ_OPPLUSA
+FA_SZ_OPRC
+FA_SZ_OPSLASH
+FA_SZ_OPSTAR
+FA_SZ_PRIMES
+FA_SZ_ROW_COLUMN_CAT
+FA_SZ_ROW_DIAG
+FA_SZ_ROW_DIAG_INS_EXT
+FA_SZ_SEL1
+FA_SZ_SEL2
+FA_SZ_U_SVA
+FA_TP_ASCII
+FA_TP_C
+FA_TP_COMPLEX
+FA_TP_CVIMAGE
+FA_TP_D
+FA_TP_I
+FA_TP_INT16
+FA_TP_INT8
+FA_TP_MAX
+FA_TP_MIN_REAL
+FA_TP_MODSN
+FA_TP_REAL
+FA_TP_S
+FA_TP_UINT16
+FA_TP_UINT8
+FA_TP_USER
+FA_TP_Z