Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to long long as the default type for kronecker_monomial #32

Open
bluescarni opened this issue Feb 2, 2016 · 1 comment
Open
Assignees

Comments

@bluescarni
Copy link
Owner

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.

@bluescarni bluescarni self-assigned this Feb 2, 2016
@bluescarni
Copy link
Owner Author

This should also be done for the real trigonometric Kronecker monomial class.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant