Упрощение или преобразование форматирования элемента поля Галуа
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), отношения ниже верны.
gftuple использует рекурсивные коллбэки для определения экспоненциального формата.