Changeset e99e43f for tests/searchsort.cfa
- Timestamp:
- Jan 10, 2019, 3:50:34 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
- Children:
- d97c3a4
- Parents:
- aeb8f70 (diff), 08222c7 (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. - git-author:
- Aaron Moss <a3moss@…> (01/10/19 14:46:09)
- git-committer:
- Aaron Moss <a3moss@…> (01/10/19 15:50:34)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
tests/searchsort.cfa
raeb8f70 re99e43f 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // searchsort.c --7 // searchsort.cfa -- 8 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 : Thu Aug 9 07:54:57201813 // Update Count : 10 112 // Last Modified On : Thu Dec 20 22:49:46 2018 13 // Update Count : 108 14 14 // 15 15 16 16 #include <fstream.hfa> 17 #include <stdlib.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 sout | nlOff; // turn off auto newline 27 26 28 for ( i; 0 ~ size ) { 27 29 iarr[i] = size - i; 28 30 sout | iarr[i] | ", "; 29 31 } // for 30 sout | endl | endl;32 sout | nl | nl; 31 33 32 34 // ascending sort/search by changing < to > … … 35 37 sout | iarr[i] | ", "; 36 38 } // for 37 sout | endl;39 sout | nl; 38 40 for ( i; 0 ~ size ) { // C version 39 41 int key = size - i; … … 41 43 sout | key | ':' | *v | ", "; 42 44 } // for 43 sout | endl;45 sout | nl; 44 46 45 47 for ( i; 0 ~ size ) { … … 47 49 sout | size - i | ':' | *v | ", "; 48 50 } // for 49 sout | endl;51 sout | nl; 50 52 for ( i; 0 ~ size ) { 51 53 unsigned int posn = bsearch( size - i, iarr, size ); 52 54 sout | size - i | ':' | iarr[posn] | ", "; 53 55 } // for 54 sout | endl | endl;56 sout | nl | nl; 55 57 56 58 // descending sort/search by changing < to > … … 59 61 sout | iarr[i] | ", "; 60 62 } // for 61 sout | endl;63 sout | nl; 62 64 { 63 65 // redefinition of ?<? can't overlap the loop controls: 64 //int ?<?( int x, int y ) { return x > y; }65 66 { 66 67 int (*?<?)(int, int) = ?>?; … … 70 71 sout | iarr[i] | ", "; 71 72 } // for 72 sout | endl;73 sout | nl; 73 74 for ( i; 0 ~ size ) { 74 75 int (*?<?)(int, int) = ?>?; … … 76 77 sout | size - i | ':' | *v | ", "; 77 78 } // for 78 sout | endl;79 sout | nl; 79 80 for ( i; 0 ~ size ) { 80 81 int (*?<?)(int, int) = ?>?; … … 83 84 } // for 84 85 } 85 sout | endl | endl;86 sout | nl | nl; 86 87 87 88 double darr[size]; … … 90 91 sout | darr[i] | ", "; 91 92 } // for 92 sout | endl;93 sout | nl; 93 94 qsort( darr, size ); 94 95 for ( i; 0 ~ size ) { 95 96 sout | darr[i] | ", "; 96 97 } // for 97 sout | endl;98 sout | nl; 98 99 for ( i; 0 ~ size ) { 99 100 double * v = bsearch( size - i + 0.5, darr, size ); 100 101 sout | size - i + 0.5 | ':' | *v | ", "; 101 102 } // for 102 sout | endl;103 sout | nl; 103 104 for ( i; 0 ~ size ) { 104 105 unsigned int posn = bsearch( size - i + 0.5, darr, size ); 105 106 sout | size - i + 0.5 | ':' | darr[posn] | ", "; 106 107 } // for 107 sout | endl | endl;108 sout | nl | nl; 108 109 109 110 struct S { int i, j; } sarr[size]; … … 115 116 sout | sarr[i] | ", "; 116 117 } // for 117 sout | endl;118 sout | nl; 118 119 qsort( sarr, size ); 119 120 for ( i; 0 ~ size ) { 120 121 sout | sarr[i] | ", "; 121 122 } // for 122 sout | endl;123 sout | nl; 123 124 for ( i; 0 ~ size ) { 124 125 S temp = { size - i, size - i + 1 }; … … 126 127 sout | temp | ':' | *v | ", "; 127 128 } // for 128 sout | endl;129 sout | nl; 129 130 for ( i; 0 ~ size ) { 130 131 S temp = { size - i, size - i + 1 }; … … 132 133 sout | temp | ':' | sarr[posn] | ", "; 133 134 } // for 134 sout | endl | endl;135 sout | nl | nl; 135 136 { 136 137 int getKey( const S & s ) { return s.j; } … … 138 139 sout | sarr[i] | ", "; 139 140 } // for 140 sout | endl;141 sout | nl; 141 142 for ( i; 0 ~ size ) { 142 143 S * v = bsearch( size - i + 1, sarr, size ); 143 144 sout | size - i + 1 | ':' | *v | ", "; 144 145 } // for 145 sout | endl;146 sout | nl; 146 147 for ( i; 0 ~ size ) { 147 148 unsigned int posn = bsearch( size - i + 1, sarr, size ); 148 149 sout | size - i + 1 | ':' | sarr[posn] | ", "; 149 150 } // for 150 sout | endl | endl;151 sout | nl | nl; 151 152 } 152 153 } // main … … 154 155 // Local Variables: // 155 156 // tab-width: 4 // 156 // compile-command: "cfa searchsort.c " //157 // compile-command: "cfa searchsort.cfa" // 157 158 // End: //
Note: See TracChangeset
for help on using the changeset viewer.