• Home
  • Raw
  • Download

Lines Matching full:scalar

32 template<typename Scalar> EIGEN_DONT_INLINE
33 bool isApproxAbs(const Scalar& a, const Scalar& b, const typename NumTraits<Scalar>::Real& refvalue) in isApproxAbs()
38 template<typename Scalar> bool areApproxAbs(const Scalar* a, const Scalar* b, int size, const typen… in areApproxAbs()
44 …:cout << "ref: [" << Map<const Matrix<Scalar,1,Dynamic> >(a,size) << "]" << " != vec: [" << Map<co… in areApproxAbs()
51 template<typename Scalar> bool areApprox(const Scalar* a, const Scalar* b, int size) in areApprox()
57 …:cout << "ref: [" << Map<const Matrix<Scalar,1,Dynamic> >(a,size) << "]" << " != vec: [" << Map<co… in areApprox()
112 template<typename Scalar> void packetmath() in packetmath()
115 typedef internal::packet_traits<Scalar> PacketTraits; in packetmath()
118 typedef typename NumTraits<Scalar>::Real RealScalar; in packetmath()
122 EIGEN_ALIGN_MAX Scalar data1[size]; in packetmath()
123 EIGEN_ALIGN_MAX Scalar data2[size]; in packetmath()
125 EIGEN_ALIGN_MAX Scalar ref[size]; in packetmath()
129 data1[i] = internal::random<Scalar>()/RealScalar(PacketSize); in packetmath()
130 data2[i] = internal::random<Scalar>()/RealScalar(PacketSize); in packetmath()
181 …VERIFY((internal::is_same<Scalar,int>::value) || (!PacketTraits::Vectorizable) || PacketTraits::Ha… in packetmath()
300 EIGEN_ALIGN_MAX Scalar result[size]; in packetmath()
311 Scalar s = internal::random<Scalar>(); in packetmath()
321 Scalar s = internal::random<Scalar>(); in packetmath()
328 template<typename Scalar> void packetmath_real() in packetmath_real()
331 typedef internal::packet_traits<Scalar> PacketTraits; in packetmath_real()
336 EIGEN_ALIGN_MAX Scalar data1[PacketTraits::size*4]; in packetmath_real()
337 EIGEN_ALIGN_MAX Scalar data2[PacketTraits::size*4]; in packetmath_real()
338 EIGEN_ALIGN_MAX Scalar ref[PacketTraits::size*4]; in packetmath_real()
342 … data1[i] = internal::random<Scalar>(-1,1) * std::pow(Scalar(10), internal::random<Scalar>(-3,3)); in packetmath_real()
343 … data2[i] = internal::random<Scalar>(-1,1) * std::pow(Scalar(10), internal::random<Scalar>(-3,3)); in packetmath_real()
355 data1[i] = internal::random<Scalar>(-1,1); in packetmath_real()
356 data2[i] = internal::random<Scalar>(-1,1); in packetmath_real()
363 data1[i] = internal::random<Scalar>(-87,88); in packetmath_real()
364 data2[i] = internal::random<Scalar>(-87,88); in packetmath_real()
369 … data1[i] = internal::random<Scalar>(-1,1) * std::pow(Scalar(10), internal::random<Scalar>(-6,6)); in packetmath_real()
370 … data2[i] = internal::random<Scalar>(-1,1) * std::pow(Scalar(10), internal::random<Scalar>(-6,6)); in packetmath_real()
375 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
376 data1[1] = std::numeric_limits<Scalar>::epsilon(); in packetmath_real()
380 VERIFY_IS_EQUAL(std::exp(std::numeric_limits<Scalar>::epsilon()), data2[1]); in packetmath_real()
382 data1[0] = -std::numeric_limits<Scalar>::epsilon(); in packetmath_real()
385 VERIFY_IS_EQUAL(std::exp(-std::numeric_limits<Scalar>::epsilon()), data2[0]); in packetmath_real()
386 VERIFY_IS_EQUAL(std::exp(Scalar(0)), data2[1]); in packetmath_real()
388 data1[0] = (std::numeric_limits<Scalar>::min)(); in packetmath_real()
389 data1[1] = -(std::numeric_limits<Scalar>::min)(); in packetmath_real()
391 VERIFY_IS_EQUAL(std::exp((std::numeric_limits<Scalar>::min)()), data2[0]); in packetmath_real()
392 VERIFY_IS_EQUAL(std::exp(-(std::numeric_limits<Scalar>::min)()), data2[1]); in packetmath_real()
394 data1[0] = std::numeric_limits<Scalar>::denorm_min(); in packetmath_real()
395 data1[1] = -std::numeric_limits<Scalar>::denorm_min(); in packetmath_real()
397 VERIFY_IS_EQUAL(std::exp(std::numeric_limits<Scalar>::denorm_min()), data2[0]); in packetmath_real()
398 VERIFY_IS_EQUAL(std::exp(-std::numeric_limits<Scalar>::denorm_min()), data2[1]); in packetmath_real()
403 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
404 packet_helper<internal::packet_traits<Scalar>::HasTanh,Packet> h; in packetmath_real()
411 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
412 packet_helper<internal::packet_traits<Scalar>::HasLGamma,Packet> h; in packetmath_real()
417 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
418 packet_helper<internal::packet_traits<Scalar>::HasErf,Packet> h; in packetmath_real()
423 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
424 packet_helper<internal::packet_traits<Scalar>::HasErfc,Packet> h; in packetmath_real()
432 data1[i] = internal::random<Scalar>(0,1) * std::pow(Scalar(10), internal::random<Scalar>(-6,6)); in packetmath_real()
433 data2[i] = internal::random<Scalar>(0,1) * std::pow(Scalar(10), internal::random<Scalar>(-6,6)); in packetmath_real()
442 CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasLGamma, std::lgamma, internal::plgamma); in packetmath_real()
443 CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasErf, std::erf, internal::perf); in packetmath_real()
444 CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasErfc, std::erfc, internal::perfc); in packetmath_real()
449 data1[0] = std::numeric_limits<Scalar>::quiet_NaN(); in packetmath_real()
450 data1[1] = std::numeric_limits<Scalar>::epsilon(); in packetmath_real()
454 VERIFY_IS_EQUAL(std::log(std::numeric_limits<Scalar>::epsilon()), data2[1]); in packetmath_real()
456 data1[0] = -std::numeric_limits<Scalar>::epsilon(); in packetmath_real()
460 VERIFY_IS_EQUAL(std::log(Scalar(0)), data2[1]); in packetmath_real()
462 data1[0] = (std::numeric_limits<Scalar>::min)(); in packetmath_real()
463 data1[1] = -(std::numeric_limits<Scalar>::min)(); in packetmath_real()
465 VERIFY_IS_EQUAL(std::log((std::numeric_limits<Scalar>::min)()), data2[0]); in packetmath_real()
468 data1[0] = std::numeric_limits<Scalar>::denorm_min(); in packetmath_real()
469 data1[1] = -std::numeric_limits<Scalar>::denorm_min(); in packetmath_real()
471 // VERIFY_IS_EQUAL(std::log(std::numeric_limits<Scalar>::denorm_min()), data2[0]); in packetmath_real()
474 data1[0] = Scalar(-1.0f); in packetmath_real()
483 template<typename Scalar> void packetmath_notcomplex() in packetmath_notcomplex()
486 typedef internal::packet_traits<Scalar> PacketTraits; in packetmath_notcomplex()
490 EIGEN_ALIGN_MAX Scalar data1[PacketTraits::size*4]; in packetmath_notcomplex()
491 EIGEN_ALIGN_MAX Scalar data2[PacketTraits::size*4]; in packetmath_notcomplex()
492 EIGEN_ALIGN_MAX Scalar ref[PacketTraits::size*4]; in packetmath_notcomplex()
494 Array<Scalar,Dynamic,1>::Map(data1, PacketTraits::size*4).setRandom(); in packetmath_notcomplex()
514 ref[i] = data1[0]+Scalar(i); in packetmath_notcomplex()
519 template<typename Scalar,bool ConjLhs,bool ConjRhs> void test_conj_helper(Scalar* data1, Scalar* da… in test_conj_helper()
521 typedef internal::packet_traits<Scalar> PacketTraits; in test_conj_helper()
527 internal::conj_helper<Scalar,Scalar,ConjLhs,ConjRhs> cj; in test_conj_helper()
540 Scalar tmp = ref[i]; in test_conj_helper()
548 template<typename Scalar> void packetmath_complex() in packetmath_complex()
550 typedef internal::packet_traits<Scalar> PacketTraits; in packetmath_complex()
555 EIGEN_ALIGN_MAX Scalar data1[PacketSize*4]; in packetmath_complex()
556 EIGEN_ALIGN_MAX Scalar data2[PacketSize*4]; in packetmath_complex()
557 EIGEN_ALIGN_MAX Scalar ref[PacketSize*4]; in packetmath_complex()
558 EIGEN_ALIGN_MAX Scalar pval[PacketSize*4]; in packetmath_complex()
562 data1[i] = internal::random<Scalar>() * Scalar(1e2); in packetmath_complex()
563 data2[i] = internal::random<Scalar>() * Scalar(1e2); in packetmath_complex()
566 test_conj_helper<Scalar,false,false> (data1,data2,ref,pval); in packetmath_complex()
567 test_conj_helper<Scalar,false,true> (data1,data2,ref,pval); in packetmath_complex()
568 test_conj_helper<Scalar,true,false> (data1,data2,ref,pval); in packetmath_complex()
569 test_conj_helper<Scalar,true,true> (data1,data2,ref,pval); in packetmath_complex()
573 ref[i] = Scalar(std::imag(data1[i]),std::real(data1[i])); in packetmath_complex()
579 template<typename Scalar> void packetmath_scatter_gather() in packetmath_scatter_gather()
581 typedef internal::packet_traits<Scalar> PacketTraits; in packetmath_scatter_gather()
583 typedef typename NumTraits<Scalar>::Real RealScalar; in packetmath_scatter_gather()
585 EIGEN_ALIGN_MAX Scalar data1[PacketSize]; in packetmath_scatter_gather()
588 data1[i] = internal::random<Scalar>()/RealScalar(PacketSize); in packetmath_scatter_gather()
593 EIGEN_ALIGN_MAX Scalar buffer[PacketSize*20]; in packetmath_scatter_gather()
594 memset(buffer, 0, 20*PacketSize*sizeof(Scalar)); in packetmath_scatter_gather()
596 internal::pscatter<Scalar, Packet>(buffer, packet, stride); in packetmath_scatter_gather()
602 VERIFY(isApproxAbs(buffer[i], Scalar(0), refvalue) && "pscatter"); in packetmath_scatter_gather()
607 buffer[i] = internal::random<Scalar>()/RealScalar(PacketSize); in packetmath_scatter_gather()
609 packet = internal::pgather<Scalar, Packet>(buffer, 7); in packetmath_scatter_gather()