symmray.interface

Functional interface for symmray array objects.

Functions

conj(x, **kwargs)

Conjugate a symmray array.

max(x)

Return the maximum value of a symmray array.

min(x)

Return the minimum value of a symmray array.

sum(x)

Return the sum of a symmray array.

all(x)

Check if all elements of a symmray array are true.

any(x)

Check if any elements of a symmray array are true.

isfinite(x)

Check if a symmray array contains only finite values.

abs(x)

Return the absolute value of a symmray array.

sqrt(x)

Return the square root of a symmray array.

log(x)

Return the natural logarithm of a symmray array.

log2(x)

Return the base-2 logarithm of a symmray array.

log10(x)

Return the base-10 logarithm of a symmray array.

real(x)

Return the real part of a symmray array.

imag(x)

Return the imaginary part of a symmray array.

clip(x, a_min, a_max)

Clip the values of a symmray array.

squeeze(x[, axis])

Remove single-dimensional entries from shape of a symmray array.

expand_dims(x, axis)

Expand the shape of a symmray array.

reshape(a, newshape, **kwargs)

Reshape a symmray array, via fusing or unfusing.

tensordot(a, b[, axes])

Contract two symmray arrays along the specified axes.

_parse_tensordot_eq(eq)

Try to convert the two term einsum eq into tensordot axes and a

_parse_multiply_diagonal_eq(eq)

Check whether the two term einsum eq is a diagonal multiplication

einsum(*args, **kwargs)

Perform an Einstein summation on a symmray array, this simply uses

transpose(a[, axes])

Transpose a symmray array.

trace(a)

Return the trace of a symmray array.

take(a, indices, axis, **kwargs)

Take elements from a symmray array along an axis.

multiply_diagonal(x, v, axis)

Multiply a symmray array by a vector as if contracting a diagonal

ldmul(v, x)

Left multiply a symmray matrix x by a vector v.

rdmul(x, v)

Right multiply a symmray matrix x by a vector v.

lddiv(v, x)

Left divide a symmray matrix x by a vector v.

rddiv(x, v)

Right divide a symmray matrix x by a vector v.

align_axes(x, y, axes)

fuse(x, *axes_groups)

Fuse multiple axes of a symmray array.

Module Contents

symmray.interface.conj(x, **kwargs)[source]

Conjugate a symmray array.

symmray.interface.max(x)[source]

Return the maximum value of a symmray array.

symmray.interface.min(x)[source]

Return the minimum value of a symmray array.

symmray.interface.sum(x)[source]

Return the sum of a symmray array.

symmray.interface.all(x)[source]

Check if all elements of a symmray array are true.

symmray.interface.any(x)[source]

Check if any elements of a symmray array are true.

symmray.interface.isfinite(x)[source]

Check if a symmray array contains only finite values.

symmray.interface.abs(x)[source]

Return the absolute value of a symmray array.

symmray.interface.sqrt(x)[source]

Return the square root of a symmray array.

symmray.interface.log(x)[source]

Return the natural logarithm of a symmray array.

symmray.interface.log2(x)[source]

Return the base-2 logarithm of a symmray array.

symmray.interface.log10(x)[source]

Return the base-10 logarithm of a symmray array.

symmray.interface.real(x)[source]

Return the real part of a symmray array.

symmray.interface.imag(x)[source]

Return the imaginary part of a symmray array.

symmray.interface.clip(x, a_min, a_max)[source]

Clip the values of a symmray array.

symmray.interface.squeeze(x, axis=None)[source]

Remove single-dimensional entries from shape of a symmray array.

symmray.interface.expand_dims(x, axis)[source]

Expand the shape of a symmray array.

symmray.interface.reshape(a, newshape, **kwargs)[source]

Reshape a symmray array, via fusing or unfusing.

symmray.interface.tensordot(a, b, axes=2, **kwargs)[source]

Contract two symmray arrays along the specified axes.

Parameters:
symmray.interface._parse_tensordot_eq(eq)[source]

Try to convert the two term einsum eq into tensordot axes and a final output permutation.

Returns None if not possible, i.e. if the eq features batched, summed, or repeated indices, else a tuple (axes_a, axes_b, perm), where perm is a final permutation of the tensordot output axes, or None if not needed.

symmray.interface._parse_multiply_diagonal_eq(eq)[source]

Check whether the two term einsum eq is a diagonal multiplication pattern, e.g. “i,ijkl->ijkl”, suitable for multiply_diagonal.

Returns None if it is not, else a tuple (which, axis, perm), where which is “left”, “right”, or “both” depending on which term(s) are vector-like, axis is the axis of the array term that the vector multiplies into, and perm is a final permutation of the array term axes, or None if not needed.

symmray.interface.einsum(*args, **kwargs)[source]

Perform an Einstein summation on a symmray array, this simply uses cotengra to dispatch the full expression into pairwise tensordot (or einsum if necessary) calls.

symmray.interface.transpose(a, axes=None, **kwargs)[source]

Transpose a symmray array.

symmray.interface.trace(a)[source]

Return the trace of a symmray array.

symmray.interface.take(a, indices, axis, **kwargs)[source]

Take elements from a symmray array along an axis.

symmray.interface.multiply_diagonal(x, v, axis)[source]

Multiply a symmray array by a vector as if contracting a diagonal matrix into one axis.

symmray.interface.ldmul(v, x)[source]

Left multiply a symmray matrix x by a vector v.

symmray.interface.rdmul(x, v)[source]

Right multiply a symmray matrix x by a vector v.

symmray.interface.lddiv(v, x)[source]

Left divide a symmray matrix x by a vector v.

symmray.interface.rddiv(x, v)[source]

Right divide a symmray matrix x by a vector v.

symmray.interface.align_axes(x, y, axes)[source]
symmray.interface.fuse(x, *axes_groups)[source]

Fuse multiple axes of a symmray array.