redback 1.0.2__tar.gz → 1.0.31__tar.gz

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 (203) hide show
  1. {redback-1.0.2 → redback-1.0.31}/PKG-INFO +42 -5
  2. {redback-1.0.2 → redback-1.0.31}/README.md +1 -1
  3. {redback-1.0.2 → redback-1.0.31}/redback/__init__.py +1 -1
  4. {redback-1.0.2 → redback-1.0.31}/redback/constraints.py +15 -0
  5. {redback-1.0.2 → redback-1.0.31}/redback/eos.py +1 -0
  6. {redback-1.0.2 → redback-1.0.31}/redback/get_data/fink.py +1 -1
  7. {redback-1.0.2 → redback-1.0.31}/redback/model_library.py +2 -2
  8. redback-1.0.31/redback/priors/bazin_sne.prior +5 -0
  9. redback-1.0.31/redback/priors/csm_shock_and_arnett.prior +11 -0
  10. redback-1.0.31/redback/priors/csm_shock_and_arnett_bolometric.prior +10 -0
  11. redback-1.0.31/redback/priors/csm_shock_breakout.prior +7 -0
  12. {redback-1.0.2 → redback-1.0.31}/redback/priors/nicholl_bns.prior +2 -1
  13. redback-1.0.31/redback/priors/pwn.prior +7 -0
  14. redback-1.0.31/redback/priors/shocked_cocoon.prior +8 -0
  15. redback-1.0.31/redback/priors/sn_fallback.prior +8 -0
  16. redback-1.0.31/redback/priors/stream_stream_tde.prior +10 -0
  17. redback-1.0.31/redback/priors/stream_stream_tde_bolometric.prior +9 -0
  18. redback-1.0.31/redback/priors/tde_fallback.prior +9 -0
  19. redback-1.0.31/redback/priors/tde_fallback_bolometric.prior +6 -0
  20. redback-1.0.31/redback/priors/tde_synchrotron.prior +6 -0
  21. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_comp_kne_rosswog_heatingrate.prior +2 -2
  22. redback-1.0.31/redback/priors/villar_sne.prior +7 -0
  23. {redback-1.0.2 → redback-1.0.31}/redback/priors.py +1 -1
  24. {redback-1.0.2 → redback-1.0.31}/redback/simulate_transients.py +11 -4
  25. redback-1.0.31/redback/tables/GRBs_w_redshift.txt +430 -0
  26. {redback-1.0.2 → redback-1.0.31}/redback/tables/LGRB_table.txt +70 -6
  27. redback-1.0.31/redback/tables/SGRB_table.txt +139 -0
  28. redback-1.0.31/redback/tables/qdot_rosswogkorobkin24.pck +0 -0
  29. {redback-1.0.2 → redback-1.0.31}/redback/transient/afterglow.py +14 -5
  30. {redback-1.0.2 → redback-1.0.31}/redback/transient/kilonova.py +5 -2
  31. {redback-1.0.2 → redback-1.0.31}/redback/transient/prompt.py +14 -4
  32. {redback-1.0.2 → redback-1.0.31}/redback/transient/supernova.py +6 -2
  33. {redback-1.0.2 → redback-1.0.31}/redback/transient/tde.py +5 -2
  34. {redback-1.0.2 → redback-1.0.31}/redback/transient/transient.py +27 -10
  35. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/afterglow_models.py +110 -146
  36. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/combined_models.py +39 -33
  37. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/extinction_models.py +1 -2
  38. redback-1.0.31/redback/transient_models/general_synchrotron_models.py +518 -0
  39. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/integrated_flux_afterglow_models.py +2 -2
  40. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/kilonova_models.py +88 -72
  41. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/magnetar_models.py +1 -1
  42. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/phenomenological_models.py +57 -2
  43. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/shock_powered_models.py +159 -110
  44. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/supernova_models.py +161 -7
  45. redback-1.0.31/redback/transient_models/tde_models.py +1469 -0
  46. {redback-1.0.2 → redback-1.0.31}/redback/utils.py +28 -12
  47. {redback-1.0.2 → redback-1.0.31}/redback.egg-info/PKG-INFO +42 -5
  48. {redback-1.0.2 → redback-1.0.31}/redback.egg-info/SOURCES.txt +15 -0
  49. redback-1.0.31/redback.egg-info/requires.txt +27 -0
  50. redback-1.0.31/setup.py +57 -0
  51. redback-1.0.2/redback/priors/shocked_cocoon.prior +0 -8
  52. redback-1.0.2/redback/tables/GRBs_w_redshift.txt +0 -413
  53. redback-1.0.2/redback/tables/SGRB_table.txt +0 -135
  54. redback-1.0.2/redback/transient_models/tde_models.py +0 -624
  55. redback-1.0.2/setup.py +0 -23
  56. {redback-1.0.2 → redback-1.0.31}/LICENCE.md +0 -0
  57. {redback-1.0.2 → redback-1.0.31}/redback/analysis.py +0 -0
  58. {redback-1.0.2 → redback-1.0.31}/redback/constants.py +0 -0
  59. {redback-1.0.2 → redback-1.0.31}/redback/ejecta_relations.py +0 -0
  60. {redback-1.0.2 → redback-1.0.31}/redback/filters.py +0 -0
  61. {redback-1.0.2 → redback-1.0.31}/redback/get_data/__init__.py +0 -0
  62. {redback-1.0.2 → redback-1.0.31}/redback/get_data/batse.py +0 -0
  63. {redback-1.0.2 → redback-1.0.31}/redback/get_data/directory.py +0 -0
  64. {redback-1.0.2 → redback-1.0.31}/redback/get_data/fermi.py +0 -0
  65. {redback-1.0.2 → redback-1.0.31}/redback/get_data/getter.py +0 -0
  66. {redback-1.0.2 → redback-1.0.31}/redback/get_data/konus.py +0 -0
  67. {redback-1.0.2 → redback-1.0.31}/redback/get_data/lasair.py +0 -0
  68. {redback-1.0.2 → redback-1.0.31}/redback/get_data/open_data.py +0 -0
  69. {redback-1.0.2 → redback-1.0.31}/redback/get_data/swift.py +0 -0
  70. {redback-1.0.2 → redback-1.0.31}/redback/get_data/utils.py +0 -0
  71. {redback-1.0.2 → redback-1.0.31}/redback/interaction_processes.py +0 -0
  72. {redback-1.0.2 → redback-1.0.31}/redback/likelihoods.py +0 -0
  73. {redback-1.0.2 → redback-1.0.31}/redback/photosphere.py +0 -0
  74. {redback-1.0.2 → redback-1.0.31}/redback/plot_styles/paper.mplstyle +0 -0
  75. {redback-1.0.2 → redback-1.0.31}/redback/plotting.py +0 -0
  76. {redback-1.0.2 → redback-1.0.31}/redback/priors/alternativepowerlaw_redback.prior +0 -0
  77. {redback-1.0.2 → redback-1.0.31}/redback/priors/alternativepowerlaw_redback_refreshed.prior +0 -0
  78. {redback-1.0.2 → redback-1.0.31}/redback/priors/arnett.prior +0 -0
  79. {redback-1.0.2 → redback-1.0.31}/redback/priors/arnett_bolometric.prior +0 -0
  80. {redback-1.0.2 → redback-1.0.31}/redback/priors/basic_magnetar.prior +0 -0
  81. {redback-1.0.2 → redback-1.0.31}/redback/priors/basic_magnetar_powered.prior +0 -0
  82. {redback-1.0.2 → redback-1.0.31}/redback/priors/basic_magnetar_powered_bolometric.prior +0 -0
  83. {redback-1.0.2 → redback-1.0.31}/redback/priors/basic_mergernova.prior +0 -0
  84. {redback-1.0.2 → redback-1.0.31}/redback/priors/bulla_bns_kilonova.prior +0 -0
  85. {redback-1.0.2 → redback-1.0.31}/redback/priors/bulla_nsbh_kilonova.prior +0 -0
  86. {redback-1.0.2 → redback-1.0.31}/redback/priors/cocoon.prior +0 -0
  87. {redback-1.0.2 → redback-1.0.31}/redback/priors/collapsing_magnetar.prior +0 -0
  88. {redback-1.0.2 → redback-1.0.31}/redback/priors/collapsing_radiative_losses.prior +0 -0
  89. {redback-1.0.2 → redback-1.0.31}/redback/priors/cone_afterglow.prior +0 -0
  90. {redback-1.0.2 → redback-1.0.31}/redback/priors/cooling_envelope.prior +0 -0
  91. {redback-1.0.2 → redback-1.0.31}/redback/priors/csm_interaction.prior +0 -0
  92. {redback-1.0.2 → redback-1.0.31}/redback/priors/csm_nickel.prior +0 -0
  93. {redback-1.0.2 → redback-1.0.31}/redback/priors/doublegaussian_redback.prior +0 -0
  94. {redback-1.0.2 → redback-1.0.31}/redback/priors/doublegaussian_redback_refreshed.prior +0 -0
  95. {redback-1.0.2 → redback-1.0.31}/redback/priors/evolving_magnetar.prior +0 -0
  96. {redback-1.0.2 → redback-1.0.31}/redback/priors/evolving_magnetar_only.prior +0 -0
  97. {redback-1.0.2 → redback-1.0.31}/redback/priors/exponential_powerlaw_bolometric.prior +0 -0
  98. {redback-1.0.2 → redback-1.0.31}/redback/priors/five_component_powerlaw.prior +0 -0
  99. {redback-1.0.2 → redback-1.0.31}/redback/priors/four_component_powerlaw.prior +0 -0
  100. {redback-1.0.2 → redback-1.0.31}/redback/priors/full_magnetar.prior +0 -0
  101. {redback-1.0.2 → redback-1.0.31}/redback/priors/full_vacuum_dipole_magnetar.prior +0 -0
  102. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussian.prior +0 -0
  103. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussian_redback.prior +0 -0
  104. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussian_redback_refreshed.prior +0 -0
  105. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussiancore.prior +0 -0
  106. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussianrise_cooling_envelope.prior +0 -0
  107. {redback-1.0.2 → redback-1.0.31}/redback/priors/gaussianrise_cooling_envelope_bolometric.prior +0 -0
  108. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_magnetar.prior +0 -0
  109. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_magnetar_driven_supernova.prior +0 -0
  110. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_magnetar_driven_supernova_bolometric.prior +0 -0
  111. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_magnetar_slsn.prior +0 -0
  112. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_mergernova.prior +0 -0
  113. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_mergernova_evolution.prior +0 -0
  114. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_mergernova_thermalisation.prior +0 -0
  115. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_metzger_magnetar_driven.prior +0 -0
  116. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_metzger_magnetar_driven_evolution.prior +0 -0
  117. {redback-1.0.2 → redback-1.0.31}/redback/priors/general_metzger_magnetar_driven_thermalisation.prior +0 -0
  118. {redback-1.0.2 → redback-1.0.31}/redback/priors/gw_magnetar.prior +0 -0
  119. {redback-1.0.2 → redback-1.0.31}/redback/priors/homologous_expansion_supernova.prior +0 -0
  120. {redback-1.0.2 → redback-1.0.31}/redback/priors/kasen_bns_kilonova.prior +0 -0
  121. {redback-1.0.2 → redback-1.0.31}/redback/priors/kilonova_afterglow.prior +0 -0
  122. {redback-1.0.2 → redback-1.0.31}/redback/priors/kilonova_afterglow_nakarpiran.prior +0 -0
  123. {redback-1.0.2 → redback-1.0.31}/redback/priors/kilonova_afterglow_redback.prior +0 -0
  124. {redback-1.0.2 → redback-1.0.31}/redback/priors/magnetar_luminosity_evolution.prior +0 -0
  125. {redback-1.0.2 → redback-1.0.31}/redback/priors/magnetar_nickel.prior +0 -0
  126. {redback-1.0.2 → redback-1.0.31}/redback/priors/magnetar_only.prior +0 -0
  127. {redback-1.0.2 → redback-1.0.31}/redback/priors/metzger_kilonova_model.prior +0 -0
  128. {redback-1.0.2 → redback-1.0.31}/redback/priors/metzger_magnetar_driven_kilonova_model.prior +0 -0
  129. {redback-1.0.2 → redback-1.0.31}/redback/priors/mosfit_kilonova.prior +0 -0
  130. {redback-1.0.2 → redback-1.0.31}/redback/priors/mosfit_rprocess.prior +0 -0
  131. {redback-1.0.2 → redback-1.0.31}/redback/priors/one_comp_kne_rosswog_heatingrate.prior +0 -0
  132. {redback-1.0.2 → redback-1.0.31}/redback/priors/one_component_ejecta_relation.prior +0 -0
  133. {redback-1.0.2 → redback-1.0.31}/redback/priors/one_component_ejecta_relation_projection.prior +0 -0
  134. {redback-1.0.2 → redback-1.0.31}/redback/priors/one_component_kilonova_model.prior +0 -0
  135. {redback-1.0.2 → redback-1.0.31}/redback/priors/one_component_nsbh_ejecta_relation.prior +0 -0
  136. {redback-1.0.2 → redback-1.0.31}/redback/priors/piecewise_radiative_losses.prior +0 -0
  137. {redback-1.0.2 → redback-1.0.31}/redback/priors/polytrope_eos_two_component_bns.prior +0 -0
  138. {redback-1.0.2 → redback-1.0.31}/redback/priors/power_law_stratified_kilonova.prior +0 -0
  139. {redback-1.0.2 → redback-1.0.31}/redback/priors/powerlaw_redback.prior +0 -0
  140. {redback-1.0.2 → redback-1.0.31}/redback/priors/powerlaw_redback_refreshed.prior +0 -0
  141. {redback-1.0.2 → redback-1.0.31}/redback/priors/powerlawcore.prior +0 -0
  142. {redback-1.0.2 → redback-1.0.31}/redback/priors/radiative_losses.prior +0 -0
  143. {redback-1.0.2 → redback-1.0.31}/redback/priors/radiative_losses_mdr.prior +0 -0
  144. {redback-1.0.2 → redback-1.0.31}/redback/priors/radiative_losses_smoothness.prior +0 -0
  145. {redback-1.0.2 → redback-1.0.31}/redback/priors/radiative_only.prior +0 -0
  146. {redback-1.0.2 → redback-1.0.31}/redback/priors/shock_cooling.prior +0 -0
  147. {redback-1.0.2 → redback-1.0.31}/redback/priors/shock_cooling_and_arnett.prior +0 -0
  148. {redback-1.0.2 → redback-1.0.31}/redback/priors/shock_cooling_bolometric.prior +0 -0
  149. {redback-1.0.2 → redback-1.0.31}/redback/priors/shocked_cocoon_bolometric.prior +0 -0
  150. {redback-1.0.2 → redback-1.0.31}/redback/priors/six_component_powerlaw.prior +0 -0
  151. {redback-1.0.2 → redback-1.0.31}/redback/priors/slsn.prior +0 -0
  152. {redback-1.0.2 → redback-1.0.31}/redback/priors/slsn_bolometric.prior +0 -0
  153. {redback-1.0.2 → redback-1.0.31}/redback/priors/smoothpowerlaw.prior +0 -0
  154. {redback-1.0.2 → redback-1.0.31}/redback/priors/sn_exponential_powerlaw.prior +0 -0
  155. {redback-1.0.2 → redback-1.0.31}/redback/priors/tde_analytical.prior +0 -0
  156. {redback-1.0.2 → redback-1.0.31}/redback/priors/tde_analytical_bolometric.prior +0 -0
  157. {redback-1.0.2 → redback-1.0.31}/redback/priors/thermal_synchrotron_fluxdensity.prior +0 -0
  158. {redback-1.0.2 → redback-1.0.31}/redback/priors/thermal_synchrotron_lnu.prior +0 -0
  159. {redback-1.0.2 → redback-1.0.31}/redback/priors/thin_shell_supernova.prior +0 -0
  160. {redback-1.0.2 → redback-1.0.31}/redback/priors/three_component_kilonova_model.prior +0 -0
  161. {redback-1.0.2 → redback-1.0.31}/redback/priors/three_component_powerlaw.prior +0 -0
  162. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat.prior +0 -0
  163. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_and_arnett.prior +0 -0
  164. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_and_twocomponent.prior +0 -0
  165. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_and_twolayerstratified.prior +0 -0
  166. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_from_emulator.prior +0 -0
  167. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_redback.prior +0 -0
  168. {redback-1.0.2 → redback-1.0.31}/redback/priors/tophat_redback_refreshed.prior +0 -0
  169. {redback-1.0.2 → redback-1.0.31}/redback/priors/trapped_magnetar.prior +0 -0
  170. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_component_bns_ejecta_relation.prior +0 -0
  171. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_component_kilonova_model.prior +0 -0
  172. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_component_nsbh_ejecta_relation.prior +0 -0
  173. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_component_powerlaw.prior +0 -0
  174. {redback-1.0.2 → redback-1.0.31}/redback/priors/two_layer_stratified_kilonova.prior +0 -0
  175. {redback-1.0.2 → redback-1.0.31}/redback/priors/twocomponent_redback.prior +0 -0
  176. {redback-1.0.2 → redback-1.0.31}/redback/priors/twocomponent_redback_refreshed.prior +0 -0
  177. {redback-1.0.2 → redback-1.0.31}/redback/priors/type_1a.prior +0 -0
  178. {redback-1.0.2 → redback-1.0.31}/redback/priors/type_1c.prior +0 -0
  179. {redback-1.0.2 → redback-1.0.31}/redback/priors/vacuum_dipole_magnetar_only.prior +0 -0
  180. {redback-1.0.2 → redback-1.0.31}/redback/redback_errors.py +0 -0
  181. {redback-1.0.2 → redback-1.0.31}/redback/result.py +0 -0
  182. {redback-1.0.2 → redback-1.0.31}/redback/sampler.py +0 -0
  183. {redback-1.0.2 → redback-1.0.31}/redback/sed.py +0 -0
  184. {redback-1.0.2 → redback-1.0.31}/redback/tables/BATSE_4B_catalogue.csv +0 -0
  185. {redback-1.0.2 → redback-1.0.31}/redback/tables/BATSE_trigger_table.txt +0 -0
  186. {redback-1.0.2 → redback-1.0.31}/redback/tables/GRBcatalog.sqlite +0 -0
  187. {redback-1.0.2 → redback-1.0.31}/redback/tables/OAC_metadata.csv +0 -0
  188. {redback-1.0.2 → redback-1.0.31}/redback/tables/csm_table.txt +0 -0
  189. {redback-1.0.2 → redback-1.0.31}/redback/tables/filters.csv +0 -0
  190. {redback-1.0.2 → redback-1.0.31}/redback/tables/rubin_baseline_v3.0_10yrs.tar.gz +0 -0
  191. {redback-1.0.2 → redback-1.0.31}/redback/tables/summary_general_swift_bat.txt +0 -0
  192. {redback-1.0.2 → redback-1.0.31}/redback/tables/ztf.tar.gz +0 -0
  193. {redback-1.0.2 → redback-1.0.31}/redback/transient/__init__.py +0 -0
  194. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/__init__.py +0 -0
  195. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/fireball_models.py +0 -0
  196. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/gaussianprocess_models.py +0 -0
  197. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/magnetar_driven_ejecta_models.py +0 -0
  198. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/phase_models.py +0 -0
  199. {redback-1.0.2 → redback-1.0.31}/redback/transient_models/prompt_models.py +0 -0
  200. {redback-1.0.2 → redback-1.0.31}/redback.egg-info/dependency_links.txt +0 -0
  201. {redback-1.0.2 → redback-1.0.31}/redback.egg-info/not-zip-safe +0 -0
  202. {redback-1.0.2 → redback-1.0.31}/redback.egg-info/top_level.txt +0 -0
  203. {redback-1.0.2 → redback-1.0.31}/setup.cfg +0 -0
