summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/sift/src/c/doubleSize.c
blob: dd17f7735aa253d5b166d74adfd9411d8d8d8704 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/********************************
Author: Sravanthi Kota Venkata
********************************/

#include "sift.h"

F2D* doubleSize(F2D* I)
{
    F2D *J;
    int M, N, i, j;

    M = I->height;
    N = I->width;
    J = fSetArray(2*M, 2*N, 0);

    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
        {
            subsref(J,2*i,j*2) = subsref(I,i,j);
        }
    }
    
    for(i=0; i<M-1; i++)
    {
        for(j=0; j<N-1; j++)
        {
            subsref(J,i*2+1,j*2+1) = (0.25 * (subsref(I,i,j) + subsref(I,i+1,j) + subsref(I,i,j+1) + subsref(I,(i+1),j+1)));
        }
    }

    for(i=0; i<M-1; i++)
    {
        for(j=0; j<N; j++)
        {
            subsref(J,i*2+1,j*2) = (0.5 * (subsref(I,i,j) + subsref(I,i+1,j)));
        }
    }
   
    for(i=0; i<M; i++)
    {
        for(j=0; j<N-1; j++)
        {
            subsref(J,i*2,j*2+1) = (0.5 * (subsref(I,i,j) + subsref(I,i,j+1)));
        }
    }
    
    return J;
}