SuperMix C++ Class Library
Version 1.6
May 8, 2009

Version History:
===================================================================
1.6 May 8, 2009:

Fixed abs(int) bug in mixer.cc. Fixed int overflow in sweeper.cc.
Updated test suite compare files for linux g++ 4.3.1 and cygwin
g++ 3.4.4.

===================================================================
1.5 May 4, 2007:

Fixed an error in the S-matrix for the 180 degree hybrid.

===================================================================
1.5beta Oct 11, 2005:

Modified to work with gcc 3.4.4, which is even more ANSI standard C++
compliant. This is a beta version, since it has only been tested with
the cygwin version of the compiler, linker, and libraries.

There will be some warnings when compiling the library because of the
plethora of warning flags turned on in this version. They are safely
ignored, at least when compiling under cygwin.

The test suite .base comparison files are only updated for cygwin in 
the test/compare.i386-intel-posix/ directory. When testing under linux
expect many differences with the files in test/compare.i386-intel-linux/
because of different rounding errors in numbers which should be 0.

===================================================================
1.4	Feb 5, 2004:

Includes upgrades to compile under gcc 3.3, which includes most
features of ANSI standard C++. Support for versions of gcc older than
3.0 are not supported by this release; SuperMix version 1.3 will be
the last version to support these early compiler releases.

Improved the microstrip modeling code to more accurately model
microstrips with different conductors for the groundplane and top
strip. Fixed a bug concerning how diectric loss is calculated when
using superconducting microstrip. These changes thanks to A. Vayonakis.

Added a feature to the Complex data type to cause it to display numbers
as purely real or purely complex if the argument is sufficiently 
close to a multiple of Pi/2. See SIScmplx.h for details.

Modified interpolator code to make it much more likely to successfully
compile under most conditions.

Changed the example/ivcurve programs to include a robust Kramers-
Kronig transform generator as well as several utility programs to
aid in the import of measured SIS DC IV curve data into supermix.

Added the supermix/include/extras directory, containing some
additional features which some might find useful. A few example
programs have been modified to make use of these features to
demonstrate their use.

===================================================================
1.3	May 16, 2001:

Included fixes and compiler bug workarounds for the Redhat 7.1 version
of g++ (gcc version 2.96 20000731).

Fixed a bug wherein Makefiles fetching the operating system type using
different shells (bash v. tcsh) get different names.

Regression test suite no longer included with the distribution.

Fixed a bug in complex_parameter constructor where a double argument
would be cast to int vice converted to complex.

Converted comments in 30 (out of 72) header files to javadoc format.

Some minor improvements to the comments in the example programs.

Added classes deembed and L_via.

Added class reduced_nport. See reduced_nport.h for details.

Added the function passive_noise_temp() to sdata.h.

Improved makeiv.cc example program.

class sweeper: improved the flexibility and user interface of sweep().

Fixed the name of Siemens in units.h.

class real_vector and complex_vector: added more STL compatibility
stuff.

class ampdata: improved the calculation of gamma_opt().

class powell: added calls to minimizer::stop() in minimize().

===================================================================
1.2	Oct 5, 2000:

Many improvements to the files in the examples/ tree.

Many improvements to the comments in optimizer and error function
header files. Enhanced the capabilities and flexibility of the
optimizer and error function classes.

class touchstone_read: enhanced the capability for reading files which
extend the Touchstone format to more than 4 ports. It now can
correctly read HFSS output for any n-port simulation.

class ivcurve: can now read IV curve file data following construction.

class real_vector and complex_vector: added some member functions to
mimic the behavior of STL containers, so that these classes may be
used with algorithms designed to operate on STL containers.

test/: changed the comparison values for many programs in the test
suite.

===================================================================
1.1	Jun 14, 2000:

Some changes to templates to make them ANSI C++ compliant for use with
g++ ver 2.95; included preprocessor switches to maintain g++ ver 2.8
compatibility. Removed '-mcpu=ultrasparc' from Makefile.solaris

examples/ and test/src/: added return type int to main() in programs.

class montecarlo: improved flexibility of verbose output behavior.

class sis_basic_device: added a default constructor, includes checks
for an uninitialized ivcurve member.

class layer_list: fixed initialization error in the copy constructor.

===================================================================
1.0c	Jun 6, 2000:

class r_waveguide: fixed wrong sign in lossy dielectric calcs.
===================================================================
1.0b	May, 2000:

class r_waveguide: fixed zchar calculation.
===================================================================
1.0a	Apr, 2000:

Some minor changes to fix compiler and linker errors under Linux g++.
===================================================================
1.0 Apr, 2000: 

First public release of SuperMix. 
Authors: Frank Rice, John Ward, Jonas Zmiudzinas, Goutam Chattopadhyay
Submillimeter Astrophysics, California Institute of Technology,
Pasadena, CA.