Difference between revisions of "ApCoCoA-1:PGBC.ParallelGBC"

From ApCoCoAWiki
m (insert version info)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Computes a Gröbner Bases over a prime field using the degree reverse lexicographic term ordering in parallel.
+
{{Version|1}}
 
+
<command>
==Syntax==
+
  <title>PGBC.ParallelGBC</title>
<pre>
+
  <short_description>Computes a Gröbner Bases over a prime field using the degree reverse lexicographic term ordering in parallel.</short_description>
 +
 
 +
<syntax>
 
$apcocoa/pgbc.ParallelGBC(Polys:LIST,Threads:INT):LIST;
 
$apcocoa/pgbc.ParallelGBC(Polys:LIST,Threads:INT):LIST;
</pre>
+
</syntax>
 
+
  <description>
==Description==
 
 
This command computed the Gröbner Basis of the ideal generated by <tt>Polys</tt> using the degree reverse lexicographic term ordering.
 
This command computed the Gröbner Basis of the ideal generated by <tt>Polys</tt> using the degree reverse lexicographic term ordering.
 
The computation can be performed in parallel using <tt>Threads</tt> threads, at which the number of threads should be less or equal the
 
The computation can be performed in parallel using <tt>Threads</tt> threads, at which the number of threads should be less or equal the
 
number of processors/cores which are available on the used system.
 
number of processors/cores which are available on the used system.
  
 +
To compute the Gröbner Basis of <tt>F</tt> as defined below using two cores you can enter the following sequence of commands:
 +
 +
<example>
 +
Use R::=ZZ/(32003)[x[1..9],h];
 +
F:=[x[1]^2 + 2*x[2]^2 + 2*x[3]^2 + 2*x[4]^2 + 2*x[5]^2 + 2*x[6]^2 + 2*x[7]^2 + 2*x[8]^2 + 2*x[9]^2 - x[1]*h,
 +
2*x[1]*x[2] + 2*x[2]*x[3] + 2*x[3]*x[4] + 2*x[4]*x[5] + 2*x[5]*x[6] + 2*x[6]*x[7] + 2*x[7]*x[8] + 2*x[8]*x[9]- x[2]*h,
 +
x[2]^2 + 2*x[1]*x[3] + 2*x[2]*x[4] + 2*x[3]*x[5] + 2*x[4]*x[6] + 2*x[5]*x[7] + 2*x[6]*x[8] + 2*x[7]*x[9] - x[3]*h,
 +
2*x[2]*x[3] + 2*x[1]*x[4] + 2*x[2]*x[5] + 2*x[3]*x[6] + 2*x[4]*x[7] + 2*x[5]*x[8] + 2*x[6]*x[9] - x[4]*h,
 +
x[3]^2 + 2*x[2]*x[4] + 2*x[1]*x[5] + 2*x[2]*x[6] + 2*x[3]*x[7] + 2*x[4]*x[8] + 2*x[5]*x[9] - x[5]*h,
 +
2*x[3]*x[4] + 2*x[2]*x[5] + 2*x[1]*x[6] + 2*x[2]*x[7] + 2*x[3]*x[8] + 2*x[4]*x[9] -x[6]*h,
 +
x[4]^2 + 2*x[3]*x[5] + 2*x[2]*x[6] + 2*x[1]*x[7] + 2*x[2]*x[8] + 2*x[3]*x[9] - x[7]*h,
 +
2*x[4]*x[5] + 2*x[3]*x[6] + 2*x[2]*x[7] + 2*x[1]*x[8] + 2*x[2]*x[9] - x[8]*h,
 +
x[1] + 2*x[2] + 2*x[3] + 2*x[4] + 2*x[5] + 2*x[6] + 2*x[7] + 2*x[8] + 2*x[9] - h
 +
];
 +
G:=$apcocoa/pgbc.ParallelGBC(F,2);
 +
</example>
  
==Example==
+
The result you obtain is a set of polynomials which is not associated to the ideal of F. But you can set the computed basis as property of the ideal:
To compute the Gröbner Basis of <tt>F</t> as defined below using two cores you can enter the following sequenz of commands:
+
<example>
<pre>
+
I:=Ideal(F);
Use R::=ZZ/(32003)[x[1..9],h];
+
I.GBasis:=G;
F:=[x[1]^2 + 2*x[2]^2 + 2*x[3]^2 + 2*x[4]^2 + 2*x[5]^2 + 2*x[6]^2 + 2*x[7]^2 + 2*x[8]^2 + 2*x[9]^2 - x[1]*h,
+
</example>
2*x[1]*x[2] + 2*x[2]*x[3] + 2*x[3]*x[4] + 2*x[4]*x[5] + 2*x[5]*x[6] + 2*x[6]*x[7] + 2*x[7]*x[8] + 2*x[8]*x[9]- x[2]*h,
+
  </description>
x[2]^2 + 2*x[1]*x[3] + 2*x[2]*x[4] + 2*x[3]*x[5] + 2*x[4]*x[6] + 2*x[5]*x[7] + 2*x[6]*x[8] + 2*x[7]*x[9] - x[3]*h,
 
2*x[2]*x[3] + 2*x[1]*x[4] + 2*x[2]*x[5] + 2*x[3]*x[6] + 2*x[4]*x[7] + 2*x[5]*x[8] + 2*x[6]*x[9] - x[4]*h,
 
x[3]^2 + 2*x[2]*x[4] + 2*x[1]*x[5] + 2*x[2]*x[6] + 2*x[3]*x[7] + 2*x[4]*x[8] + 2*x[5]*x[9] - x[5]*h,
 
2*x[3]*x[4] + 2*x[2]*x[5] + 2*x[1]*x[6] + 2*x[2]*x[7] + 2*x[3]*x[8] + 2*x[4]*x[9] -x[6]*h,
 
x[4]^2 + 2*x[3]*x[5] + 2*x[2]*x[6] + 2*x[1]*x[7] + 2*x[2]*x[8] + 2*x[3]*x[9] - x[7]*h,
 
2*x[4]*x[5] + 2*x[3]*x[6] + 2*x[2]*x[7] + 2*x[1]*x[8] + 2*x[2]*x[9] - x[8]*h,
 
x[1] + 2*x[2] + 2*x[3] + 2*x[4] + 2*x[5] + 2*x[6] + 2*x[7] + 2*x[8] + 2*x[9] - h
 
];
 
G:=$apcocoa/pgbc.ParallelGBC(F,2);
 
</pre>
 
  
[[Category:Package_pgbc|{{PAGENAME}}]]
+
  <types>
 +
    <type>groebner</type>
 +
    <type>polynomial</type>
 +
    <type>apcocoaserver</type>
 +
  </types>
 +
  <key>pgbc</key>
 +
  <key>pgbc.parallelgbc</key>
 +
  <key>parallelgbc</key>
 +
  <wiki-category>ApCoCoA-1:Package_pgbc</wiki-category>
 +
</command>

Latest revision as of 10:31, 7 October 2020

This article is about a function from ApCoCoA-1.

PGBC.ParallelGBC

Computes a Gröbner Bases over a prime field using the degree reverse lexicographic term ordering in parallel.

Syntax

$apcocoa/pgbc.ParallelGBC(Polys:LIST,Threads:INT):LIST;

Description

This command computed the Gröbner Basis of the ideal generated by Polys using the degree reverse lexicographic term ordering.

The computation can be performed in parallel using Threads threads, at which the number of threads should be less or equal the

number of processors/cores which are available on the used system.

To compute the Gröbner Basis of F as defined below using two cores you can enter the following sequence of commands:

Example

Use R::=ZZ/(32003)[x[1..9],h];
F:=[x[1]^2 + 2*x[2]^2 + 2*x[3]^2 + 2*x[4]^2 + 2*x[5]^2 + 2*x[6]^2 + 2*x[7]^2 + 2*x[8]^2 + 2*x[9]^2 - x[1]*h,
	2*x[1]*x[2] + 2*x[2]*x[3] + 2*x[3]*x[4] + 2*x[4]*x[5] + 2*x[5]*x[6] + 2*x[6]*x[7] + 2*x[7]*x[8] + 2*x[8]*x[9]- x[2]*h,
	x[2]^2 + 2*x[1]*x[3] + 2*x[2]*x[4] + 2*x[3]*x[5] + 2*x[4]*x[6] + 2*x[5]*x[7] + 2*x[6]*x[8] + 2*x[7]*x[9] - x[3]*h,
	2*x[2]*x[3] + 2*x[1]*x[4] + 2*x[2]*x[5] + 2*x[3]*x[6] + 2*x[4]*x[7] + 2*x[5]*x[8] + 2*x[6]*x[9] - x[4]*h,
	x[3]^2 + 2*x[2]*x[4] + 2*x[1]*x[5] + 2*x[2]*x[6] + 2*x[3]*x[7] + 2*x[4]*x[8] + 2*x[5]*x[9] - x[5]*h,
	2*x[3]*x[4] + 2*x[2]*x[5] + 2*x[1]*x[6] + 2*x[2]*x[7] + 2*x[3]*x[8] + 2*x[4]*x[9] -x[6]*h,
	x[4]^2 + 2*x[3]*x[5] + 2*x[2]*x[6] + 2*x[1]*x[7] + 2*x[2]*x[8] + 2*x[3]*x[9] - x[7]*h,
	2*x[4]*x[5] + 2*x[3]*x[6] + 2*x[2]*x[7] + 2*x[1]*x[8] + 2*x[2]*x[9] - x[8]*h,
	x[1] + 2*x[2] + 2*x[3] + 2*x[4] + 2*x[5] + 2*x[6] + 2*x[7] + 2*x[8] + 2*x[9] - h
];
G:=$apcocoa/pgbc.ParallelGBC(F,2);

The result you obtain is a set of polynomials which is not associated to the ideal of F. But you can set the computed basis as property of the ideal:

Example

I:=Ideal(F);
I.GBasis:=G;