Есть ли в недавнем Math.Net метод для возврата SquaredNorm вектора?
В старой версии (Iridium) был метод Vector.SquaredNorm(), но в самой последней стабильной версии Math.Net он недоступен.
Какой метод я должен использовать?
1 ответ
Решение
Если вам нужна квадратная L2-норма (что и сделал Иридиум, если я правильно помню), вы можете просто возвести ее в квадрат:
var squaredNorm1 = Math.Pow(v.L2Norm(),2);
В качестве альтернативы вы также можете использовать точечный продукт, который немного короче (а также быстрее, если вы используете нативных провайдеров и векторы очень велики):
var squaredNorm2 = v*v;