skip to main content
research-article

A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms

Published:07 April 2009Publication History
Skip Abstract Section

Abstract

The Rice Vector Library is a collection of C++ classes expressing core concepts (vector, function,…) of calculus in Hilbert space with minimal implementation dependence, and providing standardized interfaces behind which to hide application-dependent implementation details (data containers, function objects). A variety of coordinate-free algorithms from linear algebra and optimization, including Krylov subspace methods and various relatives of Newton's method for nonlinear equations and constrained and unconstrained optimization, may be expressed purely in terms of this system of classes. The resulting code may be used without alteration in a wide range of control, design, and parameter estimation applications, in serial and parallel computing environments.

References

  1. Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J., Croz, J. D., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D. 1992. LAPACK Users' Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Barry, K., Cavers, D., and Kneale, C. 1980. SEG-Y-recommended standards for digital tape formats. In Digital Tape Standards. Society of Exploration Geophysicists, Tulsa, OK.Google ScholarGoogle Scholar
  3. Bartlett, R. A. 2003. MOOCHO: Multifunctional object-oriented architecture for optimization, user's guide. Tech. rep. Sandia National Laboratory, Albuquerque, NM.Google ScholarGoogle Scholar
  4. Bartlett, R. A., Van Bloemen Waanders, B. G., and Heroux, M. A. 2004. Vector reduction/transformation operators. ACM Trans. Math. Softw. 30, 1 (Mar.), 62--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Benson, S., McInnes, L. C., and Moré, J. 2000. TAO: Toolkit for advanced optimization. Tech. rep. Argonne National Laboratory, Argonne, IL. www-fp.mcs.anl.gov/tao/.Google ScholarGoogle Scholar
  6. Cohen, J. K. and Stockwell, J. J. W. 2004. CWP/SU: Seismic Unix release no.37: A free Package for Seismic Research and Processing. Center for Wave Phenomena, Colorado School of Mines, Golden, CO.Google ScholarGoogle Scholar
  7. Deng, L., Gouveia, W., and Scales, J. 1996. The CWP object-oriented optimization library. Lead. Edge 15, 5, 365--369.Google ScholarGoogle ScholarCross RefCross Ref
  8. Dongarra, J., Lumsdaine, R., Pozo, R., and Remington, K. 2004. IML++ home page. math.nist. gov/iml++.Google ScholarGoogle Scholar
  9. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Gockenbach, M. S., Petro, M. J., and Symes, W. W. 1999. C++ classes for linking optimization with complex simulations. ACM Trans. Math. Softw. 25, 191--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Heroux, M. A. 2003. Epetra home page. http://software.sandia.gov/trilinos/packages/epetra/.Google ScholarGoogle Scholar
  12. Heroux, M. A. 2004. AztecOO User Guide. Sandia National Laboratories, Albuquerque, NM.Google ScholarGoogle Scholar
  13. Heroux, M. A., Barth, T., Day, D., Hoekstra, R., Lehoucq, R., Long, K., Pawlowski, R., Tuminaro, R., and Williams, A. 2003. Trilinos: Object-oriented, high-performance parallel solver ligraries for the solution of large-scale complex multi-physics engineering and scientific applications. Tech. rep. Sandia National Laboratories, Albuquerque, NM.Google ScholarGoogle Scholar
  14. Hoffman, K. and Kunze, R. 1961. Linear Algebra. Prentice-Hall, Englewood Cliffs, NJ.Google ScholarGoogle Scholar
  15. ISIS Development Team. 1997. ISIS++: Iterative scalable implicit solver (in C++). Tech. rep. Sandia National Laboratories, Albuquerque, NM. z.ca.sandia.gov/isis/.Google ScholarGoogle Scholar
  16. Karmesin, S. 2000. POOMA: Parallel object oriented methods and applications. Tech. rep., Los Alamos National Laboratory, Los Alamitos, NM. www.acl.lanl.gov/pooma/.Google ScholarGoogle Scholar
  17. Knabner, P. and Angermann, L. 2003. Numerical Methods for Partial Differential Equations. Texts in Applied Mathematics, Vol. 44. Springer--Verlag, Berlin, Heidelberg, Germany/New York, NY.Google ScholarGoogle Scholar
  18. Kolda, T. and Pawlowski, R. 2003. NOX: An object-oriented, nonlinear solver package. Tech. rep. Sandia National Laboratories, Livermore, CA.Google ScholarGoogle Scholar
  19. Langtangen, H. P. 1999. Computational Partial Differential Equations: Numerical Methods and Diffpack Programming. Springer-Velag, New York, NY, Berlin, Heidelberg, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Li, J. and Symes, W. 2007. Interval velocity estimation via NMO-based differential semblance. Geophys. 72, U75--U88.Google ScholarGoogle ScholarCross RefCross Ref
  21. Martin, R. C. 2002. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Martin, R. C., Riehle, D., and Buschmann, F. 1998. Pattern Languages of Program Design 3. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Meza, J. 1994. OPT++: An object-oriented class library for nonlinear optimization. Technical rep. 94--8225. Sandia National Laboratories, Livermore, CA.Google ScholarGoogle Scholar
  24. Myers, N. C. 1995. Traits: A new and useful template technique. C++ report. http://www.cantrip.org/traits.html.Google ScholarGoogle Scholar
  25. Nichols, D., Dunbar, G., and Claerbout, J. 1992. The C++ language in physical science. Tech. rep. SEP-75. Stanford Exploration Project, Department of Geophysics, Stanford University, Stanford, CA.Google ScholarGoogle Scholar
  26. Nocedal, J. and Wright, S. 1999. Numerical Optimization. Springer Verlag, New York, NY.Google ScholarGoogle Scholar
  27. Padula, A. D. 2005. Software design for simulation-driven optimization. Tech. rep. 05-11. Department of Computational and Applied Mathematics, Rice University, Houston, TX.Google ScholarGoogle Scholar
  28. Pozo, R. 2004. Template numerical toolkit: Home page. math.nist.gov/tnt.Google ScholarGoogle Scholar
  29. Quateroni, A. and Valli, A. 1994. Numerical Approximation of Partial Differential Equations. Springer, Berlin, Heidelberg, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Ridzal, D. 2006. Trust region SQP methods with inexact linear system solves for large-scale optimization. Ph.D. dissertation. Rice University, Houston, TX.Google ScholarGoogle Scholar
  31. Symes, W. 1986. Stability and instability results for inverse problems in several-dimensional wave propagation. In Proceedings of the 7th International Conference on Computing Methods in Applied Science and Engineering, R. Glowinski and J. Lions, Eds. North-Holland, New York, NY.Google ScholarGoogle Scholar
  32. Symes, W. W. 1998. High frequency asymptotics, differential semblance, and velocity analysis. In Expanded Abstracts. Society of Exploration Geophysicists, Tulsa, OK, 1616--1619.Google ScholarGoogle Scholar
  33. Symes, W. W. and Padula, A. D. 2005. Rice vector library home page. http://www.trip.caam.rice.edu/txt/tripinfo/rvl.html.Google ScholarGoogle Scholar
  34. Symes, W. W., Padula, A. D., and Scott, S. D. 2005. A software framework for the abstract expression of coordinate-free linear algebra and optimization algorithms. Tech. rep. 05-12. Department of Computational and Applied Mathematics, Rice University, Houston, TX.Google ScholarGoogle Scholar
  35. Tech-X. 2001. OptSolve++. Tech. rep. Tech-X Corporation, Boulder, CO. www.techxhome.com/products/optsolve/index.html.Google ScholarGoogle Scholar
  36. Tisdale, E. R. 1999. The C++ scalar, vector, matrix, and tensor class library standard page. www.netwood.net/edwin/svmt/.Google ScholarGoogle Scholar
  37. Tuminaro, R., Heroux, M., Hutchinson, S. A., and Shadid, J. 1999. Official Aztec User's Guide: Version 2.1. Sandia National Laboratories, Albuquerque, NM.Google ScholarGoogle Scholar
  38. Veldhuizen, T. L. 1999. Blitz++ home page. www.oonumerics.org/blitz.Google ScholarGoogle Scholar
  39. Yilmaz, O. 2001. Seismic data processing. In Investigations in Geophysics No. 10. Society of Exploration Geophysicists, Tulsa, OK.Google ScholarGoogle Scholar

