Nothing
#####
## DO NOT EDIT THIS FILE!! EDIT THE SOURCE INSTEAD: rsrc_tree/reductions/complex2real/canonicalizers/variable_canon.R
#####
## CVXPY SOURCE: reductions/complex2real/canonicalizers/variable_canon.py
## Canonicalize complex variables -> real/imag variable pairs
c2r_variable_canon <- function(expr, real_args, imag_args, real2imag) {
if (is_real(expr)) {
## Purely real
return(list(expr, NULL))
} else if (is_imag(expr)) {
## Purely imaginary
imag_var <- Variable(expr@shape, var_id = real2imag[[as.character(expr@id)]])
return(list(NULL, imag_var))
} else if (is_complex(expr) && is_hermitian(expr)) {
## Hermitian variable: real part symmetric, imag part skew-symmetric
n <- expr@shape[1L]
real_var <- Variable(c(n, n), var_id = expr@id, symmetric = TRUE)
if (n > 1L) {
imag_var <- Variable(c((n * (n - 1L)) %/% 2L, 1L),
var_id = real2imag[[as.character(expr@id)]])
imag_upper_tri <- vec_to_upper_tri(imag_var, strict = TRUE)
## upper_tri - upper_tri^T to make skew-symmetric
imag_mat <- skew_symmetric_wrap(imag_upper_tri - t(imag_upper_tri))
} else {
imag_mat <- Constant(matrix(0, 1L, 1L))
}
return(list(real_var, imag_mat))
} else {
## General complex
real_var <- Variable(expr@shape, var_id = expr@id)
imag_var <- Variable(expr@shape, var_id = real2imag[[as.character(expr@id)]])
return(list(real_var, imag_var))
}
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.