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