Skip to content

Open-Risk-Academy/Academy-Course-DAT31055

Repository files navigation

Support material for Academy Course DAT 31055

Course Objectives

The main objective of the course is to compare and contrast the functionality of select popular linear algebra libraries using Python / Numpy as the baseline. The focus is on mature, long-existing and general purpose libraries.

This comparison can be used to:

  • as a learning tool for those new to numerical linear algebra / scientific computing
  • as a refresher tool when migrating between languages / frameworks
  • identify missing / desirable features
  • towards test suites comparing / validating implementations

How to use this course

The primary use of this course is envisaged as an online documentation / training resource. Once you familiarize yourself with the content you can use it as a reference whenever you need it. Numerical Linear Algebra Libraries compared

In the current version of the course three numerical linear algebra libraries are compared: Two C++ libraries (armadillo, eigen) versus the Python library ( numpy/linalg):

  • Numpy. NumPy is the fundamental package for scientific computing when using Python. It contains among other things a powerful N-dimensional array object and sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, Fourier transforms, random number capabilities and more.
  • Armadillo. Armadillo is C++ library for linear algebra & scientific computing. It is aiming towards a good balance between speed and ease of use. Armadillo provides a high-level syntax and functionality that is deliberately similar to Matlab.
  • Eigen. Eigen is a C++ template library for linear algebra. It proviides matrices, vectors, numerical solvers, and related algorithms.

Course Structure

The structure of the course is as follows: Over a number of individual Steps, the documentation of the linear algebra functionality is segmented into different sub-categories. For each sub-category there are side by side comparisons of the framework functionality.

We start with what can be considered core aspects of numerical linear algebra (arrays and operations on them) and then proceed to some more specialized numerical computation topics which are nevertheless quite typical use cases and frequently bundled with such libraries.

About

Support material for Academy course DAT31055: Linear Algebra with Numpy, Eigen and Armadillo

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published