The natural logarithm of the sum of the elementwise exponential, \(\log\sum_{i=1}^n e^{x_i}\).

LogSumExp(x, axis = NA_real_, keepdims = FALSE)

# S4 method for class 'LogSumExp'
to_numeric(object, values)

# S4 method for class 'LogSumExp'
.grad(object, values)

# S4 method for class 'LogSumExp'
.column_grad(object, value)

# S4 method for class 'LogSumExp'
sign_from_args(object)

# S4 method for class 'LogSumExp'
is_atom_convex(object)

# S4 method for class 'LogSumExp'
is_atom_concave(object)

# S4 method for class 'LogSumExp'
is_incr(object, idx)

# S4 method for class 'LogSumExp'
is_decr(object, idx)

Arguments

x

An Expression representing a vector or matrix.

axis

(Optional) The dimension across which to apply the function: 1 indicates rows, 2 indicates columns, and NA indicates rows and columns. The default is NA.

keepdims

(Optional) Should dimensions be maintained when applying the atom along an axis? If FALSE, result will be collapsed into an \(n x 1\) column vector. The default is FALSE.

object

A LogSumExp object.

values

A list of numeric values.

value

A numeric value.

idx

An index into the atom.

Methods (by generic)

  • to_numeric(LogSumExp): Evaluates \(e^x\) elementwise, sums, and takes the natural log.

  • .grad(LogSumExp): Gives the (sub/super)gradient of the atom w.r.t. each variable

  • .column_grad(LogSumExp): Gives the (sub/super)gradient of the atom w.r.t. each column variable.

  • sign_from_args(LogSumExp): Returns sign (is positive, is negative) of the atom.

  • is_atom_convex(LogSumExp): The atom is convex.

  • is_atom_concave(LogSumExp): The atom is not concave.

  • is_incr(LogSumExp): The atom is weakly increasing in the index.

  • is_decr(LogSumExp): The atom is not weakly decreasing in the index.

Slots

x

An Expression representing a vector or matrix.

axis

(Optional) The dimension across which to apply the function: 1 indicates rows, 2 indicates columns, and NA indicates rows and columns. The default is NA.

keepdims

(Optional) Should dimensions be maintained when applying the atom along an axis? If FALSE, result will be collapsed into an \(n x 1\) column vector. The default is FALSE.