@@ -110,6 +110,22 @@ subroutine test_sp(x, x2)
110110 ) < sptol)&
111111 , ' sp check 14' )
112112
113+ call check( all ( abs ( cov(x2, 1 , mask = x2 < 11 , corrected = .false. ) - &
114+ reshape ([&
115+ 5._sp , 5._sp , 0.5_sp , 5._sp , 5._sp , 0.5_sp , 0.5_sp ,&
116+ 0.5_sp , 0.25_sp ]&
117+ ,[ size (x2, 2 ), size (x2, 2 )])&
118+ ) < sptol)&
119+ , ' sp check 15' )
120+ call check( all ( abs ( cov(x2, 2 , mask = x2 < 11 , corrected = .false. ) - &
121+ reshape ([&
122+ 114._sp / 9 , 11._sp , 0.25_sp , 0.25_sp , 11._sp , 86._sp / 9 ,&
123+ 0.25_sp , 0.25_sp , 0.25_sp , 0.25_sp , 0.25_sp , 0.25_sp ,&
124+ 0.25_sp , 0.25_sp , 0.25_sp , 0.25_sp ]&
125+ ,[ size (x2, 1 ), size (x2, 1 )])&
126+ ) < sptol)&
127+ , ' sp check 16' )
128+
113129 end subroutine test_sp
114130
115131 subroutine test_dp (x , x2 )
@@ -181,6 +197,23 @@ subroutine test_dp(x, x2)
181197 ) < dptol)&
182198 , ' dp check 14' )
183199
200+ call check( all ( abs ( cov(x2, 1 , mask = x2 < 11 , corrected = .false. ) - &
201+ reshape ([&
202+ 5._dp , 5._dp , 0.5_dp , 5._dp , 5._dp , 0.5_dp , 0.5_dp ,&
203+ 0.5_dp , 0.25_dp ]&
204+ ,[ size (x2, 2 ), size (x2, 2 )])&
205+ ) < dptol)&
206+ , ' dp check 15' )
207+ call check( all ( abs ( cov(x2, 2 , mask = x2 < 11 , corrected = .false. ) - &
208+ reshape ([&
209+ 114._dp / 9 , 11._dp , 0.25_dp , 0.25_dp , 11._dp , 86._dp / 9 ,&
210+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ,&
211+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ]&
212+ ,[ size (x2, 1 ), size (x2, 1 )])&
213+ ) < dptol)&
214+ , ' dp check 16' )
215+
216+
184217 end subroutine test_dp
185218
186219 subroutine test_int32 (x , x2 )
@@ -252,6 +285,22 @@ subroutine test_int32(x, x2)
252285 ) < dptol)&
253286 , ' int32 check 14' )
254287
288+ call check( all ( abs ( cov(x2, 1 , mask = x2 < 11 , corrected = .false. ) - &
289+ reshape ([&
290+ 5._dp , 5._dp , 0.5_dp , 5._dp , 5._dp , 0.5_dp , 0.5_dp ,&
291+ 0.5_dp , 0.25_dp ]&
292+ ,[ size (x2, 2 ), size (x2, 2 )])&
293+ ) < dptol)&
294+ , ' int32 check 15' )
295+ call check( all ( abs ( cov(x2, 2 , mask = x2 < 11 , corrected = .false. ) - &
296+ reshape ([&
297+ 114._dp / 9 , 11._dp , 0.25_dp , 0.25_dp , 11._dp , 86._dp / 9 ,&
298+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ,&
299+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ]&
300+ ,[ size (x2, 1 ), size (x2, 1 )])&
301+ ) < dptol)&
302+ , ' int32 check 16' )
303+
255304 end subroutine test_int32
256305
257306 subroutine test_int64 (x , x2 )
@@ -323,6 +372,22 @@ subroutine test_int64(x, x2)
323372 ) < dptol)&
324373 , ' int64 check 14' )
325374
375+ call check( all ( abs ( cov(x2, 1 , mask = x2 < 11 , corrected = .false. ) - &
376+ reshape ([&
377+ 5._dp , 5._dp , 0.5_dp , 5._dp , 5._dp , 0.5_dp , 0.5_dp ,&
378+ 0.5_dp , 0.25_dp ]&
379+ ,[ size (x2, 2 ), size (x2, 2 )])&
380+ ) < dptol)&
381+ , ' int64 check 15' )
382+ call check( all ( abs ( cov(x2, 2 , mask = x2 < 11 , corrected = .false. ) - &
383+ reshape ([&
384+ 114._dp / 9 , 11._dp , 0.25_dp , 0.25_dp , 11._dp , 86._dp / 9 ,&
385+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ,&
386+ 0.25_dp , 0.25_dp , 0.25_dp , 0.25_dp ]&
387+ ,[ size (x2, 1 ), size (x2, 1 )])&
388+ ) < dptol)&
389+ , ' int64 check 16' )
390+
326391 end subroutine test_int64
327392
328393 subroutine test_csp (x , x2 )
@@ -401,6 +466,14 @@ subroutine test_csp(x, x2)
401466 ) < sptol)&
402467 , ' csp check 11' )
403468
469+ call check( all ( abs ( cov(x2, 2 , mask = aimag (x2) < 6 , corrected = .false. ) - &
470+ reshape ([&
471+ (2.6666666666666666_sp ,0._sp ), (0._sp ,1._sp )&
472+ ,(0._sp ,- 1._sp ), (1._sp ,0._sp )]&
473+ ,[ size (x2, 1 ), size (x2, 1 )])&
474+ ) < sp)&
475+ , ' csp check 12' )
476+
404477 end subroutine test_csp
405478
406479 subroutine test_cdp (x , x2 )
@@ -480,6 +553,14 @@ subroutine test_cdp(x, x2)
480553 ) < dptol)&
481554 , ' cdp check 11' )
482555
556+ call check( all ( abs ( cov(x2, 2 , mask = aimag (x2) < 6 , corrected = .false. ) - &
557+ reshape ([&
558+ (2.6666666666666666_dp ,0._dp ), (0._dp ,1._dp )&
559+ ,(0._dp ,- 1._dp ), (1._dp ,0._dp )]&
560+ ,[ size (x2, 1 ), size (x2, 1 )])&
561+ ) < dptol)&
562+ , ' cdp check 12' )
563+
483564 end subroutine test_cdp
484565
485566end program test_cov
0 commit comments