lalsuite 7.26.2.dev20251206__cp312-cp312-manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. lal/__init__.py +145 -0
  2. lal/_lal.cpython-312-x86_64-linux-gnu.so +0 -0
  3. lal/_lal_swig.py +12 -0
  4. lal/antenna.py +1200 -0
  5. lal/git_version.py +64 -0
  6. lal/gpstime.py +233 -0
  7. lal/iterutils.py +408 -0
  8. lal/pipeline.py +3139 -0
  9. lal/rate.py +2455 -0
  10. lal/series.py +244 -0
  11. lal/utils/__init__.py +29 -0
  12. lal/utils/cache.py +379 -0
  13. lal/utils/series.py +277 -0
  14. lalapps/__init__.py +26 -0
  15. lalapps/bin/lal_cache +0 -0
  16. lalapps/bin/lal_fftw_wisdom +0 -0
  17. lalapps/bin/lal_fftwf_wisdom +0 -0
  18. lalapps/bin/lal_simd_detect +0 -0
  19. lalapps/bin/lal_tconvert +0 -0
  20. lalapps/bin/lal_version +0 -0
  21. lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
  22. lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
  23. lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
  24. lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
  25. lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
  26. lalapps/bin/lalapps_ComputePSD +16 -0
  27. lalapps/bin/lalapps_CopySFTs +16 -0
  28. lalapps/bin/lalapps_DistanceVsMass +0 -0
  29. lalapps/bin/lalapps_DriveHoughMulti +16 -0
  30. lalapps/bin/lalapps_FstatMetric_v2 +16 -0
  31. lalapps/bin/lalapps_HierarchSearchGCT +16 -0
  32. lalapps/bin/lalapps_HierarchicalSearch +16 -0
  33. lalapps/bin/lalapps_MakeSFTDAG +16 -0
  34. lalapps/bin/lalapps_MakeSFTs +16 -0
  35. lalapps/bin/lalapps_Makefakedata_v4 +16 -0
  36. lalapps/bin/lalapps_Makefakedata_v5 +16 -0
  37. lalapps/bin/lalapps_PredictFstat +16 -0
  38. lalapps/bin/lalapps_PrintDetectorState +16 -0
  39. lalapps/bin/lalapps_SFTclean +16 -0
  40. lalapps/bin/lalapps_SFTvalidate +16 -0
  41. lalapps/bin/lalapps_StringAddFrame +0 -0
  42. lalapps/bin/lalapps_StringSearch +0 -0
  43. lalapps/bin/lalapps_Weave +16 -0
  44. lalapps/bin/lalapps_WeaveCompare +16 -0
  45. lalapps/bin/lalapps_WeaveConcat +16 -0
  46. lalapps/bin/lalapps_WeaveSetup +16 -0
  47. lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
  48. lalapps/bin/lalapps_animate +0 -0
  49. lalapps/bin/lalapps_binj +0 -0
  50. lalapps/bin/lalapps_blindinj +0 -0
  51. lalapps/bin/lalapps_cache +16 -0
  52. lalapps/bin/lalapps_calfacs +0 -0
  53. lalapps/bin/lalapps_cbc_stochasticbank +0 -0
  54. lalapps/bin/lalapps_chirplen +0 -0
  55. lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
  56. lalapps/bin/lalapps_coinj +0 -0
  57. lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
  58. lalapps/bin/lalapps_compareFstats +16 -0
  59. lalapps/bin/lalapps_compareSFTs +16 -0
  60. lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
  61. lalapps/bin/lalapps_dumpSFT +16 -0
  62. lalapps/bin/lalapps_effdist +0 -0
  63. lalapps/bin/lalapps_exc_resp +0 -0
  64. lalapps/bin/lalapps_fftw_wisdom +16 -0
  65. lalapps/bin/lalapps_fftwf_wisdom +16 -0
  66. lalapps/bin/lalapps_fits_header_getval +16 -0
  67. lalapps/bin/lalapps_fits_header_list +16 -0
  68. lalapps/bin/lalapps_fits_overview +16 -0
  69. lalapps/bin/lalapps_fits_table_list +16 -0
  70. lalapps/bin/lalapps_fr_ninja +0 -0
  71. lalapps/bin/lalapps_frextr +0 -0
  72. lalapps/bin/lalapps_frinfo +0 -0
  73. lalapps/bin/lalapps_frjoin +0 -0
  74. lalapps/bin/lalapps_frread +0 -0
  75. lalapps/bin/lalapps_frview +0 -0
  76. lalapps/bin/lalapps_gwf2xml +0 -0
  77. lalapps/bin/lalapps_heterodyne_pulsar +16 -0
  78. lalapps/bin/lalapps_inspawgfile +0 -0
  79. lalapps/bin/lalapps_inspfrinj +0 -0
  80. lalapps/bin/lalapps_inspinj +0 -0
  81. lalapps/bin/lalapps_inspiralDistance +0 -0
  82. lalapps/bin/lalapps_knope +16 -0
  83. lalapps/bin/lalapps_knope_automation_script +16 -0
  84. lalapps/bin/lalapps_knope_collate_results +16 -0
  85. lalapps/bin/lalapps_knope_result_page +16 -0
  86. lalapps/bin/lalapps_makeblindinj +85 -0
  87. lalapps/bin/lalapps_makeblindinj_himass +67 -0
  88. lalapps/bin/lalapps_ninja +0 -0
  89. lalapps/bin/lalapps_path2cache +16 -0
  90. lalapps/bin/lalapps_power +0 -0
  91. lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
  92. lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
  93. lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
  94. lalapps/bin/lalapps_random_bank +0 -0
  95. lalapps/bin/lalapps_randombank +0 -0
  96. lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
  97. lalapps/bin/lalapps_searchsum2cache +16 -0
  98. lalapps/bin/lalapps_spec_avg +16 -0
  99. lalapps/bin/lalapps_spec_avg_long +16 -0
  100. lalapps/bin/lalapps_spec_coherence +16 -0
  101. lalapps/bin/lalapps_spininj +0 -0
  102. lalapps/bin/lalapps_splitSFTs +16 -0
  103. lalapps/bin/lalapps_splitbank +0 -0
  104. lalapps/bin/lalapps_ssbtodetector +16 -0
  105. lalapps/bin/lalapps_synthesizeBstatMC +16 -0
  106. lalapps/bin/lalapps_synthesizeLVStats +16 -0
  107. lalapps/bin/lalapps_synthesizeTransientStats +16 -0
  108. lalapps/bin/lalapps_tconvert +16 -0
  109. lalapps/bin/lalapps_tmpltbank +0 -0
  110. lalapps/bin/lalapps_version +0 -0
  111. lalapps/bin/lalapps_xtefitstoframe +0 -0
  112. lalapps/bin/lalburst_version +0 -0
  113. lalapps/bin/lalfr-cat +0 -0
  114. lalapps/bin/lalfr-cksum +0 -0
  115. lalapps/bin/lalfr-cut +0 -0
  116. lalapps/bin/lalfr-dump +0 -0
  117. lalapps/bin/lalfr-fmt +0 -0
  118. lalapps/bin/lalfr-paste +0 -0
  119. lalapps/bin/lalfr-print +0 -0
  120. lalapps/bin/lalfr-split +0 -0
  121. lalapps/bin/lalfr-stat +0 -0
  122. lalapps/bin/lalfr-stream +0 -0
  123. lalapps/bin/lalfr-vis +0 -0
  124. lalapps/bin/lalframe_version +0 -0
  125. lalapps/bin/lalinference_bench +0 -0
  126. lalapps/bin/lalinference_burst +0 -0
  127. lalapps/bin/lalinference_datadump +0 -0
  128. lalapps/bin/lalinference_injectedlike +0 -0
  129. lalapps/bin/lalinference_mpi_wrapper +59 -0
  130. lalapps/bin/lalinference_nest +0 -0
  131. lalapps/bin/lalinference_version +0 -0
  132. lalapps/bin/lalinspiral_version +0 -0
  133. lalapps/bin/lalmetaio_version +0 -0
  134. lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
  135. lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
  136. lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
  137. lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
  138. lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
  139. lalapps/bin/lalpulsar_ComputePSD +0 -0
  140. lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
  141. lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
  142. lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
  143. lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
  144. lalapps/bin/lalpulsar_MakeSFTs +0 -0
  145. lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
  146. lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
  147. lalapps/bin/lalpulsar_PredictFstat +0 -0
  148. lalapps/bin/lalpulsar_PrintDetectorState +0 -0
  149. lalapps/bin/lalpulsar_SFTclean +0 -0
  150. lalapps/bin/lalpulsar_SFTvalidate +0 -0
  151. lalapps/bin/lalpulsar_Weave +0 -0
  152. lalapps/bin/lalpulsar_WeaveCompare +0 -0
  153. lalapps/bin/lalpulsar_WeaveConcat +0 -0
  154. lalapps/bin/lalpulsar_WeaveSetup +0 -0
  155. lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
  156. lalapps/bin/lalpulsar_compareFstats +0 -0
  157. lalapps/bin/lalpulsar_compareSFTs +0 -0
  158. lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
  159. lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
  160. lalapps/bin/lalpulsar_dumpSFT +0 -0
  161. lalapps/bin/lalpulsar_fits_header_getval +0 -0
  162. lalapps/bin/lalpulsar_fits_header_list +0 -0
  163. lalapps/bin/lalpulsar_fits_overview +0 -0
  164. lalapps/bin/lalpulsar_fits_table_list +0 -0
  165. lalapps/bin/lalpulsar_frequency_evolution +0 -0
  166. lalapps/bin/lalpulsar_heterodyne +0 -0
  167. lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
  168. lalapps/bin/lalpulsar_spec_avg +0 -0
  169. lalapps/bin/lalpulsar_spec_avg_long +0 -0
  170. lalapps/bin/lalpulsar_spec_coherence +0 -0
  171. lalapps/bin/lalpulsar_splitSFTs +0 -0
  172. lalapps/bin/lalpulsar_ssbtodetector +0 -0
  173. lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
  174. lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
  175. lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
  176. lalapps/bin/lalpulsar_version +0 -0
  177. lalapps/bin/lalsim-bh-qnmode +0 -0
  178. lalapps/bin/lalsim-bh-ringdown +0 -0
  179. lalapps/bin/lalsim-bh-sphwf +0 -0
  180. lalapps/bin/lalsim-burst +0 -0
  181. lalapps/bin/lalsim-detector-noise +0 -0
  182. lalapps/bin/lalsim-detector-strain +0 -0
  183. lalapps/bin/lalsim-inject +0 -0
  184. lalapps/bin/lalsim-inspiral +0 -0
  185. lalapps/bin/lalsim-ns-eos-table +0 -0
  186. lalapps/bin/lalsim-ns-mass-radius +0 -0
  187. lalapps/bin/lalsim-ns-params +0 -0
  188. lalapps/bin/lalsim-sgwb +0 -0
  189. lalapps/bin/lalsim-unicorn +0 -0
  190. lalapps/bin/lalsimulation_version +0 -0
  191. lalapps/cosmicstring.py +691 -0
  192. lalapps/data/BNSMasses.dat +65022 -0
  193. lalapps/data/CorrelationMatrix.csv +15 -0
  194. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
  195. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
  196. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
  197. lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
  198. lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
  199. lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
  200. lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
  201. lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
  202. lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
  203. lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
  204. lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
  205. lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
  206. lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
  207. lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
  208. lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
  209. lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
  210. lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
  211. lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
  212. lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
  213. lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
  214. lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
  215. lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
  216. lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
  217. lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
  218. lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
  219. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
  220. lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
  221. lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
  222. lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
  223. lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
  224. lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
  225. lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
  226. lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
  227. lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
  228. lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
  229. lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
  230. lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
  231. lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
  232. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
  233. lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
  234. lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
  235. lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
  236. lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
  237. lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
  238. lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
  239. lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
  240. lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
  241. lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
  242. lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
  243. lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
  244. lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
  245. lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
  246. lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
  247. lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
  248. lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
  249. lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
  250. lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
  251. lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
  252. lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
  253. lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
  254. lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
  255. lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
  256. lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
  257. lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
  258. lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
  259. lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
  260. lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
  261. lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
  262. lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
  263. lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
  264. lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
  265. lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
  266. lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
  267. lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
  268. lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
  269. lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
  270. lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
  271. lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
  272. lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
  273. lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
  274. lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
  275. lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
  276. lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
  277. lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
  278. lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
  279. lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
  280. lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
  281. lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
  282. lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
  283. lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
  284. lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
  285. lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
  286. lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
  287. lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
  288. lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
  289. lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
  290. lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
  291. lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
  292. lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
  293. lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
  294. lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
  295. lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
  296. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
  297. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
  298. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
  299. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
  300. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
  301. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
  302. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
  303. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
  304. lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
  305. lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
  306. lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
  307. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
  308. lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
  309. lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
  310. lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
  311. lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
  312. lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
  313. lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
  314. lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
  315. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
  316. lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
  317. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
  318. lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
  319. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
  320. lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
  321. lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
  322. lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
  323. lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
  324. lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
  325. lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
  326. lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
  327. lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
  328. lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
  329. lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
  330. lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
  331. lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
  332. lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
  333. lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
  334. lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
  335. lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
  336. lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
  337. lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
  338. lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
  339. lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
  340. lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
  341. lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
  342. lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
  343. lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
  344. lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
  345. lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
  346. lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
  347. lalapps/data/bimodalMeans.csv +3 -0
  348. lalapps/data/config_tiger_example.ini +150 -0
  349. lalapps/data/fiducialBBH.xml +67 -0
  350. lalapps/data/fiducialBNS.xml +67 -0
  351. lalapps/data/inspsrcs100Mpc.errors +38735 -0
  352. lalapps/data/lalinference_pipe_example.ini +573 -0
  353. lalapps/data/lib_pipe_example.ini +303 -0
  354. lalapps/data/power_pipe.ini +129 -0
  355. lalapps/data/unimodalMeans.csv +2 -0
  356. lalapps/git_version.py +64 -0
  357. lalburst/SimBurstUtils.py +324 -0
  358. lalburst/SnglBurstUtils.py +367 -0
  359. lalburst/__init__.py +7 -0
  360. lalburst/_lalburst.cpython-312-x86_64-linux-gnu.so +0 -0
  361. lalburst/_lalburst_swig.py +16 -0
  362. lalburst/binjfind.py +824 -0
  363. lalburst/bucluster.py +409 -0
  364. lalburst/burca.py +315 -0
  365. lalburst/burca_tailor.py +349 -0
  366. lalburst/cafe.py +579 -0
  367. lalburst/calc_likelihood.py +145 -0
  368. lalburst/cs_gamma.cpython-312-x86_64-linux-gnu.so +0 -0
  369. lalburst/date.py +118 -0
  370. lalburst/git_version.py +64 -0
  371. lalburst/offsetvector.py +278 -0
  372. lalburst/packing.py +170 -0
  373. lalburst/power.py +1457 -0
  374. lalburst/snglcluster.py +136 -0
  375. lalburst/snglcoinc.py +2637 -0
  376. lalburst/stringutils.py +607 -0
  377. lalburst/timeslides.py +236 -0
  378. lalframe/__init__.py +7 -0
  379. lalframe/_lalframe.cpython-312-x86_64-linux-gnu.so +0 -0
  380. lalframe/_lalframe_swig.py +14 -0
  381. lalframe/frread.py +324 -0
  382. lalframe/git_version.py +64 -0
  383. lalframe/utils/__init__.py +25 -0
  384. lalframe/utils/frtools.py +61 -0
  385. lalinference/__init__.py +7 -0
  386. lalinference/_bayespputils.cpython-312-x86_64-linux-gnu.so +0 -0
  387. lalinference/_lalinference.cpython-312-x86_64-linux-gnu.so +0 -0
  388. lalinference/_lalinference_swig.py +19 -0
  389. lalinference/bayespputils.py +7479 -0
  390. lalinference/bayestar/__init__.py +2 -0
  391. lalinference/bayestar/deprecation.py +72 -0
  392. lalinference/git_version.py +64 -0
  393. lalinference/imrtgr/__init__.py +0 -0
  394. lalinference/imrtgr/imrtgrutils.py +168 -0
  395. lalinference/imrtgr/nrutils.py +1366 -0
  396. lalinference/imrtgr/pneqns.py +250 -0
  397. lalinference/io/__init__.py +31 -0
  398. lalinference/io/hdf5.py +365 -0
  399. lalinference/lalinference_pipe_utils.py +3617 -0
  400. lalinference/nest2pos.py +151 -0
  401. lalinference/plot/__init__.py +34 -0
  402. lalinference/plot/spindisk.py +104 -0
  403. lalinference/tiger/__init__.py +0 -0
  404. lalinference/tiger/make_injtimes.py +634 -0
  405. lalinference/tiger/omegascans_dag.py +691 -0
  406. lalinference/tiger/postproc.py +1338 -0
  407. lalinference/wrapper.py +231 -0
  408. lalinspiral/__init__.py +7 -0
  409. lalinspiral/_lalinspiral.cpython-312-x86_64-linux-gnu.so +0 -0
  410. lalinspiral/_lalinspiral_swig.py +18 -0
  411. lalinspiral/_thinca.cpython-312-x86_64-linux-gnu.so +0 -0
  412. lalinspiral/git_version.py +64 -0
  413. lalinspiral/inspinjfind.py +485 -0
  414. lalinspiral/thinca.py +509 -0
  415. lalmetaio/__init__.py +7 -0
  416. lalmetaio/_lalmetaio.cpython-312-x86_64-linux-gnu.so +0 -0
  417. lalmetaio/_lalmetaio_swig.py +14 -0
  418. lalmetaio/git_version.py +64 -0
  419. lalpulsar/NstarTools.py +259 -0
  420. lalpulsar/PulsarParametersWrapper.py +938 -0
  421. lalpulsar/__init__.py +7 -0
  422. lalpulsar/_lalpulsar.cpython-312-x86_64-linux-gnu.so +0 -0
  423. lalpulsar/_lalpulsar_swig.py +17 -0
  424. lalpulsar/git_version.py +64 -0
  425. lalpulsar/knope_utils.py +6497 -0
  426. lalpulsar/lineFileParser.py +264 -0
  427. lalpulsar/metric_utils.py +78 -0
  428. lalpulsar/piecewise_model/__init__.py +7 -0
  429. lalpulsar/piecewise_model/basis_functions.py +156 -0
  430. lalpulsar/piecewise_model/class_definitions.py +323 -0
  431. lalpulsar/piecewise_model/errors.py +37 -0
  432. lalpulsar/piecewise_model/estimating_knots.py +833 -0
  433. lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
  434. lalpulsar/piecewise_model/mols_for_gte.py +269 -0
  435. lalpulsar/piecewise_model/pw_fstat.py +813 -0
  436. lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
  437. lalpulsar/piecewise_model/sampling_methods.py +186 -0
  438. lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
  439. lalpulsar/piecewise_model/tbank_estimates.py +293 -0
  440. lalpulsar/public_sft_directory.py +82 -0
  441. lalpulsar/pulsarhtmlutils.py +1395 -0
  442. lalpulsar/pulsarpputils.py +3638 -0
  443. lalpulsar/simulateCW.py +602 -0
  444. lalpulsar/simulateHeterodynedCW.py +591 -0
  445. lalsimulation/__init__.py +7 -0
  446. lalsimulation/_lalsimulation.cpython-312-x86_64-linux-gnu.so +0 -0
  447. lalsimulation/_lalsimulation_swig.py +14 -0
  448. lalsimulation/git_version.py +64 -0
  449. lalsimulation/gwsignal/__init__.py +9 -0
  450. lalsimulation/gwsignal/core/__init__.py +2 -0
  451. lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
  452. lalsimulation/gwsignal/core/errors.py +136 -0
  453. lalsimulation/gwsignal/core/gw.py +206 -0
  454. lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
  455. lalsimulation/gwsignal/core/utils.py +329 -0
  456. lalsimulation/gwsignal/core/waveform.py +725 -0
  457. lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
  458. lalsimulation/gwsignal/models/__init__.py +29 -0
  459. lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
  460. lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
  461. lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
  462. lalsimulation/nrfits/__init__.py +1 -0
  463. lalsimulation/nrfits/eval_fits.py +364 -0
  464. lalsimulation/nrfits/nrfits.py +78 -0
  465. lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
  466. lalsimulation/nrfits/quaternion_utils.py +74 -0
  467. lalsimulation/tilts_at_infinity/__init__.py +2 -0
  468. lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
  469. lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
  470. lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
  471. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPPAnalysis +305 -0
  472. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesBurstPostProc +1364 -0
  473. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
  474. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCombinePosteriors +235 -0
  475. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesCompPos +1121 -0
  476. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesDIEvidence +68 -0
  477. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesGraceDBinfo +182 -0
  478. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesMCMC2pos +314 -0
  479. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPPAnalysis +322 -0
  480. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPlotSpinDisk +42 -0
  481. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimBurst +227 -0
  482. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPosToSimInspiral +307 -0
  483. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesPostProc +1345 -0
  484. lalsuite-7.26.2.dev20251206.data/scripts/cbcBayesThermoInt +107 -0
  485. lalsuite-7.26.2.dev20251206.data/scripts/imrtgr_imr_consistency_test +796 -0
  486. lalsuite-7.26.2.dev20251206.data/scripts/lal_cache +6 -0
  487. lalsuite-7.26.2.dev20251206.data/scripts/lal_fftw_wisdom +6 -0
  488. lalsuite-7.26.2.dev20251206.data/scripts/lal_fftwf_wisdom +6 -0
  489. lalsuite-7.26.2.dev20251206.data/scripts/lal_path2cache +148 -0
  490. lalsuite-7.26.2.dev20251206.data/scripts/lal_searchsum2cache +172 -0
  491. lalsuite-7.26.2.dev20251206.data/scripts/lal_simd_detect +6 -0
  492. lalsuite-7.26.2.dev20251206.data/scripts/lal_tconvert +6 -0
  493. lalsuite-7.26.2.dev20251206.data/scripts/lal_version +6 -0
  494. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeAntennaPattern +6 -0
  495. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
  496. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
  497. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
  498. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
  499. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ComputePSD +6 -0
  500. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_CopySFTs +6 -0
  501. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DistanceVsMass +6 -0
  502. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_DriveHoughMulti +6 -0
  503. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_FstatMetric_v2 +6 -0
  504. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchSearchGCT +6 -0
  505. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_HierarchicalSearch +6 -0
  506. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTDAG +6 -0
  507. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_MakeSFTs +6 -0
  508. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v4 +6 -0
  509. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Makefakedata_v5 +6 -0
  510. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PredictFstat +6 -0
  511. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_PrintDetectorState +6 -0
  512. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTclean +6 -0
  513. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_SFTvalidate +6 -0
  514. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringAddFrame +6 -0
  515. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_StringSearch +6 -0
  516. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_Weave +6 -0
  517. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveCompare +6 -0
  518. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveConcat +6 -0
  519. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WeaveSetup +6 -0
  520. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
  521. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_animate +6 -0
  522. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_binj +6 -0
  523. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_blindinj +6 -0
  524. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cache +6 -0
  525. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cafe +99 -0
  526. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_calfacs +6 -0
  527. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cbc_stochasticbank +6 -0
  528. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_chirplen +6 -0
  529. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coh_PTF_inspiral +6 -0
  530. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_coinj +6 -0
  531. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
  532. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareFstats +6 -0
  533. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_compareSFTs +6 -0
  534. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_cosmicstring_pipe +525 -0
  535. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
  536. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_dumpSFT +6 -0
  537. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_effdist +6 -0
  538. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_exc_resp +6 -0
  539. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftw_wisdom +6 -0
  540. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fftwf_wisdom +6 -0
  541. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_getval +6 -0
  542. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_header_list +6 -0
  543. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_overview +6 -0
  544. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fits_table_list +6 -0
  545. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_fr_ninja +6 -0
  546. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frextr +6 -0
  547. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frinfo +6 -0
  548. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frjoin +6 -0
  549. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frread +6 -0
  550. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_frview +6 -0
  551. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_gwf2xml +6 -0
  552. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_heterodyne_pulsar +6 -0
  553. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspawgfile +6 -0
  554. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspfrinj +6 -0
  555. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspinj +6 -0
  556. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_inspiralDistance +6 -0
  557. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope +6 -0
  558. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_automation_script +6 -0
  559. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_collate_results +6 -0
  560. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_knope_result_page +6 -0
  561. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj +6 -0
  562. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_makeblindinj_himass +6 -0
  563. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ninja +6 -0
  564. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_path2cache +6 -0
  565. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power +6 -0
  566. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_likelihood_pipe +219 -0
  567. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_power_pipe +417 -0
  568. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
  569. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
  570. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
  571. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_random_bank +6 -0
  572. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_randombank +6 -0
  573. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
  574. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_searchsum2cache +6 -0
  575. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg +6 -0
  576. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_avg_long +6 -0
  577. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spec_coherence +6 -0
  578. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_spininj +6 -0
  579. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitSFTs +6 -0
  580. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_splitbank +6 -0
  581. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_ssbtodetector +6 -0
  582. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_apply_vetoes +171 -0
  583. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_calc_likelihood +172 -0
  584. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter +141 -0
  585. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
  586. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma +110 -0
  587. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
  588. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_final +1064 -0
  589. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_meas_likelihood +264 -0
  590. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_binj +543 -0
  591. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_string_plot_likelihood +380 -0
  592. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeBstatMC +6 -0
  593. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeLVStats +6 -0
  594. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_synthesizeTransientStats +6 -0
  595. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tconvert +6 -0
  596. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_tmpltbank +6 -0
  597. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_version +6 -0
  598. lalsuite-7.26.2.dev20251206.data/scripts/lalapps_xtefitstoframe +6 -0
  599. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cluster +156 -0
  600. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_coinc +224 -0
  601. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_cut +425 -0
  602. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_gen_timeslides +254 -0
  603. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_inj_pic +254 -0
  604. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_injfind +170 -0
  605. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_plot_tisi +165 -0
  606. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_calc_likelihood +182 -0
  607. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_final +1369 -0
  608. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_meas_likelihood +206 -0
  609. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binj +934 -0
  610. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_power_plot_binjtf +302 -0
  611. lalsuite-7.26.2.dev20251206.data/scripts/lalburst_version +6 -0
  612. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cat +6 -0
  613. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cksum +6 -0
  614. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-cut +6 -0
  615. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-dump +6 -0
  616. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-fmt +6 -0
  617. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-paste +6 -0
  618. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-print +6 -0
  619. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-split +6 -0
  620. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stat +6 -0
  621. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-stream +6 -0
  622. lalsuite-7.26.2.dev20251206.data/scripts/lalfr-vis +6 -0
  623. lalsuite-7.26.2.dev20251206.data/scripts/lalframe_version +6 -0
  624. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_bench +6 -0
  625. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst +6 -0
  626. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_burst_pp_pipe +220 -0
  627. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_coherence_test +139 -0
  628. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_compute_roq_weights +404 -0
  629. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_cpnest +58 -0
  630. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_datadump +6 -0
  631. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
  632. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_injectedlike +6 -0
  633. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_merge_posteriors +57 -0
  634. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_mpi_wrapper +6 -0
  635. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_multi_pipe +144 -0
  636. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest +6 -0
  637. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_nest2pos +286 -0
  638. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pipe +512 -0
  639. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_pp_pipe +229 -0
  640. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_review_test +362 -0
  641. lalsuite-7.26.2.dev20251206.data/scripts/lalinference_version +6 -0
  642. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_injfind +206 -0
  643. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_thinca +240 -0
  644. lalsuite-7.26.2.dev20251206.data/scripts/lalinspiral_version +6 -0
  645. lalsuite-7.26.2.dev20251206.data/scripts/lalmetaio_version +6 -0
  646. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
  647. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
  648. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
  649. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
  650. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
  651. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ComputePSD +6 -0
  652. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
  653. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_DriveHoughMulti +6 -0
  654. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
  655. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
  656. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_HierarchicalSearch +6 -0
  657. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
  658. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MakeSFTs +6 -0
  659. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
  660. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
  661. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_MoveSFTs +208 -0
  662. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PiecewiseSearch +963 -0
  663. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PredictFstat +6 -0
  664. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_PrintDetectorState +6 -0
  665. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTclean +6 -0
  666. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_SFTvalidate +6 -0
  667. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_Weave +6 -0
  668. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveCompare +6 -0
  669. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveConcat +6 -0
  670. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WeaveSetup +6 -0
  671. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
  672. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareFstats +6 -0
  673. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_compareSFTs +6 -0
  674. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
  675. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_crosscorr_v2 +6 -0
  676. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_dumpSFT +6 -0
  677. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_getval +6 -0
  678. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_header_list +6 -0
  679. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_overview +6 -0
  680. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_fits_table_list +6 -0
  681. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_frequency_evolution +6 -0
  682. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_heterodyne +6 -0
  683. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope +145 -0
  684. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_automation_script +731 -0
  685. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_collate_results +675 -0
  686. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_knope_result_page +2977 -0
  687. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
  688. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg +6 -0
  689. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_avg_long +6 -0
  690. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_spec_coherence +6 -0
  691. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_splitSFTs +6 -0
  692. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_ssbtodetector +6 -0
  693. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
  694. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeLVStats +6 -0
  695. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
  696. lalsuite-7.26.2.dev20251206.data/scripts/lalpulsar_version +6 -0
  697. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-qnmode +6 -0
  698. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-ringdown +6 -0
  699. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-bh-sphwf +6 -0
  700. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-burst +6 -0
  701. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-noise +6 -0
  702. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-detector-strain +6 -0
  703. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inject +6 -0
  704. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-inspiral +6 -0
  705. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-eos-table +6 -0
  706. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-mass-radius +6 -0
  707. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-ns-params +6 -0
  708. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-sgwb +6 -0
  709. lalsuite-7.26.2.dev20251206.data/scripts/lalsim-unicorn +6 -0
  710. lalsuite-7.26.2.dev20251206.data/scripts/lalsimulation_version +6 -0
  711. lalsuite-7.26.2.dev20251206.dist-info/METADATA +90 -0
  712. lalsuite-7.26.2.dev20251206.dist-info/RECORD +733 -0
  713. lalsuite-7.26.2.dev20251206.dist-info/WHEEL +5 -0
  714. lalsuite-7.26.2.dev20251206.dist-info/licenses/COPYING +339 -0
  715. lalsuite-7.26.2.dev20251206.dist-info/top_level.txt +9 -0
  716. lalsuite.libs/libcfitsio-729ee1b7.so.10.0.0 +0 -0
  717. lalsuite.libs/libfftw3-6b983104.so.3.5.5 +0 -0
  718. lalsuite.libs/libfftw3f-b4465a35.so.3.5.5 +0 -0
  719. lalsuite.libs/libframel-8cf74372.so.8.48.4 +0 -0
  720. lalsuite.libs/libgsl-e30be130.so.28.0.0 +0 -0
  721. lalsuite.libs/libgslcblas-460f042a.so.0.0.0 +0 -0
  722. lalsuite.libs/libhdf5-d02936e2.so.310.5.1 +0 -0
  723. lalsuite.libs/libhdf5_hl-0e40b553.so.310.0.6 +0 -0
  724. lalsuite.libs/liblal-d17109e0.so.20.5.0 +0 -0
  725. lalsuite.libs/liblalburst-d9edfb9d.so.8.0.0 +0 -0
  726. lalsuite.libs/liblalframe-d677044f.so.14.0.3 +0 -0
  727. lalsuite.libs/liblalinference-a50f0a8e.so.23.1.7 +0 -0
  728. lalsuite.libs/liblalinspiral-22638799.so.18.0.2 +0 -0
  729. lalsuite.libs/liblalmetaio-42c5bc5c.so.11.0.1 +0 -0
  730. lalsuite.libs/liblalpulsar-95c25f8c.so.30.1.1 +0 -0
  731. lalsuite.libs/liblalsimulation-bf7c4c31.so.37.2.0 +0 -0
  732. lalsuite.libs/liblalsupport-282d4115.so.14.4.0 +0 -0
  733. lalsuite.libs/libmetaio-abda72ec.so.1.1.0 +0 -0
