/*
* Copyright 2012 Phil Pratt-Szeliga and other contributors
* http://chirrup.org/
*
* See the file LICENSE for copying permission.
*/
package org.trifort.rootbeer.testcases.rootbeertest.serialization;
import org.trifort.rootbeer.runtime.Kernel;
public class RefTypeArraysRunOnGpu implements Kernel {
private RefType1 element;
private RefType1[] element1;
private RefType1[][] element2;
private RefType1[][][] element3;
public RefTypeArraysRunOnGpu(){
element = new RefType1((byte) 10);
element1 = new RefType1[10];
element2 = new RefType1[10][10];
element3 = new RefType1[10][10][10];
for(int m = 0; m < 10; m++){
for(int n = 0; n < 10; n++){
for(byte p = 0; p < 10; ++p){
element3[m][n][p] = new RefType1(p);
element2[n][p] = new RefType1(p);
element1[p] = new RefType1(p);
}
}
}
}
@Override
public void gpuMethod() {
RefType1 el = element1[0];
el.modify();
element1[0] = el;
element3[0][0][0].modify();
element2[0][0].modify();
element.modify();
}
boolean compare(RefTypeArraysRunOnGpu brhs) {
if(element.equals(brhs.element) == false){
System.out.println("1");
return false;
}
for(int m = 0; m < 10; m++){
for(int n = 0; n < 10; n++){
for(int p = 0; p < 10; ++p){
if(element1[p].equals(brhs.element1[p]) == false){
System.out.println("2: m: "+m+" n: "+n+" p: "+p);
return false;
}
if(element2[n][p].equals(brhs.element2[n][p]) == false){
return false;
}
if(element3[m][n][p].equals(brhs.element3[m][n][p]) == false){
return false;
}
}
}
}
return true;
}
}