Каков стандартный способ построения полинома в NTL?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Каков стандартный способ построения полинома в NTL?

Сообщение Anonymous »

В частности, я пытаюсь построить полином из Z_p[x] по модулю другого полинома P, что требует использования ZZ_pE. Из библиотеки NTL конструкторы для ZZ_pE:

Код: Выделить всё

ZZ_pE(); // initial value 0
ZZ_pE(const ZZ_pE& a); // copy constructor
explicit ZZ_pE(const ZZ_p& a); // promotion
explicit ZZ_pE(long a); // promotion
ZZ_pE& operator=(const ZZ_pE& a); // assignment
ZZ_pE& operator=(const ZZ_p& a); // assignment
ZZ_pE& operator=(long a); // assignment
Как видите, ZZ_pE можно построить только из числа ( или длинный) или из другого ZZ_pE. Поэтому единственные полиномы, которые мне удалось построить, имеют степень 0. Следующий код устанавливает модули p = 100001 и P = x^4 - 1 и создает ZZ_pE g = 5.

Код: Выделить всё

// Declare polynomial and coefficient moduli
ZZ_p::init(ZZ(100001));
ZZ_pX cyclo = ZZ_pX(INIT_MONO, 4) - 1;
ZZ_pE::init(cyclo);

// Construct g
ZZ_pE g = ZZ_pE(5);
Моя цель — сделать g полиномом более высокой степени по моему выбору. Как мне это сделать?

Последующий вопрос: каков стандартный (наиболее эффективный) способ инициализации полинома (например, в ZZX)? Если бы я хотел построить f = x^2 - 3x + 4, это мой текущий метод:

Код: Выделить всё

ZZ list[3] ={ZZ(4), ZZ(-3), ZZ(1)};
ZZX f;
for(int i=0; i

Подробнее здесь: [url]https://stackoverflow.com/questions/51116229/what-is-the-standard-way-to-construct-a-polynomial-in-ntl[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»