diff options
Diffstat (limited to 'src/c/statisticsFunctions')
179 files changed, 6972 insertions, 24 deletions
diff --git a/src/c/statisticsFunctions/center/dcentera.c b/src/c/statisticsFunctions/center/dcentera.c new file mode 100644 index 00000000..87480386 --- /dev/null +++ b/src/c/statisticsFunctions/center/dcentera.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "multiplication.h" +#include "center.h" + +void dcentera (double* inp, int row, int col, double* out) +{ + double sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum += inp[i]; + xbar = sum/(row*col); + + double one[row*col]; // Creating a matrix of ones + donesa(one,row,col); + + double prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = one[i]*xbar; + + for(int i = 0; i < row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/dcentercola.c b/src/c/statisticsFunctions/center/dcentercola.c new file mode 100644 index 00000000..e92a1d29 --- /dev/null +++ b/src/c/statisticsFunctions/center/dcentercola.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "center.h" + +void dcentercola (double* inp, int row, int col, double* out) +{ + + double sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = 0; + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += inp[i + j*row]; + } + } + + + for(int i = 0; i < row; i++) + xbar[i] = sum[i]/col; + + double one[col]; // Creating a matrix of ones + donesa(one,1,col); + + + double prod[row*col]; + dmulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/dcenterrowa.c b/src/c/statisticsFunctions/center/dcenterrowa.c new file mode 100644 index 00000000..e6f7e3cd --- /dev/null +++ b/src/c/statisticsFunctions/center/dcenterrowa.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "center.h" + +void dcenterrowa (double* inp, int row, int col, double* out) +{ + + double sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = 0; + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += inp[j + i*row]; + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = sum[i]/row; + + double one[row]; // Creating a matrix of ones + donesa(one,row,1); + + double prod[row*col]; + dmulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/scentera.c b/src/c/statisticsFunctions/center/scentera.c new file mode 100644 index 00000000..2b165be1 --- /dev/null +++ b/src/c/statisticsFunctions/center/scentera.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "multiplication.h" +#include "center.h" + +void scentera (float* inp, int row, int col, float* out) +{ + float sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum += inp[i]; + xbar = sum/(row*col); + + float one[row*col]; // Creating a matrix of ones + sonesa(one,row,col); + + float prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = one[i]*xbar; + + for(int i = 0; i < row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/scentercola.c b/src/c/statisticsFunctions/center/scentercola.c new file mode 100644 index 00000000..d5ef5eeb --- /dev/null +++ b/src/c/statisticsFunctions/center/scentercola.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "center.h" + +void scentercola (float* inp, int row, int col, float* out) +{ + + float sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = 0; + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += inp[i + j*row]; + } + } + + for(int i = 0; i < row; i++) + xbar[i] = sum[i]/col; + + float one[col]; // Creating a matrix of ones + sonesa(one,1,col); + + + float prod[row*col]; + smulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/scenterrowa.c b/src/c/statisticsFunctions/center/scenterrowa.c new file mode 100644 index 00000000..b5910cd9 --- /dev/null +++ b/src/c/statisticsFunctions/center/scenterrowa.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "center.h" + +void scenterrowa (float* inp, int row, int col, float* out) +{ + + float sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = 0; + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += inp[j + i*row]; + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = sum[i]/row; + + float one[row]; // Creating a matrix of ones + sonesa(one,row,1); + + float prod[row*col]; + smulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; +} diff --git a/src/c/statisticsFunctions/center/zcentera.c b/src/c/statisticsFunctions/center/zcentera.c new file mode 100644 index 00000000..22ce70d7 --- /dev/null +++ b/src/c/statisticsFunctions/center/zcentera.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "center.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zcentera (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + doubleComplex sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum = zadds(sum,inp[i]); + xbar = zrdivs(sum,(row*col)); + + doubleComplex one[row*col]; // Creating a matrix of ones + zonesa(one,row,col); + + doubleComplex prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = zmuls(one[i],xbar); + + for(int i = 0; i < row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); +} diff --git a/src/c/statisticsFunctions/center/zcentercola.c b/src/c/statisticsFunctions/center/zcentercola.c new file mode 100644 index 00000000..8a838bc5 --- /dev/null +++ b/src/c/statisticsFunctions/center/zcentercola.c @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "center.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zcentercola (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + + doubleComplex sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = DoubleComplex(0,0); + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] = zadds(sum[i], inp[i + j*row]); + } + } + + + for(int i = 0; i < row; i++) + xbar[i] = zrdivs(sum[i], col); + + doubleComplex one[col]; // Creating a matrix of ones + zonesa(one,1,col); + + + doubleComplex prod[row*col]; + zmulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); +} diff --git a/src/c/statisticsFunctions/center/zcenterrowa.c b/src/c/statisticsFunctions/center/zcenterrowa.c new file mode 100644 index 00000000..cddd3403 --- /dev/null +++ b/src/c/statisticsFunctions/center/zcenterrowa.c @@ -0,0 +1,44 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "center.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + + doubleComplex sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = DoubleComplex(0,0); + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] = zadds(sum[i], inp[j + i*row]); + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = zrdivs(sum[i], row); + + doubleComplex one[row]; // Creating a matrix of ones + zonesa(one,row,1); + + doubleComplex prod[row*col]; + zmulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); +} diff --git a/src/c/statisticsFunctions/correl/dcorrelfres.c b/src/c/statisticsFunctions/correl/dcorrelfres.c new file mode 100644 index 00000000..7d4c718a --- /dev/null +++ b/src/c/statisticsFunctions/correl/dcorrelfres.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +double dcorrelfres (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* inp3, int sr3, int sc3) +{ + double p1[sr3], p2[sc3], m1 = 0, m2 = 0, s1 = 0, s2 = 0, s3 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0, prod[sr3]; + + double fr[sr3*sc3]; + + for(int i = 0; i < sr3*sc3; i++) + s3 += inp3[i]; + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = inp3[i]/s3; + + + + dcolumnsuma(fr, sr3, sc3, p1); + drowsuma(fr, sr3, sc3, p2); + + + + m1 = dmulv(inp1, p1, sr3); + m2 = dmulv(inp2, p2, sc3); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = pow(inp1[i] - m1, 2); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = pow(inp2[i] - m2, 2); + + + s1 = dsqrts(dmulv(diff1, p1, sr3)); + s2 = dsqrts(dmulv(p2, diff2, sc3)); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = inp1[i] - m1; + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = inp2[i] - m2; + + dmulma(fr, sr3, sc3, diff2, sc2, 1, prod); + + return dmulv(diff1, prod, sr3)/(s1*s2); +} diff --git a/src/c/statisticsFunctions/correl/dcorrels.c b/src/c/statisticsFunctions/correl/dcorrels.c new file mode 100644 index 00000000..eda07fc1 --- /dev/null +++ b/src/c/statisticsFunctions/correl/dcorrels.c @@ -0,0 +1,35 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +double dcorrels (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2) +{ + double m1 = 0, m2 = 0, s1 = 0, s2 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0; + m1 = dmeana(inp1, sr1*sc1); + m2 = dmeana(inp2, sr2*sc2); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = pow(inp1[i] - m1, 2); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = pow(inp2[i] - m2, 2); + + + s1 = dsqrts(dsuma(diff1, sr1*sc1)); + s2 = dsqrts(dsuma(diff2, sr2*sc2)); + + for(int i = 0; i < sr2*sc2; i++) + sum += (inp1[i] - m1) * (inp2[i] - m2); + + return sum / (s1*s2); +} diff --git a/src/c/statisticsFunctions/correl/scorrelfres.c b/src/c/statisticsFunctions/correl/scorrelfres.c new file mode 100644 index 00000000..2d056a5b --- /dev/null +++ b/src/c/statisticsFunctions/correl/scorrelfres.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +float scorrelfres (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* inp3, int sr3, int sc3) +{ + float p1[sr3], p2[sc3], m1 = 0, m2 = 0, s1 = 0, s2 = 0, s3 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0, prod[sr3]; + + float fr[sr3*sc3]; + + for(int i = 0; i < sr3*sc3; i++) + s3 += inp3[i]; + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = inp3[i]/s3; + + + + scolumnsuma(fr, sr3, sc3, p1); + srowsuma(fr, sr3, sc3, p2); + + + + m1 = smulv(inp1, p1, sr3); + m2 = smulv(inp2, p2, sc3); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = pow(inp1[i] - m1, 2); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = pow(inp2[i] - m2, 2); + + + s1 = ssqrts(smulv(diff1, p1, sr3)); + s2 = ssqrts(smulv(p2, diff2, sc3)); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = inp1[i] - m1; + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = inp2[i] - m2; + + smulma(fr, sr3, sc3, diff2, sc2, 1, prod); + + return smulv(diff1, prod, sr3)/(s1*s2); +} diff --git a/src/c/statisticsFunctions/correl/scorrels.c b/src/c/statisticsFunctions/correl/scorrels.c new file mode 100644 index 00000000..892d8762 --- /dev/null +++ b/src/c/statisticsFunctions/correl/scorrels.c @@ -0,0 +1,35 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +float scorrels (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2) +{ + float m1 = 0, m2 = 0, s1 = 0, s2 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0; + m1 = smeana(inp1, sr1*sc1); + m2 = smeana(inp2, sr2*sc2); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = pow(inp1[i] - m1, 2); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = pow(inp2[i] - m2, 2); + + + s1 = ssqrts(ssuma(diff1, sr1*sc1)); + s2 = ssqrts(ssuma(diff2, sr2*sc2)); + + for(int i = 0; i < sr2*sc2; i++) + sum += (inp1[i] - m1) * (inp2[i] - m2); + + return sum / (s1*s2); +} diff --git a/src/c/statisticsFunctions/correl/zcorrelfres.c b/src/c/statisticsFunctions/correl/zcorrelfres.c new file mode 100644 index 00000000..b026c58a --- /dev/null +++ b/src/c/statisticsFunctions/correl/zcorrelfres.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "pow.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" +#include "doubleComplex.h" + +doubleComplex zcorrelfres (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* inp3, int sr3, int sc3) +{ + doubleComplex p1[sr3], p2[sc3], m1 = 0, m2 = 0, s1 = 0, s2 = 0, s3 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0, prod[sr3]; + + doubleComplex fr[sr3*sc3]; + + for(int i = 0; i < sr3*sc3; i++) + s3 = zadds(s3, inp3[i]); + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = zrdivs(inp3[i],s3); + + + + zcolumnsuma(fr, sr3, sc3, p1); + zrowsuma(fr, sr3, sc3, p2); + + + + m1 = zmulv(inp1, p1, sr3); + m2 = zmulv(inp2, p2, sc3); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = zpows(zdiffs(inp1[i], m1), DoubleComplex(2,0)); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = zpows(zdiffs(inp2[i], m2), DoubleComplex(2,0)); + + + s1 = zsqrts(zmulv(diff1, p1, sr3)); + s2 = zsqrts(zmulv(p2, diff2, sc3)); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = zdiffs(inp1[i], m1); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = zdiffs(inp2[i], m2); + + zmulma(fr, sr3, sc3, diff2, sc2, 1, prod); + + return zrdivs(zmulv(diff1, prod, sr3), zmuls(s1, s2)); +} diff --git a/src/c/statisticsFunctions/correl/zcorrels.c b/src/c/statisticsFunctions/correl/zcorrels.c new file mode 100644 index 00000000..818a6800 --- /dev/null +++ b/src/c/statisticsFunctions/correl/zcorrels.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "pow.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" +#include "doubleComplex.h" + +doubleComplex zcorrels (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2) +{ + doubleComplex m1 = 0, m2 = 0, s1 = 0, s2 = 0, diff1[sr1*sc1], diff2[sr2*sc2], sum = 0; + m1 = zmeana(inp1, sr1*sc1); + m2 = zmeana(inp2, sr2*sc2); + + for(int i = 0; i < sr1*sc1; i++) + diff1[i] = zpows(zdiffs(inp1[i], m1), DoubleComplex(2,0)); + + for(int i = 0; i < sr2*sc2; i++) + diff2[i] = zpows(zdiffs(inp2[i], m2), DoubleComplex(2,0)); + + + s1 = zsqrts(zsuma(diff1, sr1*sc1)); + s2 = zsqrts(zsuma(diff2, sr2*sc2)); + + for(int i = 0; i < sr2*sc2; i++) + sum = zadds(sum, zmuls(zdiffs(inp1[i], m1), zdiffs(inp2[i], m2))); + + return zrdivs(sum, zmuls(s1,s2)); +} diff --git a/src/c/statisticsFunctions/covar/dcovars.c b/src/c/statisticsFunctions/covar/dcovars.c new file mode 100644 index 00000000..f67905ee --- /dev/null +++ b/src/c/statisticsFunctions/covar/dcovars.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +double dcovars (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* fre, int sr3, int sc3) +{ + double fr[sr3*sc3], s3 = 0, sfrr[sc3], p1[sc2*sc3], s1 = 0, d1[sc2] , one[sr1*sc1], p2[sc1 * sc2], p3[sr3*sc3], sfrc[sr3], p4[sr3], s2 = 0, d2[sr1*sc1], one2[sr2*sc2], p5[sr1*sc1*sr2*sc2], p6[sr1*sc1*sr2*sc2],s4 = 0; + + for(int i = 0; i < sr3*sc3; i++) + s3 += fre[i]; + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = fre[i]/s3; + + drowsuma(fr, sr3, sc3, sfrr); + + for(int i = 0; i < sc3; i++) + p1[i] = inp2[i] * sfrr[i]; + + for(int i = 0; i < sc3; i++) + s1 += p1[i]; + + + + for(int i = 0; i < sc2; i++) + d1[i] = inp2[i] - s1; + + donesa(one, sr1*sc1, 1); + + dmulma(one, sr1*sc1, 1, d1, 1, sc2, p2); + + for(int i = 0; i < sr3*sc3; i++) + p3[i] = fr[i] * p2[i]; + + dcolumnsuma(fr, sr3, sc3, sfrc); + + for(int i = 0; i < sr3; i++) + p4[i] = inp1[i] * sfrc[i]; + + for(int i = 0; i < sr3; i++) + s2 += p4[i]; + + for(int i = 0; i < sr1*sc1; i++) + d2[i] = inp1[i] - s2; + + donesa(one2, 1, sr2*sc2); + + dmulma(d2, sr1*sc1, 1, one2, 1, sr2*sc2, p5); + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + p6[i] = p5[i] * p3[i]; + + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + s4 += p6[i]; + + + return s4; + +} diff --git a/src/c/statisticsFunctions/covar/scovars.c b/src/c/statisticsFunctions/covar/scovars.c new file mode 100644 index 00000000..daff6b94 --- /dev/null +++ b/src/c/statisticsFunctions/covar/scovars.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +float scovars (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* fre, int sr3, int sc3) +{ + float fr[sr3*sc3], s3 = 0, sfrr[sc3], p1[sc2*sc3], s1 = 0, d1[sc2] , one[sr1*sc1], p2[sc1 * sc2], p3[sr3*sc3], sfrc[sr3], p4[sr3], s2 = 0, d2[sr1*sc1], one2[sr2*sc2], p5[sr1*sc1*sr2*sc2], p6[sr1*sc1*sr2*sc2],s4 = 0; + + for(int i = 0; i < sr3*sc3; i++) + s3 += fre[i]; + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = fre[i]/s3; + + srowsuma(fr, sr3, sc3, sfrr); + + for(int i = 0; i < sc3; i++) + p1[i] = inp2[i] * sfrr[i]; + + for(int i = 0; i < sc3; i++) + s1 += p1[i]; + + + + for(int i = 0; i < sc2; i++) + d1[i] = inp2[i] - s1; + + sonesa(one, sr1*sc1, 1); + + smulma(one, sr1*sc1, 1, d1, 1, sc2, p2); + + for(int i = 0; i < sr3*sc3; i++) + p3[i] = fr[i] * p2[i]; + + scolumnsuma(fr, sr3, sc3, sfrc); + + for(int i = 0; i < sr3; i++) + p4[i] = inp1[i] * sfrc[i]; + + for(int i = 0; i < sr3; i++) + s2 += p4[i]; + + for(int i = 0; i < sr1*sc1; i++) + d2[i] = inp1[i] - s2; + + sonesa(one2, 1, sr2*sc2); + + smulma(d2, sr1*sc1, 1, one2, 1, sr2*sc2, p5); + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + p6[i] = p5[i] * p3[i]; + + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + s4 += p6[i]; + + + return s4; + +} diff --git a/src/c/statisticsFunctions/covar/zcovars.c b/src/c/statisticsFunctions/covar/zcovars.c new file mode 100644 index 00000000..6adbd3c9 --- /dev/null +++ b/src/c/statisticsFunctions/covar/zcovars.c @@ -0,0 +1,71 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" +#include "doubleComplex.h" + +doubleComplex zcovars (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* fre, int sr3, int sc3) +{ + doubleComplex fr[sr3*sc3], s3 = 0, sfrr[sc3], p1[sc2*sc3], s1 = 0, d1[sc2] , one[sr1*sc1], p2[sc1 * sc2], p3[sr3*sc3], sfrc[sr3], p4[sr3], s2 = 0, d2[sr1*sc1], one2[sr2*sc2], p5[sr1*sc1*sr2*sc2], p6[sr1*sc1*sr2*sc2],s4 = 0; + + for(int i = 0; i < sr3*sc3; i++) + s3 = zadds(s3, fre[i]); + + for(int i = 0; i < sr3*sc3; i++) + fr[i] = zrdivs(fre[i], s3); + + zrowsuma(fr, sr3, sc3, sfrr); + + for(int i = 0; i < sc3; i++) + p1[i] = zmuls(inp2[i], sfrr[i]); + + for(int i = 0; i < sc3; i++) + s1 = zadds(s1, p1[i]); + + + + for(int i = 0; i < sc2; i++) + d1[i] = zdiffs(inp2[i], s1); + + zonesa(one, sr1*sc1, 1); + + zmulma(one, sr1*sc1, 1, d1, 1, sc2, p2); + + for(int i = 0; i < sr3*sc3; i++) + p3[i] = fr[i] * p2[i]; + + zcolumnsuma(fr, sr3, sc3, sfrc); + + for(int i = 0; i < sr3; i++) + p4[i] = zmuls(inp1[i], sfrc[i]); + + for(int i = 0; i < sr3; i++) + s2 = zadds(s2, p4[i]); + + for(int i = 0; i < sr1*sc1; i++) + d2[i] = zdiffs(inp1[i], s2); + + zonesa(one2, 1, sr2*sc2); + + zmulma(d2, sr1*sc1, 1, one2, 1, sr2*sc2, p5); + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + p6[i] = zmuls(p5[i], p3[i]); + + + for(int i = 0; i < sr1*sc1*sr2*sc2; i++) + s4 = zadds(s4, p6[i]); + + + return s4; + +} diff --git a/src/c/statisticsFunctions/gsort/dgsorta.c b/src/c/statisticsFunctions/gsort/dgsorta.c new file mode 100644 index 00000000..8585b54e --- /dev/null +++ b/src/c/statisticsFunctions/gsort/dgsorta.c @@ -0,0 +1,94 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void dgsorta(double *in, int size, char check, double* out) +{ + double a; double fin; double in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + +if(check == 'i') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } +} + +if(check =='d') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] < in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + +} + + for(int i=0; i< size; i++) + + { + out[i]= in_copy[i]; + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/dgsortcola.c b/src/c/statisticsFunctions/gsort/dgsortcola.c new file mode 100644 index 00000000..56cb3e8b --- /dev/null +++ b/src/c/statisticsFunctions/gsort/dgsortcola.c @@ -0,0 +1,44 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void dgsortcola(double *in, int row, int col, char check, double* out) +{ + double inter[col]; + double temp[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + + dgsorta( inter, col, check, temp); + + for(int k=0; k< col; k++) + { + out[i + k*row]= temp[k]; + + } + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/dgsortrowa.c b/src/c/statisticsFunctions/gsort/dgsortrowa.c new file mode 100644 index 00000000..cb2b819d --- /dev/null +++ b/src/c/statisticsFunctions/gsort/dgsortrowa.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void dgsortrowa(double *in, int row, int col, char check, double* out) +{ + double inter[row]; + double temp[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + dgsorta( inter, row, check, temp); + + for(int k=0; k< row; k++) + { + out[k + i*row]= temp[k]; + + } + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/sgsorta.c b/src/c/statisticsFunctions/gsort/sgsorta.c new file mode 100644 index 00000000..35bbc93e --- /dev/null +++ b/src/c/statisticsFunctions/gsort/sgsorta.c @@ -0,0 +1,94 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void sgsorta(float *in, int size, char check, float* out) +{ + float a; float fin; float in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + +if(check == 'i') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } +} + +if(check =='d') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] < in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + +} + + for(int i=0; i< size; i++) + + { + out[i]= in_copy[i]; + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/sgsortcola.c b/src/c/statisticsFunctions/gsort/sgsortcola.c new file mode 100644 index 00000000..7296f7f0 --- /dev/null +++ b/src/c/statisticsFunctions/gsort/sgsortcola.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void sgsortcola(float *in, int row, int col, char check, float* out) +{ + float inter[col]; + float temp[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + sgsorta( inter, col, check, temp); + + for(int k=0; k< col; k++) + { + out[i + k*row]= temp[k]; + + } + } + + +} diff --git a/src/c/statisticsFunctions/gsort/sgsortrowa.c b/src/c/statisticsFunctions/gsort/sgsortrowa.c new file mode 100644 index 00000000..220b45a5 --- /dev/null +++ b/src/c/statisticsFunctions/gsort/sgsortrowa.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void sgsortrowa(float *in, int row, int col, char check, float* out) +{ + float inter[row]; + float temp[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + sgsorta( inter, row, check, temp); + + for(int k=0; k< row; k++) + { + out[k + i*row]= temp[k]; + + } + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/u16gsorta.c b/src/c/statisticsFunctions/gsort/u16gsorta.c new file mode 100644 index 00000000..bca7b025 --- /dev/null +++ b/src/c/statisticsFunctions/gsort/u16gsorta.c @@ -0,0 +1,94 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void u16gsorta(uint16 *in, int size, char check, uint16* out) +{ + uint16 a; uint16 fin; uint16 in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + +if(check == 'i') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } +} + +if(check =='d') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] < in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + +} + + for(int i=0; i< size; i++) + + { + out[i]= in_copy[i]; + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/u16gsortcola.c b/src/c/statisticsFunctions/gsort/u16gsortcola.c new file mode 100644 index 00000000..51ac7b5e --- /dev/null +++ b/src/c/statisticsFunctions/gsort/u16gsortcola.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void u16gsortcola(uint16* in, int row, int col, char check, uint16* out) +{ + uint16 inter[col]; + uint16 temp[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + u16gsorta( inter, col, check, temp); + + for(int k=0; k< col; k++) + { + out[i + k*row]= temp[k]; + + } + } + + +} diff --git a/src/c/statisticsFunctions/gsort/u16gsortrowa.c b/src/c/statisticsFunctions/gsort/u16gsortrowa.c new file mode 100644 index 00000000..c8cbf4e9 --- /dev/null +++ b/src/c/statisticsFunctions/gsort/u16gsortrowa.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" + +void u16gsortrowa(uint16 *in, int row, int col, char check, uint16* out) +{ + uint16 inter[row]; + uint16 temp[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + u16gsorta( inter, row, check, temp); + + for(int k=0; k< row; k++) + { + out[k + i*row]= temp[k]; + + } + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/zgsorta.c b/src/c/statisticsFunctions/gsort/zgsorta.c new file mode 100644 index 00000000..0620a8cb --- /dev/null +++ b/src/c/statisticsFunctions/gsort/zgsorta.c @@ -0,0 +1,96 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "abs.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" + +void zgsorta(doubleComplex *in, int size, char check, doubleComplex* out) +{ + doubleComplex a; doubleComplex fin; doubleComplex in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + +if(check == 'i') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (zabss(in_copy[i]) > zabss(in_copy[j])) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } +} + +if(check =='d') +{ + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (zabss(in_copy[i]) < zabss(in_copy[j])) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + +} + + for(int i=0; i< size; i++) + + { + out[i]= in_copy[i]; + + } + + +} diff --git a/src/c/statisticsFunctions/gsort/zgsortcola.c b/src/c/statisticsFunctions/gsort/zgsortcola.c new file mode 100644 index 00000000..2c03623d --- /dev/null +++ b/src/c/statisticsFunctions/gsort/zgsortcola.c @@ -0,0 +1,43 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" +#include "doubleComplex.h" + +void zgsortcola(doubleComplex *in, int row, int col, char check, doubleComplex* out) +{ + doubleComplex inter[col]; + doubleComplex temp[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + zgsorta( inter, col, check, temp); + + for(int k=0; k< col; k++) + { + out[i + k*row]= temp[k]; + + } + } + + +} diff --git a/src/c/statisticsFunctions/gsort/zgsortrowa.c b/src/c/statisticsFunctions/gsort/zgsortrowa.c new file mode 100644 index 00000000..f02b0b24 --- /dev/null +++ b/src/c/statisticsFunctions/gsort/zgsortrowa.c @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "gsort.h" +#include "types.h" +#include "doubleComplex.h" + +void zgsortrowa(doubleComplex *in, int row, int col, char check, doubleComplex* out) +{ + doubleComplex inter[row]; + doubleComplex temp[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + zgsorta( inter, row, check, temp); + + for(int k=0; k< row; k++) + { + out[k + i*row]= temp[k]; + + } + + } + + +} diff --git a/src/c/statisticsFunctions/includes/center.h b/src/c/statisticsFunctions/includes/center.h new file mode 100644 index 00000000..57a109b3 --- /dev/null +++ b/src/c/statisticsFunctions/includes/center.h @@ -0,0 +1,47 @@ + /* 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 __CENTER_H__ +#define __CENTER_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dcentera (double* inp, int row, int col, double* out); +void dcentercola (double* inp, int row, int col, double* out); +void dcenterrowa (double* inp, int row, int col, double* out); + +void scentera (float* inp, int row, int col, float* out); +void scentercola (float* inp, int row, int col, float* out); +void scenterrowa (float* inp, int row, int col, float* out); + +void zcentera (doubleComplex* inp, int row, int col, doubleComplex* out); +void zcentercola (doubleComplex* inp, int row, int col, doubleComplex* out); +void zcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__CENTER_H__*/ diff --git a/src/c/statisticsFunctions/includes/correl.h b/src/c/statisticsFunctions/includes/correl.h new file mode 100644 index 00000000..8a9c0365 --- /dev/null +++ b/src/c/statisticsFunctions/includes/correl.h @@ -0,0 +1,48 @@ + /* 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 __CORREL_H__ +#define __CORREL_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dcorrels (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2); +double dcorrelfres (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* inp3, int sr3, int sc3); + +float scorrels (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2); +float scorrelfres (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* inp3, int sr3, int sc3); + +doubleComplex zcorrels (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2); +doubleComplex zcorrelfres (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* inp3, int sr3, int sc3); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__CORREL_H__*/ diff --git a/src/c/statisticsFunctions/includes/covar.h b/src/c/statisticsFunctions/includes/covar.h new file mode 100644 index 00000000..4f37f852 --- /dev/null +++ b/src/c/statisticsFunctions/includes/covar.h @@ -0,0 +1,43 @@ + /* 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 __COVAR_H__ +#define __COVAR_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" +#include "sum.h" +#include "correl.h" +#include "matrix.h" +#include "mean.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dcovars (double* inp1, int sr1, int sc1, double* inp2, int sr2, int sc2, double* fre, int sr3, int sc3); +float scovars (float* inp1, int sr1, int sc1, float* inp2, int sr2, int sc2, float* fre, int sr3, int sc3); +doubleComplex zcovars (doubleComplex* inp1, int sr1, int sc1, doubleComplex* inp2, int sr2, int sc2, doubleComplex* fre, int sr3, int sc3); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__COVAR_H__*/ diff --git a/src/c/statisticsFunctions/includes/gsort.h b/src/c/statisticsFunctions/includes/gsort.h new file mode 100644 index 00000000..a4d0870e --- /dev/null +++ b/src/c/statisticsFunctions/includes/gsort.h @@ -0,0 +1,46 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#ifndef __GSORT_H__ +#define __GSORT_H__ + +#include "types.h" +#include "doubleComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dgsorta(double *in, int size, char check, double* out); +void dgsortcola(double *in, int row, int col, char check, double* out); +void dgsortrowa(double *in, int row, int col, char check, double* out); + +void sgsorta(float *in, int size, char check, float* out); +void sgsortcola(float *in, int row, int col, char check, float* out); +void sgsortrowa(float *in, int row, int col, char check, float* out); + +void u16gsorta(uint16 *in, int size, char check, uint16* out); +void u16gsortcola(uint16 *in, int row, int col, char check, uint16* out); +void u16gsortrowa(uint16 *in, int row, int col, char check, uint16* out); + +void zgsorta(doubleComplex *in, int size, char check, doubleComplex* out); +void zgsortcola(doubleComplex *in, int row, int col, char check, doubleComplex* out); +void zgsortrowa(doubleComplex*in, int row, int col, char check, doubleComplex* out); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__GSORT_H__*/ diff --git a/src/c/statisticsFunctions/includes/mad.h b/src/c/statisticsFunctions/includes/mad.h new file mode 100644 index 00000000..29032deb --- /dev/null +++ b/src/c/statisticsFunctions/includes/mad.h @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#ifndef __MAD_H__ +#define __MAD_H__ + +#include "types.h" +#include "doubleComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dmada(double* , int ); +void dmadrowa(double*, int, int, double*); +void dmadcola(double*, int, int, double*); + +float smada(float* , int ); +void smadrowa(float*, int, int, float*); +void smadcola(float*, int, int, float*); + +doubleComplex zmada(doubleComplex* , int ); +void zmadrowa(doubleComplex*, int, int, doubleComplex*); +void zmadcola(doubleComplex*, int, int, doubleComplex*); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__MAD_H__*/ diff --git a/src/c/statisticsFunctions/includes/median.h b/src/c/statisticsFunctions/includes/median.h new file mode 100644 index 00000000..accb5df0 --- /dev/null +++ b/src/c/statisticsFunctions/includes/median.h @@ -0,0 +1,46 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#ifndef __MEDIAN_H__ +#define __MEDIAN_H__ + +#include "types.h" +#include "doubleComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dmediana(double* , int ); +void dmedianrowa(double*, int, int, double*); +void dmediancola(double*, int, int, double*); + +float smediana(float* , int ); +void smedianrowa(float*, int, int, float*); +void smediancola(float*, int, int, float*); + +uint16 u16mediana(uint16* , int ); +void u16medianrowa(uint16*, int, int, uint16*); +void u16mediancola(uint16*, int, int, uint16*); + +doubleComplex zmediana(doubleComplex* , int ); +void zmedianrowa(doubleComplex*, int, int, doubleComplex*); +void zmediancola(doubleComplex*, int, int, doubleComplex*); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__MATRIX_H__*/ diff --git a/src/c/statisticsFunctions/includes/moment.h b/src/c/statisticsFunctions/includes/moment.h new file mode 100644 index 00000000..3f419d06 --- /dev/null +++ b/src/c/statisticsFunctions/includes/moment.h @@ -0,0 +1,42 @@ + /* 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 __MOMENT_H__ +#define __MOMENT_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "pow.h" +#include "addition.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dmoments (double* inp, int size, double ord); +void dmomentrowa (double* inp, int row, int col, double ord, double* out); +void dmomentcola (double* inp, int row, int col, double ord, double* out); + +float smoments (float* inp, int size, double ord); +void smomentrowa (float* inp, int row, int col, double ord, float* out); +void smomentcola (float* inp, int row, int col, double ord, float* out); + +doubleComplex zmoments (doubleComplex* inp, int size, double ord); +void zmomentrowa (doubleComplex* inp, int row, int col, double ord, doubleComplex* out); +void zmomentcola (doubleComplex* inp, int row, int col, double ord, doubleComplex* out); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__MOMENT_H__*/ diff --git a/src/c/statisticsFunctions/includes/mvcorrel.h b/src/c/statisticsFunctions/includes/mvcorrel.h new file mode 100644 index 00000000..f1ed94cd --- /dev/null +++ b/src/c/statisticsFunctions/includes/mvcorrel.h @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#ifndef __MVCORREL_H__ +#define __MVCORREL_H__ + +#include "types.h" +#include "doubleComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dmvcorrela(double* , int, int, double* ); +double dmvcorrel1a( int, int); + +void smvcorrela(float* , int, int, float* ); +float smvcorrel1a( int, int); + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__MVCORREL_H__*/ diff --git a/src/c/statisticsFunctions/includes/nanmedian.h b/src/c/statisticsFunctions/includes/nanmedian.h new file mode 100644 index 00000000..767dbc90 --- /dev/null +++ b/src/c/statisticsFunctions/includes/nanmedian.h @@ -0,0 +1,44 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __NANMEDIAN_H__ +#define __NANMEDIAN_H__ + + +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "int16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dnanmediana (double* , int); +void dnanmedianrowa (double*, int , int, double*); +void dnanmediancola (double*, int , int, double*); + +float snanmediana (float* , int); +void snanmedianrowa (float*, int , int, float*); +void snanmediancola (float*, int , int, float*); + +doubleComplex znanmediana (doubleComplex* , int); +void znanmedianrowa (doubleComplex*, int , int, doubleComplex*); +void znanmediancola (doubleComplex*, int , int, doubleComplex*); + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/src/c/statisticsFunctions/includes/nanstdev.h b/src/c/statisticsFunctions/includes/nanstdev.h new file mode 100644 index 00000000..5c140939 --- /dev/null +++ b/src/c/statisticsFunctions/includes/nanstdev.h @@ -0,0 +1,40 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __NANSTDEV_H__ +#define __NANSTDEV_H__ + + +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "int16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dnanstdeva (double* , int); +void dnanstdevrowa (double*, int , int, double*); +void dnanstdevcola (double*, int , int, double*); + +float snanstdeva (float* , int); +void snanstdevrowa (float*, int , int, float*); +void snanstdevcola (float*, int , int, float*); + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/src/c/statisticsFunctions/includes/statMax.h b/src/c/statisticsFunctions/includes/statMax.h index 3538bc1a..8e5d12b9 100644 --- a/src/c/statisticsFunctions/includes/statMax.h +++ b/src/c/statisticsFunctions/includes/statMax.h @@ -14,28 +14,57 @@ #define __STAT_MAX_H__ #include "dynlib_statisticsfunctions.h" +#include "types.h" #ifdef __cplusplus extern "C" { #endif +//#define max(a,b) (a>=b?a:b) + +#define maxa(a,size1,b,size2,out) {int i;\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=max(a[i],b[i]);\ + } + /* -** \brief Sum of a scalar element, just returns it +** \brief max of a scalar element, just returns it */ -#define smaxs(in) in +#define smaxs(in) in #define srowmaxs(in) in #define scolumnmaxs(in) in #define smatlabmaxs(in) in /* -** \brief Sum of a scalar element, just returns it +** \brief max of a scalar element, just returns it */ -#define dmaxs(in) in +#define dmaxs(in) in #define drowmaxs(in) in #define dcolumnmaxs(in) in #define dmatlabmaxs(in) in /* +** \brief max of a scalar element, just returns it +*/ +#define u8maxs(in) (uint8)in +#define u8rowmaxs(in) (uint8)in +#define u8columnmaxs(in) (uint8)in +#define u8matlabmaxs(in) (uint8)in +#define u16maxs(in) (uint16)in +#define u16rowmaxs(in) (uint16)in +#define u16columnmaxs(in) (uint16)in +#define u16matlabmaxs(in) (uint16)in +#define i8maxs(in) (int8)in +#define i8rowmaxs(in) (int8)in +#define i8columnmaxs(in) (int8)in +#define i8matlabmaxs(in) (int8)in +#define i16maxs(in) (int16)in +#define i16rowmaxs(in) (int16)in +#define i16columnmaxs(in) (int16)in +#define i16matlabmaxs(in) (int16)in + + + +/* ** \brief Sum of a float array ** \param in the float array to process ** \param size, the size of the array @@ -55,9 +84,47 @@ EXTERN_STATFUNC double dmaxa(double *in, int size); EXTERN_STATFUNC void drowmaxa(double *in, int lines, int columns, double* out); EXTERN_STATFUNC void dcolumnmaxa(double *in, int lines, int columns, double* out); +/* +** \brief Sum of a uint8 array +** \param in the uint8 array to process +** \param size, the size of the array +** \returns the max. +*/ +EXTERN_STATFUNC uint8 u8maxa(uint8 *in, int size); +EXTERN_STATFUNC void u8rowmaxa(uint8 *in, int lines, int columns, uint8* out); +EXTERN_STATFUNC void u8columnmaxa(uint8 *in, int lines, int columns, uint8* out); + +/* +** \brief Sum of a uint16 array +** \param in the uint16 array to process +** \param size, the size of the array +** \returns the max. +*/ +EXTERN_STATFUNC uint16 u16maxa(uint16 *in, int size); +EXTERN_STATFUNC void u16rowmaxa(uint16 *in, int lines, int columns, uint16* out); +EXTERN_STATFUNC void u16columnmaxa(uint16 *in, int lines, int columns, uint16* out); + +/* +** \brief Sum of a int8 array +** \param in the int8 array to process +** \param size, the size of the array +** \returns the max. +*/ +EXTERN_STATFUNC int8 i8maxa(int8 *in, int size); +EXTERN_STATFUNC void i8rowmaxa(int8 *in, int lines, int columns, int8* out); +EXTERN_STATFUNC void i8columnmaxa(int8 *in, int lines, int columns, int8* out); + +/* +** \brief Sum of a int16 array +** \param in the int16 array to process +** \param size, the size of the array +** \returns the max. +*/ +EXTERN_STATFUNC int16 i16maxa(int16 *in, int size); +EXTERN_STATFUNC void i16rowmaxa(int16 *in, int lines, int columns, int16* out); +EXTERN_STATFUNC void i16columnmaxa(int16 *in, int lines, int columns, int16* out); + #ifdef __cplusplus } /* extern "C" */ #endif - - #endif /* !__STAT_MAX_H__ */ diff --git a/src/c/statisticsFunctions/includes/statMin.h b/src/c/statisticsFunctions/includes/statMin.h index 9528d9f4..f3b8268a 100644 --- a/src/c/statisticsFunctions/includes/statMin.h +++ b/src/c/statisticsFunctions/includes/statMin.h @@ -14,28 +14,57 @@ #define __STAT_MIN_H__ #include "dynlib_statisticsfunctions.h" +#include "types.h" #ifdef __cplusplus extern "C" { #endif +//#define min(a,b) (a<=b?a:b) + +#define mina(a,size1,b,size2,out) {int i;\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=min(a[i],b[i]);\ + } + /* -** \brief Sum of a scalar element, just returns it +** \brief min of a scalar element, just returns it */ #define smins(in) in #define srowmins(in) in -#define scolumnmins(in) in +#define scolumnmins(in) in #define smatlabmins(in) in /* -** \brief Sum of a scalar element, just returns it +** \brief min of a scalar element, just returns it */ #define dmins(in) in #define drowmins(in) in -#define dcolumnmins(in) in +#define dcolumnmins(in) in #define dmatlabmins(in) in /* +** \brief min of a scalar element, just returns it +*/ +#define u8mins(in) (uint8)in +#define u8rowmins(in) (uint8)in +#define u8columnmins(in) (uint8)in +#define u8matlabmins(in) (uint8)in +#define u16mins(in) (uint16)in +#define u16rowmins(in) (uint16)in +#define u16columnmins(in) (uint16)in +#define u16matlabmins(in) (uint16)in +#define i8mins(in) (int8)in +#define i8rowmins(in) (int8)in +#define i8columnmins(in) (int8)in +#define i8matlabmins(in) (int8)in +#define i16mins(in) (int16)in +#define i16rowmins(in) (int16)in +#define i16columnmins(in) (int16)in +#define i16matlabmins(in) (int16)in + + + +/* ** \brief Sum of a float array ** \param in the float array to process ** \param size, the size of the array @@ -55,9 +84,47 @@ EXTERN_STATFUNC double dmina(double *in, int size); EXTERN_STATFUNC void drowmina(double *in, int lines, int columns, double* out); EXTERN_STATFUNC void dcolumnmina(double *in, int lines, int columns, double* out); +/* +** \brief Sum of a uint8 array +** \param in the uint8 array to process +** \param size, the size of the array +** \returns the min. +*/ +EXTERN_STATFUNC uint8 u8mina(uint8 *in, int size); +EXTERN_STATFUNC void u8rowmina(uint8 *in, int lines, int columns, uint8* out); +EXTERN_STATFUNC void u8columnmina(uint8 *in, int lines, int columns, uint8* out); + +/* +** \brief Sum of a uint16 array +** \param in the uint16 array to process +** \param size, the size of the array +** \returns the min. +*/ +EXTERN_STATFUNC uint16 u16mina(uint16 *in, int size); +EXTERN_STATFUNC void u16rowmina(uint16 *in, int lines, int columns, uint16* out); +EXTERN_STATFUNC void u16columnmina(uint16 *in, int lines, int columns, uint16* out); + +/* +** \brief Sum of a int8 array +** \param in the int8 array to process +** \param size, the size of the array +** \returns the min. +*/ +EXTERN_STATFUNC int8 i8mina(int8 *in, int size); +EXTERN_STATFUNC void i8rowmina(int8 *in, int lines, int columns, int8* out); +EXTERN_STATFUNC void i8columnmina(int8 *in, int lines, int columns, int8* out); + +/* +** \brief Sum of a int16 array +** \param in the int16 array to process +** \param size, the size of the array +** \returns the min. +*/ +EXTERN_STATFUNC int16 i16mina(int16 *in, int size); +EXTERN_STATFUNC void i16rowmina(int16 *in, int lines, int columns, int16* out); +EXTERN_STATFUNC void i16columnmina(int16 *in, int lines, int columns, int16* out); + #ifdef __cplusplus } /* extern "C" */ #endif - - #endif /* !__STAT_MIN_H__ */ diff --git a/src/c/statisticsFunctions/includes/stdev.h b/src/c/statisticsFunctions/includes/stdev.h new file mode 100644 index 00000000..16b4697a --- /dev/null +++ b/src/c/statisticsFunctions/includes/stdev.h @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#ifndef __STDEV_H__ +#define __STDEV_H__ + +#include "types.h" +#include "doubleComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dstdeva(double* , int ); +void dstdevrowa(double*, int, int, double*); +void dstdevcola(double*, int, int, double*); + +float sstdeva(float* , int ); +void sstdevrowa(float*, int, int, float*); +void sstdevcola(float*, int, int, float*); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__STDEV_H__*/ diff --git a/src/c/statisticsFunctions/includes/strange.h b/src/c/statisticsFunctions/includes/strange.h new file mode 100644 index 00000000..0c783ad0 --- /dev/null +++ b/src/c/statisticsFunctions/includes/strange.h @@ -0,0 +1,43 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __STRANGE_H__ +#define __STRANGE_H__ + + +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "uint16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double dstrangea (double* , int); +void dstrangerowa (double*, int , int, double*); +void dstrangecola (double*, int , int, double*); + +float sstrangea (float* , int); +void sstrangerowa (float*, int , int, float*); +void sstrangecola (float*, int , int, float*); + +uint16 u16strangea (uint16* , int); +void u16strangerowa (uint16*, int , int, uint16*); +void u16strangecola (uint16*, int , int, uint16*); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/src/c/statisticsFunctions/includes/wcenter.h b/src/c/statisticsFunctions/includes/wcenter.h new file mode 100644 index 00000000..3919fd37 --- /dev/null +++ b/src/c/statisticsFunctions/includes/wcenter.h @@ -0,0 +1,47 @@ + /* 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 __WCENTER_H__ +#define __WCENTER_H__ +#include "types.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "sqrt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dwcentera (double* inp, int row, int col, double* out); +void dwcentercola (double* inp, int row, int col, double* out); +void dwcenterrowa (double* inp, int row, int col, double* out); + +void swcentera (float* inp, int row, int col, float* out); +void swcentercola (float* inp, int row, int col, float* out); +void swcenterrowa (float* inp, int row, int col, float* out); + +void zwcentera (doubleComplex* inp, int row, int col, doubleComplex* out); +void zwcentercola (doubleComplex* inp, int row, int col, doubleComplex* out); +void zwcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__WCENTER_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_center.h b/src/c/statisticsFunctions/interfaces/int_center.h new file mode 100644 index 00000000..041937e0 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_center.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 __INT_CENTER_H__ +#define __INT_CENTER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2centerd2(in1,size, out) dcentera(in1,size[0],size[1],out) +#define d2g2centerd2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? dcenterrowa(in1, size[0], size[1], out) : dcentercola(in1, size[0], size[1], out) +#define d2d0centerd2(in1, size, in2 ,out) (in2 == 1) ? dcenterrowa(in1, size[0], size[1], out) : dcentercola(in1, size[0], size[1], out) + +#define s2centers2(in1,size, out) scentera(in1,size[0],size[1],out) +#define s2g2centers2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? scenterrowa(in1, size[0], size[1], out) : scentercola(in1, size[0], size[1], out) +#define s2d0centers2(in1, size, in2 ,out) (in2 == 1) ? scenterrowa(in1, size[0], size[1], out) : scentercola(in1, size[0], size[1], out) + +#define z2centerz2(in1,size, out) zcentera(in1,size[0],size[1],out) +#define z2g2centerz2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? zcenterrowa(in1, size[0], size[1], out) : zcentercola(in1, size[0], size[1], out) +#define z2d0centerz2(in1, size, in2 ,out) (in2 == 1) ? zcenterrowa(in1, size[0], size[1], out) : zcentercola(in1, size[0], size[1], out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_CENTER_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_correl.h b/src/c/statisticsFunctions/interfaces/int_correl.h new file mode 100644 index 00000000..8dd5c31e --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_correl.h @@ -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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_CORREL_H__ +#define __INT_CORREL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#define d2d2correld0(in1, size, in2, size2) dcorrels(in1, size[0], size[1], in2, size2[0], size2[1]) +#define d2d2d2correld0(in1, size, in2, size2, in3, size3) dcorrelfres(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) + +#define s2s2correls0(in1, size, in2, size2) scorrels(in1, size[0], size[1], in2, size2[0], size2[1]) +#define s2s2s2correls0(in1, size, in2, size2, in3, size3) scorrelfres(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) + +#define z2z2correlz0(in1, size, in2, size2) zcorrels(in1, size[0], size[1], in2, size2[0], size2[1]) +#define z2z2z2correlz0(in1, size, in2, size2, in3, size3) zcorrelfres(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_CORREL_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_covar.h b/src/c/statisticsFunctions/interfaces/int_covar.h new file mode 100644 index 00000000..5ebef22f --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_covar.h @@ -0,0 +1,29 @@ + /* 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_COVAR_H__ +#define __INT_COVAR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#define d2d2d2covard0(in1, size, in2, size2, in3, size3) dcovars(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) +#define s2s2s2covars0(in1, size, in2, size2, in3, size3) scovars(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) +#define z2z2z2covarz0(in1, size, in2, size2, in3, size3) zcovars(in1, size[0], size[1], in2, size2[0], size2[1], in3, size3[0], size3[1]) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_COVAR_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_gsort.h b/src/c/statisticsFunctions/interfaces/int_gsort.h new file mode 100644 index 00000000..d1e9bb97 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_gsort.h @@ -0,0 +1,43 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_GSORT_H__ +#define __INT_GSORT_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2gsortd2(in1, size, out) dgsorta(in1, size[0]* size[1], 'd', out) +#define d2g2gsortd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dgsortrowa(in1, size1[0], size1[1],'d', out) :dgsortcola(in1, size1[0], size1[1],'d', out) +#define d2g2g2gsortd2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? dgsortrowa(in1, size1[0], size1[1],in3[0], out) :dgsortcola(in1, size1[0], size1[1],in3[0], out) + +#define s2gsorts2(in1, size, out) sgsorta(in1, size[0]* size[1], 'd', out) +#define s2g2gsorts2(in1, size1, in2, size2, out) (in2[0]== 'r') ? sgsortrowa(in1, size1[0], size1[1],'d', out) :sgsortcola(in1, size1[0], size1[1],'d', out) +#define s2g2g2gsorts2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? sgsortrowa(in1, size1[0], size1[1],in3[0], out) :sgsortcola(in1, size1[0], size1[1],in3[0], out) + +#define u162gsortu162(in1, size, out) u16gsorta(in1, size[0]* size[1], 'd', out) +#define u162g2gsortu162(in1, size1, in2, size2, out) (in2[0]== 'r') ? u16gsortrowa(in1, size1[0], size1[1],'d', out) :u16gsortcola(in1, size1[0], size1[1],'d', out) +#define u162g2g2gsortu162(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? u16gsortrowa(in1, size1[0], size1[1],in3[0], out) :u16gsortcola(in1, size1[0], size1[1],in3[0], out) + +#define z2gsortz2(in1, size, out) zgsorta(in1, size[0]* size[1], 'd', out) +#define z2g2gsortz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zgsortrowa(in1, size1[0], size1[1],'d', out) :zgsortcola(in1, size1[0], size1[1],'d', out) +#define z2g2g2gsortz2(in1, size1, in2, size2, in3, size3, out) (in2[0]== 'r') ? zgsortrowa(in1, size1[0], size1[1],in3[0], out) :zgsortcola(in1, size1[0], size1[1],in3[0], out) + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_GSORT_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_mad.h b/src/c/statisticsFunctions/interfaces/int_mad.h new file mode 100644 index 00000000..956323da --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_mad.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_MAD_H__ +#define __INT_MAD_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2madd0(in1, size) dmada(in1, size[0]* size[1]) +#define d2g2madd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dmadrowa(in1, size1[0], size1[1], out) :dmadcola(in1, size1[0], size1[1], out) + +#define s2mads0(in1, size) smada(in1, size[0]* size[1]) +#define s2g2mads2(in1, size1, in2, size2, out) (in2[0]== 'r') ? smadrowa(in1, size1[0], size1[1], out) :smadcola(in1, size1[0], size1[1], out) + +#define z2madz0(in1, size) zmada(in1, size[0]* size[1]) +#define z2g2madz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zmadrowa(in1, size1[0], size1[1], out) :zmadcola(in1, size1[0], size1[1], out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_MAD_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_median.h b/src/c/statisticsFunctions/interfaces/int_median.h new file mode 100644 index 00000000..e9f3578b --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_median.h @@ -0,0 +1,39 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_MEDIAN_H__ +#define __INT_MEDIAN_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2mediand0(in1, size) dmediana(in1, size[0]* size[1]) +#define d2g2mediand2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dmedianrowa(in1, size1[0], size1[1], out) :dmediancola(in1, size1[0], size1[1], out) + +#define s2medians0(in1, size) smediana(in1, size[0]* size[1]) +#define s2g2medians2(in1, size1, in2, size2, out) (in2[0]== 'r') ? smedianrowa(in1, size1[0], size1[1], out) :smediancola(in1, size1[0], size1[1], out) + +#define u162medianu160(in1, size) u16mediana(in1, size[0]* size[1]) +#define u162g2medianu162(in1, size1, in2, size2, out) (in2[0]== 'r') ? u16medianrowa(in1, size1[0], size1[1], out) :u16mediancola(in1, size1[0], size1[1], out) + +#define z2medianz0(in1, size) zmediana(in1, size[0]* size[1]) +#define z2g2medianz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zmedianrowa(in1, size1[0], size1[1], out) :zmediancola(in1, size1[0], size1[1], out) + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_MEDIAN_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_moment.h b/src/c/statisticsFunctions/interfaces/int_moment.h new file mode 100644 index 00000000..5e9a0362 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_moment.h @@ -0,0 +1,33 @@ + /* 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_MOMENT_H__ +#define __INT_MOMENT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2d0momentd0(in1,size,in2) dmoments(in1,size[0]*size[1], in2) +#define d2d0g2momentd2(in1, size, in2, in3, size2 ,out) (in3[0] == 'r') ? dmomentrowa(in1, size[0], size[1], in2, out) : dmomentcola(in1, size[0], size[1], in2, out) + +#define s2d0moments0(in1,size,in2) smoments(in1,size[0]*size[1], in2) +#define s2d0g2moments2(in1, size, in2, in3, size2 ,out) (in3[0] == 'r') ? smomentrowa(in1, size[0], size[1], in2, out) : smomentcola(in1, size[0], size[1], in2, out) + +#define z2d0momentz0(in1,size,in2) zmoments(in1,size[0]*size[1], in2) +#define z2d0g2momentz2(in1, size, in2, in3, size2 ,out) (in3[0] == 'r') ? zmomentrowa(in1, size[0], size[1], in2, out) : zmomentcola(in1, size[0], size[1], in2, out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_MOMENT_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_mvcorrel.h b/src/c/statisticsFunctions/interfaces/int_mvcorrel.h new file mode 100644 index 00000000..481841fb --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_mvcorrel.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_MVCORREL_H__ +#define __INT_MVCORREL_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2mvcorreld2(in1, size, out) dmvcorrela(in1, size[0] ,size[1], out) +#define d2mvcorreld0(in1, size) dmvcorrel1a( size[0], size[1] ) +#define d0mvcorreld0(in1) dmvcorrel1a( 1,1 ) + +#define s2mvcorrels2(in1, size, out) smvcorrela(in1, size[0] ,size[1], out) +#define s2mvcorrels0(in1, size) smvcorrel1a( size[0], size[1] ) +#define s0mvcorrels0(in1) smvcorrel1a( 1,1 ) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_MVCORREL_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_nanmedian.h b/src/c/statisticsFunctions/interfaces/int_nanmedian.h new file mode 100644 index 00000000..6fd08b46 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_nanmedian.h @@ -0,0 +1,26 @@ + /*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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + + +#ifndef __INT_NANMEDIAN_H__ +#define __INT_NANMEDIAN_H__ + +#define d2nanmediand0(in1, size) dnanmediana(in1,size[0]* size[1]) +#define d2g2nanmediand2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanmedianrowa(in1, size1[0], size1[1], out) : dnanmediancola(in1, size1[0] , size1[1], out) + +#define s2nanmedians0(in1, size) snanmediana(in1,size[0]* size[1]) +#define s2g2nanmedians2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanmedianrowa(in1, size1[0], size1[1], out) : snanmediancola(in1, size1[0] , size1[1], out) + +#define z2nanmedianz0(in1, size) znanmediana(in1,size[0]* size[1]) +#define z2g2nanmedianz2(in1, size1, in2, size2, out) (in2[0]=='r') ? znanmedianrowa(in1, size1[0], size1[1], out) : znanmediancola(in1, size1[0] , size1[1], out) + + +#endif diff --git a/src/c/statisticsFunctions/interfaces/int_nanstdev.h b/src/c/statisticsFunctions/interfaces/int_nanstdev.h new file mode 100644 index 00000000..1d652ee1 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_nanstdev.h @@ -0,0 +1,23 @@ + /*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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + + +#ifndef __INT_NANSTDEV_H__ +#define __INT_NANSTDEV_H__ + +#define d2nanstdevd0(in1, size) dnanstdeva(in1,size[0]* size[1]) +#define d2g2nanstdevd2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanstdevrowa(in1, size1[0], size1[1], out) : dnanstdevcola(in1, size1[0] , size1[1], out) + +#define s2nanstdevs0(in1, size) snanstdeva(in1,size[0]* size[1]) +#define s2g2nanstdevs2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanstdevrowa(in1, size1[0], size1[1], out) : snanstdevcola(in1, size1[0] , size1[1], out) + + +#endif diff --git a/src/c/statisticsFunctions/interfaces/int_statMax.h b/src/c/statisticsFunctions/interfaces/int_statMax.h new file mode 100644 index 00000000..6d28186b --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_statMax.h @@ -0,0 +1,161 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */ + +#ifndef __INT_STATMAX_H__ +#define __INT_STATMAX_H__ +//#ifndef __INT_MAX_H__ +//#define __INT_MAX_H__ + +#define s0maxs0(in) in + +#define d0maxd0(in) in + +#define u80maxu80(in) (uint8)in + +#define u160maxu160(in) (uint16)in + +#define i80maxi80(in) (int8)in + +#define i160maxi160(in) (int16)in + +#define s2maxs0(in,size) smaxa(in, size[0]*size[1]) + +#define d2maxd0(in,size) dmaxa(in, size[0]*size[1]) + +#define c2maxc0(in,size) cmaxa(in, size[0]*size[1]) + +#define z2maxz0(in,size) zmaxa(in, size[0]*size[1]) + +#define u82maxu80(in,size) u8maxa(in, size[0]*size[1]) + +#define u162maxu160(in,size) u16maxa(in, size[0]*size[1]) + +#define i82maxi80(in,size) i8maxa(in, size[0]*size[1]) + +#define i162maxi160(in,size) i16maxa(in, size[0]*size[1]) + + + +#define s0s0maxs0(in1,in2) max(in1,in2) + +#define d0d0maxd0(in1,in2) max(in1,in2) + +#define u80u80maxu80(in1,in2) max(in1,in2) + +#define u160u160maxu160(in1,in2) max(in1,in2) + +#define i80i80maxi80(in1,in2) max(in1,in2) + +#define i160i160maxi160(in1,in2) max(in1,in2) + +#define s2s2maxs2(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + +#define d2d2maxd2(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + +#define u82u82maxu82(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + +#define u162u162maxu162(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + +#define i82i82maxi82(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + +#define i162i162maxi162(in1,size1,in2,size2,out) maxa(in1, size1, in2, size2, out) + + +#define s2s0maxs2(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define d2d0maxd2(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define u82u80maxu82(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define u162u160maxu162(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define i82i80maxi82(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define i162i160maxi162(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1[i],in2);\ + } + +#define s0s2maxs2(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +#define d0d2maxd2(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +#define u80u82maxu82(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +#define u160u162maxu162(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +#define i80i82maxi82(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +#define i160i162maxi162(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=max(in1,in2[i]);\ + } + +/*'r' and 'c' case */ +#define s0g2maxs0(in1,in2,size2) (in2[0]=='r') ? srowmaxs(in1) : scolumnmaxs(in1) + +#define d0g2maxd0(in1,in2,size2) (in2[0]=='r') ? drowmaxs(in1) : dcolumnmaxs(in1) + +#define c0g2maxc0(in1,in2,size2) (in2[0]=='r') ? crowmaxs(in1) : ccolumnmaxs(in1) + +#define z0g2maxz0(in1,in2,size2) (in2[0]=='r') ? zrowmaxs(in1) : zcolumnmaxs(in1) + +#define u80g2maxu80(in1,in2,size2) (in2[0]=='r') ? u8rowmaxs(in1) : u8columnmaxs(in1) + +#define u160g2maxu160(in1,in2,size2) (in2[0]=='r') ? u16rowmaxs(in1) : u16columnmaxs(in1) + +#define i80g2maxi80(in1,in2,size2) (in2[0]=='r') ? i8rowmaxs(in1) : i8columnmaxs(in1) + +#define i160g2maxi160(in1,in2,size2) (in2[0]=='r') ? i16rowmaxs(in1) : i16columnmaxs(in1) + + +#define s2g2maxs2(in1,size1,in2,size2,out) (in2[0]=='r') ? srowmaxa(in1,size1[0],size1[1],out) : scolumnmaxa(in1,size1[0],size1[1],out) + +#define d2g2maxd2(in1,size1,in2,size2,out) (in2[0]=='r') ? drowmaxa(in1,size1[0],size1[1],out) : dcolumnmaxa(in1,size1[0],size1[1],out) + +#define c2g2maxc2(in1,size1,in2,size2,out) (in2[0]=='r') ? crowmaxa(in1,size1[0],size1[1],out) : ccolumnmaxa(in1,size1[0],size1[1],out) + +#define z2g2maxz2(in1,size1,in2,size2,out) (in2[0]=='r') ? zrowmaxa(in1,size1[0],size1[1],out) : zcolumnmaxa(in1,size1[0],size1[1],out) + +#define u82g2maxu82(in1,size1,in2,size2,out) (in2[0]=='r') ? u8rowmaxa(in1,size1[0],size1[1],out) : u8columnmaxa(in1,size1[0],size1[1],out) + +#define u162g2maxu162(in1,size1,in2,size2,out) (in2[0]=='r') ? u16rowmaxa(in1,size1[0],size1[1],out) : u16columnmaxa(in1,size1[0],size1[1],out) + +#define i82g2maxi82(in1,size1,in2,size2,out) (in2[0]=='r') ? i8rowmaxa(in1,size1[0],size1[1],out) : i8columnmaxa(in1,size1[0],size1[1],out) + +#define i162g2maxi162(in1,size1,in2,size2,out) (in2[0]=='r') ? i16rowmaxa(in1,size1[0],size1[1],out) : i16columnmaxa(in1,size1[0],size1[1],out) + + + + + +#endif /* !__INT_STATMAX_H__ */ diff --git a/src/c/statisticsFunctions/interfaces/int_statMin.h b/src/c/statisticsFunctions/interfaces/int_statMin.h new file mode 100644 index 00000000..39187efe --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_statMin.h @@ -0,0 +1,162 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Bruno JOFRET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */ + +#ifndef __INT_STATMIN_H__ +#define __INT_STATMIN_H__ +//#ifndef __INT_MIN_H__ +//#define __INT_MIN_H__ + +#define s0mins0(in) in + +#define d0mind0(in) in + +#define u80minu80(in) (uint8)in + +#define u160minu160(in) (uint16)in + +#define i80mini80(in) (int8)in + +#define i160mini160(in) (int16)in + +#define s2mins0(in,size) smina(in, size[0]*size[1]) + +#define d2mind0(in,size) dmina(in, size[0]*size[1]) + +#define c2minc0(in,size) cmina(in, size[0]*size[1]) + +#define z2minz0(in,size) zmina(in, size[0]*size[1]) + +#define u82minu80(in,size) u8mina(in, size[0]*size[1]) + +#define u162minu160(in,size) u16mina(in, size[0]*size[1]) + +#define i82mini80(in,size) i8mina(in, size[0]*size[1]) + +#define i162mini160(in,size) i16mina(in, size[0]*size[1]) + + + +#define s0s0mins0(in1,in2) min(in1,in2) + +#define d0d0mind0(in1,in2) min(in1,in2) + +#define u80u80minu80(in1,in2) min(in1,in2) + +#define u160u160minu160(in1,in2) min(in1,in2) + +#define i80i80mini80(in1,in2) min(in1,in2) + +#define i160i160mini160(in1,in2) min(in1,in2) + +#define s2s2mins2(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + +#define d2d2mind2(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + +#define u82u82minu82(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + +#define u162u162minu162(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + +#define i82i82mini82(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + +#define i162i162mini162(in1,size1,in2,size2,out) mina(in1, size1, in2, size2, out) + + +#define s2s0mins2(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define d2d0mind2(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define u82u80minu82(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define u162u160minu162(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define i82i80mini82(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define i162i160mini162(in1,size,in2,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1[i],in2);\ + } + +#define s0s2mins2(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + +#define d0d2mind2(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + +#define u80u82minu82(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + +#define u160u162minu162(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + +#define i80i82mini82(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + +#define i160i162mini162(in1,in2,size,out) {int i;\ + for (i=0;i<size[0]*size[1];i++) out[i]=min(in1,in2[i]);\ + } + + +/*'r' and 'c' case */ +#define s0g2mins0(in1,in2,size2) (in2[0]=='r') ? srowmins(in1) : scolumnmins(in1) + +#define d0g2mind0(in1,in2,size2) (in2[0]=='r') ? drowmins(in1) : dcolumnmins(in1) + +#define c0g2minc0(in1,in2,size2) (in2[0]=='r') ? crowmins(in1) : ccolumnmins(in1) + +#define z0g2minz0(in1,in2,size2) (in2[0]=='r') ? zrowmins(in1) : zcolumnmins(in1) + +#define u80g2minu80(in1,in2,size2) (in2[0]=='r') ? u8rowmins(in1) : u8columnmins(in1) + +#define u160g2minu160(in1,in2,size2) (in2[0]=='r') ? u16rowmins(in1) : u16columnmins(in1) + +#define i80g2mini80(in1,in2,size2) (in2[0]=='r') ? i8rowmins(in1) : i8columnmins(in1) + +#define i160g2mini160(in1,in2,size2) (in2[0]=='r') ? i16rowmins(in1) : i16columnmins(in1) + + +#define s2g2mins2(in1,size,in2,size2,out) (in2[0]=='r') ? srowmina(in1,size[0],size[1],out) : scolumnmina(in1,size[0],size[1],out) + +#define d2g2mind2(in1,size,in2,size2,out) (in2[0]=='r') ? drowmina(in1,size[0],size[1],out) : dcolumnmina(in1,size[0],size[1],out) + +#define c2g2minc2(in1,size,in2,size2,out) (in2[0]=='r') ? crowmina(in1,size[0],size[1],out) : ccolumnmina(in1,size[0],size[1],out) + +#define z2g2minz2(in1,size,in2,size2,out) (in2[0]=='r') ? zrowmina(in1,size[0],size[1],out) : zcolumnmina(in1,size[0],size[1],out) + +#define u82g2minu82(in1,size,in2,size2,out) (in2[0]=='r') ? u8rowmina(in1,size[0],size[1],out) : u8columnmina(in1,size[0],size[1],out) + +#define u162g2minu162(in1,size,in2,size2,out) (in2[0]=='r') ? u16rowmina(in1,size[0],size[1],out) : u16columnmina(in1,size[0],size[1],out) + +#define i82g2mini82(in1,size,in2,size2,out) (in2[0]=='r') ? i8rowmina(in1,size[0],size[1],out) : i8columnmina(in1,size[0],size[1],out) + +#define i162g2mini162(in1,size,in2,size2,out) (in2[0]=='r') ? i16rowmina(in1,size[0],size[1],out) : i16columnmina(in1,size[0],size[1],out) + + + + + +#endif /* !__INT_STATMIN_H__ */ diff --git a/src/c/statisticsFunctions/interfaces/int_stdev.h b/src/c/statisticsFunctions/interfaces/int_stdev.h new file mode 100644 index 00000000..1e0b6a36 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_stdev.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#ifndef __INT_STDEV_H__ +#define __INT_STDEV_H__ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2stdevd0(in1, size) dstdeva(in1, size[0]* size[1]) +#define d2g2stdevd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dstdevrowa(in1, size1[0], size1[1], out) :dstdevcola(in1, size1[0], size1[1], out) + +#define s2stdevs0(in1, size) sstdeva(in1, size[0]* size[1]) +#define s2g2stdevs2(in1, size1, in2, size2, out) (in2[0]== 'r') ? sstdevrowa(in1, size1[0], size1[1], out) :sstdevcola(in1, size1[0], size1[1], out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_STDEV_H__*/ diff --git a/src/c/statisticsFunctions/interfaces/int_strange.h b/src/c/statisticsFunctions/interfaces/int_strange.h new file mode 100644 index 00000000..133ec2b6 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_strange.h @@ -0,0 +1,26 @@ + /*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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + + +#ifndef __INT_STRANGE_H__ +#define __INT_STRANGE_H__ + +#define d2stranged0(in1, size) dstrangea(in1,size[0]* size[1]) +#define d2g2stranged2(in1, size1, in2, size2, out) (in2[0]=='r') ? dstrangerowa(in1, size1[0], size1[1], out) : dstrangecola(in1, size1[0] , size1[1], out) + +#define s2stranges0(in1, size) sstrangea(in1,size[0]* size[1]) +#define s2g2stranges2(in1, size1, in2, size2, out) (in2[0]=='r') ? sstrangerowa(in1, size1[0], size1[1], out) : sstrangecola(in1, size1[0] , size1[1], out) + +#define u162strangeu160(in1, size) u16strangea(in1,size[0]* size[1]) +#define u162g2strangeu162(in1, size1, in2, size2, out) (in2[0]=='r') ? u16strangerowa(in1, size1[0], size1[1], out) : u16strangecola(in1, size1[0] , size1[1], out) + + +#endif diff --git a/src/c/statisticsFunctions/interfaces/int_wcenter.h b/src/c/statisticsFunctions/interfaces/int_wcenter.h new file mode 100644 index 00000000..38273af1 --- /dev/null +++ b/src/c/statisticsFunctions/interfaces/int_wcenter.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 __INT_WCENTER_H__ +#define __INT_WCENTER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define d2wcenterd2(in1,size, out) dwcentera(in1,size[0],size[1],out) +#define d2g2wcenterd2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? dwcenterrowa(in1, size[0], size[1], out) : dwcentercola(in1, size[0], size[1], out) +#define d2d0wcenterd2(in1, size, in2 ,out) (in2 == 1) ? dwcenterrowa(in1, size[0], size[1], out) : dwcentercola(in1, size[0], size[1], out) + +#define s2wcenters2(in1,size, out) swcentera(in1,size[0],size[1],out) +#define s2g2wcenters2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? swcenterrowa(in1, size[0], size[1], out) : swcentercola(in1, size[0], size[1], out) +#define s2d0wcenters2(in1, size, in2 ,out) (in2 == 1) ? swcenterrowa(in1, size[0], size[1], out) : swcentercola(in1, size[0], size[1], out) + +#define z2wcenterz2(in1,size, out) zwcentera(in1,size[0],size[1],out) +#define z2g2wcenterz2(in1, size, in2, size2 ,out) (in2[0] == 'r') ? zwcenterrowa(in1, size[0], size[1], out) : zwcentercola(in1, size[0], size[1], out) +#define z2d0wcenterz2(in1, size, in2 ,out) (in2 == 1) ? zwcenterrowa(in1, size[0], size[1], out) : zwcentercola(in1, size[0], size[1], out) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_WCENTER_H__*/ diff --git a/src/c/statisticsFunctions/mad/dmada.c b/src/c/statisticsFunctions/mad/dmada.c new file mode 100644 index 00000000..907f78a8 --- /dev/null +++ b/src/c/statisticsFunctions/mad/dmada.c @@ -0,0 +1,38 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +double dmada(double *in, int size) +{ + double fin = 0; double mean; + + mean= dmeana(in, size); + + for(int i=0; i< size; i++) + { + + fin = dadds(fin, dabss(mean-in[i])); + + } + +fin= fin/size; + + + return fin; +} diff --git a/src/c/statisticsFunctions/mad/dmadcola.c b/src/c/statisticsFunctions/mad/dmadcola.c new file mode 100644 index 00000000..381f85ca --- /dev/null +++ b/src/c/statisticsFunctions/mad/dmadcola.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void dmadcola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= dmada( inter, col); + + } +} diff --git a/src/c/statisticsFunctions/mad/dmadrowa.c b/src/c/statisticsFunctions/mad/dmadrowa.c new file mode 100644 index 00000000..2b47ba06 --- /dev/null +++ b/src/c/statisticsFunctions/mad/dmadrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void dmadrowa(double *in, int row, int col, double* out) +{ + double inter[row]; + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= dmada( inter, row); + + } + +} diff --git a/src/c/statisticsFunctions/mad/smada.c b/src/c/statisticsFunctions/mad/smada.c new file mode 100644 index 00000000..241e337d --- /dev/null +++ b/src/c/statisticsFunctions/mad/smada.c @@ -0,0 +1,38 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +float smada(float *in, int size) +{ + float fin = 0; float mean; + + mean= smeana(in, size); + + for(int i=0; i< size; i++) + { + + fin = sadds(fin, sabss(mean-in[i])); + + } + +fin= fin/size; + + + return fin; +} diff --git a/src/c/statisticsFunctions/mad/smadcola.c b/src/c/statisticsFunctions/mad/smadcola.c new file mode 100644 index 00000000..c6f5e753 --- /dev/null +++ b/src/c/statisticsFunctions/mad/smadcola.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void smadcola(float* in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= smada( inter, col); + + } +} diff --git a/src/c/statisticsFunctions/mad/smadrowa.c b/src/c/statisticsFunctions/mad/smadrowa.c new file mode 100644 index 00000000..3fbd917b --- /dev/null +++ b/src/c/statisticsFunctions/mad/smadrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "uint16.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void smadrowa(float *in, int row, int col, float* out) +{ + float inter[row]; + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= smada( inter, row); + + } + +} diff --git a/src/c/statisticsFunctions/mad/zmada.c b/src/c/statisticsFunctions/mad/zmada.c new file mode 100644 index 00000000..9531e3b7 --- /dev/null +++ b/src/c/statisticsFunctions/mad/zmada.c @@ -0,0 +1,40 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "doubleComplex.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" +#include "subtraction.h" +#include "division.h" + +doubleComplex zmada(doubleComplex *in, int size) +{ + doubleComplex fin = DoubleComplex(0,0); doubleComplex mean; + + mean= zmeana(in, size); + + for(int i=0; i< size; i++) + { + + fin = zadds(fin, zabss(zdiffs(mean,in[i]))); + + } + +fin= zrdivs(fin,size); + + + return fin; +} diff --git a/src/c/statisticsFunctions/mad/zmadcola.c b/src/c/statisticsFunctions/mad/zmadcola.c new file mode 100644 index 00000000..a70841b3 --- /dev/null +++ b/src/c/statisticsFunctions/mad/zmadcola.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "doubleComplex.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void zmadcola(doubleComplex* in, int row, int col, doubleComplex* out) +{ + doubleComplex inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= zmada( inter, col); + + } +} diff --git a/src/c/statisticsFunctions/mad/zmadrowa.c b/src/c/statisticsFunctions/mad/zmadrowa.c new file mode 100644 index 00000000..c279322c --- /dev/null +++ b/src/c/statisticsFunctions/mad/zmadrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mad.h" +#include "types.h" +#include "doubleComplex.h" +#include "mean.h" +#include "addition.h" +#include "abs.h" + +void zmadrowa(doubleComplex* in, int row, int col, doubleComplex* out) +{ + doubleComplex inter[row]; + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= zmada( inter, row); + + } + +} diff --git a/src/c/statisticsFunctions/max/dcolumnmaxa.c b/src/c/statisticsFunctions/max/dcolumnmaxa.c index ae0bbd47..ec717778 100644 --- a/src/c/statisticsFunctions/max/dcolumnmaxa.c +++ b/src/c/statisticsFunctions/max/dcolumnmaxa.c @@ -16,9 +16,10 @@ void dcolumnmaxa(double *in, int rows, int columns, double* out) { int i = 0, j = 0; for (i = 0; i < rows; i++) { - out[i]=in[i]; + out[i]=in[i*columns]; for (j=0;j<columns;j++) - if (in[i+j*rows]>out[i]) out[i] = in[i+j*rows]; + if (in[i+j*rows]>out[i]) + out[i] = in[i+j*rows]; } } diff --git a/src/c/statisticsFunctions/max/dmaxa.c b/src/c/statisticsFunctions/max/dmaxa.c index 5e2145e3..7292f3cd 100644 --- a/src/c/statisticsFunctions/max/dmaxa.c +++ b/src/c/statisticsFunctions/max/dmaxa.c @@ -18,7 +18,8 @@ double dmaxa(double *in, int size) { for (i = 1; i < size; ++i) { - if (in[i]>out) out = in[i]; + if (in[i]>out) + out = in[i]; } return out; diff --git a/src/c/statisticsFunctions/max/drowmaxa.c b/src/c/statisticsFunctions/max/drowmaxa.c index a3099231..596c535f 100644 --- a/src/c/statisticsFunctions/max/drowmaxa.c +++ b/src/c/statisticsFunctions/max/drowmaxa.c @@ -14,10 +14,11 @@ void drowmaxa(double *in, int rows, int columns, double* out) { int i = 0, j = 0; - - for (i = 0; i < columns; i++) { + for (i = 0; i < columns; i++) + { out[i]=in[i*rows]; for (j = 1 ; j < rows ; j++) - if (in[i*rows+j]>out[i]) out[i] = in[i*rows+j]; + if (in[i*rows+j]>out[i]) + out[i] = in[i*rows+j]; } } diff --git a/src/c/statisticsFunctions/max/i16columnmaxa.c b/src/c/statisticsFunctions/max/i16columnmaxa.c new file mode 100644 index 00000000..87cc579c --- /dev/null +++ b/src/c/statisticsFunctions/max/i16columnmaxa.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +void i16columnmaxa(int16 *in, int rows, int columns, int16* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(int16)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]>out[i]) + out[i] = (int16)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/max/i16maxa.c b/src/c/statisticsFunctions/max/i16maxa.c new file mode 100644 index 00000000..b2eab344 --- /dev/null +++ b/src/c/statisticsFunctions/max/i16maxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +int16 i16maxa(int16 *in, int size) { + int16 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]>out) + out = (int16)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/max/i16rowmaxa.c b/src/c/statisticsFunctions/max/i16rowmaxa.c new file mode 100644 index 00000000..46c4ae29 --- /dev/null +++ b/src/c/statisticsFunctions/max/i16rowmaxa.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +void i16rowmaxa(int16 *in, int rows, int columns, int16* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(int16)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]>out[i]) + out[i] = (int16)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/max/i8columnmaxa.c b/src/c/statisticsFunctions/max/i8columnmaxa.c new file mode 100644 index 00000000..6c7ea25c --- /dev/null +++ b/src/c/statisticsFunctions/max/i8columnmaxa.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +void i8columnmaxa(int8 *in, int rows, int columns, int8* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(int8)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]>out[i]) + out[i] = (int8)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/max/i8maxa.c b/src/c/statisticsFunctions/max/i8maxa.c new file mode 100644 index 00000000..d57b9957 --- /dev/null +++ b/src/c/statisticsFunctions/max/i8maxa.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +#include "statMax.h" + +int8 i8maxa(int8 *in, int size) { + int8 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]>out) + out = (int8)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/max/i8rowmaxa.c b/src/c/statisticsFunctions/max/i8rowmaxa.c new file mode 100644 index 00000000..677c61c7 --- /dev/null +++ b/src/c/statisticsFunctions/max/i8rowmaxa.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +void i8rowmaxa(int8 *in, int rows, int columns, int8* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(int8)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]>out[i]) + out[i] = (int8)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/max/scolumnmaxa.c b/src/c/statisticsFunctions/max/scolumnmaxa.c index 71af8460..185ab985 100644 --- a/src/c/statisticsFunctions/max/scolumnmaxa.c +++ b/src/c/statisticsFunctions/max/scolumnmaxa.c @@ -16,7 +16,7 @@ void scolumnmaxa(float *in, int rows, int columns, float* out) { int i = 0, j = 0; for (i = 0; i < rows; i++) { - out[i]=in[i]; + out[i]=in[i*columns]; for (j=0;j<columns;j++) if (in[i+j*rows]>out[i]) out[i] = in[i+j*rows]; } diff --git a/src/c/statisticsFunctions/max/smaxa.c b/src/c/statisticsFunctions/max/smaxa.c index f47fcffe..3410faea 100644 --- a/src/c/statisticsFunctions/max/smaxa.c +++ b/src/c/statisticsFunctions/max/smaxa.c @@ -9,9 +9,9 @@ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ - #include "statMax.h" + float smaxa(float *in, int size) { float out = in[0]; int i = 0; diff --git a/src/c/statisticsFunctions/max/srowmaxa.c b/src/c/statisticsFunctions/max/srowmaxa.c index c87ccf7f..8f3b30ee 100644 --- a/src/c/statisticsFunctions/max/srowmaxa.c +++ b/src/c/statisticsFunctions/max/srowmaxa.c @@ -9,9 +9,9 @@ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ - #include "statMax.h" + void srowmaxa(float *in, int rows, int columns, float* out) { int i = 0, j = 0; diff --git a/src/c/statisticsFunctions/max/testDoubleMax.c b/src/c/statisticsFunctions/max/testDoubleMax.c index 81c50324..883b427f 100644 --- a/src/c/statisticsFunctions/max/testDoubleMax.c +++ b/src/c/statisticsFunctions/max/testDoubleMax.c @@ -11,8 +11,8 @@ */ - #include "statMax.h" +//#include "max.h" #include "assert.h" #include "stdio.h" diff --git a/src/c/statisticsFunctions/max/testFloatMax.c b/src/c/statisticsFunctions/max/testFloatMax.c index 7741aef4..cb572f7e 100644 --- a/src/c/statisticsFunctions/max/testFloatMax.c +++ b/src/c/statisticsFunctions/max/testFloatMax.c @@ -13,6 +13,7 @@ #include "statMax.h" +//#include "max.h" #include "assert.h" #include "stdio.h" diff --git a/src/c/statisticsFunctions/max/u16columnmaxa.c b/src/c/statisticsFunctions/max/u16columnmaxa.c new file mode 100644 index 00000000..5b4f4236 --- /dev/null +++ b/src/c/statisticsFunctions/max/u16columnmaxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +void u16columnmaxa(uint16 *in, int rows, int columns, uint16* out) { + int i = 0, j = 0; + + + for (i = 0; i < rows; i++) { + out[i]=(uint16)in[i]; + for (j=0;j<columns;j++) + if (in[i+j*rows]>out[i]) + out[i] = (uint16)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/max/u16maxa.c b/src/c/statisticsFunctions/max/u16maxa.c new file mode 100644 index 00000000..7c9078d5 --- /dev/null +++ b/src/c/statisticsFunctions/max/u16maxa.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +#include "statMax.h" + +uint16 u16maxa(uint16 *in, int size) { + uint16 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]>out) + out = (uint16)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/max/u16rowmaxa.c b/src/c/statisticsFunctions/max/u16rowmaxa.c new file mode 100644 index 00000000..eacbe848 --- /dev/null +++ b/src/c/statisticsFunctions/max/u16rowmaxa.c @@ -0,0 +1,27 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +#include "statMax.h" + +void u16rowmaxa(uint16 *in, int rows, int columns, uint16* out) { + int i = 0, j = 0; + //out = malloc(columns*sizeof(uint16)); + for (i = 0; i < columns; i++) + { + out[i]=(uint16)in[i]; + for (j = 1 ; j < rows ; j++) + { + if (in[j*columns+i]>out[i]) + out[i] = (uint16)in[j*columns+i]; + } + } + +} diff --git a/src/c/statisticsFunctions/max/u8columnmaxa.c b/src/c/statisticsFunctions/max/u8columnmaxa.c new file mode 100644 index 00000000..ac9bc086 --- /dev/null +++ b/src/c/statisticsFunctions/max/u8columnmaxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +#include "statMax.h" + + +void u8columnmaxa(uint8 *in, int rows, int columns, uint8* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) +{ + out[i]=(uint8)in[0]; + for (j=0;j<columns;j++) + if (in[j]>out[i]) + out[i] = (uint8)in[j]; + } + +} diff --git a/src/c/statisticsFunctions/max/u8maxa.c b/src/c/statisticsFunctions/max/u8maxa.c new file mode 100644 index 00000000..3f84af41 --- /dev/null +++ b/src/c/statisticsFunctions/max/u8maxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMax.h" + +uint8 u8maxa(uint8 *in, int size) { + uint8 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]>out) + out = (uint8)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/max/u8rowmaxa.c b/src/c/statisticsFunctions/max/u8rowmaxa.c new file mode 100644 index 00000000..0ddae26d --- /dev/null +++ b/src/c/statisticsFunctions/max/u8rowmaxa.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ +#include "statMax.h" + + +void u8rowmaxa(uint8 *in, int rows, int columns, uint8* out) { + int i = 0, j = 0; + + + for (i = 0; i < columns; i++) + { + out[i]=(uint8)in[0]; + for (j = 0 ; j < rows ; j++) + { + if (in[j]>out[i]) + out[i] = (uint8)in[j]; + } + } +} diff --git a/src/c/statisticsFunctions/median/dmediana.c b/src/c/statisticsFunctions/median/dmediana.c new file mode 100644 index 00000000..8b37fd16 --- /dev/null +++ b/src/c/statisticsFunctions/median/dmediana.c @@ -0,0 +1,60 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +double dmediana(double *in, int size) +{ + double a; double fin; double in_copy[size]; +for(int i=0; i< size; i++) + in_copy[i]= in[i]; + + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + + if(size%2 ==0) + { + fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2; + } + else + { + fin= in_copy[(size-1)/2]; + } + + return fin; +} diff --git a/src/c/statisticsFunctions/median/dmediancola.c b/src/c/statisticsFunctions/median/dmediancola.c new file mode 100644 index 00000000..b3ff4fb8 --- /dev/null +++ b/src/c/statisticsFunctions/median/dmediancola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void dmediancola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= dmediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/median/dmedianrowa.c b/src/c/statisticsFunctions/median/dmedianrowa.c new file mode 100644 index 00000000..4b5879c5 --- /dev/null +++ b/src/c/statisticsFunctions/median/dmedianrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void dmedianrowa(double *in, int row, int col, double* out) +{ + double inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= dmediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/median/smediana.c b/src/c/statisticsFunctions/median/smediana.c new file mode 100644 index 00000000..0d427e10 --- /dev/null +++ b/src/c/statisticsFunctions/median/smediana.c @@ -0,0 +1,59 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +float smediana(float *in, int size) +{ + float a; float fin; float in_copy[size]; + +for(int i=0; i< size; i++) + in_copy[i]= in[i]; + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + if(size%2 ==0) + { + fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2; + } + else + { + fin= in_copy[(size-1)/2]; + } + + return fin; +} diff --git a/src/c/statisticsFunctions/median/smediancola.c b/src/c/statisticsFunctions/median/smediancola.c new file mode 100644 index 00000000..2fc4eaf1 --- /dev/null +++ b/src/c/statisticsFunctions/median/smediancola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void smediancola(float *in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= smediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/median/smedianrowa.c b/src/c/statisticsFunctions/median/smedianrowa.c new file mode 100644 index 00000000..aab59382 --- /dev/null +++ b/src/c/statisticsFunctions/median/smedianrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void smedianrowa(float *in, int row, int col, float* out) +{ + float inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= smediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/median/u16mediana.c b/src/c/statisticsFunctions/median/u16mediana.c new file mode 100644 index 00000000..85cfedce --- /dev/null +++ b/src/c/statisticsFunctions/median/u16mediana.c @@ -0,0 +1,59 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +uint16 u16mediana(uint16 *in, int size) +{ + uint16 a; uint16 fin; uint16 in_copy[size]; + +for(int i=0; i< size; i++) + in_copy[i]= in[i]; + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + if(size%2 ==0) + { + fin= (in_copy[size/2]+ in_copy[(size/2)-1])/2; + } + else + { + fin= in_copy[(size-1)/2]; + } + + return fin; +} diff --git a/src/c/statisticsFunctions/median/u16mediancola.c b/src/c/statisticsFunctions/median/u16mediancola.c new file mode 100644 index 00000000..77952a35 --- /dev/null +++ b/src/c/statisticsFunctions/median/u16mediancola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void u16mediancola(uint16 *in, int row, int col, uint16* out) +{ + uint16 inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= u16mediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/median/u16medianrowa.c b/src/c/statisticsFunctions/median/u16medianrowa.c new file mode 100644 index 00000000..8e5b98ef --- /dev/null +++ b/src/c/statisticsFunctions/median/u16medianrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" + +void u16medianrowa(uint16 *in, int row, int col, uint16* out) +{ + uint16 inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= u16mediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/median/zmediana.c b/src/c/statisticsFunctions/median/zmediana.c new file mode 100644 index 00000000..36804562 --- /dev/null +++ b/src/c/statisticsFunctions/median/zmediana.c @@ -0,0 +1,66 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" +#include "addition.h" +#include "division.h" +#include "abs.h" + +doubleComplex zmediana(doubleComplex *in, int size) +{ + doubleComplex a; doubleComplex fin; doubleComplex middle; doubleComplex in_copy[size]; + +for(int i=0; i< size; i++) + in_copy[i]= in[i]; + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (zabss(in_copy[i]) > zabss(in_copy[j])) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + + + if(size%2 ==0) + { + middle= zadds(in_copy[size/2], in_copy[(size/2)-1]); + fin= zrdivs(middle, DoubleComplex(2,0)); + } + else + { + fin= in_copy[(size-1)/2]; + } + + return fin; +} diff --git a/src/c/statisticsFunctions/median/zmediancola.c b/src/c/statisticsFunctions/median/zmediancola.c new file mode 100644 index 00000000..d709d98b --- /dev/null +++ b/src/c/statisticsFunctions/median/zmediancola.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" + +void zmediancola(doubleComplex *in, int row, int col, doubleComplex * out) +{ + doubleComplex inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= zmediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/median/zmedianrowa.c b/src/c/statisticsFunctions/median/zmedianrowa.c new file mode 100644 index 00000000..ab2e0d4a --- /dev/null +++ b/src/c/statisticsFunctions/median/zmedianrowa.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "median.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" + +void zmedianrowa(doubleComplex *in, int row, int col, doubleComplex* out) +{ + doubleComplex inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= zmediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/min/dcolumnmina.c b/src/c/statisticsFunctions/min/dcolumnmina.c index e12cb8ff..6f0b3c1a 100644 --- a/src/c/statisticsFunctions/min/dcolumnmina.c +++ b/src/c/statisticsFunctions/min/dcolumnmina.c @@ -16,7 +16,7 @@ void dcolumnmina(double *in, int rows, int columns, double* out) { int i = 0, j = 0; for (i = 0; i < rows; i++) { - out[i]=in[i]; + out[i]=in[i*columns]; for (j=0;j<columns;j++) if (in[i+j*rows]<out[i]) out[i] = in[i+j*rows]; } diff --git a/src/c/statisticsFunctions/min/i16columnmina.c b/src/c/statisticsFunctions/min/i16columnmina.c new file mode 100644 index 00000000..64ec334b --- /dev/null +++ b/src/c/statisticsFunctions/min/i16columnmina.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void i16columnmina(int16 *in, int rows, int columns, int16* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(int16)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]<out[i]) + out[i] = (int16)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/min/i16mina.c b/src/c/statisticsFunctions/min/i16mina.c new file mode 100644 index 00000000..402b946e --- /dev/null +++ b/src/c/statisticsFunctions/min/i16mina.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +int16 i16mina(int16 *in, int size) { + int16 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]<out) + out = (int16)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/min/i16rowmina.c b/src/c/statisticsFunctions/min/i16rowmina.c new file mode 100644 index 00000000..51f575a6 --- /dev/null +++ b/src/c/statisticsFunctions/min/i16rowmina.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void i16rowmina(int16 *in, int rows, int columns, int16* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(int16)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]<out[i]) + out[i] = (int16)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/min/i8columnmina.c b/src/c/statisticsFunctions/min/i8columnmina.c new file mode 100644 index 00000000..041bc9b4 --- /dev/null +++ b/src/c/statisticsFunctions/min/i8columnmina.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void i8columnmina(int8 *in, int rows, int columns, int8* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(int8)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]<out[i]) + out[i] = (int8)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/min/i8mina.c b/src/c/statisticsFunctions/min/i8mina.c new file mode 100644 index 00000000..f7acac73 --- /dev/null +++ b/src/c/statisticsFunctions/min/i8mina.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +int8 i8mina(int8 *in, int size) { + int8 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]<out) + out = (int8)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/min/i8rowmina.c b/src/c/statisticsFunctions/min/i8rowmina.c new file mode 100644 index 00000000..1c573823 --- /dev/null +++ b/src/c/statisticsFunctions/min/i8rowmina.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void i8rowmina(int8 *in, int rows, int columns, int8* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(int8)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]<out[i]) + out[i] = (int8)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/min/scolumnmina.c b/src/c/statisticsFunctions/min/scolumnmina.c index 79fac41a..8e19b1de 100644 --- a/src/c/statisticsFunctions/min/scolumnmina.c +++ b/src/c/statisticsFunctions/min/scolumnmina.c @@ -16,7 +16,7 @@ void scolumnmina(float *in, int rows, int columns, float* out) { int i = 0, j = 0; for (i = 0; i < rows; i++) { - out[i]=in[i]; + out[i]=in[i*columns]; for (j=0;j<columns;j++) if (in[i+j*rows]<out[i]) out[i] = in[i+j*rows]; } diff --git a/src/c/statisticsFunctions/min/u16columnmina.c b/src/c/statisticsFunctions/min/u16columnmina.c new file mode 100644 index 00000000..1df155d2 --- /dev/null +++ b/src/c/statisticsFunctions/min/u16columnmina.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void u16columnmina(uint16 *in, int rows, int columns, uint16* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(uint16)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]<out[i]) + out[i] = (uint16)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/min/u16mina.c b/src/c/statisticsFunctions/min/u16mina.c new file mode 100644 index 00000000..e09f0449 --- /dev/null +++ b/src/c/statisticsFunctions/min/u16mina.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +uint16 u16mina(uint16 *in, int size) { + uint16 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]<out) + out = (uint16)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/min/u16rowmina.c b/src/c/statisticsFunctions/min/u16rowmina.c new file mode 100644 index 00000000..dc4ba080 --- /dev/null +++ b/src/c/statisticsFunctions/min/u16rowmina.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "statMin.h" + +void u16rowmina(uint16 *in, int rows, int columns, uint16* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(uint16)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]<out[i]) + out[i] = (uint16)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/min/u8columnmina.c b/src/c/statisticsFunctions/min/u8columnmina.c new file mode 100644 index 00000000..07269fa4 --- /dev/null +++ b/src/c/statisticsFunctions/min/u8columnmina.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void u8columnmina(uint8 *in, int rows, int columns, uint8* out) { + int i = 0, j = 0; + + for (i = 0; i < rows; i++) { + out[i]=(uint8)in[i*columns]; + for (j=0;j<columns;j++) + if (in[i+j*rows]<out[i]) + out[i] = (uint8)in[i+j*rows]; + } + +} diff --git a/src/c/statisticsFunctions/min/u8mina.c b/src/c/statisticsFunctions/min/u8mina.c new file mode 100644 index 00000000..579d1b3c --- /dev/null +++ b/src/c/statisticsFunctions/min/u8mina.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +uint8 u8mina(uint8 *in, int size) { + uint8 out = in[0]; + int i = 0; + + for (i = 1; i < size; ++i) + { + if (in[i]<out) + out = (uint8)in[i]; + } + return out; + +} diff --git a/src/c/statisticsFunctions/min/u8rowmina.c b/src/c/statisticsFunctions/min/u8rowmina.c new file mode 100644 index 00000000..2f1de4f1 --- /dev/null +++ b/src/c/statisticsFunctions/min/u8rowmina.c @@ -0,0 +1,24 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Mushir + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "statMin.h" + +void u8rowmina(uint8 *in, int rows, int columns, uint8* out) { + int i = 0, j = 0; + + for (i = 0; i < columns; i++) { + out[i]=(uint8)in[i*rows]; + for (j = 1 ; j < rows ; j++) + if (in[i*rows+j]<out[i]) + out[i] = (uint8)in[i*rows+j]; + } +} diff --git a/src/c/statisticsFunctions/moment/dmomentcola.c b/src/c/statisticsFunctions/moment/dmomentcola.c new file mode 100644 index 00000000..538328e3 --- /dev/null +++ b/src/c/statisticsFunctions/moment/dmomentcola.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + +void dmomentcola (double* inp, int row, int col, double ord, double* out) +{ + double vect[col]; + for(int i = 0; i < row ; i++) + { + for(int j = 0; j < col ; j++) + { + vect[j] = inp[i + j*row]; + } + out[i] = dmoments(vect, col, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/dmomentrowa.c b/src/c/statisticsFunctions/moment/dmomentrowa.c new file mode 100644 index 00000000..811aac39 --- /dev/null +++ b/src/c/statisticsFunctions/moment/dmomentrowa.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + +void dmomentrowa (double* inp, int row, int col, double ord, double* out) +{ + double vect[row]; + for(int i = 0; i < col ; i++) + { + for(int j = 0; j < row ; j++) + { + vect[j] = inp[j + i*row]; + } + out[i] = dmoments(vect, row, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/dmoments.c b/src/c/statisticsFunctions/moment/dmoments.c new file mode 100644 index 00000000..779ffa0f --- /dev/null +++ b/src/c/statisticsFunctions/moment/dmoments.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + + +double dmoments (double* inp, int size, double ord) +{ + double sum = 0; + + for(int i = 0; i < size; i++) // Elements are raised to the order and then their mean is calculated to give moment + { + sum = sum + pow(inp[i], ord); + } + + return sum/size; +} diff --git a/src/c/statisticsFunctions/moment/smomentcola.c b/src/c/statisticsFunctions/moment/smomentcola.c new file mode 100644 index 00000000..4255782c --- /dev/null +++ b/src/c/statisticsFunctions/moment/smomentcola.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + +void smomentcola (float* inp, int row, int col, double ord, float* out) +{ + float vect[col]; + for(int i = 0; i < row ; i++) + { + for(int j = 0; j < col ; j++) + { + vect[j] = inp[i + j*row]; + } + out[i] = smoments(vect, col, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/smomentrowa.c b/src/c/statisticsFunctions/moment/smomentrowa.c new file mode 100644 index 00000000..574ebe76 --- /dev/null +++ b/src/c/statisticsFunctions/moment/smomentrowa.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + +void smomentrowa (float* inp, int row, int col, double ord, float* out) +{ + float vect[row]; + for(int i = 0; i < col ; i++) + { + for(int j = 0; j < row ; j++) + { + vect[j] = inp[j + i*row]; + } + out[i] = smoments(vect, row, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/smoments.c b/src/c/statisticsFunctions/moment/smoments.c new file mode 100644 index 00000000..c900d815 --- /dev/null +++ b/src/c/statisticsFunctions/moment/smoments.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" + + +float smoments (float* inp, int size, double ord) +{ + float sum = 0; + + for(int i = 0; i < size; i++) // Elements are raised to the order and then their mean is calculated to give moment + { + sum = sum + pow(inp[i], ord); + } + + return sum/size; +} diff --git a/src/c/statisticsFunctions/moment/zmomentcola.c b/src/c/statisticsFunctions/moment/zmomentcola.c new file mode 100644 index 00000000..2b3cebb1 --- /dev/null +++ b/src/c/statisticsFunctions/moment/zmomentcola.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" +#include "doubleComplex.h" +#include "floatComplex.h" + +void zmomentcola (doubleComplex* inp, int row, int col, double ord, doubleComplex* out) +{ + double vect[col]; + for(int i = 0; i < row ; i++) + { + for(int j = 0; j < col ; j++) + { + vect[j] = inp[i + j*row]; + } + out[i] = zmoments(vect, col, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/zmomentrowa.c b/src/c/statisticsFunctions/moment/zmomentrowa.c new file mode 100644 index 00000000..e1e1b47d --- /dev/null +++ b/src/c/statisticsFunctions/moment/zmomentrowa.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" +#include "doubleComplex.h" +#include "floatComplex.h" + +void zmomentrowa (doubleComplex* inp, int row, int col, double ord, doubleComplex* out) +{ + doubleComplex vect[row]; + for(int i = 0; i < col ; i++) + { + for(int j = 0; j < row ; j++) + { + vect[j] = inp[j + i*row]; + } + out[i] = zmoments(vect, row, ord); + } + +} diff --git a/src/c/statisticsFunctions/moment/zmoments.c b/src/c/statisticsFunctions/moment/zmoments.c new file mode 100644 index 00000000..b70df707 --- /dev/null +++ b/src/c/statisticsFunctions/moment/zmoments.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "moment.h" +#include "doubleComplex.h" +#include "floatComplex.h" +#include "pow.h" +#include "addition.h" +#include "division.h" + + +doubleComplex zmoments (doubleComplex* inp, int size, double ord) +{ + doubleComplex sum = DoubleComplex(0,0); + + for(int i = 0; i < size; i++) // Elements are raised to the order and then their mean is calculated to give moment + { + sum = zadds(sum,zpows(inp[i], ord)); + } + + return zrdivs(sum,size); +} diff --git a/src/c/statisticsFunctions/mvcorrel/dmvcorrel1a.c b/src/c/statisticsFunctions/mvcorrel/dmvcorrel1a.c new file mode 100644 index 00000000..9971e0fb --- /dev/null +++ b/src/c/statisticsFunctions/mvcorrel/dmvcorrel1a.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mvcorrel.h" +#include "stdlib.h" +#include "stdio.h" +#include "types.h" +#include "uint16.h" +#include "zeros.h" +#include "sum.h" +#include "ones.h" +#include "matrixMultiplication.h" +#include "matrixTranspose.h" +#include "subtraction.h" +#include "division.h" + +double dmvcorrel1a(int lx, int cx) +{ + if(lx==1 && cx==1) + return 0; + + else + return 1; +} diff --git a/src/c/statisticsFunctions/mvcorrel/dmvcorrela.c b/src/c/statisticsFunctions/mvcorrel/dmvcorrela.c new file mode 100644 index 00000000..a1bacfdc --- /dev/null +++ b/src/c/statisticsFunctions/mvcorrel/dmvcorrela.c @@ -0,0 +1,87 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mvcorrel.h" +#include "stdlib.h" +#include "stdio.h" +#include "pow.h" +#include "division.h" +#include "types.h" +#include "uint16.h" +#include "zeros.h" +#include "sum.h" +#include "ones.h" +#include "matrixMultiplication.h" +#include "matrixTranspose.h" +#include "subtraction.h" +#include "division.h" + +void dmvcorrela(double *in, int lx, int cx, double* r) +{ + double temp1[1* cx]; + double xbar[1* cx]; + double temp2[lx*1]; + double temp3[lx*cx]; + double temp4[lx*cx]; + double temp4_trans[cx*lx]; + double temp5[1* cx]; + double temp6[lx*cx]; + double std[1*cx]; + double std_trans[cx*1]; + double temp7[cx*cx]; + double temp8[cx*cx]; + + donesa ( temp2 , lx , 1 ); //temp2= ones(lx,1) + + if(lx==1) + { + dzerosa ( r , cx ,cx ); //out= zeros(lx,cx) + + } + + else + { + + drowsuma(in, lx, cx, temp1); //temp1= sum(x, "r") + + for(int i=0; i< 1*cx; i++) + xbar[i]= drdivs(temp1[i], lx); // xbar= sum(x, "r")/ lx +/* //Debug Only*/ +/* for(int i= 0; i< 1*cx; i++)*/ +/* printf("xbar[%d]= %lf\t", i, xbar[i]);*/ +/* printf("\n");*/ + + dmulma(temp2, lx,1, xbar, 1, cx, temp3 ); //temp3= ones(lx,1)*xbar + ddiffa(in, lx*cx, temp3, lx*cx, temp4); //temp4= r= x-ones(lx,1)*xbar + for(int i=0; i< lx*cx; i++) + temp6[i]= dpows(temp4[i], 2); //temp6= r.^2 + drowsuma(temp6, lx, cx, temp5); //temp5= sum(r.^2, "r") + for(int i=0; i< 1*cx; i++) + std[i]= dpows(temp5[i], 0.5); //std=(sum(r .^2,"r")) .^ (0.5) +/* //Debug Only*/ +/* for(int i= 0; i< 1*cx; i++)*/ +/* printf("std[%d]= %lf\t", i, std[i]);*/ +/* printf("\n"); */ + dtransposea ( temp4 , lx , cx, temp4_trans); //temp4_trans= r' + dtransposea ( std , 1 , cx, std_trans); //std_trans= std' + dmulma(temp4_trans, cx,lx, temp4, lx, cx, temp7 ); //temp7= r'*r + dmulma(std_trans, cx, 1, std, 1,cx, temp8); //temp8= std'*std + + drdiva (temp7, temp8, cx*cx, r); // r=(r'*r) ./ (std'*std) + + + } + + + +} diff --git a/src/c/statisticsFunctions/mvcorrel/smvcorrel1a.c b/src/c/statisticsFunctions/mvcorrel/smvcorrel1a.c new file mode 100644 index 00000000..345ce601 --- /dev/null +++ b/src/c/statisticsFunctions/mvcorrel/smvcorrel1a.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mvcorrel.h" +#include "stdlib.h" +#include "stdio.h" +#include "types.h" +#include "uint16.h" +#include "zeros.h" +#include "sum.h" +#include "ones.h" +#include "matrixMultiplication.h" +#include "matrixTranspose.h" +#include "subtraction.h" +#include "division.h" + +float smvcorrel1a(int lx, int cx) +{ + if(lx==1 && cx==1) + return 0; + + else + return 1; +} diff --git a/src/c/statisticsFunctions/mvcorrel/smvcorrela.c b/src/c/statisticsFunctions/mvcorrel/smvcorrela.c new file mode 100644 index 00000000..8894ceeb --- /dev/null +++ b/src/c/statisticsFunctions/mvcorrel/smvcorrela.c @@ -0,0 +1,87 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "mvcorrel.h" +#include "stdlib.h" +#include "stdio.h" +#include "types.h" +#include "pow.h" +#include "uint16.h" +#include "zeros.h" +#include "sum.h" +#include "ones.h" +#include "matrixMultiplication.h" +#include "division.h" +#include "matrixTranspose.h" +#include "subtraction.h" +#include "division.h" + +void smvcorrela(float *in, int lx, int cx, float* r) +{ + float temp1[1* cx]; + float xbar[1* cx]; + float temp2[lx*1]; + float temp3[lx*cx]; + float temp4[lx*cx]; + float temp4_trans[cx*lx]; + float temp5[1* cx]; + float temp6[lx*cx]; + float std[1*cx]; + float std_trans[cx*1]; + float temp7[cx*cx]; + float temp8[cx*cx]; + + sonesa ( temp2 , lx , 1 ); //temp2= ones(lx,1) + + if(lx==1) + { + szerosa ( r , cx ,cx ); //out= zeros(lx,cx) + + } + + else + { + + srowsuma(in, lx, cx, temp1); //temp1= sum(x, "r") + + for(int i=0; i< 1*cx; i++) + xbar[i]= srdivs(temp1[i], lx); // xbar= sum(x, "r")/ lx +/* //Debug Only*/ +/* for(int i= 0; i< 1*cx; i++)*/ +/* printf("xbar[%d]= %lf\t", i, xbar[i]);*/ +/* printf("\n");*/ + + smulma(temp2, lx,1, xbar, 1, cx, temp3 ); //temp3= ones(lx,1)*xbar + sdiffa(in, lx*cx, temp3, lx*cx, temp4); //temp4= r= x-ones(lx,1)*xbar + for(int i=0; i< lx*cx; i++) + temp6[i]= spows(temp4[i], 2); //temp6= r.^2 + srowsuma(temp6, lx, cx, temp5); //temp5= sum(r.^2, "r") + for(int i=0; i< 1*cx; i++) + std[i]= spows(temp5[i], 0.5); //std=(sum(r .^2,"r")) .^ (0.5) +/* //Debug Only*/ +/* for(int i= 0; i< 1*cx; i++)*/ +/* printf("std[%d]= %lf\t", i, std[i]);*/ +/* printf("\n"); */ + stransposea ( temp4 , lx , cx, temp4_trans); //temp4_trans= r' + stransposea ( std , 1 , cx, std_trans); //std_trans= std' + smulma(temp4_trans, cx,lx, temp4, lx, cx, temp7 ); //temp7= r'*r + smulma(std_trans, cx, 1, std, 1,cx, temp8); //temp8= std'*std + + srdiva (temp7, temp8, cx*cx, r); // r=(r'*r) ./ (std'*std) + + + } + + + +} diff --git a/src/c/statisticsFunctions/nanmedian/dnanmediana.c b/src/c/statisticsFunctions/nanmedian/dnanmediana.c new file mode 100644 index 00000000..0fb7de12 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/dnanmediana.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "nanmedian.h" +#include "median.h" +#include "types.h" +double dnanmediana(double* in, int size) +{ + +double temp[size]; +double out; +int j=0; + +double a= 0.0/0.0; + + + + for(int i=0; i< size; i++) + { + if( !(isnan(in[i])) ) + { + temp[j]= in[i]; + j=j+1; + + + } + + + } + + +out= dmediana(temp, j); + +if(j=0) +return a; +else +return out; + +} diff --git a/src/c/statisticsFunctions/nanmedian/dnanmediancola.c b/src/c/statisticsFunctions/nanmedian/dnanmediancola.c new file mode 100644 index 00000000..37b3f128 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/dnanmediancola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "types.h" +#include "uint16.h" + +void dnanmediancola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= dnanmediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/nanmedian/dnanmedianrowa.c b/src/c/statisticsFunctions/nanmedian/dnanmedianrowa.c new file mode 100644 index 00000000..d24ba828 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/dnanmedianrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "types.h" +#include "uint16.h" + +void dnanmedianrowa(double *in, int row, int col, double* out) +{ + double inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= dnanmediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/nanmedian/snanmediana.c b/src/c/statisticsFunctions/nanmedian/snanmediana.c new file mode 100644 index 00000000..cddb990e --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/snanmediana.c @@ -0,0 +1,49 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "nanmedian.h" +#include "median.h" +#include "types.h" +float snanmediana(float* in, int size) +{ + +float temp[size]; +float out; +int j=0; + +float a= 0.0/0.0; + + for(int i=0; i< size; i++) + { + if( !(isnan(in[i])) ) + { + temp[j]= in[i]; + j=j+1; + + + } + + + } + + +out= smediana(temp, j); + +if(j=0) +return a; +else +return out; + +} diff --git a/src/c/statisticsFunctions/nanmedian/snanmediancola.c b/src/c/statisticsFunctions/nanmedian/snanmediancola.c new file mode 100644 index 00000000..a8077f19 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/snanmediancola.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "mean.h" +#include "types.h" +#include "uint16.h" + +void snanmediancola(float *in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= snanmediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/nanmedian/snanmedianrowa.c b/src/c/statisticsFunctions/nanmedian/snanmedianrowa.c new file mode 100644 index 00000000..47425e0f --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/snanmedianrowa.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "mean.h" +#include "types.h" +#include "uint16.h" + +void snanmedianrowa(float *in, int row, int col, float* out) +{ + float inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= snanmediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/nanmedian/znanmediana.c b/src/c/statisticsFunctions/nanmedian/znanmediana.c new file mode 100644 index 00000000..bfc1fe46 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/znanmediana.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "nanmedian.h" +#include "median.h" +#include "types.h" +#include "doubleComplex.h" + +doubleComplex znanmediana(doubleComplex* in, int size) +{ + +doubleComplex temp[size]; +doubleComplex out; +int j=0; + +float a= 0.0/0.0; + + for(int i=0; i< size; i++) + { + if( !(zreals(in[i])) && !(zimags(in[i])) ) + { + temp[j]= in[i]; + j=j+1; + + + } + + + } + + +out= zmediana(temp, j); + +if(j=0) +return a; +else +return out; + +} diff --git a/src/c/statisticsFunctions/nanmedian/znanmediancola.c b/src/c/statisticsFunctions/nanmedian/znanmediancola.c new file mode 100644 index 00000000..0aaeba02 --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/znanmediancola.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "mean.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" + +void znanmediancola(doubleComplex *in, int row, int col, doubleComplex* out) +{ + doubleComplex inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= znanmediana( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/nanmedian/znanmedianrowa.c b/src/c/statisticsFunctions/nanmedian/znanmedianrowa.c new file mode 100644 index 00000000..d0e470fa --- /dev/null +++ b/src/c/statisticsFunctions/nanmedian/znanmedianrowa.c @@ -0,0 +1,38 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanmedian.h" +#include "mean.h" +#include "types.h" +#include "uint16.h" +#include "doubleComplex.h" + +void znanmedianrowa(doubleComplex* in, int row, int col, doubleComplex* out) +{ + doubleComplex inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= znanmediana( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdeva.c b/src/c/statisticsFunctions/nanstdev/dnanstdeva.c new file mode 100644 index 00000000..05b54339 --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/dnanstdeva.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "nanstdev.h" +#include "stdev.h" +#include "types.h" +double dnanstdeva(double* in, int size) +{ + +double temp[size]; +double out; +int j=0; + +double a= 0.0/0.0; + + + + for(int i=0; i< size; i++) + { + if( !(isnan(in[i])) ) + { + temp[j]= in[i]; + j=j+1; + + + } + + + } + + +out= dstdeva(temp, j); + +if(j=0) +return a; +else +return out; + +} diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c b/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c new file mode 100644 index 00000000..a6704b09 --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/dnanstdevcola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanstdev.h" +#include "types.h" +#include "uint16.h" + +void dnanstdevcola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= dnanstdeva( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c b/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c new file mode 100644 index 00000000..52a1722e --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/dnanstdevrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanstdev.h" +#include "types.h" +#include "uint16.h" + +void dnanstdevrowa(double *in, int row, int col, double* out) +{ + double inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= dnanstdeva( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/nanstdev/snanstdeva.c b/src/c/statisticsFunctions/nanstdev/snanstdeva.c new file mode 100644 index 00000000..3e6ab154 --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/snanstdeva.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "nanstdev.h" +#include "stdev.h" +#include "types.h" +float snanstdeva(float* in, int size) +{ + +float temp[size]; +float out; +int j=0; + +double a= 0.0/0.0; + + + + for(int i=0; i< size; i++) + { + if( !(isnan(in[i])) ) + { + temp[j]= in[i]; + j=j+1; + + + } + + + } + + +out= sstdeva(temp, j); + +if(j=0) +return a; +else +return out; + +} diff --git a/src/c/statisticsFunctions/nanstdev/snanstdevcola.c b/src/c/statisticsFunctions/nanstdev/snanstdevcola.c new file mode 100644 index 00000000..987cb3fd --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/snanstdevcola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanstdev.h" +#include "types.h" +#include "uint16.h" + +void snanstdevcola(float *in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= snanstdeva( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c b/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c new file mode 100644 index 00000000..9c08682e --- /dev/null +++ b/src/c/statisticsFunctions/nanstdev/snanstdevrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "nanstdev.h" +#include "types.h" +#include "uint16.h" + +void snanstdevrowa(float *in, int row, int col, float* out) +{ + float inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= snanstdeva( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/stdev/dstdeva.c b/src/c/statisticsFunctions/stdev/dstdeva.c new file mode 100644 index 00000000..73a4bec4 --- /dev/null +++ b/src/c/statisticsFunctions/stdev/dstdeva.c @@ -0,0 +1,29 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include <math.h> +#include "mean.h" +#include "pow.h" +#include "variance.h" +#include "types.h" +#include "uint16.h" + +double dstdeva(double *in, int size) +{ + double variance = dvariancea(in, size); + + return dpows(variance, 0.5); + + +} diff --git a/src/c/statisticsFunctions/stdev/dstdevcola.c b/src/c/statisticsFunctions/stdev/dstdevcola.c new file mode 100644 index 00000000..cdce81a3 --- /dev/null +++ b/src/c/statisticsFunctions/stdev/dstdevcola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include "types.h" +#include "uint16.h" + +void dstdevcola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= dstdeva( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/stdev/dstdevrowa.c b/src/c/statisticsFunctions/stdev/dstdevrowa.c new file mode 100644 index 00000000..a4cf40ca --- /dev/null +++ b/src/c/statisticsFunctions/stdev/dstdevrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include "types.h" +#include "uint16.h" + +void dstdevrowa(double *in, int row, int col, double* out) +{ + double inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= dstdeva( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/stdev/sstdeva.c b/src/c/statisticsFunctions/stdev/sstdeva.c new file mode 100644 index 00000000..db76d95d --- /dev/null +++ b/src/c/statisticsFunctions/stdev/sstdeva.c @@ -0,0 +1,29 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include <math.h> +#include "mean.h" +#include "pow.h" +#include "variance.h" +#include "types.h" +#include "uint16.h" + +float sstdeva(float *in, int size) +{ + float variance = svariancea(in, size); + + return spows(variance, 0.5); + + +} diff --git a/src/c/statisticsFunctions/stdev/sstdevcola.c b/src/c/statisticsFunctions/stdev/sstdevcola.c new file mode 100644 index 00000000..c72b4a5a --- /dev/null +++ b/src/c/statisticsFunctions/stdev/sstdevcola.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include "types.h" +#include "uint16.h" + +void sstdevcola(float *in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + out[i]= sstdeva( inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/stdev/sstdevrowa.c b/src/c/statisticsFunctions/stdev/sstdevrowa.c new file mode 100644 index 00000000..415d409f --- /dev/null +++ b/src/c/statisticsFunctions/stdev/sstdevrowa.c @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "stdev.h" +#include "types.h" +#include "uint16.h" + +void sstdevrowa(float *in, int row, int col, float* out) +{ + float inter[row]; + + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + out[i]= sstdeva( inter, row); + + } + + +} diff --git a/src/c/statisticsFunctions/strange/dstrangea.c b/src/c/statisticsFunctions/strange/dstrangea.c new file mode 100644 index 00000000..9dc94fe0 --- /dev/null +++ b/src/c/statisticsFunctions/strange/dstrangea.c @@ -0,0 +1,60 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "subtraction.h" + +double dstrangea(double *in, int size) +{ + double a; double in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + + +return ddiffs(in_copy[size-1],in_copy[0]); + +} diff --git a/src/c/statisticsFunctions/strange/dstrangecola.c b/src/c/statisticsFunctions/strange/dstrangecola.c new file mode 100644 index 00000000..d6a11e3d --- /dev/null +++ b/src/c/statisticsFunctions/strange/dstrangecola.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void dstrangecola(double *in, int row, int col, double* out) +{ + double inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + + out[i]= dstrangea(inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/strange/dstrangerowa.c b/src/c/statisticsFunctions/strange/dstrangerowa.c new file mode 100644 index 00000000..f63df35c --- /dev/null +++ b/src/c/statisticsFunctions/strange/dstrangerowa.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" + +void dstrangerowa(double *in, int row, int col, double* out) +{ + double inter[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + + out[i]= dstrangea(inter, row); + } + + +} diff --git a/src/c/statisticsFunctions/strange/sstrangea.c b/src/c/statisticsFunctions/strange/sstrangea.c new file mode 100644 index 00000000..f79b00af --- /dev/null +++ b/src/c/statisticsFunctions/strange/sstrangea.c @@ -0,0 +1,60 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "subtraction.h" + +float sstrangea(float *in, int size) +{ + float a; float in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + + +return sdiffs(in_copy[size-1],in_copy[0]); + +} diff --git a/src/c/statisticsFunctions/strange/sstrangecola.c b/src/c/statisticsFunctions/strange/sstrangecola.c new file mode 100644 index 00000000..4c8e90a4 --- /dev/null +++ b/src/c/statisticsFunctions/strange/sstrangecola.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void sstrangecola(float *in, int row, int col, float* out) +{ + float inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + + out[i]= sstrangea(inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/strange/sstrangerowa.c b/src/c/statisticsFunctions/strange/sstrangerowa.c new file mode 100644 index 00000000..50c1165c --- /dev/null +++ b/src/c/statisticsFunctions/strange/sstrangerowa.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" + +void sstrangerowa(float *in, int row, int col, float* out) +{ + float inter[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + + out[i]= sstrangea(inter, row); + } + + +} diff --git a/src/c/statisticsFunctions/strange/u16strangea.c b/src/c/statisticsFunctions/strange/u16strangea.c new file mode 100644 index 00000000..66b31fb1 --- /dev/null +++ b/src/c/statisticsFunctions/strange/u16strangea.c @@ -0,0 +1,60 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "subtraction.h" + +uint16 u16strangea(uint16 *in, int size) +{ + uint16 a; uint16 in_copy[size]; + + for(int i=0; i< size; i++) + + { + in_copy[i]= in[i]; + + } + + + + for (int i = 0; i < size; ++i) + + { + + for (int j = i + 1; j < size; ++j) + + { + + if (in_copy[i] > in_copy[j]) + + { + + a = in_copy[i]; + + in_copy[i] = in_copy[j]; + + in_copy[j] = a; + + } + + } + + } + + + +return u16diffs(in_copy[size-1],in_copy[0]); + +} diff --git a/src/c/statisticsFunctions/strange/u16strangecola.c b/src/c/statisticsFunctions/strange/u16strangecola.c new file mode 100644 index 00000000..69783607 --- /dev/null +++ b/src/c/statisticsFunctions/strange/u16strangecola.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" +#include "stdio.h" + +void u16strangecola(uint16 *in, int row, int col, uint16* out) +{ + uint16 inter[col]; + + +for(int i=0; i< row; i++) + { + for(int j=0 ; j< col; j++) + { + inter[j]= in[i+ (j*row)]; + + } + + out[i]= u16strangea(inter, col); + + } + + +} diff --git a/src/c/statisticsFunctions/strange/u16strangerowa.c b/src/c/statisticsFunctions/strange/u16strangerowa.c new file mode 100644 index 00000000..b7f878d0 --- /dev/null +++ b/src/c/statisticsFunctions/strange/u16strangerowa.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - 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: Abhinav Dronamraju + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "strange.h" +#include "types.h" +#include "uint16.h" + +void u16strangerowa(uint16 *in, int row, int col, uint16* out) +{ + uint16 inter[row]; + + +for(int i=0; i< col; i++) + { + for(int j=0 ; j< row; j++) + { + inter[j]= in[j+ (i*row)]; + + } + + out[i]= u16strangea(inter, row); + } + + +} diff --git a/src/c/statisticsFunctions/sum/i16columnsuma.c b/src/c/statisticsFunctions/sum/i16columnsuma.c new file mode 100644 index 00000000..a34cea13 --- /dev/null +++ b/src/c/statisticsFunctions/sum/i16columnsuma.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void i16columnsuma(int16 *in, int lines, int columns, int16 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < lines; ++i) + { + out[i] = (int16)in[i]; + } + /* + ** Then accumulate in each row. + */ + for (i = lines ; i < lines * columns ; ++i) + { + out[i % lines] = (int16)i16adds(out[i % lines] , in[i]); + } +} diff --git a/src/c/statisticsFunctions/sum/i16rowsuma.c b/src/c/statisticsFunctions/sum/i16rowsuma.c new file mode 100644 index 00000000..03d8ff29 --- /dev/null +++ b/src/c/statisticsFunctions/sum/i16rowsuma.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void i16rowsuma(int16 *in, int lines, int columns, int16 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < columns; ++i) + { + out[i] = (int16)in[i * lines]; + } + /* + ** Then accumulate in each column. + */ + for (i = 1 ; i <= (lines - 1) * columns ; ++i) + { + out[(i - 1) % columns] = (int16)i16adds( out[(i - 1) % columns] , + in[((i - 1) % columns) * lines + 1 + (i - 1) / columns]); + } +} diff --git a/src/c/statisticsFunctions/sum/i16suma.c b/src/c/statisticsFunctions/sum/i16suma.c new file mode 100644 index 00000000..f5d08093 --- /dev/null +++ b/src/c/statisticsFunctions/sum/i16suma.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +int16 i16suma(int16 *in, int size) { + //floatComplex accumulate = FloatComplex(0.0f, 0.0f); + int i = 0; + int16 accumulate = 0; + + for (i = 0; i < size; ++i) + { + accumulate = i16adds(accumulate, in[i]); + } + return accumulate; +} diff --git a/src/c/statisticsFunctions/sum/i8columnsuma.c b/src/c/statisticsFunctions/sum/i8columnsuma.c new file mode 100644 index 00000000..bb79897c --- /dev/null +++ b/src/c/statisticsFunctions/sum/i8columnsuma.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void i8columnsuma(int8 *in, int lines, int columns, int8 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < lines; ++i) + { + out[i] = (int8)in[i]; + } + /* + ** Then accumulate in each row. + */ + for (i = lines ; i < lines * columns ; ++i) + { + out[i % lines] = (int8)i8adds(out[i % lines] , in[i]); + } +} diff --git a/src/c/statisticsFunctions/sum/i8rowsuma.c b/src/c/statisticsFunctions/sum/i8rowsuma.c new file mode 100644 index 00000000..2008f32d --- /dev/null +++ b/src/c/statisticsFunctions/sum/i8rowsuma.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void i8rowsuma(int8 *in, int lines, int columns, int8 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < columns; ++i) + { + out[i] = (int8)in[i * lines]; + } + /* + ** Then accumulate in each column. + */ + for (i = 1 ; i <= (lines - 1) * columns ; ++i) + { + out[(i - 1) % columns] = (int8)i8adds( out[(i - 1) % columns] , + in[((i - 1) % columns) * lines + 1 + (i - 1) / columns]); + } +} diff --git a/src/c/statisticsFunctions/sum/i8suma.c b/src/c/statisticsFunctions/sum/i8suma.c new file mode 100644 index 00000000..468a98b9 --- /dev/null +++ b/src/c/statisticsFunctions/sum/i8suma.c @@ -0,0 +1,27 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +int8 i8suma(int8 *in, int size) { + //floatComplex accumulate = FloatComplex(0.0f, 0.0f); + int8 accumulate = 0; + + int i = 0; + + for (i = 0; i < size; ++i) + { + accumulate = i8adds(accumulate, in[i]); + } + return accumulate; +} diff --git a/src/c/statisticsFunctions/sum/u16columnsuma.c b/src/c/statisticsFunctions/sum/u16columnsuma.c new file mode 100644 index 00000000..82b07757 --- /dev/null +++ b/src/c/statisticsFunctions/sum/u16columnsuma.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + + +#include "sum.h" + +void u16columnsuma(uint16 *in, int lines, int columns, uint16 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < lines; ++i) + { + out[i] = (uint16)in[i]; + } + /* + ** Then accumulate in each row. + */ + for (i = lines ; i < lines * columns ; ++i) + { + out[i % lines] = (uint16)u16adds(out[i % lines] , in[i]); + } +} diff --git a/src/c/statisticsFunctions/sum/u16rowsuma.c b/src/c/statisticsFunctions/sum/u16rowsuma.c new file mode 100644 index 00000000..535e302f --- /dev/null +++ b/src/c/statisticsFunctions/sum/u16rowsuma.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "sum.h" + +void u16rowsuma(uint16 *in, int lines, int columns, uint16 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < columns; ++i) + { + out[i] = (uint16)in[i * lines]; + } + /* + ** Then accumulate in each column. + */ + for (i = 1 ; i <= (lines - 1) * columns ; ++i) + { + out[(i - 1) % columns] = (uint16)u16adds( out[(i - 1) % columns] , + in[((i - 1) % columns) * lines + 1 + (i - 1) / columns]); + } +} diff --git a/src/c/statisticsFunctions/sum/u16suma.c b/src/c/statisticsFunctions/sum/u16suma.c new file mode 100644 index 00000000..5e5620c1 --- /dev/null +++ b/src/c/statisticsFunctions/sum/u16suma.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include "sum.h" + +uint16 u16suma(uint16 *in, int size) { + //floatComplex accumulate = FloatComplex(0.0f, 0.0f); + int i = 0; + uint16 accumulate = 0; + + for (i = 0; i < size; ++i) + { + accumulate = u16adds(accumulate, in[i]); + } + return accumulate; +} diff --git a/src/c/statisticsFunctions/sum/u8columnsuma.c b/src/c/statisticsFunctions/sum/u8columnsuma.c new file mode 100644 index 00000000..f3e30411 --- /dev/null +++ b/src/c/statisticsFunctions/sum/u8columnsuma.c @@ -0,0 +1,34 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void u8columnsuma(uint8 *in, int lines, int columns, uint8 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < lines; ++i) + { + out[i] = (uint8)in[i]; + } + /* + ** Then accumulate in each row. + */ + for (i = lines ; i < lines * columns ; ++i) + { + out[i % lines] = (uint8)u8adds(out[i % lines] , in[i]); + } +} diff --git a/src/c/statisticsFunctions/sum/u8rowsuma.c b/src/c/statisticsFunctions/sum/u8rowsuma.c new file mode 100644 index 00000000..53a49442 --- /dev/null +++ b/src/c/statisticsFunctions/sum/u8rowsuma.c @@ -0,0 +1,35 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +void u8rowsuma(uint8 *in, int lines, int columns, uint8 * out) { + int i = 0; + + /* + ** First assign first row, just in case + ** out contains non-zero's elements. + */ + for (i = 0 ; i < columns; ++i) + { + out[i] = (uint8)in[i * lines]; + } + /* + ** Then accumulate in each column. + */ + for (i = 1 ; i <= (lines - 1) * columns ; ++i) + { + out[(i - 1) % columns] = (uint8)u8adds( out[(i - 1) % columns] , + in[((i - 1) % columns) * lines + 1 + (i - 1) / columns]); + } +} diff --git a/src/c/statisticsFunctions/sum/u8suma.c b/src/c/statisticsFunctions/sum/u8suma.c new file mode 100644 index 00000000..e5febef1 --- /dev/null +++ b/src/c/statisticsFunctions/sum/u8suma.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + This file must be used under the terms of the CeCILL. + This source file is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at + http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + Author: Siddhesh Wani + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + + +#include "sum.h" + +uint8 u8suma(uint8 *in, int size) { + //floatComplex accumulate = FloatComplex(0.0f, 0.0f); + int i = 0; + uint8 accumulate = 0; + + for (i = 0; i < size; ++i) + { + accumulate = u8adds(accumulate, in[i]); + } + return accumulate; +} diff --git a/src/c/statisticsFunctions/wcenter/dwcentera.c b/src/c/statisticsFunctions/wcenter/dwcentera.c new file mode 100644 index 00000000..5c05cc86 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/dwcentera.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "multiplication.h" +#include "wcenter.h" + +void dwcentera (double* inp, int row, int col, double* out) +{ + double sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum += inp[i]; + xbar = sum/(row*col); + + double one[row*col]; // Creating a matrix of ones + donesa(one,row,col); + + double prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = one[i]*xbar; + + for(int i = 0; i < row*col; i++) + out[i] = inp[i] - prod[i]; + + sum = 0; + for(int i = 0; i < row*col; i++) + sum = sum + out[i]*out[i]; + + sigma = sqrt(sum/(row*col-1)); + + for(int i = 0; i < row*col; i++) + out[i] = out[i]/sigma; +} diff --git a/src/c/statisticsFunctions/wcenter/dwcentercola.c b/src/c/statisticsFunctions/wcenter/dwcentercola.c new file mode 100644 index 00000000..ab82acfe --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/dwcentercola.c @@ -0,0 +1,64 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "wcenter.h" + +void dwcentercola (double* inp, int row, int col, double* out) +{ + + double sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = 0; + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += inp[i + j*row]; + } + } + + //for(int i = 0; i < row; i++) + //printf("%lf \n",sum[i]); + + for(int i = 0; i < row; i++) + xbar[i] = sum[i]/col; + + double one[col]; // Creating a matrix of ones + donesa(one,1,col); + + + double prod[row*col]; + dmulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; + + for(int i = 0; i < row; i++) + sum[i] = 0; + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += out[i + j*row] * out[i + j*row]; + } + } + + double sigma[row]; + for(int i = 0; i < row; i++) + sigma[i] = sqrt(sum[i]/(col-1)); + + for(int i = 0; i < row*col; i++) + prod[i] = 0; + + dmulma(sigma, row, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = out[i] / prod[i]; + +} diff --git a/src/c/statisticsFunctions/wcenter/dwcenterrowa.c b/src/c/statisticsFunctions/wcenter/dwcenterrowa.c new file mode 100644 index 00000000..72e37931 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/dwcenterrowa.c @@ -0,0 +1,68 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "wcenter.h" + +void dwcenterrowa (double* inp, int row, int col, double* out) +{ + + double sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = 0; + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += inp[j + i*row]; + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = sum[i]/row; + + double one[row]; // Creating a matrix of ones + donesa(one,row,1); + + double prod[row*col]; + dmulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; + + + for(int i = 0; i < col; i++) + sum[i] = 0; + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += out[j + i*row] * out[j + i*row]; + } + } + + + + double sigma[col]; + for(int i = 0; i < col; i++) + sigma[i] = sqrt(sum[i]/(row-1)); + + + for(int i = 0; i < row*col; i++) + prod[i] = 0; + + dmulma(one, row, 1, sigma, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = out[i] / prod[i]; + +} diff --git a/src/c/statisticsFunctions/wcenter/swcentera.c b/src/c/statisticsFunctions/wcenter/swcentera.c new file mode 100644 index 00000000..91206fcf --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/swcentera.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "multiplication.h" +#include "wcenter.h" + +void swcentera (float* inp, int row, int col, float* out) +{ + float sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum += inp[i]; + xbar = sum/(row*col); + + float one[row*col]; // Creating a matrix of ones + sonesa(one,row,col); + + float prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = one[i]*xbar; + + for(int i = 0; i < row*col; i++) + out[i] = inp[i] - prod[i]; + + sum = 0; + for(int i = 0; i < row*col; i++) + sum = sum + out[i]*out[i]; + + sigma = sqrt(sum/(row*col-1)); + + for(int i = 0; i < row*col; i++) + out[i] = out[i]/sigma; +} diff --git a/src/c/statisticsFunctions/wcenter/swcentercola.c b/src/c/statisticsFunctions/wcenter/swcentercola.c new file mode 100644 index 00000000..6fafe9f9 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/swcentercola.c @@ -0,0 +1,61 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "wcenter.h" + +void swcentercola (float* inp, int row, int col, float* out) +{ + + float sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = 0; + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += inp[i + j*row]; + } + } + + for(int i = 0; i < row; i++) + xbar[i] = sum[i]/col; + + float one[col]; // Creating a matrix of ones + sonesa(one,1,col); + + + float prod[row*col]; + smulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; + + for(int i = 0; i < row; i++) + sum[i] = 0; + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] += out[i + j*row] * out[i + j*row]; + } + } + + float sigma[row]; + for(int i = 0; i < row; i++) + sigma[i] = sqrt(sum[i]/(col-1)); + + for(int i = 0; i < row*col; i++) + prod[i] = 0; + + smulma(sigma, row, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = out[i] / prod[i]; + +} diff --git a/src/c/statisticsFunctions/wcenter/swcenterrowa.c b/src/c/statisticsFunctions/wcenter/swcenterrowa.c new file mode 100644 index 00000000..ce1df2e9 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/swcenterrowa.c @@ -0,0 +1,68 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "subtraction.h" +#include "matrixMultiplication.h" +#include "wcenter.h" + +void swcenterrowa (float* inp, int row, int col, float* out) +{ + + float sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = 0; + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += inp[j + i*row]; + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = sum[i]/row; + + float one[row]; // Creating a matrix of ones + sonesa(one,row,1); + + float prod[row*col]; + smulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = inp[i] - prod[i]; + + + for(int i = 0; i < col; i++) + sum[i] = 0; + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] += out[j + i*row] * out[j + i*row]; + } + } + + + + float sigma[col]; + for(int i = 0; i < col; i++) + sigma[i] = sqrt(sum[i]/(row-1)); + + + for(int i = 0; i < row*col; i++) + prod[i] = 0; + + smulma(one, row, 1, sigma, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = out[i] / prod[i]; + +} diff --git a/src/c/statisticsFunctions/wcenter/zwcentera.c b/src/c/statisticsFunctions/wcenter/zwcentera.c new file mode 100644 index 00000000..8571dd62 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/zwcentera.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "wcenter.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zwcentera (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + doubleComplex sum = 0, xbar = 0, sigma = 0; + for(int i = 0; i < row*col; i++) // Findinag the maen of all the elements of the matrix + sum = zadds(sum,inp[i]); + xbar = zrdivs(sum,(row*col)); + + doubleComplex one[row*col]; // Creating a matrix of ones + zonesa(one,row,col); + + doubleComplex prod[row*col]; + for(int i = 0; i < row*col; i++) // Applying the formula (x(i,j)-xbar)/sigma + prod[i] = zmuls(one[i],xbar); + + for(int i = 0; i < row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); + + sum = DoubleComplex(0,0); + for(int i = 0; i < row*col; i++) + sum = zadds(sum, zmuls(out[i],out[i])); + + sigma = zsqrts(zrdivs(sum,(row*col-1))); + + for(int i = 0; i < row*col; i++) + out[i] = zrdivs(out[i],sigma); +} diff --git a/src/c/statisticsFunctions/wcenter/zwcentercola.c b/src/c/statisticsFunctions/wcenter/zwcentercola.c new file mode 100644 index 00000000..5e4e2bdd --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/zwcentercola.c @@ -0,0 +1,66 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "wcenter.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zwcentercola (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + + doubleComplex sum[row], xbar[row]; + for(int i = 0; i < row; i++) + sum[i] = DoubleComplex(0,0); + + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] = zadds(sum[i], inp[i + j*row]); + } + } + + + for(int i = 0; i < row; i++) + xbar[i] = zrdivs(sum[i], col); + + doubleComplex one[col]; // Creating a matrix of ones + zonesa(one,1,col); + + + doubleComplex prod[row*col]; + zmulma(xbar, row, 1, one, 1, col, prod); + + for(int i = 0; i< row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); + + for(int i = 0; i < row; i++) + sum[i] = DoubleComplex(0,0); + + for(int i = 0; i < row; i++) + { + for(int j = 0; j < col; j++) + { + sum[i] = zadds(sum[i], zmuls(out[i + j*row], out[i + j*row])); + } + } + + doubleComplex sigma[row]; + for(int i = 0; i < row; i++) + sigma[i] = zsqrts(zrdivs(sum[i],(col-1))); + + for(int i = 0; i < row*col; i++) + prod[i] = DoubleComplex(0,0); + + zmulma(sigma, row, 1, one, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = zrdivs(out[i], prod[i]); + +} diff --git a/src/c/statisticsFunctions/wcenter/zwcenterrowa.c b/src/c/statisticsFunctions/wcenter/zwcenterrowa.c new file mode 100644 index 00000000..f68835d8 --- /dev/null +++ b/src/c/statisticsFunctions/wcenter/zwcenterrowa.c @@ -0,0 +1,72 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <ones.h> +#include "addition.h" +#include "subtraction.h" +#include "multiplication.h" +#include "division.h" +#include "wcenter.h" +#include "doubleComplex.h" +#include "sqrt.h" + +void zwcenterrowa (doubleComplex* inp, int row, int col, doubleComplex* out) +{ + + doubleComplex sum[col], xbar[col]; + for(int i = 0; i < col; i++) + sum[i] = DoubleComplex(0,0); + + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] = zadds(sum[i], inp[j + i*row]); + } + } + + + + for(int i = 0; i < col; i++) + xbar[i] = zrdivs(sum[i], row); + + doubleComplex one[row]; // Creating a matrix of ones + zonesa(one,row,1); + + doubleComplex prod[row*col]; + zmulma(one, row, 1, xbar, 1, col, prod); + + + + for(int i = 0; i< row*col; i++) + out[i] = zdiffs(inp[i], prod[i]); + + + for(int i = 0; i < col; i++) + sum[i] = DoubleComplex(0,0); + + for(int i = 0; i < col; i++) + { + for(int j = 0; j < row; j++) + { + sum[i] = zadds(sum[i], zmuls(out[j + i*row], out[j + i*row])); + } + } + + + + doubleComplex sigma[col]; + for(int i = 0; i < col; i++) + sigma[i] = zsqrts(zrdivs(sum[i],(row-1))); + + + for(int i = 0; i < row*col; i++) + prod[i] = DoubleComplex(0,0); + + zmulma(one, row, 1, sigma, 1, col, prod); + + for(int i = 0; i < row*col; i++) + out[i] = zrdivs(out[i], prod[i]); + +} |