Сгенерируйте файл, чтобы ускорить вычисления Поля Галуа
gftable(m,prim_poly);
gftable(m,prim_poly)
генерирует файл, который может помочь ускорить вычисления в поле GF (2^m
), как описано примитивным полиномиальным prim_poly
не по умолчанию, который может быть или полиномиальным вектором символов или целым числом. prim_poly
представляет примитивный полином для GF (2^m
), где 1 <m <16, с помощью формата описал в Определении Примитивного Полинома. Функция помещает файл, названный userGftable.mat
, в вашей текущей рабочей папке. При необходимости функция перезаписывает любую перезаписываемую существующую версию файла.
Если prim_poly
является примитивным полиномом по умолчанию для GF (2^m
), перечисленный в таблице на странице с описанием gf
, эта функция не имеет никакого эффекта. MAT-файл в вашей установке MATLAB уже включает информацию, которая упрощает вычисления относительно примитивного полинома по умолчанию.
В примере ниже, вы ожидаете, что t3
будет подобным t1
и будет значительно меньшим, чем t2
, принимая, что у вас уже нет файла userGftable.mat
, который включает (m
, prim_poly
) пара (8
, 501
). Заметьте, что прежде, чем выполнить команду gftable
, MATLAB выводит предупреждение и что после выполнения gftable
, нет никакого предупреждения. Путем выполнения команды gftable
вы сохранили таблицу GF для более быстрых вычислений.
% Sample code to check how much gftable improves speed. tic; a = gf(repmat([0:2^8-1],1000,1),8); b = a.^100; t1 = toc; tic; a = gf(repmat([0:2^8-1],1000,1),8,501); b = a.^100; t2 = toc; gftable(8,501); % Include this primitive polynomial in the file. tic; a = gf(repmat([0:2^8-1],1000,1),8,501); b = a.^100; t3 = toc;