LAL  7.5.0.1-b72065a
VectorOps.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 Jolien Creighton
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 #ifndef _VECTOROPS_H
21 #define _VECTOROPS_H
22 
23 #include <lal/LALDatatypes.h>
24 
25 #if defined(__cplusplus)
26 extern "C" {
27 #elif 0
28 } /* so that editors will match preceding brace */
29 #endif
30 
31 /**
32  * \defgroup VectorOps_h Header VectorOps.h
33  * \ingroup lal_vectorops
34  * \author J. D. E. Creighton, T. D. Creighton, A. M. Sintes
35  *
36  * \brief Basic vector manipulation operations.
37  *
38  * ### Synopsis ###
39  *
40  * \code
41  * #include <lal/VectorOps.h>
42  * \endcode
43  *
44  * @{
45  * \defgroup VectorMultiply_c Module VectorMultiply.c
46  * \defgroup VectorPolar_c Module VectorPolar.c
47  */
48 
49 /** \name Error Codes */
50 /** @{ */
51 #define VECTOROPSH_ENULL 1 /**< Null pointer */
52 #define VECTOROPSH_ESIZE 2 /**< Invalid input size */
53 #define VECTOROPSH_ESZMM 4 /**< Size mismatch */
54 #define VECTOROPSH_ESAME 8 /**< Input/Output data vectors are the same */
55 /** @} */
56 /** @} */
57 
58 #define VECTOROPSH_MSGENULL "Null pointer"
59 #define VECTOROPSH_MSGESIZE "Invalid input size"
60 #define VECTOROPSH_MSGESZMM "Size mismatch"
61 #define VECTOROPSH_MSGESAME "Input/Output data vectors are the same"
62 
63 /* ---------- Function prototypes ---------- */
64 
65 /*
66  *
67  * XLAL Routines.
68  *
69  */
70 
71 /* sigle precision */
76 REAL4Vector * XLALSSVectorMultiply( REAL4Vector *out, const REAL4Vector *in1, const REAL4Vector *in2 );
77 
78 int XLALCOMPLEX8VectorAbs( REAL4Vector *out, const COMPLEX8Vector *in );
79 int XLALCOMPLEX8VectorArg( REAL4Vector *out, const COMPLEX8Vector *in );
81 
82 
83 /* double precision */
88 REAL8Vector * XLALDDVectorMultiply( REAL8Vector *out, const REAL8Vector *in1, const REAL8Vector *in2 );
89 
93 
94 /*
95  *
96  * LAL Routines.
97  *
98  */
99 
100 void
102  LALStatus *,
103  COMPLEX8Vector *,
104  const COMPLEX8Vector *,
105  const COMPLEX8Vector *
106  );
107 
108 void
110  LALStatus *,
111  COMPLEX8Vector *,
112  const COMPLEX8Vector *,
113  const COMPLEX8Vector *
114  );
115 
116 void
118  LALStatus *,
119  COMPLEX8Vector *,
120  const COMPLEX8Vector *,
121  const COMPLEX8Vector *
122  );
123 
124 void
126  LALStatus *,
127  REAL4Vector *,
128  const COMPLEX8Vector *
129  );
130 
131 void
133  LALStatus *,
134  REAL4Vector *,
135  const COMPLEX8Vector *
136  );
137 
138 void
140  LALStatus *,
141  REAL4Vector *,
142  const REAL4Vector *
143  );
144 
145 void
147  LALStatus *,
148  COMPLEX16Vector *,
149  const COMPLEX16Vector *,
150  const COMPLEX16Vector *
151  );
152 
153 void
155  LALStatus *,
156  COMPLEX16Vector *,
157  const COMPLEX16Vector *,
158  const COMPLEX16Vector *
159  );
160 
161 void
163  LALStatus *,
164  COMPLEX16Vector *,
165  const COMPLEX16Vector *,
166  const COMPLEX16Vector *
167  );
168 
169 void
171  LALStatus *,
172  REAL8Vector *,
173  const COMPLEX16Vector *
174  );
175 
176 void
178  LALStatus *,
179  REAL8Vector *,
180  const COMPLEX16Vector *
181  );
182 
183 void
185  LALStatus *,
186  REAL8Vector *,
187  const REAL8Vector *
188  );
189 
190 void
192  LALStatus *,
193  COMPLEX8Vector *,
194  const REAL4Vector *,
195  const COMPLEX8Vector *
196  );
197 
198 void
200  LALStatus *,
201  REAL4Vector *,
202  const REAL4Vector *,
203  const REAL4Vector *
204  );
205 
206 void
208  LALStatus *,
209  COMPLEX16Vector *,
210  const REAL8Vector *,
211  const COMPLEX16Vector *
212  );
213 
214 void
216  LALStatus *,
217  REAL8Vector *,
218  const REAL8Vector *,
219  const REAL8Vector *
220  );
221 
222 
223 #if 0
224 { /* so that editors will match succeeding brace */
225 #elif defined(__cplusplus)
226 }
227 #endif
228 
229 #endif /* _VECTOROPS_H */
void LALZZVectorMultiply(LALStatus *, COMPLEX16Vector *, const COMPLEX16Vector *, const COMPLEX16Vector *)
void LALCCVectorDivide(LALStatus *, COMPLEX8Vector *, const COMPLEX8Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
void LALDZVectorMultiply(LALStatus *, COMPLEX16Vector *, const REAL8Vector *, const COMPLEX16Vector *)
COMPLEX8Vector * XLALSCVectorMultiply(COMPLEX8Vector *out, const REAL4Vector *in1, const COMPLEX8Vector *in2)
COMPLEX16Vector * XLALZZVectorMultiply(COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
void LALZZVectorDivide(LALStatus *, COMPLEX16Vector *, const COMPLEX16Vector *, const COMPLEX16Vector *)
REAL4Vector * XLALSSVectorMultiply(REAL4Vector *out, const REAL4Vector *in1, const REAL4Vector *in2)
void LALSSVectorMultiply(LALStatus *, REAL4Vector *, const REAL4Vector *, const REAL4Vector *)
UNDOCUMENTED.
COMPLEX8Vector * XLALCCVectorMultiply(COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
void LALSCVectorMultiply(LALStatus *, COMPLEX8Vector *, const REAL4Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
COMPLEX16Vector * XLALZZVectorDivide(COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
void LALCCVectorMultiplyConjugate(LALStatus *, COMPLEX8Vector *, const COMPLEX8Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
REAL8Vector * XLALDDVectorMultiply(REAL8Vector *out, const REAL8Vector *in1, const REAL8Vector *in2)
void LALZZVectorMultiplyConjugate(LALStatus *, COMPLEX16Vector *, const COMPLEX16Vector *, const COMPLEX16Vector *)
COMPLEX16Vector * XLALZZVectorMultiplyConjugate(COMPLEX16Vector *out, const COMPLEX16Vector *in1, const COMPLEX16Vector *in2)
void LALCCVectorMultiply(LALStatus *, COMPLEX8Vector *, const COMPLEX8Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
COMPLEX8Vector * XLALCCVectorMultiplyConjugate(COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
COMPLEX16Vector * XLALDZVectorMultiply(COMPLEX16Vector *out, const REAL8Vector *in1, const COMPLEX16Vector *in2)
COMPLEX8Vector * XLALCCVectorDivide(COMPLEX8Vector *out, const COMPLEX8Vector *in1, const COMPLEX8Vector *in2)
void LALDDVectorMultiply(LALStatus *, REAL8Vector *, const REAL8Vector *, const REAL8Vector *)
int XLALREAL8VectorUnwrapAngle(REAL8Vector *out, const REAL8Vector *in)
corrects the radian phase angles of a real vector by adding multiples of pi when the absolute jumps b...
Definition: VectorPolar.c:186
void LALCVectorAngle(LALStatus *, REAL4Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:274
int XLALCOMPLEX16VectorArg(REAL8Vector *out, const COMPLEX16Vector *in)
computes the arguments of a vector of complex numbers
Definition: VectorPolar.c:138
void LALZVectorAngle(LALStatus *, REAL8Vector *, const COMPLEX16Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:305
int XLALCOMPLEX8VectorArg(REAL4Vector *out, const COMPLEX8Vector *in)
computes the arguments of a vector of complex numbers
Definition: VectorPolar.c:123
void LALUnwrapREAL8Angle(LALStatus *, REAL8Vector *, const REAL8Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:368
void LALZVectorAbs(LALStatus *, REAL8Vector *, const COMPLEX16Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:243
int XLALREAL4VectorUnwrapAngle(REAL4Vector *out, const REAL4Vector *in)
corrects the radian phase angles of a real vector by adding multiples of pi when the absolute jumps b...
Definition: VectorPolar.c:158
int XLALCOMPLEX16VectorAbs(REAL8Vector *out, const COMPLEX16Vector *in)
computes the magnitudes of a vector of complex numbers
Definition: VectorPolar.c:107
int XLALCOMPLEX8VectorAbs(REAL4Vector *out, const COMPLEX8Vector *in)
computes the magnitudes of a vector of complex numbers
Definition: VectorPolar.c:92
void LALCVectorAbs(LALStatus *, REAL4Vector *, const COMPLEX8Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:212
void LALUnwrapREAL4Angle(LALStatus *, REAL4Vector *, const REAL4Vector *)
UNDOCUMENTED.
Definition: VectorPolar.c:335
Vector of type COMPLEX16, see DATATYPE-Vector types for more details.
Definition: LALDatatypes.h:172
Vector of type COMPLEX8, see DATATYPE-Vector types for more details.
Definition: LALDatatypes.h:163
LAL status structure, see The LALStatus structure for more details.
Definition: LALDatatypes.h:947
Vector of type REAL4, see DATATYPE-Vector types for more details.
Definition: LALDatatypes.h:145
Vector of type REAL8, see DATATYPE-Vector types for more details.
Definition: LALDatatypes.h:154