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 returnedS
operand fromcuquantum.cutensornet.tensor.decompose()
andcuquantum.cutensornet.experimental.contract_decompose()
will beNone
.- 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.