BuTools Reference¶
About BuTools¶
BuTools is a large and growing set of functions related to Markovian performance and dependability analyis.
Our main motivation was to make our life easier by collecting the most important tools which we use almost every day. The multi-platform nature of BuTools and the standardized call interfaces help us in the collaborative work in our research group. Several functions do something trivial, but there are some gems as well; procedures, which have a hard to understand background and difficult implementation.
We hope that BuTools we be useful not only to us but to a broader community as well.
Using BuTools¶
Supported frameworks¶
At the moment BuTools supports the following three frameworks:
- MATLAB: a widely used industry-standard framework with high license fees
- NumPy/Python: a free (open source) alternative to MATLAB, with comparable performance. The popularity of python based scientific tools is rapidly growing, a huge and helpful community is available on the internet.
- Mathematica: This is an expensive alternative again, but it supports arbitrary precision arithmetic and symbolic computations, that can frequently be useful.
Loading BuTools¶
BuTools is portable, no installation is needed. The packages of BuTools can be loaded individually, but there are convenience functions available to load everything as well. If BuTools is located in directory <BTDir>, all BuTools packages can be loaded by
run('<BTDir>/Matlab/BuToolsInit.m') |
in Matlab, |
%run "<BTDir>/Python/BuToolsInit" |
in an IPython console, |
AppendTo[$Path,"<BTDir>/Mathematica"]; <<BuTools` |
in Mathematica. |
Global variables¶
There are three global variables used by BuTools:
Name in MATLAB | Name in Mathematica | Name in Python | Default value |
---|---|---|---|
BuToolsVerbose |
BuTools`Verbose |
butools.verbose |
False |
BuToolsCheckInput |
BuTools`CheckInput |
butools.checkInput |
True |
BuToolsCheckPrecision |
BuTools`CheckPrecision |
butools.checkPrecision |
1e-12 |
-
butools.
verbose
¶ Setting
verbose
toTrue
allows the functions to print as many useful messages to the output console as possible. Turning it off avoids bloating the console. The default value isFalse
, but for the examples of the reference documentation we have set it toTrue
.
-
butools.
checkInput
¶ If
checkInput
is set toTrue
, the functions of BuTools perform as many checks on the input parameters as possible. This can be very useful to recognize typos as soon as possible, but can be a waste of computational effort in case of a computationally demanding application.
-
butools.
checkPrecision
¶ This numeric value serves as the tolerance when the validity of the input parameters are checked.
Packages¶
- Utilities (
butools.utils
) - Markov Chains (
butools.mc
) - Moment expressions (
butools.moments
) - Representation Transformation Tools (
butools.reptrans
) - Tools for Phase-Type Distributions (
butools.ph
) - Tools for Discrete Phase-Type Distributions (
butools.dph
) - Tools for Markovian Arrival Processes (
butools.map
) - Tools for Discrete Markovian Arrival Processes (
butools.dmap
) - Tools for the Analysis of Measurement Traces (
butools.trace
) - Tools for fitting measurement traces (
butools.fitting
) - Matrix-Analytic Methods (
butools.mam
) - Tools for the Analysis of Queues (
butools.queues
)