当我尝试将矩阵发送到proc时,我收到错误。我非常确定我做错了什么,无法弄明白。
mad.chpl:3: In function 'main':
mad.chpl:14: error: unresolved call 'check_dims([domain(2,int(64),false)] real(64))'
mad.chpl:17: note: candidates are: check_dims(A: Matrix)
给我
chpl Version 1.15.0
我正在使用{{1}}
答案 0 :(得分:1)
线性代数对象(如矩阵和向量)在Chapel中是represented as arrays。因此,将Matrix
(不存在的类型)更改为[]
(数组类型的语法)应该按预期工作:
use LinearAlgebra;
proc main() {
var A = Matrix(
[0.0, 0.8, 1.1, 0.0, 2.0]
,[0.8, 0.0, 1.3, 1.0, 0.0]
,[1.1, 1.3, 0.0, 0.5, 1.7]
,[0.0, 1.0, 0.5, 0.0, 1.5]
,[2.0, 0.0, 1.7, 1.5, 0.0]
);
check_dims(A);
}
proc check_dims(A: []) {
var t: bool = false;
// method is dim()
if (A.domain.dim(1) == A.domain.dim(2)){
t = true;
}
return t;
}