Subject: AIPS++ library release announcement - a templated C++ class library

From: jhorstko at rosebud.CV.NRAO.EDU (Jim Horstkotte)
Date: Fri, 12 Nov 1993 20:50:01 GMT

I am reposting this to sci.astro.fits (fitsbits) because the AIPS++
library includes FITS software coded in C++. -Don
    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Newsgroups: alt.sci.astro.aips
From: jhorstko at rosebud.CV.NRAO.EDU (Jim Horstkotte)
Subject: AIPS++ library release announcement - a templated C++ class library
Organization: National Radio Astronomy Observatory
Date: Fri, 12 Nov 1993 18:23:18 GMT

The AIPS++ consortium is pleased to announce the beta release
of a portion of its C++ LIBRARY.

The AIPS++ project is engaged in designing and building an
"Astronomical Information Processing System," primarily for radio
astronomical use. As a part of this project a support library is being
developed; a portion of which is now being made available.  This
release is the first public release from the AIPS++ project.  Current
project plans anticipate a release of an operational version of AIPS++
by December of 1994.

This library is being developed to support our applications, and may
change in the future. This is very early in the library's life-cycle.
Moreover, THE LIBRARY SHOULD BE CONSIDERED BETA LEVEL SOFTWARE. The
AIPS++ consortium makes no guarantees about the library whatsoever.
That having been said, we intend to continue expanding and improving
the library; and any comments or bug reports will be seriously
reviewed. We actively seek such comments and reports to help us
improve the library. The library is available under the terms of the
Free Software Foundation's (FSF) General Public License (GPL).

Presently the library compiles with CFront 3.0.2 based compilers.  An
effort to port it to IBM's native (AIX) compiler is well underway, and
may appear as a patch to this release or at least in a subsequent
release. Presently the library is not portable to g++. In the longer
term we will provide this, but we will not be able to work on this
before 1994. Any and all ports would be very welcome of course. The
largest difficulty in porting the library is dealing with templates,
of which the library makes heavy use.

The library includes:

    1. Math: An arbitrary n-dimensional Array<T> class, with Vector<T>,
    Matrix<T>, and Cube<T> specializations. All the normal arithmetic
    operations are available (+,-,*,/,+=,-=,*=,/=) in an element by
    element fashion, as well as the normal "linear algebra"
    multiplications (dot,cross,matrix multiply). Presently the logical
    operators (==,!=,...) are available only in forms which return a
    single boolean. Subsequent releases of the library will provide "mask"
    results. The usual transcendental functions are available, as well as
    simple statistics and LU decomposition.  Specialized FFT and Gridding
    (onto a regular grid) and other miscellaneous classes and functions
    (e.g. to convert to and from Khoros Viff format) exist. A templated 
    Complex class and a Random number class, originally from GNU libg++, 
    are provided. A tutorial document for the Array<T> classes is in the 
    distribution.

    2. Tables: An AIPS++ table logically consists of a set of rows and
    columns and a header.  The content of each column is described by
    a "Field" object.  The fields in a table may be a "scalar" (integral
    type, float, double, Complex, DComplex, String), or an Array of
    scalars, or a table itself. The header consists of "keyword=value"
    pairs, where the value may be of any field type.  The array and table
    fields may be stored either directly or indirectly; in the latter case
    the size and shape may vary from row to row.  The tables may be
    sorted, searched, and selected upon using C++ operators.  Tables may
    be iterated through in various ways.  Presently the tables reside
    entirely in memory; subsequent releases will remove this restriction.
    A document describing the table system is available. A (very!)
    preliminary table browser written using the InterViews toolkit is
    available.

    3. Containers: We have some containers (Map, singly and double linked
    lists, Block) - these are all templated. 

    4. Other Classes: We use the libg++ String class (slightly modified). 
    We provide an exception implementation which is nearly plug compatible
    with the ARM standard, and should be easily replaced with "real" 
    exceptions when available. There is an RTTI mechanism which allows
    down casts in the face of multiple inheritance. There is also a
    simple persistence mechanism. 

    5. Other Tools: We have a "perl" based documentation extractor.
    It uses an SGML based language to structure documentation within 
    C++ comments, and generates Texinfo.

    6. A preliminary set of FITS (an astronomical interchange format)
    classes are available, with wrapper functions to convert AIPS++
    arrays to and from FITS. Subsequent releases will have greatly
    improved support.

    7. And more!

The release can be obtained via anonymous ftp.
The anonymous ftp host is aips2.cv.nrao.edu .
The anonymous ftp directory is /pub/aips++/RELEASED/libaips-3 .

We anticipate that we will provide patches to the library, and new
releases from time to time when major new features are available.

Any bugs, installation problems, or other difficulties should be
emailed to aips2-bugs at nrao.edu. There is an email reflector for
discussion of the library (aips2-lib) as well as one for general
announcements (aips2). To be added or deleted from either reflector,
send email to aips2-request at nrao.edu. Additionally, information is
available from the World Wide Web at:
http://info.cv.nrao.edu/html/computing/aips++/html/aips++.html

Finally, communications with the AIPS++ project may also be directed
to:

       Internet email: aips2-request at nrao.edu.
       Postal address: AIPS++ Project Office
                       National Radio Astronomy Observatory
                       520 Edgemont Road
                       Charlottesville, VA 22903-2475 USA

We hope this library proves useful to you, and we seek suggestions on
how to improve it.
--

  Donald C. Wells           Associate Scientist       dwells at nrao.edu
  National Radio Astronomy Observatory                +1-804-296-0277
  520 Edgemont Road                              Fax= +1-804-296-0278
  Charlottesville, Virginia 22903-2475 USA         78:31.1W, 38:02.2N