Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/prelude/builtins.c

    re472d54 r1ae06fa  
    8080} // ?\?
    8181
    82 // FIXME (x \ (unsigned long int)y) relies on X ?\?(T, unsigned long) a function that is neither
    83 // defined, nor passed as an assertion parameter. Without user-defined conversions, cannot specify
    84 // X as a type that casts to double, yet it doesn't make sense to write functions with that type
    85 // signature where X is double.
    86 
    87 // static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } )
    88 // double ?\?( T x, signed long int y ) {
    89 //     if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
    90 //     else return 1.0 / x \ (unsigned long int)(-y);
    91 // } // ?\?
     82static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } )
     83double ?\?( T x, signed long int y ) {
     84    if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
     85    else return 1.0 / x \ (unsigned long int)(-y);
     86} // ?\?
    9287
    9388static inline long int ?\=?( long int & x, unsigned long int y ) { x = x \ y; return x; }
Note: See TracChangeset for help on using the changeset viewer.