-
Notifications
You must be signed in to change notification settings - Fork 123
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
unique process of compression #20
Comments
Can you provide a test case? (source code) I do not understand the issue you are reporting. |
I want to compress two ipv4 addresses, so i define a vector contained two 2015-05-09 1:53 GMT+02:00 Daniel Lemire notifications@github.com:
|
This library is ill-suited for the purpose you describe. Though you can certainly can encode an array containing two 32-bit integers, it is unlikely that the result will be a single 32-bit integer in general. This library is meant for computing arrays containing many integers. Please see the example: https://github.com/lemire/FastPFor/blob/master/example.cpp I am closing this issue as invalid. If you do find a bug, please provide a reproducible test case. |
Please Sir ,just a final question, "computing arrays containing many Thanks in advance Sir. 2015-05-09 2:42 GMT+02:00 Daniel Lemire notifications@github.com:
|
Of course.
The goal of the library is to have fewer integers in the compressed vector. Yes. |
It isn't logical to have the same compressed vector for two different 2015-05-09 3:33 GMT+02:00 Daniel Lemire notifications@github.com:
|
Yes it is a bug. It is most likely a bug in your code. |
mouna@ubuntu:~/newtmp/FastPFor$ ./example Compressed data 19984 Compressed data 23 You are using 0.109 bits per integer. Decompressed data 1 4294967295 Decompressed data 2 4294967295 mouna@ubuntu:~/newtmp/FastPFor$ make example [ 85%] Built target FastPFor Scanning dependencies of target example [100%] Building CXX object CMakeFiles/example.dir/example.cpp.o Linking CXX executable example [100%] Built target example mouna@ubuntu:~/newtmp/FastPFor$ ./example Compressed data 19984 Compressed data 23 You are using 0.109 bits per integer. Decompressed data 1 4967295 Decompressed data 2 4294967295 What is the problem? I used 32 bits integers, i changed the first integer 2015-05-08 18:51 GMT-07:00 Daniel Lemire notifications@github.com:
|
mouna@ubuntu:~/newtmp/FastPFor$ ./example Compressed data 19984 Compressed data 23 You are using 0.109 bits per integer. Decompressed data 1 4294967295 Decompressed data 2 4294967295 mouna@ubuntu:~/newtmp/FastPFor$ make example [ 85%] Built target FastPFor Scanning dependencies of target example [100%] Building CXX object CMakeFiles/example.dir/example.cpp.o Linking CXX executable example [100%] Built target example mouna@ubuntu:~/newtmp/FastPFor$ ./example Compressed data 19984 Compressed data 23 You are using 0.109 bits per integer. Decompressed data 1 4967295 Decompressed data 2 4294967295 What is the problem? I used 32 bits integers, i changed the first one but 2015-05-09 3:51 GMT+02:00 Daniel Lemire notifications@github.com:
|
If you think you have found a bug, please submit a test case. |
test case 2015-05-08 19:30 GMT-07:00 Daniel Lemire notifications@github.com:
|
The size of the compressed vector is most certainly more than two words. Probably four words. That is, the "compressed" vector is probably larger than the input vector. These arrays you provide are not compressible using this library. They are too short. Please read the papers, study carefully the code and the examples.
I am not going to be able to help you further. |
Thank you Sir. 2015-05-09 5:09 GMT+02:00 Daniel Lemire notifications@github.com:
|
Hi,
I succeed to build the package FastPFor in my machine and compile the example.cpp. So, i change the integers in the vector data:
std::vector<uint32_t> mydata(N);
mydata[0] = 4294967295;
mydata[1] = 4294967295;
i display compressed data and decompressed data
std::cout<<"Compressed data " << compressed_output.data()<<std::endl;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
codec.decodeArray(compressed_output.data(),
compressed_output.size(), mydataback.data(), recoveredsize);
std::cout<<"Decompressed data 1 " <<mydataback.data()[0]<<std::endl;
std::cout<<"Decompressed data 2 " <<mydataback.data()[1]<<std::endl;
the result is in first execution
Compressed data 0x1b99a80
You are using 0.109 bits per integer.
Decompressed data 1 4294967295
Decompressed data 2 4294967295
////////////////////////////////////////////////////////////////////////////////
in second execution
Compressed data 0xd0da80
You are using 0.109 bits per integer.
Decompressed data 1 4294967295
Decompressed data 2 4294967295
---> i obtain a different compressed data. Perhaps this is the address of the compressed data, for thus i add
std::cout<<"Compressed data " << compressed_output.data()[0]<<std::endl;
but the result of the compressed data is the same when i change mydata[0] .
How can i distinguish between two processes of compression?? Is the compressed data unique for each compression???What is the information which makes compression process unique and unchangeable??
Thanks in advance.
The text was updated successfully, but these errors were encountered: