MCPcopy Create free account
hub / github.com/PX4/eigen / packetmath_notcomplex

Function packetmath_notcomplex

test/packetmath.cpp:483–517  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

481}
482
483template<typename Scalar> void packetmath_notcomplex()
484{
485 using std::abs;
486 typedef internal::packet_traits<Scalar> PacketTraits;
487 typedef typename PacketTraits::type Packet;
488 const int PacketSize = PacketTraits::size;
489
490 EIGEN_ALIGN_MAX Scalar data1[PacketTraits::size*4];
491 EIGEN_ALIGN_MAX Scalar data2[PacketTraits::size*4];
492 EIGEN_ALIGN_MAX Scalar ref[PacketTraits::size*4];
493
494 Array<Scalar,Dynamic,1>::Map(data1, PacketTraits::size*4).setRandom();
495
496 ref[0] = data1[0];
497 for (int i=0; i<PacketSize; ++i)
498 ref[0] = (std::min)(ref[0],data1[i]);
499 VERIFY(internal::isApprox(ref[0], internal::predux_min(internal::pload<Packet>(data1))) && "internal::predux_min");
500
501 VERIFY((!PacketTraits::Vectorizable) || PacketTraits::HasMin);
502 VERIFY((!PacketTraits::Vectorizable) || PacketTraits::HasMax);
503
504 CHECK_CWISE2_IF(PacketTraits::HasMin, (std::min), internal::pmin);
505 CHECK_CWISE2_IF(PacketTraits::HasMax, (std::max), internal::pmax);
506 CHECK_CWISE1(abs, internal::pabs);
507
508 ref[0] = data1[0];
509 for (int i=0; i<PacketSize; ++i)
510 ref[0] = (std::max)(ref[0],data1[i]);
511 VERIFY(internal::isApprox(ref[0], internal::predux_max(internal::pload<Packet>(data1))) && "internal::predux_max");
512
513 for (int i=0; i<PacketSize; ++i)
514 ref[i] = data1[0]+Scalar(i);
515 internal::pstore(data2, internal::plset<Packet>(data1[0]));
516 VERIFY(areApprox(ref, data2, PacketSize) && "internal::plset");
517}
518
519template<typename Scalar,bool ConjLhs,bool ConjRhs> void test_conj_helper(Scalar* data1, Scalar* data2, Scalar* ref, Scalar* pval)
520{

Callers

nothing calls this directly

Calls 6

predux_minFunction · 0.85
predux_maxFunction · 0.85
pstoreFunction · 0.85
areApproxFunction · 0.85
MapClass · 0.50
isApproxFunction · 0.50

Tested by

no test coverage detected