реклама на сайте
подробности

 
 
> Быстрые алгоритмы арифметики в полях Галуа?
andrex
сообщение Feb 25 2009, 12:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 20-01-09
Пользователь №: 43 650



Здравствуйте!

Мне пока известно лишь то, что умножение в GF(2^8) реализуется сложением индексов и с использованием таблицы.
Буду благодарен за любую информацию о других существующих алгоритмах.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kons
сообщение Feb 28 2009, 11:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035



А что тут придумаешь? Таблично.
- анализ на a==0 или b==0
- берем логарифм a (для GF(2^10) - таблица 1024xshort)
- по той же таблице - логарифм b
- сумма по модулю 2^10-1
- антилогарифм (другая таблица, тоже 1024xshort)
Способы ускорения:
- часто требуется умножать массив на константу, ее логарифм взять заранее, далее - иметь спецфункцию GF_mul_exp(GF_val a, GF_log B )
- чтобы не тратить время на проверки равенства 0 и взятие по модулю - иметь расширенную вчетверо таблицу антилогарифмов:
log(0)=2*2^N, таблица расширена просто: exp(2^N...2*2^N-2) = exp(1...2^N-1), при x>2*2^N-2 exp(x)=0
Go to the top of the page
 
+Quote Post
andrex
сообщение Feb 28 2009, 13:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 20-01-09
Пользователь №: 43 650



Цитата(kons @ Feb 28 2009, 17:57) *
А что тут придумаешь? Таблично.

Спасибо, в общем-то так и делаю.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 14:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016