Self-testing/correcting with applications to numerical problems

Manuel Blum*, Michael Luby, Ronitt Rubinfeld

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

589 Scopus citations

Abstract

Suppose someone gives us an extremely fast program P that we can call as a black box to compute a function f. Should we trust that P works correctly? A self-testing/correcting pair for f allows us to: (1) estimate the probability that P(x) ≠ φ(x) when x is randomly chosen; (2) on any input x, compute f(x) correctly as long as P is not too faulty on average. Furthermore, both (1) and (2) take time only slightly more than the original running time of P. We present general techniques for constructing simple to program self-testing/correcting pairs for a variety of numerical functions, including integer multiplication, modular multiplication, matrix multiplication, inverting matrices, computing the determinant of a matrix, computing the rank of a matrix, integer division, modular exponentiation, and polynomial multiplication.

Original languageEnglish
Pages (from-to)549-595
Number of pages47
JournalJournal of Computer and System Sciences
Volume47
Issue number3
DOIs
StatePublished - Dec 1993
Externally publishedYes

Funding

FundersFunder number
International Business Machines Corporation
United States-Israel Binational Science Foundation
Not added89-00312, CCR-9016468, CCR 88-13632, 9016468, CCR 92-01092

    Fingerprint

    Dive into the research topics of 'Self-testing/correcting with applications to numerical problems'. Together they form a unique fingerprint.

    Cite this