@@ -1,17 +1,54 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: redback
3
- Version: 1.0.2
3
+ Version: 1.0.31
4
4
  Summary: A Bayesian inference pipeline for electromagnetic transients
5
5
  Home-page: https://github.com/nikhil-sarin/redback
6
6
  Author: Nikhil Sarin, Moritz Huebner
7
- Author-email: nikhil.sarin@su.se
7
+ Author-email: nsarin.astro@gmail.com
8
8
  License: GNU General Public License v3 (GPLv3)
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
11
11
  Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.7
12
+ Requires-Python: >=3.10
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENCE.md
15
+ Requires-Dist: numpy==1.26.0
16
+ Requires-Dist: setuptools
17
+ Requires-Dist: pandas
18
+ Requires-Dist: scipy<1.14.0
19
+ Requires-Dist: selenium
20
+ Requires-Dist: matplotlib
21
+ Requires-Dist: astropy
22
+ Requires-Dist: extinction
23
+ Requires-Dist: requests
24
+ Requires-Dist: lxml
25
+ Requires-Dist: sphinx-rtd-theme
26
+ Requires-Dist: sphinx-tabs
27
+ Requires-Dist: bilby
28
+ Requires-Dist: regex
29
+ Requires-Dist: sncosmo
30
+ Requires-Dist: afterglowpy
31
+ Provides-Extra: all
32
+ Requires-Dist: nestle; extra == "all"
33
+ Requires-Dist: sherpa; extra == "all"
34
+ Requires-Dist: scikit-learn; extra == "all"
35
+ Requires-Dist: PyQt5; extra == "all"
36
+ Requires-Dist: lalsuite; extra == "all"
37
+ Requires-Dist: kilonova-heating-rate; extra == "all"
38
+ Requires-Dist: redback-surrogates; extra == "all"
39
+ Requires-Dist: kilonovanet; extra == "all"
40
+ Requires-Dist: astroquery; extra == "all"
41
+ Dynamic: author
42
+ Dynamic: author-email
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: license
48
+ Dynamic: provides-extra
49
+ Dynamic: requires-dist
50
+ Dynamic: requires-python
51
+ Dynamic: summary
15
52
 
