Jacket で作業しているときに、この問題に出くわしました。
gfor ループ内でコンパイル済み関数 (gcompile でコンパイル) を使用しています。これは、私が知る限りサポートされる予定です: http://wiki.accelereyes.com/wiki/index.php/GCOMPILE
しかし、コンパイルされていない関数は正しい結果を提供しますが、コンパイルされた関数はすべての gfor 反復に対して同じ出力を与えることがわかりました。
%================
% function[C] = test(A,B)
% C = A+B;
% end
%================
testing = gcompile('test.m');
A = gdouble(1:1:10);
B = gdouble(2:2:20);
C1 = gzeros(10,1);
C2 = gzeros(10,1);
gfor l=1:10
C1(l) = test(A(l),B(l));
C2(l) = testing(A(l),B(l));
gend
出力は次のとおりです。
C1 = [ 3,6,9,12,15,18,21,24,27,30] (正しい結果)
C2 = [ 3,3,3,3,3,3,3,3,3,3]
私の結果を検証/反論できますか? 私は何を間違っていますか?
乾杯、アンジェラ