From 9e5793a7b05b23e6044a6d7a9ddd5db39ba375f0 Mon Sep 17 00:00:00 2001
From: yash1112
Date: Fri, 7 Jul 2017 21:20:49 +0530
Subject: sci2c arduino updated

---
 2.3-1/macros/FunctionAnnotation/FA_ADD.sci         |  43 ++++
 2.3-1/macros/FunctionAnnotation/FA_DIV.sci         |  41 ++++
 .../FunctionAnnotation/FA_GetDefaultPrecision.sci  |  97 +++++++++
 2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci   | 216 +++++++++++++++++++++
 .../macros/FunctionAnnotation/FA_GetOutArgInfo.sci | 133 +++++++++++++
 .../FunctionAnnotation/FA_GetResizeApproach.sci    |  79 ++++++++
 2.3-1/macros/FunctionAnnotation/FA_INT.sci         |  40 ++++
 2.3-1/macros/FunctionAnnotation/FA_MAX.sci         |  50 +++++
 2.3-1/macros/FunctionAnnotation/FA_MIN.sci         |  45 +++++
 2.3-1/macros/FunctionAnnotation/FA_MUL.sci         |  42 ++++
 2.3-1/macros/FunctionAnnotation/FA_REAL.sci        |  50 +++++
 2.3-1/macros/FunctionAnnotation/FA_SCHUR_SZ.sci    |  42 ++++
 2.3-1/macros/FunctionAnnotation/FA_SCHUR_TP.sci    |  38 ++++
 2.3-1/macros/FunctionAnnotation/FA_SUB.sci         |  41 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_1.sci        |  21 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_2.sci        |  21 ++
 .../FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci       |  40 ++++
 .../FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci    |  61 ++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci |  30 +++
 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci  |  20 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci  |  21 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci  |  20 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_DIFF.sci     |  58 ++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_FACTOR.sci   |  20 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci |  36 ++++
 .../FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci      |  33 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_LQE.sci      |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_LQR.sci      |  34 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci   |  48 +++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPAPEX.sci   |  26 +++
 .../FunctionAnnotation/FA_SZ_OPBACKSLASH.sci       |  39 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPCC.sci     |  40 ++++
 .../macros/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci  |  16 ++
 .../FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci    |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTHAT.sci |  43 ++++
 .../macros/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci |  16 ++
 .../macros/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci  |  32 +++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPHAT.sci    |  43 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGAND.sci |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGEQ.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGE.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGT.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLE.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLT.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNE.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNOT.sci |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGOR.sci  |  16 ++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPMINUS.sci  |  51 +++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUS.sci   |  93 +++++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUSA.sci  |  66 +++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPRC.sci     |  40 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPSLASH.sci  |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_OPSTAR.sci   |  68 +++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_PRIMES.sci   |  21 ++
 .../FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci    |  50 +++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci |  38 ++++
 .../FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci  | 103 ++++++++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_SEL1.sci     |  48 +++++
 2.3-1/macros/FunctionAnnotation/FA_SZ_SEL2.sci     |  44 +++++
 2.3-1/macros/FunctionAnnotation/FA_TP_C.sci        |  32 +++
 2.3-1/macros/FunctionAnnotation/FA_TP_COMPLEX.sci  |  42 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci  |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_D.sci        |  32 +++
 2.3-1/macros/FunctionAnnotation/FA_TP_I.sci        |  32 +++
 2.3-1/macros/FunctionAnnotation/FA_TP_INT16.sci    |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_INT8.sci     |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_MAX.sci      |  45 +++++
 2.3-1/macros/FunctionAnnotation/FA_TP_MIN_REAL.sci |  35 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_REAL.sci     |  38 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_S.sci        |  32 +++
 2.3-1/macros/FunctionAnnotation/FA_TP_UINT16.sci   |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_UINT8.sci    |  37 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_USER.sci     |  38 ++++
 2.3-1/macros/FunctionAnnotation/FA_TP_Z.sci        |  32 +++
 2.3-1/macros/FunctionAnnotation/buildmacros.sce    |  15 ++
 2.3-1/macros/FunctionAnnotation/lib                | Bin 0 -> 2264 bytes
 2.3-1/macros/FunctionAnnotation/names              |  74 +++++++
 77 files changed, 3163 insertions(+)
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_ADD.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_DIV.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_GetResizeApproach.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_INT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_MAX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_MIN.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_MUL.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_REAL.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SCHUR_SZ.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SCHUR_TP.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SUB.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_1.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_2.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_DIFF.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_FACTOR.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_LQE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_LQR.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPAPEX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPCC.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTHAT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPHAT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGAND.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGEQ.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNOT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGOR.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPMINUS.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUS.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUSA.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPRC.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPSLASH.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_OPSTAR.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_PRIMES.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_SEL1.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_SZ_SEL2.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_C.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_COMPLEX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_D.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_I.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_INT16.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_INT8.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_MAX.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_MIN_REAL.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_REAL.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_S.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_UINT16.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_UINT8.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_USER.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/FA_TP_Z.sci
 create mode 100644 2.3-1/macros/FunctionAnnotation/buildmacros.sce
 create mode 100644 2.3-1/macros/FunctionAnnotation/lib
 create mode 100644 2.3-1/macros/FunctionAnnotation/names

(limited to '2.3-1/macros/FunctionAnnotation')

