Hi All,
I hope I am doing something easy to correct. I am trying to move some code to
compute the prefix sum of an integer array into its own method. I'm using
2.0.4.
I get the following error:
dhu...@oscnet166 24%> x10c++ -x10rt mpi -o PrefixSum PrefixSum.x10
/Users/dhudak/osc/research/x10/tutorial/examples/PrefixSum.x10:34: Method or
static constructor not found for given matcher.
Matcher: a_prefix_sum(x10.lang.ValRail[x10.lang.Int]{self.length==1})
1 error.
...which corresponds to the statement in the else clause of the computeSum
method
> a_prefix_sum(p) = a(p) + a_prefix_sum([i-1]);
Below is the entire code for reference.
Thanks,
Dave
/*
* PrefixSum
* Sequential implementation
* Dave Hudak
* Ohio Supercomputer Center
*/
public class PrefixSum {
public static def str[T](a:Array[T]):String
{
var s : String = "";
//var is mutable
var first : Boolean = true;
//var declaration must include type
for (point in a) {
if (first) {
first = false;
}
else {
s += ", ";
}
s += a(point).toString();
//works because toString is global
}
return s;
}
public static def computeSum(a:Array[Int]):Array[Int]{self.region ==
a.region}
{
val a_prefix_sum = new Array[Int](a.region, (Point)=>0);
for (p in a_prefix_sum) {
val (i) = p;
if (i == 1) {
a_prefix_sum(p) = a(p);
}
else {
a_prefix_sum(p) = a(p) + a_prefix_sum([i-1]);
}
}
return a_prefix_sum;
}
public static def main(args: Rail[String]!): Void {
val ARRAY_SIZE = 10;
//values are like constants (immutable)
val r1 = [1..ARRAY_SIZE];
//define a range
val a1 = new Array[Int](r1, (Point)=>0);
//create an array of all zeroes
Console.OUT.println("a1(1) = " + a1([1])); //index
arrays using parens around points
for (p in a1) {
val (i) = p;
//fetch the subscript of the point
a1(p) = i;
//assign it to the array value
}
val a1_string = str(a1);
Console.OUT.println(a1_string);
val a1_prefix_sum = computeSum(a1);
val a1_prefix_sum_string = str(a1_prefix_sum);
Console.OUT.println(a1_prefix_sum_string);
}
}
---
David E. Hudak, Ph.D. [email protected]
Program Director, HPC Engineering
Ohio Supercomputer Center
http://www.osc.edu
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
X10-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users