Упростите или преобразуйте форматирование элемента Поля Галуа
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 является главным. Чтобы выполнить эквивалентные вычисления в GF (2 м), примените оператор .^
и функцию 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
, где kth строка tp
соответствует kth строке 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
. kth строка expform
является самым простым экспоненциальным форматом элемента, который представляет kth строка a
. Все другие функции как описаны в началах этого раздела “Description”, в зависимости от входных параметров.
Как другой пример, команда 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
использует рекурсивные коллбэки, чтобы определить экспоненциальный формат.