C++ Jupyter Kernel
Kasturi Murthy, PhD
Introduction
●
C++ is a very powerful language but lacks intutive character
that programming languages like R and Python offer in the
backdrop of Jupyter Kernel
●
This a short presentation on my experiments with Jupyter
Kernel for C++ (Ubuntu 18.04) covering the following:
– Simple C++ example
– How to Invoke C++ help as and when required
– Xwidgets in conjuction with Observer function
– Invoking Armadillo Linear Algebra Libraries, Random Number Generation and
dimensionality reduction techniques like PCA
●
Set up your programming environment –
Follow Github Instructions
Introduction
●
C++ is a very powerful language but lacks intutive character
that programming languages like R and Python in the
backdrop of Jupyter Kernel
●
This a short presentation on my experiments with Jupyter
Kernel for C++ (Ubuntu 18.04) covering the following:
– Simple C++ example
– How to Invoke C++ help as and when required
– Xwidgets in conjuction with Observer function
– Invoking Armadillo Linear Algebra Libraries, Random Number Generation and PCA
●
Set up your programming environment –
Follow Github Instructions
C++ Program
● Now, you see on top right side the
[1] The usual C++ stuff
[2] Nothing new initializing a variable ‘x’
[3] What is in the variable ‘x’ - the intutiveness aspect
C++ Program
xwidgets
C++ Program
C++11 Lambda
Function!
Principal Component Analysis (PCA)
➔ Armadillo uses BLAS and LPACK for Matrix
Operations
➔ OpenBLAS used in this example is an
implementation of BLAS (Basic Linear
Algebra Subprograms)
Conclusions
● Looked at how to bring Jupyter Kernel Capability to C++
using Xeus-cling
● Looked at:
– Simple C++ example
– How to Invoke C++ help as and when required – inline with code
– Xwidgets in conjuction with Observer Pattern/function
– Invoking Armadillo Linear Algebra Libraries, Random Number Generation and PCA
Thanks!

Cling c++

  • 1.
  • 2.
    Introduction ● C++ is avery powerful language but lacks intutive character that programming languages like R and Python offer in the backdrop of Jupyter Kernel ● This a short presentation on my experiments with Jupyter Kernel for C++ (Ubuntu 18.04) covering the following: – Simple C++ example – How to Invoke C++ help as and when required – Xwidgets in conjuction with Observer function – Invoking Armadillo Linear Algebra Libraries, Random Number Generation and dimensionality reduction techniques like PCA ● Set up your programming environment – Follow Github Instructions
  • 3.
    Introduction ● C++ is avery powerful language but lacks intutive character that programming languages like R and Python in the backdrop of Jupyter Kernel ● This a short presentation on my experiments with Jupyter Kernel for C++ (Ubuntu 18.04) covering the following: – Simple C++ example – How to Invoke C++ help as and when required – Xwidgets in conjuction with Observer function – Invoking Armadillo Linear Algebra Libraries, Random Number Generation and PCA ● Set up your programming environment – Follow Github Instructions
  • 4.
    C++ Program ● Now,you see on top right side the [1] The usual C++ stuff [2] Nothing new initializing a variable ‘x’ [3] What is in the variable ‘x’ - the intutiveness aspect
  • 5.
  • 6.
  • 7.
    Principal Component Analysis(PCA) ➔ Armadillo uses BLAS and LPACK for Matrix Operations ➔ OpenBLAS used in this example is an implementation of BLAS (Basic Linear Algebra Subprograms)
  • 8.
    Conclusions ● Looked athow to bring Jupyter Kernel Capability to C++ using Xeus-cling ● Looked at: – Simple C++ example – How to Invoke C++ help as and when required – inline with code – Xwidgets in conjuction with Observer Pattern/function – Invoking Armadillo Linear Algebra Libraries, Random Number Generation and PCA
  • 9.