This class represents the extraction of the diagonal from a square matrix.

```
DiagMat(expr)
# S4 method for DiagMat
to_numeric(object, values)
# S4 method for DiagMat
dim_from_args(object)
# S4 method for DiagMat
is_atom_log_log_convex(object)
# S4 method for DiagMat
is_atom_log_log_concave(object)
# S4 method for DiagMat
graph_implementation(object, arg_objs, dim, data = NA_real_)
```

- expr
An Expression representing the matrix whose diagonal we are interested in.

- object
A DiagMat object.

- values
A list of arguments to the atom.

- arg_objs
A list of linear expressions for each argument.

- dim
A vector representing the dimensions of the resulting expression.

- data
A list of additional data required by the atom.

`to_numeric(DiagMat)`

: Extract the diagonal from a square matrix constant.`dim_from_args(DiagMat)`

: The size of the atom.`is_atom_log_log_convex(DiagMat)`

: Is the atom log-log convex?`is_atom_log_log_concave(DiagMat)`

: Is the atom log-log concave?`graph_implementation(DiagMat)`

: The graph implementation of the atom.

`expr`

An Expression representing the matrix whose diagonal we are interested in.