diff options
author | Siddhesh Wani | 2015-07-30 17:06:28 +0530 |
---|---|---|
committer | Siddhesh Wani | 2015-07-30 17:06:28 +0530 |
commit | dcc7a8331ba9ae3bdd00670a018631c77517c100 (patch) | |
tree | 90af508b56e9e370f09c1c910961ca15c42fc014 /2.3-1/src/c | |
parent | 6a320264c2de3d6dd8cc1d1327b3c30df4c8cb26 (diff) | |
download | Scilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.tar.gz Scilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.tar.bz2 Scilab2C-dcc7a8331ba9ae3bdd00670a018631c77517c100.zip |
Added new data types. Support for few functions with new data types added. These changes requires proper testing
Diffstat (limited to '2.3-1/src/c')
-rw-r--r-- | 2.3-1/src/c/operations/interfaces/int_OpStar.h | 39 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/i16muls.c | 19 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/i16mulv.c | 27 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/i8muls.c | 19 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/i8mulv.c | 27 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/u16muls.c | 19 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/u16mulv.c | 27 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/u8muls.c | 19 | ||||
-rw-r--r-- | 2.3-1/src/c/operations/multiplication/u8mulv.c | 26 | ||||
-rw-r--r-- | 2.3-1/src/c/type/types.h | 17 |
10 files changed, 239 insertions, 0 deletions
diff --git a/2.3-1/src/c/operations/interfaces/int_OpStar.h b/2.3-1/src/c/operations/interfaces/int_OpStar.h index 52ff221c..0dbd0792 100644 --- a/2.3-1/src/c/operations/interfaces/int_OpStar.h +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/i16muls.c b/2.3-1/src/c/operations/multiplication/i16muls.c new file mode 100644 index 00000000..1bd002e1 --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/i16mulv.c b/2.3-1/src/c/operations/multiplication/i16mulv.c new file mode 100644 index 00000000..364d81de --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/i8muls.c b/2.3-1/src/c/operations/multiplication/i8muls.c new file mode 100644 index 00000000..6f12425a --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/i8mulv.c b/2.3-1/src/c/operations/multiplication/i8mulv.c new file mode 100644 index 00000000..f0591016 --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/u16muls.c b/2.3-1/src/c/operations/multiplication/u16muls.c new file mode 100644 index 00000000..c4d8f0e4 --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/u16mulv.c b/2.3-1/src/c/operations/multiplication/u16mulv.c new file mode 100644 index 00000000..b7bd9a43 --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/u8muls.c b/2.3-1/src/c/operations/multiplication/u8muls.c new file mode 100644 index 00000000..6a4062ee --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/operations/multiplication/u8mulv.c b/2.3-1/src/c/operations/multiplication/u8mulv.c new file mode 100644 index 00000000..4723b539 --- /dev/null +++ b/2.3-1/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/2.3-1/src/c/type/types.h b/2.3-1/src/c/type/types.h new file mode 100644 index 00000000..d8cb523c --- /dev/null +++ b/2.3-1/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 |