9.1 Basis

class Basis
Представляет собой инволютивный базис. Может быть сконструирован только функцией basis.

Класс Basis имеет следующие методы:

lenghtIB( )
возвращает количество элементов инволютивоного базиса

lenghtGB( )
возвращает количество элементов базиса Грёбнера

numCriterion( )
возвращает количество примененых критериев равенства нулю S-полиномов при построении базиса

numSpoly( )
возвращает количество вычисленных S-полиномов при построении базиса

numReduction( )
возвращает количество выполненых приведений полиномов при построении базиса

userTime( )
возвращает затраченное пользовательское время при построении базиса

sysTime( )
возвращает затраченное системное время при построении базиса

realTime( )
возвращает затраченное астрономическое время при построении базиса

hilbertPolynomial( )
возвращает строку представляющую полином Гильберта инволютивоного базиса

iterStatistics( )
возвращает итератор для просмотра статистики работы инволютивного алгоритма. Представляет собой кортеж из 4 элементов:

iterIB( )
возвращает итератор для просмотра инволитивного базиса представленного обьектами класса Poly (см. 6.2)

iterGB( )
возвращает итератор для просмотра базиса Грёбнера представленного обьектами класса Poly (см. 6.2)

iterLmIB( )
возвращает итератор для просмотра лидирующих мономов инволитивного базиса представленного обьектами класса Monom (см. 4.2)

iterLmGB( )
возвращает итератор для просмотра лидирующих мономов базиса Грёбнера представленного обьектами класса Monom (см. 4.2)

iterLmGB( )
возвращает итератор для просмотра лидирующих мономов базиса Грёбнера представленного обьектами класса Monom (см. 4.2)

find( monom)
ищет инволютивный делитель в базисе. monom может предствлять собой строку инициализации монома или представлять собой обьект класса Monom (см. 4.2).

Мономы в базисе и monom должны иметь одинаковые интерфейсы.

nf( poly)
выполняет приведение poly по базису с точностью до лидирующего монома. poly может предствлять собой строку инициализации монома или представлять собой обьект класса Poly (см. 6.2).

Полиномы в базисе и poly должны иметь одинаковые интерфейсы.

isNf( poly)
выполняет проверку приведения poly по базису с точностью до лидирующего монома. Возвращает True, иначе False poly может предствлять собой строку инициализации монома или представлять собой обьект класса Poly (см. 6.2).

Полиномы в базисе и poly должны иметь одинаковые интерфейсы.

nfTail( poly)
выполняет полное приведение poly по базису без редукции лидирующего монома. poly может предствлять собой строку инициализации монома или представлять собой обьект класса Poly (см. 6.2).

Полиномы в базисе и poly должны иметь одинаковые интерфейсы.

isNf( poly)
выполняет проверку приведения polyпо базису без редукции лидирующего монома. Возвращает True, иначе False poly может предствлять собой строку инициализации монома или представлять собой обьект класса Poly (см. 6.2).

Полиномы в базисе и poly должны иметь одинаковые интерфейсы.

Класс Basis может быть аргументом следующих функций:

len( basis)
возвращает число элементов инволютивного базиса basis.

[]( basis, i)
возвращает i-ый член инволютивного базиса представленный обьектами класса Wrap (см. 7.2)

Базис представляет собой итератор языка Python:

import ginv

st = ginv.SystemType("Polynomial")
im = ginv.MonomInterface("Lex", st, ['x', 'y', 'z'])
ic = ginv.CoeffInterface("GmpZ", st)
ip = ginv.PolyInterface("PolyList", st, im, ic)
iw = ginv.WrapInterface("CritPartially", ip)
iD = ginv.DivisionInterface("Janet", iw)

basis = ginv.basisBuild("TQ", iD, \
  ['x^3 - y^2 + z - 1',\
   'y^3 - z^2 + x - 1',\
   'z^3 - x^2 + y - 1'])

for w in basis: print w.lm(),
В результате будет распечатан список лидирующих мономов инволютивного базиса "x y z27".