@@ -197,6 +197,28 @@ function to_namedtuple_expr(syms, vals)
197197 return :(NamedTuple {$names_expr} ($ vals_expr))
198198end
199199
200+ """
201+ link_transform(dist)
202+ Return the constrained-to-unconstrained bijector for distribution `dist`.
203+ By default, this is just `Bijectors.bijector(dist)`.
204+ !!! warning
205+ Note that currently this is not used by `Bijectors.logpdf_with_trans`,
206+ hence that needs to be overloaded separately if the intention is
207+ to change behavior of an existing distribution.
208+ """
209+ link_transform (dist) = bijector (dist)
210+
211+ """
212+ invlink_transform(dist)
213+ Return the unconstrained-to-constrained bijector for distribution `dist`.
214+ By default, this is just `inverse(link_transform(dist))`.
215+ !!! warning
216+ Note that currently this is not used by `Bijectors.logpdf_with_trans`,
217+ hence that needs to be overloaded separately if the intention is
218+ to change behavior of an existing distribution.
219+ """
220+ invlink_transform (dist) = inverse (link_transform (dist))
221+
200222# ####################################################
201223# Helper functions for vectorize/reconstruct values #
202224# ####################################################
@@ -355,14 +377,11 @@ from_vec_transform(f, sz) = from_vec_transform_for_size(Bijectors.output_size(f,
355377Return the transformation from the unconstrained vector to the constrained
356378realization of distribution `dist`.
357379
358- By default, this is just `inverse(bijector(dist)) ∘ from_vec_transform(dist)`.
359-
360- See also: [`DynamicPPL.from_vec_transform`](@ref).
380+ See also: [`DynamicPPL.invlink_transform`](@ref), [`DynamicPPL.from_vec_transform`](@ref).
361381"""
362382function from_linked_vec_transform (dist:: Distribution )
363- f_link = Bijectors. bijector (dist)
364- f_invlink = inverse (f_link)
365- f_vec = from_vec_transform (f_link, size (dist))
383+ f_invlink = invlink_transform (dist)
384+ f_vec = from_vec_transform (inverse (f_invlink), size (dist))
366385 return f_invlink ∘ f_vec
367386end
368387
372391# TODO (mhauru) Hopefully all this can go once the old Gibbs sampler is removed and
373392# VarNamedVector takes over from Metadata.
374393function from_linked_vec_transform (dist:: UnivariateDistribution )
375- f_link = Bijectors. bijector (dist)
376- f_invlink = inverse (f_link)
377- f_vec = from_vec_transform (f_link, size (dist))
394+ f_invlink = invlink_transform (dist)
395+ f_vec = from_vec_transform (inverse (f_invlink), size (dist))
378396 f_combined = f_invlink ∘ f_vec
379397 sz = Bijectors. output_size (f_combined, size (dist))
380398 return UnwrapSingletonTransform (sz) ∘ f_combined
0 commit comments