File: interlace.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 (78 lines) | stat: -rw-r--r-- 1,800 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Intended coverage: blitz/arrayinter.h (Array interlacing)

#include "testsuite.h"

#include <blitz/array.h>

using namespace blitz;

int main()
{
    Array<int,2> A, B;
    interlaceArrays(shape(32,33), A, B);
    BZTEST(A.stride(1) == 2);
    BZTEST(B.stride(1) == 2);
    BZTEST(&A(0,0) + 1 == &B(0,0));
    BZTEST(&A(5,0) + 1 == &B(5,0));
    A = 0;
    BZTEST(A.rows() == 32);
    BZTEST(A.cols() == 33);
    BZTEST(count(A == 0) == 32*33);
    B = 1;
    BZTEST(B.rows() == 32);
    BZTEST(B.cols() == 33);
    BZTEST(count(B == 1) == 32*33);
    BZTEST(count(A == 0) == 32*33);


    Array<int,2> C;
    interlaceArrays(shape(13,17), A, B, C);
    BZTEST(&A(0,0) + 1 == &B(0,0));
    BZTEST(&A(0,0) + 2 == &C(0,0));
    A = 0;
    B = 1;
    C = 2;
    B = 1;
    A = 0;
    BZTEST(count(A == 0) == 13*17);
    BZTEST(count(B == 1) == 13*17);
    BZTEST(count(C == 2) == 13*17);

    Array<int,2> D, E, F, G, H;
    interlaceArrays(shape(11,19), A, B, C, D, E, F, G, H);
    BZTEST(A.stride(1) == 8);
    BZTEST(E.stride(1) == 8);
    BZTEST(H.stride(1) == 8);
    BZTEST(&A(0,0)+1 == &B(0,0));
    BZTEST(&A(0,0)+2 == &C(0,0));
    BZTEST(&A(0,0)+3 == &D(0,0));
    BZTEST(&A(0,0)+4 == &E(0,0));
    BZTEST(&A(0,0)+5 == &F(0,0));
    BZTEST(&A(0,0)+6 == &G(0,0));
    BZTEST(&A(0,0)+7 == &H(0,0));
    A = 0;
    B = 1;
    C = 2;
    D = 3;
    E = 4;
    F = 5;
    G = 6;
    H = 7;
    G = 6;
    F = 5;
    E = 4;
    D = 3;
    C = 2;
    B = 1;
    A = 0;
    BZTEST(count(A == 0) == 11*19);
    BZTEST(count(B == 1) == 11*19);
    BZTEST(count(C == 2) == 11*19);
    BZTEST(count(D == 3) == 11*19);
    BZTEST(count(E == 4) == 11*19);
    BZTEST(count(F == 5) == 11*19);
    BZTEST(count(G == 6) == 11*19);
    BZTEST(count(H == 7) == 11*19);
    BZTEST(count(A != 1) == 11*19);
}