Loading [MathJax]/extensions/TeX/AMSsymbols.js
LAL 7.7.0.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
EllipsoidOverlapTools.h
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Anand Sengupta, Craig Robinson
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with with program; see the file COPYING. If not, write to the
16* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17* MA 02110-1301 USA
18*/
19
20/*-----------------------------------------------------------------------
21 *
22 * File Name: EllipsoidOverlapTools.h
23 *
24 * Author: Robinson, C. A., and Sengupta, A.
25 *
26 *
27 *-----------------------------------------------------------------------
28 */
29
30#if 0
31Author: Robinson, C. A. and Sengupta, A. S.
32#endif
33
34#ifndef _ELLIPSOIDOVERLAPTOOLS_H
35#define _ELLIPSOIDOVERLAPTOOLS_H
36
37
38#include <math.h>
39#include <lal/LALStdlib.h>
40#include <lal/LALGSL.h>
41#include <lal/LALError.h>
42
43#include <gsl/gsl_errno.h>
44#include <gsl/gsl_math.h>
45#include <gsl/gsl_min.h>
46#include <gsl/gsl_vector.h>
47#include <gsl/gsl_matrix.h>
48#include <gsl/gsl_blas.h>
49#include <gsl/gsl_linalg.h>
50
51#ifdef __cplusplus
52extern "C" {
53#endif
54
55#ifdef SWIG /* SWIG interface directives */
56SWIGLAL(IMMUTABLE_MEMBERS(tagfContactWorkSpace, invQ1, invQ2));
57#endif /* SWIG */
58typedef struct tagfContactWorkSpace
59{
60 /* Dimension of the matrices & vectors */
62
63 /* Vector r_AB = r_B - r_A and */
64 /* shape matrices for ellipsoid centered */
65 /* at points A and B */
66 gsl_vector *r_AB;
67 const gsl_matrix *invQ1, *invQ2;
68
69 /* Parameters for minimizing the contact function */
71 const gsl_min_fminimizer_type *T;
72 gsl_min_fminimizer *s;
73
74 /* Temporary workspace variables */
75 gsl_matrix *tmpA, *tmpB, *C;
76 gsl_vector *tmpV;
77 gsl_permutation *p1;
78}
80
81
82/* Function Prototypes */
84 const gsl_vector *ra,
85 const gsl_vector *rb,
86 fContactWorkSpace *workSpace );
87
88
90 UINT4 n,
91 const gsl_matrix *a,
92 const gsl_matrix *b,
93 const gsl_min_fminimizer_type *T,
94 REAL8 conv
95 );
96
98
99#ifdef __cplusplus
100}
101#endif
102
103#endif /* _ELLIPSOIDOVERLAPTOOLS_H */
void XLALFreeFContactWorkSpace(fContactWorkSpace *workSpace)
REAL8 XLALCheckOverlapOfEllipsoids(const gsl_vector *ra, const gsl_vector *rb, fContactWorkSpace *workSpace)
fContactWorkSpace * XLALInitFContactWorkSpace(UINT4 n, const gsl_matrix *a, const gsl_matrix *b, const gsl_min_fminimizer_type *T, REAL8 conv)
double REAL8
Double precision real floating-point number (8 bytes).
uint32_t UINT4
Four-byte unsigned integer.
static const INT4 a
Definition: Random.c:79
const gsl_min_fminimizer_type * T
gsl_permutation * p1
const gsl_matrix * invQ1
gsl_min_fminimizer * s