@@ -779,14 +779,14 @@ end
779779Invlink `x` and compute the logpdf under `dist` including correction from
780780the invlink-transformation.
781781
782- If `x` is not provided, `getval (vi, vn)` will be used.
782+ If `x` is not provided, `getindex_internal (vi, vn)` will be used.
783783
784784!!! warning
785785 The input value `x` should be according to the internal representation of
786- `varinfo`, e.g. the value returned by `getval (vi, vn)`.
786+ `varinfo`, e.g. the value returned by `getindex_internal (vi, vn)`.
787787"""
788788function invlink_with_logpdf (vi:: AbstractVarInfo , vn:: VarName , dist)
789- return invlink_with_logpdf (vi, vn, dist, getval (vi, vn))
789+ return invlink_with_logpdf (vi, vn, dist, getindex_internal (vi, vn))
790790end
791791function invlink_with_logpdf (vi:: AbstractVarInfo , vn:: VarName , dist, y)
792792 f = from_maybe_linked_internal_transform (vi, vn, dist)
@@ -800,26 +800,32 @@ increment_num_produce!(::AbstractVarInfo) = nothing
800800setgid! (vi:: AbstractVarInfo , gid:: Selector , vn:: VarName ) = nothing
801801
802802"""
803- from_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
803+ from_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
804804
805805Return a transformation that transforms from the internal representation of `vn` with `dist`
806806in `varinfo` to a representation compatible with `dist`.
807+
808+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
807809"""
808810function from_internal_transform end
809811
810812"""
811- from_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
813+ from_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
812814
813815Return a transformation that transforms from the linked internal representation of `vn` with `dist`
814816in `varinfo` to a representation compatible with `dist`.
817+
818+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
815819"""
816820function from_linked_internal_transform end
817821
818822"""
819- from_maybe_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
823+ from_maybe_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
820824
821825Return a transformation that transforms from the possibly linked internal representation of `vn` with `dist`n
822826in `varinfo` to a representation compatible with `dist`.
827+
828+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
823829"""
824830function from_maybe_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
825831 return if istrans (varinfo, vn)
@@ -828,57 +834,94 @@ function from_maybe_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarN
828834 from_internal_transform (varinfo, vn, dist)
829835 end
830836end
837+ function from_maybe_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
838+ return if istrans (varinfo, vn)
839+ from_linked_internal_transform (varinfo, vn)
840+ else
841+ from_internal_transform (varinfo, vn)
842+ end
843+ end
831844
832845"""
833- to_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
846+ to_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
834847
835848Return a transformation that transforms from a representation compatible with `dist` to the
836849internal representation of `vn` with `dist` in `varinfo`.
850+
851+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
837852"""
838853function to_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
839854 return inverse (from_internal_transform (varinfo, vn, dist))
840855end
856+ function to_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
857+ return inverse (from_internal_transform (varinfo, vn))
858+ end
841859
842860"""
843- to_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
861+ to_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
844862
845863Return a transformation that transforms from a representation compatible with `dist` to the
846864linked internal representation of `vn` with `dist` in `varinfo`.
865+
866+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
847867"""
848868function to_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
849869 return inverse (from_linked_internal_transform (varinfo, vn, dist))
850870end
871+ function to_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
872+ return inverse (from_linked_internal_transform (varinfo, vn))
873+ end
851874
852875"""
853- to_maybe_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
876+ to_maybe_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
854877
855878Return a transformation that transforms from a representation compatible with `dist` to a
856879possibly linked internal representation of `vn` with `dist` in `varinfo`.
880+
881+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
857882"""
858883function to_maybe_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
859884 return inverse (from_maybe_linked_internal_transform (varinfo, vn, dist))
860885end
886+ function to_maybe_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
887+ return inverse (from_maybe_linked_internal_transform (varinfo, vn))
888+ end
861889
862890"""
863891 internal_to_linked_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
864892
865893Return a transformation that transforms from the internal representation of `vn` with `dist`
866894in `varinfo` to a _linked_ internal representation of `vn` with `dist` in `varinfo`.
895+
896+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
867897"""
868898function internal_to_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
869899 f_from_internal = from_internal_transform (varinfo, vn, dist)
870900 f_to_linked_internal = to_linked_internal_transform (varinfo, vn, dist)
871901 return f_to_linked_internal ∘ f_from_internal
872902end
903+ function internal_to_linked_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
904+ f_from_internal = from_internal_transform (varinfo, vn)
905+ f_to_linked_internal = to_linked_internal_transform (varinfo, vn)
906+ return f_to_linked_internal ∘ f_from_internal
907+ end
873908
874909"""
875- linked_internal_to_internal_transform(varinfo::AbstractVarInfo, vn::VarName, dist)
910+ linked_internal_to_internal_transform(varinfo::AbstractVarInfo, vn::VarName[ , dist] )
876911
877912Return a transformation that transforms from a _linked_ internal representation of `vn` with `dist`
878913in `varinfo` to the internal representation of `vn` with `dist` in `varinfo`.
914+
915+ If `dist` is not present, then it is assumed that `varinfo` knows the correct output for `vn`.
879916"""
880917function linked_internal_to_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName , dist)
881918 f_from_linked_internal = from_linked_internal_transform (varinfo, vn, dist)
882919 f_to_internal = to_internal_transform (varinfo, vn, dist)
883920 return f_to_internal ∘ f_from_linked_internal
884921end
922+
923+ function linked_internal_to_internal_transform (varinfo:: AbstractVarInfo , vn:: VarName )
924+ f_from_linked_internal = from_linked_internal_transform (varinfo, vn)
925+ f_to_internal = to_internal_transform (varinfo, vn)
926+ return f_to_internal ∘ f_from_linked_internal
927+ end
0 commit comments