Linearly rescale a matrix. Specifically, the values in the matrix are rescaled so that the maximum value in the matrix is equal to a new user-specified maximum value.

## Arguments

- x
`matrix`

,`array`

,`Matrix::Matrix`

object.- max
`numeric`

new maximum value in matrix. Defaults to 1000.

## Value

A `matrix`

, `array`

, or `Matrix::Matrix`

object.
The returned object is the is the same class as the argument to `x`

.

## Details

This function is particularly useful for rescaling data prior to
optimization to avoid numerical issues.
For example, boundary length (e.g., generated using `boundary_matrix()`

) or
connectivity data (e.g., generated using `connectivity_matrix()`

) can
contain very large values (e.g., values greater than 1,000,000)
and such large values can, in turn, degrade the performance of
exact algorithm solvers (see Details section in `presolve_check()`

for
more information on numerical issues).
By using this function to rescale boundary length or connectivity
data prior to optimization (e.g., before using `add_boundary_penalties()`

or
`add_connectivity_penalties()`

, this can help avoid numerical issues
during optimization.

## See also

See `boundary_matrix()`

and `connectivity_matrix()`

for details on
creating boundary length and connectivity data.
Also, see `presolve_check()`

for information on numerical issues.