@@ -0,0 +1,938 @@
1
+ # Copyright (C) 2018 Matthew Pitkin
2
+ #
3
+ # This program is free software; you can redistribute it and/or modify it
4
+ # under the terms of the GNU General Public License as published by the
5
+ # Free Software Foundation; either version 2 of the License, or (at your
6
+ # option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful, but
9
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11
+ # Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along
14
+ # with this program; if not, write to the Free Software Foundation, Inc.,
15
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16
+ """
17
+
18
+ Wrapper class for the PulsarParameters structure, so that it can be accessed
19
+ in a dictionary-like way.
20
+
21
+ """
22
+
23
+ from __future__ import division, absolute_import, print_function
24
+
25
+ import os
26
+ import re
27
+
28
+ import numpy as np
29
+
30
+ from astropy import units as u
31
+
32
+ import lal
33
+ import lalpulsar
34
+
35
+ # set units of parameters in the PulsarParameters structure
36
+ PPUNITS = {
37
+ "F": u.Hz, # Hz
38
+ "P": u.s, # seconds
39
+ "DIST": u.m, # metres
40
+ "PX": u.rad, # radians
41
+ "DM": u.pc / (u.cm) ** 3, # cm^-3 pc
42
+ "DM1": u.pc / (u.cm**3 * u.yr), # pc cm^-3 yr^-1
43
+ "RA": u.rad, # radians
44
+ "RAJ": u.rad, # radians
45
+ "DEC": u.rad, # radians
46
+ "DECJ": u.rad, # radians
47
+ "PMRA": u.rad / u.s, # rad/s
48
+ "PMDEC": u.rad / u.s, # rad/s
49
+ "ELONG": u.rad, # rad
50
+ "ELAT": u.rad, # rad
51
+ "PMELONG": u.rad, # rad/s
52
+ "PMELAT": u.rad, # rad/s
53
+ "BETA": u.rad, # rad
54
+ "LAMBDA": u.rad, # rad
55
+ "PMBETA": u.rad, # rad/s
56
+ "PMLAMBDA": u.rad, # rad/s
57
+ "PEPOCH": u.s, # GPS seconds
58
+ "POSEPOCH": u.s, # GPS seconds
59
+ "DMEPOCH": u.s, # GPS seconds
60
+ "GLEP": u.s, # GPS seconds
61
+ "GLPH": u.rad, # rad
62
+ "GLF0": u.Hz, # Hz
63
+ "GLF1": u.Hz / u.s, # Hz/s
64
+ "GLF2": u.Hz / u.s**2, # Hz s^-2
65
+ "GLF0D": u.Hz, # Hz
66
+ "GLTD": u.s, # sec
67
+ "A1": u.s, # light seconds
68
+ "OM": u.rad, # rad
69
+ "PB": u.s, # seconds
70
+ "T0": u.s, # GPS seconds
71
+ "TASC": u.s, # GPS seconds
72
+ "EPS1": u.dimensionless_unscaled,
73
+ "EPS2": u.dimensionless_unscaled,
74
+ "GAMMA": u.s, # seconds
75
+ "OMDOT": u.rad / u.s, # rad/s
76
+ "XDOT": u.s / u.s, # light seconds/sec
77
+ "PBDOT": u.s / u.s, # s/s
78
+ "EDOT": 1.0 / u.s, # 1/sec
79
+ "EPSDOT1": 1.0 / u.s, # 1/sec
80
+ "EPSDOT2": 1.0 / u.s, # 1/sec
81
+ "XPBDOT": u.s / u.s, # s/s
82
+ "SINI": u.dimensionless_unscaled,
83
+ "MTOT": u.kg, # kg
84
+ "M2": u.kg, # kg
85
+ "DR": u.dimensionless_unscaled,
86
+ "DTHETA": u.dimensionless_unscaled,
87
+ "SHAPMAX": u.dimensionless_unscaled,
88
+ "A1_2": u.s, # light seconds
89
+ "A1_3": u.s, # light seconds
90
+ "OM_2": u.rad, # radians
91
+ "OM_3": u.rad, # radians
92
+ "PB_2": u.s, # seconds
93
+ "PB_3": u.s, # seconds
94
+ "T0_2": u.s, # GPS seconds
95
+ "T0_3": u.s, # GPS seconds
96
+ "FB": u.Hz, # Hz
97
+ "A0": u.s, # seconds
98
+ "B0": u.s, # seconds
99
+ "D_AOP": 1.0 / u.rad, # 1/rad
100
+ "KIN": u.rad, # radians
101
+ "KOM": u.rad, # radians
102
+ "WAVE_OM": u.Hz, # Hz
103
+ "WAVEEPOCH": u.s, # GPS seconds
104
+ "WAVESIN": u.s, # seconds
105
+ "WAVECOS": u.s, # seconds
106
+ "START": u.s, # GPS seconds
107
+ "FINISH": u.s, # GPS seconds
108
+ "TRES": u.s, # seconds
109
+ "H0": u.dimensionless_unscaled,
110
+ "APLUS": u.dimensionless_unscaled,
111
+ "ACROSS": u.dimensionless_unscaled,
112
+ "PHI0": u.rad, # radians
113
+ "PSI": u.rad, # radians
114
+ "COSIOTA": u.dimensionless_unscaled,
115
+ "IOTA": u.rad, # radians
116
+ "C22": u.dimensionless_unscaled,
117
+ "C21": u.dimensionless_unscaled,
118
+ "PHI22": u.rad, # radians
119
+ "PHI21": u.rad, # radians
120
+ "CGW": u.dimensionless_unscaled,
121
+ "LAMBDAPIN": u.rad, # radians
122
+ "COSTHETA": u.dimensionless_unscaled,
123
+ "THETA": u.rad,
124
+ "I21": u.dimensionless_unscaled,
125
+ "I31": u.dimensionless_unscaled,
126
+ "Q22": u.kg * u.m**2, # kg m^2
127
+ "H0_F": u.dimensionless_unscaled,
128
+ "HPLUS": u.dimensionless_unscaled,
129
+ "HCROSS": u.dimensionless_unscaled,
130
+ "PSITENSOR": u.rad, # radians
131
+ "PHI0TENSOR": u.rad, # radians
132
+ "HSCALARB": u.dimensionless_unscaled,
133
+ "HSCALARL": u.dimensionless_unscaled,
134
+ "PSISCALAR": u.rad, # radians
135
+ "PHI0SCALAR": u.rad, # radians
136
+ "HVECTORX": u.dimensionless_unscaled,
137
+ "HVECTORY": u.dimensionless_unscaled,
138
+ "PSIVECTOR": u.rad, # radians
139
+ "PHI0VECTOR": u.rad, # radians
140
+ "HPLUS_F": u.dimensionless_unscaled,
141
+ "HCROSS_F": u.dimensionless_unscaled,
142
+ "PSITENSOR_F": u.rad, # radians
143
+ "PHI0TENSOR_F": u.rad, # radians
144
+ "HSCALARB_F": u.dimensionless_unscaled,
145
+ "HSCALARL_F": u.dimensionless_unscaled,
146
+ "PSISCALAR_F": u.rad, # radians
147
+ "PHI0SCALAR_F": u.rad, # radians
148
+ "HVECTORX_F": u.dimensionless_unscaled,
149
+ "HVECTORY_F": u.dimensionless_unscaled,
150
+ "PSIVECTOR_F": u.rad, # radians
151
+ "PHI0VECTOR_F": u.rad, # radians
152
+ "TRANSIENTSTARTTIME": u.s, # GPS seconds
153
+ "TRANSIENTTAU": u.s, # seconds
154
+ }
155
+
156
+ # set units of parameters in a TEMPO-style parameter file if different from above
157
+ TEMPOUNITS = {
158
+ "DIST": u.kpc, # kpc
159
+ "PX": u.mas, # milliarcsecs
160
+ "RA": u.hourangle, # hh:mm:ss.s
161
+ "RAJ": u.hourangle, # hh:mm:ss.s
162
+ "DEC": u.deg, # hh:mm:ss.s
163
+ "DECJ": u.deg, # hh:mm:ss.s
164
+ "PMRA": u.mas / u.yr, # milliarcsecs/year
165
+ "PMDEC": u.mas / u.yr, # milliarcsecs/year
166
+ "ELONG": u.deg, # degrees
167
+ "ELAT": u.deg, # degrees
168
+ "PMELONG": u.mas / u.yr, # milliarcsecs/year
169
+ "PMELAT": u.mas / u.yr, # milliarcsecs/year
170
+ "BETA": u.deg,
171
+ "LAMBDA": u.deg,
172
+ "PMBETA": u.mas / u.yr,
173
+ "PMLAMBDA": u.mas / u.yr,
174
+ "PEPOCH": u.d, # MJD(TT) (day)
175
+ "POSEPOCH": u.d, # MJD(TT) (day)
176
+ "DMEPOCH": u.d, # MJD(TT) (day)
177
+ "GLEP": u.d, # MJD(TT) (day)
178
+ "GLTD": u.d, # days
179
+ "OM": u.deg, # degs
180
+ "PB": u.d, # day
181
+ "T0": u.d, # MJD(TT) (day)
182
+ "TASC": u.d, # MJD(TT) (day)
183
+ "OMDOT": u.deg / u.yr, # deg/yr
184
+ "MTOT": u.solMass, # M_sun
185
+ "M2": u.solMass, # M_sun
186
+ "OM_2": u.deg, # degrees
187
+ "OM_3": u.deg, # degrees
188
+ "PB_2": u.d, # days
189
+ "PB_3": u.d, # days
190
+ "T0_2": u.d, # MJD(TT) (days)
191
+ "T0_3": u.d, # MJD(TT) (days)
192
+ "D_AOP": 1.0 / u.arcsec, # 1/arcsec
193
+ "KIN": u.deg, # degrees
194
+ "KOM": u.deg, # degrees
195
+ "WAVEEPOCH": u.d, # MJD(TT) (days)
196
+ "START": u.d, # MJD(TT) (days)
197
+ "FINISH": u.d, # MJD(TT) (days)
198
+ "TRES": u.us, # microsecs
199
+ "TRANSIENTSTARTTIME": u.d, # MJD(TT) (day)
200
+ "TRANSIENTTAU": u.d, # days
201
+ }
202
+
203
+ # set units of error values in tempo if different from above
204
+ TEMPOERRUNITS = {
205
+ "RA": u.s, # second
206
+ "RAJ": u.s, # second
207
+ "DEC": u.arcsec, # arcsecond
208
+ "DECJ": u.arcsec, # arcsecond
209
+ }
210
+
211
+
212
+ class PulsarParametersPy(object):
213
+ """
214
+ A class to wrap the SWIG-wrapped lalpulsar.PulsarParameters structure.
215
+
216
+ This class lets you access the structure in a more Pythonic way, as well as providing
217
+ a nice format for holding pulsar (`.par`) parameter files.
218
+
219
+ The class can be used to set numerical values (double precision, unsigned integers), strings,
220
+ or vectors of floating point values, e.g.:
221
+
222
+ >>> from lalpulsar.PulsarParametersWrapper import PulsarParametersPy
223
+ >>> pppy = PulsarParametersPy() # an empty structure
224
+ >>> pppy['DECJ'] = 0.23 # set a numerical value
225
+ >>> pppy['BINARY'] = 'BT' # set a string value
226
+ >>> pppy['F'] = [10.2, 1.4e-11] # set a vector of float values
227
+
228
+ Args:
229
+ pp (PulsarParameters, str): a lalpulsar.PulsarParameters structure, or a string giving the
230
+ path to a TEMPO-style (`.par`) pulsar parameter file. If nothing is given then an empty
231
+ lalpulsar.PulsarParameters structure is created. The `read()` method can subsequently
232
+ be used to read in a `.par` file, or parameters can be added.
233
+
234
+ Examples:
235
+ An example of initialising the class with a previously created `lalpulsar.PulsarParameters`
236
+ structure is:
237
+
238
+ >>> import lalpulsar
239
+ >>> from lalpulsar.PulsarParametersWrapper import PulsarParametersPy
240
+ >>> # read in a pulsar parameter file
241
+ >>> pp = lalpulsar.ReadTEMPOParFile('apulsar.par')
242
+ >>> # view as a PulsarParametersPy object
243
+ >>> pppy = PulsarParametersPy(pp)
244
+
245
+ The same thing could be achieved more directly using:
246
+
247
+ >>> pppy = PulsarParametersPy('apulsar.par')
248
+
249
+ or, equivalently with:
250
+
251
+ >>> pppy = PulsarParametersPy()
252
+ >>> pppy.read('apulsar.par')
253
+
254
+ """
255
+
256
+ keynames = [] # parameter names in PulsarParameters structure
257
+ length = 0 # number of parameters
258
+ _pulsarparameters = None
259
+
260
+ def __init__(self, pp=None):
261
+ # if pp is None create empty PulsarParameters structure
262
+ if pp is None:
263
+ self._pulsarparameters = lalpulsar.PulsarParameters()
264
+ else:
265
+ # check if pp is a pulsar parameters type or a (par file)
266
+ if not isinstance(pp, lalpulsar.PulsarParameters) and isinstance(pp, str):
267
+ if os.path.isfile(pp):
268
+ # try reading in file
269
+ self.read(pp)
270
+ else:
271
+ raise ValueError("Input string does not point to a file")
272
+ elif isinstance(pp, lalpulsar.PulsarParameters):
273
+ self._pulsarparameters = pp
274
+ else:
275
+ raise ValueError(
276
+ "Expected 'lalpulsar.PulsarParameters' type, string, or None"
277
+ )
278
+
279
+ def __len__(self):
280
+ _ = self.keys() # length is counted in the keys() method
281
+
282
+ return self.length
283
+
284
+ def __str__(self):
285
+ return self.pp_to_str()
286
+
287
+ def __getitem__(self, key):
288
+ """
289
+ Get value from pulsar parameters
290
+ """
291
+
292
+ if self._pulsarparameters is None:
293
+ return None
294
+
295
+ # check if key finishes with "_ERR", in which case check for error value
296
+ geterr = False
297
+ tkey = key
298
+ if key[-4:].upper() == "_ERR":
299
+ geterr = True
300
+ tkey = key[:-4] # get the actual parameter key name
301
+
302
+ # check if the key is asking for an individual parameter from a vector parameter
303
+ # (e.g. 'F0' gets the first value from the 'F' vector.
304
+ # NOTE: this is problematic for glitch parameters, e.g., GLF0, which could provide
305
+ # values to multiple glitches, so this cannot be used to get individual glitch
306
+ # parameters).
307
+ sname = re.sub(r"_\d", "", tkey) if "_" in tkey else re.sub(r"\d", "", tkey)
308
+ sidx = None
309
+ indkey = None
310
+ if sname != tkey and tkey[0:2] != "GL":
311
+ # check additional index is an integer
312
+ try:
313
+ sidx = (
314
+ int(tkey.split("_")[-1]) if "_" in tkey else int(tkey[len(sname) :])
315
+ )
316
+ except ValueError:
317
+ pass
318
+
319
+ # change tkey for checking parameter exists
320
+ if sidx is not None:
321
+ indkey = tkey # key with index
322
+ tkey = sname
323
+
324
+ # check if parameter key is present otherwise switch back to original name
325
+ # (needed for, e.g., 'H0', 'PHI0', ...)
326
+ if not lalpulsar.PulsarCheckParam(self._pulsarparameters, tkey):
327
+ tkey = indkey
328
+
329
+ # check if parameter given by the key is present
330
+ if not lalpulsar.PulsarCheckParam(self._pulsarparameters, tkey):
331
+ return None
332
+
333
+ # get type of parameter
334
+ ptype = lalpulsar.PulsarGetParamType(self._pulsarparameters, tkey)
335
+
336
+ if ptype == lalpulsar.PULSARTYPE_REAL8_t:
337
+ if not geterr:
338
+ value = lalpulsar.PulsarGetREAL8Param(self._pulsarparameters, tkey)
339
+ else:
340
+ value = lalpulsar.PulsarGetREAL8ParamErr(self._pulsarparameters, tkey)
341
+ elif ptype == lalpulsar.PULSARTYPE_REAL8Vector_t:
342
+ if not geterr:
343
+ if sidx is None:
344
+ tmpvalue = lalpulsar.PulsarGetREAL8VectorParam(
345
+ self._pulsarparameters, tkey
346
+ )
347
+ value = (
348
+ tmpvalue.data
349
+ ) # 'data' in a REAL8Vector gets returned as a numpy array
350
+ else:
351
+ value = lalpulsar.PulsarGetREAL8VectorParamIndividual(
352
+ self._pulsarparameters, indkey
353
+ )
354
+ else:
355
+ if sidx is None:
356
+ tmpvalue = lalpulsar.PulsarGetREAL8VectorParamErr(
357
+ self._pulsarparameters, tkey
358
+ )
359
+ value = tmpvalue.data
360
+ else:
361
+ value = lalpulsar.PulsarGetREAL8VectorParamErrIndividual(
362
+ self._pulsarparameters, indkey
363
+ )
364
+ elif ptype == lalpulsar.PULSARTYPE_string_t:
365
+ if not geterr:
366
+ value = lalpulsar.PulsarGetStringParam(self._pulsarparameters, tkey)
367
+ else:
368
+ raise ValueError("String-type cannot have an error")
369
+ elif ptype == lalpulsar.PULSARTYPE_UINT4_t:
370
+ if not geterr:
371
+ value = lalpulsar.PulsarGetUINT4Param(self._pulsarparameters, tkey)
372
+ else:
373
+ raise ValueError("UINT4-type cannot have an error")
374
+ else:
375
+ raise ValueError("Unrecognised type")
376
+
377
+ return value
378
+
379
+ def __setitem__(self, key, value):
380
+ """
381
+ Set the value of a key
382
+ """
383
+
384
+ # if parameter exists remove it
385
+ if lalpulsar.PulsarCheckParam(self._pulsarparameters, key):
386
+ lalpulsar.PulsarRemoveParam(self._pulsarparameters, key)
387
+
388
+ if isinstance(value, float):
389
+ lalpulsar.PulsarAddREAL8Param(self._pulsarparameters, key, value)
390
+ elif isinstance(value, str):
391
+ lalpulsar.PulsarAddStringParam(self._pulsarparameters, key, value)
392
+ elif isinstance(value, int):
393
+ if value < 0.0: # store negative integers as floats
394
+ lalpulsar.PulsarAddREAL8Param(self._pulsarparameters, key, float(value))
395
+ else:
396
+ lalpulsar.PulsarAddUINT4Param(self._pulsarparameters, key, value)
397
+ elif isinstance(value, list) or isinstance(value, np.ndarray):
398
+ tarray = lal.CreateREAL8Vector(len(value))
399
+ for i, tv in enumerate(value):
400
+ if isinstance(tv, float):
401
+ tarray.data[i] = tv
402
+ else:
403
+ raise ValueError("Non-float value in list or array")
404
+ lalpulsar.PulsarAddREAL8VectorParam(self._pulsarparameters, key, tarray)
405
+ else:
406
+ raise ValueError("Data-type not one of know types")
407
+
408
+ def convert_to_units(self, name, value):
409
+ """
410
+ Convert parameter values to equivalent dimensional versions.
411
+
412
+ Args:
413
+ name (str): the name of the parameter to convert
414
+ value: the value to the parameter to convert
415
+
416
+ Returns:
417
+ :class:`astropy.unit.Unit`: a unit class with dimensions for a float parameters, or a
418
+ list containing unit classes for a list or :class:`numpy.ndarray`
419
+ """
420
+
421
+ if isinstance(value, str):
422
+ # don't make any changes for a string type
423
+ return value
424
+
425
+ uname = name.upper()
426
+
427
+ ppunit = u.dimensionless_unscaled
428
+ if uname in PPUNITS:
429
+ ppunit = PPUNITS[uname]
430
+
431
+ if isinstance(value, np.ndarray) or isinstance(value, list):
432
+ cvalue = []
433
+ bunit = ppunit
434
+ for v in value:
435
+ cvalue.append(v * ppunit)
436
+ if uname in ["F", "FB", "P"]: # frequency/period values
437
+ ppunit *= bunit # increment unit (e.g. Hz -> Hz/s, Hz/s -> Hz/s^2)
438
+ else:
439
+ cvalue = value * ppunit
440
+
441
+ return cvalue
442
+
443
+ def convert_to_tempo_units(self, name, value, iserr=False):
444
+ """
445
+ Convert from PulsarParameter units to TEMPO-par-file units
446
+
447
+ Args:
448
+ name (str): a parameter name
449
+ value (float, list, :class:`numpy.ndarray`): the value of the parameter
450
+ iserr (bool): state whether where converting the parameter's error value
451
+
452
+ Returns:
453
+ :class:`astropy.unit.Unit`: a unit class with dimensions for a float parameters, or a
454
+ list containing unit classes for a list or :class:`numpy.ndarray`
455
+ """
456
+
457
+ from astropy.coordinates import ICRS, Angle
458
+ from astropy.time import Time
459
+
460
+ # for certain binary parameters there is an anomoly that their value
461
+ # may have been rescaled (I think this is a hangover from a TEMPO definition compared to
462
+ # the TEMPO2 definition)
463
+ binaryunits = ["XDOT", "PBDOT", "EPS1DOT", "EPS2DOT", "XPBDOT"]
464
+
465
+ # the names of epoch parameters that are held as GPS times, but must be converted back to
466
+ # MJD for a TEMPO-style par file
467
+ epochpars = [
468
+ "POSEPOCH",
469
+ "PEPOCH",
470
+ "WAVEEPOCH",
471
+ "T0",
472
+ "TASC",
473
+ "T0_2",
474
+ "T0_3",
475
+ "START",
476
+ "FINISH",
477
+ "DMEPOCH",
478
+ "GLEP",
479
+ "TRANSIENTSTARTTIME",
480
+ ]
481
+
482
+ uname = name.upper()
483
+
484
+ ppunit = None
485
+ if uname in PPUNITS:
486
+ ppunit = PPUNITS[uname]
487
+
488
+ tempounit = None
489
+ if uname in TEMPOUNITS:
490
+ if not iserr:
491
+ tempounit = TEMPOUNITS[uname]
492
+ else:
493
+ if uname not in TEMPOERRUNITS:
494
+ tempounit = TEMPOUNITS[uname]
495
+ else:
496
+ tempounit = TEMPOERRUNITS[uname]
497
+
498
+ if ppunit is None:
499
+ if uname in binaryunits:
500
+ # for these binary parameters there is a TEMPO2 oddity that has to be corrected for
501
+ if abs(value) / 1e-12 > 1e-7:
502
+ value /= 1e-12
503
+
504
+ if isinstance(value, str):
505
+ return value
506
+ else:
507
+ return value * u.dimensionless_unscaled
508
+
509
+ # convert to dimensionful value
510
+ pvalue = self.convert_to_units(uname, value)
511
+
512
+ if ppunit == tempounit or tempounit is None:
513
+ tempounit = ppunit
514
+
515
+ if uname in ["RA", "RAJ"]:
516
+ if not iserr:
517
+ # convert right ascension in radians into a string output format
518
+ c = ICRS(pvalue, 0.0 * u.rad)
519
+ cvalue = c.ra.to_string(unit=tempounit, sep=":", precision=12, pad=True)
520
+ else:
521
+ angle = Angle(pvalue)
522
+ cvalue = (
523
+ angle.hms[0] * (60.0**2) + angle.hms[1] * 60.0 + angle.hms[2]
524
+ ) * tempounit
525
+ elif uname in ["DEC", "DECJ"] and not iserr:
526
+ c = ICRS(0.0 * u.rad, pvalue)
527
+ cvalue = c.dec.to_string(unit=tempounit, sep=":", precision=12, pad=True)
528
+ elif uname in epochpars and not iserr:
529
+ if isinstance(pvalue, list):
530
+ cvalue = []
531
+ for i, pv in enumerate(pvalue):
532
+ t = Time(pv, format="gps", scale="tt")
533
+ cvalue.append(t.mjd * tempounit)
534
+ else:
535
+ t = Time(pvalue, format="gps", scale="tt")
536
+ cvalue = t.mjd * tempounit
537
+ elif uname in binaryunits and not iserr:
538
+ # for these binary parameters there is a TEMPO2 oddity that has to be corrected for
539
+ if abs(pvalue.value) / 1e-12 > 1e-7:
540
+ pvalue.value /= 1e-12
541
+ cvalue = pvalue.to(tempounit)
542
+ else:
543
+ # perform conversion
544
+ if isinstance(pvalue, list):
545
+ cvalue = []
546
+ bunit = tempounit
547
+ for i, pv in enumerate(pvalue):
548
+ cvalue.append(pv.to(tempounit))
549
+ if uname in ["F", "FB", "P"]: # frequency/period values
550
+ tempounit *= (
551
+ bunit # increment unit (e.g. Hz -> Hz/s, Hz/s -> Hz/s^2)
552
+ )
553
+ else:
554
+ cvalue = pvalue.to(tempounit)
555
+
556
+ return cvalue
557
+
558
+ def parameter(self, name, withunits=False, tempounits=False):
559
+ """
560
+ Return the parameter given by name.
561
+
562
+ Args:
563
+ name (str): the name of the parameter to return
564
+ withunits (bool): if True return the parameter in a form with its appropriate units
565
+ tempounits (bool): of True return the parameter converted into the units required in a
566
+ TEMPO-style parameter file
567
+ """
568
+
569
+ value = self[name]
570
+
571
+ if value is None:
572
+ return None
573
+
574
+ if name.upper()[-4:] == "_ERR":
575
+ uname = name.upper()[:-4]
576
+ iserr = True
577
+ else:
578
+ uname = name
579
+ iserr = False
580
+
581
+ if tempounits:
582
+ ovalue = self.convert_to_tempo_units(uname, value, iserr=iserr)
583
+ elif withunits:
584
+ ovalue = self.convert_to_units(uname, value)
585
+ else:
586
+ ovalue = value
587
+
588
+ return ovalue
589
+
590
+ def keys(self):
591
+ """
592
+ Return a list of the parameter names stored in the PulsarParameters structure
593
+ """
594
+
595
+ thisitem = self._pulsarparameters.head
596
+ self.keynames = [] # clear any previous key names
597
+ self.length = 0
598
+ while thisitem:
599
+ tname = thisitem.name
600
+ self.keynames.append(tname)
601
+ self.length += 1
602
+
603
+ thisitem = thisitem.next # move on to next value
604
+
605
+ # reverse the order of the names, so they're in the same order as read from a par file
606
+ self.keynames = self.keynames[::-1]
607
+
608
+ return self.keynames
609
+
610
+ def values(self):
611
+ """
612
+ Return the values of each parameter in the structure
613
+ """
614
+
615
+ tvalues = []
616
+
617
+ keys = self.keys()
618
+ for key in keys:
619
+ if lalpulsar.PulsarCheckParam(self._pulsarparameters, key):
620
+ # get type of parameter
621
+ ptype = lalpulsar.PulsarGetParamType(self._pulsarparameters, key)
622
+
623
+ if ptype == lalpulsar.PULSARTYPE_REAL8_t:
624
+ value = lalpulsar.PulsarGetREAL8Param(self._pulsarparameters, key)
625
+ elif ptype == lalpulsar.PULSARTYPE_REAL8Vector_t:
626
+ tmpvalue = lalpulsar.PulsarGetREAL8VectorParam(
627
+ self._pulsarparameters, key
628
+ )
629
+ value = (
630
+ tmpvalue.data
631
+ ) # 'data' in a REAL8Vector gets returned as a numpy array
632
+ elif ptype == lalpulsar.PULSARTYPE_string_t:
633
+ value = lalpulsar.PulsarGetStringParam(self._pulsarparameters, key)
634
+ elif ptype == lalpulsar.PULSARTYPE_UINT4_t:
635
+ value = lalpulsar.PulsarGetUINT4Param(self._pulsarparameters, key)
636
+ else:
637
+ raise ValueError("UINT4-type cannot have an error")
638
+ else:
639
+ raise ValueError("Could not find {} in strcuture".format(key))
640
+
641
+ tvalues.append(value)
642
+
643
+ return tvalues
644
+
645
+ def as_dict(self):
646
+ """
647
+ Return the contents (not error at the moment) of the structure as a dictionary
648
+ """
649
+
650
+ tdict = {}
651
+
652
+ for tpair in self.items():
653
+ tdict[tpair[0]] = tpair[1]
654
+
655
+ return tdict
656
+
657
+ def items(self):
658
+ """
659
+ Return list of item tuples for each parameter in the structure
660
+ """
661
+
662
+ tkeys = self.keys()
663
+ tvalues = self.values()
664
+
665
+ titems = []
666
+
667
+ for tk, tv in zip(tkeys, tvalues):
668
+ titems.append((tk, tv))
669
+
670
+ return titems
671
+
672
+ def read(self, filename):
673
+ """
674
+ Read a TEMPO-style parameter file into a PulsarParameters structure
675
+
676
+ Args:
677
+ filename (str): the path to the pulsar `.par` file.
678
+ """
679
+
680
+ # remove existing pulsarparameters
681
+ if self._pulsarparameters is not None:
682
+ del self._pulsarparameters
683
+
684
+ pp = lalpulsar.ReadTEMPOParFile(filename)
685
+
686
+ if pp is None:
687
+ raise IOError(
688
+ "Problem reading in pulsar parameter file '{}'".format(filename)
689
+ )
690
+
691
+ self._pulsarparameters = pp
692
+
693
+ def get_error(self, name):
694
+ """
695
+ Return the error value for a particular parameter
696
+
697
+ Args:
698
+ name (str): the name of the parameter
699
+ """
700
+
701
+ try:
702
+ if name.upper()[-4:] == "_ERR":
703
+ return self[name.upper()]
704
+ else:
705
+ uname = name.upper() + "_ERR"
706
+ return self[uname]
707
+ except ValueError:
708
+ return None
709
+
710
+ def get_fitflag(self, name):
711
+ """
712
+ Return the "fit flag" (a 1 or 0 depending whether the parameter with fit for by TEMPO(2)
713
+ in the `.par` file).
714
+
715
+ Args:
716
+ name (str): the name of the parameter
717
+ """
718
+
719
+ if name.upper() not in self.keys():
720
+ return 0.0
721
+
722
+ fitflag = lalpulsar.PulsarGetParamFitFlagAsVector(self._pulsarparameters, name)
723
+
724
+ if len(fitflag.data) > 1 or isinstance(self[name.upper()], (list, np.ndarray)):
725
+ return fitflag.data
726
+ else:
727
+ return fitflag.data[0]
728
+
729
+ def pp_to_str(self, precision=19):
730
+ """
731
+ Convert the PulsarParameter structure to a string in the format of a
732
+ TEMPO-style `.par` file.
733
+
734
+ Args:
735
+ precision (int): the number of decimal places for an output value
736
+
737
+ Returns:
738
+ str: the contents in TEMPO-format
739
+ """
740
+
741
+ # output string format (set so that values should line up)
742
+ mkl = (
743
+ max([len(kn) for kn in self.keys()]) + 5
744
+ ) # max key length for output alignment
745
+ vlb = precision + 10 # allow extra space for minus sign/exponents
746
+ outputstr = "{{name: <{0}}}{{value: <{1}}}{{fitflag}}\t{{error}}".format(
747
+ mkl, vlb
748
+ )
749
+
750
+ parstr = ""
751
+
752
+ parsedwaves = False
753
+
754
+ # get names of parameters in file
755
+ for item in self.items():
756
+ key = item[0]
757
+ value = item[1]
758
+
759
+ if key in ["WAVESIN", "WAVECOS"] and parsedwaves:
760
+ # already added the FITWAVES values
761
+ continue
762
+
763
+ # get error
764
+ evalue = self.get_error(key)
765
+
766
+ # check for required conversion back to TEMPO-par file units
767
+ if key in TEMPOUNITS:
768
+ uvalue = self.convert_to_tempo_units(key, value)
769
+ if evalue is not None:
770
+ uevalue = self.convert_to_tempo_units(key, evalue, iserr=True)
771
+
772
+ # just get values without units
773
+ if isinstance(uvalue, list):
774
+ tvalue = []
775
+ tevalue = []
776
+ for tv, te in zip(uvalue, uevalue):
777
+ tvalue.append(tv.value)
778
+ tevalue.append(te.value)
779
+ elif isinstance(uvalue, str):
780
+ tvalue = uvalue
781
+ tevalue = uevalue.value
782
+ else:
783
+ tvalue = uvalue.value
784
+ tevalue = uevalue.value
785
+ else:
786
+ tvalue = value
787
+ tevalue = evalue
788
+
789
+ fitflag = None
790
+ if evalue is not None:
791
+ fitflag = self.get_fitflag(key)
792
+
793
+ oevalue = "" # default output error value
794
+ ofitflag = " " # default output fit flag value (a single space for alignment purposes)
795
+ if isinstance(tvalue, list) or isinstance(tvalue, np.ndarray):
796
+ idxoffset = 0
797
+ idxsep = ""
798
+ if key in [
799
+ "WAVESIN",
800
+ "WAVECOS",
801
+ "GLEP",
802
+ "GLPH",
803
+ "GLF0",
804
+ "GLF1",
805
+ "GLF2",
806
+ "GLF0D",
807
+ "GLTD",
808
+ ]:
809
+ # the TEMPO variable name for these parameter start with an index a 1
810
+ idxoffset = 1
811
+
812
+ if key[:2] == "GL":
813
+ # glitch parameters have an "_" seperating the name from the index
814
+ idxsep = "_"
815
+
816
+ if key in ["WAVESIN", "WAVECOS"]:
817
+ # do things differently for FITWAVES parameters
818
+ parsedwaves = True
819
+
820
+ if key == "WAVESIN":
821
+ wavesin = tvalue
822
+ wavecos = self["WAVECOS"]
823
+ else:
824
+ wavesin = self["WAVESIN"]
825
+ wavecos = tvalue
826
+
827
+ for ws, wc in zip(wavesin, wavecos):
828
+ precstrs = "{{0:.{}f}}".format(precision) # print out float
829
+ if ws < 1e-6 or ws > 1e6:
830
+ # print out float in scientific notation
831
+ precstrs = "{{0:.{}e}}".format(precision)
832
+
833
+ precstrc = "{{0:.{}f}}".format(precision) # print out float
834
+ if wc < 1e-6 or wc > 1e6:
835
+ # print out float in scientific notation
836
+ precstrc = "{{0:.{}e}}".format(precision)
837
+
838
+ outputdic = {}
839
+ outputdic["name"] = "WAVE{}{}".format(idxsep, idxoffset)
840
+ idxoffset += 1
841
+ outputdic["value"] = "{}\t{}".format(
842
+ precstrs.format(ws), precstrc.format(wc)
843
+ )
844
+ outputdic["fitflag"] = ""
845
+ outputdic["error"] = ""
846
+
847
+ parstr += outputstr.format(**outputdic).strip() + "\n"
848
+ else:
849
+ for tv, te, tf in zip(tvalue, tevalue, fitflag):
850
+ precstr = "{{0:.{}f}}".format(precision) # print out float
851
+ if tv < 1e-6 or tv > 1e6:
852
+ # print out float in scientific notation
853
+ precstr = "{{0:.{}e}}".format(precision)
854
+
855
+ precstre = "{{0:.{}f}}".format(precision) # print out float
856
+ if te < 1e-6 or te > 1e6:
857
+ # print out float in scientific notation
858
+ precstre = "{{0:.{}e}}".format(precision)
859
+
860
+ outputdic = {}
861
+ outputdic["name"] = "{}{}{}".format(key, idxsep, idxoffset)
862
+ idxoffset += 1
863
+ outputdic["value"] = precstr.format(tv)
864
+ outputdic["fitflag"] = "1" if tf == 1 else ""
865
+ outputdic["error"] = precstre.format(te) if te != 0.0 else ""
866
+
867
+ parstr += outputstr.format(**outputdic).strip() + "\n"
868
+ else:
869
+ if isinstance(tvalue, float) or key in ["RA", "RAJ", "DEC", "DECJ"]:
870
+ if isinstance(tvalue, float):
871
+ precstr = "{{0:.{}f}}".format(precision) # print out float
872
+ if tvalue < 1e-6 or tvalue > 1e6:
873
+ # print out float in scientific notation
874
+ precstr = "{{0:.{}e}}".format(precision)
875
+
876
+ ovalue = precstr.format(tvalue)
877
+ else:
878
+ ovalue = tvalue
879
+
880
+ precstre = "{{0:.{}f}}".format(precision) # print out float
881
+ oevalue = ""
882
+ if tevalue is not None:
883
+ if tevalue != 0.0:
884
+ if tevalue < 1e-6 or tevalue > 1e6:
885
+ # print out float in scientific notation
886
+ precstre = "{{0:.{}e}}".format(precision)
887
+
888
+ oevalue = precstre.format(tevalue)
889
+
890
+ if fitflag is not None:
891
+ if fitflag == 1:
892
+ ofitflag = "1"
893
+ else:
894
+ ovalue = tvalue
895
+
896
+ outputdic = {}
897
+ outputdic["name"] = key
898
+ outputdic["value"] = ovalue
899
+ outputdic["fitflag"] = ofitflag
900
+ outputdic["error"] = oevalue
901
+
902
+ parstr += outputstr.format(**outputdic).strip() + "\n"
903
+
904
+ return parstr
905
+
906
+ def pp_to_par(self, filename, precision=19):
907
+ """
908
+ Output the PulsarParameter structure to a `.par` file.
909
+
910
+ Args:
911
+ filename (str): the path to the output file
912
+ precision (int): the number of decimal places for an output value
913
+ """
914
+
915
+ try:
916
+ fp = open(filename, "w")
917
+ except IOError:
918
+ raise IOError("Could not open file '{}' for writing".format(filename))
919
+
920
+ fp.write(self.pp_to_str(precision=precision))
921
+ fp.close()
922
+
923
+ def PulsarParameters(self):
924
+ """
925
+ Return the PulsarParameters structure
926
+ """
927
+
928
+ return self._pulsarparameters
929
+
930
+ def __deepcopy__(self, memo):
931
+ """
932
+ Create a copy of the parameters.
933
+ """
934
+
935
+ newpar = PulsarParametersPy()
936
+ memo[id(self)] = newpar
937
+ lalpulsar.PulsarCopyParams(self.PulsarParameters(), newpar.PulsarParameters())
938
+ return newpar