ekg / seqwish

alignment to variation graph inducer
MIT License
143 stars 18 forks source link

What is the special meaning of this algorithm:lt_deBruijn_to_idx[((x&-x)*deBruijn64)>>58] #103

Closed Wenmj201582 closed 1 year ago

Wenmj201582 commented 1 year ago

Seqwish-v0.7.5 is ok when compiled with gcc, but an error occurs when compiled with the HUAWEI BiSheng Compiler 2.1.0. B010image

After troubleshooting, the error is caused by the algorithm in line 432 of the deps/sdsl lite/include/sdsl/bits. hpp file, image

1、What is the special significance of this algorithm? *lt_deBruijn_to_idx[((x&-x)deBruijn64)>>58]**, what does 58 bit shift represent;

2、If I use the Bi Sheng compiler, how can I solve this problem?

AndreaGuarracino commented 1 year ago

Why are you not using gcc or the standard clang?

Regarding the error, I was going to suggest asking directly on the sdsl-lite repository, but I've seen you are already there (https://github.com/simongog/sdsl-lite/issues/452).

I was able to build seqwish with the standard clang. I've just pushed a few instructions in the README about how to do it: https://github.com/ekg/seqwish#clang. Since you are using some vendor-modified clang, please consider reporting this issue to the compiler vendor.