Index Terms

  1. A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms

    Recommendations

    Reviews

    Markus Wolf

    Designing a good library for an application domain is always a difficult task. The library has to be consistent, complete, and easy to use. The very best libraries present to the user an interface that is as easy to use as writing a text in the idiom of the application domain. The Rice Vector Library described in this paper is one such library. The paper gives a nice presentation of all the considerations and design decisions taken to get to an easy-to-use, consistent, complete, and well-performing library in the mathematical application domain of calculus in Hilbert spaces. The first section of the paper is an overview of design principles in object orientation that are beneficial for the design of easy-to-use libraries. Furthermore, it gives some pointers and references to other numeric libraries with an overlapping focus and a motivating example. The next section presents the core design principle of separating the domain classes of space and vector from the underlying data management, representing the mathematical practice of considering a vector space as an abstract object that satisfies certain axioms. The section also explains the inner workings of these classes and the principle of their implementation with C++. Furthermore, the motivating example is coded with the tools provided by the library. The code for the example does indeed look nearly the same as its mathematical formulation in the first section-the only changes are the replacement of Greek letters with their names and some mathematical notations with programming notations. The third section explains how numerical algorithms can be expressed with the templates of the library and the use of design patterns in a coordinate-free way-that is, staying true to the abstract concept of a vector space and independent of the common geometrical vector spaces. This section is followed by a short section that gives some hints for the implementation of Cartesian products and functional composition, followed by some examples of algorithms coded with the help of the library, instructions for downloading the library, and a short conclusion. The appendix contains an explanation of a further template package and how to combine the library with a parallel linear algebra package. Although the paper describes a library for a rather specialized mathematical application domain, the use of object-oriented principles and design patterns to arrive at a framework that makes writing code as close to a domain-specific language (DSL) as possible is very interesting. Furthermore, it can be understood with a limited mathematical background. Online Computing Reviews Service

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Mathematical Software
      ACM Transactions on Mathematical Software  Volume 36, Issue 2
      March 2009
      149 pages
      ISSN:0098-3500
      EISSN:1557-7295
      DOI:10.1145/1499096
      Issue’s Table of Contents

      Copyright © 2009 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 April 2009
      • Accepted: 1 May 2008
      • Revised: 1 November 2005
      • Received: 1 July 2004
      Published in toms Volume 36, Issue 2

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader