# General interface for transformations

Transformations are function-like objects, in the sense that they are *callable*. They also support the following general interface.

`abstract type ContinuousTransformation <: Function`

Continuous bijection $D ⊂ ℝ^n→ I ⊂ ℝ^n$ or $D ⊂ ℝ → I ⊂ ℝ$.

`ContinuousTransformations.domain`

— Function.`domain(transformation)`

Return the domain of the transformation.

`ContinuousTransformations.image`

— Function.`image(transformation)`

Return the image of the transformation.

`ContinuousTransformations.logjac`

— Function.`logjac(t, x)`

The log of the determinant of the Jacobian of `t`

at `x`

. ```

`ContinuousTransformations.inverse`

— Function.`inverse(t, x)`

Return $t⁻¹(x)$.

`inverse(t)`

Return the transformation $t⁻¹$.

You can create a transformation using the appropriate constructors, combine univariate-transformations, and create a transformation between two intervals.

`ContinuousTransformations.bridge`

— Function.`bridge(dom, img, [transformation])`

Return a transformation that maps `dom`

to `img`

.

The `transformation`

argument may be used to specify a particular transformation family, otherwise `default_transformation`

is used.