Changeset 90152a4 for tests/searchsort.c


Ignore:
Timestamp:
Aug 27, 2018, 4:40:34 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
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.
Message:

Merge branch 'master' into cleanup-dtors

File:
1 moved

Legend:

Unmodified
Added
Removed
  • tests/searchsort.c

    rf9feab8 r90152a4  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // searchsort.c -- 
    8 // 
     6//
     7// searchsort.c --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Thu Feb  4 18:17:50 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Apr  2 11:29:30 2017
    13 // Update Count     : 76
    14 // 
     12// Last Modified On : Thu Aug  9 07:54:57 2018
     13// Update Count     : 101
     14//
    1515
    16 #include <fstream>
    17 #include <stdlib>                                                                               // bsearch, qsort
     16#include <fstream.hfa>
     17#include <stdlib.hfa>                                                                           // bsearch, qsort
    1818#include <stdlib.h>                                                                             // C version of bsearch
    1919
     
    2424        int iarr[size];
    2525
    26         for ( unsigned int i = 0; i < size; i += 1 ) {
     26        for ( i; 0u ~ size ) {
    2727                iarr[i] = size - i;
    2828                sout | iarr[i] | ", ";
     
    3232        // ascending sort/search by changing < to >
    3333        qsort( iarr, size );
    34         for ( unsigned int i = 0; i < size; i += 1 ) {
     34        for ( i; 0u ~ size ) {
    3535                sout | iarr[i] | ", ";
    3636        } // for
    3737        sout | endl;
    38         for ( unsigned int i = 0; i < size; i += 1 ) {          // C version
     38        for ( i; 0u ~ size ) {          // C version
    3939                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 | ", ";
    4242        } // for
    4343        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 | ", ";
    4748        } // for
    4849        sout | endl;
    49         for ( unsigned int i = 0; i < size; i += 1 ) {
     50        for ( i; 0u ~ size ) {
    5051                unsigned int posn = bsearch( size - i, iarr, size );
    51                 sout | iarr[posn] | ", ";
     52                sout | size - i | ':' | iarr[posn] | ", ";
    5253        } // for
    5354        sout | endl | endl;
    5455
    5556        // descending sort/search by changing < to >
    56         for ( unsigned int i = 0; i < size; i += 1 ) {
     57        for ( i; 0u ~ size ) {
    5758                iarr[i] = i + 1;
    5859                sout | iarr[i] | ", ";
     
    6263                int ?<?( int x, int y ) { return x > y; }
    6364                qsort( iarr, size );
    64                 for ( unsigned int i = 0; i < size; i += 1 ) {
     65                for ( i; 0u ~ size ) {
    6566                        sout | iarr[i] | ", ";
    6667                } // for
    6768                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 | ", ";
    7172                } // for
    7273                sout | endl;
    73                 for ( unsigned int i = 0; i < size; i += 1 ) {
     74                for ( i; 0u ~ size ) {
    7475                        unsigned int posn = bsearch( size - i, iarr, size );
    75                         sout | iarr[posn] | ", ";
     76                        sout | size - i | ':' | iarr[posn] | ", ";
    7677                } // for
    7778        }
     
    7980
    8081        double darr[size];
    81         for ( unsigned int i = 0; i < size; i += 1 ) {
     82        for ( i; 0u ~ size ) {
    8283                darr[i] = size - i + 0.5;
    8384                sout | darr[i] | ", ";
     
    8586        sout | endl;
    8687        qsort( darr, size );
    87         for ( unsigned int i = 0; i < size; i += 1 ) {
     88        for ( i; 0u ~ size ) {
    8889                sout | darr[i] | ", ";
    8990        } // for
    9091        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 | ", ";
    9495        } // for
    9596        sout | endl;
    96         for ( unsigned int i = 0; i < size; i += 1 ) {
     97        for ( i; 0u ~ size ) {
    9798                unsigned int posn = bsearch( size - i + 0.5, darr, size );
    98                 sout | darr[posn] | ", ";
     99                sout | size - i + 0.5 | ':' | darr[posn] | ", ";
    99100        } // for
    100101        sout | endl | endl;
     
    102103        struct S { int i, j; } sarr[size];
    103104        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 ) {
    106107                sarr[i].i = size - i;
    107108                sarr[i].j = size - i + 1;
     
    110111        sout | endl;
    111112        qsort( sarr, size );
    112         for ( unsigned int i = 0; i < size; i += 1 ) {
     113        for ( i; 0u ~ size ) {
    113114                sout | sarr[i] | ", ";
    114115        } // for
    115116        sout | endl;
    116         for ( unsigned int i = 0; i < size; i += 1 ) {
     117        for ( i; 0u ~ size ) {
    117118                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 | ", ";
    120121        } // for
    121122        sout | endl;
    122         for ( unsigned int i = 0; i < size; i += 1 ) {
     123        for ( i; 0u ~ size ) {
    123124                S temp = { size - i, size - i + 1 };
    124125                unsigned int posn = bsearch( temp, sarr, size );
    125                 sout | sarr[posn] | ", ";
     126                sout | temp | ':' | sarr[posn] | ", ";
    126127        } // for
    127128        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        }
    128146} // main
    129147
Note: See TracChangeset for help on using the changeset viewer.