You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

62 lines
2.4 KiB

/** Data structures storing the result
of an intersection process, to
be interpreted differently according to
the output media (html, console, etc.)
*/
#ifndef _QIOutput_h_
#define _QIOutput_h_
#include <string>
using namespace std;
typedef short VerbosityLevel;
#define VERBOSITY_PARAM_ONLY 0 /** Only prints parametrizations and Deltas */
#define VERBOSITY_BRUTE 1 /** Brute results */
#define VERBOSITY_LABELS 2 /** Result with a label */
#define VERBOSITY_EXHAUSTIVE 3 /** Exhaustive results */
typedef struct _QI_OUTPUT_PARAMETRIZATION_ {
string label; /** Ex: "Parametrization of smooth quartic, branch 1" */
string param; /** Parametrization [x, y, z, w] */
/** string x_param; Parametrization consists in a 4 elements vector:
string y_param; [x, y, z, w]
string z_param; This parametrization can be in projective or
string w_param; affine. */
string delta_param; /** Parametrization of delta. */
string optimality; /** "optimal" or "near-optimal" */
}QIOutputParametrization;
typedef struct _QI_BENCHMARK_INFO_ {
string cpu_used_sec; /** CPU Time used, in seconds */
}QIBenchmarkInfo;
typedef struct _QI_OUTPUT_INFO_ {
string interTypeComplexProj; /** Type of intersection in the complex projective space */
string interTypeRealProj; /** Type of intersection in the real projective space */
string interTypeRealAffine; /** Type of intersection in the real affine space */
string q1; /** Equation of the first quadric (in affine or projective) */
string q2; /** Equation of the second quadric (in affine or projective) */
string q1_euclideanType; /** Affine type of the first quadric */
string q2_euclideanType; /** Affine type of the second quadric */
QIOutputParametrization parametrizations[4]; /** List of parametrizations (one for each algebraic
component of the intersection) */
short n_components; /** Number of components <=> number of parametrizations to
display */
/** Additional information needed to customize
* some comments in exhaustive mode (verbose level 3) */
bool affineParametrizations;
QIBenchmarkInfo benchInfo; /** Metrics concerning the calculus itself (CPU used) */
}QIOutputInfo;
#endif