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,1395 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # pulsarhtmlutils.py
4
+ #
5
+ # Copyright 2016
6
+ # Matthew Pitkin <matthew.pitkin@ligo.org>
7
+ #
8
+ #
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
+ # MA 02110-1301, USA.
23
+
24
+ """
25
+ Some helper classes and functions for outputing html and LaTeX pages
26
+ """
27
+
28
+ from __future__ import print_function
29
+
30
+ import re
31
+ import numpy as np
32
+ import math
33
+
34
+ from lalpulsar.pulsarpputils import rad_to_dms, rad_to_hms
35
+
36
+ # some parameter names for special LaTeX treatment in figures
37
+ paramlatexdict = {
38
+ "H0": "$h_0$",
39
+ "COSIOTA": "$\\cos{\\iota}$",
40
+ "PSI": "$\\psi$ (rad)",
41
+ "PHI0": "$\\phi_0$ (rad)",
42
+ "RA": "$\\alpha$",
43
+ "DEC": "$\\delta$",
44
+ "RAJ": "$\\alpha$",
45
+ "DECJ": "$\\delta$",
46
+ "F0": "$f_0$ (Hz)",
47
+ "F1": "$\\dot{f}$ (Hz/s)",
48
+ "F2": "$\\ddot{f}$ (Hz/s$^2$)",
49
+ "F3": "$f_3$ (Hz/s$^3$)",
50
+ "F4": "$f_4$ (Hz/s$^4$)",
51
+ "F5": "$f_5$ (Hz/s$^5$)",
52
+ "F6": "$f_6$ (Hz/s$^6$)",
53
+ "F7": "$f_7$ (Hz/s$^7$)",
54
+ "F8": "$f_8$ (Hz/s$^8$)",
55
+ "F9": "$f_9$ (Hz/s$^9$)",
56
+ "F10": "$f_{10}$ (Hz/s$^{10}$)",
57
+ "LOGL": "$\\log{L}$",
58
+ "PMRA": "p.m. $\\alpha$ (rad/s)",
59
+ "PMDEC": "p.m. $\\delta$ (rad/s)",
60
+ "PMDC": "p.m. $\\delta$ (rad/s)",
61
+ "PX": "$\\pi$ (rad)",
62
+ "A1": "$a \\sin{i}$ (lt s)",
63
+ "A1_2": "$(a \\sin{i})_{2}$ (lt s)",
64
+ "A1_3": "$(a \\sin{i})_{3}$ (lt s)",
65
+ "SINI": "$\\sin{i}$",
66
+ "PB": "$P_b$ (s)",
67
+ "PB_2": "$(P_b)_2$ (s)",
68
+ "PB_3": "$(P_b)_3$ (s)",
69
+ "T0": "$T_0$ (s)",
70
+ "T0_2": "$(T_0)_2$ (s)",
71
+ "T0_3": "$(T_0)_3$ (s)",
72
+ "TASC": "$T_{\\\textrm{asc}}$ (s)",
73
+ "OM": "$\\omega_0$ (rad)",
74
+ "OM_2": "$(\\omega_0)_2$ (rad)",
75
+ "OM_3": "$(\\omega_0)_3$ (rad)",
76
+ "PBDT": "$\\dot{P}$ (s/s)",
77
+ "PBDOT": "$\\dot{P}$ (s/s)",
78
+ "GAMMA": "$\\gamma$",
79
+ "E": "$e$",
80
+ "ECC": "$e$",
81
+ "ECC_2": "$e_2$",
82
+ "ECC_3": "$e_3$",
83
+ "FB0": "$(f_b)_0$ (Hz)",
84
+ "FB1": "$(f_b)_1$ (Hz)",
85
+ "FB2": "$(f_b)_2$ (Hz)",
86
+ "FB3": "$(f_b)_3$ (Hz)",
87
+ "FB4": "$(f_b)_4$ (Hz)",
88
+ "FB5": "$(f_b)_5$ (Hz)",
89
+ "FB6": "$(f_b)_6$ (Hz)",
90
+ "FB7": "$(f_b)_7$ (Hz)",
91
+ "FB8": "$(f_b)_8$ (Hz)",
92
+ "FB9": "$(f_b)_9$ (Hz)",
93
+ "M2": "$m_2$ (kg)",
94
+ "MTOT": "$M$ (kg)",
95
+ "ELL": "$\\varepsilon$",
96
+ "H95": "$h_0^{95\\%}$",
97
+ "H0UL": "$h_0^{{{}\\%}}$",
98
+ "Q22": "$Q_{22}$\\,(kg\\,m$^2$)",
99
+ "SDRAT": "spin-down ratio",
100
+ "SDRAT95": "$h_0^{95\\%}$/h_0^{\\rm sd}$",
101
+ "SDLIM": "$h_0^{\\rm sd}$",
102
+ "F0ROT": "$f_{\\rm rot}$ (Hz)",
103
+ "F0GW": "$f_{\\rm gw}$ (Hz)",
104
+ "F1ROT": "$\\dot{f}_{\\rm rot}$ (Hz/s)",
105
+ "F1GW": "$\\dot{f}_{\\rm gw}$ (Hz/s)",
106
+ "SDPOWRAT": "power ratio (\\%)",
107
+ "OMDOT": "$\\dot{\\omega}$",
108
+ "OMDT": "$\\dot{\\omega}$",
109
+ "EPS1": "$\\epsilon_1$",
110
+ "EPS2": "$\\epsilon_2$",
111
+ "C22": "$C_{22}$",
112
+ "C21": "$C_{21}$",
113
+ "C22UL": "$C_{{22}}^{{{}\\%}}$",
114
+ "C21UL": "$C_{{21}}^{{{}\\%}}$",
115
+ "PHI22": "$\\phi_{22}$",
116
+ "PHI21": "$\\phi_{21}$",
117
+ "I31": "$I_{31}$",
118
+ "I21": "$I_{21}$",
119
+ "I31UL": "$I_{{31}}^{{{}\\%}}$",
120
+ "I21UL": "$I_{{21}}^{{{}\\%}}$",
121
+ "LAMBDA": "$\\lambda$ (rad)",
122
+ "COSTHETA": "$\\cos{\\\theta}$",
123
+ "DIST": "distance (kpc)",
124
+ "SNR": "$\\rho$",
125
+ "BSN": "$\\log{}_{10}\\left(B_{\\\textrm{SvN}}\\right)$",
126
+ "BCI": "$\\log{}_{10}\\left(B_{\\\textrm{CvI}}\\right)$",
127
+ "BCIN": "$\\log{}_{10}\\left(B_{\\\textrm{CvIN}}\\right)$",
128
+ }
129
+
130
+
131
+ # html text to display for different parameter names
132
+ paramhtmldict = {
133
+ "RAJ": "&alpha;",
134
+ "DECJ": "&delta;",
135
+ "RA": "&alpha;",
136
+ "DEC": "&delta;",
137
+ "F0": "f<sub>0</sub> (Hz)",
138
+ "F1": "f<sub>1</sub> (Hz/s)",
139
+ "F2": "f<sub>2</sub> (Hz/s<sup>2</sup>)",
140
+ "F3": "f<sub>3</sub> (Hz/s<sup>3</sup>)",
141
+ "F4": "f<sub>4</sub> (Hz/s<sup>4</sup>)",
142
+ "F5": "f<sub>5</sub> (Hz/s<sup>5</sup>)",
143
+ "F6": "f<sub>6</sub> (Hz/s<sup>6</sup>)",
144
+ "F7": "f<sub>7</sub> (Hz/s<sup>7</sup>)",
145
+ "F8": "f<sub>8</sub> (Hz/s<sup>8</sup>)",
146
+ "F9": "f<sub>9</sub> (Hz/s<sup>9</sup>)",
147
+ "F10": "f<sub>10</sub> (Hz/s<sup>10</sup>)",
148
+ "F0ROT": "f<sub>rotation</sub> (Hz)",
149
+ "F1ROT": "Spin-down<sub>rotation</sub> (Hz/s)",
150
+ "F0GW": "f<sub>GW</sub> (Hz)",
151
+ "F1GW": "Spin-down<sub>GW</sub> (Hz/s)",
152
+ "PEPOCH": "epoch (MJD)",
153
+ "A1": "a sin<it>i</i> (lt s)",
154
+ "A1_2": "(a sin<it>i</i>)<sub>2</sub> (lt s)",
155
+ "A1_3": "(a sin<it>i</i>)<sub>3</sub> (lt s)",
156
+ "SINI": "sin<it>i</it>$",
157
+ "E": "<it>e</it>",
158
+ "ECC": "<it>e</it>",
159
+ "ECC_2": "<it>e</it><sub>2</sub>",
160
+ "ECC_3": "<it>e</it><sub>3</sub>",
161
+ "EPS1": "&epsilon;<sub>1</sub>",
162
+ "EPS2": "&epsilon;<sub>2</sub>",
163
+ "T0": "T<sub>0</sub> (MJD)",
164
+ "T0_2": "(T<sub>0</sub>)<sub>2</sub> (MJD)",
165
+ "T0_3": "(T<sub>0</sub>)<sub>3</sub> (MJD)",
166
+ "TASC": "T<sub>asc</sub> (MJD)",
167
+ "OM": "&omega;<sub>0</sub> (deg)",
168
+ "OM_2": "(&omega;<sub>0</sub>)<sub>2</sub> (deg)",
169
+ "OM_3": "(&omega;<sub>0</sub>)<sub>3</sub> (deg)",
170
+ "M2": "<it>m</it><sub>2</sub> (kg)",
171
+ "MTOT": "<it>M</it> (kg)",
172
+ "PB": "<it>P</it><sub>b</sub> (days)",
173
+ "PB_2": "(<it>P</it><sub>b</sub>)<sub>2</sub> (days)",
174
+ "PB_3": "(<it>P</it><sub>b</sub>)<sub>3</sub> (days)",
175
+ "FB0": "(<it>f</it><sub>b</sub>)<sub>0</sub> (Hz)",
176
+ "FB1": "(<it>f</it><sub>b</sub>)<sub>1</sub> (Hz)",
177
+ "FB2": "(<it>f</it><sub>b</sub>)<sub>2</sub> (Hz)",
178
+ "FB3": "(<it>f</it><sub>b</sub>)<sub>3</sub> (Hz)",
179
+ "FB4": "(<it>f</it><sub>b</sub>)<sub>4</sub> (Hz)",
180
+ "FB5": "(<it>f</it><sub>b</sub>)<sub>5</sub> (Hz)",
181
+ "FB6": "(<it>f</it><sub>b</sub>)<sub>6</sub> (Hz)",
182
+ "FB7": "(<it>f</it><sub>b</sub>)<sub>7</sub> (Hz)",
183
+ "FB8": "(<it>f</it><sub>b</sub>)<sub>8</sub> (Hz)",
184
+ "FB9": "(<it>f</it><sub>b</sub>)<sub>9</sub> (Hz)",
185
+ "H0": "h<sub>0</sub>",
186
+ "C21": "C<sub>21</sub>",
187
+ "C21UL": "C<sub>21</sub><sup>{}%</sup>",
188
+ "C22": "C<sub>22</sub>",
189
+ "C22UL": "C<sub>22</sub><sup>{}%</sup>",
190
+ "I21": "I<sub>21</sub>",
191
+ "I21UL": "I<sub>21</sub><sup>{}%</sup>",
192
+ "I31": "I<sub>31</sub>",
193
+ "I31UL": "I<sub>31</sub><sup>{}%</sup>",
194
+ "COSIOTA": "cos&iota;",
195
+ "PSI": "&psi; (rad)",
196
+ "PHI0": "&phi;<sub>0</sub> (rad)",
197
+ "PHI21": "&phi;<sub>21</sub> (rad)",
198
+ "PHI22": "&phi;<sub>22</sub> (rad)",
199
+ "PMRA": "p.m. &alpha; (rad/s)",
200
+ "PMDC": "p.m. &delta; (rad/s)",
201
+ "PMDEC": "p.m. &delta; (rad/s)",
202
+ "PX": "&pi; (rad)",
203
+ "DIST": "Distance (kpc)",
204
+ "SDLIM": "Spin-down limit",
205
+ "ELL": "&#949;",
206
+ "SDRAT": "ratio",
207
+ "H95": "h<sub>0</sub><sup>95%</sup>",
208
+ "H0UL": "h<sub>0</sub><sup>{}%</sup>",
209
+ "H0PRIOR": "h<sub>0</sub><sup>95%</sup> prior",
210
+ "SDPOWRAT": "power ratio (%)",
211
+ "Q22": "Q<sub>22</sub> (kg m<sup>2</sup>)",
212
+ "BSN": "log<sub>10</sub>(B<sub>SvN</sub>)",
213
+ "BCI": "log<sub>10</sub>(B<sub>CvI</sub>)",
214
+ "BCIN": "log<sub>10</sub>(B<sub>CvIN</sub>)",
215
+ "MAXL": "log<sub>10</sub>(max. L)",
216
+ "SNR": "&rho;",
217
+ }
218
+
219
+
220
+ # function to return a float number to a given number of significant figures
221
+ def sigfig(x, sf):
222
+ return round(x, -int(math.floor(math.log10(abs(x))) - (sf - 1)))
223
+
224
+
225
+ # function will return a string with the number (input as a string) to two decimal
226
+ # places if it is greater than |0.01|, or the number in exponent for to one decimal
227
+ # place it it is smaller
228
+ def dec_or_exp(f, dp=2, horl="html"):
229
+ fv = float(f)
230
+ if np.abs(fv) > 0.01 and np.abs(fv) < 1000.0:
231
+ if horl == "html":
232
+ return repr(round(fv, dp))
233
+ else:
234
+ return "$%s$" % repr(round(fv, dp))
235
+ else:
236
+ return exp_str(fv, dp, otype=horl)
237
+
238
+
239
+ # a class containing functions to output html parameter values in the appropriate format
240
+ class paramhtmldispfunc:
241
+ def RAJ(f, stype="hms"): # default to output in hh:mm:ss.s format
242
+ if stype == "hms":
243
+ return ra_str(f)
244
+ else: # output in radians
245
+ return dec_or_exp(f)
246
+
247
+ def RA(f, stype="hms"): # default to output in hh:mm:ss.s format
248
+ if stype == "hms":
249
+ return ra_str(f)
250
+ else: # output in radians
251
+ return dec_or_exp(f)
252
+
253
+ def DECJ(f, stype="dms"): # default to output in dd:mm:ss.s format
254
+ if stype == "dms":
255
+ return dec_str(f)
256
+ else: # output in radians
257
+ return dec_or_exp(f)
258
+
259
+ def DEC(f, stype="dms"): # default to output in dd:mm:ss.s format
260
+ if stype == "dms":
261
+ return dec_str(f)
262
+ else: # output in radians
263
+ return dec_or_exp(f)
264
+
265
+ def PMRA(f):
266
+ return dec_or_exp(f)
267
+
268
+ def PMDEC(f):
269
+ return dec_or_exp(f)
270
+
271
+ def PMDC(f):
272
+ return dec_or_exp(f)
273
+
274
+ def F0(f, dp=5): # default to returning with 5
275
+ return dec_or_exp(f, dp=dp)
276
+
277
+ def F1(f):
278
+ return exp_str(float(f), 2)
279
+
280
+ def F2(f):
281
+ return exp_str(float(f), 2)
282
+
283
+ def F3(f):
284
+ return exp_str(float(f), 2)
285
+
286
+ def F4(f):
287
+ return exp_str(float(f), 2)
288
+
289
+ def F5(f):
290
+ return exp_str(float(f), 2)
291
+
292
+ def F6(f):
293
+ return exp_str(float(f), 2)
294
+
295
+ def F7(f):
296
+ return exp_str(float(f), 2)
297
+
298
+ def F8(f):
299
+ return exp_str(float(f), 2)
300
+
301
+ def F9(f):
302
+ return exp_str(float(f), 2)
303
+
304
+ def F10(f):
305
+ return exp_str(float(f), 2)
306
+
307
+ def PEPOCH(f):
308
+ return "%.1f" % float(
309
+ repr(44244.0 + (float(f) + 51.184) / 86400.0)
310
+ ) # return epoch as an float (converted from GPS to MJD)
311
+
312
+ def A1(f):
313
+ return dec_or_exp(f)
314
+
315
+ def E(f):
316
+ return dec_or_exp(f)
317
+
318
+ def EPS1(f):
319
+ return dec_or_exp(f)
320
+
321
+ def EPS2(f):
322
+ return dec_or_exp(f)
323
+
324
+ def M2(f):
325
+ return dec_or_exp(f)
326
+
327
+ def MTOT(f):
328
+ return dec_or_exp(f)
329
+
330
+ def SINI(f):
331
+ return dec_or_exp(f)
332
+
333
+ def T0(f, stype=None):
334
+ if stype == "diff":
335
+ return dec_or_exp(repr((float(f) + 51.184) / 86400.0), dp=2)
336
+ else:
337
+ return "%.2f" % float(
338
+ repr(44244.0 + ((float(f) + 51.184) / 86400.0))
339
+ ) # convert from GPS to MJD for display
340
+
341
+ def TASC(f, stype=None):
342
+ if stype == "diff":
343
+ return dec_or_exp(repr((float(f) + 51.184) / 86400.0), dp=2)
344
+ else:
345
+ return "%.2f" % float(
346
+ repr(44244.0 + ((float(f) + 51.184) / 86400.0))
347
+ ) # convert from GPS to MJD for display
348
+
349
+ def OM(f):
350
+ return dec_or_exp(
351
+ repr(float(f) * 180.0 / math.pi), dp=1
352
+ ) # convert from rads to deg
353
+
354
+ def PB(f):
355
+ return dec_or_exp(repr(float(f) / 86400.0)) # convert from seconds to days
356
+
357
+ def H0(f):
358
+ return exp_str(float(f), 1)
359
+
360
+ def H0UL(f):
361
+ return exp_str(float(f), 1)
362
+
363
+ def C21(f):
364
+ return exp_str(float(f), 1)
365
+
366
+ def C21UL(f):
367
+ return exp_str(float(f), 1)
368
+
369
+ def C22(f):
370
+ return exp_str(float(f), 1)
371
+
372
+ def C22UL(f):
373
+ return exp_str(float(f), 1)
374
+
375
+ def I21(f):
376
+ return exp_str(float(f), 1)
377
+
378
+ def I21UL(f):
379
+ return exp_str(float(f), 1)
380
+
381
+ def I31(f):
382
+ return exp_str(float(f), 1)
383
+
384
+ def I31UL(f):
385
+ return exp_str(float(f), 1)
386
+
387
+ def COSIOTA(f):
388
+ return dec_or_exp(f)
389
+
390
+ def PHI0(f):
391
+ return dec_or_exp(f)
392
+
393
+ def PHI22(f):
394
+ return dec_or_exp(f)
395
+
396
+ def PHI21(f):
397
+ return dec_or_exp(f)
398
+
399
+ def PSI(f):
400
+ return dec_or_exp(f)
401
+
402
+ def ELL(f):
403
+ return exp_str(float(f), 1)
404
+
405
+ def SDLIM(f):
406
+ return exp_str(float(f), 1)
407
+
408
+ def SDRAT(f):
409
+ fsf = sigfig(float(f), 2) # get value rounded to 2 significant figure
410
+ if fsf < 1.0: # if spin-down ratio is less than 1
411
+ return "%.2f" % fsf
412
+ elif fsf < 10.0: # if spin-down ratio is less than 10
413
+ return "%.1f" % fsf
414
+ else: # otherwise round to the nearest integer
415
+ return "%d" % round(fsf)
416
+
417
+ def DIST(f):
418
+ return "%.1f" % float(f)
419
+
420
+ def SDPOWRAT(f):
421
+ return "%d" % round(float(f))
422
+
423
+ def Q22(f):
424
+ return dec_or_exp(f, dp=1) # quadrupole moment
425
+
426
+ def F0ROT(f):
427
+ return dec_or_exp(f)
428
+
429
+ def F0GW(f):
430
+ return dec_or_exp(f)
431
+
432
+ def F1ROT(f):
433
+ return exp_str(float(f), 1)
434
+
435
+ def F1GW(f):
436
+ return exp_str(float(f), 1)
437
+
438
+ def PMRA(f):
439
+ return dec_or_exp(f)
440
+
441
+ def PMDC(f):
442
+ return dec_or_exp(f)
443
+
444
+ def BSN(f):
445
+ return dec_or_exp(f)
446
+
447
+ def BCI(f):
448
+ return dec_or_exp(f)
449
+
450
+ def BCIN(f):
451
+ return dec_or_exp(f)
452
+
453
+ def DEFAULTSTR(f):
454
+ return f
455
+
456
+
457
+ # a class for outputting parameter values to the table
458
+ class paramlatexdispfunc:
459
+ def ELL(f):
460
+ return exp_str(float(f), 1, "latex")
461
+
462
+ def H95(f):
463
+ return exp_str(float(f), 1, "latex")
464
+
465
+ def H0(f):
466
+ return exp_str(float(f), 1, "latex")
467
+
468
+ def H0UL(f):
469
+ return exp_str(float(f), 1, "latex")
470
+
471
+ def C21(f):
472
+ return exp_str(float(f), 1, "latex")
473
+
474
+ def C21UL(f):
475
+ return exp_str(float(f), 1, "latex")
476
+
477
+ def C22(f):
478
+ return exp_str(float(f), 1, "latex")
479
+
480
+ def C22UL(f):
481
+ return exp_str(float(f), 1, "latex")
482
+
483
+ def I21(f):
484
+ return exp_str(float(f), 1, "latex")
485
+
486
+ def I21UL(f):
487
+ return exp_str(float(f), 1, "latex")
488
+
489
+ def I31(f):
490
+ return exp_str(float(f), 1, "latex")
491
+
492
+ def I31UL(f):
493
+ return exp_str(float(f), 1, "latex")
494
+
495
+ def H0PRIOR(f):
496
+ return exp_str(float(f), 1, "latex")
497
+
498
+ def SDLIM(f):
499
+ return exp_str(float(f), 1, "latex")
500
+
501
+ def SDRAT(f):
502
+ fsf = sigfig(float(f), 2) # get value rounded to 2 significant figure
503
+ if fsf < 1.0: # if spin-down ratio is less than 1
504
+ return "%.2f" % fsf
505
+ elif fsf < 10.0: # if spin-down ratio is less than 10
506
+ return "%.1f" % fsf
507
+ else: # otherwise round to the nearest integer
508
+ return "%d" % fsf
509
+
510
+ def RAJ(f):
511
+ return ra_str(f, "latex") # RA in string format
512
+
513
+ def DECJ(f):
514
+ return dec_str(f, "latex") # dec in string format
515
+
516
+ def RA(f):
517
+ return ra_str(f, "latex") # RA in string format
518
+
519
+ def DEC(f):
520
+ return dec_str(f, "latex") # dec in string format
521
+
522
+ def PMRA(f):
523
+ return dec_or_exp(f, horl="latex")
524
+
525
+ def PMDEC(f):
526
+ return dec_or_exp(f, horl="latex")
527
+
528
+ def PMDC(f):
529
+ return dec_or_exp(f, horl="latex")
530
+
531
+ def M2(f):
532
+ return dec_or_exp(f, horl="latex")
533
+
534
+ def MTOT(f):
535
+ return dec_or_exp(f, horl="latex")
536
+
537
+ def DIST(f):
538
+ return "%.1f" % float(f)
539
+
540
+ def SDPOWRAT(f):
541
+ return "%d" % int(f)
542
+
543
+ def Q22(f):
544
+ return exp_str(float(f), 1, "latex") # quadrupole moment
545
+
546
+ def F0(f):
547
+ return "%.2f" % float(f)
548
+
549
+ def F0ROT(f):
550
+ return "%.2f" % float(f)
551
+
552
+ def F0GW(f):
553
+ return "%.2f" % float(f)
554
+
555
+ def F1(f):
556
+ return exp_str(float(f), 1, "latex")
557
+
558
+ def F2(f):
559
+ return exp_str(float(f), 1, "latex")
560
+
561
+ def F3(f):
562
+ return exp_str(float(f), 1, "latex")
563
+
564
+ def F4(f):
565
+ return exp_str(float(f), 1, "latex")
566
+
567
+ def F5(f):
568
+ return exp_str(float(f), 1, "latex")
569
+
570
+ def F6(f):
571
+ return exp_str(float(f), 1, "latex")
572
+
573
+ def F7(f):
574
+ return exp_str(float(f), 1, "latex")
575
+
576
+ def F8(f):
577
+ return exp_str(float(f), 1, "latex")
578
+
579
+ def F9(f):
580
+ return exp_str(float(f), 1, "latex")
581
+
582
+ def F10(f):
583
+ return exp_str(float(f), 1, "latex")
584
+
585
+ def F1ROT(f):
586
+ return exp_str(float(f), 1, "latex")
587
+
588
+ def F1GW(f):
589
+ return exp_str(float(f), 1, "latex")
590
+
591
+ def BSN(f):
592
+ return dec_or_exp(f, horl="latex")
593
+
594
+ def BCI(f):
595
+ return dec_or_exp(f, horl="latex")
596
+
597
+ def BCIN(f):
598
+ return dec_or_exp(f, horl="latex")
599
+
600
+ def DEFAULTSTR(f):
601
+ return f
602
+
603
+
604
+ class htmltag:
605
+ """
606
+ A class to create a html tag
607
+ """
608
+
609
+ def __init__(
610
+ self, tag, tagtext="", tagclass="", tagid="", tagstyle="", newline=False
611
+ ):
612
+ self._taginfo = {}
613
+ self.set_tag(tag) # the name of the tag
614
+ self.set_tagtext(tagtext) # the text to go into the tag
615
+ self.set_tagclass(tagclass) # the tag class
616
+ self.set_tagid(tagid) # the tag id
617
+ self.set_tagstyle(tagstyle) # the tag style
618
+ self.set_tagextra("") # any additional formatting
619
+
620
+ if newline:
621
+ self._newline = "\n" # whether to add a new line after the tag
622
+ else:
623
+ self._newline = ""
624
+
625
+ # set the tag format
626
+ self._tagdata = (
627
+ '<{tag} class="{class}" id="{id}" style="{style}"{extra}>{text}</{tag}>'
628
+ + self._newline
629
+ )
630
+
631
+ def __iadd__(self, ttext):
632
+ """
633
+ Overload the += operator to append text to tagtext
634
+ """
635
+ if not isinstance(ttext, str) and not isinstance(ttext, unicode):
636
+ raise ValueError("Error... appended text must be a string.")
637
+ else:
638
+ self.set_tagtext(self._taginfo["text"] + ttext)
639
+ return self
640
+
641
+ @property
642
+ def tag(self):
643
+ return self._taginfo["tag"]
644
+
645
+ def set_tag(self, t):
646
+ if not isinstance(t, str) and not isinstance(t, unicode):
647
+ raise ValueError("Error... 'tag' must be a string.")
648
+ else:
649
+ self._taginfo["tag"] = t
650
+
651
+ @property
652
+ def tagclass(self):
653
+ return self._taginfo["class"]
654
+
655
+ def set_tagclass(self, tclass):
656
+ if not isinstance(tclass, str) and not isinstance(tclass, unicode):
657
+ raise ValueError("Error... 'class' text must be a string.")
658
+ else:
659
+ self._taginfo["class"] = tclass
660
+
661
+ @property
662
+ def tagid(self):
663
+ return self._taginfo["id"]
664
+
665
+ def set_tagid(self, tid):
666
+ if not isinstance(tid, str) and not isinstance(tid, unicode):
667
+ raise ValueError("Error... 'id' text must be a string.")
668
+ else:
669
+ self._taginfo["id"] = tid
670
+
671
+ @property
672
+ def tagstyle(self):
673
+ return self._taginfo["style"]
674
+
675
+ def set_tagstyle(self, tstyle):
676
+ if not isinstance(tstyle, str) and not isinstance(tstyle, unicode):
677
+ raise ValueError("Error... 'style' text must be a string.")
678
+ else:
679
+ self._taginfo["style"] = tstyle
680
+
681
+ @property
682
+ def tagtext(self):
683
+ return self._taginfo["text"]
684
+
685
+ def set_tagtext(self, ttext):
686
+ if not isinstance(ttext, str) and not isinstance(ttext, unicode):
687
+ raise ValueError("Error... tag text must be a string.")
688
+ else:
689
+ self._taginfo["text"] = ttext
690
+
691
+ @property
692
+ def tagextra(self):
693
+ return self._taginfo["extra"]
694
+
695
+ def set_tagextra(self, textra):
696
+ if not isinstance(textra, str) and not isinstance(textra, unicode):
697
+ raise ValueError("Error... 'extra' tag text must be a string.")
698
+ else:
699
+ space = "" # add no space
700
+ if len(textra) > 0:
701
+ space = " " # add a space
702
+ self._taginfo["extra"] = space + textra
703
+
704
+ @property
705
+ def taginfo(self):
706
+ return self._taginfo
707
+
708
+ @property
709
+ def text(self):
710
+ # return the full tag
711
+ return self._tagdata.format(**self.taginfo)
712
+
713
+ def __str__(self):
714
+ return self.text
715
+
716
+
717
+ class atag(htmltag):
718
+ """
719
+ Class for a link tag
720
+ """
721
+
722
+ def __init__(self, link, linktext="", linkclass="", linkid="", linkstyle=""):
723
+ """
724
+ Input the link and the text that the link surrounds
725
+ """
726
+ if linktext == "": # if no link text is given then just use the link itself
727
+ linktext = link
728
+
729
+ htmltag.__init__(self, "a", linktext, linkclass, linkid, linkstyle)
730
+ self.set_tagextra('href="{}"'.format(link)) # add href
731
+
732
+
733
+ class htmltable(htmltag):
734
+ """
735
+ Class to make and return a html table
736
+ """
737
+
738
+ def __init__(self, tag="table", tableclass="", tableid="", tablestyle=""):
739
+ htmltag.__init__(
740
+ self, "table", tagclass=tableclass, tagid=tableid, tagstyle=tablestyle
741
+ )
742
+
743
+ self._rows = []
744
+ self._nrows = 0 # number of rows
745
+ self._thisrow = -1 # the index of the current row given row additions
746
+
747
+ @property
748
+ def tabletext(self):
749
+ innertable = ""
750
+ for row in self._rows:
751
+ rowtxt = ""
752
+ for data in row["data"]:
753
+ td = "td"
754
+ if data["header"]:
755
+ td = "th" # use header <th> tags for this value
756
+ datatag = htmltag(
757
+ td, data["text"], data["class"], data["id"], data["style"]
758
+ )
759
+ datatag.set_tagextra(
760
+ 'rowspan="{rowspan}" colspan="{colspan}"'.format(**data)
761
+ )
762
+ rowtxt += datatag.text + " " # add space between <td> elements
763
+ rowtag = htmltag(
764
+ "tr", rowtxt, row["class"], row["id"], row["style"], newline=True
765
+ )
766
+ innertable += rowtag.text
767
+ self.set_tagtext(innertable)
768
+ return self.text
769
+
770
+ def addrow(self, rowclass="", rowid="", rowstyle=""):
771
+ """
772
+ Add a new empty row dictionary to the list and increment the current row index
773
+ """
774
+ row = {"data": [], "class": rowclass, "id": rowid, "style": rowstyle}
775
+ self._rows.append(row)
776
+ self._nrows += 1 # number of rows
777
+ self._thisrow += 1 # the index of the row that has just been added
778
+
779
+ def deleterow(self, rowidx):
780
+ """
781
+ Delete a row
782
+ """
783
+ if rowidx > self._nrows - 1:
784
+ print(
785
+ "Warning... cannot delete row '%d'. Only %d row in table."
786
+ % (rowdix, self._nrows)
787
+ )
788
+ else:
789
+ self._rows.pop(rowidx) # remove row
790
+ self._nrows -= 1
791
+ self._thisrow -= 1
792
+
793
+ def adddata(
794
+ self,
795
+ datatext,
796
+ dataclass="",
797
+ dataid="",
798
+ datastyle="",
799
+ header=False,
800
+ rowspan=0,
801
+ colspan=0,
802
+ rowidx=None,
803
+ ):
804
+ """
805
+ Add table data <td> (or <th> is header is True) tags to a given row
806
+ """
807
+ if rowidx is None:
808
+ rowidx = self._thisrow
809
+
810
+ if rowidx > len(self._rows) - 1:
811
+ raise ValueError("Warning... row index is out of range.")
812
+ else:
813
+ td = {
814
+ "text": datatext,
815
+ "class": dataclass,
816
+ "id": dataid,
817
+ "style": datastyle,
818
+ "header": header,
819
+ "rowspan": "",
820
+ "colspan": "",
821
+ }
822
+ if rowspan > 0:
823
+ td["rowspan"] = str(int(rowspan))
824
+ if colspan > 0:
825
+ td["colspan"] = str(int(colspan))
826
+
827
+ self._rows[rowidx]["data"].append(td)
828
+
829
+ def __str__(self):
830
+ return self.tabletxt
831
+
832
+
833
+ class latextable:
834
+ """
835
+ Class to make a return a LaTeX table
836
+ """
837
+
838
+ def __init__(
839
+ self,
840
+ ncolumns=1,
841
+ columnalign="c",
842
+ caption="",
843
+ label="",
844
+ floatval="h",
845
+ preamble="",
846
+ postamble="",
847
+ ):
848
+ """
849
+ Create a table environment with `ncolumns` columns positioned with `columnpos`
850
+ """
851
+ self._tableinfo = {} # dictionary containing the table data
852
+
853
+ self.set_ncolumns(ncolumns) # set number of columns
854
+ self.set_columnalign(columnalign) # set column text alignment
855
+ self.set_caption(caption) # set table caption
856
+ self.set_label(label) # set table label
857
+ self.set_floatval(floatval) # set floating environment position
858
+ self.set_preamble(preamble) # set any preamble before the tabular environment
859
+ self.set_postamble(
860
+ postamble
861
+ ) # set any text to go after the tabular environment
862
+
863
+ self._rows = [] # a list of row data
864
+ self._nrows = 0 # number of rows
865
+ self._thisrow = -1 # the index of the current row given row additions
866
+
867
+ # set the table format
868
+ self._tableformat = "\\begin{{table}}{{{floatval}}}\n{preamble}\\caption{{{caption}\\label{{{label}}}}}\n\\begin{{tabular}}{{{columnalign}}}\n{table}\n\\end{{tabular}}\n{postamble}\n\\end{{table}}"
869
+ self._tableinfo["data"] = ""
870
+
871
+ def set_ncolumns(self, ncolumns):
872
+ # set number of columns in table
873
+ self._ncolumns = ncolumns
874
+
875
+ def set_columnalign(self, columnalign):
876
+ # set the alignment of data within each column (if a list then this should be equal in length to ncolumns)
877
+ if isinstance(columnalign, list):
878
+ if len(columnalign) != self._ncolumns:
879
+ raise ValueError(
880
+ "Error... number of column alignments is not equal to the number of columns."
881
+ )
882
+ else:
883
+ for ca in columnalign:
884
+ if not isinstance(ca, str) and not isinstance(ca, unicode):
885
+ raise TypeError(
886
+ "Error... columnalign must be a list of strings."
887
+ )
888
+
889
+ self._columnalign = columnalign
890
+ else:
891
+ if isinstance(columnalign, str) or isinstance(columnalign, unicode):
892
+ if len(columnalign) == 1:
893
+ self._columnalign = [columnalign for _ in range(self._ncolumns)]
894
+ else:
895
+ self._columnalign = [columnalign]
896
+ else:
897
+ raise TypeError("Error... columnalign must be a list or a string.")
898
+
899
+ self._tableinfo["columnalign"] = " ".join(self._columnalign)
900
+
901
+ def set_label(self, label):
902
+ # set the label
903
+ self._tableinfo["label"] = label
904
+
905
+ @property
906
+ def label(self):
907
+ return self._tableinfo["label"]
908
+
909
+ def set_caption(self, caption):
910
+ # set the table caption
911
+ self._tableinfo["caption"] = caption
912
+
913
+ @property
914
+ def caption(self):
915
+ return self._tableinfo["caption"]
916
+
917
+ def set_floatval(self, floatval):
918
+ # set the floating environment position
919
+ self._tableinfo["floatval"] = floatval
920
+
921
+ def set_preamble(self, preamble):
922
+ # set any preamble before the tabular environment
923
+ self._tableinfo["preamble"] = preamble
924
+
925
+ @property
926
+ def preamble(self):
927
+ return self._tableinfo["preamble"]
928
+
929
+ def set_postamble(self, postamble):
930
+ # set any text to go after the tabular environment
931
+ self._tableinfo["postamble"] = postamble
932
+
933
+ @property
934
+ def postamble(self):
935
+ return self._tableinfo["postamble"]
936
+
937
+ def addrow(self, underline=False):
938
+ # add an empty row (underline will add a horizontal rule below the row)
939
+ row = {"data": [], "underline": underline}
940
+ self._rows.append(row)
941
+ self._nrows += 1 # number of rows
942
+ self._thisrow += 1 # the index of the row that has just been added
943
+
944
+ def addhrule(self, rowidx=None):
945
+ # add horizontal rule
946
+ if rowidx == None: # add horizontal rule as new row
947
+ self.addrow(underline=True)
948
+ else:
949
+ self._rows[rowidx]["underline"] = True
950
+
951
+ def adddata(self, datatxt, multicolumn=0, mcalign="c", rowidx=None):
952
+ # add data to a row
953
+ if rowidx is None:
954
+ rowidx = self._thisrow
955
+
956
+ if rowidx > len(self._rows) - 1:
957
+ raise ValueError("Warning... row index is out of range.")
958
+ else:
959
+ rowdata = {"text": datatxt}
960
+ if multicolumn != 0:
961
+ rowdata["multicolumn"] = multicolumn
962
+ rowdata["mcalign"] = mcalign
963
+
964
+ self._rows[rowidx]["data"].append(rowdata)
965
+
966
+ @property
967
+ def tabletext(self):
968
+ # output the full table
969
+ self._tableinfo["table"] = ""
970
+ for i, row in enumerate(self._rows):
971
+ rowtxt = []
972
+ ncols = 0
973
+ for data in row["data"]:
974
+ val = data["text"]
975
+ if isinstance(val, float) or isinstance(
976
+ val, int
977
+ ): # if a number convert into a string
978
+ val = repr(val)
979
+ if "multicolumn" in data:
980
+ ncols += data["multicolumn"]
981
+ rowtxt.append(
982
+ "\\multicolumn{%d}{%s}{%s} "
983
+ % (data["multicolumn"], data["mcalign"], val)
984
+ )
985
+ else:
986
+ ncols += 1
987
+ rowtxt.append(val + " ")
988
+ if ncols != self._ncolumns and (
989
+ len(rowtxt) != 0 and row["underline"] == False
990
+ ):
991
+ raise ValueError("Error... too many or too few inputs in row '%d'." % i)
992
+ if len(rowtxt) != 0:
993
+ self._tableinfo["table"] += "&".join(rowtxt) + "\\\n"
994
+ if row["underline"]: # add horizontal rule below row
995
+ self._tableinfo["table"] += "\\hline\n"
996
+
997
+ self._tabletext = self._tableformat.format(**self._tableinfo)
998
+ return self._tabletext
999
+
1000
+
1001
+ # convert a floating point number into a string in X.X x 10^Z format
1002
+ def exp_str(f, p=1, otype="html"):
1003
+ if p > 16:
1004
+ print("Precision must be less than 16 d.p.", file=sys.stderr)
1005
+ p = 16
1006
+
1007
+ s = "%.16e" % f
1008
+ ssplit = s.split("e")
1009
+ if otype.lower() == "html": # output html format
1010
+ return "%.*f&times;10<sup>%d</sup>" % (p, float(ssplit[0]), int(ssplit[1]))
1011
+ elif otype.lower() == "latex": # output LaTeX format
1012
+ return "\\ensuremath{%.*f\\!\\times\\!10^{%d}}" % (
1013
+ p,
1014
+ float(ssplit[0]),
1015
+ int(ssplit[1]),
1016
+ )
1017
+ else:
1018
+ raise ValueError("Error... 'otype' must be 'html' or 'latex'.")
1019
+
1020
+
1021
+ # convert a right ascension string in format 'hh:mm:ss.s' to a html/LaTeX string like H^h M^m S^s.ss
1022
+ def ra_str(ra, otype="html"):
1023
+ if isinstance(ra, str):
1024
+ hms = ra.split(":")
1025
+ elif isinstance(ra, float):
1026
+ hms = [str(v) for v in rad_to_hms(ra)]
1027
+ else:
1028
+ raise ValueError("Error... ra must be a string or a float.")
1029
+
1030
+ if len(hms) == 1:
1031
+ hms.append("0")
1032
+ hms.append("0")
1033
+ elif len(hms) == 2:
1034
+ hms.append("0")
1035
+
1036
+ ss = ("%.2f" % float(hms[2])).split(".")
1037
+
1038
+ if otype.lower() == "html": # return html string
1039
+ return "%s<sup>h</sup>%s<sup>m</sup>%s<sup>s</sup>.%s" % (
1040
+ hms[0].zfill(2),
1041
+ hms[1].zfill(2),
1042
+ ss[0].zfill(2),
1043
+ ss[1].zfill(2),
1044
+ )
1045
+ elif otype.lower() == "latex": # return LaTeX string
1046
+ return "$%s^{\\rm h}%s^{\\rm m}%s^{\\rm s}\\!.%s$" % (
1047
+ hms[0].zfill(2),
1048
+ hms[1].zfill(2),
1049
+ ss[0].zfill(2),
1050
+ ss[1].zfill(2),
1051
+ )
1052
+ else:
1053
+ raise ValueError("Error... 'otype' input must be 'html' or 'latex'")
1054
+
1055
+
1056
+ # convert a declination string in format 'dd:mm:ss.s' to a html/LaTeX string like dd^o mm' ss''.ss
1057
+ def dec_str(dec, otype="html"):
1058
+ if isinstance(dec, str):
1059
+ dms = dec.split(":")
1060
+ elif isinstance(dec, float):
1061
+ dms = [str(v) for v in rad_to_dms(dec)]
1062
+ else:
1063
+ raise ValueError("Error... dec must be a string or a float.")
1064
+
1065
+ if len(dms) == 1:
1066
+ dms.append("0")
1067
+ dms.append("0")
1068
+ elif len(dms) == 2:
1069
+ dms.append("0")
1070
+
1071
+ ss = ("%.2f" % float(dms[2])).split(".")
1072
+
1073
+ if otype.lower() == "html": # html output
1074
+ return "%s&deg;%s'%s\".%s" % (
1075
+ (re.sub(r"\+", "", dms[0])).zfill(2),
1076
+ dms[1].zfill(2),
1077
+ ss[0].zfill(2),
1078
+ ss[1].zfill(2),
1079
+ )
1080
+ elif otype.lower() == "latex": # LaTeX output
1081
+ return "$%s^{\\circ}%s'%s''\\!.%s$" % (
1082
+ (re.sub(r"\+", "", dms[0])).zfill(2),
1083
+ dms[1].zfill(2),
1084
+ ss[0].zfill(2),
1085
+ ss[1].zfill(2),
1086
+ )
1087
+ else:
1088
+ raise ValueError("Error... 'otype' must be 'html' or 'latex'.")
1089
+
1090
+
1091
+ """
1092
+ CSS files for results pages
1093
+ """
1094
+
1095
+ # css file for the standard individual pulsar result page
1096
+ result_page_css = """
1097
+ /* create body style */
1098
+ body {
1099
+ font-family: "Avant Garde", Avantegarde, Verdana, Geneva, "Trebuchet MS", sans-serif;
1100
+ }
1101
+
1102
+ /* create header name style */
1103
+ h1 {
1104
+ margin: 0px 0px 0px 0px;
1105
+ padding: 4px 4px 8px 4px;
1106
+ font-size: 20px;
1107
+ font-weight: bold;
1108
+ letter-spacing: 0px;
1109
+ font-family: "Avant Garde", Avantegarde, Verdana, Geneva, "Trebuchet MS", Sans-Serif;
1110
+ background-color: darkolivegreen;
1111
+ }
1112
+
1113
+ h1 > a:link {
1114
+ color: white;
1115
+ text-shadow: 2px 2px 2px #1c2310;
1116
+ text-decoration: none;
1117
+ }
1118
+
1119
+ h1 > a:visited {
1120
+ color: white;
1121
+ text-shadow: 2px 2px 2px #1c2310;
1122
+ text-decoration: none;
1123
+ }
1124
+
1125
+ h1 > a:hover {
1126
+ color: white;
1127
+ text-shadow: 2px 2px 2px #7fa046;
1128
+ text-decoration: none;
1129
+ }
1130
+
1131
+ h2 {
1132
+ margin: 0 0 8px 0;
1133
+ padding: 4px 4px 8px 4px;
1134
+ font-size: 16px;
1135
+ font-weight: bold;
1136
+ font-family: "Avant Garde", Avantegarde, Verdana, Geneva, "Trebuchet MS", Sans-Serif;
1137
+ text-shadow: 1px 1px 1px #333300;
1138
+ background-color: #666600;
1139
+ color: white
1140
+ }
1141
+
1142
+ /* create footer style */
1143
+ #footer {
1144
+ border-top: 1px solid #999;
1145
+ padding: 15px;
1146
+ font-family: monospace;
1147
+ text-align: left;
1148
+ }
1149
+
1150
+ /* create a class for a posterior plot image */
1151
+ .posplot{
1152
+ height: 400px;
1153
+ border: 0px solid #999;
1154
+ }
1155
+
1156
+ /* create a class for a full joint posterior plot image */
1157
+ .jointplot{
1158
+ height: 600px;
1159
+ border: 0px solid #999;
1160
+ }
1161
+
1162
+ /* create a class for a background distribution plot image */
1163
+ .backgroundplot{
1164
+ height: 400px;
1165
+ border: 0px solid #999;
1166
+ }
1167
+
1168
+ /* create a class for a Bk data plot */
1169
+ .dataplot{
1170
+ height: 275px;
1171
+ }
1172
+
1173
+ /* create class for an amplitude spectral density plot */
1174
+ .asdplot{
1175
+ height: 275px;
1176
+ }
1177
+
1178
+ /* create class for an MCMC chain plot */
1179
+ .chainplot{
1180
+ height: 275px;
1181
+ }
1182
+
1183
+ /* style for links list */
1184
+ .pagelinks {
1185
+ background-color: darkolivegreen;
1186
+ font-family: "Avant Garde", Avantegarde, Verdana, Geneva, "Trebuchet MS", Sans-Serif;
1187
+ overflow: hidden;
1188
+ color: white;
1189
+ font-size: 16px;
1190
+ padding: 0px 0px 3px 3px;
1191
+ margin: 0px 0px 8px 0px;
1192
+ text-shadow: 2px 2px 2px #1c2310;
1193
+ }
1194
+
1195
+ div.pagelinks a:link {
1196
+ color: white;
1197
+ text-shadow: 2px 2px 2px #1c2310;
1198
+ text-decoration: none;
1199
+ }
1200
+
1201
+ div.pagelinks a:visited {
1202
+ color: white;
1203
+ text-shadow: 2px 2px 2px #1c2310;
1204
+ text-decoration: none;
1205
+ }
1206
+
1207
+ div.pagelinks a:hover {
1208
+ color: white;
1209
+ text-shadow: 2px 2px 2px #7fa046;
1210
+ text-decoration: none;
1211
+ }
1212
+
1213
+ /* pulsar parameter table class */
1214
+ .pulsartable {
1215
+ background-color: floralwhite;
1216
+ border: 0px solid;
1217
+ border-radius: 4px;
1218
+ box-shadow: 2px 2px 2px 2px #d8d8d8;
1219
+ -webkit-box-shadow: 2px 2px 2px 2px #d8d8d8;
1220
+ -moz-box-shadow: 2px 2px 2px 2px #d8d8d8;
1221
+ padding: 4px 4px 4px 4px;
1222
+ }
1223
+
1224
+ /* upper limits table class */
1225
+ .limitstable {
1226
+ background-color: floralwhite;
1227
+ border: 0px solid;
1228
+ border-radius: 4px;
1229
+ box-shadow: 2px 2px 2px 2px #d8d8d8;
1230
+ -webkit-box-shadow: 2px 2px 2px 2px #d8d8d8;
1231
+ -moz-box-shadow: 2px 2px 2px 2px #d8d8d8;
1232
+ padding: 4px 4px 4px 4px;
1233
+ }
1234
+
1235
+ /* background evidence table class */
1236
+ .evidencetable {
1237
+ background-color: floralwhite;
1238
+ border: 0px solid;
1239
+ border-radius: 4px;
1240
+ box-shadow: 2px 2px 2px 2px #d8d8d8;
1241
+ -webkit-box-shadow: 2px 2px 2px 2px #d8d8d8;
1242
+ -moz-box-shadow: 2px 2px 2px 2px #d8d8d8;
1243
+ padding: 4px 4px 4px 4px;
1244
+ }
1245
+
1246
+ /* set defaults for table data and table headers */
1247
+ table{
1248
+ border: 0px;
1249
+ border-collapse: collapse;
1250
+ }
1251
+
1252
+ td{
1253
+ padding: 0px 8px 0px 8px;
1254
+ border: 0px;
1255
+ }
1256
+
1257
+ th{
1258
+ padding: 0px 8px 0px 8px;
1259
+ border: 0px;
1260
+ }
1261
+
1262
+ .leftborder{
1263
+ border-left: 1px solid #000;
1264
+ }
1265
+
1266
+ .rightborder{
1267
+ border-right: 1px solid #000;
1268
+ }
1269
+
1270
+ .topborder{
1271
+ border-top: 1px solid #000;
1272
+ }
1273
+
1274
+ .bottomborder{
1275
+ border-bottom: 1px solid #000;
1276
+ }
1277
+
1278
+ /* set text colour classes for detectors */
1279
+ .H1{
1280
+ color: red;
1281
+ }
1282
+
1283
+ .H2{
1284
+ color: cyan;
1285
+ }
1286
+
1287
+ .L1{
1288
+ color: green;
1289
+ }
1290
+
1291
+ .V1{
1292
+ color: blue;
1293
+ }
1294
+
1295
+ .G1{
1296
+ color: magenta;
1297
+ }
1298
+
1299
+ .Joint{
1300
+ color: black;
1301
+ font-weight: bold;
1302
+ }
1303
+ """
1304
+
1305
+
1306
+ # create css file text for the tables of all results
1307
+ results_table_css = """
1308
+ /* create body style */
1309
+ body {
1310
+ font-family: Verdana, Geneva, "Trebuchet MS", sans-serif;
1311
+ }
1312
+
1313
+ /* create footer style */
1314
+ #footer {
1315
+ border-top: 1px solid #999;
1316
+ padding: 15px;
1317
+ font-family: monospace;
1318
+ text-align: left;
1319
+ }
1320
+
1321
+ /* create link style */
1322
+ a:link{
1323
+ color: #000000;
1324
+ text-decoration: none;
1325
+ }
1326
+
1327
+ a:visited{
1328
+ color: #000000;
1329
+ text-decoration: none;
1330
+ }
1331
+
1332
+ a:hover{
1333
+ color: #000000;
1334
+ text-decoration: none;
1335
+ text-shadow: 2px 2px 2px #ccc;
1336
+ }
1337
+
1338
+ /* set defaults for table data and table headers */
1339
+ table{
1340
+ border: 0px;
1341
+ border-collapse: collapse;
1342
+ }
1343
+
1344
+ td{
1345
+ padding: 0px 8px 0px 8px;
1346
+ border: 0px;
1347
+ }
1348
+
1349
+ th{
1350
+ padding: 0px 8px 0px 8px;
1351
+ border: 0px;
1352
+ }
1353
+
1354
+ .leftborder{
1355
+ border-left: 1px solid #000;
1356
+ }
1357
+
1358
+ .rightborder{
1359
+ border-right: 1px solid #000;
1360
+ }
1361
+
1362
+ .topborder{
1363
+ border-top: 1px solid #000;
1364
+ }
1365
+
1366
+ .bottomborder{
1367
+ border-bottom: 1px solid #000;
1368
+ }
1369
+
1370
+ /* set text colour classes for detectors */
1371
+ .H1{
1372
+ color: red;
1373
+ }
1374
+
1375
+ .H2{
1376
+ color: cyan;
1377
+ }
1378
+
1379
+ .L1{
1380
+ color: green;
1381
+ }
1382
+
1383
+ .V1{
1384
+ color: blue;
1385
+ }
1386
+
1387
+ .G1{
1388
+ color: magenta;
1389
+ }
1390
+
1391
+ .Joint{
1392
+ color: black;
1393
+ font-weight: bold;
1394
+ }
1395
+ """