<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«


Welcome to SMILE Wrapper Programmer's Manual, Version 1.5.0.R2, Built on 12/10/2019.

For the most recent version of this manual, please visit

SMILE is a  C++ software library for performing Bayesian inference. In order to ensure that its functionality can be easily integrated into software written in other languages, BayesFusion, LLC, provides wrapper libraries for Java, Python, R and .NET. The names of these products are:

jSMILE (Java and environments which can instantiate and use the JVM)

PySMILE (Python 2.7 and 3.x)

rSMILE (R 3.x)


Each wrapper includes SMILE, so you do not need to download SMILE or know how to use C++ SMILE in order to use the wrappers. We strive to ensure feature symmetry between the wrappers - features available in one wrapper are generally available in other wrappers.

We have also developed SMILE.COM, a wrapper exposing SMILE functionality through Windows' COM (Common Object Model). The target audience for SMILE.COM are Microsoft Excel users, although the library will work with any environment extensible through COM. This manual does not contain documentation for SMILE.COM.

If you are new to SMILE and would like to begin with an informal, tutorial-like introduction, please start with the Java, Python or .NET section of Platforms and Wrappers (depending on the programming language you're going to use), followed by Hello SMILE Wrapper! section. If you are an advanced user, please browse through the Table of Contents or search for the topic of your interest.

This manual refers to a good number of concepts that are assumed to be known to the reader, such as probability, utility, decision theory and decision analysis, Bayesian networks, influence diagrams, etc. Should you want to learn more about these, please refer to GeNIe manual. SMILE is GeNIe's Application Programmer's Interface (API) and practically every elementary operation performed with GeNIe translates to calls to SMILE methods. Being familiar with GeNIe may prove extremely useful in learning SMILE. Understanding some of SMILE’s functionality may be easier when performed interactively in GeNIe.