00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _BLACKHOLEMODE_H
00021 #define _BLACKHOLEMODE_H
00022
00023 #include <lal/LALDatatypes.h>
00024
00025 NRCSID( BLACKHOLEMODEH, "$Id: BlackHoleMode.h,v 1.2 2007/06/08 14:41:52 bema Exp $" );
00026
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #pragma }
00031 #endif
00032
00033
00034 typedef struct tagBlackHoleMode {
00035 REAL8 a;
00036 int l;
00037 int m;
00038 int s;
00039 COMPLEX16 A;
00040 COMPLEX16 omega;
00041 } BlackHoleMode;
00042
00043
00044
00045 typedef struct tagBlackHoleModeEigenvalues
00046 {
00047 REAL8 a;
00048 COMPLEX16 A;
00049 COMPLEX16 omega;
00050 }
00051 BlackHoleModeEigenvalues;
00052
00053 typedef struct tagBlackHoleModeTable
00054 {
00055 int l;
00056 int m;
00057 int s;
00058
00059 size_t eigenTableSize;
00060 struct tagBlackHoleModeEigenvalues *positiveEigenTable;
00061 struct tagBlackHoleModeEigenvalues *negativeEigenTable;
00062 }
00063 BlackHoleModeTable;
00064
00065
00066
00067 void XLALDestroyBlackHoleModeTable( BlackHoleModeTable *mode );
00068 BlackHoleModeTable * XLALCreateBlackHoleModeTable( int l, int m, int s );
00069 int XLALBlackHoleModeEigenvaluesLeaverT( COMPLEX16 *A, COMPLEX16 *omega, REAL8 a, BlackHoleModeTable *mode );
00070 int XLALBlackHoleModeEigenvaluesLeaver( COMPLEX16 *A, COMPLEX16 *omega, REAL8 a, int l, int m, int s );
00071
00072
00073
00074
00075 int XLALSetBlackHoleModeParams( struct tagBlackHoleMode *params, REAL8 a, int l, int m, int s );
00076 int XLALSpheroidalWaveFunction1( COMPLEX16 *result, REAL8 mu, struct tagBlackHoleMode *mode );
00077 int XLALSpheroidalWaveFunctionNorm( COMPLEX16 *norm, struct tagBlackHoleMode *params );
00078 int XLALSpheroidalWaveFunction( COMPLEX16 *result, REAL8 mu, struct tagBlackHoleMode *params );
00079
00080
00081
00082 int XLALSpinWeightedSpheroidalHarmonic( COMPLEX16 *result, REAL8 mu, REAL8 a, int l, int m, int s );
00083
00084 int XLALBlackHoleRingdownAmplitude(
00085 COMPLEX16 *amplitudePlus,
00086 COMPLEX16 *amplitudeCross,
00087 REAL8 massSolar,
00088 REAL8 fracMassLoss,
00089 REAL8 distanceMpc,
00090 REAL8 inclinationRad,
00091 REAL8 azimuthRad,
00092 BlackHoleMode *mode
00093 );
00094 int XLALBlackHoleRingdownWaveform(
00095 REAL4TimeSeries *plus,
00096 REAL4TimeSeries *cross,
00097 REAL8 massSolar,
00098 REAL8 spinParam,
00099 REAL8 fracMassLoss,
00100 REAL8 distanceMpc,
00101 REAL8 inclinationRad,
00102 REAL8 azimuthRad,
00103 int l,
00104 int m
00105 );
00106
00107
00108 #ifdef __cplusplus
00109 #pragma {
00110 }
00111 #endif
00112
00113 #endif