LALInspiral 5.0.3.1-eeff03c
LALSQTPNIntegrator.h
Go to the documentation of this file.
1#ifndef LALSQTPNINTEGRATOR_H
2#define LALSQTPNINTEGRATOR_H
3
4#include <gsl/gsl_errno.h>
5#include <gsl/gsl_math.h>
6#include <gsl/gsl_odeiv.h>
7
8#include <lal/LALInspiral.h>
9#include <lal/LALGSL.h>
10#include <lal/LALStatusMacros.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/**
17 * \defgroup LALSQTPNIntegrator_h Header LALSQTPNIntegrator.h
18 * \ingroup lalinspiral_UNCLASSIFIED
19 *
20 * \brief Contains the function declarations and structures needed by the integration method.
21 * \author László Veréb
22 * \date 2010.05.21.
23 */
24/** @{ */
25
26/**
27 * The structure contains the integration method and its settings.
28 */
29typedef struct tagLALSQTPNIntegratorSystem{
30 const gsl_odeiv_step_type* type;
31 gsl_odeiv_step* step;
32 gsl_odeiv_control* control;
33 gsl_odeiv_evolve* evolve;
34 gsl_odeiv_system system;
36
37/**
38 * The function initialize the integration method.
39 * @param[out] integrator : the structure containing the integration method
40 * @param[in] num : the number of the dynamic variables
41 * @param[in] params : the parameters used in the derivative function
42 * @param[in] derivator : pointer to the derivative function
43 */
45 int(*derivator)(REAL8, const REAL8[], REAL8[], void *));
46
47/**
48 * The function deallocates the memory allocated for the integrator
49 * function.
50 * @param[in] integrator : the structure containing the integration method
51 */
53
54/**
55 * The function evolves the system with the given time-step.
56 * @param[in,out] values : as input parameters the system's actual position,
57 * as ouput the system's next position.
58 * @param[in] integrator : the integration method
59 * @param[in] step : the step size
60 */
61int XLALSQTPNIntegratorFunc(REAL8 values[], LALSQTPNIntegratorSystem *integrator, REAL8 step);
62
63 /** @} *//* end: LALSQTPNIntegrator_h */
64
65
66#ifdef __cplusplus
67}
68#endif
69
70#endif /* LALSQTPNINTEGRATOR_H */
double REAL8
int16_t INT2
int XLALSQTPNIntegratorInit(LALSQTPNIntegratorSystem *integrator, INT2 num, void *params, int(*derivator)(REAL8, const REAL8[], REAL8[], void *))
The function initialize the integration method.
void XLALSQTPNIntegratorFree(LALSQTPNIntegratorSystem *integrator)
The function deallocates the memory allocated for the integrator function.
int XLALSQTPNIntegratorFunc(REAL8 values[], LALSQTPNIntegratorSystem *integrator, REAL8 step)
The function evolves the system with the given time-step.
The structure contains the integration method and its settings.
const gsl_odeiv_step_type * type
gsl_odeiv_evolve * evolve
gsl_odeiv_control * control