flopscope.

flopscope.numpy.as_symmetric

fnp.as_symmetric(data: 'np.ndarray', *, symmetry) -> 'SymmetricTensor'[flopscope source]

Wrap *data* as a :class:`SymmetricTensor` after validating symmetry.

Adapted from NumPy docs np.as_symmetric

Areacore
Typecustom
Cost
per-operation
Flopscope Context

Validate + tag data as symmetric. Cost: k*(7*numel-1), k=#non-identity generators (one allclose per generator).

Wrap data as a SymmetricTensor after validating symmetry.

Parameters

data:flops.ndarray

The tensor data.

symmetry:SymmetryGroup or shorthand

Exact symmetry input accepted by normalize_symmetry_input.

Returns

:SymmetricTensor

View of data carrying validated symmetry metadata.

Raises

:SymmetryError

If the data does not satisfy the claimed symmetry.

Examples

>>> import flopscope as flops
>>> import flopscope.numpy as fnp
>>>
>>> matrix = fnp.array([[1.0, 2.0], [2.0, 3.0]])
>>> tagged = flops.as_symmetric(matrix, symmetry=(0, 1))
>>> tagged.symmetric_axes
[(0, 1)]