diff options
Diffstat (limited to 'src/c/graphics/transforms')
-rw-r--r-- | src/c/graphics/transforms/includes/scaling.h | 36 | ||||
-rw-r--r-- | src/c/graphics/transforms/interfaces/int_scaling.h | 35 | ||||
-rw-r--r-- | src/c/graphics/transforms/scaling/dscalinga.c | 34 | ||||
-rw-r--r-- | src/c/graphics/transforms/scaling/sscalinga.c | 34 | ||||
-rw-r--r-- | src/c/graphics/transforms/scaling/zscalinga.c | 38 |
5 files changed, 177 insertions, 0 deletions
diff --git a/src/c/graphics/transforms/includes/scaling.h b/src/c/graphics/transforms/includes/scaling.h new file mode 100644 index 0000000..35d9f24 --- /dev/null +++ b/src/c/graphics/transforms/includes/scaling.h @@ -0,0 +1,36 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __SCALING_H__ +#define __SCALING_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" +#include "factorial.h" +#include "ones.h" +#include "matrixMultiplication.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dscalinga (double* inp1, int row, int col, double inp2, double* inp3, int size3, double* out); +void sscalinga (float* inp1, int row, int col, double inp2, float* inp3, int size3, float* out); +void zscalinga (doubleComplex* inp1, int row, int col, doubleComplex inp2, doubleComplex* inp3, int size3, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__SCALING_H__*/ diff --git a/src/c/graphics/transforms/interfaces/int_scaling.h b/src/c/graphics/transforms/interfaces/int_scaling.h new file mode 100644 index 0000000..61cb5ab --- /dev/null +++ b/src/c/graphics/transforms/interfaces/int_scaling.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_SCALING_H__ +#define __INT_SCALING_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d2d0d2scalingd2(in1, size1, in2, in3, size2, out) dscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define s2s0s2scalings2(in1, size1, in2, in3, size2, out) sscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define s2d0s2scalings2(in1, size1, in2, in3, size2, out) sscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define z2z0z2scalingz2(in1, size1, in2, in3, size2, out) zscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define z2d0d2scalingz2(in1, size1, in2, in3, size2, out) zscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define z2z0d2scalingz2(in1, size1, in2, in3, size2, out) zscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) +#define z2d0z2scalingz2(in1, size1, in2, in3, size2, out) zscalinga(in1, size1[0], size1[1], in2, in3, size2[0]*size2[1], out) + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_SCALING_H__*/ diff --git a/src/c/graphics/transforms/scaling/dscalinga.c b/src/c/graphics/transforms/scaling/dscalinga.c new file mode 100644 index 0000000..24d4573 --- /dev/null +++ b/src/c/graphics/transforms/scaling/dscalinga.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "scaling.h" +#include "ones.h" +#include "matrixMultiplication.h" + +void dscalinga (double* inp1, int row, int col, double inp2, double* inp3, int size3, double* out) +{ + double temp[row*col], one[col], prod[row*col], diff[row*col]; + + for(int i = 0; i < row*col; i++) + temp[i] = inp1[i]; + + donesa(one, 1, col); + + dmulma(inp3, 2, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + diff[i] = inp1[i] - prod[i]; + + for(int i = 0; i < row*col; i++) + out[i] = (inp2 * diff[i]) + prod[i]; +} diff --git a/src/c/graphics/transforms/scaling/sscalinga.c b/src/c/graphics/transforms/scaling/sscalinga.c new file mode 100644 index 0000000..1adfcf3 --- /dev/null +++ b/src/c/graphics/transforms/scaling/sscalinga.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "scaling.h" +#include "ones.h" +#include "matrixMultiplication.h" + +void sscalinga (float* inp1, int row, int col, double inp2, float* inp3, int size3, float* out) +{ + float temp[row*col], one[col], prod[row*col], diff[row*col]; + + for(int i = 0; i < row*col; i++) + temp[i] = inp1[i]; + + sonesa(one, 1, col); + + smulma(inp3, 2, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + diff[i] = inp1[i] - prod[i]; + + for(int i = 0; i < row*col; i++) + out[i] = (inp2 * diff[i]) + prod[i]; +} diff --git a/src/c/graphics/transforms/scaling/zscalinga.c b/src/c/graphics/transforms/scaling/zscalinga.c new file mode 100644 index 0000000..fb71a77 --- /dev/null +++ b/src/c/graphics/transforms/scaling/zscalinga.c @@ -0,0 +1,38 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Organization: FOSSEE, IIT Bombay + Author: Brijesh Gupta C R + Email: toolbox@scilab.in +*/ +#include <stdio.h> +#include <math.h> +#include "scaling.h" +#include "ones.h" +#include "matrixMultiplication.h" +#include "doubleComplex.h" +#include "subtraction.h" +#include "addition.h" +#include "multiplication.h" + +void zscalinga (doubleComplex* inp1, int row, int col, doubleComplex inp2, doubleComplex* inp3, int size3, doubleComplex* out) +{ + doubleComplex temp[row*col], one[col], prod[row*col], diff[row*col]; + + for(int i = 0; i < row*col; i++) + temp[i] = inp1[i]; + + zonesa(one, 1, col); + + zmulma(inp3, 2, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + diff[i] = zdiffs(inp1[i], prod[i]); + + for(int i = 0; i < row*col; i++) + out[i] = zadds(zmuls(inp2, diff[i]), prod[i]); +} |