def METHOD_NAME(
    self,
    distr_args,
    loc: Optional[Tensor] = None,
    scale: Optional[Tensor] = None,
) -> Distribution:
    distr_args, transforms_args = self._split_args(distr_args)
    distr = self.base_distr_output.distr_cls(*distr_args)
    transforms = [
        transform_output.bij_cls(*bij_args)
        for transform_output, bij_args in zip(
            self.transforms_output, transforms_args
        )
    ]
    trans_distr = TransformedDistribution(distr, transforms)
    # Apply scaling as well at the end if scale is not None!
    if loc is None and scale is None:
        return trans_distr
    else:
        return TransformedDistribution(
            trans_distr, [AffineTransformation(loc=loc, scale=scale)]
        )