LAL  7.5.0.1-08ee4f4
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
31 Author: 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
52 extern "C" {
53 #endif
54 
55 #ifdef SWIG /* SWIG interface directives */
56 SWIGLAL(IMMUTABLE_MEMBERS(tagfContactWorkSpace, invQ1, invQ2));
57 #endif /* SWIG */
58 typedef 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