Computational graphs for matrix functions

07/26/2021
by   Elias Jarlebring, et al.
0

Many numerical methods for evaluating matrix functions can be naturally viewed as computational graphs. Rephrasing these methods as directed acyclic graphs (DAGs) is a particularly effective approach to study existing techniques, improve them, and eventually derive new ones. The accuracy of these matrix techniques can be characterized by the accuracy of their scalar counterparts, thus designing algorithms for matrix functions can be regarded as a scalar-valued optimization problem. The derivatives needed during the optimization can be calculated automatically by exploiting the structure of the DAG, in a fashion analogous to backpropagation. This paper describes GraphMatFun.jl, a Julia package that offers the means to generate and manipulate computational graphs, optimize their coefficients, and generate Julia, MATLAB, and C code to evaluate them efficiently at a matrix argument. The software also provides tools to estimate the accuracy of a graph-based algorithm and thus obtain numerically reliable methods. For the exponential, for example, using a particular form (degree-optimal) of polynomials produces implementations that in many cases are cheaper, in terms of computational cost, than the Padé-based techniques typically used in mathematical software. The optimized graphs and the corresponding generated code are available online.

READ FULL TEXT

page 22

page 31

research
06/15/2019

Computing Theta Functions with Julia

We present a new package Theta.jl for computing with the Riemann theta f...
research
06/05/2013

Structural Intervention Distance (SID) for Evaluating Causal Graphs

Causal inference relies on the structure of a graph, often a directed ac...
research
03/18/2021

An efficient algorithm to compute the exponential of skew-Hermitian matrices for the time integration of the Schrödinger equation

We present a practical algorithm to approximate the exponential of skew-...
research
01/23/2019

High order concentrated non-negative matrix-exponential functions

Highly concentrated functions play an important role in many research fi...
research
04/23/2019

Integer Programming for Learning Directed Acyclic Graphs from Continuous Data

Learning directed acyclic graphs (DAGs) from data is a challenging task ...
research
08/25/2017

Streaming Graph Challenge: Stochastic Block Partition

An important objective for analyzing real-world graphs is to achieve sca...

Please sign up or login with your details

Forgot password? Click here to reset