--- libjama-1.2.4.orig/src/jama/jama_cholesky.h +++ libjama-1.2.4/src/jama/jama_cholesky.h @@ -1,7 +1,7 @@ #ifndef JAMA_CHOLESKY_H #define JAMA_CHOLESKY_H -#include "math.h" +#include /* needed for sqrt() below. */ --- libjama-1.2.4.orig/src/jama/jama_eig.h +++ libjama-1.2.4/src/jama/jama_eig.h @@ -2,9 +2,9 @@ #define JAMA_EIG_H -#include "tnt_array1d.h" -#include "tnt_array2d.h" -#include "tnt_math_utils.h" +#include +#include +#include #include // for min(), max() below @@ -13,7 +13,7 @@ // for abs() below using namespace TNT; -using namespace std; +//using namespace std; namespace JAMA { @@ -236,7 +236,7 @@ // Find small subdiagonal element - tst1 = max(tst1,abs(d[l]) + abs(e[l])); + tst1 = std::max(tst1,abs(d[l]) + abs(e[l])); int m = l; // Original while-loop from Java code @@ -478,7 +478,7 @@ d[i] = H[i][i]; e[i] = 0.0; } - for (int j = max(i-1,0); j < nn; j++) { + for (int j = std::max(i-1,0); j < nn; j++) { norm = norm + abs(H[i][j]); } } @@ -709,7 +709,7 @@ // Column modification - for (int i = 0; i <= min(n,k+3); i++) { + for (int i = 0; i <= std::min(n,k+3); i++) { p = x * H[i][k] + y * H[i][k+1]; if (notlast) { p = p + z * H[i][k+2]; @@ -858,7 +858,7 @@ // Overflow control - t = max(abs(H[i][n-1]),abs(H[i][n])); + t = std::max(abs(H[i][n-1]),abs(H[i][n])); if ((eps * t) * t > 1) { for (int j = i; j <= n; j++) { H[j][n-1] = H[j][n-1] / t; @@ -885,7 +885,7 @@ for (int j = nn-1; j >= low; j--) { for (int i = low; i <= high; i++) { z = 0.0; - for (int k = low; k <= min(j,high); k++) { + for (int k = low; k <= std::min(j,high); k++) { z = z + V[i][k] * H[k][j]; } V[i][j] = z; --- libjama-1.2.4.orig/src/jama/jama_lu.h +++ libjama-1.2.4/src/jama/jama_lu.h @@ -1,7 +1,7 @@ #ifndef JAMA_LU_H #define JAMA_LU_H -#include "tnt.h" +#include #include //for min(), max() below @@ -106,7 +106,7 @@ // Most of the time is spent in the following dot product. - int kmax = min(i,j); + int kmax = std::min(i,j); double s = 0.0; for (int k = 0; k < kmax; k++) { s += LUrowi[k]*LUcolj[k]; --- libjama-1.2.4.orig/src/jama/jama_qr.h +++ libjama-1.2.4/src/jama/jama_qr.h @@ -1,9 +1,9 @@ #ifndef JAMA_QR_H #define JAMA_QR_H -#include "tnt_array1d.h" -#include "tnt_array2d.h" -#include "tnt_math_utils.h" +#include +#include +#include namespace JAMA { --- libjama-1.2.4.orig/src/jama/jama_svd.h +++ libjama-1.2.4/src/jama/jama_svd.h @@ -2,11 +2,11 @@ #define JAMA_SVD_H -#include "tnt_array1d.h" -#include "tnt_array1d_utils.h" -#include "tnt_array2d.h" -#include "tnt_array2d_utils.h" -#include "tnt_math_utils.h" +#include +#include +#include +#include +#include #include // for min(), max() below @@ -14,7 +14,7 @@ // for abs() below using namespace TNT; -using namespace std; +//using namespace std; namespace JAMA { @@ -52,8 +52,8 @@ m = Arg.dim1(); n = Arg.dim2(); - int nu = min(m,n); - s = Array1D(min(m+1,n)); + int nu = std::min(m,n); + s = Array1D(std::min(m+1,n)); U = Array2D(m, nu, Real(0)); V = Array2D(n,n); Array1D e(n); @@ -66,9 +66,9 @@ // Reduce A to bidiagonal form, storing the diagonal elements // in s and the super-diagonal elements in e. - int nct = min(m-1,n); - int nrt = max(0,min(n-2,m)); - for (k = 0; k < max(nct,nrt); k++) { + int nct = std::min(m-1,n); + int nrt = std::max(0,std::min(n-2,m)); + for (k = 0; k < std::max(nct,nrt); k++) { if (k < nct) { // Compute the transformation for the k-th column and @@ -170,7 +170,7 @@ // Set up the final bidiagonal matrix or order p. - int p = min(n,m+1); + int p = std::min(n,m+1); if (nct < n) { s[nct] = A[nct][nct]; } @@ -356,7 +356,7 @@ // Calculate the shift. - double scale = max(max(max(max( + double scale = std::max(std::max(std::max(std::max( abs(s[p-1]),abs(s[p-2])),abs(e[p-2])), abs(s[k])),abs(e[k])); double sp = s[p-1]/scale; @@ -465,7 +465,7 @@ void getU (Array2D &A) { - int minm = min(m+1,n); + int minm = std::min(m+1,n); A = Array2D(m, minm); @@ -512,7 +512,7 @@ /** Two norm of condition number (max(S)/min(S)) */ double cond () { - return s[0]/s[min(m,n)-1]; + return s[0]/s[std::min(m,n)-1]; } /** Effective numerical matrix rank @@ -522,7 +522,7 @@ int rank () { double eps = pow(2.0,-52.0); - double tol = max(m,n)*s[0]*eps; + double tol = std::max(m,n)*s[0]*eps; int r = 0; for (int i = 0; i < s.dim(); i++) { if (s[i] > tol) { --- libjama-1.2.4.orig/Changes +++ libjama-1.2.4/Changes @@ -0,0 +1,302 @@ +lynx -dump http://math.nist.gov/tnt/history.html > Changes + + [1]TNT + + [2]Template Numerical Toolkit + [3][Home] [4][Overview] [5][Examples] [6][Documentation] [7][Download] + _________________________________________________________________ + + Revision History + +06/02/05: Jama Update (version 1.2.4) + + * added TNT namespace to hypot() to QR algorithm. + +05/31/05: TNT Update (version 1.2.6) + + * bug fix in subarray() primtive. + +04/12/05: Jama Update (version 1.2.3) + + * updated LU getPivot() routine. + +02/11/05: TNT Update (version 1.2.5) + + * replaced DEBUG macros in tnt_array1d.h and tnt_fortran_array1d.h + with TNT_DEBUG macros. + +11/16/04: TNT Update (version 1.2.4) + + * replaced "data" with "data_" in internal tnt_i_revec.h routines. + (Does not affect public interface or implementation.) + * changed all occurences of "endl" with "\n". + +11/12/04: Jama Update (version 1.2.2) + + * replaced bitwise OR with boolean OR in SVD routine. (Does not + affect correctness, but better programming practice.) + * removed max and min functions from tnt_math_utils.h to avoid + conflict with ANSI C++ definitions. + +09/17/04: TNT Update (version 1.2.2) + + * fixed bug in internal vector representation tnt_i_vecref function + is_null(). + +05/04: TNT Update (version 1.2.1) + + * made Stopwatch constructor inline to avoid collisions when linking + multiple TNT object files on some compilers. + * fixed copy_() method in internal implementation + +06/03: TNT Version 1.2 (interface update) + + * New Features: + + added Array operators +,-,*,/,+=,-=,*=,/= to all TNT arrays + + auto conversion to T** for Array2D< T >, and T*** for + Array3D< T >, as well as const versions. + * Bug fixes, updates + + fixed memory leak in array allocation from external (to TNT) + data. + + updated deprecated strstream interface in tnt_vec.h and + tnt_cmath.h + + arrays now handle 0-length dimensions properly + + fixed operator=(scalar) in 2D and 3D Fortran arrays. + + made copy() methods of Fortran arrays const + +03/03: Linear Algebra Update (Jama v. 1.2.1) + + * fixed bug in QR solver + +01/03: Linear Algebra Update (Jama v. 1.2) (interface update) + + * added LU solver + * fixed bug in SVD solver + * added special-case solvers for 1-d vectors + +08/02: TNT Version 1.1 + + * 08/31/02 (v. 1.1.1): fixed matmult bug in tnt_array2d_utils.h + +06/02: TNT Version 1.0 (interface update) + + * Distinguishes between TNT interface and implemetations. There can + be several implementations that incorporate the TNT interface. + This site provides a reference implementation which is portable + and usable, but developers are encouraged to create others which + take advantage of specific features and optimziation strategies, + such as the BLAS, or expression templates. + * New multidimensional arrays: Array1D, Array2D, Array3D, + Fortran_Array1D, Fortran_Array2D, Fortran_Array3D + + Arrays are pass-by-reference, employ shallow-assignment, and + utilize reference-counting to manage memory storage. This + allows one to return arrays from functions without relying on + advanced compiler optimizations to avoid excess copying. + o Fortran Arrays utilize A(i,j) indexing with A(1,1) as + the first element, and employ "column-major" ordering. + The internal storage is contiguous. + o Arrays utilize A[i][j] indexing with A[0][0] as the + first element, and employ "row-major" ordering. The + internal storage is contiguous, so rows cannot be + aliased. + + Arrays will eventually replace the Vector, Matrix objects + from previous versions. (These are maintained in the current + release for bakcward compatibility, but will be deprecated in + future verions.) + + Arrays do not overlap memory storage (i.e. Regions are not + supported). This simplifies the interface and allows + algorithms using TNT arrays to employ aliasing optimizations + that were not possible before. + * New QR, Cholesky, SVD algorithms. The SVD and QR factorizations + work with non-square matrices with m >= n. + * New eigenvalue/eigenvector solver for real general (symmetric and + non-symmetric) matrices. + * New documentation, generated with Doxygen. + * file names are in the form "tnt_array2d.h", rather than + "tnt/array2d.h". This avoids having to put TNT header files in + their own directory. + * Stopwatch timing object has slightly different semantics. The + start() operation resets the clock to 0.00. See documentation for + details. + * Deprecated features: (to be removed in future versions) + + TNT:Vector and TNT::Matrix classes: these were pass-by-value + classes, which unfortunately many compiler still cannot + optimize adequately. In particular, on many platforms it was + still expensive to return a TNT::Vector or TNT::Matrix from a + function, although the copying could be avoided. To address + this issue, the new Array classes utilize shallow assignment + (like C strings) to minimize the overhead. + + TNT::Region classes: these are rarely needed by users and + complicate the interface and implementation, but most + importantly they allow for overlapping of memory locations + among separate objects, which limits important compiler + optimizations. + +08/00: Version 0.9.4 + + * TNT include files are in their own subdirectory (e.g. tnt/vec.h, + tnt/cmat.h). + * NIST disclaimer attached to each TNT file. + * some default initalizers were changed from T(0) to T(). + +09/99: Version 0.9.3 + + * fixed operator)) in vec.h. + * fixed example in lu.cc, qr.cc, tlapack.cc, + * fixed comment in cmatreg.cc. + * upated template Matrix argument in qr.h. + + Version 0.9 of the Template Numerical Toolkit represents a significant + update achieving ANSI C++ compatibility. Numerous users are now using + or are in the process of upgrading to new ANSI compliant C++ compilers + and this release reflects that change. This version of TNT was + developed and tested with Microsoft Visual C++ 5.0 but should compile + with any ANSI C++ compiler (see [8]compilation notes below) . + + In particular, the compiler must support templates, namespaces, the + typename modifier, and portions of the Standard Template Library + (STL). Some examples make use of the standard valarray<> class. Most + of the ANSI changes to TNT consist of typename modifiers, filename + updates (e.g. < strstream.h > became < sstream >), replacement of the + former TNT DComplex class with the standard complex < double >, and + the renaming of template arguments. The majority of these changes to + TNT were postponed until ratification of the C++ standard by the ANSI + committee and the availability of real compilers supporting these new + features. + + Note that the scope of these changes implies that earlier compilers + (e.g. gcc 2.7, Watcom 10.0) will NOT work with the new version of TNT. + (If your compiler is not ANSI compatible, contact your compiler + vendor.) + + NOTE: Neither g++ 2.8.1 or egcs 1.0.2 support ANSI C++ namespaces, + hence will NOT be able to compile TNT 0.9. + + New Features: + 1. ANSI C++ compatibility: should work with most updated C++ + compilers, including Microsoft VC++ 5.0 (see notes.) + 2. TNT namespace: all TNT classes and functions use their own + namespace, to avoid naming collision with other packages. (New + names are given below.) Some examples use the TNT:: prefix, while + most use using namespace TNT; near the begining of the program to + allow shorter names. + 3. TNT container adaptors now work with ANSI valarray<> class : Our + Vector_adaptor<> class (formerly known as TNT_Vector<>) transforms + an STL-like vector class into something more suitable for + numerics. In particular, it adds features such as + + optional bounds check (via compile-time TNT_BOUNDS_CHECK + macro) + + Fortran-like 1-based offsets (using "(i)" rather than "[i]") + + regions, e.g. A(Index(1,10)) = ... + + initialization from strings + + simple I/O for streams + In this way, one could change the internal class for memory + managment (say, utilizing a special memory allocator for imbedded + systems) yet still retain TNT's features for matrix/vector + computing. TNT's original scheme used begin()/end() methods, + patterned after the STL container methods. Since then, however, + several vector-like classes (including ANSI's own valarray<> + class) have evolved away from these methods. The new version of + TNT::Vector_adaptor<> does not rely on begin()/end(). (See + [9]tntvec3.cc example.) + 4. TNT documentation now includes the output files from the examples. + (See [10]below.) + + Changes: + 1. New class names: Using a separate namespace allows us to simplify + some of the naming schemes, so we took the opportunity to clean up + the rest of the TNT classes and functions to give them a more + consistent look. In particular, the old C_matrix<> class that + provided C-like array access (0-offset, [i][j] indexing) is now + simply called Matrix<>. + + Old name + (Ver. 0.8) + New name + (Ver. 0.9) + Subscript TNT::Subscript + Vector<> TNT::Vector<> + C_matrix<> TNT::Matrix<> + Fortran_matrix<> TNT::Fortran_Matrix<> + TNT_Vector<> TNT::Vector_Adaptor<> + Fortran_sparse_vector<> TNT::Fortran_Sparse_Vector<> + Fortran_compressed_col_matrix<> TNT::Fortran_Sparse_Col_Matrix<> + Region1D TNT::Region1D + Region2D TNT::Region2D + Stopwatch TNT::Stopwatch + seconds( ) TNT::seconds( ) + DComplex complex< double > + + 2. DComplex no longer supported: During the period that complex + number support was inconsistent among C++ compilers, we included + an intermediate datatype, DComplex, to cloak the underlying + double-precision complex class name, so that TNT code would look + somewhat uniform. With new compilers supporting the ANSI complex<> + standard, there is no longer a need for this, and it has therefore + been dropped. + 3. Fortran 77 interfaces no longer supported: There is still no + standard methodology for intergrating C/C++ and Fortran on similar + platforms. Each compiler relies on various tweaks with underscores + and argument massaging. Character string arguments often do not + work and often there is confusion at link time about which system + libraries to use. On Windows95/NT systems the situation is even + worse, due to several incompatible argument-passing schemes (e.g. + STDCALL, FORTRAN, PASCAL, CDECL, etc.). There are some + [11]examples of f77 calls to the BLAS and LAPACK, but these are + included only for demonstration and are not part of TNT. Such + interfaces are not difficult to develop for your own platform, but + we just do not have the time to provide this support for every + system. + + Other fixes and updates: + 1. Several of the templated functions used "Matrix" and "Vector" + dummy arguments that caused some confusion with the native classes + of TNT. These these dummy arguments have been replaced with + "MaTRix" and "VecToR". + 2. "Subscript Nmod4 = N & 4" was changed to "N % 4" in vec.h, cmat.h, + and fmat.h. + 3. Several of the TNT examples, use the setf() stream modifier to + produce formatted output. + 4. Version macros in "version.h" file are now characters. Added + TNT_VERSION_STRING macro (e.g. "0.9.0") for easy identification, + 5. Removed _NEEDS_ABS_MIN_ macro from tntmath.h. All of these + functions are now in the TNT namespace. + 6. Added "X(const &X)" constructor to fcscmat.h + + Compilation Notes + + NOTE: Neither g++ 2.8.1 or egcs 1.0.2 support ANSI C++ namespaces, + hence will NOT be able to compile TNT 0.9. + + This version of TNT has been tested using Microsoft Visual C++ v. 5.0, + for which you will need to use the following flags: + * -GX, since exceptions are not called (will supress warnings) + * -TP, since C++ filename sources have .cc extensions + + Also, be aware that examples using the ANSI C++ valarray class (e.g. + [12]tntvec3.cc) may generate spurious warnings. + + We would appreciate feedback on using/compiling TNT for other ANSI C++ + compatible platforms. + _________________________________________________________________ + + [13]TNT Home Page + + [14]Roldan Pozo + +References + + 1. http://math.nist.gov/tnt + 2. http://math.nist.gov/tnt + 3. http://math.nist.gov/tnt/index.html + 4. http://math.nist.gov/tnt/overview.html + 5. http://math.nist.gov/tnt/examples.html + 6. http://math.nist.gov/tnt/documentation.html + 7. http://math.nist.gov/tnt/download.html + 8. http://math.nist.gov/tnt/history.html#compilation_notes + 9. http://math.nist.gov/tnt/src/tntvec3.cc + 10. http://math.nist.gov/tnt/history.html#examples + 11. http://math.nist.gov/tnt/examples.html#lapack + 12. http://math.nist.gov/tnt/src/tntvec3.cc + 13. http://math.nist.gov/tnt/index.html + 14. http://math.nist.gov/pozo --- libjama-1.2.4.orig/debian/changelog +++ libjama-1.2.4/debian/changelog @@ -0,0 +1,36 @@ +libjama (1.2.4-2) unstable; urgency=low + + * Fixed include path to TNT, closes: #383466. + * Fixed name spaces conflict, refer to #298466, closes: #390137. + + -- Juan Esteban Monsalve Tobon Thu, 26 Oct 2006 20:16:21 +1000 + +libjama (1.2.4-1) unstable; urgency=low + + * New upstream release. + * Set Standards-Version to 3.7.2. + * Fixed debian-rules-missing-required-target. + + -- Juan Esteban Monsalve Tobon Tue, 20 Jun 2006 21:22:10 +1000 + +libjama (1.2.2-2) unstable; urgency=low + + * New maintainer. + * Fixed "Name spaces conflict", closes: #298466. + Patch by Michal Wasiak . + + -- Juan Esteban Monsalve Tobon Sun, 10 Apr 2005 12:26:20 +1000 + +libjama (1.2.2-1) unstable; urgency=low + + * New upstream release. + * New maintainer's email address. + + -- Anibal Monsalve Salazar Thu, 17 Feb 2005 22:12:17 +1100 + +libjama (1.2.1-1) unstable; urgency=low + + * Initial release (Closes: #245911). + + -- Anibal Monsalve Salazar Mon, 26 Apr 2004 18:39:37 +1000 + --- libjama-1.2.4.orig/debian/control +++ libjama-1.2.4/debian/control @@ -0,0 +1,37 @@ +Source: libjama +Section: math +Priority: optional +Maintainer: Juan Esteban Monsalve Tobon +Build-Depends: +Standards-Version: 3.7.2 + +Package: libjama-dev +Section: libdevel +Priority: optional +Architecture: all +Depends: libtnt-dev +Description: C++ Linear Algebra Package + JAMA/C++ was adapted for The Template Numerical Toolkit (TNT) from + JAMA, a Java Matrix Library, developed jointly by the Mathworks and + NIST. See http://math.nist.gov/javanumerics/jama for more information. + . + TNT is a collection of interfaces and reference implementations of + numerical objects useful for scientific computing in C++. The toolkit + defines interfaces for basic data structures, such as multidimensional + arrays and sparse matrices, commonly used in numerical applications. + The goal of this package is to provide reusable software components + that address many of the portability and maintenance problems with C++ + codes. + . + TNT provides a distinction between interfaces and implementations of + TNT components. For example, there is a TNT interface for + two-dimensional arrays which describes how individual elements are + accessed and how certain information, such as the array dimensions, can + be used in algorithms; however, there can be several implementations of + such an interface: one that uses expression templates, or one that uses + BLAS kernels, or another that is instrumented to provide debugging + information. By specifying only the interface, applications codes may + utilize such algorithms, while giving library developers the greatest + flexibility in employing optimization or portability strategies. + . + Homepage: http://math.nist.gov/tnt/ --- libjama-1.2.4.orig/debian/rules +++ libjama-1.2.4/debian/rules @@ -0,0 +1,47 @@ +#!/usr/bin/make -f +# Copyright (C) 2004-2005 Anibal Monsalve Salazar +# Copyright (c) 2005 Juan Esteban Monsalve Tobon + +binary: binary-arch binary-indep + +binary-arch: + +binary-indep: build + $(checkdir) + -rm -rf debian/tmp + + install -d -m 755 debian/tmp/usr/include/jama + install -d -m 755 debian/tmp/DEBIAN + install -p -m 644 src/jama/* debian/tmp/usr/include/jama + install -d -m 755 debian/tmp/usr/share/doc/libjama-dev + install -p -m 644 Changes debian/tmp/usr/share/doc/libjama-dev/changelog + install -p -m 644 debian/changelog debian/tmp/usr/share/doc/libjama-dev/changelog.Debian + install -p -m 644 examples debian/tmp/usr/share/doc/libjama-dev + gzip -9 debian/tmp/usr/share/doc/libjama-dev/* + install -p -m 644 README debian/tmp/usr/share/doc/libjama-dev + install -p -m 644 debian/copyright debian/tmp/usr/share/doc/libjama-dev + tar cf debian/tmp/usr/share/doc/libjama-dev/html-jama.tar html + gzip -9 debian/tmp/usr/share/doc/libjama-dev/html-jama.tar + chmod 644 debian/tmp/usr/share/doc/libjama-dev/html-jama.tar.gz + + dpkg-gencontrol -isp + dpkg --build debian/tmp .. + +build: + $(checkdir) + touch build + +clean: + $(checkdir) + rm -f debian/files + rm -fr debian/tmp + +define checkdir + test -f debian/rules +endef + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep build clean --- libjama-1.2.4.orig/debian/copyright +++ libjama-1.2.4/debian/copyright @@ -0,0 +1,49 @@ +This package is maintained by +Juan Esteban Monsalve Tobon . + +JAMA/C++ is not subject to copyright protection and is in the public +domain. + +JAMA/C++ was adapted from JAMA, a Java Matrix Library, developed jointly +by The Mathworks and NIST. See http://math.nist.gov/javanumerics/jama + +JAMA's initial design, as well as this reference implementation, was +developed by: + + From The MathWorks: + + Joe Hicklin + Cleve Moler + Peter Webb + + From NIST: + + Ronald F. Boisvert + Bruce Miller + Roldan Pozo + Karin Remington + +JAMA/C++ was downloaded from http://math.nist.gov/tnt/ as two separate +archive files: + + http://math.nist.gov/tnt/jama124src.zip + http://math.nist.gov/tnt/jama102doc.zip + +Copyright Notice for JAMA + +This software is a cooperative product of The MathWorks and the National +Institute of Standards and Technology (NIST) which has been released to +the public domain. Neither The MathWorks nor NIST assumes any +responsibility whatsoever for its use by other parties, and makes no +guarantees, expressed or implied, about its quality, reliability, or any +other characteristic. + +Disclaimer for JAMA/C++ + +This software was developed at the National Institute of Standards and +Technology (NIST) by employees of the Federal Government in the course +of their official duties. Pursuant to title 17 Section 105 of the United +States Code this software is not subject to copyright protection and is +in the public domain. NIST assumes no responsibility whatsoever for its +use by other parties, and makes no guarantees, expressed or implied, +about its quality, reliability, or any other characteristic. --- libjama-1.2.4.orig/examples +++ libjama-1.2.4/examples @@ -0,0 +1,52 @@ +lynx -dump http://math.nist.gov/tnt/examples.html > examples + + [1]TNT + + [2]Template Numerical Toolkit + [3][Home] [4][Overview] [5][Examples] [6][Documentation] [7][Download] + _________________________________________________________________ + + Examples + * Creating arrays and accessing elements: + +#include +using namespace TNT; + + + Array2D< double > A(M,N) = 0.0; /* create MxN array; all zeros */ + + for (i=0; i < M; i++) + for (j=0; j < N; j++) + A[i][j] = f(i,j); /* initalize array values */ + + Array2D< double > B = A.copy(); /* create a new copy */ + + Array2D< double > C(B); /* create a new view of B */ + /* Both arrays (B & C) share data */ + + + + * Declarations + Array2D< double > A; /* initalize null (empty) array */ + Array2D< double > B(M,N); /* create an MxN array; uninitalized*/ + Array2D< double > C(M,N) = 0.0; /* create an MxN array; all zeros */ + * Assignments + A[i][j] = 3.13; /* individual element assignment */ + A = B; /* shallow array assignment */ + A = B.copy(); /* explicit array copy */ + _____________________________________________________________ + + [8]TNT Home Page + [9]Roldan Pozo + +References + + 1. http://math.nist.gov/tnt + 2. http://math.nist.gov/tnt + 3. http://math.nist.gov/tnt/index.html + 4. http://math.nist.gov/tnt/overview.html + 5. http://math.nist.gov/tnt/examples.html + 6. http://math.nist.gov/tnt/documentation.html + 7. http://math.nist.gov/tnt/download.html + 8. http://math.nist.gov/tnt/index.html + 9. http://math.nist.gov/pozo --- libjama-1.2.4.orig/README +++ libjama-1.2.4/README @@ -0,0 +1,5 @@ +JAMA/C++ and TNT algorithms and classes are all in header files --there are no libraries to build! + +TNT algorithms and classes are in /usr/include/tnt + +JAMA/C++ algorithms and classes are in /usr/include/jama