package jscl.math.polynomial.groebner; import jscl.math.polynomial.Ordering; import jscl.math.polynomial.Polynomial; import java.util.ArrayList; import java.util.Iterator; import java.util.List; class F4 extends Block { List reduction = new ArrayList(); F4(Ordering ordering, int flags) { super(ordering, flags); } void add(List list) { Iterator it = list.iterator(); while (it.hasNext()) { Polynomial p = (Polynomial) it.next(); if (p.signum() != 0) add(p); } } void process(List pairs) { List list = new ArrayList(); Iterator it = pairs.iterator(); while (it.hasNext()) { Pair pa = (Pair) it.next(); if (criterion(pa)) continue; list.add(pa); } add(F4Reduction.compute(list, polys, reduction, flags)); npairs += list.size(); } }