Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/math4.cfa

    re60aedd r200fcb3  
    1010// Created On       : Thu May 24 20:56:54 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 25 17:56:45 2020
    13 // Update Count     : 7
     12// Last Modified On : Tue Dec  4 18:15:01 2018
     13// Update Count     : 4
    1414//
    1515
     
    1818
    1919int main( void ) {
    20         signed char sc, scr1, scr2, scr3;
    21         unsigned char uc, ucr1, ucr2, ucr3;
    22         short int si, sir1, sir2, sir3;
    23         unsigned short int usi, usir1, usir2, usir3;
    24         int i, ir1, ir2, ir3;
    25         unsigned int ui, uir1, uir2, uir3;
    26         long int li, lir1, lir2, lir3;
    27         unsigned long int uli, ulir1, ulir2, ulir3;
    28         long long int lli, llir1, llir2, llir3;
    29         unsigned long long int ulli, ullir1, ullir2, ullir3;
    30 
    3120        float f;
    3221        double d;
     
    3423
    3524        //---------------------- Nearest Integer ----------------------
    36 
    37         //============================================================
    38 #if 1
    39         sout | nl | "floor" | nl | nl;
    40 
    41         printf( "signed char\n" );
    42         for ( sc = 1; sc != 0; sc <<= 1 ) {
    43                 scr1 = floor( sc, sc ); scr2 = floor( sc + 2hh, sc ); scr3 = floor( -sc - 2hh, sc );
    44                 printf( "floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
    45         } // for
    46         printf( "\n" );
    47 
    48         printf( "unsigned char\n" );
    49         for ( uc = 1; uc != 0; uc <<= 1 ) {
    50                 ucr1 = floor( uc, uc ); ucr2 = floor( uc + 2hh, uc ); ucr3 = floor( -uc - 2hh, uc );
    51                 printf( "floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
    52         } // for
    53         printf( "\n" );
    54 
    55         printf( "short int\n" );
    56         for ( si = 1; si != 0; si <<= 1 ) {
    57                 sir1 = floor( si, si ); sir2 = floor( si + 2hh, si ); sir3 = floor( -si - 2hh, si );
    58                 printf( "floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
    59         } // for
    60         printf( "\n" );
    61 
    62         printf( "unsigned short int\n" );
    63         for ( usi = 1; usi != 0; usi <<= 1 ) {
    64                 usir1 = floor( usi, usi ); usir2 = floor( usi + 2hh, usi ); usir3 = floor( -usi - 2hh, usi );
    65                 printf( "floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
    66         } // for
    67         printf( "\n" );
    68 
    69         printf( "int\n" );
    70         for ( i = 1; i != 0; i <<= 1 ) {
    71                 ir1 = floor( i, i ); ir2 = floor( i + 2hh, i ); ir3 = floor( -i - 2hh, i );
    72                 printf( "floor(%d, %d) = %d, floor(%d, %d) = %d, floor(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
    73         } // for
    74         printf( "\n" );
    75 
    76         printf( "unsigned int\n" );
    77         for ( ui = 1; ui != 0; ui <<= 1 ) {
    78                 uir1 = floor( ui, ui ); uir2 = floor( ui + 2hh, ui ); uir3 = floor( -ui - 2hh, ui );
    79                 printf( "floor(%u, %u) = %u, floor(%u, %u) = %u, floor(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
    80         } // for
    81         printf( "\n" );
    82 
    83         printf( "long int\n" );
    84         for ( li = 1; li != 0; li <<= 1 ) {
    85                 lir1 = floor( li, li ); lir2 = floor( li + 2hh, li ); lir3 = floor( -li - 2hh, li );
    86                 printf( "floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
    87         } // for
    88         printf( "\n" );
    89 
    90         printf( "unsigned long int\n" );
    91         for ( uli = 1; uli != 0; uli <<= 1 ) {
    92                 ulir1 = floor( uli, uli ); ulir2 = floor( uli + 2hh, uli ); ulir3 = floor( -uli - 2hh, uli );
    93                 printf( "floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
    94         } // for
    95         printf( "\n" );
    96 
    97         printf( "long long int\n" );
    98         for ( lli = 1; lli != 0; lli <<= 1 ) {
    99                 llir1 = floor( lli, lli ); llir2 = floor( lli + 2hh, lli ); llir3 = floor( -lli - 2hh, lli );
    100                 printf( "floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
    101         } // for
    102         printf( "\n" );
    103 
    104         printf( "unsigned long long int\n" );
    105         for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
    106                 ullir1 = floor( ulli, ulli ); ullir2 = floor( ulli + 2hh, ulli ); ullir3 = floor( -ulli - 2hh, ulli );
    107                 printf( "floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
    108         } // for
    109         printf( "\n" );
    110 #endif // 0
    111         //============================================================
    112 #if 1
    113         sout | nl | "ceiling_div" | nl | nl;
    114 
    115         printf( "signed char\n" );
    116         for ( sc = 1; sc != 0; sc <<= 1 ) {
    117                 scr1 = ceiling_div( sc, sc ); scr2 = ceiling_div( sc + 2hh, sc ); scr3 = ceiling_div( -sc - 2hh, sc );
    118                 printf( "ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
    119         } // for
    120         printf( "\n" );
    121 
    122         printf( "unsigned char\n" );
    123         for ( uc = 1; uc != 0; uc <<= 1 ) {
    124                 ucr1 = ceiling_div( uc, uc ); ucr2 = ceiling_div( uc + 2hh, uc ); ucr3 = ceiling_div( -uc - 2hh, uc );
    125                 printf( "ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
    126         } // for
    127         printf( "\n" );
    128 
    129         printf( "short int\n" );
    130         for ( si = 1; si != 0; si <<= 1 ) {
    131                 sir1 = ceiling_div( si, si ); sir2 = ceiling_div( si + 2hh, si ); sir3 = ceiling_div( -si - 2hh, si );
    132                 printf( "ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
    133         } // for
    134         printf( "\n" );
    135 
    136         printf( "unsigned short int\n" );
    137         for ( usi = 1; usi != 0; usi <<= 1 ) {
    138                 usir1 = ceiling_div( usi, usi ); usir2 = ceiling_div( usi + 2hh, usi ); usir3 = ceiling_div( -usi - 2hh, usi );
    139                 printf( "ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
    140         } // for
    141         printf( "\n" );
    142 
    143         printf( "int\n" );
    144         for ( i = 1; i != 0; i <<= 1 ) {
    145                 ir1 = ceiling_div( i, i ); ir2 = ceiling_div( i + 2hh, i ); ir3 = ceiling_div( -i - 2hh, i );
    146                 printf( "ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
    147         } // for
    148         printf( "\n" );
    149 
    150         printf( "unsigned int\n" );
    151         for ( ui = 1; ui != 0; ui <<= 1 ) {
    152                 uir1 = ceiling_div( ui, ui ); uir2 = ceiling_div( ui + 2hh, ui ); uir3 = ceiling_div( -ui - 2hh, ui );
    153                 printf( "ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
    154         } // for
    155         printf( "\n" );
    156 
    157         printf( "long int\n" );
    158         for ( li = 1; li != 0; li <<= 1 ) {
    159                 lir1 = ceiling_div( li, li ); lir2 = ceiling_div( li + 2hh, li ); lir3 = ceiling_div( -li - 2hh, li );
    160                 printf( "ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
    161         } // for
    162         printf( "\n" );
    163 
    164         printf( "unsigned long int\n" );
    165         for ( uli = 1; uli != 0; uli <<= 1 ) {
    166                 ulir1 = ceiling_div( uli, uli ); ulir2 = ceiling_div( uli + 2hh, uli ); ulir3 = ceiling_div( -uli - 2hh, uli );
    167                 printf( "ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
    168         } // for
    169         printf( "\n" );
    170 
    171         printf( "long long int\n" );
    172         for ( lli = 1; lli != 0; lli <<= 1 ) {
    173                 llir1 = ceiling_div( lli, lli ); llir2 = ceiling_div( lli + 2hh, lli ); llir3 = ceiling_div( -lli - 2hh, lli );
    174                 printf( "ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
    175         } // for
    176         printf( "\n" );
    177 
    178         printf( "unsigned long long int\n" );
    179         for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
    180                 ullir1 = ceiling_div( ulli, ulli ); ullir2 = ceiling_div( ulli + 2hh, ulli ); ullir3 = ceiling_div( -ulli - 2hh, ulli );
    181                 printf( "ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
    182         } // for
    183         printf( "\n" );
    184 #endif // 0
    185         //============================================================
    186 #if 1
    187         sout | nl | "ceiling" | nl | nl;
    188 
    189         printf( "signed char\n" );
    190         for ( sc = 1; sc != 0; sc <<= 1 ) {
    191                 scr1 = ceiling( sc, sc ); scr2 = ceiling( sc + 2hh, sc ); scr3 = ceiling( -sc - 2hh, sc );
    192                 printf( "ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
    193         } // for
    194         printf( "\n" );
    195 
    196         printf( "unsigned char\n" );
    197         for ( uc = 1; uc != 0; uc <<= 1 ) {
    198                 ucr1 = ceiling( uc, uc ); ucr2 = ceiling( uc + 2hh, uc ); ucr3 = ceiling( -uc - 2hh, uc );
    199                 printf( "ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
    200         } // for
    201         printf( "\n" );
    202 
    203         printf( "short int\n" );
    204         for ( si = 1; si != 0; si <<= 1 ) {
    205                 sir1 = ceiling( si, si ); sir2 = ceiling( si + 2hh, si ); sir3 = ceiling( -si - 2hh, si );
    206                 printf( "ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
    207         } // for
    208         printf( "\n" );
    209 
    210         printf( "unsigned short int\n" );
    211         for ( usi = 1; usi != 0; usi <<= 1 ) {
    212                 usir1 = ceiling( usi, usi ); usir2 = ceiling( usi + 2hh, usi ); usir3 = ceiling( -usi - 2hh, usi );
    213                 printf( "ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
    214         } // for
    215         printf( "\n" );
    216 
    217         printf( "int\n" );
    218         for ( i = 1; i != 0; i <<= 1 ) {
    219                 ir1 = ceiling( i, i ); ir2 = ceiling( i + 2hh, i ); ir3 = ceiling( -i - 2hh, i );
    220                 printf( "ceiling(%d, %d) = %d, ceiling(%d, %d) = %d, ceiling(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
    221         } // for
    222         printf( "\n" );
    223 
    224         printf( "unsigned int\n" );
    225         for ( ui = 1; ui != 0; ui <<= 1 ) {
    226                 uir1 = ceiling( ui, ui ); uir2 = ceiling( ui + 2hh, ui ); uir3 = ceiling( -ui - 2hh, ui );
    227                 printf( "ceiling(%u, %u) = %u, ceiling(%u, %u) = %u, ceiling(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
    228         } // for
    229         printf( "\n" );
    230 
    231         printf( "long int\n" );
    232         for ( li = 1; li != 0; li <<= 1 ) {
    233                 lir1 = ceiling( li, li ); lir2 = ceiling( li + 2hh, li ); lir3 = ceiling( -li - 2hh, li );
    234                 printf( "ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
    235         } // for
    236         printf( "\n" );
    237 
    238         printf( "unsigned long int\n" );
    239         for ( uli = 1; uli != 0; uli <<= 1 ) {
    240                 ulir1 = ceiling( uli, uli ); ulir2 = ceiling( uli + 2hh, uli ); ulir3 = ceiling( -uli - 2hh, uli );
    241                 printf( "ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
    242         } // for
    243         printf( "\n" );
    244 
    245         printf( "long long int\n" );
    246         for ( lli = 1; lli != 0; lli <<= 1 ) {
    247                 llir1 = ceiling( lli, lli ); llir2 = ceiling( lli + 2hh, lli ); llir3 = ceiling( -lli - 2hh, lli );
    248                 printf( "ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
    249         } // for
    250         printf( "\n" );
    251 
    252         printf( "unsigned long long int\n" );
    253         for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
    254                 ullir1 = ceiling( ulli, ulli ); ullir2 = ceiling( ulli + 2hh, ulli ); ullir3 = ceiling( -ulli - 2hh, ulli );
    255                 printf( "ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
    256         } // for
    257         printf( "\n" );
    258 #endif // 0
    25925
    26026        sout | "floor:" | floor( 1.2F ) | floor( 1.2D ) | floor( 1.2L );
     
    30369// Local Variables: //
    30470// tab-width: 4 //
    305 // compile-command: "cfa math4.cfa" //
     71// compile-command: "cfa math3.cfa" //
    30672// End: //
Note: See TracChangeset for help on using the changeset viewer.