Data Fusion Laboratory, Drexel University

Ada95 Matrix Package


Latest Release

Ada95 Matrix Package
First Release, August 1996

The archive of this matrix package is available in the compressed tar format, or in the zip format.

Copyright and Disclaimer

Copyright © 1996, Drexel University
Data Fusion Laboratory
Electrical and Computer Engineering Department

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.

Drexel University disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness, in no event shall Drexel University be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, arising out of or in connection with the use or performance of this software.

Introduction

This matrix math package is designed to give a robust tool-set of vector and matrix math routines to the Ada 95 programmer. The groundwork for the package is based on an ISO draft document (ISO/IEC 13813:1996(E)) outlining Ada 95 real and complex array arithmetic. Child packages are built upon this ISO-compliant base to provide additional functionality.

The current release defines the following:

package Generic_Real_Arrays

basic math functions and array math routines as defined by the Ada 95 ISO document referred to above for vectors and matrices of real numbers.

package Generic_Complex_Arrays

basic math functions and array math routines as defined by the Ada 95 ISO document referred to above for vectors and matrices of complex numbers.

package Generic_Real_Arrays.Array_IO

routines to print vectors and arrays of real numbers to the console.

package Generic_Complex_Arrays.Array_IO

routines to print vectors and arrays of complex numbers to the console.

package Generic_Real_Arrays.Operations

more advanced functions for vectors and arrays of real numbers, including dynamic allocation, subvectors and submatrices, determinants, eigenvalues/vectors, singular value decompsition, and inverses.

package Generic_Complex_Arrays.Operations

more advanced functions for vectors and arrays of complex numbers, including dynamic allocation, subvectors and submatrices, and determinants.

procedure Real_Arrays_Test

test program demonstrating the use of every subprogram in Generic_Real_Arrays via a functional test.

procedure Real_Arrays_Operations_Test

test program demonstrating the use of every subprogram in Generic_Real_Arrays.Operations via a functional test.

procedure Complex_Arrays_Test

test program demonstrating the use of every subprogram in Generic_Complex_Arrays via a functional test.

procedure Complex_Arrays_Operations_Test

test program demonstrating the use of every subprogram in Generic_Complex_Arrays.Operations via a functional test.

Details on usage are provided in the package specification file for each package.

ToDo List

Feedback

We welcome any bug reports, suggestions, or other constructive feedback. Feel free to reach us at:

chrispy@lorelei.ece.drexel.edu Chris Papademetrious
xzhu@lorelei.ece.drexel.edu Xiaoxun Zhu
kam@lorelei.ece.drexel.edu Moshe Kam

Our mailing address is:

Chris Papademetrious, Xiaoxun Zhu, Moshe Kam
Data Fusion Laboratory
Drexel University
Philadelphia, PA 19104

Acknowledgment

The Ada 95 matrix math package as a result of work performed under Defense Information Systems Agency Grant Nos. DCA100-96-1-0001 and DCA100-96-1-0002.

Some routines in Generic_Real_Arrays.Operations were ports or modifications from other sources. The following acknowledgements are reposted from the package body of Generic_Real_Arrays.Operations:

from Generic_Real_Arrays.Operations.Inverse

This routine was adapted from code taken from the Public Ada Library (PAL), at the following location: http://wuarchive.wustl.edu/languages/ada/userdocs/html/cardcat/matrix.html

from Generic_Real_Arrays.Operations.Singular_Value_Decomposition

This algorithm was obtained from "Numerical Recipes in C", translated from the original C code into Ada 95 code.

from Generic_Real_Arrays.Operations.Inverse:

This algorithm was obtained from "Numerical Recipes in C", translated from the original C code into Ada 95 code.


Last modified: Thu Mar 18 16:16:35 EST 1999