UnitaryConfiguration
public enum UnitaryConfiguration
Define performance and memory footprint of Circuit.unitary(withQubitCount:).
-
Each
Gateis expanded into aMatrixbefore applying to the unitaryMatrixfor the entire circuit. Matrix expansion is performed with up toexpansionConcurrencythreads. IfexpansionConcurrencyis 0 or less, it will be defaulted to 1. This configuration has the biggest memory footprint but it is the fastest.Declaration
Swift
case matrix(expansionConcurrency: Int = 1) -
To apply a
Gateto the unitaryMatrixfor the entire circuit, up tocalculationConcurrencyrows in theGateare expanded at the same time and applied to the unitary as needed. In turn, each row will be expanded with up toexpansionConcurrencythreads, socalculationConcurrency*expansionConcurrencythreads might be running concurrently at any given moment. IfcalculationConcurrencyorexpansionConcurrencyare set to 0 or less, they will be defaulted to 1.Declaration
Swift
case row(calculationConcurrency: Int = 1, expansionConcurrency: Int = 1) -
To apply a
Gateto the unitaryMatrixfor the entire circuit, up tocalculationConcurrencyvalues in the unitary are calculated simultaneously. Values inGateare requested one by one and when needed. IfcalculationConcurrencyis 0 or less, it will be defaulted to 1. This configuration is the slowest but it has the smallest memory footprint.Declaration
Swift
case value(calculationConcurrency: Int = 1)
UnitaryConfiguration Enumeration Reference