947{
950 if (A !=
nullptr and input->
n_rows() == 1)
951 {
953 bool isF4 = strategy & 16;
954 bool isParallel = strategy & 32;
955 if (isF4)
956 {
958
959 NCF4 G(A->
freeAlgebra(), elems, maxdeg, strategy, (isParallel ? numthreads : 1));
963 }
964 else
965 {
970 }
971
972 }
973 ERROR(
"expected a one row matrix over a noncommutative algebra");
974 return nullptr;
975}
PolyList copyPolyVector(const M2FreeAlgebraOrQuotient *A, const PolyList &polys)
const FreeAlgebra & freeAlgebra() const
Concrete Ring wrapper around an owned FreeAlgebra (no quotient).
const Ring * get_ring() const
Non-commutative F4 Groebner-basis driver: builds a per-degree Macaulay matrix from overlaps and reduc...
One-overlap-at-a-time Groebner basis driver for the free associative algebra (the "Naive" companion t...
virtual const M2FreeAlgebra * cast_to_M2FreeAlgebra() const
ConstPolyList matrixToPolyList(const M2FreeAlgebraOrQuotient *A, const Matrix *input)
const Matrix * polyListToMatrix(const M2FreeAlgebraOrQuotient *A, const PolyL &elems, int numrows, int numcols)
VALGRIND_MAKE_MEM_DEFINED & result(result)