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

произвольная длина битового поля #2

Open
vinnitu opened this issue Apr 14, 2015 · 1 comment
Open

произвольная длина битового поля #2

vinnitu opened this issue Apr 14, 2015 · 1 comment

Comments

@vinnitu
Copy link

vinnitu commented Apr 14, 2015

Речь идет о битовом поле, который происходит от массива байт.
Как вариант - из задачи поиска дубликатов на основе дескрипторов ORB.
Цель - оставить максимальную точность (не использовать phash например).
Сложность - длина битового поля не кратная 64, но главным образом отличающаяся от стандартных типов в большую сторону (максимум имеем на unsigned long long).
Хотелось бы иметь возможность динамического расчета r, rcut и др. Т.е. входная величина
только k - желаемая точность, дистанция хемминга)

Сначала думал о std::bitset, но данный тип имеет статическую инициализацию
на уровне шаблона (простите за калабмур), boost::dynamic_bitset почему-то всегда отвергаю испольование boost, vector - думается насколько компактно размещаются ли данные в памяти, используются биты,а не байты скажем... ну и кастомная реализация bitset...

Хотелось бы услышать ваше мнение.

@valbok
Copy link
Owner

valbok commented Apr 16, 2015

Если правильно понял, из-за того, что ORB возвращает 32 байта, а масимум что имеем это 8 байт в типе 64бит, хотелось HEngine прикрутить работать с 32 байтами, а не 8.

Ну так задачу сперва можно решить и без всяких HEngine, сохраняя 4 поля в MySQL например и посмотреть как работает.
Далее можно сделать 4 объекта HEngine, для своей колонки.

Для больших типов надо будет переписывать,
но можно, например, использовать char* или std::vector
и вектор размещает память последовательно точно также как это делает c array.

Ну и смысл в HEngine в том, чтобы быстрее работал, в случае использования vector будет уже туго. Думаю обычными xor в MySQL будет не намного медленее.

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

2 participants