#include #include //extern "C" { // don't mangle the function name `sum` #ifdef UNSOUND_BOUND #define BND( correct_limit ) 100 #else #define BND( correct_limit ) correct_limit #endif forall( [N] ) double sum( array(float, N) & x ) { double sum = 0; for ( i; BND( N ) ) sum += @x[i]@; return sum; } //} // extern "C" #ifdef RUNIT #define EXPSZ 7 int main() { array( float, EXPSZ ) x; for ( i; EXPSZ ) x[i] = 0.1 * (i + 1); for ( i; EXPSZ ) sout | "elm" | i | x[i]; double sum = sum( x ); sout | "sum " | wd( 2, sum ); } #endif