os/ossrv/genericopenlibs/liboil/tsrc/testsuite/math/src/math.c
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
//Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
sl@0
    17
sl@0
    18
#ifdef HAVE_CONFIG_H
sl@0
    19
#include "config.h"
sl@0
    20
#endif
sl@0
    21
sl@0
    22
#include <liboil/liboil.h>
sl@0
    23
#include <liboil/liboilfunction.h>
sl@0
    24
#include <stdio.h>
sl@0
    25
#include <string.h>
sl@0
    26
#include <globals.h>
sl@0
    27
sl@0
    28
#define LOG_FILE "c:\\logs\\testsuite_math_log.txt"
sl@0
    29
#include "std_log_result.h"
sl@0
    30
#include "utils.h"
sl@0
    31
#define LOG_FILENAME_LINE __FILE__, __LINE__
sl@0
    32
#define MAX_SIZE 10
sl@0
    33
#define MAX_SIZE1 8
sl@0
    34
#define MAX_DSIZE 5
sl@0
    35
sl@0
    36
int16_t arr1[MAX_SIZE], arr2[MAX_SIZE], res1[MAX_SIZE];
sl@0
    37
uint8_t uarr1[MAX_SIZE],uarr2[MAX_SIZE1],uarr3[MAX_SIZE1], ures1[MAX_SIZE1];
sl@0
    38
float farr1[MAX_SIZE1], farr2[MAX_SIZE1],fres1[MAX_SIZE1];
sl@0
    39
double darr1[MAX_DSIZE], darr2[MAX_DSIZE],dres1[MAX_DSIZE];
sl@0
    40
sl@0
    41
void create_xml(int result)
sl@0
    42
{
sl@0
    43
    if(result)
sl@0
    44
        assert_failed = 1;
sl@0
    45
    
sl@0
    46
    testResultXml("testsuite_math");
sl@0
    47
    close_log_file();
sl@0
    48
}
sl@0
    49
sl@0
    50
void test_add_s16()
sl@0
    51
    {
sl@0
    52
    int i;
sl@0
    53
    int16_t check[MAX_SIZE]={8,13,18,23,28,33,38,43,48,53};
sl@0
    54
    for(i=0;i<MAX_SIZE;i++)
sl@0
    55
        {
sl@0
    56
          res1[i]=0;
sl@0
    57
          arr1[i]=(i+2) *3;
sl@0
    58
          arr2[i]=(i+1)*2;
sl@0
    59
          std_log(LOG_FILENAME_LINE,"arr1[%d] = %d, arr2[%d] = %d", i,arr1[i],i,arr2[i]);
sl@0
    60
        }
sl@0
    61
    oil_add_s16(res1,arr1,arr2,MAX_SIZE);
sl@0
    62
    
sl@0
    63
    for(i=0;i<MAX_SIZE;i++)
sl@0
    64
        {
sl@0
    65
        if(res1[i] == check[i])
sl@0
    66
            {
sl@0
    67
            std_log(LOG_FILENAME_LINE,"oil_add_s16 successful, res1[%d]=%d", i,res1[i]);
sl@0
    68
            }
sl@0
    69
        else
sl@0
    70
            {
sl@0
    71
             assert_failed = 1;
sl@0
    72
             std_log(LOG_FILENAME_LINE,"oil_add_s16 unsuccessful, Expected =%d,Obtained =%d",check[i],res1[i]);
sl@0
    73
            }
sl@0
    74
        }  
sl@0
    75
    }
sl@0
    76
sl@0
    77
void test_add_s16_u8()
sl@0
    78
    {
sl@0
    79
    int i;
sl@0
    80
    int16_t check[MAX_SIZE]={6,11,16,21,26,31,36,41,46,51};
sl@0
    81
    for(i=0;i<MAX_SIZE;i++)
sl@0
    82
        {
sl@0
    83
          res1[i]=0;
sl@0
    84
          arr1[i]=(i+2)*3;
sl@0
    85
          uarr1[i]=i*2;
sl@0
    86
          std_log(LOG_FILENAME_LINE,"arr1[%d] = %d, uarr1[%d] = %d", i,arr1[i],i,uarr1[i]);
sl@0
    87
        }
sl@0
    88
    oil_add_s16_u8(res1,arr1,uarr1,MAX_SIZE);
sl@0
    89
    
sl@0
    90
    for(i=0;i<MAX_SIZE;i++)
sl@0
    91
        {
sl@0
    92
        if(res1[i] == check[i])
sl@0
    93
            {
sl@0
    94
            std_log(LOG_FILENAME_LINE,"oil_add_s16_u8 successful, res1[%d] = %d", i,res1[i]);
sl@0
    95
            }
sl@0
    96
        else
sl@0
    97
            {
sl@0
    98
             assert_failed = 1;
sl@0
    99
             std_log(LOG_FILENAME_LINE,"oil_add_s16_u8 unsuccessful,Expected =%d,Obtained =%d",check[i],res1[i]);
sl@0
   100
            }
sl@0
   101
        }  
sl@0
   102
    }
sl@0
   103
sl@0
   104
sl@0
   105
sl@0
   106
sl@0
   107
