The CtcInverse contractor

Main author: Simon Rohou

Consider a function \(\mathbf{f}:\mathbb{R}^n\to \mathbb{R}^p\). The CtcInverse contractor allows to deal with constraints under the form \(\mathbf{f}(\mathbf{x})\in[\mathbf{y}]\) by contracting boxes \([\mathbf{x}]\in\mathbb{IR}^n\).

\(\mathbf{f}:\mathbb{R}^n\to \mathbb{R}^p\) is the most classical case, but Codac provides generic solutions to define a wide variety of expressions such as functions defined as \(\mathbf{f}:X\to Y\), where:

  • \(X\) denotes the domain of \(\mathbf{f}\) with the following cases:

    • \(X=\mathbb{R}\): one scalar input ;

    • \(X=\mathbb{R}^n\): one \(n\)-d vector input ;

    • \(X=\mathbb{R}^{n\times m}\): one \(n\times m\) matrix input ;

    • \(X=\mathbb{R}\times\mathbb{R}^{n}\times\mathbb{R}\): several types of mixed input, with no restrictions on order or number.

  • \(Y\) denotes the codomain of \(\mathbf{f}\), that can be either \(\mathbb{R}\), \(\mathbb{R}^p\) or \(\mathbb{R}^{p\times q}\).

The following table lists the combinations implemented in Codac. The cases correspond to efficient contractions involving centered form expressions, while refer to classical forward/backward propagations.

Possible usages of CtcInverse

Output \(Y\)

\(\mathbb{R}\)

\(\mathbb{R}^n\)

\(\mathbb{R}^{r\times c}\)

Input(s) \(X\)

\(\mathbb{R}\)

\(\mathbb{R}^n\)

\(\mathbb{R}^{r\times c}\)

any mixed types