Скалярный эквивалент Avx.Reciprocal () в .NET? - PullRequest
0 голосов
/ 02 ноября 2019

Используя аппаратные свойства в .NET 3, я понимаю, что:

float a = ..;
float b = 1f / a;

не дает строго те же числовые результаты, что и

Vector256<float> a = ..;
Vector256<float> b = Avx.Reciprocal(a);

Результаты численно близки, но не идентичны. Вместо этого, чтобы сохранить эквивалентность между float и Vector256<float> вариантами кода, необходимо написать следующее:

Vector256<float> a = ..;
Vector256<float> b = Avx.Divide(Vector256.Create(1f), a);

Как я могу воспроизвести строгий скаляр эквивалент Avx.Reciprocal () ?

...