This class represents the promotion of a scalar expression into a vector/matrix.

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

- expr
An Expression or numeric constant.

- promoted_dim
The desired dimensions.

- object
A Promote object.

- values
A list containing the value to promote.

- 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(Promote)`

: Promotes the value to the new dimensions.`is_symmetric(Promote)`

: Is the expression symmetric?`dim_from_args(Promote)`

: Returns the (row, col) dimensions of the expression.`is_atom_log_log_convex(Promote)`

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

: Is the atom log-log concave?`get_data(Promote)`

: Returns information needed to reconstruct the expression besides the args.`graph_implementation(Promote)`

: The graph implementation of the atom.

`expr`

An Expression or numeric constant.

`promoted_dim`

The desired dimensions.