📄 testrange.c
字号:
// Test all range variants.
#include <stdio.h>
#include <string.h>
#include "ad++.h"
#include "admacros.h"
const int n_cases = 30 ;
const int n = 50 ;
Range sample(char* desc, Dimension d, int i_case) {
Range x ;
switch(i_case) {
case 0 :
x = Range(n) ;
strcpy(desc, "Range(n)") ;
break ;
case 1 :
x = Range(n, d, BLK) ;
strcpy(desc, "Range(n, d, BLK)") ;
break ;
case 2 :
x = Range(n, d, CYC) ;
strcpy(desc, "Range(n, d, CYC)") ;
break ;
case 3 :
x = Range(n, d, STP) ;
strcpy(desc, "Range(n, d, STP)") ;
break ;
case 4 :
x = Range(n, d, BLK, 12) ;
strcpy(desc, "Range(n, d, BLK, 12)") ;
break ;
case 5 :
x = Range(n, d, CYC, 4) ;
strcpy(desc, "Range(n, d, CYC, 4)") ;
break ;
case 6 :
x = Range(400).subrng(n, 100, 5) ;
strcpy(desc, "Range(400).subrng(n, 100, 5)") ;
break ;
case 7 :
x = Range(400, PACKED).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, PACKED).subrng(n, 100, 5)") ;
break ;
case 8 :
x = Range(250).subrng(n, 225, -4) ;
strcpy(desc, "Range(250).subrng(n, 225, -4)") ;
break ;
case 9 :
x = Range(250, PACKED).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, PACKED).subrng(n, 225, -4)") ;
break ;
case 10 :
x = Range(400, d, BLK).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, BLK).subrng(n, 100, 5)") ;
break ;
case 11 :
x = Range(400, d, BLK, PACKED).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, BLK, PACKED).subrng(n, 100, 5)") ;
break ;
case 12 :
x = Range(250, d, BLK).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, BLK).subrng(n, 225, -4)") ;
break ;
case 13 :
x = Range(250, d, BLK, PACKED).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, BLK, PACKED).subrng(n, 225, -4)") ;
break ;
case 14 :
x = Range(400, d, CYC).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, CYC).subrng(n, 100, 5)") ;
break ;
case 15 :
x = Range(400, d, CYC, ADAPT).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, CYC, ADAPT).subrng(n, 100, 5)") ;
break ;
case 16 :
x = Range(250, d, CYC).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, CYC).subrng(n, 225, -4)") ;
break ;
case 17 :
x = Range(250, d, CYC, ADAPT).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, CYC, ADAPT).subrng(n, 225, -4)") ;
break ;
case 18 :
x = Range(400, d, STP).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, STP).subrng(n, 100, 5)") ;
break ;
case 19 :
x = Range(400, d, STP, PACKED).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, STP, PACKED).subrng(n, 100, 5)") ;
break ;
case 20 :
x = Range(250, d, STP).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, STP).subrng(n, 225, -4)") ;
break ;
case 21 :
x = Range(250, d, STP, PACKED).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, STP, PACKED).subrng(n, 225, -4)") ;
break ;
case 22 :
x = Range(400, d, BLK, 120).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, BLK, 120).subrng(n, 100, 5)") ;
break ;
case 23 :
x = Range(250, d, BLK, 60).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, BLK, 60).subrng(n, 225, -4)") ;
break ;
case 24 :
x = Range(400, d, CYC, 24).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, CYC, 24)(n, 100, 5)") ;
break ;
case 25 :
x = Range(250, d, CYC, 17).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, CYC, 17).subrng(n, 225, -4)") ;
break ;
case 26 :
x = Range(400, d, CYC, 24, PACKED).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, CYC, 24, PACKED).subrng(n, 100, 5)") ;
break ;
case 27 :
x = Range(250, d, CYC, 17, PACKED).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, CYC, 17, PACKED).subrng(n, 225, -4)") ;
break ;
case 28 :
x = Range(400, d, CYC, 24, ADAPT).subrng(n, 100, 5) ;
strcpy(desc, "Range(400, d, CYC, 24, ADAPT).subrng(n, 100, 5)") ;
break ;
case 29 :
x = Range(250, d, CYC, 17, ADAPT).subrng(n, 225, -4) ;
strcpy(desc, "Range(250, d, CYC, 17, ADAPT).subrng(n, 225, -4)") ;
break ;
}
return x ;
}
void main(int argc, char* argv[]) {
AdlibInit(argc, argv) ;
char xDesc [1024], yDesc [1024] ;
Procs1 p(6) ;
Dimension d = p.dim(0) ;
for(int i = 0 ; i < n_cases ; i++) {
Range x = sample(xDesc, d, i) ;
for(int j = 0 ; j < n_cases ; j++) {
Range y = sample(yDesc, d, j) ;
gprintf("x = %s\n", xDesc) ;
gprintf("y = %s\n", yDesc) ;
Array1<float> a(p, x) ;
Array1<float> b(p, y) ;
on(p) {
where(x) {
a(x) = x ;
} erewh(x) ;
} no(p) ;
remap(b, a) ;
aprintf("%2R0%7.3f\n", b) ;
}
}
AdlibFinalize() ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -