Skip to content

Commit cf47998

Browse files
Reorder derivative test functions in collocation_host.hpp (#164)
* Initial plan * Reorder functions in collocation_host.hpp: deriv2 before deriv3 Co-authored-by: wavefunction91 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: wavefunction91 <[email protected]>
1 parent 351e227 commit cf47998

File tree

1 file changed

+58
-58
lines changed

1 file changed

+58
-58
lines changed

tests/collocation_host.hpp

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,64 @@ void test_host_collocation_deriv1( const BasisSet<double>& basis, const std::str
175175

176176
}
177177

178+
void test_host_collocation_deriv2( const BasisSet<double>& basis, const std::string& filename) {
179+
180+
181+
182+
std::vector<ref_collocation_data> ref_data;
183+
read_collocation_data(ref_data, filename);
184+
185+
for( auto& d : ref_data ) {
186+
187+
const auto npts = d.pts.size();
188+
const auto nbf = d.eval.size() / npts;
189+
190+
const auto& mask = d.mask;
191+
const auto& pts = d.pts;
192+
193+
std::vector<double> eval ( nbf * npts ),
194+
deval_x( nbf * npts ),
195+
deval_y( nbf * npts ),
196+
deval_z( nbf * npts ),
197+
d2eval_xx( nbf * npts ),
198+
d2eval_xy( nbf * npts ),
199+
d2eval_xz( nbf * npts ),
200+
d2eval_yy( nbf * npts ),
201+
d2eval_yz( nbf * npts ),
202+
d2eval_zz( nbf * npts );
203+
204+
205+
gau2grid_collocation_hessian( npts, mask.size(), nbf,
206+
pts.data()->data(), basis, mask.data(), eval.data(),
207+
deval_x.data(), deval_y.data(), deval_z.data(),
208+
d2eval_xx.data(), d2eval_xy.data(), d2eval_xz.data(),
209+
d2eval_yy.data(), d2eval_yz.data(), d2eval_zz.data() );
210+
211+
for( auto i = 0; i < npts * nbf; ++i )
212+
CHECK( eval[i] == Approx( d.eval[i] ) );
213+
for( auto i = 0; i < npts * nbf; ++i )
214+
CHECK( deval_x[i] == Approx( d.deval_x[i] ) );
215+
for( auto i = 0; i < npts * nbf; ++i )
216+
CHECK( deval_y[i] == Approx( d.deval_y[i] ) );
217+
for( auto i = 0; i < npts * nbf; ++i )
218+
CHECK( deval_z[i] == Approx( d.deval_z[i] ) );
219+
220+
for( auto i = 0; i < npts * nbf; ++i )
221+
CHECK( d2eval_xx[i] == Approx( d.d2eval_xx[i] ) );
222+
for( auto i = 0; i < npts * nbf; ++i )
223+
CHECK( d2eval_xy[i] == Approx( d.d2eval_xy[i] ) );
224+
for( auto i = 0; i < npts * nbf; ++i )
225+
CHECK( d2eval_xz[i] == Approx( d.d2eval_xz[i] ) );
226+
for( auto i = 0; i < npts * nbf; ++i )
227+
CHECK( d2eval_yy[i] == Approx( d.d2eval_yy[i] ) );
228+
for( auto i = 0; i < npts * nbf; ++i )
229+
CHECK( d2eval_yz[i] == Approx( d.d2eval_yz[i] ) );
230+
for( auto i = 0; i < npts * nbf; ++i )
231+
CHECK( d2eval_zz[i] == Approx( d.d2eval_zz[i] ) );
232+
}
233+
234+
}
235+
178236
void test_host_collocation_deriv3( const BasisSet<double>& basis, const std::string& filename) {
179237

180238
std::vector<ref_collocation_data> ref_data;
@@ -248,62 +306,4 @@ void test_host_collocation_deriv3( const BasisSet<double>& basis, const std::str
248306
CHECK( d3eval_lapl_z[i] == Approx( d.d3eval_lapl_z[i] ) );
249307
}
250308
}
251-
252-
void test_host_collocation_deriv2( const BasisSet<double>& basis, const std::string& filename) {
253-
254-
255-
256-
std::vector<ref_collocation_data> ref_data;
257-
read_collocation_data(ref_data, filename);
258-
259-
for( auto& d : ref_data ) {
260-
261-
const auto npts = d.pts.size();
262-
const auto nbf = d.eval.size() / npts;
263-
264-
const auto& mask = d.mask;
265-
const auto& pts = d.pts;
266-
267-
std::vector<double> eval ( nbf * npts ),
268-
deval_x( nbf * npts ),
269-
deval_y( nbf * npts ),
270-
deval_z( nbf * npts ),
271-
d2eval_xx( nbf * npts ),
272-
d2eval_xy( nbf * npts ),
273-
d2eval_xz( nbf * npts ),
274-
d2eval_yy( nbf * npts ),
275-
d2eval_yz( nbf * npts ),
276-
d2eval_zz( nbf * npts );
277-
278-
279-
gau2grid_collocation_hessian( npts, mask.size(), nbf,
280-
pts.data()->data(), basis, mask.data(), eval.data(),
281-
deval_x.data(), deval_y.data(), deval_z.data(),
282-
d2eval_xx.data(), d2eval_xy.data(), d2eval_xz.data(),
283-
d2eval_yy.data(), d2eval_yz.data(), d2eval_zz.data() );
284-
285-
for( auto i = 0; i < npts * nbf; ++i )
286-
CHECK( eval[i] == Approx( d.eval[i] ) );
287-
for( auto i = 0; i < npts * nbf; ++i )
288-
CHECK( deval_x[i] == Approx( d.deval_x[i] ) );
289-
for( auto i = 0; i < npts * nbf; ++i )
290-
CHECK( deval_y[i] == Approx( d.deval_y[i] ) );
291-
for( auto i = 0; i < npts * nbf; ++i )
292-
CHECK( deval_z[i] == Approx( d.deval_z[i] ) );
293-
294-
for( auto i = 0; i < npts * nbf; ++i )
295-
CHECK( d2eval_xx[i] == Approx( d.d2eval_xx[i] ) );
296-
for( auto i = 0; i < npts * nbf; ++i )
297-
CHECK( d2eval_xy[i] == Approx( d.d2eval_xy[i] ) );
298-
for( auto i = 0; i < npts * nbf; ++i )
299-
CHECK( d2eval_xz[i] == Approx( d.d2eval_xz[i] ) );
300-
for( auto i = 0; i < npts * nbf; ++i )
301-
CHECK( d2eval_yy[i] == Approx( d.d2eval_yy[i] ) );
302-
for( auto i = 0; i < npts * nbf; ++i )
303-
CHECK( d2eval_yz[i] == Approx( d.d2eval_yz[i] ) );
304-
for( auto i = 0; i < npts * nbf; ++i )
305-
CHECK( d2eval_zz[i] == Approx( d.d2eval_zz[i] ) );
306-
}
307-
308-
}
309309
#endif

0 commit comments

Comments
 (0)