Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!blake!keffer From: keffer@blake.acs.washington.edu (Thomas Keffer) Newsgroups: comp.lang.c++ Subject: Vector and Matrix classes Keywords: C++, matrix, vector Message-ID: <1878@blake.acs.washington.edu> Date: 4 May 89 18:03:21 GMT Reply-To: keffer@ocean.washington.edu (Thomas Keffer) Organization: University of Washington, Seattle Lines: 35 There has been a lot of discussion on implementing a set of vector and matrix classes in C++, particularly with respect to minimizing temporary variables. I am wondering what implementations exist out there? Keith Gorlen has supplied a fairly complete set of Vector classes as part of his "NIH Class Library" (nee OOPS), but these are overly general for many applications and can be slow because the copy initializer relies on copying all elements. What else? Is this the state of the art? One can think of many useful extensions besides the obvious arithmetic operations (+, *, -, etc.) such as: 1) Classes for specialized types of matricies, such as symmetrical or tridiagonal. These would use "optimized" algorithms for such operations as solving linear sets of equations, etc. 2) A class LU_decomposition? Contains the LU decomposition of a matrix. Would include member functions such as invert(), or solve(). 3) There HAS been some discussion of FFT algorithms (principally from Dr. James Coggins and myself). Any implementations? In particular, what other algorithm servers have been implemented? I have made a start in these three areas by building specialized derived classes on top of the NIH classes. But they can become unwieldy because of all the underlying machinery. I was hoping to do something cleaner and build these specialized operations on top of a leaner set of matrix and vector classes. But, I'm coming to appreciate that for all their bulk and sometimes overgenerality, the NIH classes have the overwhelming advantage that THEY EXIST!!!