/*
* Copyright 2012 Phil Pratt-Szeliga and other contributors
* http://chirrup.org/
*
* See the file LICENSE for copying permission.
*/
package rootbeer.examples.mmult;
import org.trifort.rootbeer.runtime.Kernel;
public class MMult implements Kernel {
private int[] a;
private int[] b;
private int[] c;
private int index;
private int size;
public MMult(int[] a, int[] b, int[] c, int index, int size){
this.a = a;
this.b = b;
this.c = c;
this.index = index;
this.size = size;
}
@Override
public void gpuMethod() {
int len = a.length;
int lsize = size;
int lindex = index;
int[] la = a;
int[] lb = b;
int[] lc = c;
for(int j = 0; j < lsize; ++j){
int sum = 0;
for(int k = 0; k < lsize; ++k){
sum += (la[lindex*lsize+j]*lb[j*lsize+k]);
}
lc[lindex*lsize+j] = sum;
}
}
}