Changeset 90152a4 for tests/searchsort.c
- Timestamp:
- Aug 27, 2018, 4:40:34 PM (7 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- b7c89aa
- Parents:
- f9feab8 (diff), 305581d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 moved
-
tests/searchsort.c (moved) (moved from src/tests/searchsort.c ) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/searchsort.c
rf9feab8 r90152a4 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // searchsort.c -- 8 // 6 // 7 // searchsort.c -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Thu Feb 4 18:17:50 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Apr 2 11:29:30 201713 // Update Count : 7614 // 12 // Last Modified On : Thu Aug 9 07:54:57 2018 13 // Update Count : 101 14 // 15 15 16 #include <fstream >17 #include <stdlib > // bsearch, qsort16 #include <fstream.hfa> 17 #include <stdlib.hfa> // bsearch, qsort 18 18 #include <stdlib.h> // C version of bsearch 19 19 … … 24 24 int iarr[size]; 25 25 26 for ( unsigned int i = 0; i < size; i += 1) {26 for ( i; 0u ~ size ) { 27 27 iarr[i] = size - i; 28 28 sout | iarr[i] | ", "; … … 32 32 // ascending sort/search by changing < to > 33 33 qsort( iarr, size ); 34 for ( unsigned int i = 0; i < size; i += 1) {34 for ( i; 0u ~ size ) { 35 35 sout | iarr[i] | ", "; 36 36 } // for 37 37 sout | endl; 38 for ( unsigned int i = 0; i < size; i += 1) { // C version38 for ( i; 0u ~ size ) { // C version 39 39 int key = size - i; 40 int * v = bsearch( &key, iarr, size, sizeof( iarr[0] ), comp );41 sout | *v | ", ";40 int * v = bsearch( &key, iarr, size, sizeof( iarr[0] ), comp ); 41 sout | key | ':' | *v | ", "; 42 42 } // for 43 43 sout | endl; 44 for ( unsigned int i = 0; i < size; i += 1 ) { 45 int *v = bsearch( size - i, iarr, size ); 46 sout | *v | ", "; 44 45 for ( i; 0u ~ size ) { 46 int * v = bsearch( size - i, iarr, size ); 47 sout | size - i | ':' | *v | ", "; 47 48 } // for 48 49 sout | endl; 49 for ( unsigned int i = 0; i < size; i += 1) {50 for ( i; 0u ~ size ) { 50 51 unsigned int posn = bsearch( size - i, iarr, size ); 51 sout | iarr[posn] | ", ";52 sout | size - i | ':' | iarr[posn] | ", "; 52 53 } // for 53 54 sout | endl | endl; 54 55 55 56 // descending sort/search by changing < to > 56 for ( unsigned int i = 0; i < size; i += 1) {57 for ( i; 0u ~ size ) { 57 58 iarr[i] = i + 1; 58 59 sout | iarr[i] | ", "; … … 62 63 int ?<?( int x, int y ) { return x > y; } 63 64 qsort( iarr, size ); 64 for ( unsigned int i = 0; i < size; i += 1) {65 for ( i; 0u ~ size ) { 65 66 sout | iarr[i] | ", "; 66 67 } // for 67 68 sout | endl; 68 for ( unsigned int i = 0; i < size; i += 1) {69 int * v = bsearch( size - i, iarr, size );70 sout | *v | ", ";69 for ( i; 0u ~ size ) { 70 int * v = bsearch( size - i, iarr, size ); 71 sout | size - i | ':' | *v | ", "; 71 72 } // for 72 73 sout | endl; 73 for ( unsigned int i = 0; i < size; i += 1) {74 for ( i; 0u ~ size ) { 74 75 unsigned int posn = bsearch( size - i, iarr, size ); 75 sout | iarr[posn] | ", ";76 sout | size - i | ':' | iarr[posn] | ", "; 76 77 } // for 77 78 } … … 79 80 80 81 double darr[size]; 81 for ( unsigned int i = 0; i < size; i += 1) {82 for ( i; 0u ~ size ) { 82 83 darr[i] = size - i + 0.5; 83 84 sout | darr[i] | ", "; … … 85 86 sout | endl; 86 87 qsort( darr, size ); 87 for ( unsigned int i = 0; i < size; i += 1) {88 for ( i; 0u ~ size ) { 88 89 sout | darr[i] | ", "; 89 90 } // for 90 91 sout | endl; 91 for ( unsigned int i = 0; i < size; i += 1) {92 double * v = bsearch( size - i + 0.5, darr, size );93 sout | *v | ", ";92 for ( i; 0u ~ size ) { 93 double * v = bsearch( size - i + 0.5, darr, size ); 94 sout | size - i + 0.5 | ':' | *v | ", "; 94 95 } // for 95 96 sout | endl; 96 for ( unsigned int i = 0; i < size; i += 1) {97 for ( i; 0u ~ size ) { 97 98 unsigned int posn = bsearch( size - i + 0.5, darr, size ); 98 sout | darr[posn] | ", ";99 sout | size - i + 0.5 | ':' | darr[posn] | ", "; 99 100 } // for 100 101 sout | endl | endl; … … 102 103 struct S { int i, j; } sarr[size]; 103 104 int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; } 104 ofstream * ?|?( ofstream *os, S v ) { return os | v.i | ' ' | v.j; }105 for ( unsigned int i = 0; i < size; i += 1) {105 ofstream & ?|?( ofstream & os, S v ) { return os | v.i | ' ' | v.j; } 106 for ( i; 0u ~ size ) { 106 107 sarr[i].i = size - i; 107 108 sarr[i].j = size - i + 1; … … 110 111 sout | endl; 111 112 qsort( sarr, size ); 112 for ( unsigned int i = 0; i < size; i += 1) {113 for ( i; 0u ~ size ) { 113 114 sout | sarr[i] | ", "; 114 115 } // for 115 116 sout | endl; 116 for ( unsigned int i = 0; i < size; i += 1) {117 for ( i; 0u ~ size ) { 117 118 S temp = { size - i, size - i + 1 }; 118 S * v = bsearch( temp, sarr, size );119 sout | *v | ", ";119 S * v = bsearch( temp, sarr, size ); 120 sout | temp | ':' | *v | ", "; 120 121 } // for 121 122 sout | endl; 122 for ( unsigned int i = 0; i < size; i += 1) {123 for ( i; 0u ~ size ) { 123 124 S temp = { size - i, size - i + 1 }; 124 125 unsigned int posn = bsearch( temp, sarr, size ); 125 sout | sarr[posn] | ", ";126 sout | temp | ':' | sarr[posn] | ", "; 126 127 } // for 127 128 sout | endl | endl; 129 { 130 unsigned int getKey( const S & s ) { return s.j; } 131 for ( i; 0u ~ size ) { 132 sout | sarr[i] | ", "; 133 } // for 134 sout | endl; 135 for ( i; 0u ~ size ) { 136 S * v = bsearch( size - i + 1, sarr, size ); 137 sout | size - i + 1 | ':' | *v | ", "; 138 } // for 139 sout | endl; 140 for ( i; 0u ~ size ) { 141 unsigned int posn = bsearch( size - i + 1, sarr, size ); 142 sout | size - i + 1 | ':' | sarr[posn] | ", "; 143 } // for 144 sout | endl | endl; 145 } 128 146 } // main 129 147
Note:
See TracChangeset
for help on using the changeset viewer.