Skip to content

128-bit support #5

@Akatsukis

Description

@Akatsukis

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions