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

From ApCoCoAWiki
Line 11: Line 11:
 
number of processors/cores which are available on the used system.
 
number of processors/cores which are available on the used system.
  
 +
 +
==Example==
 +
To compute the Gröbner Basis of <tt>F</t> as defined below using two cores you can enter the following sequenz of commands:
 +
<pre>
 +
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);
 +
</pre>
  
 
[[Category:Package_pgbc|{{PAGENAME}}]]
 
[[Category:Package_pgbc|{{PAGENAME}}]]

Revision as of 16:11, 14 June 2012

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.


Example

To compute the Gröbner Basis of F</t> as defined below using two cores you can enter the following sequenz of commands:

	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);