Add support for constrained parameter domains
constrain
applies a transformation to unconstrained real numbers to project them into the given parameter domain. unconstrain
applies the inverse transformation that maps back to unconstrained real numbers.