60 constexpr std::size_t LANE = 8;
62 const __m512d ones = _mm512_set1_pd(1.0);
68 for (; i + LANE <= n; i += LANE) {
70 __m512d b = _mm512_loadu_pd(betas + i);
73 b = _mm512_min_pd(b, clamp_v);
76 __m512d b2 = _mm512_mul_pd(b, b);
79 __m512d denom = _mm512_sub_pd(ones, b2);
82 __m512d sqrt_d = _mm512_sqrt_pd(denom);
85 __m512d gamma = _mm512_div_pd(ones, sqrt_d);
88 _mm512_storeu_pd(out + i, gamma);
94 const double b2 = b * b;
95 out[i] = 1.0 / std::sqrt(1.0 - b2);