2017-08-31 55 views
1

最大它開始像所有好故事,我有一個矩陣A,我想找到最大,有時整個事情,有時沿行。如何找到一個數組的教堂

var dom = {1..2, 1..5}; 
var m: [dom] real; 
m[1,..] = [1.0, 2.0, 3.1, 4.8, 5.6]; 
m[2,..] = [2.0, 3.0, 4.1, 5.8, 6.6]; 
writeln(m); 
writeln(max(m)); 

但這裏有沒有愛,它只是poops對我道:

maxy.chpl:5: error: unresolved call 'max([domain(1,int(64),false)] real(64))' 
$CHPL_HOME/modules/internal/ChapelBase.chpl:614: note: candidates are: max(x, y) 

我應該使用reduce或者是有一些更簡單的語法?

回答

2

使用max reduction是實現這個今天最簡單的方法:

var mx = max reduce(m); 

然而,在該示例中示出的問題的規模,並行最大減少可能是矯枉過正。如果性能問題,它可能會更好編寫自己的proc max(arr: [])過程,迭代陣列上,發現最大的元素。

教堂已經支持可變參數內置max()程序,但它不支持數組。在回答這個問題,我不知道它應該...

+0

答:是的,它應該! –