bab2min / EigenRand

Fastest Random Distribution Generator for Eigen
https://bab2min.github.io/eigenrand/
MIT License
92 stars 12 forks source link

Compilation errors at MinGW64 + Eigen3.4.0 + AVX512 #44

Open bab2min opened 2 years ago

bab2min commented 2 years ago
E:\AddInclude/EigenRand/Dists/NormalExp.h:79:12: error: no matching function for call to 'psincos(__vector(16) float&, __vector(16) float&, __vector(16) float&)'
   79 |     psincos(theta, sintheta, costheta);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from E:\AddInclude/EigenRand/RandUtils.h:15,
                 from E:\AddInclude/EigenRand/Core.h:16,
                 from E:\AddInclude/EigenRand/EigenRand:20,
                 from E:\CppRepo\EigenRand\tuto.cpp:3:
E:\AddInclude/EigenRand/MorePacketMath.h:273:11: note: candidate: 'template<class Packet> typename std::enable_if<Eigen::internal::IsFloatPacket<Ty>::value>::type Eigen::internal::psincos(Packet, Packet&, Packet&)'
  273 |   >::type psincos(Packet x, Packet& s, Packet& c)
      |           ^~~~~~~
E:\AddInclude/EigenRand/MorePacketMath.h:273:11: note:   template argument deduction/substitution failed:
E:\AddInclude/EigenRand/MorePacketMath.h: In substitution of 'template<class Packet> typename std::enable_if<Eigen::internal::IsFloatPacket<Ty>::value>::type Eigen::internal::psincos(Packet, Packet&, Packet&) [with Packet = __vector(16) float]':
E:\AddInclude/EigenRand/Dists/NormalExp.h:79:12:   required from 'const Packet Eigen::Rand::StdNormalGen<_Scalar>::packetOp(Rng&&) [with Packet = __vector(16) float; Rng = Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&; _Scalar = float]'
E:\AddInclude/EigenRand/RandUtils.h:130:45:   required from 'const Packet Eigen::internal::scalar_rng_adaptor<Gen, _Scalar, Rng, true>::packetOp() const [with Packet = __vector(16) float; Gen = Eigen::Rand::StdNormalGen<float>; _Scalar = float; Rng = Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&]'
E:\AddInclude/Eigen/src/Core/CoreEvaluators.h:402:180:   required from 'T Eigen::internal::nullary_wrapper<Scalar, NullaryOp, true, false, false>::packetOp(const NullaryOp&, IndexType, IndexType) const [with T = __vector(16) float; IndexType = int; Scalar = float; NullaryOp = Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>]'
E:\AddInclude/Eigen/src/Core/CoreEvaluators.h:547:68:   required from 'PacketType Eigen::internal::evaluator<Eigen::CwiseNullaryOp<NullaryOp, PlainObjectType> >::packet(IndexType) const [with int LoadMode = 64; PacketType = __vector(16) float; IndexType = int; NullaryOp = Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>; PlainObjectType = const Eigen::Array<float, -1, -1>]'
E:\AddInclude/Eigen/src/Core/AssignEvaluator.h:681:5:   required from 'void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index) [with int StoreMode = 64; int LoadMode = 64; PacketType = __vector(16) float; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Array<float, -1, -1> >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> > >; Functor = Eigen::internal::assign_op<float, float>; int Version = 0; Eigen::Index = int]'
E:\AddInclude/Eigen/src/Core/AssignEvaluator.h:437:7:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
E:\AddInclude/Eigen/src/Core/AssignEvaluator.h:944:31:   required from 'static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Array<float, -1, -1>; SrcXprType = Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> >; Functor = Eigen::internal::assign_op<float, float>; Weak = void]'
E:\AddInclude/Eigen/src/Core/AssignEvaluator.h:880:49:   required from 'void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Array<float, -1, -1>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> >; Func = Eigen::internal::assign_op<float, float>]'
E:\AddInclude/Eigen/src/Core/PlainObjectBase.h:797:41:   required from 'Derived& Eigen::PlainObjectBase<Derived>::_set_noalias(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> >; Derived = Eigen::Array<float, -1, -1>]'
E:\AddInclude/Eigen/src/Core/PlainObjectBase.h:594:7:   required from 'Eigen::PlainObjectBase<Derived>::PlainObjectBase(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> >; Derived = Eigen::Array<float, -1, -1>]'
E:\AddInclude/Eigen/src/Core/Array.h:288:29:   required from 'Eigen::Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Array(const Eigen::EigenBase<OtherDerived>&, typename Eigen::internal::enable_if<std::is_convertible<typename OtherDerived::Scalar, typename Eigen::internal::traits<Eigen::Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >::Scalar>::value, Eigen::Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::PrivateType>::type) [with OtherDerived = Eigen::CwiseNullaryOp<Eigen::internal::scalar_rng_adaptor<Eigen::Rand::StdNormalGen<float>, float, Eigen::Rand::ParallelRandomEngineAdaptor<long long unsigned int, Eigen::Rand::MersenneTwister<__vector(4) long long int, 312, 156, 31, 13043109905998158313, 29, 6148914691236517205, 17, 8202884508482404352, 37, 18444473444759240704, 43, 6364136223846793005>, 8>&, true>, const Eigen::Array<float, -1, -1> >; _Scalar = float; int _Rows = -1; int _Cols = -1; int _Options = 0; int _MaxRows = -1; int _MaxCols = -1; typename Eigen::internal::enable_if<std::is_convertible<typename OtherDerived::Scalar, typename Eigen::internal::traits<Eigen::Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >::Scalar>::value, Eigen::Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::PrivateType>::type = Eigen::Array<float, -1, -1>::PrivateType]'