Nilesh Mahajan <nnmah...@umail.iu.edu> wrote on 08/17/2010 09:33:47 PM:

> Thanks for the response Igor!
> 
> Well the compiler did not complain for
> val mat : Array[Int]([1..MAX, 1..MAX]->here, ((i, j):Point) => 0);
> 
> I tried different versions of the array definition but could not get it 
working.
> 
> 1. I typed in your version: val mat = new Array[Int]([1..MAX,
> 1..MAX]->here, ((i, j):Point)=>0);
> It says the Array constructor cannot be invoked with given arguments.
> Looks like the Array constructor expects a region as its first
> argument. I encountered the same problem with the make method.

Oops, of course, this should have been

val mat = new Array[Int]([1..MAX, 1..MAX] as Region,
                         ((i, j):Point(2))=>0);

> 2. So I tried
> val mat = new Array[Int]([1..MAX, 1..MAX], ((i, j):Point)=>0);
> which works but then the for loop which iterates over this array
> throws an ArrayIndexOutOfBoundsException.

Or your variant, of course, but you still need Point(2) in the
closure formal type, I think.

Look at the actual text of the ArrayIndexOutOfBoundsException.
Try printing out all indices as you use them to index into the array.
I suspect that the first iteration fails, with the indices (0,0).
Note that your array is defined on a region that does not include
(0,0), but starts at (1,1).

> I am using X10DT installed on Eclipse-Ganymede, 32-bit Windows Vista 
platform.
> 
> Eclipse-Galileo on 32-bit Linux complains when I try to install X10DT
> update there.

Sorry you're having trouble.  As far as I remember, X10DT should work
on Galileo on Linux/x86, but I'll let the X10DT team (most of whom read
this list) respond to this.  It would help to see the exact complaint
that Eclipse gives you when you try to install X10DT.
        Igor
P.S. You still didn't say what version of X10DT you're using.

> On Tue, Aug 17, 2010 at 5:05 PM, Igor Peshansky <ig...@us.ibm.com> 
wrote:
> > Nilesh Mahajan <nnmah...@umail.iu.edu> wrote on 08/17/2010 04:32:29 
PM:
> >
> >> Hi,
> >>
> >> I am trying to set elements of a 2D Int array and am facing some
> >> problems. Can somebody please help?
> >>
> >> Code snippet:
> >>
> >> const MAX 10000;
> >> const MAXPERROW 100;
> >>
> >> val mat : Array[Int]([1..MAX, 1..MAX]->here, ((i, j):Point) => 0);
> >
> > This is not syntactically valid X10.  You must've said something like
> >
> > val mat: Array[Int] = new Array[Int]([1..MAX, 1..MAX]->here, ((i,
> > j):Point)=>0);
> >
> > instead.  Also note that this code will probably not work in the later
> > versions of X10, as you now need to specify the parameter type of the
> > closure more precisely, i.e., "((i, j):Point(2))=>0".
> >
> >> for (var i:Int = 0; i < MAX; i++) {
> >>     var numCols:Int = new Random().nextInt(MAXPERROW);
> >>     for (var j:Int = 0; j < numCols; j++) {
> >>         var ColIndex:Int = new Random().nextInt(MAX);
> >>         mat.set(1, i, colIndex);
> >>     }
> >> }
> >>
> >>
> >> the 'mat.set' line throws an error which says (among other things):
> >> Call Invalid; calling method does not entail the method guard.
> >
> > This means that the typechecker was not able to prove that the mat
> > array is 2-dimensional.  That's why I suspect you have specified the
> > explicit type on the declaration of "val mat".  Either change that 
type
> > to Array(2), or omit the type altogether (i.e., write
> >
> > val mat = new Array[Int]([1..MAX, 1..MAX]->here, ((i, j):Point)=>0);
> >
> > ) and let the typechecker infer it for you.
> >
> >> P.S. Is there a way to search the user archives?
> >
> > There's Google, which lets you restrict the URLs of the pages you
> > search.  Note that there are two sets of archives for the x10-users
> > list outside of Sourceforge that may work better with Google
> > searching, or even offer their own search capabilities:
> >
> > http://www.mail-archive.com/x10-users@lists.sourceforge.net/
> > http://blog.gmane.org/gmane.comp.lang.x10.user or
> > http://news.gmane.org/gmane.comp.lang.x10.user
> >
> > Hope this helps,
> >        Igor
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
X10: Parallel Productivity and Performance (http://x10-lang.org/)
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
"I hear and I forget.  I see and I remember.  I do and I understand" -- 
Confucius


------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to