Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************
- Author: Sravanthi Kota Venkata
- ********************************/
- #include "svm.h"
- #include "m5op.h"
- float polynomial(int d, F2D* a, F2D* b, int dim)
- {
- float ret;
- F2D *bt, *bt1;
- int i,j,r,c;
- r = b->height;
- c = b->width;
- bt = fMallocHandle(c, r);
- /*
- for(i=0; i<r; i++)
- {
- for(j=0; j<c; j++)
- {
- subsref(bt,j,i) = subsref(b,i,j);
- }
- }
- */
- int RC, togo, size;
- // for(i=0; i<r; i++)
- RC=r*c;
- m5rh_start(103,1);
- for(i=0; i<RC; i=i+8)
- {
- togo = RC - i;
- size = (togo > 8) ? 8 : togo;
- 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)
- 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?
- // for(j=0; j<c; j++)
- for(j=0; j<size; j++)
- {
- // subsref(bt,j,i) = subsref(b,i,j);
- asubsref(bt,j+i) = asubsref(b,i+j);
- }
- m5_rh_load_data(bt->data+i, size*4, 4, 1); //store results
- m5_rh_load_data(0, 0, 0, 0);
- }
- m5rh_start(103,0);
- bt1 = fMtimes(a, bt);
- fFreeHandle(bt);
- if(bt1->height == 1 && bt1->width ==1)
- ret = pow(asubsref(bt1,0),d)/dim;
- else
- {
- fFreeHandle(bt1);
- return -1;
- }
- fFreeHandle(bt1);
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement