ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
Modules List
Here is a list of all modules with brief descriptions:
[detail level 12]
 Npm_arrayThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for various array operations.
 Npm_arrayCenterThis module contains procedures and generic interfaces for resizing an input array and centering the original contents of the array in a new array
 Npm_arrayChangeThis module contains procedures and generic interfaces for selecting uniformly-distributed random choices from a given character or integer range.
 Npm_arrayChoiceThis module contains procedures and generic interfaces for selecting uniformly-distributed or arbitrarily-distributed random choices from a given list of intrinsic type of arbitrary kind.
 Npm_arrayCompactThis module contains procedures and generic interfaces for condensing (removing duplicate sequential the elements of) an array of arbitrary intrinsic type.
 Npm_arrayCompareLexThis module contains procedures and generic interfaces for performing lexicographic comparisons of two arrays of similar type, kind, and rank.
 Npm_arrayComplementThis module contains procedures and generic interfaces for computing the absolute or relative complement of one set in another set
 Npm_arrayCopyThis module contains procedures and generic interfaces for copying strided or indexed elements of one scalar string or vector of arbitrary intrinsic type and kind to strided or indexed elements of another scalar string or vector of the same type and kind.
 Npm_arrayFillThis module contains procedures and generic interfaces for convenient allocation and filling of arrays of arbitrary intrinsic types (i.e., character, integer, logical, complex, real), kinds, and non-zero ranks (up to 3).
 Npm_arrayFindThis module contains procedures and generic interfaces for finding locations of a pattern in arrays of various types at the specified instances of occurrence of pattern
 Npm_arrayInitThis module contains procedures and generic interfaces for efficient initialization of arbitrary rectangular cores and surrounding halos of arrays of arbitrary size, shape, and rank of arbitrary intrinsic type and kind.
 Npm_arrayInsertThis module contains procedures and generic interfaces for inserting an insertion into the specified locations of an input arrays of various types
 Npm_arrayMembershipThis module contains procedures and generic interfaces for assessing whether particular value(s) or any values or all values within a collection are members of another collection of values, or within a range of values that specifies a mathematical set.
 Npm_arrayMergeThis module contains procedures and generic interfaces for sorting and merging two previously-sorted arrays
 Npm_arrayMinMaxThis module contains procedures and generic interfaces for finding the minimum and maximum of two input scalar numbers through lexical comparison
 Npm_arrayPadThis module contains procedures and generic interfaces for resizing an input array and padding them with symbols on the left or right
 Npm_arrayRangeThis module contains procedures and generic interfaces for generating ranges of discrete character, integer, or real -valued sequences with minimum-possible or user-specified fixed linear spacings.
 Npm_arrayRankThis module contains procedures and generic interfaces for obtaining various rankings of elements of arrays of various types
 Npm_arrayRebillThis module contains procedures and generic interfaces for resizing allocatable arrays of various types, relocating their contents, and rebinding (re-indexing) their lower and upper bounds, and refilling the newly added elements.
 Npm_arrayRebindThis module contains procedures and generic interfaces for resizing allocatable arrays of various types, relocating their contents and rebinding (re-indexing) their lower and upper bounds
 Npm_arrayRefillThis module contains procedures and generic interfaces for resizing allocatable arrays of various types, relocating their contents and filling the newly added elements with specific values
 Npm_arrayRefineThis module contains procedures and generic interfaces for refining (thinning) (weighted) arrays of arbitrary intrinsic types.
 Npm_arrayRemapThis module contains procedures and generic interfaces for remapping arrays of various types
 Npm_arrayRemoveThis module contains procedures and generic interfaces for removing a pattern from arrays of various types at the specified instances of occurrence of pattern
 Npm_arrayReplaceThis module contains procedures and generic interfaces for replacing patterns within arrays of various types.
 Npm_arrayResizeThis module contains procedures and generic interfaces for resizing allocatable arrays of various types and relocating their contents, without initializing or filling the newly added elements with specific values.
 Npm_arrayReverseThis module contains procedures and generic interfaces for reversing the order of elements in arrays of various types
 Npm_arraySearchThis module contains procedures and generic interfaces for finding the specific array index whose element has the largest value smaller than the input value in arrays of various types.
 Npm_arraySelectThis module contains procedures and generic interfaces for selecting the \(k\)th smallest element in unsorted arrays of various types
 Npm_arrayShuffleThis module contains procedures and generic interfaces for shuffling arrays of various types
 Npm_arraySortThis module contains procedures and generic interfaces for various sorting tasks.
 Npm_arraySpaceThis module contains procedures and generic interfaces for generating arrays with linear or logarithmic spacing
 Npm_arraySplitThis module contains procedures and generic interfaces for splitting arrays of various types at the specified instances of occurrence of pattern
 Npm_arrayStripThis module contains procedures and generic interfaces for stripping a given pattern from the left and right ends of an array of arbitrary intrinsic type and kind.
 Npm_arrayUniqueThis module contains procedures and generic interfaces for finding unique values of an input array of various types
 Npm_arrayVerboseThis module contains procedures and generic interfaces for flattening (duplicating the elements of) an array according to a user-specified weight
 Npm_batseThis module contains procedures and generic interfaces for modeling data and detectors of the BATSE Gamma-Ray detectors onboard the NASA Compton Gamma-Ray Observatory.
 Npm_benchThis module contains abstract interfaces and types that facilitate benchmarking of different procedures
 Npm_bitThis module contains constants and procedures that are relevant to bit manipulation.
 Npm_blasThis module contains a set of generic interfaces to the BLAS routines.
 Npm_clusKmeansThis module contains procedures and routines for the computing the Kmeans clustering of a given set of data
 Npm_clusTestThis module contains procedures and routines for the creating test datasets for clustering algorithms
 Npm_complexAbsThis module contains procedures and generic interfaces for performing element-wise comparison of the real and imaginary components of scalars and arrays of arbitrary ranks of various types
 Npm_complexCompareAllThis module contains procedures and generic interfaces for checking if both of the corresponding real and imaginary components of two complex numbers satisfy a relational operator
 Npm_complexCompareAnyThis module contains procedures and generic interfaces for checking if either of the corresponding real and imaginary components of two complex numbers satisfy a relational operator
 Npm_complexCompareLexThis module contains procedures and generic interfaces for checking if a complex number is lexicographically comparable to another complex number of the same kind.
 Npm_complexDivThis module contains procedures and generic interfaces for computing the complex division robustly without potential overflow of computations.
 Npm_complexMinMaxThis module contains procedures and generic interfaces for computing element-wise minimum/maximum value/location of the real and imaginary components of scalars and arrays of arbitrary ranks of type complex of arbitrary kinds
 Npm_containerThis module contains the derived types for generating allocatable containers of scalar, vector, matrix, or cube of integer, real, complex, logical, and string values of arbitrary kinds.
 Npm_controlThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently have multiple implementations determined by the specific control flow used in the algorithm.
 Npm_cosmicRateThis module contains procedures and generic interfaces for computing the cosmic rates of celestial phenomena
 Npm_cosmologyThis module contains procedures and generic interfaces and constants for cosmological calculations
 Npm_dateTimeThis module contains classes and procedures for computing, manipulating, and styling dates and times
 Npm_distanceBhatThis module contains classes and procedures for computing the Bhattacharyya statistical distance between two probability distributions
 Npm_distanceEuclidThis module contains procedures and generic interfaces for computing the Euclidean norm of a single point (with respect to origin or a given reference) or the pairwise Euclidean distances (squared) of a collection of points with respect to another set of reference points, optionally without undue overflow or underflow
 Npm_distanceHellingerThis module contains classes and procedures for computing the Hellinger statistical distance between two probability distributions
 Npm_distanceKolmThis module contains classes and procedures for computing the Kolmogorov statistical distance
 Npm_distanceMahalThis module contains classes and procedures for computing the Mahalanobis statistical distance
 Npm_distBandThis module contains procedures and generic interfaces for computing the Band photon distribution widely used in modeling the spectra of a class of celestial objects known as Gamma-Ray Bursts.
 Npm_distBernThis module contains classes and procedures for generating Bernoulli-distributed random numbers.
 Npm_distBetaThis module contains classes and procedures for computing various statistical quantities related to the Beta distribution
 Npm_distBinomThis module contains classes and procedures for computing various statistical quantities related to the Binomial distribution
 Npm_distCholThis module contains classes and procedures for generating random upper or lower Cholesky factor triangular matrices
 Npm_distCosRaisedThis module contains classes and procedures for computing various statistical quantities related to the Raised Cosine distribution
 Npm_distCovThis module contains classes and procedures for generating random matrices distributed on the space of positive definite matrices, such that their determinants is uniformly or power-law distributed
 Npm_distEggBoxThis module contains classes and procedures for computing various statistical quantities related to the mathematical EggBox density function
 Npm_distExpThis module contains classes and procedures for computing various statistical quantities related to the Exponential distribution
 Npm_distExpGammaThis module contains classes and procedures for computing various statistical quantities related to the ExpGamma distribution
 Npm_distGammaThis module contains classes and procedures for computing various statistical quantities related to the Gamma distribution
 Npm_distGenExpGammaThis module contains classes and procedures for computing various statistical quantities related to the GenExpGamma distribution
 Npm_distGenGammaThis module contains classes and procedures for computing various statistical quantities related to the GenGamma distribution
 Npm_distGeomThis module contains classes and procedures for computing various statistical quantities related to the Geometric distribution
 Npm_distGeomCyclicThis module contains classes and procedures for computing various statistical quantities related to the Cyclic Geometric distribution
 Npm_distKolmThis module contains classes and procedures for computing various statistical quantities related to the Kolmogorov distribution
 Npm_distLogNormThis module contains classes and procedures for computing various statistical quantities related to the Lognormal distribution
 Npm_distLogUnifThis module contains classes and procedures for computing various statistical quantities related to the LogUniform (or Reciprocal) distribution
 Npm_distMultiNormThis module contains classes and procedures for computing various statistical quantities related to the MultiVariate Normal (MVN) distribution
 Npm_distNegExpThis module contains classes and procedures for computing various statistical quantities related to the Negative Exponential distribution
 Npm_distNormThis module contains classes and procedures for computing various statistical quantities related to the univariate Normal distribution
 Npm_distNormShellThis module contains procedures and generic interfaces for computing the Multivariate Normal Shell density function or mixtures of such densities with varying parameters
 Npm_distParetoThis module contains classes and procedures for computing various statistical quantities related to the (Truncated) Pareto distribution
 Npm_distPiwiPowetoThis module contains classes and procedures for computing various statistical quantities related to the (Truncated) PieceWise Power/Pareto distribution (hence the name PiwiPoweto)
 Npm_distPoisThis module contains classes and procedures for computing various statistical quantities related to the Poisson distribution
 Npm_distPowerThis module contains classes and procedures for computing various statistical quantities related to the (Truncated) Power distribution
 Npm_distPowetoThis module contains classes and procedures for computing various statistical quantities related to the (Truncated) Power/Pareto distribution (hence the name Poweto)
 Npm_distUnifThis module contains classes and procedures for computing various statistical quantities related to the univariate Uniform distribution
 Npm_distUnifEllThis module contains classes and procedures for computing various statistical quantities related to the MultiVariate Uniform Ellipsoid (MVUE) distribution
 Npm_distUnifEllsThis module contains classes and procedures for computing various statistical quantities related to the Multiple MultiVariate Uniform Ellipsoid (MMVUE) distribution
 Npm_distUnifParThis module contains classes and procedures for setting up and computing the properties of the MultiVariate Uniform Parallelepiped (MVUP) Distribution
 Npm_distUnifSphereThis module contains classes and procedures for computing various statistical quantities related to the Uniform Spherical distribution
 Npm_ellipsoidThis module contains classes and procedures for setting up and computing the properties of the hyper-ellipsoids in arbitrary dimensions
 Npm_errThis module contains classes and procedures for reporting and handling errors.
 Npm_exceptThis module contains procedures and generic interfaces for testing for exceptional cases at runtime.
 Npm_fftnrThis module contains procedures and generic interfaces for computing the Discrete Fourier Transform of a real or complex sequence using radix-2 Cooley–Tukey Fast-Fourier Transform.
 Npm_fftpackThis module contains procedures and generic interfaces for computing the Discrete Fourier Transform of a real or complex sequence using a mixed-radix decimation-in-frequency Fast-Fourier Transform.
 Npm_ioThis module contains classes and procedures for input/output (IO) or generic display operations on standard displays or internal/external files
 Npm_kindThis module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte library for the two standard supported Fortran and C-Fortran Interoperation (CFI) modes.
 Npm_knnThis module contains procedures and generic interfaces for computing the nearest neighbor statistics of random samples.
 Npm_lapackThis module contains a set of generic interfaces to the LAPACK routines.
 Npm_logicalCompareThis module contains procedures and generic interfaces for performing a variety of logical comparison operations using logical values as if .true. evaluates to 1 and .false. evaluates to 0
 Npm_math1mexpThis module contains procedures and generic interfaces for computing 1 - exp(x) more precisely for tiny x
 Npm_mathBetaThis module contains classes and procedures for computing the mathematical Beta Function and its inverse
 Npm_mathCompareThis module contains the procedures and interfaces for evaluating the relative or absolute proximity of two numeric values.
 Npm_mathConstThis module contains relevant mathematical constants
 Npm_mathCumPropExpThis module contains the procedures and interfaces for computing the cumulative sum of the exponential of an array without undue numerical overflow
 Npm_mathCumSumThis module contains the procedures and interfaces for computing the cumulative sum of an array
 Npm_mathDivMulThis module contains procedures and generic interfaces for evaluating the mathematical division and multiplication operators acting on integer, complex, or real values.
 Npm_mathErfThis module contains classes and procedures for computing the mathematical Inverse Error Function
 Npm_mathExpThis module contains procedures and generic interfaces for computing the previous/next integer exponent for the given base that yields a number smaller/larger than the absolute input value
 Npm_mathFactorialThis module contains procedures and generic interfaces for the Factorial function
 Npm_mathFactoringThis module contains procedures and generic interfaces for computing the prime factors of integers
 Npm_mathFisherThis module contains procedures and generic interfaces for evaluating the Fisher transformation and its inverse.
 Npm_mathGammaThis module contains procedures and generic interfaces for the Lower and Upper Incomplete Gamma functions
 Npm_mathGammaAMThis module contains procedures and generic interfaces for the Lower and Upper Incomplete Gamma functions
 Npm_mathGammaGilThis module contains procedures and generic interfaces for the Lower and Upper Incomplete Gamma functions
 Npm_mathGammaNRThis module contains procedures and generic interfaces for the Lower and Upper Incomplete Gamma functions
 Npm_mathLog1pThis module contains procedures and generic interfaces for computing log(1 + x) more precisely for tiny x
 Npm_mathLogAddExpThis module contains procedures and generic interfaces for adding two real or complex values without causing overflow or underflow
 Npm_mathLogSubExpThis module contains procedures and generic interfaces for subtracting two real or complex values without causing overflow or underflow
 Npm_mathLogSumExpThis module contains the procedures and interfaces for computing the natural logarithm of the sum of exponentials the elements of an array
 Npm_mathMinMaxThis module contains procedures and generic interfaces for finding the minimum and maximum of two input scalar values through lexical comparison
 Npm_mathNumSysThis module contains procedures and generic interfaces for converting numbers to different bases in different numeral systems
 Npm_mathRootThis module contains classes and procedures for computing the roots of one-dimensional continuous mathematical functions using various root-finding methods.
 Npm_mathRootTestThis module contains a collection of example functions for testing or examining the root-finding routines of the ParaMonte library
 Npm_mathRoundThis module contains procedures and generic interfaces for rounding real values to whole integers.
 Npm_mathSqrtThis module contains procedures and generic interfaces for computing the square root of integers
 Npm_mathSubAddThis module contains procedures and generic interfaces for evaluating the mathematical operator \(\mp\) acting on integer, complex, or real values.
 Npm_mathSumThis module contains procedures and generic interfaces for computing sum(x) accurately when x is a long array of wildly varying real or complex values.
 Npm_mathUnsignedThis module contains procedures and generic interfaces for various operations with positive integers with results that have the same binary representation as an unsigned integer.
