У меня есть 128-битная строка, и мой руководитель попросил меня представить эти 128 бит как многочлен. Это сканирование бумаги он писал на:Как использовать многочлены вместо бит для повышения производительности?
Его идея, так как мы устраняем 0s из этих битов, мы сможем выполнить следующие операции (большинство из которых являются XOR между битами/полиномами) намного быстрее, чем если бы мы работали над всеми битами.
Я понимаю, что это такое, и я могу это сделать на бумаге, а также в приложении. Но мой путь не достигнет его цели, которая улучшает производительность. Он на самом деле сказал, что есть уже библиотеки, которые делают это, но, к сожалению, я не мог найти их. Единственное, что я нашел, это полиномиальный класс, который оценивает полиномы, чего я не хочу.
Так вы, ребята, знаете, как я могу реализовать это, чтобы улучшить производительность? Любой код/фрагменты/статьи очень ценится.
Приложение написано на Java, если это имеет значение.
Спасибо,
Мота
Update:
Мой руководитель говорит, что это C library справится с этой задачей. Я не мог понять, как это работает и как это будет сделано.
Я видел это в библиотеках шифрования, особенно в полях galois. Я не могу получить более конкретную информацию, чем это, прошло некоторое время с тех пор, как я это увидел. –
http://en.wikipedia.org/wiki/Finite_field_arithmetic –
Проблема в том, что большинство машинных бит процессов очень быстр, и если вы пытаетесь сделать что-либо еще (.e.g *, +, /), ему все равно придется использовать биты. Если использование полиномов было быстрее по каждой причине, вы могли бы принять решение, разбить его на биты, а затем на полиномы и сделать все быстрее с каждой итерацией (вместо этого я подозреваю, что это будет медленнее каждый раз). Могут быть ситуации, когда то, что он предлагает, быстрее, но я не могу думать ни о чем. –