gftuple

Упрощение или преобразование форматирования элемента поля Галуа

Синтаксис

tp = gftuple(a,m)
tp = gftuple(a,prim_poly)
tp = gftuple(a,m,p)
tp = gftuple(a,prim_poly,p)
tp = gftuple(a,prim_poly,p,prim_ck)
[tp,expform] = gftuple(...)

Описание

Примечание

Эта функция выполняет расчеты в GF (pm), где p является простым. Для выполнения эквивалентных расчетов в ГФ (2m), применить .^ оператор и log функция для массивов Галуа. Для получения дополнительной информации смотрите Пример: Экспоненция и Пример: Элементарный логарифм.

Для всех синтаксисов

gftuple служит для упрощения полинома или экспоненциального формата элементов поля Галуа, или для преобразования из одного формата в другой. Для пояснения форматов, которые gftuple использует, см. Представление элементов полей Галуа.

В этом обсуждении формат элемента GF (pm) называется «самым простым», если все экспоненты примитивного элемента

  • Между 0 и m-1 для полиномиального формата

  • Либо -Inf, или между 0 и pm-2, для экспоненциального формата

Для всех синтаксисов a является матрицей, каждая строка которой представляет элементу массива поле Галуа. Формат a определяет, как MATLAB интерпретирует его:

  • Если a является столбцом целых чисел, MATLAB интерпретирует каждую строку как экспоненциальный формат элемента. Отрицательные целые числа эквивалентны -Inf все они представляют нулевой элемент поля.

  • Если a имеет более одного столбца, MATLAB интерпретирует каждую строку как полиномиальный формат элемента. (Каждая запись a должно быть целым числом от 0 до p-1.)

Экспоненциальные или полиномиальные форматы, упомянутые выше, все относятся к примитивному элементу, заданному вторым входным параметром. Второй аргумент описан ниже.

Для конкретных синтаксисов

tp = gftuple(a,m) возвращает самый простой полиномиальный формат элементов, которые a представляет, где k-я строка tp соответствует k-й строке a. Форматы относятся к корню примитивного полинома по умолчанию для GF (2^m), где m является положительным целым числом.

tp = gftuple(a,prim_poly) является тем же синтаксисом, что и выше, за исключением того, что prim_poly - полиномиальный вектор символов или вектор-строка, в котором перечислены коэффициенты степени m примитивный полином для GF (2^m) в порядке возрастания экспонентов.

tp = gftuple(a,m,p) то же, что и tp = gftuple(a,m) кроме того, что 2 заменяется простым числом p.

tp = gftuple(a,prim_poly,p) то же, что и tp = gftuple(a,prim_poly) кроме того, что 2 заменяется простым числом p.

tp = gftuple(a,prim_poly,p,prim_ck) то же, что и tp = gftuple(a,prim_poly,p) кроме того gftuple проверяет, prim_poly ли представляет полином, который действительно является примитивом. Если нет, то gftuple генерирует ошибку и tp не возвращается. Входной параметр prim_ck может быть любым числом или вектором символов; имеет значение только его существование.

[tp,expform] = gftuple(...) возвращает дополнительную матрицу expform. k-я строка expform является простейшим экспоненциальным форматом элемента, который является k-й строкой a представляет собой. Все другие функции описаны в более ранних частях этого раздела «Описание» в зависимости от входных параметров.

Примеры

В качестве другого примера, gftuple команда ниже генерирует список элементов GF (p^m), расположенная относительно корня примитивного полинома по умолчанию. Некоторые функции в этом тулбоксе используют такой список как входной параметр.

p = 5; % Or any prime number
m = 4; % Or any positive integer
field = gftuple([-1:p^m-2]',m,p);

Наконец, две команды ниже иллюстрируют влияние формы матрицы входа. В первой команде вектора-столбца обрабатывается как последовательность элементов, выраженных в экспоненциальном формате. Во второй команде вектора-строки рассматривается как один элемент, выраженный в полиномиальном формате.

tp1 = gftuple([0; 1],3,3)
tp2 = gftuple([0, 0, 0, 1],3,3)

Ниже приведен выход.

tp1 =

     1     0     0
     0     1     0


tp2 =


     2     1     0

Выходы отражают, что, согласно примитивному полиному по умолчанию для GF (33), отношения ниже верны.

α0=1+0α+0α2α1=0+1α+0α20+0α+0α2+α3=2+α+0α2

Алгоритмы

gftuple использует рекурсивные коллбэки для определения экспоненциального формата.

См. также

| | | | |

Представлено до R2006a