diff --git a/2.3-1/macros/FunctionAnnotation/FA_ADD.sci b/2.3-1/macros/FunctionAnnotation/FA_ADD.sci
new file mode 100644
index 00000000..4193422b
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_ADD.sci
@@ -0,0 +1,43 @@
+function opout = FA_ADD(in1,in2)
+// function opout = FA_ADD(in1,in2)
+// -----------------------------------------------------------------
+// Addition function for Function Annotations.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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 (isnum(in1) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_DIV.sci b/2.3-1/macros/FunctionAnnotation/FA_DIV.sci
new file mode 100644
index 00000000..d4ec0ccd
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_DIV.sci
@@ -0,0 +1,41 @@
+function opout = FA_DIV(in1,in2)
+// function opout = FA_DIV(in1,in2)
+// -----------------------------------------------------------------
+// Division function for Function Annotations.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (isnum(in1) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci b/2.3-1/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
new file mode 100644
index 00000000..3603c572
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci
@@ -0,0 +1,97 @@
+function defaultprecision = FA_GetDefaultPrecision(scifilename,ReportFileName)
+// function defaultprecision = FA_GetDefaultPrecision(scifilename,ReportFileName)
+// -----------------------------------------------------------------
+// #RNU_RES_B
+// Extracts the default precision for the file .sci passed in input.
+// The following annotation will be searched in the scilab code:
+// //SCI2C: DEFAULT_PRECISION= FLOAT
+// //SCI2C: DEFAULT_PRECISION= DOUBLE
+// If the annotation is missing the default DOUBLE precision will be
+// implicitly used.
+// #RNU_RES_E
+// 
+// Input data:
+// ---
+//
+// Output data:
+// defaultprecision: string which specifies the default precision to be 
+//                   used in the translation of scifilename.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+defaultprecision = 'd';
+annotationstring = '//SCI2C: DEFAULT_PRECISION='
+// #RNU_RES_B
+PrintStringInfo('***Get default precision from: '+scifilename,ReportFileName,'file','y');
+// #RNU_RES_E
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// --- Open the .sci file (read only). ---
+scifid = SCI2COpenFileRead(scifilename);
+
+// #RNU_RES_B
+// --- Loop over the lines of the input file. ---
+// Position file pointer to the desired NInArg/NOutArg section,
+// and read the NOutArg annotation.
+// #RNU_RES_E
+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)));
+         // #RNU_RES_B
+         PrintStringInfo('   Line '+string(line_position)+...
+            ' - Found annotation for default precision'+' ""'+check_string+' ""',...
+            ReportFileName,'file','y');
+         // #RNU_RES_E
+         foundannotation = 1;
+      end
+   end
+end
+
+if (foundannotation == 0)
+   // #RNU_RES_B
+   PrintStringInfo('Annotation for default precision not found.',ReportFileName,'file','y');
+   PrintStringInfo('Using the ""DOUBLE"" default precision.',ReportFileName,'file','y');
+   // #RNU_RES_E
+else
+   if (tmpprecision == 'FLOAT')
+      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
+
+mclose(scifid);
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci b/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci
new file mode 100644
index 00000000..d11e3cee
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_GetFunAnn.sci
@@ -0,0 +1,216 @@
+function [FunTypeAnnot,FunSizeAnnot,NOutArg_mod] = ...
+    FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
+// function [FunTypeAnnot,FunSizeAnnot] = ...
+//    FA_GetFunAnn(NInArg,NOutArg,FunName,FileInfo,SharedInfo)
+// -----------------------------------------------------------------
+// #RNU_RES_B
+// This function extracts the TYPE and SIZE annotations from the
+// input .ann file.
+// No blank lines are allowed between function annotations.
+//
+// #RNU_RES_E
+// Input data:
+// //NUT: Add description here
+//
+// Output data:
+// //NUT: Add description here
+//
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+//NUT: consider the possibility to split this function into more functions.
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),5,5);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+nxtscifunname   = SharedInfo.NextSCIFunName;
+nxtscifunnumber = SharedInfo.NextSCIFunNumber;
+ReportFileName  = FileInfo.Funct(nxtscifunnumber).ReportFileName;
+// #RNU_RES_B
+PrintStringInfo(' ',ReportFileName,'file','y');
+PrintStringInfo('***Reading function annotations***',ReportFileName,'file','y');
+// #RNU_RES_E
+SCI2CClassFileName = GetClsFileName(FunName,FileInfo,SharedInfo);
+FunTypeAnnot = '';
+FunSizeAnnot = '';
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+
+// ---------------------------------------------
+// --- Read the annotations of the function. ---
+// ---------------------------------------------
+// --- Open the .sci file (read only). ---
+inclsfid = SCI2COpenFileRead(SCI2CClassFileName);
+
+// #RNU_RES_B
+// --- Loop over the lines of the input file. ---
+// Position file pointer to the desired NInArg/NOutArg section,
+// and read the NOutArg annotation.
+// #RNU_RES_E
+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))
+
+// #RNU_RES_B
+// --- Search for the NIN annotation. ---
+// #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
+      if (eval(FUNNINAnnot) == NInArg)
+// #RNU_RES_B
+        PrintStringInfo('   Line '+string(line_position)+' - Function NInArg Annotation: '+' ""'+check_string+' ""',...
+                        ReportFileName,'file','y');
+// #RNU_RES_E
+        FoundNIn = 1;
+        check_string = stripblanks(mgetl(inclsfid,1));
+        line_position = line_position + 1;
+        if (~isempty(check_string))
+
+// #RNU_RES_B
+// --- Search for the NOUT annotation. ---
+// #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
+            if (eval(FUNNOUTAnnot) == NOutArg)
+// #RNU_RES_B
+              PrintStringInfo('   Line '+string(line_position)+' - Function NOutArg Annotation: '+' ""'+check_string+' ""',...
+                              ReportFileName,'file','y');
+// #RNU_RES_E
+              FoundNOut = 1;
+            elseif(eval(FUNNOUTAnnot) == 0)
+              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');
+            error(9999, 'SCI2CERROR: Incorrect format for function annotation.');
+          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');
+          error(9999, 'SCI2CERROR: Incorrect format for function annotation.');
+        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');
+  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;
+
+  for cntout = 1:NOutArg
+    SCI2C_nout=cntout; // Useful for eval.
+
+// #RNU_RES_B
+// Read the Fun type annotation.
+// #RNU_RES_E
+    if (readNewLine == %t)
+      check_string = stripblanks(mgetl(inclsfid,1));
+      line_position = line_position + 1;
+    else
+      // reset state
+      readNewLine = %t;
+    end
+    if (isempty(check_string) == %F)
+      tmpannstring = eval(SharedInfo.Annotations.FUNTYPE);
+      if (SCI2Cstrncmps1size(tmpannstring,check_string))
+// #RNU_RES_B
+        PrintStringInfo('   Line '+string(line_position)+' - Function Type Annotation: '+' ""'+check_string+' ""',...
+                        ReportFileName,'file','y');
+// #RNU_RES_E
+        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');
+      error(9999, 'SCI2CERROR: Line '+string(line_position)+' Function type annotation not found in file: '+SCI2CClassFileName);
+    end
+
+// #RNU_RES_B
+// --- Read the Fun size annotation. ---
+// #RNU_RES_E
+    SCI2C_nelem = 0; // Useful for eval.
+//    while(SCI2C_nelem < 2 & isempty(check_string) == %F)
+    while(SCI2C_nelem < 3 & isempty(check_string) == %F)
+      line_position = line_position + 1;
+// #RNU_RES_B
+      PrintStringInfo('   Line '+string(line_position)+' - Function Size Annotation: '+' ""'+check_string+' ""',...
+                      ReportFileName,'file','y');
+      if (isempty(check_string) == %F)
+        SCI2C_nelem = SCI2C_nelem + 1
+        tmpannstring = eval(SharedInfo.Annotations.FUNSIZE);
+        check_string = stripblanks(mgetl(inclsfid,1));
+        if (SCI2Cstrncmps1size(tmpannstring,check_string))
+// #RNU_RES_E
+          FunSizeAnnot(cntout,SCI2C_nelem) = ...
+              stripblanks(part(check_string,length(tmpannstring)+1:length(check_string)));
+        else
+          readNewLine = %f;
+        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');
+        error(9999, 'SCI2CERROR: Line '+string(line_position)+' Function size annotation not found in file: '+SCI2CClassFileName);
+      end
+    end
+  end
+
+  
+end
+// --- End loop over the lines of the input file. ---
+mclose(inclsfid);
+// -------------------------------------------------
+// --- End Read the annotations of the function. ---
+// -------------------------------------------------
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_GetOutArgInfo.sci b/2.3-1/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
new file mode 100644
index 00000000..99eaaa5f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_GetOutArgInfo.sci
@@ -0,0 +1,133 @@
+function UpdatedOutArg = ...
+   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)
+// -----------------------------------------------------------------
+// #RNU_RES_B
+// InArg is used by eval don't remove it from the function call.
+//
+// #RNU_RES_E
+// Input data:
+// //NUT: Add description here
+//
+// Output data:
+// //NUT: Add description here
+//
+// Status:
+// 25-Oct-2007 -- Raffaele Nutricato: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),10,10);
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+
+UpdatedOutArg   = OutArg;
+for cntin = 1:NInArg
+   IN(cntin).TP    = InArg(cntin).Type;
+   for _InArgSize=1:size(InArg(cntin).Size, '*')
+     IN(cntin).SZ(_InArgSize) = InArg(cntin).Size(_InArgSize);
+   end
+   if ((isnan(InArg(cntin).Value)) & (GetSymbolDimension(InArg(cntin).Size) == 0))
+      // #RNU_RES_B
+      // IN(cntin).VAL = '__SCI2CNANSIZE'; //RNU: toglimi
+      //RNU: Replace the value of the variable with its name, in case it is a scalar variable.
+      // #RNU_RES_E
+      IN(cntin).VAL = InArg(cntin).Name;
+   else
+      IN(cntin).VAL = string(InArg(cntin).Value);
+   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
+      // Then we must assume that the output will be findlike
+      // 0 = no find-like
+      // 1 = pure find-like
+      //-1 = similar to find-like (out=fun(in)) where in is find-like.
+      // #RNU_RES_E
+      flagfindlike = -1;
+   end
+end
+
+for counterout = 1:NOutArg
+   if(FunTypeAnnot == 'FA_TP_USER')
+      UpdatedOutArg(counterout).Type   = FA_TP_USER(FunPrecSpecifier,DefaultPrecision);
+   else
+      UpdatedOutArg(counterout).Type   = eval(FunTypeAnnot(counterout));
+   end
+   UpdatedOutArg(counterout).FindLike  = 0;
+
+   // This is just to remove the FA_SZ_RTMAX tag ???
+   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
+
+   // #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)
+   for iterOutputPosition=1:size(FunSizeAnnot, 'c')
+     tmpeval = eval(FunSizeAnnot(counterout, iterOutputPosition));
+     if (IsNanSize(tmpeval))
+       if SharedInfo.ForExpr.OnExec == 0
+         EM_NanSize(ReportFileName);
+       else
+         UpdatedOutArg(counterout).Size(iterOutputPosition) = string(tmpeval);
+       end
+     elseif(isnum(tmpeval))
+       if (eval(tmpeval) <= 0)
+         EM_ZeroSize(ReportFileName);
+       else
+         UpdatedOutArg(counterout).Size(iterOutputPosition) = string(tmpeval);
+       end
+     else
+       UpdatedOutArg(counterout).Size(iterOutputPosition) = string(tmpeval);
+     end
+   end
+   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
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_GetResizeApproach.sci b/2.3-1/macros/FunctionAnnotation/FA_GetResizeApproach.sci
new file mode 100644
index 00000000..95427001
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_GetResizeApproach.sci
@@ -0,0 +1,79 @@
+function ResizeApproach = FA_GetResizeApproach(scifilename,ReportFileName)
+
+// function ResizeApproach = FA_GetResizeApproach(scifilename,ReportFileName)
+// -----------------------------------------------------------------
+// Extracts the resize approach from the file .sci passed in input.
+// The following annotation will be searched in the scilab code:
+// //SCI2C: RESIZE_APPROACH= NO_RESIZE
+// //SCI2C: RESIZE_APPROACH= RESIZE_ALL
+// //SCI2C: RESIZE_APPROACH= REALLOC_ALL_RESIZE_ALL
+// //SCI2C: RESIZE_APPROACH= RESIZE_TEMP
+// //SCI2C: RESIZE_APPROACH= RESIZE_LOCAL
+// //SCI2C: RESIZE_APPROACH= RESIZE_GLOBAL
+// If the annotation is missing the default NO_RESIZE approach will be
+// implicitly used.
+// 
+// Input data:
+// ---
+//
+// Output data:
+// ResizeApproach: string which specifies the resize approach 
+//                 used in the translation of scifilename.
+//
+// Status:
+// 12-Jul-2008 -- Raffaele Nutricato: Author.
+//
+// Copyright 2008 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// -----------------------
+// --- Initialization. ---
+// -----------------------
+ResizeApproach = 'NO_RESIZE';
+annotationstring = '//SCI2C: RESIZE_APPROACH='
+PrintStringInfo('***Get resize approach from: '+scifilename,ReportFileName,'file','y'); // #RNUREM_ME
+// ---------------------------
+// --- End Initialization. ---
+// ---------------------------
+
+// --- Open the .sci file (read only). ---
+scifid = SCI2COpenFileRead(scifilename);
+
+// --- Loop over the lines of the input file. ---
+// Position file pointer to the desired NInArg/NOutArg section,
+// and read the NOutArg annotation.
+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))
+         tmpresize = stripblanks(part(check_string,length(annotationstring)+1:length(check_string)));
+         // #RNU_RES_B
+         PrintStringInfo('   Line '+string(line_position)+...
+            ' - Found annotation for resize approach'+' ""'+check_string+' ""',...
+            ReportFileName,'file','y');
+         // #RNU_RES_E
+         foundannotation = 1;
+      end
+   end
+end
+
+if (foundannotation == 0)
+   // #RNU_RES_B
+   PrintStringInfo('Annotation for resize approach not found.',ReportFileName,'file','y');
+   PrintStringInfo('Using the ''NO_RESIZE'' resize approach.',ReportFileName,'file','y');
+   // #RNU_RES_E
+else
+   ResizeApproach = tmpresize;
+end
+mclose(scifid);
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_INT.sci b/2.3-1/macros/FunctionAnnotation/FA_INT.sci
new file mode 100644
index 00000000..e1bdba33
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_INT.sci
@@ -0,0 +1,40 @@
+function opout = FA_INT(in1)
+// function opout = FA_INT(in1)
+// -----------------------------------------------------------------
+// Int function for Function Annotations.
+// When in1 is a number opout = int(in1); where int truncates in1
+// to integer. If in1 is string opout = in1.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),1,1);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (isnum(in1))
+   outnum = int(eval(in1));
+   if isnan(outnum)
+      opout  = '__SCI2CNANSIZE';
+   else
+      opout  = string(outnum);
+   end
+else
+   opout  = in1;
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_MAX.sci b/2.3-1/macros/FunctionAnnotation/FA_MAX.sci
new file mode 100644
index 00000000..c5406f14
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_MAX.sci
@@ -0,0 +1,50 @@
+function opout = FA_MAX(in1,in2)
+// function opout = FA_MAX(in1,in2)
+// -----------------------------------------------------------------
+// Maximum function for Function Annotations.
+// When in1 and in2 are both symbols this function returns
+// in1.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (isnum(in1))
+   in1num = eval(in1);
+   if (isnum(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/2.3-1/macros/FunctionAnnotation/FA_MIN.sci b/2.3-1/macros/FunctionAnnotation/FA_MIN.sci
new file mode 100644
index 00000000..e1539103
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_MIN.sci
@@ -0,0 +1,45 @@
+function opout = FA_MIN(in1,in2)
+// function opout = FA_MIN(in1,in2)
+// -----------------------------------------------------------------
+// Minimum function for Function Annotations.
+// When in1 and in2 are both symbols this function returns
+// in1.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (isnum(in1))
+   in1num = eval(in1);
+   if (isnum(in2))
+      in2num = eval(in2);
+      outnum = min(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/2.3-1/macros/FunctionAnnotation/FA_MUL.sci b/2.3-1/macros/FunctionAnnotation/FA_MUL.sci
new file mode 100644
index 00000000..8c9a930a
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_MUL.sci
@@ -0,0 +1,42 @@
+function opout = FA_MUL(in1,in2)
+// function opout = FA_MUL(in1,in2)
+// -----------------------------------------------------------------
+// Multiplication function for Function Annotations.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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 (isnum(in1) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_REAL.sci b/2.3-1/macros/FunctionAnnotation/FA_REAL.sci
new file mode 100644
index 00000000..7b8c0fda
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_REAL.sci
@@ -0,0 +1,50 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009-2009 - DIGITEO - 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
+//
+//
+function opout = FA_REAL(in1, in2)
+// function opout = FA_REAL(in1, in2)
+// -----------------------------------------------------------------
+// Real function for Function Annotations.
+// When in1 is a number opout = real(in1); where real returns in1
+// real part. If in1 is string opout = in1.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying in1 type
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (isnum(in1))
+   outnum = real(eval(in1));
+   if isnan(outnum)
+      opout  = '__SCI2CNANSIZE';
+   else
+      opout  = string(outnum);
+   end
+else
+   if (in1 == "%i")
+      opout  = " 0 ";
+   else
+      opout  = in2+"0real"+FA_TP_REAL(in2)+"0"+"("+in1+")";
+   end
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SCHUR_SZ.sci b/2.3-1/macros/FunctionAnnotation/FA_SCHUR_SZ.sci
new file mode 100644
index 00000000..7b426e1c
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SCHUR_TP.sci b/2.3-1/macros/FunctionAnnotation/FA_SCHUR_TP.sci
new file mode 100644
index 00000000..828ea1e5
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SUB.sci b/2.3-1/macros/FunctionAnnotation/FA_SUB.sci
new file mode 100644
index 00000000..1ef0ad46
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SUB.sci
@@ -0,0 +1,41 @@
+function opout = FA_SUB(in1,in2)
+// function opout = FA_SUB(in1,in2)
+// -----------------------------------------------------------------
+// Subtraction function for Function Annotations.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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 (isnum(in1) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_SZ_1.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_1.sci
new file mode 100644
index 00000000..3d20b992
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_1.sci
@@ -0,0 +1,21 @@
+function outsize = FA_SZ_1(insize)
+// function outsize = FA_SZ_1(insize)
+// -----------------------------------------------------------------
+// Returns the first element of the size array.
+// 
+// Input data:
+// insize: size of input argument. 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:
+// outsize: first element of the insize array.
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(1);
+
+endfunction 
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_2.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_2.sci
new file mode 100644
index 00000000..164cab3f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_2.sci
@@ -0,0 +1,21 @@
+function outsize = FA_SZ_2(insize)
+// function outsize = FA_SZ_2(insize)
+// -----------------------------------------------------------------
+// Returns the second element of the size array.
+// 
+// Input data:
+// insize: size of input argument. 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:
+// outsize: second element of the insize array.
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(2);
+
+endfunction 
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_COLUMN_DIAG.sci
new file mode 100644
index 00000000..3aea8397
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_COL_DIAG_IN_EX.sci
new file mode 100644
index 00000000..8a313fee
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BASE.sci
new file mode 100644
index 00000000..4cd6467d
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2BIN.sci
new file mode 100644
index 00000000..75d0cb07
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2HEX.sci
new file mode 100644
index 00000000..c1e07773
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_DEC2OCT.sci
new file mode 100644
index 00000000..056d333d
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_DIFF.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_DIFF.sci
new file mode 100644
index 00000000..5639ce77
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_FACTOR.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_FACTOR.sci
new file mode 100644
index 00000000..d816ff75
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
new file mode 100644
index 00000000..5ff03a60
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_FROM_VAL.sci
@@ -0,0 +1,36 @@
+function opout = FA_SZ_FROM_VAL(in1,in2)
+// function  opout = FA_SZ_FROM_VAL(in1,in2)
+// -----------------------------------------------------------------
+// Return a size according to the floored value of the first argument
+//
+// Input data:
+// in1: string specifying a number .
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// -----------------------------------------------------------------
+
+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
+
+else
+    opout  = in2+"0floor"+in2+"0"+"("+in1+")";
+    opout  = in2+"0abs"+in2+"0"+"("+opout+")";
+
+
+end
+
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_LINSPACE_ROW.sci
new file mode 100644
index 00000000..86f2aa7d
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_LQE.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_LQE.sci
new file mode 100644
index 00000000..6ddd1988
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_LQR.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_LQR.sci
new file mode 100644
index 00000000..cf1884aa
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OBSCNT.sci
new file mode 100644
index 00000000..a7cb85b9
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPAPEX.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPAPEX.sci
new file mode 100644
index 00000000..a93e8c50
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPAPEX.sci
@@ -0,0 +1,26 @@
+function opoutsize = FA_SZ_OPAPEX(in1size)
+// function opoutsize = FA_SZ_OPAPEX(in1size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPAPEX operator.
+// 
+//
+// 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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci
new file mode 100644
index 00000000..9d0625bd
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPBACKSLASH.sci
@@ -0,0 +1,39 @@
+function opoutsize = FA_SZ_OPBACKSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPBACKSLASH(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPBACKSLASH operator.
+// 
+//
+// 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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPCC.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPCC.sci
new file mode 100644
index 00000000..50527771
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPCC.sci
@@ -0,0 +1,40 @@
+function opoutsize = FA_SZ_OPCC(in1size,in2size)
+// function opoutsize = FA_SZ_OPCC(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPCC operator.
+//
+//
+// 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 (isnum(in1size(1)) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci
new file mode 100644
index 00000000..64e8030e
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTAPEX.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPDOTAPEX(in1size)
+// function opoutsize = FA_SZ_OPDOTAPEX(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci
new file mode 100644
index 00000000..75f4d5c3
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTBACKSLASH.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPDOTBACKSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTBACKSLASH(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTHAT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTHAT.sci
new file mode 100644
index 00000000..af522bac
--- /dev/null
+++ b/2.3-1/macros/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci
new file mode 100644
index 00000000..2a071f27
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSLASH.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPDOTSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTSLASH(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci
new file mode 100644
index 00000000..3fbae19a
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPDOTSTAR.sci
@@ -0,0 +1,32 @@
+function opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size)
+// function opoutsize = FA_SZ_OPDOTSTAR(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPDOTSTAR operator.
+// 
+//
+// 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),2,2);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+// --- Get dimensions of input arguments. ---
+in1dim = GetSymbolDimension(in1size);
+
+if (in1dim == 0)
+   opoutsize = string(in2size);
+else
+   opoutsize = string(in1size);
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_OPHAT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPHAT.sci
new file mode 100644
index 00000000..31174511
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPHAT.sci
@@ -0,0 +1,43 @@
+function opoutsize = FA_SZ_OPHAT(in1size,in2size)
+// function opoutsize = FA_SZ_OPHAT(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPHAT 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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGAND.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGAND.sci
new file mode 100644
index 00000000..099bb9ac
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGAND.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGAND(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGAND(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGEQ.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGEQ.sci
new file mode 100644
index 00000000..4ade6a0f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGEQ.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGEQ(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGEQ(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGE.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGE.sci
new file mode 100644
index 00000000..c6d6ee3f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGE.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGGE(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGGE(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGT.sci
new file mode 100644
index 00000000..0f6493c9
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGGT.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGGT(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGGT(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLE.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLE.sci
new file mode 100644
index 00000000..edda359f
--- /dev/null
+++ b/2.3-1/macros/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGLT.sci
new file mode 100644
index 00000000..81b1b256
--- /dev/null
+++ b/2.3-1/macros/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNE.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNE.sci
new file mode 100644
index 00000000..ff62abbf
--- /dev/null
+++ b/2.3-1/macros/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNOT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGNOT.sci
new file mode 100644
index 00000000..3b0c6549
--- /dev/null
+++ b/2.3-1/macros/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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGOR.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGOR.sci
new file mode 100644
index 00000000..f28eec2f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPLOGOR.sci
@@ -0,0 +1,16 @@
+function opoutsize = FA_SZ_OPLOGOR(in1size,in2size)
+// function opoutsize = FA_SZ_OPLOGOR(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPMINUS.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPMINUS.sci
new file mode 100644
index 00000000..5f7fc96a
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPMINUS.sci
@@ -0,0 +1,51 @@
+function opoutsize = FA_SZ_OPMINUS(in1size,in2size)
+// function opoutsize = FA_SZ_OPMINUS(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPMINUS 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:
+// 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),2,2);
+
+opoutsize = FA_SZ_OPPLUSA(in1size,in2size);
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUS.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUS.sci
new file mode 100644
index 00000000..f439e23e
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUS.sci
@@ -0,0 +1,93 @@
+function opoutsize = FA_SZ_OPPLUS(in1size,in2size,in1type,in2type)
+// function opoutsize = FA_SZ_OPPLUS(in1size,in2size,in1type,in2type)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPPLUS operator,
+// including the string operations.
+//
+// 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.
+// There is also the case related to the string catenation!
+// This is the main difference between - and + operators.
+//
+// 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:
+// 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);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+// --- Get dimensions of input arguments. ---
+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 (isnum(in1size(1)) & isnum(in2size(1)))
+      in1num = eval(in1size(1));
+      in2num = eval(in2size(1));
+      if (in1num > 1 | in2num > 1)
+         error(9999, 'String catenation can be performed only on strings of 1 x N size not N x 1 size');
+         //NUT: mi pare che non possano proprio esistere stringe di dimensione Nx1 perche' in
+         //NUT: scilab esiste il tipo string che e' di size 1x1 e sono io a trasformarlo in
+         //NUT: 1xN per cui se uso sempre questa convenzione non sbaglio mai.
+         //NUT: ho provato in scilab a fare la trasposta di una stringa e ottengo sempre 1x1.
+      end
+   end
+   if (isnum(in1size(2)) & isnum(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
+   error(9999, 'Unexpected type combination for ""+"" operator (type1,type2): ('+in1type+in2type+').');
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUSA.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUSA.sci
new file mode 100644
index 00000000..42ba90d5
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPPLUSA.sci
@@ -0,0 +1,66 @@
+function opoutsize = FA_SZ_OPPLUSA(in1size,in2size)
+// function opoutsize = FA_SZ_OPPLUSA(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPPLUS operator 
+// restricted to arithmetic operations (string operations not supported.)
+// 
+// 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.
+// There is also the case related to the string catenation!
+// This is the main difference between - and + operators.
+//
+// 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:
+// 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);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+// --- Get dimensions of input arguments. ---
+in1size = string(in1size);
+in2size = string(in2size);
+in1dim = GetSymbolDimension(in1size);
+
+if (in1dim == 0)
+   opoutsize = in2size;
+else
+   opoutsize = in1size;
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_OPRC.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPRC.sci
new file mode 100644
index 00000000..c4da4a0f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPRC.sci
@@ -0,0 +1,40 @@
+function opoutsize = FA_SZ_OPRC(in1size,in2size)
+// function opoutsize = FA_SZ_OPRC(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPRC operator.
+//
+//
+// 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);
+
+opoutsize(1) = in1size(1);
+
+if (isnum(in1size(2)) & isnum(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/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSLASH.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSLASH.sci
new file mode 100644
index 00000000..a44057d9
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSLASH.sci
@@ -0,0 +1,37 @@
+function opoutsize = FA_SZ_OPSLASH(in1size,in2size)
+// function opoutsize = FA_SZ_OPSLASH(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPSLASH operator.
+// 
+// Assuming:
+// size(in1) = [in1r,in1c]
+// size(in2) = [in2r,in2c]
+// size(out) = [outr,outc]
+//
+
+
+// ------------------------------
+// --- 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 (in1dim == 0)
+   opoutsize = in2size;
+elseif (in2dim == 0)
+   opoutsize = in1size;
+else
+   opoutsize(1) = in1size(1);
+   opoutsize(2) = in2size(1);
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSTAR.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSTAR.sci
new file mode 100644
index 00000000..12190d38
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_OPSTAR.sci
@@ -0,0 +1,68 @@
+function opoutsize = FA_SZ_OPSTAR(in1size,in2size)
+// function opoutsize = FA_SZ_OPSTAR(in1size,in2size)
+// -----------------------------------------------------------------
+// Returns the size of the output computed by OPSTAR 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   in2c
+//
+// 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:
+// 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),2,2);
+
+in1size = string(in1size);
+in2size = string(in2size);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+// --- 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(1);
+   opoutsize(2) = in2size(2);
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_PRIMES.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_PRIMES.sci
new file mode 100644
index 00000000..5a450686
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_COLUMN_CAT.sci
new file mode 100644
index 00000000..527217a5
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG.sci
new file mode 100644
index 00000000..1417b42b
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_ROW_DIAG_INS_EXT.sci
new file mode 100644
index 00000000..1dddfb77
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL1.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL1.sci
new file mode 100644
index 00000000..6071e960
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL1.sci
@@ -0,0 +1,48 @@
+function opout = FA_SZ_SEL1(in1,in2)
+// function opout = FA_SZ_SEL1(in1,in2)
+// -----------------------------------------------------------------
+// Determines the number of rows of the output arguments 
+// according to the number of rows of the first input argument and
+// the specifier in2 which can be 1,2 or 'r','c' and 'm'.
+// In this release the 'm' specifier is not supported so when it is
+// used SCI2C will issue an error.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+
+
+SCI2CNInArgCheck(argn(2),2,2);
+ReportFileName = '';
+in2 = string(in2);
+
+if (in2 == '1' | in2 == '""rr""' ) // Where can r become  rr ??? 
+   opout = '1';
+elseif (in2 == '2' | in2 == '""c""' )
+   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');
+   error(9999, 'SCI2CERROR: Cannot associate the second input argument to a known specifier.');
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL2.sci b/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL2.sci
new file mode 100644
index 00000000..b0be739f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_SZ_SEL2.sci
@@ -0,0 +1,44 @@
+function opout = FA_SZ_SEL2(in1,in2)
+// function opout = FA_SZ_SEL2(in1,in2)
+// -----------------------------------------------------------------
+// Determines the number of columns of the output arguments 
+// according to the number of columns of the first input argument and
+// the specifier in2 which can be 1,2 or 'r','c' and 'm'.
+// In this release the 'm' specifier is not supported so when it is
+// used SCI2C will issue an error.
+//
+// Input data:
+// in1: string specifying a number or a symbol.
+// in2: string specifying a number or a symbol.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+SCI2CNInArgCheck(argn(2),2,2);
+ReportFileName = '';
+in2 = string(in2);
+
+if (in2 == '1'| in2 == '""rr""')
+   opout = in1;
+elseif (in2 == '2'| in2 == '""c""')
+   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');
+   error(9999, 'SCI2CERROR: Cannot associate the second input argument to a known specifier.');
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_C.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_C.sci
new file mode 100644
index 00000000..b383b5ac
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_C.sci
@@ -0,0 +1,32 @@
+function typeout = FA_TP_C()
+// function typeout = FA_TP_C()
+// -----------------------------------------------------------------
+// Returns the "single complex" type specifier 
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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 = 'c';
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_COMPLEX.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_COMPLEX.sci
new file mode 100644
index 00000000..bf3f2f9f
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_COMPLEX.sci
@@ -0,0 +1,42 @@
+function typeout = FA_TP_COMPLEX(in1)
+// function typeout = FA_TP_COMPLEX(in1)
+// -----------------------------------------------------------------
+// Converts into complex data type the input argument, by preserving
+// the precision of the input argument.
+// See following examples:
+// FA_TP_COMPLEX('s') = 'c'
+// FA_TP_COMPLEX('d') = 'z'
+// FA_TP_COMPLEX('c') = 'c'
+// FA_TP_COMPLEX('z') = 'z'
+//
+// Input data:
+// in1: string specifying the data type number 1.
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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);
+
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+if (in1 == 's')
+   typeout = 'c';
+elseif (in1 == 'd')
+   typeout = 'z';
+else
+   typeout = in1;
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_CVIMAGE.sci
new file mode 100644
index 00000000..5e87ab81
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_TP_D.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_D.sci
new file mode 100644
index 00000000..788a03fe
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_D.sci
@@ -0,0 +1,32 @@
+function typeout = FA_TP_D()
+// function typeout = FA_TP_D()
+// -----------------------------------------------------------------
+// Returns the "double" type specifier 
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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 = 'd';
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_I.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_I.sci
new file mode 100644
index 00000000..94f383f4
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_I.sci
@@ -0,0 +1,32 @@
+function typeout = FA_TP_I()
+// function typeout = FA_TP_I()
+// -----------------------------------------------------------------
+// Returns the "int" type specifier 
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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 = 'i';
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_INT16.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_INT16.sci
new file mode 100644
index 00000000..b7e25cad
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_TP_INT8.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_INT8.sci
new file mode 100644
index 00000000..f1e2bf26
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_TP_MAX.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_MAX.sci
new file mode 100644
index 00000000..0b78f9e3
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_MAX.sci
@@ -0,0 +1,45 @@
+function opout = FA_TP_MAX(in1,in2)
+// function opout = FA_TP_MAX(in1,in2)
+// -----------------------------------------------------------------
+// Type-Maximum function for Function Annotations.
+// Returns the maximum between the two data types in input according
+// to a predefined priority. For example z(double complex) is 
+// greater that c(single complex).
+//
+// Input data:
+// in1: string specifying the data type number 1.
+// in2: string specifying the data type number 2.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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. ---
+// ------------------------
+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/2.3-1/macros/FunctionAnnotation/FA_TP_MIN_REAL.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_MIN_REAL.sci
new file mode 100644
index 00000000..43fc7926
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_MIN_REAL.sci
@@ -0,0 +1,35 @@
+function opout = FA_TP_MIN_REAL(in1,in2)
+// Status:
+// 2009 -- Arnaud Torset: Author.
+//
+// -----------------------------------------------------------------
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// 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
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+//SCI2CNInArgCheck(argn(2),2,2);
+
+in1Pin2 = in1+in2;
+opout = in1;
+
+if (opout == 'c')
+   opout = 's';
+elseif (opout == 'z')
+   opout = 'd';
+end
+
+if (in2 == 'c')
+   opout = 's';
+elseif (in2 == 's')
+   opout = 's';
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_REAL.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_REAL.sci
new file mode 100644
index 00000000..67a946dc
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_REAL.sci
@@ -0,0 +1,38 @@
+function opout = FA_TP_REAL(in1)
+// function opout = FA_TP_REAL(in1)
+// -----------------------------------------------------------------
+// Type-Real function for Function Annotations.
+// Returns the real precision corresponding to the precision of
+// the input operand.
+//
+// Input data:
+// in1: string specifying the data type number 1.
+//
+// Output data:
+// opout: string containing the computed result.
+//
+// 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);
+
+// ------------------------
+// --- Generate Output. ---
+// ------------------------
+opout = in1;
+
+if (in1 == 'c')
+   opout = 's';
+elseif (in1 == 'z')
+   opout = 'd';
+end
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_S.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_S.sci
new file mode 100644
index 00000000..3de4c20c
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_S.sci
@@ -0,0 +1,32 @@
+function typeout = FA_TP_S()
+// function typeout = FA_TP_S()
+// -----------------------------------------------------------------
+// Returns the "float" type specifier 
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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 = 's';
+
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_UINT16.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_UINT16.sci
new file mode 100644
index 00000000..b77d7751
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_TP_UINT8.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_UINT8.sci
new file mode 100644
index 00000000..f31cde0f
--- /dev/null
+++ b/2.3-1/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/2.3-1/macros/FunctionAnnotation/FA_TP_USER.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_USER.sci
new file mode 100644
index 00000000..e60a8ce8
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_USER.sci
@@ -0,0 +1,38 @@
+function type_out = FA_TP_USER(PrecisionSpecifier,DefaultType)
+// function type_out = FA_TP_USER(PrecisionSpecifier,DefaultType)
+// -----------------------------------------------------------------
+// Generate the output type of the output argument by using the
+// output (AnnotationFnc) generated by CheckAnnotationFunction.
+// double and float functions can be used to specify the type
+// of the output argument. They are typically used in combination
+// with zeros-like function.
+//
+// Input data:
+// PrecisionSpecifier: it can be 'double' or 'float'.
+//
+// Output data:
+// type_out: specifies the type of the output argument. It can be
+//           's' for float precision or 'd' for double precision.
+//
+// Status:
+// 26-Oct-2007 -- Raffaele Nutricato: Author.
+// 26-Oct-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+// ------------------------------
+// --- Check input arguments. ---
+// ------------------------------
+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
+   error(9999, 'Unknown precision function: ""'+AnnotationFnc+'"".');
+end
+endfunction
diff --git a/2.3-1/macros/FunctionAnnotation/FA_TP_Z.sci b/2.3-1/macros/FunctionAnnotation/FA_TP_Z.sci
new file mode 100644
index 00000000..2ac18dea
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/FA_TP_Z.sci
@@ -0,0 +1,32 @@
+function typeout = FA_TP_Z()
+// function typeout = FA_TP_Z()
+// -----------------------------------------------------------------
+// Returns the "double complex" type specifier 
+// for Function Annotations.
+//
+// Input data:
+// ---
+//
+// Output data:
+// typeout: string containing the type specifier.
+//
+// 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/2.3-1/macros/FunctionAnnotation/buildmacros.sce b/2.3-1/macros/FunctionAnnotation/buildmacros.sce
new file mode 100644
index 00000000..60fd2843
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/buildmacros.sce
@@ -0,0 +1,15 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009-2009 - DIGITEO - 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
+//
+//
+
+tbx_build_macros(TOOLBOX_NAME, get_absolute_file_path('buildmacros.sce'));
+
+clear tbx_build_macros;
diff --git a/2.3-1/macros/FunctionAnnotation/lib b/2.3-1/macros/FunctionAnnotation/lib
new file mode 100644
index 00000000..005780a4
Binary files /dev/null and b/2.3-1/macros/FunctionAnnotation/lib differ
diff --git a/2.3-1/macros/FunctionAnnotation/names b/2.3-1/macros/FunctionAnnotation/names
new file mode 100644
index 00000000..8962de09
--- /dev/null
+++ b/2.3-1/macros/FunctionAnnotation/names
@@ -0,0 +1,74 @@
+FA_ADD
+FA_DIV
+FA_GetDefaultPrecision
+FA_GetFunAnn
+FA_GetOutArgInfo
+FA_GetResizeApproach
+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_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_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_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_REAL
+FA_TP_S
+FA_TP_UINT16
+FA_TP_UINT8
+FA_TP_USER
+FA_TP_Z
-- 
cgit