cuquantum.cutensornet.tensor.SVDMethod

class cuquantum.cutensornet.tensor.SVDMethod(max_extent: Optional[int] = None, abs_cutoff: Optional[float] = 0.0, rel_cutoff: Optional[float] = 0.0, partition: Optional[str] = None, normalization: Optional[str] = None)[source]

A data class for providing SVD options to the cuquantum.cutensornet.tensor.decompose() function.

max_extent

Keep no more than the largest max_extent singular values in the output operands (the rest will be truncated).

Type

Optional[int]

abs_cutoff

Singular values below this value will be trimmed in the output operands.

Type

Optional[float]

rel_cutoff

Singular values below the product of this value and the largest singular value will be trimmed in the output operands.

Type

Optional[float]

partition

Singular values S will be explictly returned by default (partition=None). Alternatively, singular values may be factorized onto output tensor U (partition="U"), output tensor V (partition="V") or equally onto output tensor U and output tensor V (partition="UV"). When any of these three partition schemes is selected, the returned S operand from cuquantum.cutensornet.tensor.decompose() and cuquantum.cutensornet.experimental.contract_decompose() will be None.

Type

Optional[str]

normalization

The specified norm of the singular values (after truncation) will be normalized to 1. Currently supports None, "L1", "L2" and "LInf".

Type

Optional[str]

Note

For truncated SVD, currently at least one singular value will be retained in the output even if the truncation parameters are set to trim out all singular values. This behavior may be subject to change in a future release.