⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testrange.c

📁 shpf 1.9一个并行编译器
💻 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 + -