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.