# CorrCholeskyTransform Source: https://www.tensorplay.cn/docs/generated/tensorplay.distributions.CorrCholeskyTransform.html ```python class tensorplay.distributions.CorrCholeskyTransform(cache_size: int = 0) ``` Transforms an unconstrained real vector $x$ with length $D*(D-1)/2$ into the Cholesky factor of a D-dimension correlation matrix. This Cholesky factor is a lower triangular matrix with positive diagonals and unit Euclidean norm for each row. The transform is processed as follows: - First we convert x into a lower triangular matrix in row order. - For each row $X_i$ of the lower triangular part, we apply a signed version of class [StickBreakingTransform](/docs/generated/tensorplay.distributions.StickBreakingTransform.html#tensorplay.distributions.StickBreakingTransform) to transform $X_i$ into a unit Euclidean length vector using the following steps: - Scales into the interval $(-1, 1)$ domain: $r_i = \tanh(X_i)$. - Transforms into an unsigned domain: $z_i = r_i^2$. - Applies $s_i = StickBreakingTransform(z_i)$. - Transforms back into signed domain: $y_i = sign(r_i) * \sqrt{s_i}$. ```python property inv: Transform ``` Returns the inverse [Transform](/docs/generated/tensorplay.distributions.Transform.html#tensorplay.distributions.Transform) of this transform. This should satisfy t.inv.inv is t. ```python property sign: int ``` Returns the sign of the determinant of the Jacobian, if applicable. In general this only makes sense for bijective transforms.