void test_add_f32()
sl@0
   108
    {
sl@0
   109
    int i;
sl@0
   110
    float fcheck[MAX_SIZE1]={8.30000019073486,12.10000038146973,15.89999961853027,19.70000076293945,23.50000000000000,27.29999923706055,31.10000038146973,34.90000152587891};
sl@0
   111
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   112
        {
sl@0
   113
          fres1[i]=0;
sl@0
   114
          farr1[i]=(i+2.5)*3;
sl@0
   115
          farr2[i]=(i+1)*0.8;
sl@0
   116
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f, farr2[%d] = %f", i,farr1[i],i,farr2[i]);
sl@0
   117
        }
sl@0
   118
    oil_add_f32(fres1,farr1,farr2,MAX_SIZE1);
sl@0
   119
    
sl@0
   120
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   121
        {
sl@0
   122
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   123
            {
sl@0
   124
            std_log(LOG_FILENAME_LINE,"oil_add_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   125
            }
sl@0
   126
        else
sl@0
   127
            {
sl@0
   128
             assert_failed = 1;
sl@0
   129
             std_log(LOG_FILENAME_LINE,"oil_add_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   130
            }
sl@0
   131
        }  
sl@0
   132
    }
sl@0
   133
sl@0
   134
sl@0
   135
void test_add_f64()
sl@0
   136
    {
sl@0
   137
    int i;
sl@0
   138
    double dcheck[MAX_DSIZE]={7.51500000000000,10.85500000000000,14.19500000000000,17.53500000000000,20.87500000000000};
sl@0
   139
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   140
        {
sl@0
   141
          fres1[i]=0;
sl@0
   142
          darr1[i]=(i+2.25)*3.34;
sl@0
   143
          arr2[i]=(i+1.3)*0.18;
sl@0
   144
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %15.14f, farr2[%d] = %15.14f", i,darr1[i],i,darr2[i]);
sl@0
   145
        }
sl@0
   146
    oil_add_f64(dres1,darr1,darr2,MAX_DSIZE);
sl@0
   147
    
sl@0
   148
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   149
        {
sl@0
   150
        if(comparefloats(dres1[i],dcheck[i])==0)
sl@0
   151
            {
sl@0
   152
            std_log(LOG_FILENAME_LINE,"oil_add_f64 successful, dres1[%d] = %15.14f", i,dres1[i]);
sl@0
   153
            }
sl@0
   154
        else
sl@0
   155
            {
sl@0
   156
             assert_failed = 1;
sl@0
   157
             std_log(LOG_FILENAME_LINE,"oil_add_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dcheck[i],dres1[i]);
sl@0
   158
            } 
sl@0
   159
        }  
sl@0
   160
    }
sl@0
   161
sl@0
   162
sl@0
   163
void test_sub_s16()
sl@0
   164
    {
sl@0
   165
    int i;
sl@0
   166
    int16_t check[MAX_SIZE]={4,5,6,7,8,9,10,11,12,13};
sl@0
   167
    for(i=0;i<MAX_SIZE;i++)
sl@0
   168
        {
sl@0
   169
          res1[i]=0;
sl@0
   170
          arr1[i]=(i+2) *3;
sl@0
   171
          arr2[i]=(i+1)*2;
sl@0
   172
          std_log(LOG_FILENAME_LINE,"arr1[%d]=%d,arr2[%d]=%d", i,arr1[i],i,arr2[i]);
sl@0
   173
        }
sl@0
   174
    
sl@0
   175
    oil_subtract_s16(res1,arr1,arr2,MAX_SIZE);
sl@0
   176
    
sl@0
   177
    for(i=0;i<MAX_SIZE;i++)
sl@0
   178
        {
sl@0
   179
        if(res1[i] == check[i])
sl@0
   180
            {
sl@0
   181
            std_log(LOG_FILENAME_LINE,"oil_subtract_s16 successful,res1[%d]=%d", i,res1[i]);
sl@0
   182
            }
sl@0
   183
        else
sl@0
   184
            {
sl@0
   185
             assert_failed = 1;
sl@0
   186
             std_log(LOG_FILENAME_LINE,"oil_subtract_s16 unsuccessful, Expected =%d,Obtained =%d",check[i],res1[i]);
sl@0
   187
            }
sl@0
   188
        }  
sl@0
   189
    }
sl@0
   190
sl@0
   191
void test_sub_s16_u8()
sl@0
   192
    {
sl@0
   193
    int i;
sl@0
   194
    int16_t check[MAX_SIZE]={6,7,8,9,10,11,12,13,14,15};
sl@0
   195
    for(i=0;i<MAX_SIZE;i++)
sl@0
   196
        {
sl@0
   197
          res1[i]=0;
sl@0
   198
          arr1[i]=(i+2)*3;
sl@0
   199
          uarr1[i]=i*2;
sl@0
   200
          std_log(LOG_FILENAME_LINE,"arr1[%d]=%d, uarr1[%d]=%d",i,arr1[i],i,uarr1[i]);
sl@0
   201
        }
sl@0
   202
    oil_subtract_s16_u8(res1,arr1,uarr1,MAX_SIZE);
sl@0
   203
    
sl@0
   204
    for(i=0;i<MAX_SIZE;i++)
sl@0
   205
        {
sl@0
   206
        if(res1[i] == check[i])
sl@0
   207
            {
sl@0
   208
            std_log(LOG_FILENAME_LINE,"oil_subtract_s16_u8 successful, res1[%d] = %d", i,res1[i]);
sl@0
   209
            }
sl@0
   210
        else
sl@0
   211
            {
sl@0
   212
             assert_failed = 1;
sl@0
   213
             std_log(LOG_FILENAME_LINE,"oil_subtract_s16_u8 unsuccessful, Expected =%d,Obtained =%d",check[i],res1[i]);
sl@0
   214
            }
sl@0
   215
        }  
sl@0
   216
    }
sl@0
   217
sl@0
   218
sl@0
   219
sl@0
   220
void test_sub_f32()
sl@0
   221
    {
sl@0
   222
    int i;
sl@0
   223
    float fcheck[MAX_SIZE1]={6.69999980926514,8.89999961853027,11.10000038146973,13.30000019073486,15.50000000000000,17.70000076293945,19.89999961853027,22.10000038146973};
sl@0
   224
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   225
        {
sl@0
   226
          fres1[i]=0;
sl@0
   227
          farr1[i]=(i+2.5)*3;
sl@0
   228
          farr2[i]=(i+1)*0.8;
sl@0
   229
          std_log(LOG_FILENAME_LINE,"farr1[%d]=%f,farr2[%d]=%f", i,farr1[i],i,farr2[i]);
sl@0
   230
        }
sl@0
   231
    oil_subtract_f32(fres1,farr1,farr2,MAX_SIZE1);
sl@0
   232
    
sl@0
   233
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   234
        {
sl@0
   235
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   236
            {
sl@0
   237
            std_log(LOG_FILENAME_LINE,"oil_subtract_f32 successful,fres1[%d]=%15.14f", i,fres1[i]);
sl@0
   238
            }
sl@0
   239
        else
sl@0
   240
            {
sl@0
   241
             assert_failed = 1;
sl@0
   242
             std_log(LOG_FILENAME_LINE,"oil_subtract_f32 unsuccessful,Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   243
            }
sl@0
   244
        }  
sl@0
   245
    }
sl@0
   246
sl@0
   247
sl@0
   248
void test_sub_f64()
sl@0
   249
    {
sl@0
   250
    int i;
sl@0
   251
    double dcheck[MAX_DSIZE]={7.28100000000000,10.44100000000000,13.60100000000000,16.76100000000000,19.92100000000000};
sl@0
   252
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   253
        {
sl@0
   254
          dres1[i]=0;
sl@0
   255
          darr1[i]=(i+2.25)*3.34;
sl@0
   256
          darr2[i]=(i+1.3)*0.18;
sl@0
   257
          std_log(LOG_FILENAME_LINE,"darr1[%d] = %15.14f, darr2[%d] = %15.14f", i,darr1[i],i,darr2[i]);
sl@0
   258
        }
sl@0
   259
    oil_subtract_f64(dres1,darr1,darr2,MAX_DSIZE);
sl@0
   260
    
sl@0
   261
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   262
        {
sl@0
   263
        if(comparefloats(dres1[i],dcheck[i])==0)
sl@0
   264
            {
sl@0
   265
            std_log(LOG_FILENAME_LINE,"oil_subtract_f64 successful, dres1[%d] = %15.14f", i,dres1[i]);
sl@0
   266
            }
sl@0
   267
        else
sl@0
   268
            {
sl@0
   269
             assert_failed = 1;
sl@0
   270
             std_log(LOG_FILENAME_LINE,"oil_subtract_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dcheck[i],dres1[i]);
sl@0
   271
            } 
sl@0
   272
        }  
sl@0
   273
    }
sl@0
   274
sl@0
   275
sl@0
   276
void test_mult_f32()
sl@0
   277
    {
sl@0
   278
    int i;
sl@0
   279
    float fcheck[MAX_SIZE1]={0.66799998283386,2.00400018692017,4.00799989700317,6.68000030517578,10.02000045776367,14.02799987792969,18.70399856567383,24.04800033569336};
sl@0
   280
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   281
        {
sl@0
   282
          fres1[i]=0;
sl@0
   283
          farr1[i]=(i+2)*3.34;
sl@0
   284
          farr2[i]=(i+1)*0.1;
sl@0
   285
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f, farr2[%d] = %f", i,farr1[i],i,farr2[i]);
sl@0
   286
        }
sl@0
   287
    oil_multiply_f32(fres1,farr1,farr2,MAX_SIZE1);
sl@0
   288
    
sl@0
   289
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   290
        {
sl@0
   291
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   292
            {
sl@0
   293
              std_log(LOG_FILENAME_LINE,"oil_multiply_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   294
             }
sl@0
   295
           else
sl@0
   296
               {
sl@0
   297
                assert_failed = 1;
sl@0
   298
                std_log(LOG_FILENAME_LINE,"oil_multiply_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   299
               } 
sl@0
   300
        }
sl@0
   301
    }
sl@0
   302
sl@0
   303
void test_mult_f64()
sl@0
   304
    {
sl@0
   305
    int i;
sl@0
   306
    double dcheck[MAX_DSIZE]={1.71943200000000,4.42483200000000,8.33263200000000,13.44283200000000,19.75543200000000};
sl@0
   307
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   308
         {
sl@0
   309
           dres1[i]=0;
sl@0
   310
           darr1[i]=(i+2.2)*3.34;
sl@0
   311
           darr2[i]=(i+1.3)*0.18;
sl@0
   312
           std_log(LOG_FILENAME_LINE,"darr1[%d] = %15.14f, darr2[%d] = %15.14f", i,darr1[i],i,darr2[i]);
sl@0
   313
         }
sl@0
   314
    oil_multiply_f64(dres1,darr1,darr2,MAX_DSIZE);
sl@0
   315
     
sl@0
   316
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   317
         {
sl@0
   318
         if(comparefloats(dres1[i],dcheck[i])==0)
sl@0
   319
             {
sl@0
   320
             std_log(LOG_FILENAME_LINE,"oil_multiply_f64 successful, dres1[%d] = %15.14f", i,dres1[i]);
sl@0
   321
             }
sl@0
   322
         else
sl@0
   323
             {
sl@0
   324
              assert_failed = 1;
sl@0
   325
              std_log(LOG_FILENAME_LINE,"oil_multiply_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dcheck[i],dres1[i]);
sl@0
   326
             } 
sl@0
   327
         }  
sl@0
   328
    }
sl@0
   329
sl@0
   330
sl@0
   331
void test_div_f32()
sl@0
   332
    {
sl@0
   333
    int i;
sl@0
   334
    float fcheck[MAX_SIZE1]={60.00000000000000,45.00000000000000,40.00000000000000,37.50000000000000,36.00000000000000,35.00000000000000,34.28571319580078,33.75000000000000};
sl@0
   335
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   336
        {
sl@0
   337
          fres1[i]=0;
sl@0
   338
          farr1[i]=(i+2)*3;
sl@0
   339
          farr2[i]=(i+1)*0.1;
sl@0
   340
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f, farr2[%d] = %f", i,farr1[i],i,farr2[i]);
sl@0
   341
        }
sl@0
   342
    oil_divide_f32(fres1,farr1,farr2,MAX_SIZE1);
sl@0
   343
    
sl@0
   344
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   345
        {
sl@0
   346
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   347
            {
sl@0
   348
              std_log(LOG_FILENAME_LINE,"oil_divide_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   349
              }
sl@0
   350
           else
sl@0
   351
               {
sl@0
   352
                assert_failed = 1;
sl@0
   353
                std_log(LOG_FILENAME_LINE,"oil_divide_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   354
               } 
sl@0
   355
        }
sl@0
   356
    }
sl@0
   357
sl@0
   358
void test_div_f64()
sl@0
   359
    {
sl@0
   360
    int i;
sl@0
   361
    double dcheck[MAX_DSIZE]={2.82615384615385,2.32347826086957,2.12545454545455,2.01953488372093,1.95358490566038};
sl@0
   362
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   363
         {
sl@0
   364
           dres1[i]=0;
sl@0
   365
           darr1[i]=(i+2.2)*3.34;
sl@0
   366
           darr2[i]=(i+1.3)*2;
sl@0
   367
           std_log(LOG_FILENAME_LINE,"darr1[%d] = %15.14f, darr2[%d] = %15.14f", i,darr1[i],i,darr2[i]);
sl@0
   368
         }
sl@0
   369
    oil_divide_f64(dres1,darr1,darr2,MAX_DSIZE);
sl@0
   370
     
sl@0
   371
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   372
         {
sl@0
   373
         if(comparefloats(dres1[i],dcheck[i])==0)
sl@0
   374
             {
sl@0
   375
             std_log(LOG_FILENAME_LINE,"oil_divide_f64 successful, dres1[%d] = %15.14f", i,dres1[i]);
sl@0
   376
             }
sl@0
   377
         else
sl@0
   378
             {
sl@0
   379
              assert_failed = 1;
sl@0
   380
              std_log(LOG_FILENAME_LINE,"oil_divide_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dcheck[i],dres1[i]);
sl@0
   381
             } 
sl@0
   382
         }  
sl@0
   383
    }
sl@0
   384
sl@0
   385
sl@0
   386
sl@0
   387
void test_minimum_f32()
sl@0
   388
    {
sl@0
   389
    int i;
sl@0
   390
    float fmarr1[MAX_SIZE] = {2.10, 0.23123, 532.2, 1, 0908.34, 23432.1, 11.34, 0.0002, 87.2324, 700};
sl@0
   391
    float fmarr2[MAX_SIZE] = { 86.3423, 1231.11, 65457.2, 0, 10.3, 700, 2.10, 8967.21, 3423.23,211.076 };
sl@0
   392
    float fmin1[MAX_SIZE];
sl@0
   393
    float fmcheck[MAX_SIZE]={2.09999990463257,0.23123000562191,532.20001220703125,0.00000000000000,10.30000019073486,700.00000000000000,2.09999990463257,0.00019999999495,87.23239898681641,211.07600402832031};
sl@0
   394
    for(i=0;i<MAX_SIZE;i++)
sl@0
   395
        {
sl@0
   396
          fmin1[i]=0;
sl@0
   397
          std_log(LOG_FILENAME_LINE,"fmarr1[%d] = %f, fmarr2[%d] = %f", i,fmarr1[i],i,fmarr2[i]);
sl@0
   398
        }
sl@0
   399
    oil_minimum_f32(fmin1,fmarr1,fmarr2,MAX_SIZE);
sl@0
   400
    
sl@0
   401
    for(i=0;i<MAX_SIZE;i++)
sl@0
   402
        {
sl@0
   403
        if(comparefloats(fmin1[i],fmcheck[i])==0)
sl@0
   404
            {
sl@0
   405
              std_log(LOG_FILENAME_LINE,"oil_minimum_f32 successful, fmin1[%d] = %15.14f", i,fmin1[i]);
sl@0
   406
             }
sl@0
   407
         else
sl@0
   408
            {
sl@0
   409
              assert_failed = 1;
sl@0
   410
              std_log(LOG_FILENAME_LINE,"oil_minimum_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fmcheck[i],fmin1[i]);
sl@0
   411
            } 
sl@0
   412
        }
sl@0
   413
    }
sl@0
   414
sl@0
   415
sl@0
   416
void test_minimum_f64()
sl@0
   417
    {
sl@0
   418
    int i;
sl@0
   419
    float dmarr1[MAX_SIZE] = {2324235.10, 0231.3223, 532.2, 1.3423421, 23432.1, 11.3423424, 340.0002, 87342.3424,3243.12,0};
sl@0
   420
    float dmarr2[MAX_SIZE] = { 2386.3423, 11131.11, 6545.2, 230, 110.31, 400.700, 122.10, 892467.22, 24323.23,3243.12 };
sl@0
   421
    float dmin1[MAX_SIZE];
sl@0
   422
    float dmcheck[MAX_SIZE]={2386.34228515625000,231.32229614257812,532.20001220703125,1.34234213829041,110.30999755859375,11.34234237670898,122.09999847412109,87342.34375000000000,3243.12011718750000,0.00000000000000};
sl@0
   423
    for(i=0;i<MAX_SIZE;i++)
sl@0
   424
        {
sl@0
   425
          dmin1[i]=0;
sl@0
   426
          std_log(LOG_FILENAME_LINE,"fmarr1[%d] = %15.14f, fmarr2[%d] = %15.14f", i,dmarr1[i],i,dmarr2[i]);
sl@0
   427
        }
sl@0
   428
    oil_minimum_f64(dmin1,dmarr1,dmarr2,MAX_SIZE);
sl@0
   429
    
sl@0
   430
    for(i=0;i<MAX_SIZE;i++)
sl@0
   431
        {
sl@0
   432
        if(comparefloats(dmin1[i],dmcheck[i])==0)
sl@0
   433
            {
sl@0
   434
              std_log(LOG_FILENAME_LINE,"oil_minimum_f64 successful, dmin1[%d] = %15.14f", i,dmin1[i]);
sl@0
   435
            }
sl@0
   436
        else
sl@0
   437
            {
sl@0
   438
              assert_failed = 1;
sl@0
   439
              std_log(LOG_FILENAME_LINE,"oil_minimum_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dmcheck[i],dmin1[i]);
sl@0
   440
            } 
sl@0
   441
        }
sl@0
   442
    }
sl@0
   443
sl@0
   444
sl@0
   445
sl@0
   446
void test_maximum_f32()
sl@0
   447
    {
sl@0
   448
    int i;
sl@0
   449
    float fmarr1[MAX_SIZE] = {2.10, 0.23123, 532.2, 1, 0908.34, 23432.1, 11.34, 0.0002, 87.2324, 700};
sl@0
   450
    float fmarr2[MAX_SIZE] = { 86.3423, 1231.11, 65457.2, 0, 10.3, 700, 2.10, 8967.21, 3423.23,211.076 };
sl@0
   451
    float fmax1[MAX_SIZE];
sl@0
   452
    float fmcheck[MAX_SIZE]={86.34230041503906,1231.10998535156250,65457.19921875000000,1.00000000000000,908.34002685546875,23432.09960937500000,11.34000015258789,8967.20996093750000,3423.22998046875000,700.00000000000000};
sl@0
   453
    for(i=0;i<MAX_SIZE;i++)
sl@0
   454
        {
sl@0
   455
          fmax1[i]=0;
sl@0
   456
          std_log(LOG_FILENAME_LINE,"fmarr1[%d] = %f, fmarr2[%d] = %f", i,fmarr1[i],i,fmarr2[i]);
sl@0
   457
        }
sl@0
   458
    oil_maximum_f32(fmax1,fmarr1,fmarr2,MAX_SIZE);
sl@0
   459
    
sl@0
   460
    for(i=0;i<MAX_SIZE;i++)
sl@0
   461
        {
sl@0
   462
        if(comparefloats(fmax1[i],fmcheck[i])==0)
sl@0
   463
            {
sl@0
   464
              std_log(LOG_FILENAME_LINE,"oil_maximum_f32 successful, fmax1[%d] = %15.14f", i,fmax1[i]);
sl@0
   465
            }
sl@0
   466
        else
sl@0
   467
            {
sl@0
   468
              assert_failed = 1;
sl@0
   469
              std_log(LOG_FILENAME_LINE,"oil_maximum_f32 unsuccessful,Expected =%15.14f,Obtained =%15.14f",fmcheck[i],fmax1[i]);
sl@0
   470
            } 
sl@0
   471
        }
sl@0
   472
    }
sl@0
   473
sl@0
   474
sl@0
   475
void test_maximum_f64()
sl@0
   476
    {
sl@0
   477
    int i;
sl@0
   478
    float dmarr1[MAX_SIZE] = {2324235.10, 0231.3223, 532.2, 1.3423421, 23432.1, 11.3423424, 340.0002, 87342.3424,3243.12};
sl@0
   479
    float dmarr2[MAX_SIZE] = {2386.3423, 11131.11, 6545.2, 230, 110.31, 400.700, 122.10, 892467.22, 24323.23,3243.12 };
sl@0
   480
    float dmax1[MAX_SIZE];
sl@0
   481
    float dmcheck[MAX_SIZE]={2324235.00000000000000,11131.11035156250000,6545.20019531250000,230.00000000000000,23432.09960937500000,400.70001220703125,340.00021362304688,892467.25000000000000,24323.23046875000000,3243.12011718750000};
sl@0
   482
    for(i=0;i<MAX_SIZE;i++)
sl@0
   483
        {
sl@0
   484
          dmax1[i]=0;
sl@0
   485
          std_log(LOG_FILENAME_LINE,"fmarr1[%d] = %15.14f, fmarr2[%d] = %15.14f", i,dmarr1[i],i,dmarr2[i]);
sl@0
   486
        }
sl@0
   487
    oil_maximum_f64(dmax1,dmarr1,dmarr2,MAX_SIZE);
sl@0
   488
    
sl@0
   489
    for(i=0;i<MAX_SIZE;i++)
sl@0
   490
        {
sl@0
   491
        if(comparefloats(dmax1[i],dmcheck[i])==0)
sl@0
   492
           {
sl@0
   493
            std_log(LOG_FILENAME_LINE,"oil_maximum_f64 successful, dmax1[%d] = %15.14f", i,dmax1[i]);
sl@0
   494
           }
sl@0
   495
        else
sl@0
   496
          {
sl@0
   497
           assert_failed = 1;
sl@0
   498
           std_log(LOG_FILENAME_LINE,"oil_maximum_f64 unsuccessful, Expected =%15.14f,Obtained =%15.14f",dmcheck[i],dmax1[i]);
sl@0
   499
          } 
sl@0
   500
        }
sl@0
   501
    }
sl@0
   502
sl@0
   503
sl@0
   504
void test_negative_f32()
sl@0
   505
    {
sl@0
   506
    int i;
sl@0
   507
    float fcheck[MAX_SIZE1]={-6.19999980926514,-9.30000019073486,-12.39999961853027,-15.50000000000000,-18.60000038146973,-21.70000076293945,-24.79999923706055,-27.89999961853027};
sl@0
   508
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   509
        {
sl@0
   510
          fres1[i]=0;
sl@0
   511
          farr1[i]=(i+2)*3.1;
sl@0
   512
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f", i,farr1[i]);
sl@0
   513
        }
sl@0
   514
    oil_negative_f32(fres1,farr1,MAX_SIZE1);
sl@0
   515
    
sl@0
   516
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   517
        {
sl@0
   518
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   519
            {
sl@0
   520
              std_log(LOG_FILENAME_LINE,"oil_negative_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   521
            }
sl@0
   522
           else
sl@0
   523
            {
sl@0
   524
             assert_failed = 1;
sl@0
   525
             std_log(LOG_FILENAME_LINE,"oil_negative_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   526
            } 
sl@0
   527
        }
sl@0
   528
    }
sl@0
   529
sl@0
   530
sl@0
   531
sl@0
   532
void test_inverse_f32()
sl@0
   533
    {
sl@0
   534
    int i;
sl@0
   535
    float fcheck[MAX_SIZE1]={1.00000000000000,0.66666668653488,0.50000000000000,0.40000000596046,0.33333334326744,0.28571429848671,0.25000000000000,0.22222222387791};
sl@0
   536
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   537
        {
sl@0
   538
          fres1[i]=0;
sl@0
   539
          farr1[i]=(i+2)*0.5;
sl@0
   540
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f", i,farr1[i]);
sl@0
   541
        }
sl@0
   542
    oil_inverse_f32(fres1,farr1,MAX_SIZE1);
sl@0
   543
    
sl@0
   544
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   545
        {
sl@0
   546
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   547
            {
sl@0
   548
             std_log(LOG_FILENAME_LINE,"oil_inverse_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   549
            }
sl@0
   550
        else
sl@0
   551
           {
sl@0
   552
            assert_failed = 1;
sl@0
   553
            std_log(LOG_FILENAME_LINE,"oil_inverse_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   554
           } 
sl@0
   555
        }
sl@0
   556
    }
sl@0
   557
sl@0
   558
sl@0
   559
void test_sign_f32()
sl@0
   560
    {
sl@0
   561
    int i;
sl@0
   562
    float fcheck[MAX_SIZE1]={0.30000001192093,3.29999995231628,6.30000019073486,9.30000019073486,12.30000019073486,15.30000019073486,18.29999923706055,21.29999923706055};
sl@0
   563
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   564
        {
sl@0
   565
          fres1[i]=0;
sl@0
   566
          farr1[i]=(i+0.1)*3;
sl@0
   567
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f", i,farr1[i]);
sl@0
   568
        }
sl@0
   569
    oil_sign_f32(fres1,farr1,MAX_SIZE1);
sl@0
   570
    
sl@0
   571
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   572
        {
sl@0
   573
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   574
            {
sl@0
   575
             std_log(LOG_FILENAME_LINE,"oil_sign_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   576
            }
sl@0
   577
        else
sl@0
   578
           {
sl@0
   579
            assert_failed = 1;
sl@0
   580
            std_log(LOG_FILENAME_LINE,"oil_sign_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   581
           } 
sl@0
   582
        }
sl@0
   583
    }
sl@0
   584
sl@0
   585
sl@0
   586
void test_floor_f32()
sl@0
   587
    {
sl@0
   588
    int i;
sl@0
   589
    float fcheck[MAX_SIZE1]={3.00000000000000,7.00000000000000,10.00000000000000,14.00000000000000,17.00000000000000,21.00000000000000,24.00000000000000,28.00000000000000};
sl@0
   590
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   591
        {
sl@0
   592
          fres1[i]=0;
sl@0
   593
          farr1[i]=(i+1)*3.5;
sl@0
   594
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f", i,farr1[i]);
sl@0
   595
        }
sl@0
   596
    oil_floor_f32(fres1,farr1,MAX_SIZE1);
sl@0
   597
    
sl@0
   598
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   599
        {
sl@0
   600
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   601
          {
sl@0
   602
           std_log(LOG_FILENAME_LINE,"oil_floor_f32 successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   603
          }
sl@0
   604
        else
sl@0
   605
         {
sl@0
   606
           assert_failed = 1;
sl@0
   607
           std_log(LOG_FILENAME_LINE,"oil_floor_f32 unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   608
         } 
sl@0
   609
        }
sl@0
   610
    }
sl@0
   611
sl@0
   612
void test_scalaradd_f32()
sl@0
   613
    {
sl@0
   614
    int i;
sl@0
   615
    float fcheck[MAX_SIZE1]={18.20000076293945,21.20000076293945,24.20000076293945,27.20000076293945,30.20000076293945,33.20000076293945,36.20000076293945,39.20000076293945}, add1[8] = {3.2};
sl@0
   616
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   617
        {
sl@0
   618
          fres1[i]=0;
sl@0
   619
          farr1[i]=(i+5)*3;
sl@0
   620
          std_log(LOG_FILENAME_LINE,"farr1[%d] = %f", i,farr1[i]);
sl@0
   621
        }
sl@0
   622
    oil_scalaradd_f32_ns(fres1,farr1,add1,MAX_SIZE1);
sl@0
   623
    
sl@0
   624
    for(i=0;i<MAX_SIZE1;i++)
sl@0
   625
        {
sl@0
   626
        if(comparefloats(fres1[i],fcheck[i])==0)
sl@0
   627
            {
sl@0
   628
              std_log(LOG_FILENAME_LINE,"oil_scalaradd_f32_ns successful, fres1[%d] = %15.14f", i,fres1[i]);
sl@0
   629
            }
sl@0
   630
         else
sl@0
   631
            {
sl@0
   632
             assert_failed = 1;
sl@0
   633
             std_log(LOG_FILENAME_LINE,"oil_scalaradd_f32_ns unsuccessful, Expected =%15.14f,Obtained =%15.14f",fcheck[i],fres1[i]);
sl@0
   634
           } 
sl@0
   635
        }
sl@0
   636
    }
sl@0
   637
sl@0
   638
sl@0
   639
void test_scalarmult_f64()
sl@0
   640
    {
sl@0
   641
    int i;
sl@0
   642
    double dcheck[MAX_DSIZE]={9.00000000000000,15.00000000000000,21.00000000000000,27.00000000000000,33.00000000000000}, mul1[MAX_DSIZE] = {3};
sl@0
   643
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   644
        {
sl@0
   645
          dres1[i]=0;
sl@0
   646
          darr1[i]=(i+1.5)*2;
sl@0
   647
          std_log(LOG_FILENAME_LINE,"darr1[%d] = %15.14f", i,darr1[i]);
sl@0
   648
        }
sl@0
   649
    oil_scalarmultiply_f64_ns(dres1,darr1,mul1,MAX_DSIZE);
sl@0
   650
    
sl@0
   651
    for(i=0;i<MAX_DSIZE;i++)
sl@0
   652
        {
sl@0
   653
        if(comparefloats(dres1[i],dcheck[i])==0)
sl@0
   654
            {
sl@0
   655
             std_log(LOG_FILENAME_LINE,"oil_scalarmultiply_f64_ns successful, dres1[%d] = %15.14f", i,dres1[i]);
sl@0
   656
            }
sl@0
   657
         else
sl@0
   658
            {
sl@0
   659
             assert_failed = 1;
sl@0
   660
             std_log(LOG_FILENAME_LINE,"oil_scalarmultiply_f64_ns unsuccessful, Expected =%15.14f,Obtained =%15.14f",dcheck[i],dres1[i]);
sl@0
   661
            } 
sl@0
   662
        }
sl@0
   663
    }
sl@0
   664
sl@0
   665
sl@0
   666
int main ()
sl@0
   667
{
sl@0
   668
sl@0
   669
  std_log(LOG_FILENAME_LINE,"Test started testsuite_math");
sl@0
   670
  oil_init (); 
sl@0
   671
  
sl@0
   672
  std_log(LOG_FILENAME_LINE,"ADD_S16 TEST");
sl@0
   673
  test_add_s16();
sl@0
   674
  
sl@0
   675
  std_log(LOG_FILENAME_LINE,"ADD_S16_U8 TEST");
sl@0
   676
  test_add_s16_u8();
sl@0
   677
sl@0
   678
  std_log(LOG_FILENAME_LINE,"ADD_F32 TEST");
sl@0
   679
  test_add_f32();
sl@0
   680
  
sl@0
   681
  std_log(LOG_FILENAME_LINE,"ADD_F64 TEST");
sl@0
   682
  test_add_f64();
sl@0
   683
sl@0
   684
  std_log(LOG_FILENAME_LINE,"SUB_S16 TEST");
sl@0
   685
  test_sub_s16();  
sl@0
   686
sl@0
   687
  std_log(LOG_FILENAME_LINE,"SUB_S16_U8 TEST");
sl@0
   688
  test_sub_s16_u8();
sl@0
   689
  
sl@0
   690
  std_log(LOG_FILENAME_LINE,"SUB_F32 TEST");
sl@0
   691
  test_sub_f32();
sl@0
   692
sl@0
   693
  std_log(LOG_FILENAME_LINE,"SUB_F64 TEST");
sl@0
   694
  test_sub_f64();
sl@0
   695
  
sl@0
   696
  std_log(LOG_FILENAME_LINE,"MULT_F32 TEST");
sl@0
   697
  test_mult_f32();
sl@0
   698
  
sl@0
   699
  std_log(LOG_FILENAME_LINE,"MULT_F64 TEST");
sl@0
   700
  test_mult_f64();
sl@0
   701
  
sl@0
   702
  std_log(LOG_FILENAME_LINE,"DIV_F32 TEST");
sl@0
   703
  test_div_f32();
sl@0
   704
  
sl@0
   705
  std_log(LOG_FILENAME_LINE,"DIV_F64 TEST");
sl@0
   706
  test_div_f64();
sl@0
   707
sl@0
   708
  std_log(LOG_FILENAME_LINE,"MIN_F32 TEST");
sl@0
   709
  test_minimum_f32();
sl@0
   710
sl@0
   711
  std_log(LOG_FILENAME_LINE,"MIN_F64 TEST");
sl@0
   712
  test_minimum_f64();
sl@0
   713
  
sl@0
   714
  std_log(LOG_FILENAME_LINE,"MAX_F32 TEST");
sl@0
   715
  test_maximum_f32();
sl@0
   716
sl@0
   717
  std_log(LOG_FILENAME_LINE,"MAX_F64 TEST");
sl@0
   718
  test_maximum_f64();
sl@0
   719
  
sl@0
   720
  std_log(LOG_FILENAME_LINE,"NEGATIVE_F32 TEST");
sl@0
   721
  test_negative_f32();
sl@0
   722
sl@0
   723
  std_log(LOG_FILENAME_LINE,"SIGN_F32 TEST");
sl@0
   724
  test_sign_f32();
sl@0
   725
  
sl@0
   726
  std_log(LOG_FILENAME_LINE,"INVERSE_F32 TEST");
sl@0
   727
  test_inverse_f32();
sl@0
   728
sl@0
   729
  std_log(LOG_FILENAME_LINE,"FLOOR_F32 TEST");
sl@0
   730
  test_floor_f32();
sl@0
   731
  
sl@0
   732
  std_log(LOG_FILENAME_LINE,"SCALARADD_F32 TEST");
sl@0
   733
  test_scalaradd_f32();
sl@0
   734
  
sl@0
   735
  std_log(LOG_FILENAME_LINE,"SCALARMULT_F64 TEST");
sl@0
   736
  test_scalarmult_f64();
sl@0
   737
  
sl@0
   738
   if(assert_failed)
sl@0
   739
         std_log(LOG_FILENAME_LINE,"Test Fail");
sl@0
   740
   else
sl@0
   741
         std_log(LOG_FILENAME_LINE,"Test Successful");
sl@0
   742
   
sl@0
   743
  create_xml(0);
sl@0
   744
  return 0;
sl@0
   745
}
sl@0
   746