The (sub/super)-gradient of the expression with respect to each variable. Matrix expressions are vectorized, so the gradient is a matrix. NA indicates variable values are unknown or outside the domain.

grad(object)

Arguments

object

An Expression object.

Value

A list mapping each variable to a sparse matrix.

Examples

x <- Variable(2, name = "x")
A <- Variable(2, 2, name = "A")

value(x) <- c(-3,4)
expr <- p_norm(x, 2)
grad(expr)
#> $`1530`
#> 2 x 1 sparse Matrix of class "dgCMatrix"
#>          
#> [1,] -0.6
#> [2,]  0.8
#> 

value(A) <- rbind(c(3,-4), c(4,3))
expr <- p_norm(A, 0.5)
grad(expr)
#> $`1531`
#> [1] NA
#> 

value(A) <- cbind(c(1,2), c(-1,0))
expr <- abs(A)
grad(expr)
#> $`1531`
#> 4 x 4 sparse Matrix of class "dgCMatrix"
#>              
#> [1,] 1 .  . .
#> [2,] . 1  . .
#> [3,] . . -1 .
#> [4,] . .  . 0
#>