16 integer(IK) :: ndim, npnt, nsam, isam
18 type(display_type) :: disp
22 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
23 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
24 call disp%show(
"! Compute the Mahalanobis distance squared for real-valued arguments.")
25 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
26 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
32 real(RKG),
allocatable :: point(:,:), mahalSq(:,:), mean(:,:), invCov(:,:,:)
34 call disp%show(
"ndim = 3; npnt = 5; nsam = 2")
35 ndim
= 3; npnt
= 5; nsam
= 2
36 call disp%show(
"point = getUnifRand(0., 1., ndim, npnt)")
40 call disp%show(
"call setResized(mean, [ndim, nsam])")
42 call disp%show(
"call setResized(invCov, [ndim, ndim, nsam])")
46 call disp%show(
"invCov(:,:,isam) = getCovRand(mold = 1., ndim = ndim)")
47 invCov(:,:,isam)
= getCovRand(
mold = 1., ndim
= ndim)
48 call disp%show(
"mean(:,isam) = getFilled(isam - 1, ndim)")
56 call disp%show(
"call setResized(mahalSq, [nsam, npnt])")
60 call disp%show(
"mahalSq = getDisMahalSq(point, invCov) ! for a set of ndim-dimensional points against nsam independent samples centered at origin.")
64 call disp%show(
"mahalSq = getDisMahalSq(point, invCov, mean) ! for a set of ndim-dimensional points against nsam independent samples centered at mean.")
69 call disp%show(
"mahalSq(1:nsam, 1) = getDisMahalSq(point(1:ndim, 1), invCov) ! for a single ndim-dimensional point against nsam independent samples centered at origin.")
73 call disp%show(
"mahalSq(1:nsam, 1) = getDisMahalSq(point(1:ndim, 1), invCov, mean) ! for a single ndim-dimensional point against nsam independent samples centered at mean.")
74 mahalSq(
1:nsam,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov, mean)
79 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point, invCov(:,:,1)) ! for a set of ndim-dimensional points against one sample centered at origin.")
83 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point, invCov(:,:,1), mean(:,1)) ! for a set of ndim-dimensional points against one sample centered at mean.")
84 mahalSq(
1,
1:npnt)
= getDisMahalSq(point, invCov(:,:,
1), mean(:,
1))
88 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1:ndim, 1), invCov(:,:,1)) ! for a single ndim-dimensional point one sample centered at origin.")
89 mahalSq(
1,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov(:,:,
1))
92 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1:ndim, 1), invCov(:,:,1), mean(:,1)) ! for a single ndim-dimensional point one sample centered at mean.")
93 mahalSq(
1,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov(:,:,
1), mean(:,
1))
98 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point(1, 1:npnt), invCov(1,1,1)) ! for a set of single-dimensional points against one sample centered at origin.")
99 mahalSq(
1,
1:npnt)
= getDisMahalSq(point(
1,
1:npnt), invCov(
1,
1,
1))
100 call disp%show(
"mahalSq(1, 1:npnt)")
101 call disp%show( mahalSq(
1,
1:npnt) )
102 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point(1, 1:npnt), invCov(1,1,1), mean(1,1)) ! for a set of single-dimensional points against one sample centered at mean.")
103 mahalSq(
1,
1:npnt)
= getDisMahalSq(point(
1,
1:npnt), invCov(
1,
1,
1), mean(
1,
1))
104 call disp%show(
"mahalSq(1, 1:npnt)")
105 call disp%show( mahalSq(
1,
1:npnt) )
107 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1, 1), invCov(1,1,1)) ! for a single single-dimensional point one sample centered at origin.")
111 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1, 1), invCov(1,1,1), mean(1,1)) ! for a single single-dimensional point one sample centered at mean.")
112 mahalSq(
1,
1)
= getDisMahalSq(point(
1,
1), invCov(
1,
1,
1), mean(
1,
1))
119 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
120 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
121 call disp%show(
"! Compute the Mahalanobis distance squared for complex-valued arguments.")
122 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
123 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
129 complex(CKG),
allocatable :: point(:,:), mahalSq(:,:), mean(:,:), invCov(:,:,:)
131 call disp%show(
"ndim = 3; npnt = 5; nsam = 2")
132 ndim
= 3; npnt
= 5; nsam
= 2
133 call disp%show(
"point = getUnifRand(0., 1., ndim, npnt)")
137 call disp%show(
"call setResized(mean, [ndim, nsam])")
139 call disp%show(
"call setResized(invCov, [ndim, ndim, nsam])")
143 call disp%show(
"invCov(:,:,isam) = getCovRand(mold = (1., 1.), ndim = ndim)")
144 invCov(:,:,isam)
= getCovRand(
mold = (
1.,
1.), ndim
= ndim)
145 call disp%show(
"mean(:,isam) = getFilled(isam - 1, ndim)")
153 call disp%show(
"call setResized(mahalSq, [nsam, npnt])")
157 call disp%show(
"mahalSq = getDisMahalSq(point, invCov) ! for a set of ndim-dimensional points against nsam independent samples centered at origin.")
161 call disp%show(
"mahalSq = getDisMahalSq(point, invCov, mean) ! for a set of ndim-dimensional points against nsam independent samples centered at mean.")
166 call disp%show(
"mahalSq(1:nsam, 1) = getDisMahalSq(point(1:ndim, 1), invCov) ! for a single ndim-dimensional point against nsam independent samples centered at origin.")
168 call disp%show(
"mahalSq(1:nsam, 1)")
169 call disp%show( mahalSq(
1:nsam,
1) )
170 call disp%show(
"mahalSq(1:nsam, 1) = getDisMahalSq(point(1:ndim, 1), invCov, mean) ! for a single ndim-dimensional point against nsam independent samples centered at mean.")
171 mahalSq(
1:nsam,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov, mean)
172 call disp%show(
"mahalSq(1:nsam, 1)")
173 call disp%show( mahalSq(
1:nsam,
1) )
176 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point, invCov(:,:,1)) ! for a set of ndim-dimensional points against one sample centered at origin.")
178 call disp%show(
"mahalSq(1, 1:npnt)")
179 call disp%show( mahalSq(
1,
1:npnt) )
180 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point, invCov(:,:,1), mean(:,1)) ! for a set of ndim-dimensional points against one sample centered at mean.")
181 mahalSq(
1,
1:npnt)
= getDisMahalSq(point, invCov(:,:,
1), mean(:,
1))
182 call disp%show(
"mahalSq(1, 1:npnt)")
183 call disp%show( mahalSq(
1,
1:npnt) )
185 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1:ndim, 1), invCov(:,:,1)) ! for a single ndim-dimensional point one sample centered at origin.")
186 mahalSq(
1,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov(:,:,
1))
189 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1:ndim, 1), invCov(:,:,1), mean(:,1)) ! for a single ndim-dimensional point one sample centered at mean.")
190 mahalSq(
1,
1)
= getDisMahalSq(point(
1:ndim,
1), invCov(:,:,
1), mean(:,
1))
195 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point(1, 1:npnt), invCov(1,1,1)) ! for a set of single-dimensional points against one sample centered at origin.")
196 mahalSq(
1,
1:npnt)
= getDisMahalSq(point(
1,
1:npnt), invCov(
1,
1,
1))
197 call disp%show(
"mahalSq(1, 1:npnt)")
198 call disp%show( mahalSq(
1,
1:npnt) )
199 call disp%show(
"mahalSq(1, 1:npnt) = getDisMahalSq(point(1, 1:npnt), invCov(1,1,1), mean(1,1)) ! for a set of single-dimensional points against one sample centered at mean.")
200 mahalSq(
1,
1:npnt)
= getDisMahalSq(point(
1,
1:npnt), invCov(
1,
1,
1), mean(
1,
1))
201 call disp%show(
"mahalSq(1, 1:npnt)")
202 call disp%show( mahalSq(
1,
1:npnt) )
204 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1, 1), invCov(1,1,1)) ! for a single single-dimensional point one sample centered at origin.")
208 call disp%show(
"mahalSq(1, 1) = getDisMahalSq(point(1, 1), invCov(1,1,1), mean(1,1)) ! for a single single-dimensional point one sample centered at mean.")
209 mahalSq(
1,
1)
= getDisMahalSq(point(
1,
1), invCov(
1,
1,
1), mean(
1,
1))
Generate and return an array of the specified rank and shape of arbitrary intrinsic type and kind wit...
Allocate or resize (shrink or expand) an input allocatable scalar string or array of rank 1....
Generate and return a random positive-definite (correlation or covariance) matrix using the Gram meth...
Generate and return a scalar or a contiguous array of rank 1 of length s1 of randomly uniformly distr...
This is a generic method of the derived type display_type with pass attribute.
This is a generic method of the derived type display_type with pass attribute.
Generate and return a matrix of shape (shape(1), shape(2)) with the upper/lower triangle and the diag...
Generate a sample of shape (nsam), or (ndim, nsam) or (nsam, ndim) that is shifted by the specified i...
This module contains procedures and generic interfaces for convenient allocation and filling of array...
This module contains procedures and generic interfaces for resizing allocatable arrays of various typ...
This module contains classes and procedures for generating random matrices distributed on the space o...
This module contains classes and procedures for computing various statistical quantities related to t...
This module contains classes and procedures for input/output (IO) or generic display operations on st...
type(display_type) disp
This is a scalar module variable an object of type display_type for general display.
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
integer, parameter CKS
The single-precision complex kind in Fortran mode. On most platforms, this is a 32-bit real kind.
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
integer, parameter RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
This module contains procedures and generic interfaces relevant to generating and initializing matric...
This module contains classes and procedures for shifting univariate or multivariate samples by arbitr...
Generate and return an object of type display_type.