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

128-bit support #5

Open
Akatsukis opened this issue May 17, 2022 · 0 comments
Open

128-bit support #5

Akatsukis opened this issue May 17, 2022 · 0 comments

Comments

@Akatsukis
Copy link

Hi there,

I tried to pass a 128-bit integer as the key to sort the sequence, but it returned the following errors:

[ 95%] Built target tlx
Scanning dependencies of target ips2ra_example
[ 97%] Building CXX object CMakeFiles/ips2ra_example.dir/src/example.cpp.o
In file included from /home/xdong038/GitHub/ips2ra/extern/tlx/tlx/math.hpp:26,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/sampling.hpp:44,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/sequential.hpp:44,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/parallel.hpp:58,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/ips2ra.hpp:46,
from /home/xdong038/GitHub/ips2ra/include/ips2ra.hpp:38,
from /home/xdong038/GitHub/ips2ra/src/example.cpp:48:
/home/xdong038/GitHub/ips2ra/extern/tlx/tlx/math/clz.hpp:41:17: warning: inline function ‘unsigned int tlx::clz(Integral) [with Integral = __int128 unsigned]’ used but never defined
inline unsigned clz(Integral x);
^~~
In file included from /home/xdong038/GitHub/ips2ra/extern/tlx/tlx/math.hpp:27,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/sampling.hpp:44,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/sequential.hpp:44,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/parallel.hpp:58,
from /home/xdong038/GitHub/ips2ra/include/ips2ra/ips2ra.hpp:46,
from /home/xdong038/GitHub/ips2ra/include/ips2ra.hpp:38,
from /home/xdong038/GitHub/ips2ra/src/example.cpp:48:
/home/xdong038/GitHub/ips2ra/extern/tlx/tlx/math/ctz.hpp:41:17: warning: inline function ‘unsigned int tlx::ctz(Integral) [with Integral = __int128 unsigned]’ used but never defined
inline unsigned ctz(Integral x);
^~~
[100%] Linking CXX executable ips2ra_example
CMakeFiles/ips2ra_example.dir/src/example.cpp.o: In function ips2ra::detail::Sorter<ips2ra::ExtendedConfig<std::pair<unsigned __int128, unsigned __int128>*, test<unsigned __int128>(parlay::sequence<std::pair<unsigned __int128, unsigned __int128>, parlay::allocator<std::pair<unsigned __int128, unsigned __int128> >, std::is_same<std::pair<unsigned __int128, unsigned __int128>, char>::value> const&)::{lambda(std::pair<unsigned __int128, unsigned __int128> const&)#1}, ips2ra::Config<32l, 128l, 2048l, 1024l, 8l, 2048l, long, 4096ul, 8, 4l, 20, 7>, ips2ra::OpenMPThreadPool> >::parallelGetLevels(std::pair<unsigned __int128, unsigned __int128>*, std::pair<unsigned __int128, unsigned __int128>*, std::vector<unsigned __int128, std::allocator<unsigned __int128> >&, ips2ra::detail::Sorter<ips2ra::ExtendedConfig<std::pair<unsigned __int128, unsigned __int128>*, test<unsigned __int128>(parlay::sequence<std::pair<unsigned __int128, unsigned __int128>, parlay::allocator<std::pair<unsigned __int128, unsigned __int128> >, std::is_same<std::pair<unsigned __int128, unsigned __int128>, char>::value> const&)::{lambda(std::pair<unsigned __int128, unsigned __int128> const&)#1}, ips2ra::Config<32l, 128l, 2048l, 1024l, 8l, 2048l, long, 4096ul, 8, 4l, 20, 7>, ips2ra::OpenMPThreadPool> ><bool, std::allocator<bool> >&, int, int) [clone .constprop.947]': example.cpp:(.text._ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE17parallelGetLevelsES5_S5_RSt6vectorIoSaIoEERSQ_IbSaIbEEii.constprop.947[_ZZN6ips2ra14ParallelSorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS2_IT_S8_ENS6_9allocatorIS9_EEXsrSt7is_sameIS9_cE5valueEEEEUlRKS3_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEEclES4_S4_ENKUliiE_clEii]+0x307): undefined reference to unsigned int tlx::clz(unsigned __int128)'
example.cpp:(.text._ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE17parallelGetLevelsES5_S5_RSt6vectorIoSaIoEERSQ_IbSaIbEEii.constprop.947[_ZZN6ips2ra14ParallelSorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS2_IT_S8_ENS6_9allocatorIS9_EEXsrSt7is_sameIS9_cE5valueEEEEUlRKS3_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEEclES4_S4_ENKUliiE_clEii]+0x315): undefined reference to unsigned int tlx::ctz<unsigned __int128>(unsigned __int128)' CMakeFiles/ips2ra_example.dir/src/example.cpp.o: In function ips2ra::detail::Sorter<ips2ra::ExtendedConfig<std::pair<unsigned __int128, unsigned __int128>, test(parlay::sequence<std::pair<unsigned __int128, unsigned __int128>, parlay::allocator<std::pair<unsigned __int128, unsigned __int128> >, std::is_same<std::pair<unsigned __int128, unsigned __int128>, char>::value> const&)::{lambda(std::pair<unsigned __int128, unsigned __int128> const&)#1}, ips2ra::Config<32l, 128l, 2048l, 1024l, 8l, 2048l, long, 4096ul, 8, 4l, 20, 7>, ips2ra::OpenMPThreadPool> >::sampleLevels(std::pair<unsigned __int128, unsigned __int128>, std::pair<unsigned __int128, unsigned __int128>*)':
example.cpp:(.text.ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE12sampleLevelsES5_S5[ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE12sampleLevelsES5_S5]+0x14b): undefined reference to unsigned int tlx::clz<unsigned __int128>(unsigned __int128)' example.cpp:(.text._ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE12sampleLevelsES5_S5_[_ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE12sampleLevelsES5_S5_]+0x159): undefined reference to unsigned int tlx::ctz(unsigned __int128)'
CMakeFiles/ips2ra_example.dir/src/example.cpp.o: In function ips2ra::detail::Sorter<ips2ra::ExtendedConfig<std::pair<unsigned __int128, unsigned __int128>*, test<unsigned __int128>(parlay::sequence<std::pair<unsigned __int128, unsigned __int128>, parlay::allocator<std::pair<unsigned __int128, unsigned __int128> >, std::is_same<std::pair<unsigned __int128, unsigned __int128>, char>::value> const&)::{lambda(std::pair<unsigned __int128, unsigned __int128> const&)#1}, ips2ra::Config<32l, 128l, 2048l, 1024l, 8l, 2048l, long, 4096ul, 8, 4l, 20, 7>, ips2ra::OpenMPThreadPool> >::sequentialGetLevels(std::pair<unsigned __int128, unsigned __int128>*, std::pair<unsigned __int128, unsigned __int128>*)': example.cpp:(.text._ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE19sequentialGetLevelsES5_S5_[_ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE19sequentialGetLevelsES5_S5_]+0x13d): undefined reference to unsigned int tlx::clz(unsigned __int128)'
example.cpp:(.text.ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE19sequentialGetLevelsES5_S5[ZN6ips2ra6detail6SorterINS_14ExtendedConfigIPSt4pairIooEZ4testIoEdRKN6parlay8sequenceIS3_IT_S9_ENS7_9allocatorISA_EEXsrSt7is_sameISA_cE5valueEEEEUlRKS4_E_NS_6ConfigILl32ELl128ELl2048ELl1024ELl8ELl2048ElLm4096ELi8ELl4ELi20ELi7EEENS_16OpenMPThreadPoolEEEE19sequentialGetLevelsES5_S5]+0x14b): undefined reference to `unsigned int tlx::ctz(unsigned __int128)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ips2ra_example.dir/build.make:107: ips2ra_example] Error 1
make[1]: *** [CMakeFiles/Makefile2:133: CMakeFiles/ips2ra_example.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

Do you consider adding 128-bit support to your library?

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

No branches or pull requests

1 participant