LALSimulation  5.4.0.1-fe68b98
LALSimInspiralTestGRParams.c
Go to the documentation of this file.
1 /* Copyright (C) 2012 Walter Del Pozzo, Evan Ochsner and Salvatore Vitale
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with with program; see the file COPYING. If not, write to the
15  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16  * MA 02110-1301 USA
17  */
18 
19 #include <lal/LALSimInspiralTestGRParams.h>
20 
21 /**
22  * @addtogroup LALSimInspiralTestGRParams_c
23  * @brief Routines to manipulate non-GR parameter key-value pairs.
24  * @{
25  */
26 
27 /**
28  * Function that creates the head node of the test GR parameters linked list.
29  * It is initialized with a single parameter with given name and value
30  */
32  const char *name, /**< Name of first parameter in new linked list */
33  double value /**< Value of first parameter in new linked list */
34  )
35 {
37  if (parameter)
38  {
40  memcpy(parameter->data->name, name, 32);
41  parameter->data->value = value;
42  }
43  parameter->next=NULL;
44  return parameter;
45 }
46 
47 /**
48  * Function that adds a prameter to the test GR parameters linked list. If the
49  * parameter already exists, it throws an error.
50  */
52  LALSimInspiralTestGRParam **parameter, /**< Pointer to the head node of the linked list of parameters */
53  const char *name, /**< Parameter name */
54  double value /**< Parameter value */
55  )
56 {
58  temp = *parameter;
59  if (*parameter==NULL)
60  {
62  //temp->next=NULL;
63  *parameter=temp;
64  }
65  else
66  {
67 
68  if (!XLALSimInspiralTestGRParamExists(*parameter, name))
69  {
70  temp = *parameter;
71  while(temp->next!=NULL) {temp=temp->next;}
73  temp->next = newParam;
74  }
75  else
76  {
77  XLALPrintError("XLAL Error - %s: parameter '%s' exists already! Not added to the structure\n",
78  __func__, name);
80  }
81  }
82  return XLAL_SUCCESS;
83 }
84 
85 /**
86  * Function that sets the value of the desired parameter in the test GR
87  * parameters linked list to 'value'. Throws an error if the parameter
88  * is not found
89  */
91  LALSimInspiralTestGRParam *parameter, /**< Linked list to be modified */
92  const char *name, /**< Name of parameter to be modified */
93  const double value /**< New value for parameter */
94  )
95 {
96  if (XLALSimInspiralTestGRParamExists(parameter, name))
97  {
98  while(parameter)
99  {
100  if(!strcmp(parameter->data->name, name)) parameter->data->value = value;
101  parameter=parameter->next;
102  }
103  return XLAL_SUCCESS;
104  }
105  else
106  {
107  XLALPrintError("XLAL Error - %s: parameter '%s' unknown!\n",
108  __func__, name);
110  }
111 }
112 
113 /**
114  * Function that returns the value of the desired parameters in the
115  * test GR parameters linked list. Aborts if the parameter is not found
116  */
118  const LALSimInspiralTestGRParam *parameter, /**< Linked list to retrieve from */
119  const char *name /**< Name of parameter to be retrieved */
120  )
121 {
122  if (XLALSimInspiralTestGRParamExists(parameter, name))
123  {
124  while(parameter)
125  {
126  if(!strcmp(parameter->data->name, name)) return parameter->data->value;
127  parameter=parameter->next;
128  }
129  }
130  else
131  {
132  XLALPrintError("XLAL Error - %s: parameter '%s' unknown!\n",
133  __func__, name);
135  }
136  return 0.0; // Should not actually get here!
137 }
138 
139 /**
140  * Function that checks whether the requested parameter exists within the
141  * test GR parameters linked list. Returns true (1) or false (0) accordingly
142  */
144  const LALSimInspiralTestGRParam *parameter, /**< Linked list to check */
145  const char *name /**< Parameter name to check for */
146  )
147 {
148  if(!parameter) return false;
149  while(parameter) {if(!strcmp(parameter->data->name, name)) return true; else parameter=parameter->next;}
150  return false;
151 }
152 
153 /** Function that prints the whole test GR params linked list */
155  FILE *fp, /**< FILE pointer to write to */
156  LALSimInspiralTestGRParam *parameter /**< Linked list to print */
157  )
158 {
159  if (parameter!=NULL)
160  {
161  while(parameter)
162  {
163  fprintf(fp,"%s %10.5f\n",parameter->data->name,parameter->data->value);
164  parameter=parameter->next;
165  }
166  return XLAL_SUCCESS;
167  }
168  else
169  {
170  XLALPrintError("XLAL Error - %s: parameter not allocated!\n", __func__);
172  }
173 }
174 
175 /** Function that destroys the whole test GR params linked list */
177  LALSimInspiralTestGRParam *parameter /**< Linked list to destroy */
178  )
179 {
181  while(parameter){
182  tmp=parameter->next;
183  XLALFree(parameter->data);
184  XLALFree(parameter);
185  parameter=tmp;
186  }
187 }
188 
190 {
250 }
251 
252 /** @} */
int XLALSimInspiralWaveformParamsNonGRDBeta1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE6IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi6NSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE0IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE7IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi6IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsdQuadMon2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRPhi3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDBeta3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDSigma1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5LNSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE5IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChiMinus1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5LSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPEIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRPhi1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi7SIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDSigma3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDSigma4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRPhi2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi7NSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDBeta2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDAlpha5IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5SIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDAlpha4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi5IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsdQuadMon1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5LIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi6SIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChikappaAIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi4NSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDAlpha1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDAlpha2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi6LIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi4SIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChikappaSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi5NSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi3SIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRAlphaPPE3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi6IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDAlpha3IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi3NSIsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDSigma2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRPhi4IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDXi1IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi7IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi0IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChiMinus2IsDefault(LALDict *params)
int XLALSimInspiralWaveformParamsNonGRDChi2IsDefault(LALDict *params)
const char * name
#define fprintf
void * XLALMalloc(size_t n)
void XLALFree(void *p)
int XLALSimInspiralPrintTestGRParam(FILE *fp, LALSimInspiralTestGRParam *parameter)
Function that prints the whole test GR params linked list.
double XLALSimInspiralGetTestGRParam(const LALSimInspiralTestGRParam *parameter, const char *name)
Function that returns the value of the desired parameters in the test GR parameters linked list.
int XLALSimInspiralSetTestGRParam(LALSimInspiralTestGRParam *parameter, const char *name, const double value)
Function that sets the value of the desired parameter in the test GR parameters linked list to 'value...
int XLALSimInspiralAddTestGRParam(LALSimInspiralTestGRParam **parameter, const char *name, double value)
Function that adds a prameter to the test GR parameters linked list.
int XLALSimInspiralWaveformParamsNonGRAreDefault(LALDict *params)
void XLALSimInspiralDestroyTestGRParam(LALSimInspiralTestGRParam *parameter)
Function that destroys the whole test GR params linked list.
bool XLALSimInspiralTestGRParamExists(const LALSimInspiralTestGRParam *parameter, const char *name)
Function that checks whether the requested parameter exists within the test GR parameters linked list...
LALSimInspiralTestGRParam * XLALSimInspiralCreateTestGRParam(const char *name, double value)
Function that creates the head node of the test GR parameters linked list.
#define XLAL_ERROR(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
XLAL_SUCCESS
XLAL_EINVAL
Linked list node for the testing GR parameters.
Linked list of any number of parameters for testing GR.
struct tagLALSimInspiralTestGRParamData * data
Current variable.
struct tagLALSimInspiralTestGRParam * next
The next variable in linked list.
Definition: burst.c:245
FILE * fp