| 808 | |
| 809 | template <NumQubitsFlag Targs, ArgsFlag Args> |
| 810 | auto getFixedRemainingArgs(vector<int> targs) { |
| 811 | |
| 812 | // getPauliStr uses gives length-3 hardcoded string |
| 813 | if constexpr (Args == paulistr || Args == pauligad) |
| 814 | DEMAND( targs.size() == 3 ); |
| 815 | |
| 816 | if constexpr (Args == none) return tuple{ }; |
| 817 | if constexpr (Args == scalar) return tuple{ 0 }; // angle |
| 818 | if constexpr (Args == axisrots) return tuple{ 0, 1,1,1 }; // (angle,x,y,z) |
| 819 | if constexpr (Args == compmatr) return tuple{ getIdentityApiMatrix<Targs,Args>(targs.size()) }; // id |
| 820 | if constexpr (Args == diagmatr) return tuple{ getIdentityApiMatrix<Targs,Args>(targs.size()) }; // id |
| 821 | if constexpr (Args == diagpower) return tuple{ getIdentityApiMatrix<Targs,Args>(targs.size()), qcomp(1,0) }; // (id, exponent) |
| 822 | if constexpr (Args == paulistr) return tuple{ getPauliStr("XXX", targs) }; // XXX |
| 823 | if constexpr (Args == pauligad) return tuple{ getPauliStr("XXX", targs), 0 }; // (XXX, angle) |
| 824 | } |
| 825 | |
| 826 | template <NumQubitsFlag Ctrls, NumQubitsFlag Targs, ArgsFlag Args, ApplyFlag Apply> |
| 827 | void testOperationValidation(auto operation) { |
nothing calls this directly
no test coverage detected