Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALSimulation 6.2.0.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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{
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{
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...
LALSimInspiralTestGRParam * XLALSimInspiralCreateTestGRParam(const char *name, double value)
Function that creates the head node of the test GR parameters linked list.
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...
#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