#include <gsl/gsl_matrix.h>
#include <lal/LALStdlib.h>
#include <lal/LALDatatypes.h>
#include <lal/AVFactories.h>
#include <lal/PtoleMetric.h>
Include dependency graph for LatticeCovering.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | tagINT4VectorList |
| doubly linked list of INT4-vectors (lattice-vectors) More... | |
| struct | tagREAL8VectorList |
| doubly linked list of REAL8-vectors (physical vectors) More... | |
Defines | |
| #define | LATTICECOVERING_ENULL 1 |
| #define | LATTICECOVERING_ENONULL 2 |
| #define | LATTICECOVERING_EMEM 3 |
| #define | LATTICECOVERING_EINPUT 4 |
| #define | LATTICECOVERING_ELIST 5 |
| #define | LATTICECOVERING_EFUNC 6 |
| #define | LATTICECOVERING_MSGENULL "Arguments contained an unexpected null pointer" |
| #define | LATTICECOVERING_MSGENONULL "Output pointer is not NULL" |
| #define | LATTICECOVERING_MSGEMEM "Out of memory" |
| #define | LATTICECOVERING_MSGEINPUT "Invald input parameter" |
| #define | LATTICECOVERING_MSGELIST "Error occurred in list-handling ..." |
| #define | LATTICECOVERING_MSGEFUNC "Sub-routine failed" |
Typedefs | |
| typedef tagINT4VectorList | INT4VectorList |
| doubly linked list of INT4-vectors (lattice-vectors) | |
| typedef tagREAL8VectorList | REAL8VectorList |
| doubly linked list of REAL8-vectors (physical vectors) | |
Enumerations | |
| enum | LatticeType { LATTICE_TYPE_ANSTAR = 0, LATTICE_TYPE_CUBIC, LATTICE_TYPE_LAST } |
| enum-type for denoting several types of lattice More... | |
Functions | |
| NRCSID (LATTICECOVERINGH,"$Id: LatticeCovering.h,v 1.5 2007/01/31 00:18:41 reinhard Exp $") | |
| void | LALLatticeCovering (LALStatus *, REAL8VectorList **covering, REAL8 coveringRadius, const gsl_matrix *metric, const REAL8Vector *startPoint, BOOLEAN(*isInside)(const REAL8Vector *point), LatticeType latticeType) |
| Central function of this module: produce a lattice-covering of given lattice-type for the given parameter-space with constant metric. | |
| void | LALLatticeFill (LALStatus *, REAL8VectorList **fillGrid, const gsl_matrix *generator, const REAL8Vector *startPoint, BOOLEAN(*isInside)(const REAL8Vector *point)) |
| Fill the given parameter-space by a lattice defined by the specified generating matrix. | |
| int | XLALFindCoveringGenerator (gsl_matrix **outmatrix, LatticeType type, REAL8 coveringRadius, const gsl_matrix *gij) |
| Construct the full-rank generating matrix of given type, for covering a space of given (constant) metric and a given covering Radius. | |
| int | XLALReduceGenerator2FullRank (gsl_matrix **outmatrix, const gsl_matrix *inmatrix) |
| "Reduce" a general (non-quadratic) generating matrix M with rank(M) <= cols(M) into a quadratic generator of full rank. | |
| int | XLALGetLatticeGenerator (gsl_matrix **outmatrix, UINT4 dimension, LatticeType type) |
Return a (not necessarily quadratic) n-dimensional generating matrix for one of several possible lattices (currently possible: cubic or ). | |
| REAL8 | XLALMetricScalarProduct (const gsl_vector *vector1, const gsl_vector *vector2, const gsl_matrix *metric) |
Scalar product of two vectors with respect to the given metric . | |
| REAL8VectorList * | XLALREAL8VectorListAddEntry (REAL8VectorList *head, const REAL8Vector *entry) |
| Add a new element at the end of the list 'head', _copy_ the given entry there, and return pointer to the new list-entry. | |
| void | XLALREAL8VectorListDestroy (REAL8VectorList *head) |
| 'List-destructor' for REAL8VectorList: free a complete list. | |
| REAL8Vector * | XLALgsl2LALmetric (const gsl_matrix *gmetric) |
| Translate a symmetric gsl_matrix into a 'LAL-encoded' REAL8Vector, using the index-convention l = a + b*(b+1) if a <= b, see PMETRIC_INDEX(a,b). | |
| gsl_matrix * | XLALmetric2gsl (const REAL8Vector *metric) |
| Convert a LAL-encoded metric (REAL8Vector) into a symmetric gsl_matrix. | |
Variables | |
| INT4VectorList | empty_INT4VectorList |
| REAL8VectorList | empty_REAL8VectorList |
Definition in file LatticeCovering.h.
| #define LATTICECOVERING_ENULL 1 |
Definition at line 68 of file LatticeCovering.h.
| #define LATTICECOVERING_ENONULL 2 |
Definition at line 69 of file LatticeCovering.h.
| #define LATTICECOVERING_EMEM 3 |
Definition at line 70 of file LatticeCovering.h.
| #define LATTICECOVERING_EINPUT 4 |
Definition at line 71 of file LatticeCovering.h.
| #define LATTICECOVERING_ELIST 5 |
Definition at line 72 of file LatticeCovering.h.
| #define LATTICECOVERING_EFUNC 6 |
Definition at line 73 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGENULL "Arguments contained an unexpected null pointer" |
Definition at line 75 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGENONULL "Output pointer is not NULL" |
Definition at line 76 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGEMEM "Out of memory" |
Definition at line 77 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGEINPUT "Invald input parameter" |
Definition at line 78 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGELIST "Error occurred in list-handling ..." |
Definition at line 79 of file LatticeCovering.h.
| #define LATTICECOVERING_MSGEFUNC "Sub-routine failed" |
Definition at line 80 of file LatticeCovering.h.
| typedef struct tagINT4VectorList INT4VectorList |
doubly linked list of INT4-vectors (lattice-vectors)
| typedef struct tagREAL8VectorList REAL8VectorList |
doubly linked list of REAL8-vectors (physical vectors)
| enum LatticeType |
enum-type for denoting several types of lattice
| LATTICE_TYPE_ANSTAR | An*: optimal covering grid. |
| LATTICE_TYPE_CUBIC | standard cubic grid: Zn |
| LATTICE_TYPE_LAST |
Definition at line 85 of file LatticeCovering.h.
| NRCSID | ( | LATTICECOVERINGH | , | |
| "$Id: LatticeCovering. | h, | |||
| v 1.5 2007/01/31 00:18:41 reinhard Exp $" | ||||
| ) |
| void LALLatticeCovering | ( | LALStatus * | status, | |
| REAL8VectorList ** | covering, | |||
| REAL8 | coveringRadius, | |||
| const gsl_matrix * | metric, | |||
| const REAL8Vector * | startPoint, | |||
| BOOLEAN(*)(const REAL8Vector *point) | isInside, | |||
| LatticeType | latticeType | |||
| ) |
Central function of this module: produce a lattice-covering of given lattice-type for the given parameter-space with constant metric.
For optimal covering, use latticeType=0, namely the An* lattice, which is the best known covering-lattice up to dimension 23, see [CS99]
| covering | [out] final covering-grid |
| coveringRadius | [in] covering radius |
| metric | [in] constant metric |
| startPoint | [in] start-point in the covering-region |
| isInside | [in] boundary-condition |
Definition at line 103 of file LatticeCovering.c.
| void LALLatticeFill | ( | LALStatus * | status, | |
| REAL8VectorList ** | fillGrid, | |||
| const gsl_matrix * | generator, | |||
| const REAL8Vector * | startPoint, | |||
| BOOLEAN(*)(const REAL8Vector *point) | isInside | |||
| ) |
Fill the given parameter-space by a lattice defined by the specified generating matrix.
| fillGrid | [out] fillGrid final fill-grid (physical points) |
| generator | [in] SQUARE generating matrix for lattice |
| startPoint | [in] physical startpoint for filling |
| isInside | [in] boundary-condition |
Definition at line 167 of file LatticeCovering.c.
| int XLALFindCoveringGenerator | ( | gsl_matrix ** | outmatrix, | |
| LatticeType | type, | |||
| REAL8 | coveringRadius, | |||
| const gsl_matrix * | gij | |||
| ) |
Construct the full-rank generating matrix of given type, for covering a space of given (constant) metric and a given covering Radius.
| outmatrix | [out] generating matrix for covering lattice |
| type | [in] type of lattice |
| coveringRadius | [in] desired covering radius |
| gij | [in] (constant) metric of covering space |
Definition at line 591 of file LatticeCovering.c.
| int XLALReduceGenerator2FullRank | ( | gsl_matrix ** | outmatrix, | |
| const gsl_matrix * | inmatrix | |||
| ) |
"Reduce" a general (non-quadratic) generating matrix M with rank(M) <= cols(M) into a quadratic generator of full rank.
The input matrix can have columns >= rows, the rows reprenting the lattice vectors. This algorithm simply proceeds by constructing an (Euclidean!) orthonormal basis out of the lattice vectors (using GramSchmidt), and then expressing the lattice-vectors in this new basis.
| outmatrix | [out] full-rank square generating matrix |
| inmatrix | [in] generating matrix (cols >= rows) |
Definition at line 691 of file LatticeCovering.c.
| int XLALGetLatticeGenerator | ( | gsl_matrix ** | outmatrix, | |
| UINT4 | dimension, | |||
| LatticeType | type | |||
| ) |
Return a (not necessarily quadratic) n-dimensional generating matrix for one of several possible lattices (currently possible: cubic or
).
See [CS99] for the definition and properties of these lattices.
of a lattice by
, then the covering radius R scales as
)| outmatrix | [out] generating matrix |
| dimension | [in] number of dimensions |
| type | [in] type of lattice |
Definition at line 795 of file LatticeCovering.c.
| REAL8 XLALMetricScalarProduct | ( | const gsl_vector * | vector1, | |
| const gsl_vector * | vector2, | |||
| const gsl_matrix * | metric | |||
| ) |
Scalar product of two vectors with respect to the given metric
.
Definition at line 405 of file LatticeCovering.c.
| REAL8VectorList* XLALREAL8VectorListAddEntry | ( | REAL8VectorList * | head, | |
| const REAL8Vector * | entry | |||
| ) |
Add a new element at the end of the list 'head', _copy_ the given entry there, and return pointer to the new list-entry.
Definition at line 939 of file LatticeCovering.c.
| void XLALREAL8VectorListDestroy | ( | REAL8VectorList * | head | ) |
'List-destructor' for REAL8VectorList: free a complete list.
Definition at line 1063 of file LatticeCovering.c.
| REAL8Vector* XLALgsl2LALmetric | ( | const gsl_matrix * | gmetric | ) |
Translate a symmetric gsl_matrix into a 'LAL-encoded' REAL8Vector, using the index-convention l = a + b*(b+1) if a <= b, see PMETRIC_INDEX(a,b).
Definition at line 1150 of file LatticeCovering.c.
| gsl_matrix* XLALmetric2gsl | ( | const REAL8Vector * | metric | ) |
Convert a LAL-encoded metric (REAL8Vector) into a symmetric gsl_matrix.
Definition at line 1184 of file LatticeCovering.c.
Definition at line 62 of file LatticeCovering.c.
Definition at line 63 of file LatticeCovering.c.
1.5.2