package x10; public class SparseMat { //public final int // N, // The matrix is a sparse N x N matrix. // px, // The place grid is [0:px-1,0:py-1] grid. // py, // bx, // N/px // by; // N/py //public final region(:rect&&rank==2&&zeroBased) R; //final CRSparseMatrix crSparseMatrix; final Block[] M = new Block[10]; //final Vector temp; //public SparseMat(final region(:rect&&rank==2&&zeroBased) R, // final CRSparseMatrix in) { // this.R=R; // this.crSparseMatrix=in; // N=in.N; // px=R.rank(0).high()+1; // py=R.rank(1).high()+1; // bx=N/px; // by=N/py; // if (N%px != 0 || N%py !=0) { // System.err.println("N=(" + in.N+") must be a multiple of px=("+px // + " and py(=" + py + ")."); // throw new UnsupportedOperationException(); // // } // M= (Block[:rail]) new Block[dist.UNIQUE](point [p]) { // int pi = p/py, pj=p%py; // return new Block(pi,pj,bx, by, in); // }; // temp = new Vector(R, bx, 0.0D); //} public void print(){ for (int p=0; p<M.length; p++) { Conc.finish_begin(); print_1(p); Conc.finish_end(); } } public void print_1(int p) { Conc.async_begin(); print_2(p); Conc.async_end(); } public void print_2(int p) { //System.err.println(M[p].toString()); //M[p].print(); } class Block { void print() {}; } //public final void multiply(final Vector in, final Vector out){ // finish ateach(point p : M) // M[p].multiply((double[:rail]) in.a[p].e, (double[:rail]) temp.a[p].e); // temp.sumReducePieces(); // temp.transpose(out); //} }