simongog / sdsl

Succinct Data Structure Library
Other
105 stars 15 forks source link

Does this lib only can be run on a 64-bits system? #26

Open feixeyes opened 12 years ago

feixeyes commented 12 years ago

1) I find the uint128_t be defined as below:

typedef unsigned int uint128_t attribute((mode(TI)));

It can't be complier on my box,I google it for that,on 32-bits system the TI should repalce by the DI. But after replace the TI by DI, some new errors appeared. 1.1) ambiguous overload for operator<< in uint128_t when change the defination of uint128_t as typedef unsigned int uint128_t attribute((mode(DI))); Then there is new error,the error infomation as below: /home/feixeyes/include/sdsl/uint128_t.hpp:46: error: ambiguous overload for ��operator<<�� in ��((std::ostream*)os)->std:
:basic_ostream<_CharT, _Traits>::operator<< with _CharT = char, _Traits = std::char_traits << (X[j] >> 60)��

2) ambiguous overload for ��operator<<�� in ��ss << t��
There is a similarity error in the util.hpp

template std::string util::to_string(const T& t) { std::stringstream ss; ss<<t; return ss.str(); }

System info: Linux feixeyes-laptop 2.6.32-41-generic #90-Ubuntu SMP Tue May 22 11:31:25 UTC 2012 i686 GNU/LinuxTarget: i486-linux-gnu gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)

simongog commented 12 years ago

replacing TI by DI is not an option, since then the 128-bit integer would only have 64 bits. See for example http://stackoverflow.com/questions/4559025/what-does-gcc-attribute-modexx-actually-do

The only thing I can do, is to exclude this functionality for 32-bit architectures. The functionality which would not work any more is rrr_vector with X>64. I have to change the cmake file. Would this solve your problem?

feixeyes commented 12 years ago

Yes,Thank you for your reply. Maybe if the uint128 can be rewritten by use int64 as underly data is a better way to solve this problem.

simongog commented 12 years ago

At the moment, I don't have time to write and test such a class. Do you like to implement this?

feixeyes commented 12 years ago

yes £¬I would like .I can have a try. ÔÚ 2012-9-3 ÍíÉÏ8:00£¬"Simon Gog" notifications@github.comдµÀ£º

At the moment, I don't have time to write and test such a class. Do you like to implement this?

¡ª Reply to this email directly or view it on GitHubhttps://github.com/simongog/sdsl/issues/26#issuecomment-8236627.