16
53
  [![Documentation Status](https://readthedocs.org/projects/redback/badge/?version=latest)](https://redback.readthedocs.io/en/latest/?badge=latest)
17
54
  ![Python package](https://github.com/nikhil-sarin/redback/workflows/Python%20application/badge.svg)
@@ -45,7 +82,7 @@ Simulate single transients or populations or simulate a full survey including no
45
82
 
46
83
  ### Contributing
47
84
  If you are interested in contributing please join the redback
48
- [slack](https://join.slack.com/t/redback-group/shared_invite/zt-2gp2chjq8-lG15C4YorVW4PmL86dYuVw)
85
+ [slack](https://join.slack.com/t/redback-group/shared_invite/zt-2503mmkaq-EMEAgz7i3mY0pg1o~VUdqw)
49
86
  and email [Nikhil Sarin](mailto:nikhil.sarin@su.se?subject=Contributing%20to%20redback).
50
87
 
51
88
  To make changes to redback, we require users to use a merge request system.
@@ -30,7 +30,7 @@ Simulate single transients or populations or simulate a full survey including no
30
30
 
31
31
  ### Contributing
32
32
  If you are interested in contributing please join the redback
33
- [slack](https://join.slack.com/t/redback-group/shared_invite/zt-2gp2chjq8-lG15C4YorVW4PmL86dYuVw)
33
+ [slack](https://join.slack.com/t/redback-group/shared_invite/zt-2503mmkaq-EMEAgz7i3mY0pg1o~VUdqw)
34
34
  and email [Nikhil Sarin](mailto:nikhil.sarin@su.se?subject=Contributing%20to%20redback).
35
35
 
36
36
  To make changes to redback, we require users to use a merge request system.
@@ -4,5 +4,5 @@ from redback.transient import afterglow, kilonova, prompt, supernova, tde
4
4
  from redback.sampler import fit_model
5
5
  from redback.utils import setup_logger
6
6
 
7
- __version__ = "1.0.2"
7
+ __version__ = "1.0.31"
8
8
  setup_logger(log_level='info')
@@ -65,6 +65,21 @@ def general_magnetar_powered_sn_constraints(parameters):
65
65
  converted_parameters['erot_constraint'] = kinetic_energy/rotational_energy
66
66
  return converted_parameters
67
67
 
68
+ def vacuum_dipole_magnetar_powered_supernova_constraints(parameters):
69
+ """
70
+ Constraint so that magnetar rotational energy is smaller than some number
71
+
72
+ :param parameters: dictionary of parameters
73
+ :return: converted_parameters dictionary where the violated samples are thrown out
74
+ """
75
+ converted_parameters = parameters.copy()
76
+ l0 = parameters['l0']
77
+ tau = parameters['tau_sd']
78
+ rotational_energy = l0*tau
79
+ # ensure rotational energy is less than the maximum spin down energy
80
+ converted_parameters['erot_constraint'] = rotational_energy/1e53
81
+ return converted_parameters
82
+
68
83
  def general_magnetar_powered_supernova_constraints(parameters):
69
84
  """
70
85
  Constraint so that magnetar rotational energy is smaller than some number
@@ -78,6 +78,7 @@ class PiecewisePolytrope(object):
78
78
  radius, mass, k2 = lalsim.SimNeutronStarTOVODEIntegrate(central_pressure, polytrope)
79
79
 
80
80
  Lambda = (2 / 3) * k2 * (cc.c.si.value ** 2 * radius / (cc.G.si.value * mass)) ** 5
81
+ mass = mass / cc.M_sun.si.value
81
82
  return mass, Lambda
82
83
 
83
84
  def lambda_array_of_central_pressure(self, central_pressure_array, maximum_mass_lower_limit=2.01):
@@ -45,7 +45,7 @@ class FinkDataGetter(DataGetter):
45
45
  :return: The fink raw data url.
46
46
  :rtype: str
47
47
  """
48
- return "https://fink-portal.org/api/v1/objects"
48
+ return "https://api.fink-portal.org/api/v1/objects"
49
49
 
50
50
  @property
51
51
  def objectId(self) -> str:
@@ -1,13 +1,13 @@
1
1
  from redback.transient_models import afterglow_models, \
2
2
  extinction_models, kilonova_models, fireball_models, \
3
3
  gaussianprocess_models, magnetar_models, magnetar_driven_ejecta_models, phase_models, phenomenological_models, \
4
- prompt_models, shock_powered_models, supernova_models, tde_models, integrated_flux_afterglow_models, combined_models
4
+ prompt_models, shock_powered_models, supernova_models, tde_models, integrated_flux_afterglow_models, combined_models, general_synchrotron_models
5
5
  from redback.utils import get_functions_dict
6
6
 
7
7
  modules = [afterglow_models, extinction_models, fireball_models,
8
8
  gaussianprocess_models, integrated_flux_afterglow_models, kilonova_models,
9
9
  magnetar_models, magnetar_driven_ejecta_models,
10
- phase_models, phenomenological_models, prompt_models, shock_powered_models, supernova_models, tde_models, combined_models]
10
+ phase_models, phenomenological_models, prompt_models, shock_powered_models, supernova_models, tde_models, combined_models, general_synchrotron_models]
11
11
 
12
12
  all_models_dict = dict()
13
13
  modules_dict = dict()
@@ -0,0 +1,5 @@
1
+ aa = LogUniform(1e-15,1e15,name='aa', latex_label = r'$A$')
2
+ bb = LogUniform(1e-15,1e15,name='bb', latex_label = r'$B$')
3
+ t0 = Uniform(0,50,name='t0', latex_label = r'$t_0$')
4
+ tau_rise = Uniform(0.01, 50, name='tau_rise', latex_label = r'$\\tau_{\\mathrm{rise}}$')
5
+ tau_fall = Uniform(1, 300, name='tau_fall', latex_label = r'$\\tau_{\\mathrm{fall}}$')
@@ -0,0 +1,11 @@
1
+ redshift = Uniform(0.01, 1, 'redshift', latex_label=r'$z$')
2
+ mej = LogUniform(1e-4, 30, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
3
+ f_nickel = LogUniform(1e-3,1,name='f_nickel', latex_label = r'$f_{\mathrm{Ni}}$')
4
+ csm_mass = LogUniform(1e-3, 5, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
5
+ v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
6
+ beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
7
+ kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
8
+ shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
9
+ shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
10
+ kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
11
+ temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
@@ -0,0 +1,10 @@
1
+ mej = LogUniform(1e-4, 30, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
2
+ f_nickel = LogUniform(1e-3,1,name='f_nickel', latex_label = r'$f_{\mathrm{Ni}}$')
3
+ csm_mass = LogUniform(1e-3, 5, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
4
+ v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
5
+ beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
6
+ kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
7
+ shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
8
+ shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
9
+ kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
10
+ temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
@@ -0,0 +1,7 @@
1
+ redshift = Uniform(0.01, 1, 'redshift', latex_label=r'$z$')
2
+ csm_mass = LogUniform(1e-3, 2, 'csm_mass', latex_label=r'$M_{\mathrm{CSM}}~(M_{\odot})$')
3
+ v_min = LogUniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
4
+ beta = Uniform(0.4, 0.5, 'beta', latex_label=r'$\\beta$')
5
+ kappa = Uniform(0.01, 1, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
6
+ shell_radius = Uniform(1e-2, 10, 'shell_radius', latex_label=r'$R_{\mathrm{shell}}~(10^{14}~\mathrm{cm})$')
7
+ shell_width_ratio = Uniform(0.1, 0.5, 'shell_width_ratio', latex_label=r'$\\Delta~R_{\mathrm{shell}}/R_{\mathrm{shell}}$')
@@ -8,7 +8,8 @@ mtov = Uniform(2.05, 2.4, 'mtov', latex_label = r'$M_{\mathrm{TOV}}~(M_\odot)$')
8
8
  epsilon = Uniform(0.05, 0.6, 'zeta', latex_label = r'$\\epsilon$')
9
9
  alpha = Uniform(0.1, 1, 'alpha', latex_label = r'$\\alpha$')
10
10
  cos_theta = Uniform(0.0, 1.0, 'cos_theta', latex_label = r'$\cos~\\theta$')
11
- cos_theta_cocoon = Uniform(0.707, 1.0, 'cos_theta_cocoon', latex_label = r'$\cos~\\theta_{\mathrm{cocoon}}$')
11
+ cos_theta_open = Uniform(0.707, 0.866, 'cos_theta_open', latex_label = r'$\cos~\\theta_{\mathrm{open}}$')
12
+ cos_theta_cocoon = Uniform(0.866, 1.0, 'cos_theta_cocoon', latex_label = r'$\cos~\\theta_{\mathrm{cocoon}}$')
12
13
  temperature_floor_1 = LogUniform(100, 6000, 'temperature_floor_1', latex_label = r'$T_{\mathrm{floor}~1}$ (K)')
13
14
  temperature_floor_2 = LogUniform(100, 6000, 'temperature_floor_2', latex_label = r'$T_{\mathrm{floor}~2}$ (K)')
14
15
  temperature_floor_3 = LogUniform(100, 6000, 'temperature_floor_3', latex_label = r'$T_{\mathrm{floor}~3}$ (K)')
@@ -0,0 +1,7 @@
1
+ redshift = Uniform(1e-6,3,name='redshift', latex_label = r'$z$')
2
+ l0 = LogUniform(1e40, 1e50, 'l0', latex_label = r'$L_{\mathrm{0}} [erg s^{-1}]$')
3
+ tau_sd = LogUniform(1e2, 1e8, 'tau_sd', latex_label = r'$t_{\mathrm{SD}} [s]$')
4
+ nn = LogUniform(1.5, 10, 'nn', latex_label = r'$n$')
5
+ mej = LogUniform(1e-1, 100, 'mej', latex_label = r'$M_{\mathrm{ej}} [M_{\odot}]$')
6
+ eps_b = LogUniform(1e-7, 1, 'eps_b', latex_label = r'$\epsilon_{\mathrm{B}}$')
7
+ gamma_b = LogUniform(1e2, 1e7, 'gamma_b', latex_label = r'$\gamma_{\mathrm{b}}$')
@@ -0,0 +1,8 @@
1
+ redshift = Uniform(1e-3,3,name='redshift', latex_label = r'$z$')
2
+ mej = Uniform(1e-4, 0.2, 'mej', latex_label = r'$M_{\mathrm{ej} }~(M_\odot)$')
3
+ vej = Uniform(0.01, 0.7, 'vej', latex_label = r'$v_{\mathrm{ej}}~(c)$')
4
+ eta = Uniform(1, 5, '\\eta', latex_label = r'$\\eta$')
5
+ tshock = Uniform(0.1, 10, 'tshock', latex_label = r'$t_{\mathrm{shock}}~(\mathrm{s})$')
6
+ shocked_fraction = Uniform(0.01, 1, 'shocked_fraction', latex_label = r'$f_{\mathrm{shocked}}$')
7
+ cos_theta_cocoon = Uniform(0.866, 1.0, 'cos_theta_cocoon', latex_label = r'$\cos~\\theta_{\mathrm{cocoon}}$')
8
+ kappa = Uniform(0.1, 30, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
@@ -0,0 +1,8 @@
1
+ redshift = Uniform(1e-3,3,name='redshift', latex_label = r'$z$')
2
+ logl1 = Uniform(51, 57, name='logl1', latex_label=r'$\log_{10}L_{1} [erg~s^{-1}]$')
3
+ tr = LogUniform(1e-4, 100, name='tr', latex_label=r'T_{r} [day]')
4
+ mej = LogUniform(1e-4, 100, 'mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
5
+ vej = LogUniform(1e3, 1e5, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
6
+ kappa = Uniform(0.05, 2, 'kappa', latex_label = r'$\\kappa~(\mathrm{cm}^{2}/\mathrm{g})$')
7
+ kappa_gamma = LogUniform(1e-4, 1e4, 'kappa_gamma', latex_label = r'$\\kappa_{\\gamma}~(\mathrm{cm}^{2}/\mathrm{g})$')
8
+ temperature_floor = LogUniform(1e3,1e5,name = 'temperature_floor', latex_label = r'$T_{\mathrm{floor}}~(\mathrm{K})$')
@@ -0,0 +1,10 @@
1
+ redshift = Uniform(1e-6, 3, 'redshift', latex_label = r'$z$')
2
+ peak_time = LogUniform(0.1,60, name='peak_time', latex_label = r'$t_{\mathrm{peak}}~(\mathrm{day})$')
3
+ sigma_t = LogUniform(10,60, name='sigma_t', latex_label = r'$\\sigma~(\mathrm{day})$')
4
+ mbh_6 = LogUniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~(10^{6}~M_\odot)$')
5
+ mstar = LogUniform(0.1, 10, name='stellar_mass', latex_label = r'$M_{\mathrm{star}}~(M_\odot)$')
6
+ c1 = 1.0
7
+ del_omega = 2.0
8
+ f = 0.2
9
+ h_r = 0.2
10
+ inc_tcool = 1
@@ -0,0 +1,9 @@
1
+ peak_time = LogUniform(0.1,60, name='peak_time', latex_label = r'$t_{\mathrm{peak}}~(\mathrm{day})$')
2
+ sigma_t = LogUniform(10,60, name='sigma_t', latex_label = r'$\\sigma~(\mathrm{day})$')
3
+ mbh_6 = LogUniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~(10^{6}~M_\odot)$')
4
+ mstar = LogUniform(0.1, 10, name='stellar_mass', latex_label = r'$M_{\mathrm{star}}~(M_\odot)$')
5
+ c1 = 1.0
6
+ del_omega = 2.0
7
+ f = 0.2
8
+ h_r = 0.2
9
+ inc_tcool = 1
@@ -0,0 +1,9 @@
1
+ redshift = Uniform(1e-6, 3, 'redshift', latex_label = r'$z$')
2
+ mbh6 = Uniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~[10^{6}~M_{\odot}]$')
3
+ mstar = Uniform(0.1, 30, name='mstar', latex_label = r'$M_{\mathrm{star}} [M_{\odot}]$')
4
+ tvisc = LogUniform(1e-3, 1e2, name='tvisc', latex_label = r'$t_{\mathrm{visc}}$')
5
+ bb = Uniform(0, 2, name='bb', latex_label = r'$\\beta^{\star}$')
6
+ eta = LogUniform(1e-4, 0.4, name='eta', latex_label=r'$\eta$')
7
+ leddlimit = 1
8
+ rph0 = LogUniform(1e-4, 1e4, name='rph_0', latex_label = r'$R_{\mathrm{ph-0}}$')
9
+ lphoto = Uniform(0, 2, name='lphoto', latex_label = r'$L_{\mathrm{photo}}^{\star}$')
@@ -0,0 +1,6 @@
1
+ mbh6 = Uniform(0.01, 20, name='mbh_6', latex_label = r'$M_{\mathrm{BH}}~[10^{6}~M_{\odot}]$')
2
+ mstar = Uniform(0.1, 30, name='mstar', latex_label = r'$M_{\mathrm{star}} [M_{\odot}]$')
3
+ tvisc = LogUniform(1e-3, 1e2, name='tvisc', latex_label = r'$t_{\mathrm{visc}}$')
4
+ bb = Uniform(0, 2, name='bb', latex_label = r'$\\beta^{\star}$')
5
+ eta = LogUniform(1e-4, 0.4, name='eta', latex_label=r'$\eta$')
6
+ leddlimit = 1
@@ -0,0 +1,6 @@
1
+ redshift = Uniform(0.01, 3, 'redshift', latex_label=r'$z$')
2
+ Mej = Uniform(0.1, 10, 'Mej', latex_label = r'$M_{\mathrm{ej}}~(M_\odot)$')
3
+ vej = Uniform(1e3, 3e4, 'vej', latex_label = r'$v_{\mathrm{ej}}~(\mathrm{km}/\mathrm{s})$')
4
+ logepse = Uniform(-5, 0, 'logepse', latex_label=r'$\log_{10}~\\epsilon_{e}$')
5
+ logepsb = Uniform(-5, 0, 'logepsb', latex_label=r'$\log_{10}~\\epsilon_{B}$')
6
+ p = Uniform(2, 3, 'p', latex_label=r'$p$')
@@ -1,9 +1,9 @@
1
1
  redshift = Uniform(1e-6, 0.1, 'redshift', latex_label = r'$z$')
2
2
  mej_1 = Uniform(1e-2, 0.05, 'mej', latex_label = r'$M_{\mathrm{ej}~1}~(M_\odot)$')
3
3
  vej_1 = Uniform(0.05, 0.3, 'vej', latex_label = r'$v_{\mathrm{ej}~1}~(c)$')
4
- ye_1 = Uniform(0.05, 0.4, 'ye', latex_label = r'$Y_{e}~1$')
4
+ ye_1 = Uniform(0.05, 0.5, 'ye', latex_label = r'$Y_{e~1}$')
5
5
  temperature_floor_1 = LogUniform(100, 6000, 'temperature_floor', latex_label = r'$T_{\mathrm{floor}~1}~(\mathrm{K})$')
6
6
  mej_2 = Uniform(1e-2, 0.05, 'mej', latex_label = r'$M_{\mathrm{ej}~2}~(M_\odot)$')
7
7
  vej_2 = Uniform(0.05, 0.3, 'vej', latex_label = r'$v_{\mathrm{ej}~2}~(c)$')
8
- ye_2 = Uniform(0.05, 0.4, 'ye', latex_label = r'$Y_{e}~2$')
8
+ ye_2 = Uniform(0.05, 0.5, 'ye', latex_label = r'$Y_{e~2}$')
9
9
  temperature_floor_2 = LogUniform(100, 6000, 'temperature_floor', latex_label = r'$T_{\mathrm{floor}~2}~(\mathrm{K})$')
@@ -0,0 +1,7 @@
1
+ aa = LogUniform(1e-15,1e15,name='aa', latex_label = r'$A$')
2
+ cc = LogUniform(1e-15,1e15,name='bb', latex_label = r'$C$')
3
+ t0 = Uniform(0,50,name='t0', latex_label = r'$t_0$')
4
+ tau_rise = Uniform(0.01, 50, name='tau_rise', latex_label = r'$\\tau_{\\mathrm{rise}}$')
5
+ tau_fall = Uniform(1, 300, name='tau_fall', latex_label = r'$\\tau_{\\mathrm{fall}}$')
6
+ gamma = Uniform(0.1, 100, name='gamma', latex_label = r'$\\gamma$')
7
+ nu = Uniform(0, 1, name='nu', latex_label = r'$\\nu$')
@@ -20,7 +20,7 @@ def get_priors(model, times=None, y=None, yerr=None, dt=None, **kwargs):
20
20
  :param kwargs: Extra arguments to be passed to the prior function
21
21
  :return: priors: PriorDict object
22
22
  """
23
- prompt_prior_functions = dict(gaussian=get_gaussian_priors, skew_gaussian=get_skew_gaussian_priors,
23
+ prompt_prior_functions = dict(gaussian_prompt=get_gaussian_priors, skew_gaussian=get_skew_gaussian_priors,
24
24
  skew_exponential=get_skew_exponential_priors, fred=get_fred_priors,
25
25
  fred_extended=get_fred_extended_priors)
26
26
 
@@ -18,7 +18,7 @@ class SimulateGenericTransient(object):
18
18
  """
19
19
  A generic interface to simulating transients
20
20
 
21
- :param model: String corresponding to redback model
21
+ :param model: String corresponding to redback model or a python function that can evaluate an SED.
22
22
  :param parameters: Dictionary of parameters describing a single transient
23
23
  :param times: Time values that the model is evaluated from
24
24
  :param model_kwargs: Additional keyword arguments, must include all the keyword arguments required by the model.
@@ -35,10 +35,13 @@ class SimulateGenericTransient(object):
35
35
  Default is 'gaussianmodel' where sigma is noise_term * model.
36
36
  Another option is 'gaussian' i.e., a simple Gaussian noise with sigma = noise_term.
37
37
  :param noise_term: Float. Factor which is multiplied by the model flux/magnitude to give the sigma
38
- or is sigma itself for 'gaussian' noise.
38
+ or is sigma itself for 'gaussian' noise. Or the SNR for 'SNRbased' noise.
39
39
  :param extra_scatter: Float. Sigma of normal added to output for additional scatter.
40
40
  """
41
- self.model = redback.model_library.all_models_dict[model]
41
+ if model in redback.model_library.all_models_dict:
42
+ self.model = redback.model_library.all_models_dict[model]
43
+ else:
44
+ self.model = model
42
45
  self.parameters = parameters
43
46
  self.all_times = times
44
47
  self.model_kwargs = model_kwargs
@@ -95,9 +98,13 @@ class SimulateGenericTransient(object):
95
98
  noise = np.random.normal(0, self.noise_term, len(true_output))
96
99
  output = true_output + noise
97
100
  output_error = self.noise_term
101
+ elif noise_type == 'SNRbased':
102
+ sigma = np.sqrt(true_output + np.min(true_output)/self.noise_term)
103
+ output_error = sigma
104
+ output = true_output + np.random.normal(0, sigma, len(true_output))
98
105
  else:
99
106
  logger.warning(f"noise_type {noise_type} not implemented.")
100
- raise ValueError('noise_type must be either gaussianmodel or gaussian')
107
+ raise ValueError('noise_type must be either gaussianmodel, gaussian, or SNRBased')
101
108
 
102
109
  if extra_scatter > 0:
103
110
  extra_noise = np.random.normal(0, extra_scatter, len(true_output))