Lines Matching full:detail
11 namespace detail{
151 this->Data = _mm_add_ps(this->Data , glm::detail::one);
157 this->Data = _mm_sub_ps(this->Data, glm::detail::one);
262 return fvec4SIMD(_mm_add_ps(v.Data, glm::detail::one));
267 return fvec4SIMD(_mm_sub_ps(v.Data, glm::detail::one));
270 }//namespace detail
274 detail::fvec4SIMD const & x
287 GLM_FUNC_QUALIFIER detail::fvec4SIMD abs
289 detail::fvec4SIMD const & x
292 return detail::sse_abs_ps(x.Data);
295 GLM_FUNC_QUALIFIER detail::fvec4SIMD sign
297 detail::fvec4SIMD const & x
300 return detail::sse_sgn_ps(x.Data);
303 GLM_FUNC_QUALIFIER detail::fvec4SIMD floor
305 detail::fvec4SIMD const & x
308 return detail::sse_flr_ps(x.Data);
311 GLM_FUNC_QUALIFIER detail::fvec4SIMD trunc
313 detail::fvec4SIMD const & x
318 __m128 Flr0 = detail::sse_flr_ps(_mm_sub_ps(_mm_setzero_ps(), x.Data));
320 __m128 Flr1 = detail::sse_flr_ps(x.Data);
322 __m128 Cmp0 = _mm_cmplt_ps(x.Data, glm::detail::zero);
323 __m128 Cmp1 = _mm_cmpnlt_ps(x.Data, glm::detail::zero);
331 GLM_FUNC_QUALIFIER detail::fvec4SIMD round
333 detail::fvec4SIMD const & x
336 return detail::sse_rnd_ps(x.Data);
339 //GLM_FUNC_QUALIFIER detail::fvec4SIMD roundEven
341 // detail::fvec4SIMD const & x
347 GLM_FUNC_QUALIFIER detail::fvec4SIMD ceil
349 detail::fvec4SIMD const & x
352 return detail::sse_ceil_ps(x.Data);
355 GLM_FUNC_QUALIFIER detail::fvec4SIMD fract
357 detail::fvec4SIMD const & x
360 return detail::sse_frc_ps(x.Data);
363 GLM_FUNC_QUALIFIER detail::fvec4SIMD mod
365 detail::fvec4SIMD const & x,
366 detail::fvec4SIMD const & y
369 return detail::sse_mod_ps(x.Data, y.Data);
372 GLM_FUNC_QUALIFIER detail::fvec4SIMD mod
374 detail::fvec4SIMD const & x,
378 return detail::sse_mod_ps(x.Data, _mm_set1_ps(y));
381 //GLM_FUNC_QUALIFIER detail::fvec4SIMD modf
383 // detail::fvec4SIMD const & x,
384 // detail::fvec4SIMD & i
390 GLM_FUNC_QUALIFIER detail::fvec4SIMD min
392 detail::fvec4SIMD const & x,
393 detail::fvec4SIMD const & y
399 GLM_FUNC_QUALIFIER detail::fvec4SIMD min
401 detail::fvec4SIMD const & x,
408 GLM_FUNC_QUALIFIER detail::fvec4SIMD max
410 detail::fvec4SIMD const & x,
411 detail::fvec4SIMD const & y
417 GLM_FUNC_QUALIFIER detail::fvec4SIMD max
419 detail::fvec4SIMD const & x,
426 GLM_FUNC_QUALIFIER detail::fvec4SIMD clamp
428 detail::fvec4SIMD const & x,
429 detail::fvec4SIMD const & minVal,
430 detail::fvec4SIMD const & maxVal
433 return detail::sse_clp_ps(x.Data, minVal.Data, maxVal.Data);
436 GLM_FUNC_QUALIFIER detail::fvec4SIMD clamp
438 detail::fvec4SIMD const & x,
443 return detail::sse_clp_ps(x.Data, _mm_set1_ps(minVal), _mm_set1_ps(maxVal));
446 GLM_FUNC_QUALIFIER detail::fvec4SIMD mix
448 detail::fvec4SIMD const & x,
449 detail::fvec4SIMD const & y,
450 detail::fvec4SIMD const & a
458 GLM_FUNC_QUALIFIER detail::fvec4SIMD step
460 detail::fvec4SIMD const & edge,
461 detail::fvec4SIMD const & x
465 return _mm_max_ps(_mm_min_ps(cmp0, _mm_setzero_ps()), detail::one);
468 GLM_FUNC_QUALIFIER detail::fvec4SIMD step
471 detail::fvec4SIMD const & x
475 return _mm_max_ps(_mm_min_ps(cmp0, _mm_setzero_ps()), detail::one);
478 GLM_FUNC_QUALIFIER detail::fvec4SIMD smoothstep
480 detail::fvec4SIMD const & edge0,
481 detail::fvec4SIMD const & edge1,
482 detail::fvec4SIMD const & x
485 return detail::sse_ssp_ps(edge0.Data, edge1.Data, x.Data);
488 GLM_FUNC_QUALIFIER detail::fvec4SIMD smoothstep
492 detail::fvec4SIMD const & x
495 return detail::sse_ssp_ps(_mm_set1_ps(edge0), _mm_set1_ps(edge1), x.Data);
498 //GLM_FUNC_QUALIFIER bvec4 isnan(detail::fvec4SIMD const & x)
503 //GLM_FUNC_QUALIFIER bvec4 isinf(detail::fvec4SIMD const & x)
508 //GLM_FUNC_QUALIFIER detail::ivec4SIMD floatBitsToInt
510 // detail::fvec4SIMD const & value
516 //GLM_FUNC_QUALIFIER detail::fvec4SIMD intBitsToFloat
518 // detail::ivec4SIMD const & value
524 GLM_FUNC_QUALIFIER detail::fvec4SIMD fma
526 detail::fvec4SIMD const & a,
527 detail::fvec4SIMD const & b,
528 detail::fvec4SIMD const & c
536 detail::fvec4SIMD const & x
539 detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
540 detail::fvec4SIMD sqt0 = sqrt(dot0);
548 detail::fvec4SIMD const & x
551 detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
552 detail::fvec4SIMD sqt0 = fastSqrt(dot0);
560 detail::fvec4SIMD const & x
563 detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
564 detail::fvec4SIMD sqt0 = niceSqrt(dot0);
570 GLM_FUNC_QUALIFIER detail::fvec4SIMD length4
572 detail::fvec4SIMD const & x
578 GLM_FUNC_QUALIFIER detail::fvec4SIMD fastLength4
580 detail::fvec4SIMD const & x
586 GLM_FUNC_QUALIFIER detail::fvec4SIMD niceLength4
588 detail::fvec4SIMD const & x
596 detail::fvec4SIMD const & p0,
597 detail::fvec4SIMD const & p1
601 _mm_store_ss(&Result, detail::sse_dst_ps(p0.Data, p1.Data));
605 GLM_FUNC_QUALIFIER detail::fvec4SIMD distance4
607 detail::fvec4SIMD const & p0,
608 detail::fvec4SIMD const & p1
611 return detail::sse_dst_ps(p0.Data, p1.Data);
616 detail::fvec4SIMD const & x,
617 detail::fvec4SIMD const & y
621 _mm_store_ss(&Result, detail::sse_dot_ss(x.Data, y.Data));
625 GLM_FUNC_QUALIFIER detail::fvec4SIMD dot4
627 detail::fvec4SIMD const & x,
628 detail::fvec4SIMD const & y
631 return detail::sse_dot_ps(x.Data, y.Data);
634 GLM_FUNC_QUALIFIER detail::fvec4SIMD cross
636 detail::fvec4SIMD const & x,
637 detail::fvec4SIMD const & y
640 return detail::sse_xpd_ps(x.Data, y.Data);
643 GLM_FUNC_QUALIFIER detail::fvec4SIMD normalize
645 detail::fvec4SIMD const & x
648 __m128 dot0 = detail::sse_dot_ps(x.Data, x.Data);
649 __m128 isr0 = inversesqrt(detail::fvec4SIMD(dot0)).Data;
654 GLM_FUNC_QUALIFIER detail::fvec4SIMD fastNormalize
656 detail::fvec4SIMD const & x
659 __m128 dot0 = detail::sse_dot_ps(x.Data, x.Data);
665 GLM_FUNC_QUALIFIER detail::fvec4SIMD faceforward
667 detail::fvec4SIMD const & N,
668 detail::fvec4SIMD const & I,
669 detail::fvec4SIMD const & Nref
672 return detail::sse_ffd_ps(N.Data, I.Data, Nref.Data);
675 GLM_FUNC_QUALIFIER detail::fvec4SIMD reflect
677 detail::fvec4SIMD const & I,
678 detail::fvec4SIMD const & N
681 return detail::sse_rfe_ps(I.Data, N.Data);
684 GLM_FUNC_QUALIFIER detail::fvec4SIMD refract
686 detail::fvec4SIMD const & I,
687 detail::fvec4SIMD const & N,
691 return detail::sse_rfa_ps(I.Data, N.Data, _mm_set1_ps(eta));
694 GLM_FUNC_QUALIFIER detail::fvec4SIMD sqrt(detail::fvec4SIMD const & x)
699 GLM_FUNC_QUALIFIER detail::fvec4SIMD niceSqrt(detail::fvec4SIMD const & x)
704 GLM_FUNC_QUALIFIER detail::fvec4SIMD fastSqrt(detail::fvec4SIMD const & x)
711 GLM_FUNC_QUALIFIER detail::fvec4SIMD inversesqrt(detail::fvec4SIMD const & x)
722 GLM_FUNC_QUALIFIER detail::fvec4SIMD fastInversesqrt(detail::fvec4SIMD const & x)