Such operations (like addition or subtraction) would normally cause runtime overflow errors within the default Fortran environment.
 Npm_matrixCholThis module contains procedures and generic interfaces for computing the Cholesky factorization of positive definite matrices.
 Npm_matrixClassThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently need to work on different classes of matrices (e.g., Symmetric, Hermitian, Unitary, Orthogonal, ...) as their input matrix arguments.
 Npm_matrixCopyThis module contains procedures and generic interfaces relevant to copying (diagonal or upper/lower triangular) subsets of matrices of arbitrary intrinsic types and kinds from one matrix of arbitrary shape and packing format to another matrix of arbitrary shape and packing format.
 Npm_matrixDetThis module contains procedures and generic interfaces relevant to the computation of the determinants of square matrices.
 Npm_matrixIndexThis module contains procedures and generic interfaces for converting the indices of matrix elements between different packing and storage formats
 Npm_matrixInitThis module contains procedures and generic interfaces relevant to generating and initializing matrices of arbitrary shapes (:, :).
 Npm_matrixInvThis module contains abstract and concrete derived types and procedures related to the inversion of square matrices.
 Npm_matrixLUPThis module contains procedures and generic interfaces relevant to the partially LU Pivoted decomposition of matrix operations and linear algebra
 Npm_matrixMulAddThis module contains procedures and generic interfaces relevant to combined matrix-matrix or matrix-vector multiplication and addition
 Npm_matrixMulTriThis module contains the procedures for multiplication of a square triangular matrix in various transpositions with a general matrix.
 Npm_matrixPackThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently need to work with different packaging of Symmetric/Hermitian/Band or other special types of their input matrix arguments.
 Npm_matrixSubsetThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently need to work on the upper/lower-diagonal triangular blocks of some of their input matrix arguments.
 Npm_matrixTraceThis module contains procedures and generic interfaces for computing the additive or multiplicative trace of a given square matrix in arbitrary packing formats
 Npm_matrixTransThis module contains abstract and concrete derived types and procedures related to various common matrix transposition operations for which there is a corresponding matrix class defined in pm_matrixClass.
 Npm_matrixUpdateThis module contains procedures and generic interfaces relevant to arbitrary-rank updates to vectors, general matrices, or Symmetric/Hermitian triangular matrices of type integer, complex, and real of arbitrary type-kind parameters.
 Npm_memoryThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for various search operations.
