prove

Given a list of functions, prove that at least one is negative at every point of a given domain.

[ kepler | Source | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

OVERVIEW TEXT
AUTHOR

Class Summary

class prove
{

public:
static int recursiveVerifier(int depth, const domain& x,const domain& z, const domain& x0,const domain& z0, const taylorFunction* I[], int count,const cellOption& options);
static void recursiveVerifierQ(int depth, const domain& xA,const domain& xB, const domain& zA,const domain& zB, const taylorFunction* IA[],const taylorFunction* IB[],int Nineq, const cellOption& options);
static int generic(const domain& x,const domain& z,const taylorFunction& F);
static int qrtet(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int qrtetReduce (const domain& x,const domain& z,const taylorFunction& FlessScore);
static int flat(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int flatVc(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int upright(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int octa(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int octaWithoutEta(const domain& x,const domain& z, const taylorFunction& FlessScore);
static int quadcluster(const domain& xA,const domain& xB, const domain& zA, const domain& zB, const taylorFunction& fA, const taylorFunction& fB);
protected:
}; // prove

Back to the top of prove


OVERVIEW TEXT

This class gathers together a number of routines that take a taylorFunction (or more generally a list of taylorFunctions F) and proves that at least one of the functions F is negative on the given domain.

Back to the top of prove


AUTHOR

Thomas C. Hales

Back to the top of prove


int recursiveVerifier(int depth, const domain& x,const domain& z, const domain& x0,const domain& z0, const taylorFunction* I[], int count,const cellOption& options);

recursiveVerifier is the main inequality verification procedure for simplices. It starts with a list of taylorFunctions I[], and attempts to prove that at every point of the domain x--z, at least one of the functions is negative. Start with depth=0. Each step of the recursion will increase the depth by 1. Start with x=x0, z=z0. As the domain is subdivided, x will increase and z will decrease. x0, z0 remain fixed, unless there is dimension reduction.

static int recursiveVerifier(int depth,
	const domain& x,const domain& z,     /// current cell
	const domain& x0,const domain& z0,   // boundary
	const taylorFunction* I[],
	int count,const cellOption& options);

Back to the top of prove


void recursiveVerifierQ(int depth, const domain& xA,const domain& xB, const domain& zA,const domain& zB, const taylorFunction* IA[],const taylorFunction* IB[],int Nineq, const cellOption& options);

recursiveVerifierQ is the main inequality verification procedure for quad clusters. Each quad cluster is divided into two simplices A,B along the shortest diagonal. A list of taylorFunctions is given IA, IB for the two simplices. The recursiveVerifierQ procedure attempts to show that at every point in the domain xA--zA (on A), xB--zB (on B), there is an index for which the sum of the values of IA[index] on A and IB[index] on B is negative. IA[index] or IB[index] is allowed to be positive as long as the sum is negative. Dimension reduction is always used in recursiveVerifierQ. Otherwise the dimensions are too great to be handled by computer. This means that if unreducible taylorFunctions are used, the results are unreliable.

The depth starts out at 0.

static void recursiveVerifierQ(int depth, 
	const domain& xA,const domain& xB,
	const domain& zA,const domain& zB,
	const taylorFunction* IA[],const taylorFunction* IB[],int Nineq,
	const cellOption& options);

Back to the top of prove


int generic(const domain& x,const domain& z,const taylorFunction& F);

Prove that F<0 on the domain x--z. This function calls recursiveVerifier.

static int generic(const domain& x,const domain& z,const taylorFunction& F);

Back to the top of prove


int qrtet(const domain& x,const domain& z,const taylorFunction& FlessScore);

Prove that sigma+FlessScore <0 on the the domain x--z. Two cases are considered according to whether the score is compression or the analytic voronoi function. qrtet calls recursiveVerifier twice.

static int qrtet(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int qrtetReduce (const domain& x,const domain& z,const taylorFunction& FlessScore);

Prove that sigma+FlessScore <0 on the the domain x--z, using dimension reduction. Two cases are considered according to whether the score is compression or the analytic voronoi function. It is assumed that FlessScore is reducible. The procedure keeps track of when the score sigma is reducible and acts accordingly. qrtetReduce calls recursiveVerifier twice.

static int qrtetReduce
	(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int flat(const domain& x,const domain& z,const taylorFunction& FlessScore);

static int flat(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int flatVc(const domain& x,const domain& z,const taylorFunction& FlessScore);

static int flatVc(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int upright(const domain& x,const domain& z,const taylorFunction& FlessScore);

This uses gamma or octavor depending on the context. This verification function is suitable for quad clusters.

static int upright(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int octa(const domain& x,const domain& z,const taylorFunction& FlessScore);

static int octa(const domain& x,const domain& z,const taylorFunction& FlessScore);

Back to the top of prove


int octaWithoutEta(const domain& x,const domain& z, const taylorFunction& FlessScore);

static int octaWithoutEta(const domain& x,const domain& z,
		const taylorFunction& FlessScore);

Back to the top of prove


int quadcluster(const domain& xA,const domain& xB, const domain& zA, const domain& zB, const taylorFunction& fA, const taylorFunction& fB);

static int quadcluster(const domain& xA,const domain& xB,
		const domain& zA, const domain& zB, 
		const taylorFunction& fA, const taylorFunction& fB);

Back to the top of prove


All Members

public:
static int recursiveVerifier(int depth, const domain& x,const domain& z, const domain& x0,const domain& z0, const taylorFunction* I[], int count,const cellOption& options);
static void recursiveVerifierQ(int depth, const domain& xA,const domain& xB, const domain& zA,const domain& zB, const taylorFunction* IA[],const taylorFunction* IB[],int Nineq, const cellOption& options);
static int generic(const domain& x,const domain& z,const taylorFunction& F);
static int qrtet(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int qrtetReduce (const domain& x,const domain& z,const taylorFunction& FlessScore);
static int flat(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int flatVc(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int upright(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int octa(const domain& x,const domain& z,const taylorFunction& FlessScore);
static int octaWithoutEta(const domain& x,const domain& z, const taylorFunction& FlessScore);
static int quadcluster(const domain& xA,const domain& xB, const domain& zA, const domain& zB, const taylorFunction& fA, const taylorFunction& fB);
protected:

Back to the top of prove


Ancestors

Class does not inherit from any other class.

Back to the top of prove


Descendants

Class is not inherited by any others.

Back to the top of prove


Generated from source by the Cocoon utilities on Mon Dec 22 19:37:24 1997 .

Report problems to jkotula@unimax.com