Introduction

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

Introduction

Welcome to SMILE Programmer's Manual, version 2.2.4.R1, built on 4/27/2024.

To download the software described in this manual, please visit https://download.bayesfusion.com. The source code of SMILE is proprietary. If the operating system and/or compiler that you want to use SMILE with is not on the list of binaries available at our software download website, please contact us.

SMILE (Structural Modeling, Inference, and Learning Engine) is a software library for performing Bayesian inference, written in C++, available in compiled form for a variety of platforms, including multiple versions of Visual C++ for 32-bit and 64-bit Windows, macOS and iOS running on Intel and ARM, and Linux. We assume that the reader has a basic knowledge of the C++ programming language. We also provide wrappers exposing SMILE functionality to programs written in Java (jSMILE), Python (PySMILE), R (rSMILE), .NET (Smile.NET), or using COM (SMILE.COM, targeted for use with Microsoft Excel). However, this manual is for C++ programmers and does not cover the interoperability issues, except for MATLAB (see Appendix M: MATLAB and SMILE). Wrapper documentation is provided in a separate manual.

If you are new to SMILE and would like to start with an informal, tutorial-like introduction, please start with the Hello SMILE! 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. GeNIe manual, along with all other BayesFusion documentation, is available at https://support.bayesfusion.com/docs. Other resources, including introduction to probabilistic graphical models, are available at https://www.bayesfusion.com/resources/.

Yet another useful resource is available at https://repo.bayesfusion.com. The site is powered by BayesBox, our interactive model viewer/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 the posterior probabilities after evidence is modified in the web browser.