Such procedures frequently need to work with a specific searching method within the algorithm implementation.
 Npm_optimizationThis module contains procedures, generic interfaces, and types for numerical optimizations of mathematical functions
 Npm_optionThis module contains procedures, generic interfaces, and types for generating default values for optional arguments
 Npm_osThis module contains procedures and generic interfaces for inferring the processor operating system
 Npm_parallelismThis module contains procedures and generic interfaces for facilitating parallel computations or computing the performance of the parallel Coarray/MPI/OpenMP algorithms
 Npm_paramonteThis module contains procedures and data that provide general information about the ParaMonte library, its interfaces, and its build
 Npm_physUnitThis module contains relevant physical constants
 Npm_polationThis module contains procedures and data types for interpolation of finite samples of data.
 Npm_polynomialThis module contains procedures and generic interfaces for performing various mathematical operations involving polynomials.
 Npm_quadPackThis module contains classes and procedures for non-adaptive and adaptive global numerical quadrature and Cauchy Principal Value of 1D functions with various types of singularities and points of difficulties via the Gauss-Kronrod and Clenshaw-Curtis quadrature formulae.
 Npm_quadRombThis module contains classes and procedures to perform numerical integrations
 Npm_quadTestThis module contains a collection of interesting or challenging integrands for testing or examining the integration routines of the ParaMonte library.
 Npm_sampleACTThis module contains classes and procedures for computing properties related to the auto correlation time (ACT) of random sequences
 Npm_sampleAffinityThis module contains classes and procedures for affine transformation of multivariate samples
 Npm_sampleCCFThis module contains classes and procedures for computing properties related to the cross correlation of random samples
 Npm_sampleCorThis module contains classes and procedures for computing properties related to the correlation matrices of random samples
 Npm_sampleCovThis module contains classes and procedures for computing the properties related to the covariance matrices of a random sample
 Npm_sampleECDFThis module contains classes and procedures for computing the Empirical Cumulative Distribution Function (ECDF) of an observational sample and the associated the various properties
 Npm_sampleMeanThis module contains classes and procedures for computing the first moment (i.e., the statistical mean) of random weighted samples
 Npm_sampleNormThis module contains classes and procedures for normalizing univariate or multivariate samples by arbitrary amounts along specific directions
 Npm_sampleQuanThis module contains procedures and data types for computing sample quantile.
 Npm_sampleScaleThis module contains classes and procedures for scaling (i.e., multiplying) univariate or multivariate samples by arbitrary amounts along specific directions
 Npm_sampleShiftThis module contains classes and procedures for shifting univariate or multivariate samples by arbitrary amounts along specific directions.
 Npm_sampleVarThis module contains classes and procedures for computing the properties related to the covariance matrices of a random sample.
 Npm_sampleWeightThis module contains the types, classes, and procedures relevant to weights of random samples
 Npm_samplingThis module contains procedures and generic interfaces for the ParaMonte library sampler routines
 Npm_searchThis module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for various search operations.
