Skip to content

imperial-qore/mp_pfqn_java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mp_pfqn_java

Java port of mp_pfqn: multiprecision solvers for exact analysis of closed (and mixed) product-form queueing networks.

The original C implementation is maintained in the same organization at https://github.com/imperial-qore/mp_pfqn.

All arithmetic is exact: integer demands and think times use java.math.BigInteger, and rational quantities use Apache Commons Math BigFraction (a BigInteger numerator/denominator pair). This mirrors the C library's GMP mpz_t/mpq_t precision, so normalizing constants are exact rationals with no floating-point rounding.

Solvers

Package jline.lib.mp_pfqn. Each solver is a class exposing a static solve(QnModel) returning the normalizing constant G, throughputs X, and queue lengths Q (as applicable).

Class Algorithm
Mva Mean Value Analysis (closed)
Ca Convolution algorithm with multi-server expansion
Recal Recursion by chain (RECAL)
Mom Method of Moments
Comom Class-oriented Method of Moments (BTF)
Gld Load-dependent normalizing constant (convolution)
ComomLd CoMoM for load-dependent repairman models
MvaMx MVA for mixed open/closed networks
MvaLdMx Load-dependent MVA for mixed networks
LcfsMva LCFS-NP / LCFS-PR MVA (two stations)
ProComom Marginal queue-length probabilities

Model

QnModel qnm = new QnModel(
    M,            // number of stations
    R,            // number of classes
    N,            // int[] population per class (-1 = open)
    Z,            // BigInteger[] think times
    L,            // BigInteger[M][R] service demands
    mi);          // int[] station multiplicities
Ca.Result r = Ca.solve(qnm);   // r.G, r.X, r.Q

Mixed models add hasOpen/lambda; load-dependent models add isLD/mu (see the constructors of QnModel).

Build and test

mvn compile        # build
mvn test           # run the JUnit 5 parity suite

The tests validate every solver against reference values produced by the original C mp_pfqn binaries.

License

BSD 3-Clause. See LICENSE.

About

Multiprecision solvers for closed product-form queueing networks in Java

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages