On Tuesday, January 04, 2011 06:07:20 pm Igor Peshansky wrote:
> I would look for hints in the following part of the message:
> 
>     init: (a1:x10.array.Point{self.rank==reg.rank})=> 
> x10.array.RemoteArray
> 
> You are passing in a closure of type (Point)=>RemoteArray, and the
> constructor expects a closure of type
> (Point{rank==Dv_tmp.region().rank})=>RemoteArray .
> Of course, the type system cannot express the above constraint directly,
> so you would have to write the code in the following manner:
> 
> [...]
>     val r_tmp = Dv_tmp.region();
>     v_loc = new Array[Array1D](r_tmp,
>             (r:Point(r_tmp.rank))=>
>                 (new Array[Double](0..(n-1), (0.0 as Double))) );
>     r_loc = new Array[RemoteArray](r_tmp,
>             (r:Point(r_tmp.rank)) => (new RemoteArray(v_loc(r))) );
> [...]
> 
> or, if Dv_tmp is statically known to be of rank 1, you can also write:
> 
> [...]
>     v_loc = new Array[Array1D](Dv_tmp.region(),
>             (r:Point(1))=>(new Array[Double](0..(n-1), (0.0 as Double))) 
> );
>     r_loc = new Array[RemoteArray](Dv_tmp.region(),
>             (r:Point(1)) => (new RemoteArray(v_loc(r))) );
> [...]
> 
> Hope this helps,
>         Igor

Igor,

I tried the first option, and the error message changed to the following.

/home/cp/xample/MatMul/mm_X10/src/matmul.x10:93-94: Constructor this(reg: 
x10.array.Region, init: (a1:x10.array.Point{self.rank==reg.rank})=> 
x10.array.RemoteArray): x10.array.Array[x10.array.RemoteArray]
{self.region==reg}    
     cannot be invoked with arguments    
     (x10.array.Region{self==r_tmp, Dv_tmp.region==r_tmp}, <anonymous class>).

Any suggestion on how to proceed ? 

BTW, Dv_tmp is defined as follows.
                // Finally, we set up a distribution
                // with one point per place
                val Dv_tmp:Dist = Dist.makeUnique(D.places());
                val r_tmp = Dv_tmp.region();

So, I know that it has rank 1. How can I make that known to the compiler ? 
Once that is accomplished, I can try your second suggestion.
-- 

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone:  +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospi...@de.ibm.com
-------------------------------------
IBM Deutschland GmbH
Vorsitzender des Aufsichtsrats: Erich Clementi 
Geschäftsführung: Martin Jetter (Vorsitzender), 
Reinhard Reschke, Dieter Scholz,
Gregor Pillen, Michael Diemer, Martina Koederitz 
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB 
14562 WEEE-Reg.-Nr. DE 99369940


------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to