Changeset bd85400 for src/examples/sum.c


Ignore:
Timestamp:
Feb 5, 2016, 5:09:04 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
52f85e0, 6ed1d4b, d41280e, d63eeb0
Parents:
4789f44
Message:

remove offsetof keyword, parser 0/1 names as structure fields, update examples to new stdlib, rename algorithms to stdlib, extend stdlib, use correct type for box parameters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/examples/sum.c

    r4789f44 rbd85400  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jan 28 17:05:53 2016
    13 // Update Count     : 130
     12// Last Modified On : Fri Feb  5 16:47:44 2016
     13// Update Count     : 139
    1414//
    1515
     
    3333
    3434// Required to satisfy sumable as char does not have addition.
    35 const char 0;
    36 char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion
    37 char ++?( char *op ) { *op += 1; return *op; }
    38 char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
     35// const char 0;
     36// char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion
     37// char ++?( char *op ) { *op += 1; return *op; }
     38// char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
    3939
    4040int main( void ) {
    4141        const int low = 5, High = 15, size = High - low;
    42 
    4342        ofstream *sout = ofstream_stdout();
     43#if 0
    4444
    4545        char s = 0, a[size];
     
    6969        sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
    7070                 | sum( size, (float *)a ) | ", check " | (float)s | endl;
     71#endif
     72        double s = 0, a[size];
     73        double v = low / 10.0;
    7174
    72         double s = 0.0, a[size];
    73         double v = low / 10.0;
    7475        for ( int i = 0; i < size; i += 1, v += 0.1 ) {
    7576                s += (double)v;
     
    7879        sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
    7980                 | sum( size, (double *)a ) | ", check " | (double)s | endl;
     81
     82        // struct S { int i, j; } sarr[size];
     83        // struct S 0 = { 0, 0 };
     84        // struct S 1 = { 1, 1 };
     85        // S ?+?( S t1, S t2 ) { S s = { t1.i + t1.j, t2.i + t2.j }; return s; }
     86        // S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; }
     87        // S ++?( S *t ) { *t += 1; return *t; }
     88        // S ?++( S *t ) { S temp = *t; *t += 1; return temp; }
     89        // sum( size, sarr );
    8090} // main
    8191
Note: See TracChangeset for help on using the changeset viewer.