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.
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 |
✓ |
✓ |
✓ |