--- libtnt-1.2.6.orig/src/tnt/tnt.h +++ libtnt-1.2.6/src/tnt/tnt.h @@ -36,28 +36,28 @@ -#include "tnt_version.h" -#include "tnt_math_utils.h" -#include "tnt_array1d.h" -#include "tnt_array2d.h" -#include "tnt_array3d.h" -#include "tnt_array1d_utils.h" -#include "tnt_array2d_utils.h" -#include "tnt_array3d_utils.h" - -#include "tnt_fortran_array1d.h" -#include "tnt_fortran_array2d.h" -#include "tnt_fortran_array3d.h" -#include "tnt_fortran_array1d_utils.h" -#include "tnt_fortran_array2d_utils.h" -#include "tnt_fortran_array3d_utils.h" - -#include "tnt_sparse_matrix_csr.h" - -#include "tnt_stopwatch.h" -#include "tnt_subscript.h" -#include "tnt_vec.h" -#include "tnt_cmat.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include #endif --- libtnt-1.2.6.orig/src/tnt/tnt_array1d.h +++ libtnt-1.2.6/src/tnt/tnt_array1d.h @@ -30,7 +30,7 @@ #endif -#include "tnt_i_refvec.h" +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_array2d.h +++ libtnt-1.2.6/src/tnt/tnt_array2d.h @@ -28,7 +28,7 @@ #include #endif -#include "tnt_array1d.h" +#include namespace TNT { @@ -165,7 +165,7 @@ template Array2D & Array2D::operator=(const T &a) { - /* non-optimzied, but will work with subarrays in future verions */ + /* non-optimzied, but will work with subarrays in future versions */ for (int i=0; i #endif -#include "tnt_array1d.h" -#include "tnt_array2d.h" +#include +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_cmat.h +++ libtnt-1.2.6/src/tnt/tnt_cmat.h @@ -24,8 +24,8 @@ #ifndef TNT_CMAT_H #define TNT_CMAT_H -#include "tnt_subscript.h" -#include "tnt_vec.h" +#include +#include #include #include #include --- libtnt-1.2.6.orig/src/tnt/tnt_fortran_array1d.h +++ libtnt-1.2.6/src/tnt/tnt_fortran_array1d.h @@ -30,7 +30,7 @@ #endif -#include "tnt_i_refvec.h" +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_fortran_array2d.h +++ libtnt-1.2.6/src/tnt/tnt_fortran_array2d.h @@ -29,7 +29,7 @@ #include #endif -#include "tnt_i_refvec.h" +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_fortran_array3d.h +++ libtnt-1.2.6/src/tnt/tnt_fortran_array3d.h @@ -27,7 +27,7 @@ #ifdef TNT_BOUNDS_CHECK #include #endif -#include "tnt_i_refvec.h" +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_i_refvec.h +++ libtnt-1.2.6/src/tnt/tnt_i_refvec.h @@ -201,7 +201,7 @@ template int i_refvec::is_null() const { - return (data_ == NULL ? 1 : 0); + return (this->data_ == NULL ? 1 : 0); } /* --- libtnt-1.2.6.orig/src/tnt/tnt_math_utils.h +++ libtnt-1.2.6/src/tnt/tnt_math_utils.h @@ -1,8 +1,8 @@ #ifndef MATH_UTILS_H #define MATH_UTILS_H -/* needed for fabs, sqrt() below */ -#include +/* needed for sqrt() below */ +#include @@ -23,9 +23,37 @@ else { Real c = b/a; - return fabs(a) * sqrt(1 + c*c); + return abs(a) * sqrt(1 + c*c); } } + +/** + @returns the minimum of scalars a and b. +*/ +template +Scalar min(const Scalar &a, const Scalar &b) +{ + return a < b ? a : b; +} + +/** + @returns the maximum of scalars a and b. +*/ +template +Scalar max(const Scalar &a, const Scalar &b) +{ + return a > b ? a : b; +} + +/** + @returns the absolute value of a real (no-complex) scalar. +*/ +template +Real abs(const Real &a) +{ + return (a > 0 ? a : -a); +} + } /* TNT namespace */ --- libtnt-1.2.6.orig/src/tnt/tnt_sparse_matrix_csr.h +++ libtnt-1.2.6/src/tnt/tnt_sparse_matrix_csr.h @@ -21,7 +21,7 @@ #ifndef TNT_SPARSE_MATRIX_CSR_H #define TNT_SPARSE_MATRIX_CSR_H -#include "tnt_array1d.h" +#include namespace TNT { --- libtnt-1.2.6.orig/src/tnt/tnt_vec.h +++ libtnt-1.2.6/src/tnt/tnt_vec.h @@ -22,7 +22,7 @@ #ifndef TNT_VEC_H #define TNT_VEC_H -#include "tnt_subscript.h" +#include #include #include #include --- libtnt-1.2.6.orig/Changes +++ libtnt-1.2.6/Changes @@ -0,0 +1,298 @@ +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 + +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.3) + + * 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 --- libtnt-1.2.6.orig/debian/copyright +++ libtnt-1.2.6/debian/copyright @@ -0,0 +1,34 @@ +This debian package was created by +Anibal Monsalve Salazar . + +It is maintained by Juan Esteban Monsalve Tobon . + +TNT is not subject to copyright protection and is in the public domain. + +The upstream author is Roldan Pozo . + +TNT was downloaded from http://math.nist.gov/tnt/ as two separate archive files: + +http://math.nist.gov/tnt/tnt_126.zip +http://math.nist.gov/tnt/tnt120doc.zip + +TNT is released under the following license: + +/* +* +* Template Numerical Toolkit (TNT): Linear Algebra Module +* +* Mathematical and Computational Sciences Division +* National Institute of Technology, +* Gaithersburg, MD USA +* +* +* 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. +* +*/ --- libtnt-1.2.6.orig/debian/changelog +++ libtnt-1.2.6/debian/changelog @@ -0,0 +1,66 @@ +libtnt (1.2.6-1) unstable; urgency=low + + * New upstream release. + + -- Juan Esteban Monsalve Tobon Tue, 28 Mar 2006 09:48:58 +1100 + +libtnt (1.2.5-4) unstable; urgency=low + + * New maintainer. + + -- Juan Esteban Monsalve Tobon Sun, 10 Apr 2005 12:11:07 +1000 + +libtnt (1.2.5-3) unstable; urgency=low + + * Fixed "libtnt: package liblip FTBFS" (Closes: #295797). + Patch by Gleb Beliakov . + + -- Anibal Monsalve Salazar Fri, 18 Feb 2005 16:11:59 +1100 + +libtnt (1.2.5-2) unstable; urgency=low + + * Fixed "FTBFS with gcc-3.4: 'data' undeclared" (Closes: #295675). + Patch by Andreas Jochens . + + -- Anibal Monsalve Salazar Thu, 17 Feb 2005 23:16:45 +1100 + +libtnt (1.2.5-1) unstable; urgency=low + + * New upstream release. + * New maintainer's email address. + + -- Anibal Monsalve Salazar Thu, 17 Feb 2005 21:04:04 +1100 + +libtnt (1.2.2-0) unstable; urgency=low + + * New upstream release. + * Bug fix for subarray Array2D member function `subarray' + typo fixes (Closes: #279167). + Patch by Faheem Mitha + + -- Anibal Monsalve Salazar Sat, 06 Nov 2004 10:14:50 +1100 + +libtnt (1.2.1-2) unstable; urgency=low + + * FTBFS with gcc-3.4: `data' undeclared (first use this function) + (Closes: #271352). + + -- Anibal Monsalve Salazar Fri, 17 Sep 2004 13:00:24 +1000 + +libtnt (1.2.1-1) unstable; urgency=low + + * New upstream release. + + -- Anibal Monsalve Salazar Sun, 08 Aug 2004 18:29:54 +1000 + +libtnt (1.2.0-2) unstable; urgency=low + + * Library include files must be in /usr/include. + + -- Anibal Monsalve Salazar Tue, 04 May 2004 09:40:36 +1000 + +libtnt (1.2.0-1) unstable; urgency=low + + * Initial release (Closes: #245763). + + -- Anibal Monsalve Salazar Mon, 26 Apr 2004 11:17:40 +1000 + --- libtnt-1.2.6.orig/debian/control +++ libtnt-1.2.6/debian/control @@ -0,0 +1,33 @@ +Source: libtnt +Section: math +Priority: optional +Maintainer: Juan Esteban Monsalve Tobon +Build-Depends: +Standards-Version: 3.6.2 + +Package: libtnt-dev +Section: libdevel +Priority: optional +Architecture: all +Depends: +Description: interface for scientific computing in C++ + The Template Numerical Toolkit (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/ --- libtnt-1.2.6.orig/debian/rules +++ libtnt-1.2.6/debian/rules @@ -0,0 +1,45 @@ +#!/usr/bin/make -f +# Copyright (C) 2004-2005 Anibal Monsalve Salazar +# Copyright (c) 2005-2006 Juan Esteban Monsalve Tobon + +binary: binary-arch binary-indep + +binary-indep: build + $(checkdir) + -rm -rf debian/tmp + + install -d -m 755 debian/tmp/usr/include/tnt + install -d -m 755 debian/tmp/DEBIAN + install -p -m 644 src/tnt/* debian/tmp/usr/include/tnt + install -d -m 755 debian/tmp/usr/share/doc/libtnt-dev + install -p -m 644 Changes debian/tmp/usr/share/doc/libtnt-dev/changelog + install -p -m 644 debian/changelog debian/tmp/usr/share/doc/libtnt-dev/changelog.Debian + install -p -m 644 examples debian/tmp/usr/share/doc/libtnt-dev + gzip -9 debian/tmp/usr/share/doc/libtnt-dev/* + install -p -m 644 README debian/tmp/usr/share/doc/libtnt-dev + install -p -m 644 debian/copyright debian/tmp/usr/share/doc/libtnt-dev + tar cf debian/tmp/usr/share/doc/libtnt-dev/html-tnt.tar html + gzip -9 debian/tmp/usr/share/doc/libtnt-dev/html-tnt.tar + chmod 644 debian/tmp/usr/share/doc/libtnt-dev/html-tnt.tar.gz + + dpkg-gencontrol -isp + dpkg --build debian/tmp .. + +build: + $(checkdir) + touch build + +clean: + $(checkdir) + rm -f debian/files build + rm -fr debian/tmp + +define checkdir + test -f debian/rules +endef + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep build clean --- libtnt-1.2.6.orig/examples +++ libtnt-1.2.6/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 --- libtnt-1.2.6.orig/README +++ libtnt-1.2.6/README @@ -0,0 +1,3 @@ +TNT algorithms and classes are all in header files --there are no libraries to build! + +TNT algorithms and classes are in /usr/include/tnt