MCPcopy Create free account
hub / github.com/QuEST-Kit/QuEST / getDensMatrExpecPauliStrTermOfOnlyThisNode

Function getDensMatrExpecPauliStrTermOfOnlyThisNode

quest/src/core/localiser.cpp:2005–2023  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2003
2004
2005qcomp getDensMatrExpecPauliStrTermOfOnlyThisNode(Qureg qureg, PauliStr str) {
2006 assert_localiserGivenDensMatr(qureg);
2007
2008 // caller must reduce the returned value between nodes if necessary
2009
2010 // all ket-paulis are in the suffix state
2011 auto [targsX, targsY, targsZ] = paulis_getSeparateInds(str);
2012
2013 // optimised scenario when str = I
2014 if (targsX.empty() && targsY.empty() && targsZ.empty())
2015 return accel_densmatr_calcTotalProb_sub(qureg);
2016
2017 // optimised scenario when str = Z
2018 if (targsX.empty() && targsY.empty())
2019 return accel_densmatr_calcExpecAnyTargZ_sub(qureg, targsZ);
2020
2021 // generic XYZ
2022 return accel_densmatr_calcExpecPauliStr_sub(qureg, targsX, targsY, targsZ);
2023}
2024
2025
2026qcomp localiser_statevec_calcExpecPauliStr(Qureg qureg, PauliStr str) {

Tested by

no test coverage detected