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