Advertisement
lamiastella

annotated_polynomial.c

Aug 5th, 2013
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 KB | None | 0 0
  1. /********************************
  2. Author: Sravanthi Kota Venkata
  3. ********************************/
  4.  
  5. #include "svm.h"
  6. #include "m5op.h"
  7. float polynomial(int d, F2D* a, F2D* b, int dim)
  8. {
  9.     float ret;
  10.     F2D *bt, *bt1;
  11.     int i,j,r,c;
  12.  
  13.     r = b->height;
  14.     c = b->width;
  15.  
  16.     bt = fMallocHandle(c, r);
  17. /*
  18.     for(i=0; i<r; i++)
  19.     {
  20.         for(j=0; j<c; j++)
  21.         {
  22.             subsref(bt,j,i) = subsref(b,i,j);
  23.         }
  24.     }
  25. */
  26.  
  27.     int RC, togo, size;
  28. //    for(i=0; i<r; i++)
  29.     RC=r*c;
  30.     m5rh_start(103,1);
  31.     for(i=0; i<RC; i=i+8)
  32.     {
  33.         togo = RC - i;
  34.         size = (togo > 8) ? 8 : togo;
  35.         m5_rh_load_data(b->data+i, size*4, 4, 1); //load data as many data elements as the number of size (each int/float size is 4 byte)
  36.         m5_rh_load_data(0, 1, 5 , 0); //two dependent addition  //How long do we need for simple assignment? Do we care to put this into accelerator at all?
  37.   //     for(j=0; j<c; j++)
  38.          for(j=0; j<size; j++)
  39.  
  40.         {
  41.          //   subsref(bt,j,i) = subsref(b,i,j);
  42.             asubsref(bt,j+i) = asubsref(b,i+j);
  43.  
  44.         }
  45.         m5_rh_load_data(bt->data+i, size*4, 4, 1); //store results
  46.         m5_rh_load_data(0, 0, 0, 0);
  47.     }
  48.     m5rh_start(103,0);
  49.  
  50.  
  51.  
  52.  
  53.     bt1 = fMtimes(a, bt);
  54.     fFreeHandle(bt);
  55.    
  56.     if(bt1->height == 1 && bt1->width ==1)
  57.         ret = pow(asubsref(bt1,0),d)/dim;
  58.     else
  59.     {
  60.         fFreeHandle(bt1);
  61.         return -1;
  62.     }
  63.  
  64.     fFreeHandle(bt1);
  65.     return ret;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement