ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distanceMahal.F90
Go to the documentation of this file.
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!!! !!!!
4!!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5!!!! !!!!
6!!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7!!!! !!!!
8!!!! This file is part of the ParaMonte library. !!!!
9!!!! !!!!
10!!!! LICENSE !!!!
11!!!! !!!!
12!!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13!!!! !!!!
14!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
79
80!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
81
83
84 use pm_kind, only: IK, RK, SK
85
86 implicit none
87
88 character(*, SK), parameter :: MODULE_NAME = "@pm_distanceMahal"
89
90!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91
186
187 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
188 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190
191 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
192 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
194
195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
198
199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
200
201#if CK5_ENABLED
202 PURE elemental module function getDisMahalSqEleInvDef_D0_CK5(point, invCov) result(mahalSq)
203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
204 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_CK5
205#endif
206 use pm_kind, only: CKG => CK5
207 complex(CKG), intent(in) :: point, invCov
208 complex(CKG) :: mahalSq
209 end function
210#endif
211
212#if CK4_ENABLED
213 PURE elemental module function getDisMahalSqEleInvDef_D0_CK4(point, invCov) result(mahalSq)
214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
215 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_CK4
216#endif
217 use pm_kind, only: CKG => CK4
218 complex(CKG), intent(in) :: point, invCov
219 complex(CKG) :: mahalSq
220 end function
221#endif
222
223#if CK3_ENABLED
224 PURE elemental module function getDisMahalSqEleInvDef_D0_CK3(point, invCov) result(mahalSq)
225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
226 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_CK3
227#endif
228 use pm_kind, only: CKG => CK3
229 complex(CKG), intent(in) :: point, invCov
230 complex(CKG) :: mahalSq
231 end function
232#endif
233
234#if CK2_ENABLED
235 PURE elemental module function getDisMahalSqEleInvDef_D0_CK2(point, invCov) result(mahalSq)
236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
237 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_CK2
238#endif
239 use pm_kind, only: CKG => CK2
240 complex(CKG), intent(in) :: point, invCov
241 complex(CKG) :: mahalSq
242 end function
243#endif
244
245#if CK1_ENABLED
246 PURE elemental module function getDisMahalSqEleInvDef_D0_CK1(point, invCov) result(mahalSq)
247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
248 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_CK1
249#endif
250 use pm_kind, only: CKG => CK1
251 complex(CKG), intent(in) :: point, invCov
252 complex(CKG) :: mahalSq
253 end function
254#endif
255
256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
257
258#if RK5_ENABLED
259 PURE elemental module function getDisMahalSqEleInvDef_D0_RK5(point, invCov) result(mahalSq)
260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
261 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_RK5
262#endif
263 use pm_kind, only: RKG => RK5
264 real(RKG) , intent(in) :: point, invCov
265 real(RKG) :: mahalSq
266 end function
267#endif
268
269#if RK4_ENABLED
270 PURE elemental module function getDisMahalSqEleInvDef_D0_RK4(point, invCov) result(mahalSq)
271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
272 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_RK4
273#endif
274 use pm_kind, only: RKG => RK4
275 real(RKG) , intent(in) :: point, invCov
276 real(RKG) :: mahalSq
277 end function
278#endif
279
280#if RK3_ENABLED
281 PURE elemental module function getDisMahalSqEleInvDef_D0_RK3(point, invCov) result(mahalSq)
282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
283 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_RK3
284#endif
285 use pm_kind, only: RKG => RK3
286 real(RKG) , intent(in) :: point, invCov
287 real(RKG) :: mahalSq
288 end function
289#endif
290
291#if RK2_ENABLED
292 PURE elemental module function getDisMahalSqEleInvDef_D0_RK2(point, invCov) result(mahalSq)
293#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
294 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_RK2
295#endif
296 use pm_kind, only: RKG => RK2
297 real(RKG) , intent(in) :: point, invCov
298 real(RKG) :: mahalSq
299 end function
300#endif
301
302#if RK1_ENABLED
303 PURE elemental module function getDisMahalSqEleInvDef_D0_RK1(point, invCov) result(mahalSq)
304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
305 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvDef_D0_RK1
306#endif
307 use pm_kind, only: RKG => RK1
308 real(RKG) , intent(in) :: point, invCov
309 real(RKG) :: mahalSq
310 end function
311#endif
312
313 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
314
315 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318
319 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
320
321#if CK5_ENABLED
322 PURE elemental module function getDisMahalSqEleInvCen_D0_CK5(point, invCov, center) result(mahalSq)
323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
324 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_CK5
325#endif
326 use pm_kind, only: CKG => CK5
327 complex(CKG), intent(in) :: point, invCov, center
328 complex(CKG) :: mahalSq
329 end function
330#endif
331
332#if CK4_ENABLED
333 PURE elemental module function getDisMahalSqEleInvCen_D0_CK4(point, invCov, center) result(mahalSq)
334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
335 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_CK4
336#endif
337 use pm_kind, only: CKG => CK4
338 complex(CKG), intent(in) :: point, invCov, center
339 complex(CKG) :: mahalSq
340 end function
341#endif
342
343#if CK3_ENABLED
344 PURE elemental module function getDisMahalSqEleInvCen_D0_CK3(point, invCov, center) result(mahalSq)
345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
346 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_CK3
347#endif
348 use pm_kind, only: CKG => CK3
349 complex(CKG), intent(in) :: point, invCov, center
350 complex(CKG) :: mahalSq
351 end function
352#endif
353
354#if CK2_ENABLED
355 PURE elemental module function getDisMahalSqEleInvCen_D0_CK2(point, invCov, center) result(mahalSq)
356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
357 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_CK2
358#endif
359 use pm_kind, only: CKG => CK2
360 complex(CKG), intent(in) :: point, invCov, center
361 complex(CKG) :: mahalSq
362 end function
363#endif
364
365#if CK1_ENABLED
366 PURE elemental module function getDisMahalSqEleInvCen_D0_CK1(point, invCov, center) result(mahalSq)
367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
368 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_CK1
369#endif
370 use pm_kind, only: CKG => CK1
371 complex(CKG), intent(in) :: point, invCov, center
372 complex(CKG) :: mahalSq
373 end function
374#endif
375
376 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
377
378#if RK5_ENABLED
379 PURE elemental module function getDisMahalSqEleInvCen_D0_RK5(point, invCov, center) result(mahalSq)
380#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
381 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_RK5
382#endif
383 use pm_kind, only: RKG => RK5
384 real(RKG) , intent(in) :: point, invCov, center
385 real(RKG) :: mahalSq
386 end function
387#endif
388
389#if RK4_ENABLED
390 PURE elemental module function getDisMahalSqEleInvCen_D0_RK4(point, invCov, center) result(mahalSq)
391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
392 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_RK4
393#endif
394 use pm_kind, only: RKG => RK4
395 real(RKG) , intent(in) :: point, invCov, center
396 real(RKG) :: mahalSq
397 end function
398#endif
399
400#if RK3_ENABLED
401 PURE elemental module function getDisMahalSqEleInvCen_D0_RK3(point, invCov, center) result(mahalSq)
402#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
403 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_RK3
404#endif
405 use pm_kind, only: RKG => RK3
406 real(RKG) , intent(in) :: point, invCov, center
407 real(RKG) :: mahalSq
408 end function
409#endif
410
411#if RK2_ENABLED
412 PURE elemental module function getDisMahalSqEleInvCen_D0_RK2(point, invCov, center) result(mahalSq)
413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
414 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_RK2
415#endif
416 use pm_kind, only: RKG => RK2
417 real(RKG) , intent(in) :: point, invCov, center
418 real(RKG) :: mahalSq
419 end function
420#endif
421
422#if RK1_ENABLED
423 PURE elemental module function getDisMahalSqEleInvCen_D0_RK1(point, invCov, center) result(mahalSq)
424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
425 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqEleInvCen_D0_RK1
426#endif
427 use pm_kind, only: RKG => RK1
428 real(RKG) , intent(in) :: point, invCov, center
429 real(RKG) :: mahalSq
430 end function
431#endif
432
433 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
434
435 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
436 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
437 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
438
439 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
441 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
442
443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
446
447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448
449#if CK5_ENABLED
450 PURE module function getDisMahalSqOneInvDef_D1_CK5(point, invCov) result(mahalSq)
451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
452 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_CK5
453#endif
454 use pm_kind, only: CKG => CK5
455 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:)
456 complex(CKG) :: mahalSq
457 end function
458#endif
459
460#if CK4_ENABLED
461 PURE module function getDisMahalSqOneInvDef_D1_CK4(point, invCov) result(mahalSq)
462#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
463 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_CK4
464#endif
465 use pm_kind, only: CKG => CK4
466 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:)
467 complex(CKG) :: mahalSq
468 end function
469#endif
470
471#if CK3_ENABLED
472 PURE module function getDisMahalSqOneInvDef_D1_CK3(point, invCov) result(mahalSq)
473#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
474 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_CK3
475#endif
476 use pm_kind, only: CKG => CK3
477 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:)
478 complex(CKG) :: mahalSq
479 end function
480#endif
481
482#if CK2_ENABLED
483 PURE module function getDisMahalSqOneInvDef_D1_CK2(point, invCov) result(mahalSq)
484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
485 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_CK2
486#endif
487 use pm_kind, only: CKG => CK2
488 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:)
489 complex(CKG) :: mahalSq
490 end function
491#endif
492
493#if CK1_ENABLED
494 PURE module function getDisMahalSqOneInvDef_D1_CK1(point, invCov) result(mahalSq)
495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
496 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_CK1
497#endif
498 use pm_kind, only: CKG => CK1
499 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:)
500 complex(CKG) :: mahalSq
501 end function
502#endif
503
504 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
505
506#if RK5_ENABLED
507 PURE module function getDisMahalSqOneInvDef_D1_RK5(point, invCov) result(mahalSq)
508#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
509 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_RK5
510#endif
511 use pm_kind, only: RKG => RK5
512 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:)
513 real(RKG) :: mahalSq
514 end function
515#endif
516
517#if RK4_ENABLED
518 PURE module function getDisMahalSqOneInvDef_D1_RK4(point, invCov) result(mahalSq)
519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
520 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_RK4
521#endif
522 use pm_kind, only: RKG => RK4
523 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:)
524 real(RKG) :: mahalSq
525 end function
526#endif
527
528#if RK3_ENABLED
529 PURE module function getDisMahalSqOneInvDef_D1_RK3(point, invCov) result(mahalSq)
530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
531 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_RK3
532#endif
533 use pm_kind, only: RKG => RK3
534 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:)
535 real(RKG) :: mahalSq
536 end function
537#endif
538
539#if RK2_ENABLED
540 PURE module function getDisMahalSqOneInvDef_D1_RK2(point, invCov) result(mahalSq)
541#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
542 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_RK2
543#endif
544 use pm_kind, only: RKG => RK2
545 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:)
546 real(RKG) :: mahalSq
547 end function
548#endif
549
550#if RK1_ENABLED
551 PURE module function getDisMahalSqOneInvDef_D1_RK1(point, invCov) result(mahalSq)
552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
553 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D1_RK1
554#endif
555 use pm_kind, only: RKG => RK1
556 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:)
557 real(RKG) :: mahalSq
558 end function
559#endif
560
561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562
563 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
566
567 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
568
569#if CK5_ENABLED
570 PURE module function getDisMahalSqOneInvCen_D1_CK5(point, invCov, center) result(mahalSq)
571#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
572 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_CK5
573#endif
574 use pm_kind, only: CKG => CK5
575 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:), center(:)
576 complex(CKG) :: mahalSq
577 end function
578#endif
579
580#if CK4_ENABLED
581 PURE module function getDisMahalSqOneInvCen_D1_CK4(point, invCov, center) result(mahalSq)
582#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
583 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_CK4
584#endif
585 use pm_kind, only: CKG => CK4
586 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:), center(:)
587 complex(CKG) :: mahalSq
588 end function
589#endif
590
591#if CK3_ENABLED
592 PURE module function getDisMahalSqOneInvCen_D1_CK3(point, invCov, center) result(mahalSq)
593#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
594 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_CK3
595#endif
596 use pm_kind, only: CKG => CK3
597 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:), center(:)
598 complex(CKG) :: mahalSq
599 end function
600#endif
601
602#if CK2_ENABLED
603 PURE module function getDisMahalSqOneInvCen_D1_CK2(point, invCov, center) result(mahalSq)
604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
605 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_CK2
606#endif
607 use pm_kind, only: CKG => CK2
608 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:), center(:)
609 complex(CKG) :: mahalSq
610 end function
611#endif
612
613#if CK1_ENABLED
614 PURE module function getDisMahalSqOneInvCen_D1_CK1(point, invCov, center) result(mahalSq)
615#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
616 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_CK1
617#endif
618 use pm_kind, only: CKG => CK1
619 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:), center(:)
620 complex(CKG) :: mahalSq
621 end function
622#endif
623
624 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
625
626#if RK5_ENABLED
627 PURE module function getDisMahalSqOneInvCen_D1_RK5(point, invCov, center) result(mahalSq)
628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
629 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_RK5
630#endif
631 use pm_kind, only: RKG => RK5
632 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:), center(:)
633 real(RKG) :: mahalSq
634 end function
635#endif
636
637#if RK4_ENABLED
638 PURE module function getDisMahalSqOneInvCen_D1_RK4(point, invCov, center) result(mahalSq)
639#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
640 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_RK4
641#endif
642 use pm_kind, only: RKG => RK4
643 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:), center(:)
644 real(RKG) :: mahalSq
645 end function
646#endif
647
648#if RK3_ENABLED
649 PURE module function getDisMahalSqOneInvCen_D1_RK3(point, invCov, center) result(mahalSq)
650#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
651 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_RK3
652#endif
653 use pm_kind, only: RKG => RK3
654 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:), center(:)
655 real(RKG) :: mahalSq
656 end function
657#endif
658
659#if RK2_ENABLED
660 PURE module function getDisMahalSqOneInvCen_D1_RK2(point, invCov, center) result(mahalSq)
661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
662 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_RK2
663#endif
664 use pm_kind, only: RKG => RK2
665 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:), center(:)
666 real(RKG) :: mahalSq
667 end function
668#endif
669
670#if RK1_ENABLED
671 PURE module function getDisMahalSqOneInvCen_D1_RK1(point, invCov, center) result(mahalSq)
672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
673 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D1_RK1
674#endif
675 use pm_kind, only: RKG => RK1
676 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:), center(:)
677 real(RKG) :: mahalSq
678 end function
679#endif
680
681 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
682
683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
685 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
686
687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
690
691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692
693#if CK5_ENABLED
694 PURE module function getDisMahalSqOneInvDef_D2_CK5(point, invCov) result(mahalSq)
695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
696 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_CK5
697#endif
698 use pm_kind, only: CKG => CK5
699 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:)
700 complex(CKG) :: mahalSq(size(point, 2, IK))
701 end function
702#endif
703
704#if CK4_ENABLED
705 PURE module function getDisMahalSqOneInvDef_D2_CK4(point, invCov) result(mahalSq)
706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
707 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_CK4
708#endif
709 use pm_kind, only: CKG => CK4
710 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:)
711 complex(CKG) :: mahalSq(size(point, 2, IK))
712 end function
713#endif
714
715#if CK3_ENABLED
716 PURE module function getDisMahalSqOneInvDef_D2_CK3(point, invCov) result(mahalSq)
717#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
718 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_CK3
719#endif
720 use pm_kind, only: CKG => CK3
721 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:)
722 complex(CKG) :: mahalSq(size(point, 2, IK))
723 end function
724#endif
725
726#if CK2_ENABLED
727 PURE module function getDisMahalSqOneInvDef_D2_CK2(point, invCov) result(mahalSq)
728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
729 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_CK2
730#endif
731 use pm_kind, only: CKG => CK2
732 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:)
733 complex(CKG) :: mahalSq(size(point, 2, IK))
734 end function
735#endif
736
737#if CK1_ENABLED
738 PURE module function getDisMahalSqOneInvDef_D2_CK1(point, invCov) result(mahalSq)
739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
740 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_CK1
741#endif
742 use pm_kind, only: CKG => CK1
743 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:)
744 complex(CKG) :: mahalSq(size(point, 2, IK))
745 end function
746#endif
747
748 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
749
750#if RK5_ENABLED
751 PURE module function getDisMahalSqOneInvDef_D2_RK5(point, invCov) result(mahalSq)
752#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
753 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_RK5
754#endif
755 use pm_kind, only: RKG => RK5
756 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:)
757 real(RKG) :: mahalSq(size(point, 2, IK))
758 end function
759#endif
760
761#if RK4_ENABLED
762 PURE module function getDisMahalSqOneInvDef_D2_RK4(point, invCov) result(mahalSq)
763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
764 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_RK4
765#endif
766 use pm_kind, only: RKG => RK4
767 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:)
768 real(RKG) :: mahalSq(size(point, 2, IK))
769 end function
770#endif
771
772#if RK3_ENABLED
773 PURE module function getDisMahalSqOneInvDef_D2_RK3(point, invCov) result(mahalSq)
774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
775 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_RK3
776#endif
777 use pm_kind, only: RKG => RK3
778 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:)
779 real(RKG) :: mahalSq(size(point, 2, IK))
780 end function
781#endif
782
783#if RK2_ENABLED
784 PURE module function getDisMahalSqOneInvDef_D2_RK2(point, invCov) result(mahalSq)
785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
786 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_RK2
787#endif
788 use pm_kind, only: RKG => RK2
789 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:)
790 real(RKG) :: mahalSq(size(point, 2, IK))
791 end function
792#endif
793
794#if RK1_ENABLED
795 PURE module function getDisMahalSqOneInvDef_D2_RK1(point, invCov) result(mahalSq)
796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
797 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvDef_D2_RK1
798#endif
799 use pm_kind, only: RKG => RK1
800 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:)
801 real(RKG) :: mahalSq(size(point, 2, IK))
802 end function
803#endif
804
805 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
806
807 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
808 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
809 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
810
811 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
812
813#if CK5_ENABLED
814 PURE module function getDisMahalSqOneInvCen_D2_CK5(point, invCov, center) result(mahalSq)
815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
816 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_CK5
817#endif
818 use pm_kind, only: CKG => CK5
819 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
820 complex(CKG) :: mahalSq(size(point, 2, IK))
821 end function
822#endif
823
824#if CK4_ENABLED
825 PURE module function getDisMahalSqOneInvCen_D2_CK4(point, invCov, center) result(mahalSq)
826#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
827 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_CK4
828#endif
829 use pm_kind, only: CKG => CK4
830 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
831 complex(CKG) :: mahalSq(size(point, 2, IK))
832 end function
833#endif
834
835#if CK3_ENABLED
836 PURE module function getDisMahalSqOneInvCen_D2_CK3(point, invCov, center) result(mahalSq)
837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
838 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_CK3
839#endif
840 use pm_kind, only: CKG => CK3
841 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
842 complex(CKG) :: mahalSq(size(point, 2, IK))
843 end function
844#endif
845
846#if CK2_ENABLED
847 PURE module function getDisMahalSqOneInvCen_D2_CK2(point, invCov, center) result(mahalSq)
848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
849 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_CK2
850#endif
851 use pm_kind, only: CKG => CK2
852 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
853 complex(CKG) :: mahalSq(size(point, 2, IK))
854 end function
855#endif
856
857#if CK1_ENABLED
858 PURE module function getDisMahalSqOneInvCen_D2_CK1(point, invCov, center) result(mahalSq)
859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
860 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_CK1
861#endif
862 use pm_kind, only: CKG => CK1
863 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
864 complex(CKG) :: mahalSq(size(point, 2, IK))
865 end function
866#endif
867
868 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
869
870#if RK5_ENABLED
871 PURE module function getDisMahalSqOneInvCen_D2_RK5(point, invCov, center) result(mahalSq)
872#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
873 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_RK5
874#endif
875 use pm_kind, only: RKG => RK5
876 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
877 real(RKG) :: mahalSq(size(point, 2, IK))
878 end function
879#endif
880
881#if RK4_ENABLED
882 PURE module function getDisMahalSqOneInvCen_D2_RK4(point, invCov, center) result(mahalSq)
883#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
884 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_RK4
885#endif
886 use pm_kind, only: RKG => RK4
887 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
888 real(RKG) :: mahalSq(size(point, 2, IK))
889 end function
890#endif
891
892#if RK3_ENABLED
893 PURE module function getDisMahalSqOneInvCen_D2_RK3(point, invCov, center) result(mahalSq)
894#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
895 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_RK3
896#endif
897 use pm_kind, only: RKG => RK3
898 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
899 real(RKG) :: mahalSq(size(point, 2, IK))
900 end function
901#endif
902
903#if RK2_ENABLED
904 PURE module function getDisMahalSqOneInvCen_D2_RK2(point, invCov, center) result(mahalSq)
905#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
906 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_RK2
907#endif
908 use pm_kind, only: RKG => RK2
909 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
910 real(RKG) :: mahalSq(size(point, 2, IK))
911 end function
912#endif
913
914#if RK1_ENABLED
915 PURE module function getDisMahalSqOneInvCen_D2_RK1(point, invCov, center) result(mahalSq)
916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
917 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqOneInvCen_D2_RK1
918#endif
919 use pm_kind, only: RKG => RK1
920 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:), center(:)
921 real(RKG) :: mahalSq(size(point, 2, IK))
922 end function
923#endif
924
925 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
926
927 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
928 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
929 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
930
931 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
932 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
933 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
934
935 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
936 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
937 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
938
939 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
940
941#if CK5_ENABLED
942 PURE module function getDisMahalSqMixInvDef_D1_CK5(point, invCov) result(mahalSq)
943#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
944 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_CK5
945#endif
946 use pm_kind, only: CKG => CK5
947 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:)
948 complex(CKG) :: mahalSq(size(invCov, 3, IK))
949 end function
950#endif
951
952#if CK4_ENABLED
953 PURE module function getDisMahalSqMixInvDef_D1_CK4(point, invCov) result(mahalSq)
954#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
955 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_CK4
956#endif
957 use pm_kind, only: CKG => CK4
958 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:)
959 complex(CKG) :: mahalSq(size(invCov, 3, IK))
960 end function
961#endif
962
963#if CK3_ENABLED
964 PURE module function getDisMahalSqMixInvDef_D1_CK3(point, invCov) result(mahalSq)
965#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
966 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_CK3
967#endif
968 use pm_kind, only: CKG => CK3
969 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:)
970 complex(CKG) :: mahalSq(size(invCov, 3, IK))
971 end function
972#endif
973
974#if CK2_ENABLED
975 PURE module function getDisMahalSqMixInvDef_D1_CK2(point, invCov) result(mahalSq)
976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
977 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_CK2
978#endif
979 use pm_kind, only: CKG => CK2
980 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:)
981 complex(CKG) :: mahalSq(size(invCov, 3, IK))
982 end function
983#endif
984
985#if CK1_ENABLED
986 PURE module function getDisMahalSqMixInvDef_D1_CK1(point, invCov) result(mahalSq)
987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
988 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_CK1
989#endif
990 use pm_kind, only: CKG => CK1
991 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:)
992 complex(CKG) :: mahalSq(size(invCov, 3, IK))
993 end function
994#endif
995
996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
997
998#if RK5_ENABLED
999 PURE module function getDisMahalSqMixInvDef_D1_RK5(point, invCov) result(mahalSq)
1000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1001 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_RK5
1002#endif
1003 use pm_kind, only: RKG => RK5
1004 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:)
1005 real(RKG) :: mahalSq(size(invCov, 3, IK))
1006 end function
1007#endif
1008
1009#if RK4_ENABLED
1010 PURE module function getDisMahalSqMixInvDef_D1_RK4(point, invCov) result(mahalSq)
1011#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1012 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_RK4
1013#endif
1014 use pm_kind, only: RKG => RK4
1015 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:)
1016 real(RKG) :: mahalSq(size(invCov, 3, IK))
1017 end function
1018#endif
1019
1020#if RK3_ENABLED
1021 PURE module function getDisMahalSqMixInvDef_D1_RK3(point, invCov) result(mahalSq)
1022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1023 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_RK3
1024#endif
1025 use pm_kind, only: RKG => RK3
1026 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:)
1027 real(RKG) :: mahalSq(size(invCov, 3, IK))
1028 end function
1029#endif
1030
1031#if RK2_ENABLED
1032 PURE module function getDisMahalSqMixInvDef_D1_RK2(point, invCov) result(mahalSq)
1033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1034 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_RK2
1035#endif
1036 use pm_kind, only: RKG => RK2
1037 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:)
1038 real(RKG) :: mahalSq(size(invCov, 3, IK))
1039 end function
1040#endif
1041
1042#if RK1_ENABLED
1043 PURE module function getDisMahalSqMixInvDef_D1_RK1(point, invCov) result(mahalSq)
1044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1045 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D1_RK1
1046#endif
1047 use pm_kind, only: RKG => RK1
1048 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:)
1049 real(RKG) :: mahalSq(size(invCov, 3, IK))
1050 end function
1051#endif
1052
1053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1054
1055 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1056 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1057 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1058
1059 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1060
1061#if CK5_ENABLED
1062 PURE module function getDisMahalSqMixInvCen_D1_CK5(point, invCov, center) result(mahalSq)
1063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1064 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_CK5
1065#endif
1066 use pm_kind, only: CKG => CK5
1067 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1068 complex(CKG) :: mahalSq(size(invCov, 3, IK))
1069 end function
1070#endif
1071
1072#if CK4_ENABLED
1073 PURE module function getDisMahalSqMixInvCen_D1_CK4(point, invCov, center) result(mahalSq)
1074#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1075 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_CK4
1076#endif
1077 use pm_kind, only: CKG => CK4
1078 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1079 complex(CKG) :: mahalSq(size(invCov, 3, IK))
1080 end function
1081#endif
1082
1083#if CK3_ENABLED
1084 PURE module function getDisMahalSqMixInvCen_D1_CK3(point, invCov, center) result(mahalSq)
1085#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1086 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_CK3
1087#endif
1088 use pm_kind, only: CKG => CK3
1089 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1090 complex(CKG) :: mahalSq(size(invCov, 3, IK))
1091 end function
1092#endif
1093
1094#if CK2_ENABLED
1095 PURE module function getDisMahalSqMixInvCen_D1_CK2(point, invCov, center) result(mahalSq)
1096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1097 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_CK2
1098#endif
1099 use pm_kind, only: CKG => CK2
1100 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1101 complex(CKG) :: mahalSq(size(invCov, 3, IK))
1102 end function
1103#endif
1104
1105#if CK1_ENABLED
1106 PURE module function getDisMahalSqMixInvCen_D1_CK1(point, invCov, center) result(mahalSq)
1107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1108 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_CK1
1109#endif
1110 use pm_kind, only: CKG => CK1
1111 complex(CKG), intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1112 complex(CKG) :: mahalSq(size(invCov, 3, IK))
1113 end function
1114#endif
1115
1116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1117
1118#if RK5_ENABLED
1119 PURE module function getDisMahalSqMixInvCen_D1_RK5(point, invCov, center) result(mahalSq)
1120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1121 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_RK5
1122#endif
1123 use pm_kind, only: RKG => RK5
1124 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1125 real(RKG) :: mahalSq(size(invCov, 3, IK))
1126 end function
1127#endif
1128
1129#if RK4_ENABLED
1130 PURE module function getDisMahalSqMixInvCen_D1_RK4(point, invCov, center) result(mahalSq)
1131#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1132 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_RK4
1133#endif
1134 use pm_kind, only: RKG => RK4
1135 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1136 real(RKG) :: mahalSq(size(invCov, 3, IK))
1137 end function
1138#endif
1139
1140#if RK3_ENABLED
1141 PURE module function getDisMahalSqMixInvCen_D1_RK3(point, invCov, center) result(mahalSq)
1142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1143 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_RK3
1144#endif
1145 use pm_kind, only: RKG => RK3
1146 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1147 real(RKG) :: mahalSq(size(invCov, 3, IK))
1148 end function
1149#endif
1150
1151#if RK2_ENABLED
1152 PURE module function getDisMahalSqMixInvCen_D1_RK2(point, invCov, center) result(mahalSq)
1153#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1154 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_RK2
1155#endif
1156 use pm_kind, only: RKG => RK2
1157 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1158 real(RKG) :: mahalSq(size(invCov, 3, IK))
1159 end function
1160#endif
1161
1162#if RK1_ENABLED
1163 PURE module function getDisMahalSqMixInvCen_D1_RK1(point, invCov, center) result(mahalSq)
1164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1165 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D1_RK1
1166#endif
1167 use pm_kind, only: RKG => RK1
1168 real(RKG) , intent(in), contiguous :: point(:), invCov(:,:,:), center(:,:)
1169 real(RKG) :: mahalSq(size(invCov, 3, IK))
1170 end function
1171#endif
1172
1173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1174
1175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1176 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1178
1179 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1180 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1181 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1182
1183 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1184
1185#if CK5_ENABLED
1186 PURE module function getDisMahalSqMixInvDef_D2_CK5(point, invCov) result(mahalSq)
1187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1188 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_CK5
1189#endif
1190 use pm_kind, only: CKG => CK5
1191 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:)
1192 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1193 end function
1194#endif
1195
1196#if CK4_ENABLED
1197 PURE module function getDisMahalSqMixInvDef_D2_CK4(point, invCov) result(mahalSq)
1198#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1199 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_CK4
1200#endif
1201 use pm_kind, only: CKG => CK4
1202 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:)
1203 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1204 end function
1205#endif
1206
1207#if CK3_ENABLED
1208 PURE module function getDisMahalSqMixInvDef_D2_CK3(point, invCov) result(mahalSq)
1209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1210 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_CK3
1211#endif
1212 use pm_kind, only: CKG => CK3
1213 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:)
1214 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1215 end function
1216#endif
1217
1218#if CK2_ENABLED
1219 PURE module function getDisMahalSqMixInvDef_D2_CK2(point, invCov) result(mahalSq)
1220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1221 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_CK2
1222#endif
1223 use pm_kind, only: CKG => CK2
1224 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:)
1225 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1226 end function
1227#endif
1228
1229#if CK1_ENABLED
1230 PURE module function getDisMahalSqMixInvDef_D2_CK1(point, invCov) result(mahalSq)
1231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1232 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_CK1
1233#endif
1234 use pm_kind, only: CKG => CK1
1235 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:)
1236 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1237 end function
1238#endif
1239
1240 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1241
1242#if RK5_ENABLED
1243 PURE module function getDisMahalSqMixInvDef_D2_RK5(point, invCov) result(mahalSq)
1244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1245 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_RK5
1246#endif
1247 use pm_kind, only: RKG => RK5
1248 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:)
1249 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1250 end function
1251#endif
1252
1253#if RK4_ENABLED
1254 PURE module function getDisMahalSqMixInvDef_D2_RK4(point, invCov) result(mahalSq)
1255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1256 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_RK4
1257#endif
1258 use pm_kind, only: RKG => RK4
1259 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:)
1260 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1261 end function
1262#endif
1263
1264#if RK3_ENABLED
1265 PURE module function getDisMahalSqMixInvDef_D2_RK3(point, invCov) result(mahalSq)
1266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1267 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_RK3
1268#endif
1269 use pm_kind, only: RKG => RK3
1270 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:)
1271 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1272 end function
1273#endif
1274
1275#if RK2_ENABLED
1276 PURE module function getDisMahalSqMixInvDef_D2_RK2(point, invCov) result(mahalSq)
1277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1278 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_RK2
1279#endif
1280 use pm_kind, only: RKG => RK2
1281 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:)
1282 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1283 end function
1284#endif
1285
1286#if RK1_ENABLED
1287 PURE module function getDisMahalSqMixInvDef_D2_RK1(point, invCov) result(mahalSq)
1288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1289 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvDef_D2_RK1
1290#endif
1291 use pm_kind, only: RKG => RK1
1292 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:)
1293 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1294 end function
1295#endif
1296
1297 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1298
1299 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1300 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1301 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1302
1303 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1304
1305#if CK5_ENABLED
1306 PURE module function getDisMahalSqMixInvCen_D2_CK5(point, invCov, center) result(mahalSq)
1307#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1308 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_CK5
1309#endif
1310 use pm_kind, only: CKG => CK5
1311 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1312 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1313 end function
1314#endif
1315
1316#if CK4_ENABLED
1317 PURE module function getDisMahalSqMixInvCen_D2_CK4(point, invCov, center) result(mahalSq)
1318#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1319 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_CK4
1320#endif
1321 use pm_kind, only: CKG => CK4
1322 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1323 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1324 end function
1325#endif
1326
1327#if CK3_ENABLED
1328 PURE module function getDisMahalSqMixInvCen_D2_CK3(point, invCov, center) result(mahalSq)
1329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1330 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_CK3
1331#endif
1332 use pm_kind, only: CKG => CK3
1333 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1334 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1335 end function
1336#endif
1337
1338#if CK2_ENABLED
1339 PURE module function getDisMahalSqMixInvCen_D2_CK2(point, invCov, center) result(mahalSq)
1340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1341 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_CK2
1342#endif
1343 use pm_kind, only: CKG => CK2
1344 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1345 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1346 end function
1347#endif
1348
1349#if CK1_ENABLED
1350 PURE module function getDisMahalSqMixInvCen_D2_CK1(point, invCov, center) result(mahalSq)
1351#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1352 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_CK1
1353#endif
1354 use pm_kind, only: CKG => CK1
1355 complex(CKG), intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1356 complex(CKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1357 end function
1358#endif
1359
1360 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1361
1362#if RK5_ENABLED
1363 PURE module function getDisMahalSqMixInvCen_D2_RK5(point, invCov, center) result(mahalSq)
1364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1365 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_RK5
1366#endif
1367 use pm_kind, only: RKG => RK5
1368 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1369 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1370 end function
1371#endif
1372
1373#if RK4_ENABLED
1374 PURE module function getDisMahalSqMixInvCen_D2_RK4(point, invCov, center) result(mahalSq)
1375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1376 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_RK4
1377#endif
1378 use pm_kind, only: RKG => RK4
1379 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1380 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1381 end function
1382#endif
1383
1384#if RK3_ENABLED
1385 PURE module function getDisMahalSqMixInvCen_D2_RK3(point, invCov, center) result(mahalSq)
1386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1387 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_RK3
1388#endif
1389 use pm_kind, only: RKG => RK3
1390 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1391 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1392 end function
1393#endif
1394
1395#if RK2_ENABLED
1396 PURE module function getDisMahalSqMixInvCen_D2_RK2(point, invCov, center) result(mahalSq)
1397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1398 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_RK2
1399#endif
1400 use pm_kind, only: RKG => RK2
1401 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1402 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1403 end function
1404#endif
1405
1406#if RK1_ENABLED
1407 PURE module function getDisMahalSqMixInvCen_D2_RK1(point, invCov, center) result(mahalSq)
1408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1409 !DEC$ ATTRIBUTES DLLEXPORT :: getDisMahalSqMixInvCen_D2_RK1
1410#endif
1411 use pm_kind, only: RKG => RK1
1412 real(RKG) , intent(in), contiguous :: point(:,:), invCov(:,:,:), center(:,:)
1413 real(RKG) :: mahalSq(size(invCov, 3, IK), size(point, 2, IK))
1414 end function
1415#endif
1416
1417 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1418
1419 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1420 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1422
1423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1425 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1426
1427 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1429 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1430
1431 end interface
1432
1433!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1434
1534
1535 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1536 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1537 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1538
1539 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1540 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1541 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1542
1543 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1544 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1545 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1546
1547 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1548
1549#if CK5_ENABLED
1550 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_CK5(mahalSq, point, invCov)
1551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1552 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_CK5
1553#endif
1554 use pm_kind, only: CKG => CK5
1555 complex(CKG), intent(in) :: point, invCov
1556 complex(CKG), intent(out) :: mahalSq
1557 end subroutine
1558#endif
1559
1560#if CK4_ENABLED
1561 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_CK4(mahalSq, point, invCov)
1562#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1563 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_CK4
1564#endif
1565 use pm_kind, only: CKG => CK4
1566 complex(CKG), intent(in) :: point, invCov
1567 complex(CKG), intent(out) :: mahalSq
1568 end subroutine
1569#endif
1570
1571#if CK3_ENABLED
1572 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_CK3(mahalSq, point, invCov)
1573#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1574 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_CK3
1575#endif
1576 use pm_kind, only: CKG => CK3
1577 complex(CKG), intent(in) :: point, invCov
1578 complex(CKG), intent(out) :: mahalSq
1579 end subroutine
1580#endif
1581
1582#if CK2_ENABLED
1583 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_CK2(mahalSq, point, invCov)
1584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1585 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_CK2
1586#endif
1587 use pm_kind, only: CKG => CK2
1588 complex(CKG), intent(in) :: point, invCov
1589 complex(CKG), intent(out) :: mahalSq
1590 end subroutine
1591#endif
1592
1593#if CK1_ENABLED
1594 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_CK1(mahalSq, point, invCov)
1595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1596 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_CK1
1597#endif
1598 use pm_kind, only: CKG => CK1
1599 complex(CKG), intent(in) :: point, invCov
1600 complex(CKG), intent(out) :: mahalSq
1601 end subroutine
1602#endif
1603
1604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1605
1606#if RK5_ENABLED
1607 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_RK5(mahalSq, point, invCov)
1608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1609 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_RK5
1610#endif
1611 use pm_kind, only: RKG => RK5
1612 real(RKG) , intent(in) :: point, invCov
1613 real(RKG) , intent(out) :: mahalSq
1614 end subroutine
1615#endif
1616
1617#if RK4_ENABLED
1618 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_RK4(mahalSq, point, invCov)
1619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1620 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_RK4
1621#endif
1622 use pm_kind, only: RKG => RK4
1623 real(RKG) , intent(in) :: point, invCov
1624 real(RKG) , intent(out) :: mahalSq
1625 end subroutine
1626#endif
1627
1628#if RK3_ENABLED
1629 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_RK3(mahalSq, point, invCov)
1630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1631 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_RK3
1632#endif
1633 use pm_kind, only: RKG => RK3
1634 real(RKG) , intent(in) :: point, invCov
1635 real(RKG) , intent(out) :: mahalSq
1636 end subroutine
1637#endif
1638
1639#if RK2_ENABLED
1640 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_RK2(mahalSq, point, invCov)
1641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1642 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_RK2
1643#endif
1644 use pm_kind, only: RKG => RK2
1645 real(RKG) , intent(in) :: point, invCov
1646 real(RKG) , intent(out) :: mahalSq
1647 end subroutine
1648#endif
1649
1650#if RK1_ENABLED
1651 PURE elemental module subroutine setDisMahalSqEleInvDef_D0_RK1(mahalSq, point, invCov)
1652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1653 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvDef_D0_RK1
1654#endif
1655 use pm_kind, only: RKG => RK1
1656 real(RKG) , intent(in) :: point, invCov
1657 real(RKG) , intent(out) :: mahalSq
1658 end subroutine
1659#endif
1660
1661 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1662
1663 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1665 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1666
1667 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1668
1669#if CK5_ENABLED
1670 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_CK5(mahalSq, point, invCov, center)
1671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1672 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_CK5
1673#endif
1674 use pm_kind, only: CKG => CK5
1675 complex(CKG), intent(in) :: point, invCov, center
1676 complex(CKG), intent(out) :: mahalSq
1677 end subroutine
1678#endif
1679
1680#if CK4_ENABLED
1681 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_CK4(mahalSq, point, invCov, center)
1682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1683 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_CK4
1684#endif
1685 use pm_kind, only: CKG => CK4
1686 complex(CKG), intent(in) :: point, invCov, center
1687 complex(CKG), intent(out) :: mahalSq
1688 end subroutine
1689#endif
1690
1691#if CK3_ENABLED
1692 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_CK3(mahalSq, point, invCov, center)
1693#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1694 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_CK3
1695#endif
1696 use pm_kind, only: CKG => CK3
1697 complex(CKG), intent(in) :: point, invCov, center
1698 complex(CKG), intent(out) :: mahalSq
1699 end subroutine
1700#endif
1701
1702#if CK2_ENABLED
1703 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_CK2(mahalSq, point, invCov, center)
1704#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1705 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_CK2
1706#endif
1707 use pm_kind, only: CKG => CK2
1708 complex(CKG), intent(in) :: point, invCov, center
1709 complex(CKG), intent(out) :: mahalSq
1710 end subroutine
1711#endif
1712
1713#if CK1_ENABLED
1714 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_CK1(mahalSq, point, invCov, center)
1715#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1716 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_CK1
1717#endif
1718 use pm_kind, only: CKG => CK1
1719 complex(CKG), intent(in) :: point, invCov, center
1720 complex(CKG), intent(out) :: mahalSq
1721 end subroutine
1722#endif
1723
1724 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1725
1726#if RK5_ENABLED
1727 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_RK5(mahalSq, point, invCov, center)
1728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1729 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_RK5
1730#endif
1731 use pm_kind, only: RKG => RK5
1732 real(RKG) , intent(in) :: point, invCov, center
1733 real(RKG) , intent(out) :: mahalSq
1734 end subroutine
1735#endif
1736
1737#if RK4_ENABLED
1738 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_RK4(mahalSq, point, invCov, center)
1739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1740 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_RK4
1741#endif
1742 use pm_kind, only: RKG => RK4
1743 real(RKG) , intent(in) :: point, invCov, center
1744 real(RKG) , intent(out) :: mahalSq
1745 end subroutine
1746#endif
1747
1748#if RK3_ENABLED
1749 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_RK3(mahalSq, point, invCov, center)
1750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1751 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_RK3
1752#endif
1753 use pm_kind, only: RKG => RK3
1754 real(RKG) , intent(in) :: point, invCov, center
1755 real(RKG) , intent(out) :: mahalSq
1756 end subroutine
1757#endif
1758
1759#if RK2_ENABLED
1760 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_RK2(mahalSq, point, invCov, center)
1761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1762 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_RK2
1763#endif
1764 use pm_kind, only: RKG => RK2
1765 real(RKG) , intent(in) :: point, invCov, center
1766 real(RKG) , intent(out) :: mahalSq
1767 end subroutine
1768#endif
1769
1770#if RK1_ENABLED
1771 PURE elemental module subroutine setDisMahalSqEleInvCen_D0_RK1(mahalSq, point, invCov, center)
1772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1773 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqEleInvCen_D0_RK1
1774#endif
1775 use pm_kind, only: RKG => RK1
1776 real(RKG) , intent(in) :: point, invCov, center
1777 real(RKG) , intent(out) :: mahalSq
1778 end subroutine
1779#endif
1780
1781 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1782
1783 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1784 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1785 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1786
1787 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1789 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1790
1791 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1792 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1793 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1794
1795 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1796
1797#if CK5_ENABLED
1798 PURE module subroutine setDisMahalSqOneInvDef_D1_CK5(mahalSq, point, invCov)
1799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1800 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_CK5
1801#endif
1802 use pm_kind, only: CKG => CK5
1803 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:)
1804 complex(CKG), intent(out) :: mahalSq
1805 end subroutine
1806#endif
1807
1808#if CK4_ENABLED
1809 PURE module subroutine setDisMahalSqOneInvDef_D1_CK4(mahalSq, point, invCov)
1810#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1811 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_CK4
1812#endif
1813 use pm_kind, only: CKG => CK4
1814 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:)
1815 complex(CKG), intent(out) :: mahalSq
1816 end subroutine
1817#endif
1818
1819#if CK3_ENABLED
1820 PURE module subroutine setDisMahalSqOneInvDef_D1_CK3(mahalSq, point, invCov)
1821#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1822 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_CK3
1823#endif
1824 use pm_kind, only: CKG => CK3
1825 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:)
1826 complex(CKG), intent(out) :: mahalSq
1827 end subroutine
1828#endif
1829
1830#if CK2_ENABLED
1831 PURE module subroutine setDisMahalSqOneInvDef_D1_CK2(mahalSq, point, invCov)
1832#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1833 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_CK2
1834#endif
1835 use pm_kind, only: CKG => CK2
1836 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:)
1837 complex(CKG), intent(out) :: mahalSq
1838 end subroutine
1839#endif
1840
1841#if CK1_ENABLED
1842 PURE module subroutine setDisMahalSqOneInvDef_D1_CK1(mahalSq, point, invCov)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_CK1
1845#endif
1846 use pm_kind, only: CKG => CK1
1847 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:)
1848 complex(CKG), intent(out) :: mahalSq
1849 end subroutine
1850#endif
1851
1852 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1853
1854#if RK5_ENABLED
1855 PURE module subroutine setDisMahalSqOneInvDef_D1_RK5(mahalSq, point, invCov)
1856#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1857 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_RK5
1858#endif
1859 use pm_kind, only: RKG => RK5
1860 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:)
1861 real(RKG) , intent(out) :: mahalSq
1862 end subroutine
1863#endif
1864
1865#if RK4_ENABLED
1866 PURE module subroutine setDisMahalSqOneInvDef_D1_RK4(mahalSq, point, invCov)
1867#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1868 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_RK4
1869#endif
1870 use pm_kind, only: RKG => RK4
1871 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:)
1872 real(RKG) , intent(out) :: mahalSq
1873 end subroutine
1874#endif
1875
1876#if RK3_ENABLED
1877 PURE module subroutine setDisMahalSqOneInvDef_D1_RK3(mahalSq, point, invCov)
1878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1879 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_RK3
1880#endif
1881 use pm_kind, only: RKG => RK3
1882 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:)
1883 real(RKG) , intent(out) :: mahalSq
1884 end subroutine
1885#endif
1886
1887#if RK2_ENABLED
1888 PURE module subroutine setDisMahalSqOneInvDef_D1_RK2(mahalSq, point, invCov)
1889#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1890 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_RK2
1891#endif
1892 use pm_kind, only: RKG => RK2
1893 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:)
1894 real(RKG) , intent(out) :: mahalSq
1895 end subroutine
1896#endif
1897
1898#if RK1_ENABLED
1899 PURE module subroutine setDisMahalSqOneInvDef_D1_RK1(mahalSq, point, invCov)
1900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1901 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D1_RK1
1902#endif
1903 use pm_kind, only: RKG => RK1
1904 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:)
1905 real(RKG) , intent(out) :: mahalSq
1906 end subroutine
1907#endif
1908
1909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1910
1911 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1912 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1913 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1914
1915 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1916
1917#if CK5_ENABLED
1918 PURE module subroutine setDisMahalSqOneInvCen_D1_CK5(mahalSq, point, invCov, center)
1919#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1920 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_CK5
1921#endif
1922 use pm_kind, only: CKG => CK5
1923 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1924 complex(CKG), intent(out) :: mahalSq
1925 end subroutine
1926#endif
1927
1928#if CK4_ENABLED
1929 PURE module subroutine setDisMahalSqOneInvCen_D1_CK4(mahalSq, point, invCov, center)
1930#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1931 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_CK4
1932#endif
1933 use pm_kind, only: CKG => CK4
1934 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1935 complex(CKG), intent(out) :: mahalSq
1936 end subroutine
1937#endif
1938
1939#if CK3_ENABLED
1940 PURE module subroutine setDisMahalSqOneInvCen_D1_CK3(mahalSq, point, invCov, center)
1941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1942 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_CK3
1943#endif
1944 use pm_kind, only: CKG => CK3
1945 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1946 complex(CKG), intent(out) :: mahalSq
1947 end subroutine
1948#endif
1949
1950#if CK2_ENABLED
1951 PURE module subroutine setDisMahalSqOneInvCen_D1_CK2(mahalSq, point, invCov, center)
1952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1953 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_CK2
1954#endif
1955 use pm_kind, only: CKG => CK2
1956 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1957 complex(CKG), intent(out) :: mahalSq
1958 end subroutine
1959#endif
1960
1961#if CK1_ENABLED
1962 PURE module subroutine setDisMahalSqOneInvCen_D1_CK1(mahalSq, point, invCov, center)
1963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1964 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_CK1
1965#endif
1966 use pm_kind, only: CKG => CK1
1967 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1968 complex(CKG), intent(out) :: mahalSq
1969 end subroutine
1970#endif
1971
1972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1973
1974#if RK5_ENABLED
1975 PURE module subroutine setDisMahalSqOneInvCen_D1_RK5(mahalSq, point, invCov, center)
1976#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1977 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_RK5
1978#endif
1979 use pm_kind, only: RKG => RK5
1980 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1981 real(RKG) , intent(out) :: mahalSq
1982 end subroutine
1983#endif
1984
1985#if RK4_ENABLED
1986 PURE module subroutine setDisMahalSqOneInvCen_D1_RK4(mahalSq, point, invCov, center)
1987#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1988 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_RK4
1989#endif
1990 use pm_kind, only: RKG => RK4
1991 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:), center(:)
1992 real(RKG) , intent(out) :: mahalSq
1993 end subroutine
1994#endif
1995
1996#if RK3_ENABLED
1997 PURE module subroutine setDisMahalSqOneInvCen_D1_RK3(mahalSq, point, invCov, center)
1998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1999 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_RK3
2000#endif
2001 use pm_kind, only: RKG => RK3
2002 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:), center(:)
2003 real(RKG) , intent(out) :: mahalSq
2004 end subroutine
2005#endif
2006
2007#if RK2_ENABLED
2008 PURE module subroutine setDisMahalSqOneInvCen_D1_RK2(mahalSq, point, invCov, center)
2009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2010 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_RK2
2011#endif
2012 use pm_kind, only: RKG => RK2
2013 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:), center(:)
2014 real(RKG) , intent(out) :: mahalSq
2015 end subroutine
2016#endif
2017
2018#if RK1_ENABLED
2019 PURE module subroutine setDisMahalSqOneInvCen_D1_RK1(mahalSq, point, invCov, center)
2020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2021 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D1_RK1
2022#endif
2023 use pm_kind, only: RKG => RK1
2024 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:), center(:)
2025 real(RKG) , intent(out) :: mahalSq
2026 end subroutine
2027#endif
2028
2029 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2030
2031 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2032 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2033 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2034
2035 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2036 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2037 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2038
2039 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2040
2041#if CK5_ENABLED
2042 PURE module subroutine setDisMahalSqOneInvDef_D2_CK5(mahalSq, point, invCov)
2043#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2044 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_CK5
2045#endif
2046 use pm_kind, only: CKG => CK5
2047 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:)
2048 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2049 end subroutine
2050#endif
2051
2052#if CK4_ENABLED
2053 PURE module subroutine setDisMahalSqOneInvDef_D2_CK4(mahalSq, point, invCov)
2054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2055 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_CK4
2056#endif
2057 use pm_kind, only: CKG => CK4
2058 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:)
2059 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2060 end subroutine
2061#endif
2062
2063#if CK3_ENABLED
2064 PURE module subroutine setDisMahalSqOneInvDef_D2_CK3(mahalSq, point, invCov)
2065#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2066 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_CK3
2067#endif
2068 use pm_kind, only: CKG => CK3
2069 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:)
2070 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2071 end subroutine
2072#endif
2073
2074#if CK2_ENABLED
2075 PURE module subroutine setDisMahalSqOneInvDef_D2_CK2(mahalSq, point, invCov)
2076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2077 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_CK2
2078#endif
2079 use pm_kind, only: CKG => CK2
2080 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:)
2081 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2082 end subroutine
2083#endif
2084
2085#if CK1_ENABLED
2086 PURE module subroutine setDisMahalSqOneInvDef_D2_CK1(mahalSq, point, invCov)
2087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2088 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_CK1
2089#endif
2090 use pm_kind, only: CKG => CK1
2091 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:)
2092 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2093 end subroutine
2094#endif
2095
2096 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2097
2098#if RK5_ENABLED
2099 PURE module subroutine setDisMahalSqOneInvDef_D2_RK5(mahalSq, point, invCov)
2100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2101 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_RK5
2102#endif
2103 use pm_kind, only: RKG => RK5
2104 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:)
2105 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2106 end subroutine
2107#endif
2108
2109#if RK4_ENABLED
2110 PURE module subroutine setDisMahalSqOneInvDef_D2_RK4(mahalSq, point, invCov)
2111#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2112 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_RK4
2113#endif
2114 use pm_kind, only: RKG => RK4
2115 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:)
2116 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2117 end subroutine
2118#endif
2119
2120#if RK3_ENABLED
2121 PURE module subroutine setDisMahalSqOneInvDef_D2_RK3(mahalSq, point, invCov)
2122#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2123 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_RK3
2124#endif
2125 use pm_kind, only: RKG => RK3
2126 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:)
2127 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2128 end subroutine
2129#endif
2130
2131#if RK2_ENABLED
2132 PURE module subroutine setDisMahalSqOneInvDef_D2_RK2(mahalSq, point, invCov)
2133#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2134 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_RK2
2135#endif
2136 use pm_kind, only: RKG => RK2
2137 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:)
2138 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2139 end subroutine
2140#endif
2141
2142#if RK1_ENABLED
2143 PURE module subroutine setDisMahalSqOneInvDef_D2_RK1(mahalSq, point, invCov)
2144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2145 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvDef_D2_RK1
2146#endif
2147 use pm_kind, only: RKG => RK1
2148 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:)
2149 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2150 end subroutine
2151#endif
2152
2153 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2154
2155 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2156 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2157 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2158
2159 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2160
2161#if CK5_ENABLED
2162 PURE module subroutine setDisMahalSqOneInvCen_D2_CK5(mahalSq, point, invCov, center)
2163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2164 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_CK5
2165#endif
2166 use pm_kind, only: CKG => CK5
2167 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2168 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2169 end subroutine
2170#endif
2171
2172#if CK4_ENABLED
2173 PURE module subroutine setDisMahalSqOneInvCen_D2_CK4(mahalSq, point, invCov, center)
2174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2175 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_CK4
2176#endif
2177 use pm_kind, only: CKG => CK4
2178 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2179 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2180 end subroutine
2181#endif
2182
2183#if CK3_ENABLED
2184 PURE module subroutine setDisMahalSqOneInvCen_D2_CK3(mahalSq, point, invCov, center)
2185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2186 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_CK3
2187#endif
2188 use pm_kind, only: CKG => CK3
2189 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2190 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2191 end subroutine
2192#endif
2193
2194#if CK2_ENABLED
2195 PURE module subroutine setDisMahalSqOneInvCen_D2_CK2(mahalSq, point, invCov, center)
2196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2197 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_CK2
2198#endif
2199 use pm_kind, only: CKG => CK2
2200 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2201 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2202 end subroutine
2203#endif
2204
2205#if CK1_ENABLED
2206 PURE module subroutine setDisMahalSqOneInvCen_D2_CK1(mahalSq, point, invCov, center)
2207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2208 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_CK1
2209#endif
2210 use pm_kind, only: CKG => CK1
2211 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2212 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2213 end subroutine
2214#endif
2215
2216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2217
2218#if RK5_ENABLED
2219 PURE module subroutine setDisMahalSqOneInvCen_D2_RK5(mahalSq, point, invCov, center)
2220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2221 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_RK5
2222#endif
2223 use pm_kind, only: RKG => RK5
2224 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2225 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2226 end subroutine
2227#endif
2228
2229#if RK4_ENABLED
2230 PURE module subroutine setDisMahalSqOneInvCen_D2_RK4(mahalSq, point, invCov, center)
2231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2232 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_RK4
2233#endif
2234 use pm_kind, only: RKG => RK4
2235 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2236 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2237 end subroutine
2238#endif
2239
2240#if RK3_ENABLED
2241 PURE module subroutine setDisMahalSqOneInvCen_D2_RK3(mahalSq, point, invCov, center)
2242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2243 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_RK3
2244#endif
2245 use pm_kind, only: RKG => RK3
2246 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2247 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2248 end subroutine
2249#endif
2250
2251#if RK2_ENABLED
2252 PURE module subroutine setDisMahalSqOneInvCen_D2_RK2(mahalSq, point, invCov, center)
2253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2254 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_RK2
2255#endif
2256 use pm_kind, only: RKG => RK2
2257 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2258 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2259 end subroutine
2260#endif
2261
2262#if RK1_ENABLED
2263 PURE module subroutine setDisMahalSqOneInvCen_D2_RK1(mahalSq, point, invCov, center)
2264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2265 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqOneInvCen_D2_RK1
2266#endif
2267 use pm_kind, only: RKG => RK1
2268 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:), center(:)
2269 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2270 end subroutine
2271#endif
2272
2273 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2274
2275 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2276 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2277 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2278
2279 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2280 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2281 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2282
2283 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2284 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2285 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2286
2287 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2288
2289#if CK5_ENABLED
2290 PURE module subroutine setDisMahalSqMixInvDef_D1_CK5(mahalSq, point, invCov)
2291#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2292 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_CK5
2293#endif
2294 use pm_kind, only: CKG => CK5
2295 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:)
2296 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2297 end subroutine
2298#endif
2299
2300#if CK4_ENABLED
2301 PURE module subroutine setDisMahalSqMixInvDef_D1_CK4(mahalSq, point, invCov)
2302#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2303 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_CK4
2304#endif
2305 use pm_kind, only: CKG => CK4
2306 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:)
2307 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2308 end subroutine
2309#endif
2310
2311#if CK3_ENABLED
2312 PURE module subroutine setDisMahalSqMixInvDef_D1_CK3(mahalSq, point, invCov)
2313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2314 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_CK3
2315#endif
2316 use pm_kind, only: CKG => CK3
2317 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:)
2318 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2319 end subroutine
2320#endif
2321
2322#if CK2_ENABLED
2323 PURE module subroutine setDisMahalSqMixInvDef_D1_CK2(mahalSq, point, invCov)
2324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2325 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_CK2
2326#endif
2327 use pm_kind, only: CKG => CK2
2328 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:)
2329 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2330 end subroutine
2331#endif
2332
2333#if CK1_ENABLED
2334 PURE module subroutine setDisMahalSqMixInvDef_D1_CK1(mahalSq, point, invCov)
2335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2336 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_CK1
2337#endif
2338 use pm_kind, only: CKG => CK1
2339 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:)
2340 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2341 end subroutine
2342#endif
2343
2344 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2345
2346#if RK5_ENABLED
2347 PURE module subroutine setDisMahalSqMixInvDef_D1_RK5(mahalSq, point, invCov)
2348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2349 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_RK5
2350#endif
2351 use pm_kind, only: RKG => RK5
2352 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:)
2353 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2354 end subroutine
2355#endif
2356
2357#if RK4_ENABLED
2358 PURE module subroutine setDisMahalSqMixInvDef_D1_RK4(mahalSq, point, invCov)
2359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2360 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_RK4
2361#endif
2362 use pm_kind, only: RKG => RK4
2363 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:)
2364 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2365 end subroutine
2366#endif
2367
2368#if RK3_ENABLED
2369 PURE module subroutine setDisMahalSqMixInvDef_D1_RK3(mahalSq, point, invCov)
2370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2371 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_RK3
2372#endif
2373 use pm_kind, only: RKG => RK3
2374 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:)
2375 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2376 end subroutine
2377#endif
2378
2379#if RK2_ENABLED
2380 PURE module subroutine setDisMahalSqMixInvDef_D1_RK2(mahalSq, point, invCov)
2381#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2382 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_RK2
2383#endif
2384 use pm_kind, only: RKG => RK2
2385 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:)
2386 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2387 end subroutine
2388#endif
2389
2390#if RK1_ENABLED
2391 PURE module subroutine setDisMahalSqMixInvDef_D1_RK1(mahalSq, point, invCov)
2392#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2393 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D1_RK1
2394#endif
2395 use pm_kind, only: RKG => RK1
2396 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:)
2397 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2398 end subroutine
2399#endif
2400
2401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2402
2403 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2405 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2406
2407 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2408
2409#if CK5_ENABLED
2410 PURE module subroutine setDisMahalSqMixInvCen_D1_CK5(mahalSq, point, invCov, center)
2411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2412 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_CK5
2413#endif
2414 use pm_kind, only: CKG => CK5
2415 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2416 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2417 end subroutine
2418#endif
2419
2420#if CK4_ENABLED
2421 PURE module subroutine setDisMahalSqMixInvCen_D1_CK4(mahalSq, point, invCov, center)
2422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2423 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_CK4
2424#endif
2425 use pm_kind, only: CKG => CK4
2426 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2427 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2428 end subroutine
2429#endif
2430
2431#if CK3_ENABLED
2432 PURE module subroutine setDisMahalSqMixInvCen_D1_CK3(mahalSq, point, invCov, center)
2433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2434 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_CK3
2435#endif
2436 use pm_kind, only: CKG => CK3
2437 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2438 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2439 end subroutine
2440#endif
2441
2442#if CK2_ENABLED
2443 PURE module subroutine setDisMahalSqMixInvCen_D1_CK2(mahalSq, point, invCov, center)
2444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2445 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_CK2
2446#endif
2447 use pm_kind, only: CKG => CK2
2448 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2449 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2450 end subroutine
2451#endif
2452
2453#if CK1_ENABLED
2454 PURE module subroutine setDisMahalSqMixInvCen_D1_CK1(mahalSq, point, invCov, center)
2455#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2456 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_CK1
2457#endif
2458 use pm_kind, only: CKG => CK1
2459 complex(CKG), intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2460 complex(CKG), intent(out) , contiguous :: mahalSq(:)
2461 end subroutine
2462#endif
2463
2464 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2465
2466#if RK5_ENABLED
2467 PURE module subroutine setDisMahalSqMixInvCen_D1_RK5(mahalSq, point, invCov, center)
2468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2469 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_RK5
2470#endif
2471 use pm_kind, only: RKG => RK5
2472 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2473 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2474 end subroutine
2475#endif
2476
2477#if RK4_ENABLED
2478 PURE module subroutine setDisMahalSqMixInvCen_D1_RK4(mahalSq, point, invCov, center)
2479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2480 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_RK4
2481#endif
2482 use pm_kind, only: RKG => RK4
2483 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2484 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2485 end subroutine
2486#endif
2487
2488#if RK3_ENABLED
2489 PURE module subroutine setDisMahalSqMixInvCen_D1_RK3(mahalSq, point, invCov, center)
2490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2491 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_RK3
2492#endif
2493 use pm_kind, only: RKG => RK3
2494 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2495 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2496 end subroutine
2497#endif
2498
2499#if RK2_ENABLED
2500 PURE module subroutine setDisMahalSqMixInvCen_D1_RK2(mahalSq, point, invCov, center)
2501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2502 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_RK2
2503#endif
2504 use pm_kind, only: RKG => RK2
2505 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2506 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2507 end subroutine
2508#endif
2509
2510#if RK1_ENABLED
2511 PURE module subroutine setDisMahalSqMixInvCen_D1_RK1(mahalSq, point, invCov, center)
2512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2513 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D1_RK1
2514#endif
2515 use pm_kind, only: RKG => RK1
2516 real(RKG) , intent(in) , contiguous :: point(:), invCov(:,:,:), center(:,:)
2517 real(RKG) , intent(out) , contiguous :: mahalSq(:)
2518 end subroutine
2519#endif
2520
2521 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2522
2523 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2524 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2525 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2526
2527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2528 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2529 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2530
2531 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2532
2533#if CK5_ENABLED
2534 PURE module subroutine setDisMahalSqMixInvDef_D2_CK5(mahalSq, point, invCov)
2535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2536 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_CK5
2537#endif
2538 use pm_kind, only: CKG => CK5
2539 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2540 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2541 end subroutine
2542#endif
2543
2544#if CK4_ENABLED
2545 PURE module subroutine setDisMahalSqMixInvDef_D2_CK4(mahalSq, point, invCov)
2546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2547 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_CK4
2548#endif
2549 use pm_kind, only: CKG => CK4
2550 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2551 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2552 end subroutine
2553#endif
2554
2555#if CK3_ENABLED
2556 PURE module subroutine setDisMahalSqMixInvDef_D2_CK3(mahalSq, point, invCov)
2557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2558 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_CK3
2559#endif
2560 use pm_kind, only: CKG => CK3
2561 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2562 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2563 end subroutine
2564#endif
2565
2566#if CK2_ENABLED
2567 PURE module subroutine setDisMahalSqMixInvDef_D2_CK2(mahalSq, point, invCov)
2568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2569 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_CK2
2570#endif
2571 use pm_kind, only: CKG => CK2
2572 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2573 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2574 end subroutine
2575#endif
2576
2577#if CK1_ENABLED
2578 PURE module subroutine setDisMahalSqMixInvDef_D2_CK1(mahalSq, point, invCov)
2579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2580 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_CK1
2581#endif
2582 use pm_kind, only: CKG => CK1
2583 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2584 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2585 end subroutine
2586#endif
2587
2588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2589
2590#if RK5_ENABLED
2591 PURE module subroutine setDisMahalSqMixInvDef_D2_RK5(mahalSq, point, invCov)
2592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2593 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_RK5
2594#endif
2595 use pm_kind, only: RKG => RK5
2596 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2597 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2598 end subroutine
2599#endif
2600
2601#if RK4_ENABLED
2602 PURE module subroutine setDisMahalSqMixInvDef_D2_RK4(mahalSq, point, invCov)
2603#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2604 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_RK4
2605#endif
2606 use pm_kind, only: RKG => RK4
2607 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2608 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2609 end subroutine
2610#endif
2611
2612#if RK3_ENABLED
2613 PURE module subroutine setDisMahalSqMixInvDef_D2_RK3(mahalSq, point, invCov)
2614#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2615 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_RK3
2616#endif
2617 use pm_kind, only: RKG => RK3
2618 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2619 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2620 end subroutine
2621#endif
2622
2623#if RK2_ENABLED
2624 PURE module subroutine setDisMahalSqMixInvDef_D2_RK2(mahalSq, point, invCov)
2625#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2626 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_RK2
2627#endif
2628 use pm_kind, only: RKG => RK2
2629 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2630 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2631 end subroutine
2632#endif
2633
2634#if RK1_ENABLED
2635 PURE module subroutine setDisMahalSqMixInvDef_D2_RK1(mahalSq, point, invCov)
2636#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2637 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvDef_D2_RK1
2638#endif
2639 use pm_kind, only: RKG => RK1
2640 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:)
2641 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2642 end subroutine
2643#endif
2644
2645 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2646
2647 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2648 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2649 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2650
2651 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2652
2653#if CK5_ENABLED
2654 PURE module subroutine setDisMahalSqMixInvCen_D2_CK5(mahalSq, point, invCov, center)
2655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2656 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_CK5
2657#endif
2658 use pm_kind, only: CKG => CK5
2659 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2660 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2661 end subroutine
2662#endif
2663
2664#if CK4_ENABLED
2665 PURE module subroutine setDisMahalSqMixInvCen_D2_CK4(mahalSq, point, invCov, center)
2666#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2667 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_CK4
2668#endif
2669 use pm_kind, only: CKG => CK4
2670 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2671 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2672 end subroutine
2673#endif
2674
2675#if CK3_ENABLED
2676 PURE module subroutine setDisMahalSqMixInvCen_D2_CK3(mahalSq, point, invCov, center)
2677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2678 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_CK3
2679#endif
2680 use pm_kind, only: CKG => CK3
2681 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2682 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2683 end subroutine
2684#endif
2685
2686#if CK2_ENABLED
2687 PURE module subroutine setDisMahalSqMixInvCen_D2_CK2(mahalSq, point, invCov, center)
2688#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2689 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_CK2
2690#endif
2691 use pm_kind, only: CKG => CK2
2692 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2693 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2694 end subroutine
2695#endif
2696
2697#if CK1_ENABLED
2698 PURE module subroutine setDisMahalSqMixInvCen_D2_CK1(mahalSq, point, invCov, center)
2699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2700 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_CK1
2701#endif
2702 use pm_kind, only: CKG => CK1
2703 complex(CKG), intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2704 complex(CKG), intent(out) , contiguous :: mahalSq(:,:)
2705 end subroutine
2706#endif
2707
2708 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2709
2710#if RK5_ENABLED
2711 PURE module subroutine setDisMahalSqMixInvCen_D2_RK5(mahalSq, point, invCov, center)
2712#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2713 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_RK5
2714#endif
2715 use pm_kind, only: RKG => RK5
2716 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2717 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2718 end subroutine
2719#endif
2720
2721#if RK4_ENABLED
2722 PURE module subroutine setDisMahalSqMixInvCen_D2_RK4(mahalSq, point, invCov, center)
2723#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2724 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_RK4
2725#endif
2726 use pm_kind, only: RKG => RK4
2727 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2728 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2729 end subroutine
2730#endif
2731
2732#if RK3_ENABLED
2733 PURE module subroutine setDisMahalSqMixInvCen_D2_RK3(mahalSq, point, invCov, center)
2734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2735 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_RK3
2736#endif
2737 use pm_kind, only: RKG => RK3
2738 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2739 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2740 end subroutine
2741#endif
2742
2743#if RK2_ENABLED
2744 PURE module subroutine setDisMahalSqMixInvCen_D2_RK2(mahalSq, point, invCov, center)
2745#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2746 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_RK2
2747#endif
2748 use pm_kind, only: RKG => RK2
2749 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2750 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2751 end subroutine
2752#endif
2753
2754#if RK1_ENABLED
2755 PURE module subroutine setDisMahalSqMixInvCen_D2_RK1(mahalSq, point, invCov, center)
2756#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2757 !DEC$ ATTRIBUTES DLLEXPORT :: setDisMahalSqMixInvCen_D2_RK1
2758#endif
2759 use pm_kind, only: RKG => RK1
2760 real(RKG) , intent(in) , contiguous :: point(:,:), invCov(:,:,:), center(:,:)
2761 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
2762 end subroutine
2763#endif
2764
2765 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2766
2767 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2768 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2769 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2770
2771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2773 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2774
2775 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2776 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2777 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2778
2779 end interface
2780
2781!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2782
2783end module pm_distanceMahal ! LCOV_EXCL_LINE
Generate and return the square of the Mahalanobis distance of a (set of npnt) point(s) from a single ...
Return the square of the Mahalanobis distance of a (set of npnt) point(s) from a single (or a set of ...
This module contains classes and procedures for computing the Mahalanobis statistical distance.
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter CK3
Definition: pm_kind.F90:442
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RK1
Definition: pm_kind.F90:522