Computing Reviews

Testing matrix function algorithms using identities
Deadman E., Higham N. ACM Transactions on Mathematical Software42(1):1-15,2016.Type:Article
Date Reviewed: 06/17/16

Functional identity can be analyzed using reference solutions or with the Python library SciPy module that contains many probability distributions, one of which is a round-trip stability test of the algorithms. Linearized backward error can be computed using estimations of Fréchet derivatives and their norms, instead of “comparing the forward error with the product of the condition number and the unit roundoff.” The forward error does not seem to be the optimal solution in environments like C or Fortran. In 1993, W. J. Cody evaluated the identities of the functions of matrix scalars in “Algorithm 714: CELEFUNT” [1]. Here, his approach is developed to show that the programming errors that cannot be detected by other matrix functions are detected with a very high precision.

A quite detailed and clear presentation of using linear operators, and building the matrix function and its product with the cosine identity to obtain backward errors, supported with numerous examples of the variety of matrices, convince readers of all levels that the approach is not only interesting but also reliable. The only regret is that, nowadays, there are not many works devoted to the stability of matrix algorithms. For those interested in implementing SciPy or NumPy packages, I would suggest avoiding Ubuntu operating systems since the more comprehensive test suites may cause some problems. Linux is the best environment for employing this approach.


1)

Cody, W. J. Algorithm 714: CELEFUNT: a portable test package for complex elementary functions. ACM Transactions on Mathematical Software 19, 1(1993), 1–21.

Reviewer:  Jolanta Mizera-Pietraszko Review #: CR144506 (1609-0682)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy