nmpp
test.h
1
2
3template <int K> void* nmppsMalloc(int size);
4template<> void* nmppsMalloc<8>(int size) { return nmppsMalloc_8s(size); }
5template<> void* nmppsMalloc<16>(int size){ return nmppsMalloc_16s(size); }
6template<> void* nmppsMalloc<32>(int size){ return nmppsMalloc_32s(size); }
7template<> void* nmppsMalloc<64>(int size){ return nmppsMalloc_64s(size);}
8
9#define XNM_TYPE(x) nm##x##s
10#define NM_TYPE(x) XNM_TYPE(x)
11
12#define xnmppsMalloc(bits,size) nmppsMalloc_##bits##s(size)
13#define nmppsMalloc(bits,size) xnmppsMalloc(bits,size)
14
15#define xnmppsSet(bits,buf,val,size) nmppsSet_##bits##s(buf,val,size)
16#define nmppsSet(bits,buf,val,size) xnmppsSet(bits,buf,val,size)
17
18#define xnmppsCrcAcc(bits,src,size,crc) nmppsCrcAcc_##bits##s(src,size, crc)
19#define nmppsCrcAcc(bits,src,size,crc) xnmppsCrcAcc(bits,src,size,crc)
20
21#define xnmppsRandUniform(bits,buf,size) nmppsRandUniform_##bits##s(buf,size)
22#define nmppsRandUniform(bits,buf,size) xnmppsRandUniform(bits,buf,size)
23
24
25inline int SIZE32(int bits, int size) {
26 switch (bits){
27 case(64):
28 return size << 1;
29 case(32):
30 return size ;
31 case(16):
32 return size >>1;
33 case(8):
34 return size >>2;
35 case(4):
36 return size >>3;
37 }
38 return 0;
39}
40
41inline int DIM(int bits) {
42 switch (bits) {
43 case(64):
44 return 1;
45 case(32):
46 return 2;
47 case(16):
48 return 4;
49 case(8):
50 return 8;
51 case(4):
52 return 16;
53 case(2):
54 return 32;
55 case(1):
56 return 64;
57 }
58 return 0;
59}
60
61#include "stdio.h"
62inline void dump(int bits,void* buf, int height, int width){
63 unsigned *p=(unsigned*)buf;
64 switch(bits){
65 case(64):
66 for(int y=0,i=0; y<height; y++){
67 for(int x=0; x<width; x++){
68 unsigned lo=nmppsGet_32u(p,i++);
69 unsigned hi=nmppsGet_32u(p,i++);
70 printf("%08X%08X", hi,lo);
71 }
72 printf("\n");
73 }
74 break;
75
76 case(32):
77 for(int y=0,i=0; y<height; y++){
78 for(int x=0; x<width; x++){
79 unsigned val=nmppsGet_32u(p,i++);
80 printf("%08X ", val);
81 }
82 printf("\n");
83 }
84 break;
85
86 case(16):
87 for(int y=0, i=0; y<height; y++){
88 for(int x=0; x<width; x++,i++){
89 unsigned val=nmppsGet_16u((nm16u*)buf,i);
90 printf("%04X ", val);
91 }
92 printf("\n");
93 }
94 break;
95 case(8):
96 for(int y=0, i=0; y<height; y++){
97 for(int x=0; x<width; x++,i++){
98 unsigned val=nmppsGet_8u((nm8u*)buf,i);
99 printf("%02X ", val);
100 }
101 printf("\n");
102 }
103 break;
104 }
105}
unsigned char nm8u
Definition: nmtype.h:448
unsigned short nm16u
Definition: nmtype.h:481