Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALInspiral 5.0.3.1-ea7c608
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LALInspiralTiming2.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 David Churches, B.S. Sathyaprakash, Drew Keppel
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 * \author Sathyaprakash, B. S.
22 * \file
23 * \ingroup LALInspiral_h
24 *
25 * \brief Module used in solving the timing and phasing functions in quadrature for the
26 * \c Approximant #TaylorT2.
27 *
28 * ### Prototypes ###
29 *
30 * <tt>LALInspiralTiming2()</tt>
31 *
32 * ### Description ###
33 *
34 * Given \f$t\f$ and \f$v\f$ this module computes the quantity
35 * \f{equation}{
36 * tofv = t - t_C - t_N(v) \sum t_k v^k,
37 * \f}
38 * where the coefficients \f$t_k\f$ and the Newtonian value \f$t_N\f$ are all defined
39 * in \ref table_flux "this table".
40 *
41 * ### Algorithm ###
42 *
43 * None
44 *
45 * ### Uses ###
46 *
47 * None
48 *
49 * ### Notes ###
50 *
51 * None
52 *
53 */
54
55#include <math.h>
56#include <lal/LALAtomicDatatypes.h>
57#include <lal/LALInspiral.h>
58#include <lal/XLALError.h>
59
60
63 REAL8 f,
64 void *params
65 )
66{
67 InspiralToffInput *toffIn;
68 REAL8 v, v8;
69 REAL8 toff;
70
71 if (params == NULL)
73 if (f <= 0)
75
76 toffIn = (InspiralToffInput *) params;
77
78 if (toffIn->t < 0)
80
81
82 v = pow(toffIn->piM * f,(1./3.));
83 v8 = pow(v,8.);
84
85 toff = - toffIn->t + toffIn->tc
86 + toffIn->tN / v8;
87
88 return toff;
89}
90
93 REAL8 f,
94 void *params
95 )
96{
97 InspiralToffInput *toffIn;
98 REAL8 v, v2, v8;
99 REAL8 toff;
100
101 if (params == NULL)
103 if (f <= 0)
105
106 toffIn = (InspiralToffInput *) params;
107
108 if (toffIn->t < 0)
110
111
112 v = pow(toffIn->piM * f,(1./3.));
113 v2 = v*v;
114 v8 = v2*v2*v2*v2;
115
116 toff = - toffIn->t + toffIn->tc
117 + toffIn->tN / v8 * (1.
118 + toffIn->t2 * v2);
119
120 return toff;
121}
122
123REAL8
125 REAL8 f,
126 void *params
127 )
128{
129 InspiralToffInput *toffIn;
130 REAL8 v, v2, v3, v8;
131 REAL8 toff;
132
133 if (params == NULL)
135 if (f <= 0)
137
138 toffIn = (InspiralToffInput *) params;
139
140 if (toffIn->t < 0)
142
143
144 v = pow(toffIn->piM * f,(1./3.));
145 v2 = v*v;
146 v3 = v2*v;
147 v8 = v3*v3*v2;
148
149 toff = - toffIn->t + toffIn->tc
150 + toffIn->tN / v8 * (1.
151 + toffIn->t2 * v2
152 + toffIn->t3 * v3);
153
154 return toff;
155}
156
157REAL8
159 REAL8 f,
160 void *params
161 )
162{
163 InspiralToffInput *toffIn;
164 REAL8 v, v2, v3, v4, v8;
165 REAL8 toff;
166
167 if (params == NULL)
169 if (f <= 0)
171
172 toffIn = (InspiralToffInput *) params;
173
174 if (toffIn->t < 0)
176
177
178 v = pow(toffIn->piM * f,(1./3.));
179 v2 = v*v;
180 v3 = v2*v;
181 v4 = v3*v;
182 v8 = v4*v4;
183
184 toff = - toffIn->t + toffIn->tc
185 + toffIn->tN / v8 * (1.
186 + toffIn->t2 * v2
187 + toffIn->t3 * v3
188 + toffIn->t4 * v4);
189
190 return toff;
191}
192
193REAL8
195 REAL8 f,
196 void *params
197 )
198{
199 InspiralToffInput *toffIn;
200 REAL8 v, v2, v3, v4, v5, v8;
201 REAL8 toff;
202
203 if (params == NULL)
205 if (f <= 0)
207
208 toffIn = (InspiralToffInput *) params;
209
210 if (toffIn->t < 0)
212
213
214 v = pow(toffIn->piM * f,(1./3.));
215 v2 = v*v;
216 v3 = v2*v;
217 v4 = v3*v;
218 v5 = v4*v;
219 v8 = v4*v4;
220
221 toff = - toffIn->t + toffIn->tc
222 + toffIn->tN / v8 * (1.
223 + toffIn->t2 * v2
224 + toffIn->t3 * v3
225 + toffIn->t4 * v4
226 + toffIn->t5 * v5);
227
228 return toff;
229}
230
231REAL8
233 REAL8 f,
234 void *params
235 )
236{
237
238 InspiralToffInput *toffIn;
239 REAL8 v, v2, v3, v4, v5, v6, v8;
240 REAL8 toff;
241
242 if (params == NULL)
244 if (f <= 0)
246
247 toffIn = (InspiralToffInput *) params;
248
249 if (toffIn->t < 0)
251
252
253 v = pow(toffIn->piM * f,(1./3.));
254 v2 = v*v;
255 v3 = v2*v;
256 v4 = v3*v;
257 v5 = v4*v;
258 v6 = v5*v;
259 v8 = v6*v2;
260
261 toff = - toffIn->t + toffIn->tc
262 + toffIn->tN / v8 * (1.
263 + toffIn->t2 * v2
264 + toffIn->t3 * v3
265 + toffIn->t4 * v4
266 + toffIn->t5 * v5
267 + (toffIn->t6 + toffIn->tl6 * log(4*v)) * v6);
268
269 return toff;
270}
271
272REAL8
274 REAL8 f,
275 void *params
276 )
277{
278 InspiralToffInput *toffIn;
279 REAL8 v, v2, v3, v4, v5, v6, v7, v8;
280 REAL8 toff;
281
282 if (params == NULL)
284 if (f <= 0)
286
287 toffIn = (InspiralToffInput *) params;
288
289 if (toffIn->t < 0)
291
292
293 v = pow(toffIn->piM*f, (1./3.));
294 v2 = v*v;
295 v3 = v2*v;
296 v4 = v3*v;
297 v5 = v4*v;
298 v6 = v5*v;
299 v7 = v6*v;
300 v8 = v7*v;
301
302 toff = - toffIn->t + toffIn->tc
303 + toffIn->tN / v8 * (1.
304 + toffIn->t2 * v2
305 + toffIn->t3 * v3
306 + toffIn->t4 * v4
307 + toffIn->t5 * v5
308 + (toffIn->t6 + toffIn->tl6 * log(4*v)) * v6
309 + toffIn->t7 * v7);
310
311 return toff;
312}
REAL8 XLALInspiralTiming2_5PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_2PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_6PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_3PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_4PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_7PN(REAL8 f, void *params)
REAL8 XLALInspiralTiming2_0PN(REAL8 f, void *params)
double REAL8
#define XLAL_ERROR_REAL8(...)
XLAL_EFAULT
XLAL_EDOM
This is a structure needed by the inner workings of the inspiral wave generation code.
Definition: LALInspiral.h:357