File: peter-nordlund-2.cpp

package info (click to toggle)
blitz%2B%2B 1%3A1.0.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 8,568 kB
  • sloc: cpp: 57,803; python: 1,941; fortran: 1,510; f90: 852; makefile: 833; sh: 321
file content (37 lines) | stat: -rw-r--r-- 665 bytes parent folder | download | duplicates (3)
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
#include "testsuite.h"
#include <blitz/array.h>

using namespace blitz;

template <typename T>
void subsample(Array<T, 2>& in, Array<T, 2>& sub1)
{
    Range all = Range::all();

    sub1.resize((in.extent(0)-3)/2+1, in.extent(1));

    Range R0(1, in.extent(0)-2, 2);

    sub1(all, all) = (2*in(R0, all) + in(R0+1, all) + in(R0-1, all))/4.0;
}

int main()
{
    Array<float,2> A(9,5), B;

    using namespace blitz::tensor;

    A = 20*i+j;

    subsample(A,B);

    Array<float,2> C(4,5);
    C =  20, 21, 22, 23, 24,
         60, 61, 62, 63, 64,
        100, 101, 102, 103, 104,
        140, 141, 142, 143, 144;
    BZTEST(count(B==C) == 20);

    return 0;
}