<< Click to Display Table of Contents >> Navigation: »No topics above this level« Introduction |
Welcome to the SMILE Wrapper Programmer's Manual, Version 2.4.R1, built on 10/15/2025.
To download the software described in this manual, go to http://download.bayesfusion.com.
SMILE is a C++ software library for performing Bayesian inference and serves as the underlying API for GeNIe, BayesFusion’s interactive modeling environment. To ensure that its functionality can be easily integrated into software written in other languages, BayesFusion, LLC provides wrapper libraries for Python, Java, R, and .NET. These products are:
•PySMILE (Python 2.7 and 3.x)
•jSMILE (Java and environments that can instantiate and use the JVM)
•rSMILE (R 4.x)
•SMILE.NET (.NET)
Each wrapper includes SMILE, so you do not need to download SMILE separately or be familiar with the C++ version in order to use the wrappers. We strive to maintain feature parity across wrappers—features available in one wrapper are generally available in the others.
BayesFusion has also developed SMILE.COM, a wrapper that exposes SMILE functionality through Windows COM (Common Object Model). The primary target audience for SMILE.COM is Microsoft Excel users, although the library can be used with any environment that supports COM. This manual does not include documentation for SMILE.COM.
If you are new to SMILE and would like to begin with an informal, tutorial-style introduction, please start with the Python, Java, R, or .NET section of Platforms and Wrappers (depending on the programming language you intend to use), followed by the Hello SMILE Wrapper! section. If you are an advanced user, please browse the Table of Contents or search for a specific topic.
This manual refers to several concepts assumed to be known to the reader, such as probability, utility, decision theory and decision analysis, Bayesian networks, and influence diagrams. For readers new to these concepts, the GeNIe software and its manual provide an interactive way to explore them. Since SMILE serves as GeNIe’s API, practically every operation performed in GeNIe translates to calls to SMILE methods, making GeNIe familiarity extremely useful for learning SMILE. The GeNIe manual, along with all other BayesFusion documentation, is available at https://support.bayesfusion.com/docs.
Other resources, including introductions to probabilistic graphical models, are available at https://www.bayesfusion.com/resources/. Another useful resource is https://repo.bayesfusion.com, powered by BayesBox, our interactive model viewer and repository software. The repository contains more than 100 example Bayesian networks, hybrid Bayesian networks, dynamic Bayesian networks, and influence diagrams. BayesBox runs SMILE on the server side and calls into its API to calculate posterior probabilities after evidence is modified in the web browser.