В этом коде я вычисляю угол между двумя векторами (xvec
и yvec
) по обычному отношению inner-product :
var ang = 30.0 * (pi / 180.0);
var xvec = [3.0, 0.0],
yvec = [cos(ang), sin(ang)] * 10.0;
var norm1sq = (+ reduce xvec**2),
norm2sq = (+ reduce yvec**2),
prod = (+ reduce xvec * yvec);
var ang_out = acos(prod / sqrt(norm1sq * norm2sq));
writeln("ang_out (in degrees) = ", ang_out * (180.0 / pi));
Мой ожидаемый результат - ang_out
= 30 градусов, но на самом деле я получаю этот вывод (с chapel-1.20.0):
ang_out (in degrees) = 30.0 60.0
Итак, я мне интересно откуда взялись эти "60 градусов" ...?