in utilities/Common/CounterSimulator.cs [51:79]
public void CountOperationCalls(ICallable op, IApplyData data)
{
// Count all operations, grouped by operation
if (_operationsCount.ContainsKey(op))
{
_operationsCount[op]++;
}
else
{
_operationsCount[op] = 1;
}
// Check if the operation has multiple qubit parameters, if yes, count it
int nQubits = 0;
using (IEnumerator<Qubit> enumerator = data?.Qubits?.GetEnumerator())
{
if (enumerator is null)
{
// The operation doesn't have qubit parameters
return;
}
while (enumerator.MoveNext() && nQubits < 2)
nQubits++;
}
if (nQubits >= 2)
{
_multiQubitOperations++;
}
}