Есть ли в недавнем Math.Net метод для возврата SquaredNorm вектора?

В старой версии (Iridium) был метод Vector.SquaredNorm(), но в самой последней стабильной версии Math.Net он недоступен.

Какой метод я должен использовать?

1 ответ

Решение

Если вам нужна квадратная L2-норма (что и сделал Иридиум, если я правильно помню), вы можете просто возвести ее в квадрат:

var squaredNorm1 = Math.Pow(v.L2Norm(),2);

В качестве альтернативы вы также можете использовать точечный продукт, который немного короче (а также быстрее, если вы используете нативных провайдеров и векторы очень велики):

var squaredNorm2 = v*v;
Другие вопросы по тегам