From f39c271ca3fbf737612350a7f1c6af7e2c7022f9 Mon Sep 17 00:00:00 2001 From: Siddhesh Wani Date: Thu, 30 Jul 2015 17:06:28 +0530 Subject: Added new data types. Support for few functions with new data types added. These changes requires proper testing --- includes/sci2clib.h | 82 ++-- macros/CCodeGeneration/C_Type.bin | Bin 4032 -> 9600 bytes macros/CCodeGeneration/C_Type.sci | 8 + .../FunctionAnnotation/FA_GetDefaultPrecision.sci | 9 + macros/FunctionAnnotation/FA_TP_INT16.bin | Bin 0 -> 9600 bytes macros/FunctionAnnotation/FA_TP_INT16.sci | 30 ++ macros/FunctionAnnotation/FA_TP_INT8.bin | Bin 0 -> 9600 bytes macros/FunctionAnnotation/FA_TP_INT8.sci | 30 ++ macros/FunctionAnnotation/FA_TP_UINT16.bin | Bin 0 -> 9600 bytes macros/FunctionAnnotation/FA_TP_UINT16.sci | 30 ++ macros/FunctionAnnotation/FA_TP_UINT8.bin | Bin 0 -> 9600 bytes macros/FunctionAnnotation/FA_TP_UINT8.sci | 30 ++ macros/FunctionAnnotation/names | 4 + .../ToolInitialization/INIT_FillSCI2LibCDirs.bin | Bin 708780 -> 403968 bytes .../ToolInitialization/INIT_FillSCI2LibCDirs.sci | 500 ++++++++++++++++++++- macros/ToolInitialization/INIT_GenLibraries.bin | Bin 8556 -> 9600 bytes macros/ToolInitialization/INIT_GenSharedInfo.sci | 2 +- macros/findDeps/getAllHeaders.bin | Bin 20440 -> 13696 bytes macros/findDeps/getAllHeaders.sci | 1 + macros/runsci2c.bin | Bin 23048 -> 17152 bytes src/c/operations/interfaces/int_OpStar.h | 39 ++ src/c/operations/multiplication/i16muls.c | 19 + src/c/operations/multiplication/i16mulv.c | 27 ++ src/c/operations/multiplication/i8muls.c | 19 + src/c/operations/multiplication/i8mulv.c | 27 ++ src/c/operations/multiplication/u16muls.c | 19 + src/c/operations/multiplication/u16mulv.c | 27 ++ src/c/operations/multiplication/u8muls.c | 19 + src/c/operations/multiplication/u8mulv.c | 26 ++ src/c/type/types.h | 17 + 30 files changed, 926 insertions(+), 39 deletions(-) create mode 100644 macros/FunctionAnnotation/FA_TP_INT16.bin create mode 100644 macros/FunctionAnnotation/FA_TP_INT16.sci create mode 100644 macros/FunctionAnnotation/FA_TP_INT8.bin create mode 100644 macros/FunctionAnnotation/FA_TP_INT8.sci create mode 100644 macros/FunctionAnnotation/FA_TP_UINT16.bin create mode 100644 macros/FunctionAnnotation/FA_TP_UINT16.sci create mode 100644 macros/FunctionAnnotation/FA_TP_UINT8.bin create mode 100644 macros/FunctionAnnotation/FA_TP_UINT8.sci create mode 100644 src/c/operations/multiplication/i16muls.c create mode 100644 src/c/operations/multiplication/i16mulv.c create mode 100644 src/c/operations/multiplication/i8muls.c create mode 100644 src/c/operations/multiplication/i8mulv.c create mode 100644 src/c/operations/multiplication/u16muls.c create mode 100644 src/c/operations/multiplication/u16mulv.c create mode 100644 src/c/operations/multiplication/u8muls.c create mode 100644 src/c/operations/multiplication/u8mulv.c create mode 100644 src/c/type/types.h diff --git a/includes/sci2clib.h b/includes/sci2clib.h index eff4cf05..3154ac39 100644 --- a/includes/sci2clib.h +++ b/includes/sci2clib.h @@ -1,27 +1,45 @@ #ifndef __SCI2CLIB_H__ #define __SCI2CLIB_H__ -#include -#include +#include +#include #include -/* #include "SCI2CMacroInterface.h" */ -/* #include "notFound.h" */ -/* #include "doubleComplex.h" */ -/* #include "floatComplex.h" */ -/* #include "RealToComplex.h" */ -/* #include "OpEqual.h" */ -/* #include "OpIns.h" */ -/* #include "OpExt.h" */ -/* #include "FileManagement.h" */ -/* #include "OpLogNe.h" */ -/* #include "OpLogGt.h" */ -/* #include "OpLogLt.h" */ -/* #include "OpLogGe.h" */ -/* #include "OpLogLe.h" */ -/* #include "OpLogEq.h" */ -/* #include "OpLogOr.h" */ -/* #include "OpLogAnd.h" */ -/* #include "OpLogNot.h" */ +/* #include "SCI2CMacroInterface.h" + */ +/* #include "notFound.h" + */ +/* #include "doubleComplex.h" + */ +/* #include "floatComplex.h" + */ +/* #include "RealToComplex.h" + */ +/* #include "OpEqual.h" + */ +/* #include "OpIns.h" + */ +/* #include "OpExt.h" + */ +/* #include "FileManagement.h" + */ +/* #include "OpLogNe.h" + */ +/* #include "OpLogGt.h" + */ +/* #include "OpLogLt.h" + */ +/* #include "OpLogGe.h" + */ +/* #include "OpLogLe.h" + */ +/* #include "OpLogEq.h" + */ +/* #include "OpLogOr.h" + */ +/* #include "OpLogAnd.h" + */ +/* #include "OpLogNot.h" + */ /* #include "ConvertPrecision.h" */ /* CONSTANT */ @@ -56,14 +74,14 @@ /* interfacing isnan */ #include "isnan.h" #include "int_isnan.h" -/* interfacing length */ -#include "length.h" +/* interfacing length */ +#include "length.h" #include "int_length.h" -/* interfacing max */ -#include "max.h" +/* interfacing max */ +#include "max.h" #include "int_max.h" -/* interfacing min */ -#include "min.h" +/* interfacing min */ +#include "min.h" #include "int_min.h" /* interfacing pythag */ #include "pythag.h" @@ -147,8 +165,8 @@ /* interfacing sinh */ #include "sinh.h" #include "int_sinh.h" -/* interfacing sqrt */ -#include "sqrt.h" +/* interfacing sqrt */ +#include "sqrt.h" #include "int_sqrt.h" /* interfacing tan */ #include "tan.h" @@ -223,7 +241,8 @@ #include "matrixInversion.h" #include "int_invert.h" /* interfacing infinite norm */ -#include "infiniteNorm.h" /* interfacing ones */ +#include "infiniteNorm.h" +/* interfacing ones */ #include "ones.h" #include "int_ones.h" /* interfacing spec */ @@ -235,7 +254,8 @@ /* interfacing tranpose */ #include "matrixTranspose.h" #include "int_OpApex.h" -#include "int_OpDotApex.h" /* interfacing zeros */ +#include "int_OpDotApex.h" +/* interfacing zeros */ #include "zeros.h" #include "int_zeros.h" @@ -294,4 +314,6 @@ /* interfacing imag */ #include "int_imag.h" +#include "types.h" + #endif /* !__SCI2CLIB_H__ */ diff --git a/macros/CCodeGeneration/C_Type.bin b/macros/CCodeGeneration/C_Type.bin index bdbbb268..607a1b3f 100644 Binary files a/macros/CCodeGeneration/C_Type.bin and b/macros/CCodeGeneration/C_Type.bin differ diff --git a/macros/CCodeGeneration/C_Type.sci b/macros/CCodeGeneration/C_Type.sci index 21d83a7d..506c8fde 100644 --- a/macros/CCodeGeneration/C_Type.sci +++ b/macros/CCodeGeneration/C_Type.sci @@ -35,6 +35,14 @@ elseif (ArgType == 'g') OutC_Type = 'char'; elseif (ArgType == 'f') OutC_Type = 'SCI2CFILEID'; +elseif (ArgType == 'u8') + OutC_Type = 'uint8'; +elseif (ArgType == 'i8') + OutC_Type = 'int8'; +elseif (ArgType == 'u16') + OutC_Type = 'uint16'; +elseif (ArgType == 'i16') + OutC_Type = 'int16'; else error(9999, 'Unknown Argument Type: ""'+ArgType+'"".'); end diff --git a/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci b/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci index 3afe2648..da5486dc 100644 --- a/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci +++ b/macros/FunctionAnnotation/FA_GetDefaultPrecision.sci @@ -79,6 +79,15 @@ else defaultprecision = 's'; elseif (tmpprecision == 'DOUBLE') defaultprecision = 'd'; + elseif (tmpprecision == 'UINT8') + defaultprecision = 'u8'; + elseif (tmpprecision == 'INT8') + defaultprecision = 'i8'; + elseif (tmpprecision == 'UINT16') + defaultprecision = 'u16'; + elseif (tmpprecision == 'INT16') + defaultprecision = 'i16'; + end end diff --git a/macros/FunctionAnnotation/FA_TP_INT16.bin b/macros/FunctionAnnotation/FA_TP_INT16.bin new file mode 100644 index 00000000..2ffc10e5 Binary files /dev/null and b/macros/FunctionAnnotation/FA_TP_INT16.bin differ diff --git a/macros/FunctionAnnotation/FA_TP_INT16.sci b/macros/FunctionAnnotation/FA_TP_INT16.sci new file mode 100644 index 00000000..8971754d --- /dev/null +++ b/macros/FunctionAnnotation/FA_TP_INT16.sci @@ -0,0 +1,30 @@ +function typeout = FA_TP_INT16() +// function typeout = FA_TP_INT16() +// ----------------------------------------------------------------- +// Returns the "uint8" type specifier +// for Function Annotations. +// +// Input data: +// --- +// +// Output data: +// typeout: string containing the type specifier. +// +// Status: +// +// Copyright 2007 Raffaele Nutricato & Alberto Morea. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +SCI2CNInArgCheck(argn(2),0,0); + + +// ------------------------ +// --- Generate Output. --- +// ------------------------ +typeout = 'i16'; + +endfunction diff --git a/macros/FunctionAnnotation/FA_TP_INT8.bin b/macros/FunctionAnnotation/FA_TP_INT8.bin new file mode 100644 index 00000000..3455174f Binary files /dev/null and b/macros/FunctionAnnotation/FA_TP_INT8.bin differ diff --git a/macros/FunctionAnnotation/FA_TP_INT8.sci b/macros/FunctionAnnotation/FA_TP_INT8.sci new file mode 100644 index 00000000..49c752bb --- /dev/null +++ b/macros/FunctionAnnotation/FA_TP_INT8.sci @@ -0,0 +1,30 @@ +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. +// +// Status: +// +// Copyright 2007 Raffaele Nutricato & Alberto Morea. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +SCI2CNInArgCheck(argn(2),0,0); + + +// ------------------------ +// --- Generate Output. --- +// ------------------------ +typeout = 'i8'; + +endfunction diff --git a/macros/FunctionAnnotation/FA_TP_UINT16.bin b/macros/FunctionAnnotation/FA_TP_UINT16.bin new file mode 100644 index 00000000..5c0ec30c Binary files /dev/null and b/macros/FunctionAnnotation/FA_TP_UINT16.bin differ diff --git a/macros/FunctionAnnotation/FA_TP_UINT16.sci b/macros/FunctionAnnotation/FA_TP_UINT16.sci new file mode 100644 index 00000000..5f1c98f7 --- /dev/null +++ b/macros/FunctionAnnotation/FA_TP_UINT16.sci @@ -0,0 +1,30 @@ +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. +// +// Status: +// +// Copyright 2007 Raffaele Nutricato & Alberto Morea. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +SCI2CNInArgCheck(argn(2),0,0); + + +// ------------------------ +// --- Generate Output. --- +// ------------------------ +typeout = 'u16'; + +endfunction diff --git a/macros/FunctionAnnotation/FA_TP_UINT8.bin b/macros/FunctionAnnotation/FA_TP_UINT8.bin new file mode 100644 index 00000000..69661391 Binary files /dev/null and b/macros/FunctionAnnotation/FA_TP_UINT8.bin differ diff --git a/macros/FunctionAnnotation/FA_TP_UINT8.sci b/macros/FunctionAnnotation/FA_TP_UINT8.sci new file mode 100644 index 00000000..934f3540 --- /dev/null +++ b/macros/FunctionAnnotation/FA_TP_UINT8.sci @@ -0,0 +1,30 @@ +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. +// +// Status: +// +// Copyright 2007 Raffaele Nutricato & Alberto Morea. +// Contact: raffaele.nutricato@tiscali.it +// ----------------------------------------------------------------- + +// ------------------------------ +// --- Check input arguments. --- +// ------------------------------ +SCI2CNInArgCheck(argn(2),0,0); + + +// ------------------------ +// --- Generate Output. --- +// ------------------------ +typeout = 'u8'; + +endfunction diff --git a/macros/FunctionAnnotation/names b/macros/FunctionAnnotation/names index 83710bca..e95bff5f 100644 --- a/macros/FunctionAnnotation/names +++ b/macros/FunctionAnnotation/names @@ -49,3 +49,7 @@ FA_SUB FA_SZ_OPLOGNOT FA_SZ_OPLOGLE FA_SZ_OPAPEX +FA_TP_UINT8 +FA_TP_INT8 +FA_TP_UINT8 +FA_TP_INT16 diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.bin b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.bin index d5d23bd4..e43e2d96 100644 Binary files a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.bin and b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.bin differ diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci index 30fa92bd..5fcc0f95 100644 --- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -106,12 +106,22 @@ PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'s0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'s0',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'s0',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'s0',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'s0',ClassFileName,'file','y'); + //PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y'); //PrintStringInfo('z0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'s2',ClassFileName,'file','y'); //PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y'); //PrintStringInfo('z2'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'s2',ClassFileName,'file','y'); + // --- Annotation Function And Function List Function. --- FunctionName = 'float'; @@ -137,10 +147,18 @@ PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo('s0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'d0',ClassFileName,'file','y'); //PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y'); //PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'d2',ClassFileName,'file','y'); //PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); //PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -173,10 +191,19 @@ PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'c0',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'c2',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'floatcomplex'; @@ -207,10 +234,19 @@ PrintStringInfo('s0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'z0',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'z2',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'doublecomplex'; @@ -218,6 +254,164 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file', INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); +// --------------------- +// --- Class Uint8. --- +// --------------------- +ClassName = 'Uint8'; + +// --- Class Annotation. --- +PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y'); +ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); +PrintStringInfo('NIN= 1',ClassFileName,'file','y'); +PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).TP= ''u8''',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); + +// --- Function List Class. --- +ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); +PrintStringInfo('s0'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('d0'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'u80',ClassFileName,'file','y'); +//PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y'); +//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('s2'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('d2'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'u82',ClassFileName,'file','y'); +//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); +//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); + +// --- Annotation Function And Function List Function. --- +FunctionName = 'uint8'; +PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y'); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); + +// --------------------- +// --- Class Int8. --- +// --------------------- +ClassName = 'Int8'; + +// --- Class Annotation. --- +PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y'); +ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); +PrintStringInfo('NIN= 1',ClassFileName,'file','y'); +PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).TP= ''i8''',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); + +// --- Function List Class. --- +ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); +PrintStringInfo('s0'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('d0'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i80',ClassFileName,'file','y'); +//PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y'); +//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('s2'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('d2'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i82',ClassFileName,'file','y'); +//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); +//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); + +// --- Annotation Function And Function List Function. --- +FunctionName = 'int8'; +PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y'); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); + + +// --------------------- +// --- Class Uint16. --- +// --------------------- +ClassName = 'Uint16'; + +// --- Class Annotation. --- +PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y'); +ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); +PrintStringInfo('NIN= 1',ClassFileName,'file','y'); +PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); + +// --- Function List Class. --- +ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); +PrintStringInfo('s0'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('d0'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'u160',ClassFileName,'file','y'); +//PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y'); +//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('s2'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('d2'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'u162',ClassFileName,'file','y'); +//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); +//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); + +// --- Annotation Function And Function List Function. --- +FunctionName = 'uint16'; +PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y'); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); + + +// --------------------- +// --- Class Int16. --- +// --------------------- +ClassName = 'Int16'; + +// --- Class Annotation. --- +PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y'); +ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls); +PrintStringInfo('NIN= 1',ClassFileName,'file','y'); +PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).TP= ''i16''',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y'); +PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y'); + +// --- Function List Class. --- +ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); +PrintStringInfo('s0'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('d0'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +//PrintStringInfo('c0'+ArgSeparator+'d0',ClassFileName,'file','y'); +//PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('s2'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('d2'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +//PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); +//PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); + +// --- Annotation Function And Function List Function. --- +FunctionName = 'int16'; +PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y'); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun); +INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun); + // ------------------ // --- Class Sin. --- // ------------------ @@ -238,10 +432,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'sin'; //BJ : Done AS : Float_Done @@ -366,10 +569,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -411,6 +623,12 @@ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y'); @@ -418,6 +636,12 @@ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'c2',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'asin'; //BJ : Works but not able to generate all cases , AS : same for float @@ -511,15 +735,29 @@ ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo(ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo(ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo(ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo(ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo(ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo(ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); + //NUT: no mixed input types are allowed. PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); @@ -530,6 +768,14 @@ PrintStringInfo('d0d0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i12',ClassFileName,'file','y'); PrintStringInfo('d0d0d0'+ArgSeparator+'d3',ClassFileName,'file','y'); @@ -581,10 +827,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -599,6 +854,19 @@ PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2s0'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); + PrintStringInfo('s0g2'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0g2'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -612,6 +880,18 @@ PrintStringInfo('s2g2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2g2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2g2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2g2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u80g2'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82g2'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82g2'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80g2'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82g2'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82g2'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160g2'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162g2'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162g2'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160g2'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162g2'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162g2'+ArgSeparator+'i162',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'sum'; // BJ : Done AS : Float_Done @@ -668,7 +948,10 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y'); - +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); @@ -680,6 +963,26 @@ PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u80u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u82',ClassFileName,'file','y'); + +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); + +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u160u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u162',ClassFileName,'file','y'); + +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); + FunctionName = 'max'; // BJ : Done AS : Float_Done // WARNING : Complex case will never be // WARNING : max(x, 2) <=> max(x, 2 * ones(x)) nothing to do with 'r' nor 'c' @@ -718,10 +1021,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); -PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y'); -PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'abs'; // BJ : Done AS : Float_Done @@ -1027,6 +1339,26 @@ PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u80i80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u80u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u80i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i80u80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i80u80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i80u160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i80i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u160u80'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u160i80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160u80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160i80'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160u160'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1036,6 +1368,22 @@ PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u82u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u82i160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i82u80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82u160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i82i160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u162u80'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162i80'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162u80'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162i80'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162u160'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1045,6 +1393,20 @@ PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u80u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u80u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u80i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i80u82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i80u162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i80i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u160u82'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u160i82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u160u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); + PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1054,6 +1416,22 @@ PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('u82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u82u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u82i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i82u82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('i82u162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i82i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u162u82'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162i82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('u162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162u82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162i82'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162u162'+ArgSeparator+'i162',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s2s2'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -1063,6 +1441,23 @@ PrintStringInfo('c2c2'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d2z2'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('u82i82'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u82u162'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u82i162'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i82u82'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('i82u162'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i82i162'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u162u82'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162i82'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('u162i162'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162u82'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162i82'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162u162'+ArgSeparator+'i160',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i160',ClassFileName,'file','y'); + // --- Annotation Function And Function List Function. --- FunctionName = 'OpStar'; // BJ : Done AS : Float_Done @@ -1098,6 +1493,10 @@ PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1107,6 +1506,10 @@ PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1116,6 +1519,10 @@ PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u80u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1125,6 +1532,10 @@ PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s2s2'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -1134,6 +1545,10 @@ PrintStringInfo('c2c2'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d2z2'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i160',ClassFileName,'file','y'); FunctionName = 'OpSlash'; // BJ : Done AS : Float_Done @@ -1161,10 +1576,21 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); + + // --- Annotation Function And Function List Function. --- FunctionName = 'OpApex'; // BJ : Done AS : Float_Done @@ -1196,12 +1622,21 @@ PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(1)',ClassFileName,'file','y'); ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls); PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); -PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y'); -PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y'); +PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); +PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); -PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y'); -PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); +PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); FunctionName = 'isnan'; // BJ : Done AS : Float_Done @@ -1235,11 +1670,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -1250,6 +1693,11 @@ PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('g0g0'+ArgSeparator+'g2',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); + PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1260,6 +1708,10 @@ PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('g2g0'+ArgSeparator+'g2',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1270,6 +1722,10 @@ PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('g0g2'+ArgSeparator+'g2',ClassFileName,'file','y'); +PrintStringInfo('u80u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1280,6 +1736,10 @@ PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('g2g2'+ArgSeparator+'g2',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- FunctionName = 'OpPlus'; // BJ : Done AS : Float_Done @@ -1317,11 +1777,19 @@ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y'); PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); PrintStringInfo('d0d0'+ArgSeparator+'d0',ClassFileName,'file','y'); @@ -1331,6 +1799,10 @@ PrintStringInfo('c0c0'+ArgSeparator+'c0',ClassFileName,'file','y'); PrintStringInfo('d0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0d0'+ArgSeparator+'z0',ClassFileName,'file','y'); PrintStringInfo('z0z0'+ArgSeparator+'z0',ClassFileName,'file','y'); +PrintStringInfo('u80u80'+ArgSeparator+'u80',ClassFileName,'file','y'); +PrintStringInfo('i80i80'+ArgSeparator+'i80',ClassFileName,'file','y'); +PrintStringInfo('u160u160'+ArgSeparator+'u160',ClassFileName,'file','y'); +PrintStringInfo('i160i160'+ArgSeparator+'i160',ClassFileName,'file','y'); PrintStringInfo('s2s0'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d0'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1340,6 +1812,10 @@ PrintStringInfo('c2c0'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d0'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z0'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u80'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i80'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u160'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i160'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s0s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d0d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1349,6 +1825,10 @@ PrintStringInfo('c0c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z0z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u80u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i80i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u160u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i160i162'+ArgSeparator+'i162',ClassFileName,'file','y'); PrintStringInfo('s2s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2d2'+ArgSeparator+'d2',ClassFileName,'file','y'); @@ -1358,6 +1838,10 @@ PrintStringInfo('c2c2'+ArgSeparator+'c2',ClassFileName,'file','y'); PrintStringInfo('d2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2d2'+ArgSeparator+'z2',ClassFileName,'file','y'); PrintStringInfo('z2z2'+ArgSeparator+'z2',ClassFileName,'file','y'); +PrintStringInfo('u82u82'+ArgSeparator+'u82',ClassFileName,'file','y'); +PrintStringInfo('i82i82'+ArgSeparator+'i82',ClassFileName,'file','y'); +PrintStringInfo('u162u162'+ArgSeparator+'u162',ClassFileName,'file','y'); +PrintStringInfo('i162i162'+ArgSeparator+'i162',ClassFileName,'file','y'); // --- Annotation Function And Function List Function. --- @@ -3536,7 +4020,7 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,Ex // 9) CxC->{C,C} // 10) RxRxR->{R,R} // 11) RxCxC->{C,C} - // and so on ….. + // and so on \85.. // //////////////////////////////// diff --git a/macros/ToolInitialization/INIT_GenLibraries.bin b/macros/ToolInitialization/INIT_GenLibraries.bin index bc3bc873..0d431419 100644 Binary files a/macros/ToolInitialization/INIT_GenLibraries.bin and b/macros/ToolInitialization/INIT_GenLibraries.bin differ diff --git a/macros/ToolInitialization/INIT_GenSharedInfo.sci b/macros/ToolInitialization/INIT_GenSharedInfo.sci index eb8a5ffa..7b8826c4 100644 --- a/macros/ToolInitialization/INIT_GenSharedInfo.sci +++ b/macros/ToolInitialization/INIT_GenSharedInfo.sci @@ -56,7 +56,7 @@ SharedInfo.NFilesToTranslate = 1; // --- Annotations. --- SharedInfo.Annotations.GBLVAR = 'global'; -SharedInfo.Annotations.DataPrec = {'int','float','double'}; +SharedInfo.Annotations.DataPrec = {'uint8','int8','uint16','int16','int','float','double'}; SharedInfo.Annotations.FUNNIN = 'NIN='; SharedInfo.Annotations.FUNNOUT = 'NOUT='; SharedInfo.Annotations.FUNTYPE = '''OUT(''+string(SCI2C_nout)+'').TP='''; // Type includes also precision. diff --git a/macros/findDeps/getAllHeaders.bin b/macros/findDeps/getAllHeaders.bin index 17e8a526..4dda8921 100644 Binary files a/macros/findDeps/getAllHeaders.bin and b/macros/findDeps/getAllHeaders.bin differ diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci index f648ce8b..98b96ed1 100644 --- a/macros/findDeps/getAllHeaders.sci +++ b/macros/findDeps/getAllHeaders.sci @@ -37,6 +37,7 @@ function allHeaders = getAllHeaders() "src/c/type/doubleComplex.h" "src/c/type/dynlib_type.h" "src/c/type/floatComplex.h" + "src/c/type/types.h" "src/c/matrixOperations/includes/cat.h" "src/c/matrixOperations/includes/hilb.h" "src/c/matrixOperations/includes/eye.h" diff --git a/macros/runsci2c.bin b/macros/runsci2c.bin index f67d80f7..7b2c901b 100644 Binary files a/macros/runsci2c.bin and b/macros/runsci2c.bin differ diff --git a/src/c/operations/interfaces/int_OpStar.h b/src/c/operations/interfaces/int_OpStar.h index 52ff221c..0dbd0792 100644 --- a/src/c/operations/interfaces/int_OpStar.h +++ b/src/c/operations/interfaces/int_OpStar.h @@ -33,7 +33,46 @@ #define z0d0OpStarz0(in1,in2) zmuls(in1,DoubleComplex(in2,0)) +#define u80u80OpStaru80(in1,in2) (uint8)(in1 * in2) +#define u80u80OpStaru160(in1,in2) (uint16)(in1 * in2) + +#define u80i80OpStari80(in1,in2) (int8)(in1 * in2) + +#define u80u80OpStari160(in1,in2) (int16)(in1 * in2) + +#define u80u160OpStaru160(in1,in2) (uint16)(in1 * in2) + +#define u80i160OpStari160(in1,in2) (int16)(in1 * in2) + +#define i80u80OpStari80(in1,in2) (int8)(in1 * in2) + +#define i80u80OpStari160(in1,in2) (int16)(in1 * in2) + +#define i80i80OpStari80(in1,in2) (int8)(in1 * in2) + +#define i80i80OpStari160(in1,in2) (int16)(in1 * in2) + + +#define i80u160OpStari160(in1,in2) (int16)(in1 * in2) + +#define i80i160OpStari160(in1,in2) (int16)(in1 * in2) + +#define u160u80OpStaru160(in1,in2) (uint16)(in1 * in2) + +#define u160i80OpStari160(in1,in2) (int16)(in1 * in2) + +#define u160u160OpStaru160(in1,in2) (uint16)(in1 * in2) + +#define u160i160OpStari160(in1,in2) (int16)(in1 * in2) + +#define i160u80OpStari160(in1,in2) (int16)(in1 * in2) + +#define i160i80OpStari160(in1,in2) (int16)(in1 * in2) + +#define i160u160OpStari160(in1,in2) (int16)(in1 * in2) + +#define i160i160OpStari160(in1,in2) (int16)(in1 * in2) /* Scalar * Matrix */ diff --git a/src/c/operations/multiplication/i16muls.c b/src/c/operations/multiplication/i16muls.c new file mode 100644 index 00000000..1bd002e1 --- /dev/null +++ b/src/c/operations/multiplication/i16muls.c @@ -0,0 +1,19 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" +#include "types.h" + +i16 i16muls(i16 in1, i16 in2){ + return in1*in2; +} diff --git a/src/c/operations/multiplication/i16mulv.c b/src/c/operations/multiplication/i16mulv.c new file mode 100644 index 00000000..364d81de --- /dev/null +++ b/src/c/operations/multiplication/i16mulv.c @@ -0,0 +1,27 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" + +i16 i16mulv(i16* in1, i16* in2, u16 size) +{ + i16 out = 0; + u16 i = 0; + + for (i = 0 ; i < size ; ++i) + { + out += i16muls(in1[i], in2[i]); + } + + return out; +} diff --git a/src/c/operations/multiplication/i8muls.c b/src/c/operations/multiplication/i8muls.c new file mode 100644 index 00000000..6f12425a --- /dev/null +++ b/src/c/operations/multiplication/i8muls.c @@ -0,0 +1,19 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" +#include "types.h" + +i80 i8muls(i80 in1, i80 in2){ + return in1*in2; +} diff --git a/src/c/operations/multiplication/i8mulv.c b/src/c/operations/multiplication/i8mulv.c new file mode 100644 index 00000000..f0591016 --- /dev/null +++ b/src/c/operations/multiplication/i8mulv.c @@ -0,0 +1,27 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" + +i8 i8mulv(i8* in1, i8* in2, i16 size) +{ + i8 out = 0; + u16 i = 0; + + for (i = 0 ; i < size ; ++i) + { + out += i8muls(in1[i], in2[i]); + } + + return out; +} diff --git a/src/c/operations/multiplication/u16muls.c b/src/c/operations/multiplication/u16muls.c new file mode 100644 index 00000000..c4d8f0e4 --- /dev/null +++ b/src/c/operations/multiplication/u16muls.c @@ -0,0 +1,19 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" +#include "types.h" + +u160 u16muls(u160 in1, u160 in2){ + return in1*in2; +} diff --git a/src/c/operations/multiplication/u16mulv.c b/src/c/operations/multiplication/u16mulv.c new file mode 100644 index 00000000..b7bd9a43 --- /dev/null +++ b/src/c/operations/multiplication/u16mulv.c @@ -0,0 +1,27 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" + +u16 u16mulv(u16* in1, u16* in2, u16 size) +{ + u16 out = 0; + u16 i = 0; + + for (i = 0 ; i < size ; ++i) + { + out += u16muls(in1[i], in2[i]); + } + + return out; +} diff --git a/src/c/operations/multiplication/u8muls.c b/src/c/operations/multiplication/u8muls.c new file mode 100644 index 00000000..6a4062ee --- /dev/null +++ b/src/c/operations/multiplication/u8muls.c @@ -0,0 +1,19 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#include "multiplication.h" +#include "types.h" + +u80 u8muls(u80 in1, u80 in2){ + return in1*in2; +} diff --git a/src/c/operations/multiplication/u8mulv.c b/src/c/operations/multiplication/u8mulv.c new file mode 100644 index 00000000..4723b539 --- /dev/null +++ b/src/c/operations/multiplication/u8mulv.c @@ -0,0 +1,26 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#include "multiplication.h" + +u8 u8mulv(u8* in1, u8* in2, u16 size) +{ + u8 out = 0; + u16 i = 0; + + for (i = 0 ; i < size ; ++i) + { + out += u8muls(in1[i], in2[i]); + } + + return out; +} diff --git a/src/c/type/types.h b/src/c/type/types.h new file mode 100644 index 00000000..d8cb523c --- /dev/null +++ b/src/c/type/types.h @@ -0,0 +1,17 @@ +#ifndef _TYPES_H_ +#define _TYPES_H_ + +/*****************************************************************************/ +/* TYPE DEFINITIONS */ +/*****************************************************************************/ +typedef unsigned char boolean; + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint32; + +typedef signed char int8; +typedef signed short int16; +typedef signed int int32; + +#endif //_TYPES_H -- cgit