dlasso.Rd
dlasso
##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or standard data sets, see data().
## The function is currently defined as
function (A, b, tolerance = 1, rho = 3, lambda = rho)
{
M_N <- rev(dim(materialise(A)))
m <- ncol(A)
S_z <- S(lambda/(rho * M_N[2]))
z_prev <- x_prev <- u_prev <- rep(Inf, m)
z_curr <- rep(1, m)
x_curr <- distribute(z_curr, where = A)
u_curr <- distribute(z_curr, where = A)
i <- 0
while (l1_norm(z_curr - z_prev) > tolerance) {
cat("Iteration: ", i <- i + 1, "\n")
x_prev <- x_curr
z_prev <- z_curr
u_prev <- u_curr
x_curr <- d.x_update(x_prev, A, b, u_prev, rho, z_prev)
u_curr <- materialise(u_curr)
x_curr <- materialise(x_curr)
dim(x_curr) <- dim(u_curr) <- M_N
u_curr <- dematerialise(u_curr)
x_curr <- dematerialise(x_curr)
z_curr <- S_z(rowMeans(emerge(x_curr)) + rowMeans(emerge(u_curr)))
u_curr <- u_prev + x_curr - z_curr
}
z_curr
}
#> function (A, b, tolerance = 1, rho = 3, lambda = rho)
#> {
#> M_N <- rev(dim(materialise(A)))
#> m <- ncol(A)
#> S_z <- S(lambda/(rho * M_N[2]))
#> z_prev <- x_prev <- u_prev <- rep(Inf, m)
#> z_curr <- rep(1, m)
#> x_curr <- distribute(z_curr, where = A)
#> u_curr <- distribute(z_curr, where = A)
#> i <- 0
#> while (l1_norm(z_curr - z_prev) > tolerance) {
#> cat("Iteration: ", i <- i + 1, "\n")
#> x_prev <- x_curr
#> z_prev <- z_curr
#> u_prev <- u_curr
#> x_curr <- d.x_update(x_prev, A, b, u_prev, rho, z_prev)
#> u_curr <- materialise(u_curr)
#> x_curr <- materialise(x_curr)
#> dim(x_curr) <- dim(u_curr) <- M_N
#> u_curr <- dematerialise(u_curr)
#> x_curr <- dematerialise(x_curr)
#> z_curr <- S_z(rowMeans(emerge(x_curr)) + rowMeans(emerge(u_curr)))
#> u_curr <- u_prev + x_curr - z_curr
#> }
#> z_curr
#> }
#> <environment: 0x55f263bf09e0>