diff options
Diffstat (limited to 'src/c')
-rw-r--r-- | src/c/operations/interfaces/int_OpStar.h | 39 | ||||
-rw-r--r-- | src/c/operations/multiplication/i16muls.c | 19 | ||||
-rw-r--r-- | src/c/operations/multiplication/i16mulv.c | 27 | ||||
-rw-r--r-- | src/c/operations/multiplication/i8muls.c | 19 | ||||
-rw-r--r-- | src/c/operations/multiplication/i8mulv.c | 27 | ||||
-rw-r--r-- | src/c/operations/multiplication/u16muls.c | 19 | ||||
-rw-r--r-- | src/c/operations/multiplication/u16mulv.c | 27 | ||||
-rw-r--r-- | src/c/operations/multiplication/u8muls.c | 19 | ||||
-rw-r--r-- | src/c/operations/multiplication/u8mulv.c | 26 | ||||
-rw-r--r-- | src/c/type/types.h | 17 |
10 files changed, 239 insertions, 0 deletions
diff --git a/src/c/operations/interfaces/int_OpStar.h b/src/c/operations/interfaces/int_OpStar.h index 52ff221..0dbd079 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 0000000..1bd002e --- /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 0000000..364d81d --- /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 0000000..6f12425 --- /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 0000000..f059101 --- /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 0000000..c4d8f0e --- /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 0000000..b7bd9a4 --- /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 0000000..6a4062e --- /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 0000000..4723b53 --- /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 0000000..d8cb523 --- /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 |