package edu.umd.hooka.alignment.hmm;
import java.util.Arrays;
public final class IntArray2D {
int[] data;
int width;
int size;
public IntArray2D(int maxCap) {
data = new int[maxCap];
}
public void resize(int x, int y) {
int s = x * y;
if (s > data.length)
throw new RuntimeException("Requested size larger than allocated space");
size = s;
width = x;
this.fill(0);
}
public void fill(int val) {
Arrays.fill(data, 0, size, val);
}
public int get(int x, int y) {
return data[y * width + x];
}
public void set(int x, int y, int v) {
data[y * width + x] = v;
}
public int getSize1() {
return width;
}
public int getSize2() {
return size / width;
}
public String toString() {
StringBuffer sb = new StringBuffer();
int r = getSize2();
int c = getSize1();
for (int j = 0; j < r; j++) {
for (int i = 0; i < c; i++) {
sb.append(" ").append(get(i,j));
}
sb.append('\n');
}
return sb.toString();
}
}