[ECOS] clock() problem?

Chris Houston chouston@logikos.com
Wed Nov 15 05:23:00 GMT 2000


Has anyone else encountered strange behaviour when using the "clock()" 
function?  When I use it, the result seems to roll over int 16 bits.

In packages/language/c/libc/time/v1_x_x/src/clock.cxx, in the clock() 
function, if I change

    clocks = ((clock_t)curr_clock * resolution.dividend) /
     (resolution.divisor * (1000000000 / CLOCKS_PER_SEC));  

to

      clocks = (clock_t)((curr_clock * resolution.dividend) /
     (resolution.divisor * (1000000000 / CLOCKS_PER_SEC)));      

then the function seems to behave correctly.  It seems that in 
the first case, the multiplication in the numerator gets truncated to 
32 bits.





More information about the Ecos-discuss mailing list