@@ -99,22 +99,20 @@ TEST_P(QFT, Functionality) {
9999 ASSERT_EQ (dd->cn .realCount (),
100100 1ULL << (std::max<std::size_t >(2UL , nqubits) - 2 ));
101101
102+ const auto expectedAmplitude =
103+ static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits));
104+
102105 // top edge weight should equal (1/sqrt(2))^n
103- EXPECT_NEAR (dd::RealNumber::val (func.w .r ),
104- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
106+ EXPECT_NEAR (dd::RealNumber::val (func.w .r ), expectedAmplitude,
105107 dd::RealNumber::eps);
106108
107109 // first row and first column should consist only of (1/sqrt(2))^n entries
108110 for (std::uint64_t i = 0 ; i < 1ULL << nqubits; ++i) {
109111 auto c = func.getValueByIndex (dd->qubits (), 0 , i);
110- EXPECT_NEAR (c.real (),
111- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
112- dd::RealNumber::eps);
112+ EXPECT_NEAR (c.real (), expectedAmplitude, dd::RealNumber::eps);
113113 EXPECT_NEAR (c.imag (), 0 , dd::RealNumber::eps);
114114 c = func.getValueByIndex (dd->qubits (), i, 0 );
115- EXPECT_NEAR (c.real (),
116- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
117- dd::RealNumber::eps);
115+ EXPECT_NEAR (c.real (), expectedAmplitude, dd::RealNumber::eps);
118116 EXPECT_NEAR (c.imag (), 0 , dd::RealNumber::eps);
119117 }
120118 dd->decRef (func);
@@ -144,22 +142,20 @@ TEST_P(QFT, FunctionalityRecursive) {
144142 ASSERT_EQ (dd->cn .realCount (),
145143 1ULL << (std::max<std::size_t >(2UL , nqubits) - 2 ));
146144
145+ const auto expectedAmplitude =
146+ static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits));
147+
147148 // top edge weight should equal (1/sqrt(2))^n
148- EXPECT_NEAR (dd::RealNumber::val (func.w .r ),
149- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
149+ EXPECT_NEAR (dd::RealNumber::val (func.w .r ), expectedAmplitude,
150150 dd::RealNumber::eps);
151151
152152 // first row and first column should consist only of (1/sqrt(2))^n entries
153153 for (std::uint64_t i = 0 ; i < 1ULL << nqubits; ++i) {
154154 auto c = func.getValueByIndex (dd->qubits (), 0 , i);
155- EXPECT_NEAR (c.real (),
156- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
157- dd::RealNumber::eps);
155+ EXPECT_NEAR (c.real (), expectedAmplitude, dd::RealNumber::eps);
158156 EXPECT_NEAR (c.imag (), 0 , dd::RealNumber::eps);
159157 c = func.getValueByIndex (dd->qubits (), i, 0 );
160- EXPECT_NEAR (c.real (),
161- static_cast <dd::fp>(std::pow (1.0 / std::sqrt (2.0 ), nqubits)),
162- dd::RealNumber::eps);
158+ EXPECT_NEAR (c.real (), expectedAmplitude, dd::RealNumber::eps);
163159 EXPECT_NEAR (c.imag (), 0 , dd::RealNumber::eps);
164160 }
165161 dd->decRef (func);
0 commit comments