@@ -6,6 +6,15 @@ using MeasureBase
66using ChainRulesCore: NoTangent, ZeroTangent
77import ChainRulesCore
88
9+ # = utils ====================================================================
10+
11+ using MeasureBase: isneginf, isposinf
12+
13+ _isneginf_pullback (:: Any ) = (NoTangent (), ZeroTangent ())
14+ ChainRulesCore. rrule (:: typeof (isneginf), x) = isneginf (x), _logdensityof_rt_pullback
15+
16+ _isposinf_pullback (:: Any ) = (NoTangent (), ZeroTangent ())
17+ ChainRulesCore. rrule (:: typeof (isposinf), x) = isposinf (x), _isposinf_pullback
918
1019# = insupport & friends ======================================================
1120
@@ -33,4 +42,13 @@ ChainRulesCore.rrule(::typeof(check_dof), ν, μ) = check_dof(ν, μ), _check_do
3342_checked_arg_pullback (ΔΩ) = NoTangent (), NoTangent (), ΔΩ
3443ChainRulesCore. rrule (:: typeof (checked_arg), ν, x) = checked_arg (ν, x), _checked_arg_pullback
3544
45+ # = return type inference ====================================================
46+
47+ using MeasureBase: logdensityof_rt
48+
49+ _logdensityof_rt_pullback (:: Any ) = (NoTangent (), NoTangent (), ZeroTangent ())
50+ function ChainRulesCore. rrule (:: typeof (logdensityof_rt), target, v)
51+ logdensityof_rt (target, v), _logdensityof_rt_pullback
52+ end
53+
3654end # module MeasureBaseChainRulesCoreExt
0 commit comments