# Gaussian Variant of Freivalds' Algorithm for Efficient and Reliable   Matrix Product Verification

**Authors:** Hao Ji, Michael Mascagni, Yaohang Li

arXiv: 1705.10449 · 2017-05-31

## TL;DR

This paper introduces a Gaussian variant of Freivalds' algorithm for verifying matrix multiplication efficiently, with high reliability and fault detection capabilities, suitable for large matrices and error-prone environments.

## Contribution

The paper extends Freivalds' algorithm by using Gaussian projections, providing a probabilistic verification method with improved fault detection and efficiency.

## Key findings

- GVFA has the same computational complexity as Freivalds' algorithm ($O(n^2)$).
- GVFA produces false positives with probability approaching zero under exact arithmetic.
- The probability of false positives decreases exponentially with iterations, depending on floating-point errors.

## Abstract

In this article, we consider the general problem of checking the correctness of matrix multiplication. Given three $n \times n$ matrices $A$, $B$, and $C$, the goal is to verify that $A \times B=C$ without carrying out the computationally costly operations of matrix multiplication and comparing the product $A \times B$ with $C$, term by term. This is especially important when some or all of these matrices are very large, and when the computing environment is prone to soft errors. Here we extend Freivalds' algorithm to a Gaussian Variant of Freivalds' Algorithm (GVFA) by projecting the product $A \times B$ as well as $C$ onto a Gaussian random vector and then comparing the resulting vectors. The computational complexity of GVFA is consistent with that of Freivalds' algorithm, which is $O(n^{2})$. However, unlike Freivalds' algorithm, whose probability of a false positive is $2^{-k}$, where $k$ is the number of iterations. Our theoretical analysis shows that when $A \times B \neq C$, GVFA produces a false positive on set of inputs of measure zero with exact arithmetic. When we introduce round-off error and floating point arithmetic into our analysis, we can show that the larger this error, the higher the probability that GVFA avoids false positives. Moreover, by iterating GVFA $k$ times, the probability of a false positive decreases as $p^k$, where $p$ is a very small value depending on the nature of the fault on the result matrix and the arithmetic system's floating-point precision. Unlike deterministic algorithms, there do not exist any fault patterns that are completely undetectable with GVFA. Thus GVFA can be used to provide efficient fault tolerance in numerical linear algebra, and it can be efficiently implemented on modern computing architectures. In particular, GVFA can be very efficiently implemented on architectures with hardware support for fused multiply-add operations.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1705.10449/full.md

## Figures

4 figures with captions in the complete paper: https://tomesphere.com/paper/1705.10449/full.md

## References

39 references — full list in the complete paper: https://tomesphere.com/paper/1705.10449/full.md

---
Source: https://tomesphere.com/paper/1705.10449