Operations

Operation classes

class Op(fn, *, name=None)[source]

Bases: multipledispatch.dispatcher.Dispatcher

class TransformOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

set_inv(fn)[source]
Parameters:fn (callable) – A function that inputs an arg y and outputs a value x such that y=self(x).
set_log_abs_det_jacobian(fn)[source]
Parameters:fn (callable) – A function that inputs two args x, y, where y=self(x), and returns log(abs(det(dy/dx))).
static inv(x)[source]
static log_abs_det_jacobian(x, y)[source]

Builtin operations

abs = ops.abs
add = ops.add
and_ = ops.and_
eq = ops.eq
exp = ops.exp[source]
ge = ops.ge
getitem = ops.GetitemOp(0)

Op encoding an index into one dimension, e.g. x[:,:,y] for offset of 2.

gt = ops.gt
invert = ops.invert
le = ops.le
log = ops.log[source]
log1p = ops.log1p
lt = ops.lt
matmul = ops.matmul
max = ops.max[source]
min = ops.min[source]
mul = ops.mul
ne = ops.ne
neg = ops.neg
nullop = ops.nullop[source]

Placeholder associative op that unifies with any other op

or_ = ops.or_
pow = ops.pow
reciprocal = ops.reciprocal[source]
safediv = ops.safediv[source]
safesub = ops.safesub[source]
sigmoid = ops.sigmoid
sqrt = ops.sqrt
sub = ops.sub
truediv = ops.truediv
xor = ops.xor
class AssociativeOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

class AddOp(fn, *, name=None)[source]

Bases: funsor.ops.builtin.AssociativeOp

class MulOp(fn, *, name=None)[source]

Bases: funsor.ops.builtin.AssociativeOp

class MatmulOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

class SubOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

class NegOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

class DivOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

class NullOp(fn, *, name=None)[source]

Bases: funsor.ops.builtin.AssociativeOp

Placeholder associative op that unifies with any other op

class GetitemOp(offset)[source]

Bases: funsor.ops.op.Op

Op encoding an index into one dimension, e.g. x[:,:,y] for offset of 2.

class ExpOp(fn, *, name=None)[source]

Bases: funsor.ops.op.TransformOp

class LogOp(fn, *, name=None)[source]

Bases: funsor.ops.op.TransformOp

class ReciprocalOp(fn, *, name=None)[source]

Bases: funsor.ops.op.Op

Array operations

all = ops.all
amax = ops.amax
amin = ops.amin
any = ops.any
astype = ops.astype
cat = ops.cat
cholesky = ops.cholesky
cholesky_inverse = ops.cholesky_inverse
cholesky_solve = ops.cholesky_solve
clamp = ops.clamp
detach = ops.detach
diagonal = ops.diagonal
einsum = ops.einsum
expand = ops.expand
finfo = ops.finfo
full_like = ops.full_like
is_numeric_array = ops.is_numeric_array
logaddexp = ops.logaddexp
logsumexp = ops.logsumexp
new_arange = ops.new_arange
new_eye = ops.new_eye
new_zeros = ops.new_zeros
permute = ops.permute
prod = ops.prod
sample = ops.sample
stack = ops.stack
sum = ops.sum
transpose = ops.transpose
triangular_solve = ops.triangular_solve
unsqueeze = ops.unsqueeze
class LogAddExpOp(fn, *, name=None)[source]

Bases: funsor.ops.builtin.AssociativeOp

class SampleOp(fn, *, name=None)[source]

Bases: funsor.ops.array.LogAddExpOp

class ReshapeOp(shape)[source]

Bases: funsor.ops.op.Op