Such procedures frequently need to work with a specific searching method within the algorithm implementation.
 Npm_statestThis module contains classes and procedures for performing various statistical tests
 Npm_strThis module contains classes and procedures for various string manipulations and inquiries
 Npm_strANSIThis module contains procedures and generic interfaces for styling strings according for display on DEC VT100 or compatible terminals
 Npm_strASCIIThis module contains the uncommon and hardly representable ASCII characters as well as procedures for operating on strings that exclusively contain the 128 ASCII characters.
 Npm_swapThis module contains procedures and generic interfaces for swapping values of intrinsic Fortran types of arbitrary kinds.
 Npm_sysInfoThis module contains procedures and generic interfaces for inferring the operating system kernel type, name, and other information
 Npm_sysPathThis module contains classes and procedures for manipulating system file/folder paths.
 Npm_sysShellThis module contains procedures and generic interfaces for inferring the runtime system shell type and fetching information from the shell
 Npm_testThis module contains a simple unit-testing framework for the Fortran libraries, including the ParaMonte library
 Npm_timerThis module contains the timer procedures and derived types to facilitate timing applications at runtime.
 Npm_val2complexThis module contains procedures and types for facilitating the conversion of values of different types (e.g., intrinsic Fortran string and logical) to complex values of different kinds
 Npm_val2intThis module contains procedures and types for facilitating the conversion of values of different types (e.g., intrinsic Fortran string and logical) to integer values of different kinds
 Npm_val2logicalThis module contains procedures and types for facilitating the conversion of values of different types (e.g., intrinsic Fortran strings) to logical values of different kinds
 Npm_val2realThis module contains procedures and types for facilitating the conversion of values of different types (e.g., intrinsic Fortran string and logical) to real values of different kinds
 Npm_val2strThis module contains the generic procedures for converting values of different types and kinds to Fortran strings
 Npm_zigguratThis module contains procedures and generic interfaces for computing the Ziggurat set for for pseudo-random number sampling