March 21, 2024: Linear Algebra and the Eigen Library

Time and Location

THURSDAY, March 21, 2024 at 7:00 PM

In Person:
Microsoft Redmond Reactor | 3709 157th Ave NE, Redmond, WA 98052
Conf Room 20/1143 (12) Maple Reactor

Remote:
On Line Using Microsoft Teams
Meeting ID: 267 223 257 656
Passcode: ZvkWHu

Call in (audio only)
+1 323-849-4874
Phone Conference ID: 785 621 648#

Title

Linear Algebra and the Eigen Library

Abstract

Linear algebra is an essential part of scientific programming, particularly in domains such as quantitative finance, data science, physics, and medical research. As C++ did not have all the convenient built-in multidimensional array capabilities that came with Fortran platforms, scientific programmers making the transition to C++ back in the 1990’s often found themselves in an inconvenient situation with limited options. These included building up this functionality mostly from scratch, wrestling with interfaces to numerical Fortran libraries such as BLAS and LAPACK, or somehow convincing management to invest in a third-party commercial C++ linear algebra library.

The situation has improved substantially over the years with the release and availability of several well-regarded open-source linear algebra libraries for C++. One in particular that has become popular, first released in 2006, is the Eigen library. It has been adopted for use within both the TensorFlow machine learning library and the Stan Math Library, as well as in financial applications. Linear algebra has also become a point of emphasis in C++ Standard Library enhancements, with the release of std::mdspan (P0009) in C++23, and the BLAS (Basic Linear Algebra Subroutines) interface (P1673) that has been accepted for C++26.

In this talk, we will examine the setup and basics of the Eigen library, followed by a discussion of some of its more advanced features, such as matrix decompositions frequently used in quantitative work, as well as its compatibility with STL algorithms. It will conclude with an overview of how it might be used within the context of the C++26 BLAS proposal, via an interface with mdspan now in C++23.

Speaker Bio

Daniel Hanson is a former full-time lecturer in the Computational Finance & Risk Management program within the Department of Applied Mathematics at the University of Washington. His appointment followed over 25 years of experience in private sector quantitative development in finance and data science. He currently serves as the Student Program Coordinator for CppCon.

A Word From Our Sponsor

Please thank Microsoft for sponsoring our meeting room and Teams account!

Resources

Slides

Video