You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the default type for kronecker_monomial<T> is T == std::make_signed<std::size_t>::type, that is, the signed counterpart of size_t. The idea behind this choice is that the signed counterpart of size_t is likely to be the largest "fast" signed integer type available on the platform. For use in kronecker_monomial, T should be as fast and as large as possible.
However, recent testing on a raspberry pi2, which is a 32-bit architecture, shows that the 32-bit signed counterpart of size_t (that is, long) is only marginally faster that long long (which is 64 bit on this arch), while providing much less range. It thus seems to make sense to change the heuristic to just pick the largest among the standard C++ integral types, long long.
The text was updated successfully, but these errors were encountered:
Currently the default type for
kronecker_monomial<T>
isT == std::make_signed<std::size_t>::type
, that is, the signed counterpart ofsize_t
. The idea behind this choice is that the signed counterpart ofsize_t
is likely to be the largest "fast" signed integer type available on the platform. For use inkronecker_monomial
,T
should be as fast and as large as possible.However, recent testing on a raspberry pi2, which is a 32-bit architecture, shows that the 32-bit signed counterpart of
size_t
(that is,long
) is only marginally faster thatlong long
(which is 64 bit on this arch), while providing much less range. It thus seems to make sense to change the heuristic to just pick the largest among the standard C++ integral types,long long
.The text was updated successfully, but these errors were encountered: