Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tester/float/softfloat1.c

    r7218fe6 r3e6a98c5  
    3939#include "../tester.h"
    4040
    41 #define OPERANDS   10
     41#define OPERANDS  10
    4242#define PRECISION  10000
    4343
     
    5656    cmptype_t *);
    5757
    58 #define NUMBERS \
     58#define NUMBERS \
    5959        3.5, -2.1, 100.0, 50.0, -1024.0, 0.0, 768.3156, 1080.499999, -600.0, 1.0
    6060
     
    6363};
    6464
    65 static double dop_a[OPERANDS] = {
     65static double dop_a[OPERANDS] = {
    6666        NUMBERS
    6767};
     
    8383        if (a < b)
    8484                return -1;
    85        
    86         if (a > b)
     85        else if (a > b)
    8786                return 1;
    88        
     87
    8988        return 0;
    9089}
    9190
    92 static void uint_to_double_template(void *f, unsigned i, cmptype_t *pic,
    93     cmptype_t *pisc)
    94 {
    95         uint_to_double_op_t op = (uint_to_double_op_t) f;
    96        
     91static void
     92uint_to_double_template(void *f, unsigned i, cmptype_t *pic, cmptype_t *pisc)
     93{
    9794        double c;
    9895        double_t sc;
     96
     97        uint_to_double_op_t op = (uint_to_double_op_t) f;
     98       
    9999        op(uop_a[i], &c, &sc);
    100        
     100
    101101        *pic = (cmptype_t) (c * PRECISION);
    102102        *pisc = (cmptype_t) (sc.val * PRECISION);
    103103}
    104104
    105 static void double_to_uint_template(void *f, unsigned i, cmptype_t *pic,
    106     cmptype_t *pisc)
    107 {
    108         double_to_uint_op_t op = (double_to_uint_op_t) f;
    109        
     105static void
     106double_to_uint_template(void *f, unsigned i, cmptype_t *pic, cmptype_t *pisc)
     107{
    110108        unsigned int c;
    111109        unsigned int sc;
     110
     111        double_to_uint_op_t op = (double_to_uint_op_t) f;
     112       
    112113        op(dop_a[i], &c, &sc);
    113        
     114
    114115        *pic = (cmptype_t) c;
    115116        *pisc = (cmptype_t) sc;
     
    117118
    118119
    119 static void float_template_binary(void *f, unsigned i, unsigned j,
    120     cmptype_t *pic, cmptype_t *pisc)
    121 {
    122         float_binary_op_t op = (float_binary_op_t) f;
    123        
     120static void
     121float_template_binary(void *f, unsigned i, unsigned j, cmptype_t *pic,
     122    cmptype_t *pisc)
     123{
    124124        float c;
    125125        float_t sc;
     126
     127        float_binary_op_t op = (float_binary_op_t) f;
     128       
    126129        op(fop_a[i], fop_a[j], &c, &sc);
    127        
     130
    128131        *pic = (cmptype_t) (c * PRECISION);
    129132        *pisc = (cmptype_t) (sc.val * PRECISION);
    130133}
    131134
    132 static void double_template_binary(void *f, unsigned i, unsigned j,
    133     cmptype_t *pic, cmptype_t *pisc)
    134 {
    135         double_binary_op_t op = (double_binary_op_t) f;
    136        
     135static void
     136double_template_binary(void *f, unsigned i, unsigned j, cmptype_t *pic,
     137    cmptype_t *pisc)
     138{
    137139        double c;
    138140        double_t sc;
     141
     142        double_binary_op_t op = (double_binary_op_t) f;
     143       
    139144        op(dop_a[i], dop_a[j], &c, &sc);
    140        
     145
    141146        *pic = (cmptype_t) (c * PRECISION);
    142147        *pisc = (cmptype_t) (sc.val * PRECISION);
    143148}
    144149
    145 static void double_compare_template(void *f, unsigned i, unsigned j,
    146     cmptype_t *pis, cmptype_t *piss)
     150static void
     151double_compare_template(void *f, unsigned i, unsigned j, cmptype_t *pis,
     152    cmptype_t *piss)
    147153{
    148154        double_cmp_op_t op = (double_cmp_op_t) f;
     
    158164                cmptype_t ic;
    159165                cmptype_t isc;
    160                
    161                 template(f, i, &ic, &isc);
     166
     167                template(f, i, &ic, &isc);     
    162168                cmptype_t diff = cmpabs(ic - isc);
    163                
     169                       
    164170                if (diff != 0) {
    165171                        TPRINTF("i=%u diff=%" PRIdCMPTYPE "\n", i, diff);
     
    176182       
    177183        for (unsigned int i = 0; i < OPERANDS; i++) {
    178                 for (unsigned int j = 0; j < OPERANDS; j++) {
     184                for (unsigned int j = 0; j < OPERANDS; j++) {                   
    179185                        cmptype_t ic;
    180186                        cmptype_t isc;
    181                        
    182                         template(f, i, j, &ic, &isc);
     187
     188                        template(f, i, j, &ic, &isc);   
    183189                        cmptype_t diff = cmpabs(ic - isc);
    184190                       
     
    200206}
    201207
    202 static void double_to_uint_operator(double a, unsigned int *pc,
    203     unsigned int *psc)
    204 {
    205         double_t sa;
    206        
    207         sa.val = a;
    208        
     208static void
     209double_to_uint_operator(double a, unsigned int *pc, unsigned int *psc)
     210{
     211        double_t sa;
     212
     213        sa.val = a;
     214
    209215        *pc = (unsigned int) a;
    210216        *psc = double_to_uint(sa.data);
    211217}
    212218
    213 static void double_to_int_operator(double a, unsigned int *pc,
    214     unsigned int *psc)
    215 {
    216         double_t sa;
    217        
    218         sa.val = a;
    219        
     219static void
     220double_to_int_operator(double a, unsigned int *pc, unsigned int *psc)
     221{
     222        double_t sa;
     223
     224        sa.val = a;
     225
    220226        *pc = (int) a;
    221227        *psc = double_to_int(sa.data);
     
    231237        sa.val = a;
    232238        sb.val = b;
    233        
    234         if (sa.data.parts.sign == sb.data.parts.sign) {
     239        if (sa.data.parts.sign == sb.data.parts.sign)
    235240                psc->data = add_float(sa.data, sb.data);
    236         } else if (sa.data.parts.sign) {
     241        else if (sa.data.parts.sign) {
    237242                sa.data.parts.sign = 0;
    238243                psc->data = sub_float(sb.data, sa.data);
     
    262267                return;
    263268        }
    264        
     269
    265270        *pc = a / b;
    266271       
     
    282287        sa.val = a;
    283288        sb.val = b;
    284        
    285         if (sa.data.parts.sign == sb.data.parts.sign) {
     289        if (sa.data.parts.sign == sb.data.parts.sign)
    286290                psc->data = add_double(sa.data, sb.data);
    287         } else if (sa.data.parts.sign) {
     291        else if (sa.data.parts.sign) {
    288292                sa.data.parts.sign = 0;
    289293                psc->data = sub_double(sb.data, sa.data);
     
    313317                return;
    314318        }
    315        
     319
    316320        *pc = a / b;
    317321       
     
    324328}
    325329
    326 static void double_cmp_operator(double a, double b, cmptype_t *pis,
    327     cmptype_t *piss)
     330static void
     331double_cmp_operator(double a, double b, cmptype_t *pis, cmptype_t *piss)
    328332{
    329333        *pis = dcmp(a, b);
    330        
     334
    331335        double_t sa;
    332336        double_t sb;
    333        
    334         sa.val = a;
    335         sb.val = b;
    336        
     337
     338        sa.val = a;
     339        sb.val = b;
     340
    337341        if (is_double_lt(sa.data, sb.data))
    338342                *piss = -1;
     
    348352{
    349353        const char *err = NULL;
    350        
     354
    351355        if (!test_template_binary(float_template_binary, float_add_operator)) {
    352356                err = "Float addition failed";
    353357                TPRINTF("%s\n", err);
    354358        }
    355        
    356359        if (!test_template_binary(float_template_binary, float_mul_operator)) {
    357360                err = "Float multiplication failed";
    358361                TPRINTF("%s\n", err);
    359362        }
    360        
    361363        if (!test_template_binary(float_template_binary, float_div_operator)) {
    362364                err = "Float division failed";
    363365                TPRINTF("%s\n", err);
    364366        }
    365        
    366367        if (!test_template_binary(double_template_binary, double_add_operator)) {
    367368                err = "Double addition failed";
    368369                TPRINTF("%s\n", err);
    369370        }
    370        
    371371        if (!test_template_binary(double_template_binary, double_mul_operator)) {
    372372                err = "Double multiplication failed";
    373373                TPRINTF("%s\n", err);
    374374        }
    375        
    376375        if (!test_template_binary(double_template_binary, double_div_operator)) {
    377376                err = "Double division failed";
    378377                TPRINTF("%s\n", err);
    379378        }
    380        
    381379        if (!test_template_binary(double_compare_template, double_cmp_operator)) {
    382380                err = "Double comparison failed";
    383381                TPRINTF("%s\n", err);
    384382        }
    385        
    386383        if (!test_template_unary(uint_to_double_template,
    387384            uint_to_double_operator)) {
     
    389386                TPRINTF("%s\n", err);
    390387        }
    391        
    392388        if (!test_template_unary(double_to_uint_template,
    393389            double_to_uint_operator)) {
     
    395391                TPRINTF("%s\n", err);
    396392        }
    397        
    398393        if (!test_template_unary(double_to_uint_template,
    399394            double_to_int_operator)) {
     
    404399        return err;
    405400}
     401
Note: See TracChangeset for help on using the changeset viewer.