Join us for
RADAR: AI Edition

rkeops (version 2.2.2)

logsumexp: Log-Sum-Exp reduction.

Description

Log-Sum-Exp reduction for LazyTensor objects.

Usage

logsumexp(x, index, weight = NULL)

logsumexp_reduction(x, index, weight = NULL)

Value

a matrix corresponding to the Log-Sum-Exp reduction.

Arguments

x

a LazyTensor or a ComplexLazyTensor.

index

a character corresponding to the reduction dimension that should be either "i" or "j" to specify whether if the reduction is indexed by "i" or "j".

weight

an optional object (LazyTensor or ComplexLazyTensor) that specifies scalar or vector-valued weights. NULL by default and not used.

Author

Chloe Serre-Combe, Amelie Vernay

Details

If x is a LazyTensor or a ComplexLazyTensor, logsumexp(x, index, weight) will:

  • if index = "i", return the Log-Sum-Exp reduction of x over the i indexes;

  • if index = "j", return the Log-Sum-Exp reduction of x over the j indexes.

Note: Run browseVignettes("rkeops") to access the vignettes and find details about this function in the "RKeOps LazyTensor" vignette, at section "Reductions".

Examples

Run this code
if (FALSE) {
x <- matrix(runif(150 * 3), 150, 3) 
x_i <- LazyTensor(x, index = 'i') 
y <- matrix(runif(100 * 3), 100, 3)
y_j <- LazyTensor(y, index = 'j')
w <- matrix(runif(100 * 3), 100, 3) # weight LazyTensor
w_j <- LazyTensor(w, index = 'j')

S_ij = sum((x_i - y_j)^2)                                           
logsumexp_xw <- logsumexp(S_ij, 'i', w_j) # logsumexp reduction 
                                          # over the 'i' indices
                                         
logsumexp_x <- logsumexp(S_ij, 'i')      # logsumexp reduction without
                                         # weight over the 'i' indices
}
if (FALSE) {
x <- matrix(runif(150 * 3), 150, 3) 
x_i <- LazyTensor(x, index = 'i') 
y <- matrix(runif(100 * 3), 100, 3)
y_j <- LazyTensor(y, index = 'j')
w <- matrix(runif(150 * 3), 150, 3) # weight LazyTensor
w_j <- LazyTensor(y, index = 'j')

S_ij = sum( (x_i - y_j)^2 )                                           
logsumexp_xw <- logsumexp_reduction(S_ij, 'i', w_j) # logsumexp reduction 
                                                    # over the 'i' indices
                                         
logsumexp_x <- logsumexp_reduction(S_ij, 'i')  # logsumexp reduction without
                                               # weight over the 'i' indices
}

Run the code above in your browser using DataLab