Black box linear algebra with the linbox library

William J. Turner, Erich Kaltofen · NCSU Libraries Repository (North Carolina State University Libraries) · 2002

Black box model of a matrix y ∈ F n −−−−→ −−−−→Ay ∈ F n A ∈ F n×n Perform linear algebra operations, e.g., A −1 b (Wiedemann, 1986) Precondition to reduce matrix problems to computing minimum polynomials Delayed matrix multiplication requires efficient matrix-vector productsProject LinBox Approximately 20 researchers Canada, France, and U.S. Algorithms and software for symbolic linear algebra Particularly black box matrix methods 40,000 lines of C++ code Online documentation (Doc++) LinBox Objects Fields Parameterized with encapsulated element and random element generator types C++ types allowed to be elements; contain no information of field Contain methods for element assignment, equality, arithmetic, IO: x = y: F.assign(x,y) x = = y: F.areEqual(x,y) x = y + z: F.add(x,y,z) x = x + y, x+ = y: F.addin(x,y) cout sparse associative vectors: association of indices to nonzero elements, e.g., STL map Black Box Matrices Templatized by vector class Only applications to vector allowed: x = Ay: A.apply(x,y) x = A.apply(y)

Read the paper · More papers on PaperTik