Fri Jan 20 16:11:27 1995  CNCL Admin  <cncl-adm@wyvern>

	* ********** Release 0.27 **********

Thu Jan 19 21:14:55 1995  CNCL Admin  <cncl-adm@goblin>

	* stat/Batches.c: bugfix (global_intervalnunmber->noi) <olly>

Wed Jan 18 17:09:18 1995  CNCL Admin  <cncl-adm@wyvern>

	* fuzzy/FSetLR.c: same.

	* fuzzy/FRuleBase.c: use #include <CNCL/minmax.h>

Tue Jan 17 15:50:04 1995  CNCL Admin  <cncl-adm@wyvern>

	* minmax.h: header file copied from GNU libg++. This header file
	  with min(), max() definitions is useful, but not included with
	  all C++ libraries.

Thu Jan 12 15:21:49 1995  CNCL Admin  <cncl-adm@wyvern>

	* ../config.h (CNCL_SYS_ULTRIX): added new #define for DEC Ultrix.

Wed Dec 28 16:13:40 1994  CNCL Admin  (cncl-adm@wyvern)

	* persistent/: new classes from turm's student project thesis.

	* Object.c (object_id): standard function issues warning.

	* Object.h: new virtual member function for returning persistent
	  object id.

Wed Dec 21 18:21:43 1994  CNCL-Admin  (cncl-adm@newt)

	* stat/: deleted unused datafiles tvert99 and tvert95.
	  added # before LRE/Batches Magic-Line to allow GNUPLOT output. (olly)
	
Tue Dec 20 15:52:46 1994  CNCL Admin  (cncl-adm@wyvern)

	* config.h: new #defines for no matherr() and Amiga OS.

Wed Nov 30 18:01:43 1994  CNCL Admin  (cncl-adm@wyvern)

	* misc/FormFloat.c (initialize): setf ios::fixed, if
	  CNFormFloat::fixed is set.

Thu Nov 24 19:32:50 1994  CNCL Admin  (cncl-adm@orome)

	* events/EventHeapSched.h: deleted declaration CNSimTime time()
	  which wasn't defined. It did override EventBaseSched::time() (olly)
	  
Tue Nov 22 10:59:45 1994  CNCL Admin  (cncl-adm@wyvern)

	* CNCL.h: added #define's for true/false for compilers without
	  builtin bool type.

	* events: redo true/false changes. :-(

Mon Nov 21 15:31:11 1994  CNCL Admin  (cncl-adm@wyvern)

	* events: added CNEventIterator and derived classes, some changes
	  to EventScheduler, EventList etc.
	  
	* sdl: updated sdl classes to use new EventScheduler too, corrected
	  translator (olly)

	* ********** RELEASE 0.26 **********

	* persistent/PString.h: CNPString needs constructors and operator=
	  with same arguments as CNString.

Fri Nov 18 10:21:01 1994  CNCL Admin  (cncl-adm@wyvern)

	* gnu/SocketBuf.h: must #include <CNCL/CNCL.h>

	* Changed several false/true to FALSE/TRUE for GCC versions prior
	  to 2.6.0.

	* unix/Select.h: #include <sys/select.h> for AIX.

	* stat/Batches.h: make global_intervalnumber public for GCC 2.5.8.

	* gnu/SocketStream.c: same.

	* ezd/EZD.c: same.

	* ezd/EZD.h: replaced #if with new defines from config.h

	* CNCL.h: include new configuration header file <CNCL/config.h>.

Tue Nov  8 16:58:06 1994  CNCL Admin  (cncl-adm@wyvern)

	* Several small changes to avoid warnings with new GCC 2.6.1

	* MovingObject.h: constructor MovingObject(World&, const char *)
	  must be protected.

Fri Nov  4 16:47:08 1994  CNCL Admin  (cncl-adm@wyvern)

	* Global update: copyright notice, email address.

	* Template.hP (constructor): removed comments.

	* Object.c (print, dump): default functions issue warning.

	* Object.h (print, dump): removed `= 0', allowing derived without
	  the print() and dump() functions.

Wed Oct 19 16:30:27 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ********** RELEASE 0.25 **********

	* RCS check in: release 0.25 (0.24 was check in some time ago,
	  alas, the ChangeLog entry is missing)

	* persistent/: some small bug fixes and clean up.

Tue Oct 18 17:02:59 1994  CNCL-Admin  (cncl-adm@nazgul)

	* sdl/SDLManager: fixed a bug in event_handler <olly>

Tue Oct 18 16:23:30 1994  CNCL-Admin  (cncl-adm@wyvern)

	* array/T_array.hP: make CNP<TYPE> friend class.

Tue Oct 18 12:15:09 1994  CNCL-Admin  (cncl-adm@vulkan)

	* events/: new classes
	  - EventBaseSched, base class for (modified) EventScheduler,
	    EventHeapScheduler
	  - EventHeapScheduler, new event scheduler using much more
	    efficient heap data structure
	  - EventExploder, forward one event to several event handlers
	  Classes Event, EventHandler, EventScheduler changed for new
	  stuff.

	* events/Event.c (operator new): resize event pool by 10, if all
	  events are allocated (warning will be issued).

	* events/Event.h (after): new comparison function used by
	  HeapEventScheduler. 

	* container/: new classes AVLTree, AVLNode, abstract base classes
	  for implementing AVL tress.

Mon Oct 17 14:56:56 1994  CNCL-Admin  (cncl-adm@wyvern)

	* random/SSMP2.c (CNSSMP2): call fatal() instead of exit().

	* persistent/: new directory with classes for persistent objects.

	* Object.h: new #include <iostream.h>

	* CNCL.h: #include's replaced with forward class declarations.

Thu Oct  6 14:27:04 1994  CNCL-Admin  (cncl-adm@wyvern)

	* misc/FormInt.c (initialize): minimum size 12 to be on the safe
	  side (negative values).

	* misc/FormInt.h (CNString(int a, int w)): default arg w=1. <mj>

	* misc/FormInt.c (initialize): set minimum size of string to 10
	  chars, enough room for a 32 bit int. Allows output of
	  unjustified numbers with w=1. <mj>

	* random/Binomial.h (u): double arg for this function. <mj>

	* misc/String.c (operator []): allow access to p[0]. <mj>

Wed Sep 21 18:16:40 1994  CNCL-Admin  (cncl-adm@garp)

	* update of the sdl classes due to new requirements <olly>

Mon Sep 19 18:14:09 1994  CNCL-Admin  (cncl-adm@garp)

	* new container classes: LIFO, Random, SPT queues etc. by <olly>
	
Mon Aug 15 15:26:09 1994  CNCL-Admin  (cncl-adm@wyvern)

	* Update to GIST interface classes by <maho>.

	* Update to SDL classes (SDLTimer.c, SDLProcess.h, SDLProcess.c)
	  by <steppler>.

Mon Aug  1 14:55:58 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ********** Release 0.23 **********

	* Template.cP (operator <<): definition.

	* Template.hP: declare operator << for every CNCL classes.

	* CNCL.h (FALSE, TRUE): #undef before defining values, check for
	  __GNUC__==2, too.

Fri Jul 29 13:30:33 1994  CNCL-Admin  (cncl-adm@wyvern)

	* Several changes to test programs to avoid ambiguity for
	  overloaded constructors and functions.

	* gnu/SocketBuf.h: removed #pragma interface, which caused some
	  inline function not to be compiled with GCC 2.6.0.

	* misc/String.c (strip_crlf): new function removing '\r' and/or
	  '\n' at end of string.

	* stat/Batches.h: make global_intervalnumber static member of
	  CNBatches. 

Thu Jul 28 12:26:40 1994  CNCL-Admin  (cncl-adm@wyvern)

	* unix/Select.c, gnu/SocketStream.c: patches for HPUX by
	  neal@ctd.comsat.com (Neal Becker).

Tue Jul 26 17:32:07 1994  CNCL-Admin  (cncl-adm@wyvern)

	* gist/gist_fn.c: changed format to %ld for long id.

	* gist/gist_ivimpl.hh: insert `public' for all parent classes and
	  multiple inheritance.

	* gist/World.c (World): removed default value.

	* gist/PolyLine.c (PolyLine): removed default values.

	* gist/MovingObject.c (MovingObject): removed default values.

	* gist/ColorfulObject.c (ColorfulObject): removed default values.

	* gist/TextObject.c (TextObject): removed default values.

	* gist/ValueObject.c (ValueObject): removed default values.

	* gist/DiagObject.c (DiagObject): removed default values.

	* ezd/EZDObject.c (line): removed default value.
	  (arc): removed default value.
	  (rectangle): removed default value.

	* ezd/EZD.h: #if __GNUC_MINOR__ < 6 for alternate draw_xxxx()
	  functions with const char * args. The bug is fixed in GCC 2.6.0.

	* ezd/EZD.c (draw_line): removed default value.
	  (draw_dash_line): removed default value.
	  (draw_arc): removed default value.
	  (draw_rectangle): removed default value.

	* random/SSMP2.h (CNSSMP2): add (CNRNG *) type case for parent
	  constructor. 

	* container/Manager.c (CNManager): removed default value.
	  (new_object): removed default value.

	* container/KeyString.c (CNKeyString): removed default value.
	  (CNKeyString): add (CNObject *) type case for parent constructor.
	  (hash): removed default value.

	* stat/LRE.c (CNLRE): removed `struct' from `new struct sm...'.

	* CNCL.h: `typedef int bool' only for GCC < 2.6.0, starting with
	  this compiler version, bool is a real builtin type. #define
	  TRUE/FALSE using true/false bool values.

Fri Jul 22 11:17:44 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ********** RELEASE 0.22 **********

	* RCS check in: release 0.22

Thu Jul 21 15:19:11 1994  CNCL-Admin  (cncl-adm@wyvern)

	* fuzzy/FRuleBase.c (print): output adapted to new CNfrc.

	* fuzzy/FRule.c (print): output adapted to new CNfrc.

	* fuzzy/FClause.c (print_clause): new function for output:
	  VAR==SET for lhs, VAR=SET for rhs.

	* fuzzy/FVar.c (print): output adapted to new CNfrc.

	* fuzzy/FSetTriangle.c (print): output adapted to new CNfrc.

	* fuzzy/FSetTrapez.c (print): output adapted to new CNfrc.

Wed Jul 20 11:26:42 1994  CNCL-Admin  (cncl-adm@wyvern)

	* Template.cP: #include <CNCL/Class.h>.

	* Template.hP: removed #include <CNCL/Class.h> / <CNCL/Param.h>,
	  forward declarations already in <CNCL/Object.h>.

	* fuzzy/*.[hc]: replaced `const CNString &' with `CNStringR'.

	* fuzzy/FVar.c (init): new function setting name and min, max
	  parameters. 

	* fuzzy/FSetTriangle.c (init): new function setting name and
	  parameters.

	* fuzzy/FSetTrapez.[hc] (init): new function setting name and
          parameters.

	* fuzzy/FSetLR.[hc] (init): new function setting name and parameters.

	* fuzzy/FSet.h (FSET_MIN, FSET_MAX): defines for ymin, ymax
	  default values.

	* fuzzy/FSet.[hc]: new function `init(name, min, max)', setting
	  FSet name and parameters.

	* ezd/EZD.h: alternate versions of draw_text(), draw_bitmap() with
	  `const char *' args, because g++ 2.5.8 generates buggy code at
	  least for calls to the 2nd draw_text() with string constants
	  "abc" args. Some of the temporary CNStrings are freed twice.

	* ezd/EZD.[hc]: replaced all `const CNString &' with `CNStringR'.

Mon Jul 18 15:18:06 1994  CNCL-Admin  (cncl-adm@wyvern)

	* gnu/SocketStream.c: #ifndef __linux__ around prototypes for
	  socket functions, which are already included in sys/socket.h.
	  Moved #include's to beginning of file, added #include <unistd.h>.

	* gnu/SocketBuf.c: #ifndef __linux__ around #include
	  <iostreamP.h>. The header file libioP.h seems to be missing in
	  the LIBC 4.5.24 distribution. This will result in a few warning,
	  though.

	* RCS check in: release 0.21

	* ezd/: included new class EZDDiag.

Wed Jun 29 08:13:28 1994  CNCL-Admin  (cncl-adm@nienna)

	* stat/: update of DLREG and DLRE

	* stat/test/: modified test program

Fri Jun 24 15:53:12 1994  CNCL-Admin  (cncl-adm@dune)

        * stat/: update of DLREG and DLREF
    
Mon May 10 09:55:00 1994  CNCL-Admin  (cncl-adm@dune)

	* stat/: added two classes DLREF and DLREG for evaluation
	  of discrete random sequences.
	  
	* stat/: Makefile (OBJS): new classes DLREF and DLREG

Wed May  4 15:37:05 1994  CNCL-Admin  (cncl-adm@wyvern)

	* gist/: update of the interface classes.

Mon Apr 25 14:55:00 1994  CNCL-Admin  (cncl-adm@wyvern)

	* Object.h: added class CNParam declaration.

Thu Apr 21 15:11:12 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ********** RELEASE 0.20 **********

	* unix/Pipe.h: new member function get_pid().

	* gnu/: new classes SocketBuf, SocketStream, stream class for
	  TCP/IP stream sockets, compatible with GNU libg++ 2.5.x.

	* New subdirectories:
	  libg++/: containing classes specific for GNU libg++, currently
	  the SocketXXX classes.
	  gist/: containing classes for the new GIST interface (requires
	  SocketStream!).

Mon Mar 28 15:33:02 1994  CNCL-Admin  (cncl-adm@wyvern)

	* fuzzy/FRuleBase.[hc]: new member function debug_rules() for
	  debug output of fuzzy rules (aggregate values).

Tue Mar  8 10:39:49 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ezd/EZDDiagWin.c (initialize): clear new window.

	* ezd/EZDTextWin.h: some new member functions.

Thu Mar  3 19:41:55 1994  CNCL-Admin  (cncl-adm@wyvern)

>>>    * SDL: sdl simulation finally arrived. Includes classes CNSDLManager,
>>>      CNSDLSignal, CNSDLProcess, CNSDLProcessData, CNSDLTimer and
>>>      CNSDLEnvironment and Christop Lampes (chl) automatic translator of
>>>      SDL/PR: TranslatorSDL88. <olly> 
    
	* ezd/EZDTextWin.[hc]: new class for a popup window containing
	  text. Function add() to draw a text string at a specified
	  row/column.

Tue Mar  1 16:27:35 1994  CNCL-Admin  (cncl-adm@wyvern)

	* events/EventHandler.[hc]: new function
	  CNEventHandler::delete_events() deletes all events addressed to
	  the specified event handler. delete_events(NIL) deletes all
	  events to this event handler.

	* events/EventHandler.h: class CNEventHandler now derived from
	  CNNamed, new constructor with name argument.

	* Object.[hc]: new virtual functions store_on(), storer(), will be
	  used for supporting persistent objects.

	* events/EventList.[hc] (CNEventList::delete_events): new function 
	  deletes all events for an event handler.

	* events/EventScheduler.[hc] (CNEventScheduler::delete_events): new
	  function deletes all events for an event handler.

Thu Feb 17 12:06:20 1994  CNCL-Admin  (cncl-adm@wyvern)

	* fuzzy/FNumTriangle.[hc]: new class CNFNumTriangle, fuzzy number
	  base on triangle fuzzy set CNFSetTriangle.

	* misc/String.h: added typedef CNStringR.

	* fuzzy/FSetTriangle.h: new member function get_mean() returning
	  mean value (==m1, m2).

	* fuzzy/FSetLR.h: new member functions get_m1(), get_m2(),
	  get_alpha(), get_beta() returning values.

	* ezd/EZDDiagWin.h: new constructor with title argument.
	  New member function set() setting current drawing to diagram
	  window drawing.

	* ezd/EZDWindow.c (initialize): add w_title to "(window ...)"
	  command. 

	* ezd/EZDWindow.h (public): new constructors with title argument,
	  setting title for window.
	  (public): renamed ScaleDrawing(), DeleteDrawing(), PrintWindow()
	  to scale_drawing(), delete_drawing(), print_window().

	* ezd/EZD.h (public): new member function draw_clear(), clearing
	  current drawing.

Wed Feb 16 15:55:17 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ezd/EZD.h (public): new member functions save_drawing(),
	  restore_drawing(), equivalents for the ezd functions
	  "(save-drawing)" and "(restore-drawing)".

	* ezd/Makefile (OBJS): new class EZDBlock. Graphical
	  representation of a block with r x c bits in an on or off state.

Thu Feb 10 11:35:03 1994  CNCL-Admin  (cncl-adm@wyvern)

	* misc/String.c (CNString::operator +=): call add(cs), not add(*cs).
	  Changed upsearch() / downsearch() to set pos to the default
	  value (upsearch: 0, downsearch: len-1) if parameter is out of
	  range.

Wed Feb  2 20:05:58 1994  CNCL-Admin  (cncl-adm@wyvern)

	* misc/String.c: CNString::cpyn(): use `n' as length for strncpy().

Fri Jan 28 13:57:12 1994  CNCL-Admin  (cncl-adm@wyvern)

	* ********** RELEASE 0.19 **********

	* RCS check in: release 0.19

	* ezd/: several changes and extensions to the EZD classes by <cs>.
	  New class EZDPopUp.

	* stat/: update of all classes to new versions from <fuss>.

	* array/T_array2.cP (size): set acols to new # of columns for
	  resizing of rows only.

Tue Jan 25 11:53:00 1994  CNCL-Admin  (cncl-adm@wyvern)

	* RCS check in: release 0.18

	* CNCL.c (error): added output of msg() stream.
	  (matherr): removed memset(), using `ends' in output to strstream
	  instead.
	  (msg): memset() the allocated buffer to '\0', allowing proper
	  output without an `ends'.

	* CNCL.[hc]: new function msg(), returning a reference to an
	  output stream. Any output written to this stream will be
	  appended to the message of the error(), fatal(), etc. functions.
	  This is actually an interally allocated ostrstream with a
	  capacity of STR_BUF_SIZE.

	* CNCL.[hc]: new error type `err_info' for non-error messages,
	  new function info(), default "CNCL: " is printed if `msg1' is
	  NIL.

	* CNCL.c (default_exit_handler): output "program aborted" for
	  error_flag==err_abort, "program terminated" in all other cases.

	* CNCL.[hc]: removed FlagType, flags, type_check, get_flags(),
	  set_flags(), set_flag(), unset_flag(), test_flag().
	  Compatibility macro for test_flag(type_check) used in old
	  cast_from_object().
	  THIS REQUIRES RECOMPILING ALL CLASSES STILL USING test_flag()!!!

Mon Jan 24 17:04:20 1994  CNCL-Admin  (cncl-adm@wyvern)

	* events/EventScheduler.c: EventScheduler::stop() deletes all
	  pending events in the event list. <mj>

	* container/DLList.[hc]: new function delete_all_w_obj(), deleting
	  the referenced objects, too. <mj>

Thu Jan 20 18:14:06 1994  CNCL-Admin  (cncl-adm@wyvern)

	* Changed all class header files to allow casting of Null pointers
	  with cast_from_object(). Changed array templates.

	* Template.hP: changed cast_from_object() to allow casting of Null
	  pointer (NIL).

	* misc/String.[hc]: almost total rewrite of the member function.
	  The old version was buggy as hell, detected by the torture test.
	  The new version should be stable. <turm,mj>

	* CNCL.h: new #define ERROR (-1) <mj>

Mon Jan 17 17:02:09 1994  CNCL-Admin  (cncl-adm@goblin)

	* misc/: new classes CNInt and CNDouble; behave like
	  the builtin types but are derived from CNObject <olly>

	* added documentation for CNInt and CNDouble <olly>
    	  
Mon Jan 10 16:17:43 1994  CNCL-Admin  (cncl-adm@wyvern)

	* CNCL.c (CNCL::set_flags): fixed to return old setting

Wed Dec 29 15:02:40 1993  CNCL-Admin  (cncl-adm@striper)

	* misc/String.c: bugs fixed, better performance <turm>

Wed Dec 22 14:49:53 1993  CNCL-Admin  (cncl-adm@wyvern)

	* ********** Release 0.17 **********

Tue Dec 21 12:09:45 1993  CNCL-Admin  (cncl-adm@wyvern)

	* random/: new class CNSSMP2 - Semi-Markov Process random
	  distribution.

	* RCS check in: release 0.17

	* Removed `unused variables' from several test programs.

	* misc/FormInt.c,FormFloat.c: removed memset(), using `<< ends' to
	  terminate string stream.

	* array/Array.c,Array2.c: removed memset(), using `<< ends' to
	  terminate string stream.

	* misc/String.h: changed `const default_extra' to enum, removed
	  `operator char *' (less convenient, but should help avoiding a
	  lot of programming errors).
	  `operator const char *' is back again.

	* stat/Moments.c: removed virtual keyword from mean().

	* stat/Batches.c: changed print() to use iostream manipulators
	  instead of form().

	* random/FileG.c: replaced bcopy() with memcpy().

	* random/FiboG.c: removed virtual keyword from as_long32().

	* misc/String.c: removed default values.

	* misc/ICoord.c: replaced rint(x) with floor(x+.5).

	* fuzzy/: removed default values, inline and virtual keywords
	  from several *.c files.

	* events/Event.c: removed default values.

	* container/: removed default values, inline and virtual keywords
	  from several *.c files.

	* constainer/KeyInt.h,KeyString.h: `(CNObject *)' type cast to
	  avoid ambiguity for default constructor.

	* random/FileG.h: changed `const int's to enum constants.

	* random/all distribution classes: `(CNRNG *)' type cast when
	  calling constructor of CNRandom to avoid ambiguity for default
	  and CNParam constructor.

	* stat/LRE.h: removed `include <stream.h>'

	* misc/FormFloat.h: dito

	* misc/FormInt.h: changed `include "String.h"' to `include
	  <CNCL/String.h>'.

	* stat/Batches.h: moved forward declarations of classes `group',
	  `interval', `interval_out' before class CNBatches. These classes
	  really should be defined locally in class CNBatches.

	* array/T_array.hP: added "(unsigned)" type cast when calling
	  CNArray constructor to avoid ambiguity.

	* container/Key.h: changed both constructors to use constructor
	  syntax for initializing `object'.

	* array/T_array2.cP,T_array.cP: removed default value "=0" from
	  constructor. Necessary for compiling with Borland C++.

	* Started integrating changes for compiling with Borland C++. <mj>

Fri Dec 17 14:53:39 1993  CNCL-Admin  (cncl-adm@ogre)

	* misc/String.c: bug in function resize() fixed. <turm>

Wed Dec 15 17:59:14 1993  CNCL-Admin  (cncl-adm@wyvern)

	* random/RndInt.h: added functions as_int(int high) and as_int(int
	  low, int high) for conformance with manual. <olly>

	* random/InterTab.c: changed drawing function to work properly.
	  The old version used to return false distributions. <olly>

	* random/: added functions as_long32() and has_long32() to all
	  base generator, drawing a 32 bit random integer if possible.
	  as_long() still returns a truncated 31 bit value. <olly>

Mon Nov 22 11:01:06 1993  CNCL-Admin  (cncl-adm@wyvern)

	* RCS check in: release 0.16

	* container/Key*.h: moved alternate function compare(CNKey &) to
	  derived  classes.

	* container/Hash*.h: alternate functions get_key(), delete_key()
	  etc. with reference instead of pointer moved to derived classes.

	* container/DLList.h: made copy constructor public, but with fatal
	  error message. This avoids defining an explicit copy constructor
	  for classes with a CNDLList member. Removed copy constructor
	  from classes CNQueueFIFO, CNEventList.

	* stat/: heavy changes to all statistics classes based on Oliver
	  Fuss' changes.

	* Changes for gcc 2.5.4:
	  - CNCL.h: typedef int bool instead of enum bool to avoid warnings
	  - CNCL.c: matherr(struct exception *)
	  - misc/String.[hc]: moved comparison operators from .h to .c to
	    avoid silly warnings from gcc.

	* array/Makefile: generate classes
	  CNArray2{Char,Int,Float,Double,Long,Object} from template.

Fri Nov 19 14:51:14 1993  CNCL-Admin  (cncl-adm@wyvern)

	* array/: New templates T_array2.* for 2-dimensional arrays.

	* array/: New class CNArray2: base class for 2-dimensional arrays.

	* array/: renamed Template_array.* to T_array.* for unique
	  filenames under MSDOS.

	* container/DLObject.h: destructor is now `protected'. This is
	  necessary for derived classes (CNEvent).

Tue Nov 16 13:03:16 1993  CNCL-Admin  (cncl-adm@wyvern)

	* misc/: New classes CNFormInt, CNFormFloat for strings which are
	  formatted integer and floating point values.

	* misc/String.h: members p, len are now protected to be used by
	  the CNFormXXX classes. Reformatting of the CNString class
	  declaration according to the new template.

Fri Nov 12 17:18:21 1993  CNCL-Admin  (cncl-adm@wyvern)

	* container/QueueFIFO.h: added list() to default and CNParam
	  constructors, private copy constructor to prevent CNQueueFIFO
	  from being copied.

Thu Nov  4 18:06:18 1993  CNCL-Admin  (cncl-adm@wyvern)

	* Fixed CNEvent::is_a(). CNEvent is derived from CNDLObject,
	  therefore we must call CNDLObject::is_a().

Fri Oct 29 11:15:09 1993  CNCL-Admin  (cncl-adm@wyvern)

	* More Makefile changes: new target `templates' to create
	  CNCLgenxxxxx scripts and classes from templates before `make
	  depend'.

	* Changed Makefiles to make `make veryclean' work properly.

	* RCS check in: release 0.15

	* Changed CN_EZDTimer to CN_EZDTIMER in ezd/EZDTimer.c

Thu Oct 28 17:56:33 1993  CNCL-Admin  (cncl-adm@wyvern)

	* New top-level Makefile with targets World, NewWorld for
	  compiling the whole beast from scratch.

	* Added member function draw() to class CNRandom (calls
	  operator()) to allow easy drawing of random numbers when a
	  pointer to a random number generator is given.

	* Added target veryclean to make.common and some of the Makefiles.
	  This will also removed the files generated by the CNCLgen
	  scripts.

	* Moved CNCLgenxxxxx scripts to new directory $TOPDIR/bin, using
	  the new perl scripts.

	* Moved Template.[hc]P from directory template to this directory.

	* Major changes to the array classes in array: new functions
	  Array::size() and Array::size(int sz), access functions get(),
	  put() and operator[] are now inline in the template header file,
	  macro NO_RANGE_CHECK can be #define'd to disable range checking.

Wed Oct 27 12:17:48 1993  CNCL-Admin  (cncl-adm@wyvern)

	* And not to mention some classes in unix.

	* CN_CNxxxx correction also for some classes in stat.

	* Made class CNLRE pure virtual.

	* Dito for some classes in random.

	* Dito for some classes in misc.

	* Corrected somewhat wrong class descriptions CN_CNxxxx for fuzzy
	  classes. 

	* Changed the description of class EZDTimer to the correct
	  uppercase version CN_EZDTIMER.

	* Dito for class CNKey, fixed the missing default constructor in
	  classes CNKeyInt, CNKeyString.

	* Made class CNHashTable pure virtual, removing new_object(),
	  print(), dump().

	* Started updating all CNCL classes to new inline
	  cast_from_object() and new_object().

	* Updated basic classes CNCL, CNObject, CNClass, CNParam according
	  to these changes.

	* New static member function CNObject::fatal_type() for
	  cast_from_object() error messages.

	* New class templates with inline cast_from_object() and
	  new_object() functions. #ifdef NO_TYPE_CHECK allows compile time
	  overriding of the type checking done in cast_from_object().

Mon Oct 25 15:14:30 1993  CNCL-Admin  (cncl-adm@wyvern)

	* New private copy-constructor for CNDLList: container/DLList.h,
	  avoiding false copies and call-by-value with CNDLList objects.

	* "Privatized" CNDLObject's copy-constructor: container/DLObject.h

	* Changed all virtual functions in stat/LRE.h to pure virtual,
	  this avoids the false creation of a CNLRE object. Some
	  reformatting of the source code. #define ERROR(x) removed
	  (wouldn't work with a Standard C (C++) preprocessor anyway).

	* Removed (commented) teff from TESTS targets in
	  lib/events/test/Makefile to avoid confusion when running `make
	  tests' after compiling CNCL.

Wed Oct  6 13:53:32 1993  CNCL-Admin  (cncl-adm@durin-vz)

	* Fixed a small bug occuring during compilation of the LINUX
	  version: in container/test/tDL.c CNDLObjects were deleted and
	  then used for further traversing the list. This also occured in
	  CNEventList::delete_event().

Mon Sep 20 14:49:54 1993  CNCL-Admin  (cncl-adm@lurker)

	* Some small changes to ezd/EZDPushButton.c, EZDText.c,
	  EZDWindow.c: errors in print() and dump() functions. Included in
	  release 0.14.

	* ********** Release 0.14 **********
	  FIRST PUBLIC RELEASE FOR MMB'93.

	* Moved this ChangeLog to lib/ directory, separate ChangeLog for
	  doc/. <mj>

Tue Sep 14 13:14:18 1993  CNCL-Admin  (cncl-adm@wyvern)

	* Fixed a bug in FileG.h/FileG.c: constructor / function newfile()
	  with alternative int parameter was ambigous. <mj>

Mon Sep 13 12:16:20 1993  CNCL-Admin  (cncl-adm@wyvern)

	* ********** Release 0.13 **********

	* Some clean up of all *.h and *.c files. <mj>

	* New class CNBatches, batch means evaluation for CNCL statistics.
	  <fuss> 

	* New class EZDTimer, displaying a pie timer diagram, changes to
	  EZD and EZDObject, new functions draw_pie_arc(), pie_arc(). <mz>

	* BHEADER/EHEADER in all *.h headers to allow filtering for
	  printout. <turm>

	* Removed $Log$ entries from *.h and *.c files, because ChangeLog
	  is used for documenting development. <turm>

Thu Sep  2 15:50:46 1993  Martin Junius  (mj@wyvern)

	* New File CREDIT documenting CNCL's who is who: authors of the
	  various classes.

	* Restored FSF/GNU copyright notice in all files derived from GNU
	  libg++ (random number generators).

Thu Aug 26 15:32:08 1993  Martin Junius  (mj@wyvern)

	* ********** Update 0.12.0.1 **********

	* Fixed a severe bug in CNEventList::add_event(), comparison for
	  adding an event to the end of the list was wrong.

Mon Aug 23 12:56:00 1993  Martin Junius  (mj@wyvern)

	* New function EZD::test_event() using CNSelect to check, whether
	  an event from ezd is wait for input via EZD::event(). This
	  creates the ability to stop simulations with ezd animation.

	* New function CNPipe::fd_in(), fd_out() returning the pipe's file
	  descriptors. 

	* New UNIX specific class CNSelect, an interface to the UNIX
	  select(2) system call and file descriptor sets.

Fri Aug 20 11:35:42 1993  Martin Junius  (mj@wyvern)

	* ********** Release 0.12 **********

Thu Aug 19 17:20:40 1993  Martin Junius  (mj@wyvern)

	* Maximum number of events (== size of pool from which
	  CNEvent::operator new allocates events) is now user configurable
	  via CNEvent::set_max_events(), default is 100.
	  CNEvent::get_max_events() returns the actual setting. The max.
	  number of events must be set before the creation of the first
	  event.

Wed Aug 18 16:39:05 1993  Martin Junius  (mj@wyvern)

	* Final optimization results: tmm1 28->16.1 s, teff 58.8->3.1 s
	  (compiled with -g -Wall)

	* Optimization: all member function of CNEvent to access members
	  are now inline code. Alas, no significant preformance increase.

Tue Aug 17 12:13:19 1993  Martin Junius  (mj at wyvern)

	* Major rewrite of class EventList: CNEvents are now derived from
	  CNDLObject and can therefore directly be used as nodes in the
	  linked list. The function add_event(), delete_event(), next_event(),
	  peek_event() have been modified accordingly. This reduces the
	  overhead of allocating a separate DLObject for every event in
	  the event list.

	* New function CNDLList::remove_object(): remove node from list,
	  but do NOT delete DLObject. Used by CNEventList.

	* More optimization: operator new and delete for CNEvent,
	  allocating events from a fixed pool, not using time consuming
	  malloc()/free(). But this is also necessary for the CNDLObject
	  nodes used by CNDLList.

	* Changed CNSimTime to a simple `typedef double CNSimTime;', which
	  is much more efficient.

Mon Aug 16 10:51:06 1993  Martin Junius  (mj at wyvern)

	* Tried to optimize add_event() by traversing the event list in
	  the reverse direction when inserting a new event. Alas this
	  yielded NO improvement when tested with a real simulation
	  program. Therefore the old code is back in, the reverse
	  traversing in commented out. Maybe this strategy should be
	  controlled by the simulation program.

	* More optimization: special checking, whether the new event will
	  be the last one in the event list. In this common case the event
	  is just appended to the event list, avoiding the traversing of
	  the entire DLList.

	* Optimization in CNEventList::add_event(): check for empty list
	  first, CNEventList is now a friend of CNEvent, allowing direct
	  access to the members of CNEvent.

	* Added member functions empty(), length() to class CNDLList,
	  returning TRUE, if the list is empty, and the # of items in the
	  list, respectively.

Thu Aug  5 12:12:52 1993  Martin Junius  (mj at wyvern)

	* ********** RELEASE 0.11 **********

	* The fuzzy classes CNFSet, CNFVar, CNFRuleBase are now derived
	  from CNNamed.

	* New subdirectory fuzzy/ with classes for fuzzy logic
	  applications:
	  CNFSet         - Abstract base class for fuzzy sets
	  CNFSetLR       - Fuzzy set with left and right function
	  CNFSetTrapez   - Fuzzy set with trapezoid membership function
	  CNFSetTriangle - Fuzzy set with triangle membership function
	  CNFSetArray    - Fuzzy set with membership function specified by
			   an array of values
	  CNFVar         - Fuzzy linguistic variable
	  CNFRule        - Fuzzy if-then rule
	  CNFClause      - LHS and RHS parts of fuzzy rules
	  CNFRuleBase    - Fuzzy rule base and inference engine
	  No documentation yet.

	* Added function initialize() to class CNCL. This function is
	  called once by the constructor of CNCL. Currently initialize()
	  installs CNCL::new_handler() as the new operator's new handler,
	  causing the program to be terminated when out of memory.

Wed Aug  4 17:22:54 1993  Martin Junius  (mj at wyvern)

	* ********** Update 0.10.0.5 **********
	  Update due to event list bug.

	* Fixed a bug in CNEventList::delete_event(): events were removed
	  from the DLList but not deleted.

	* New subdirectory ezd/ with classes for an interface to the ezd
	  graphics server: EZD, EZDWindow, EZDDrawing, EZDObject,
	  EZDQueue, EZDServer, EZDText, EZDPushButton.
	  No documentation yet.

	* New subdirectory unix/ with system specific classes for UNIX.
	  Implemented class CNPipe, which creates UNIX pipes to a child
	  processes.

	* New class CNNamed: abstract base class for objects mit a name.
	  Files misc/CNNamed.[hc]

Mon Jul 26 14:35:34 1993  Martin Junius  (mj at wyvern)

	* ********** Update 0.10.0.4 **********

	* Fixed a bug in array classes: set_size() on an uninitalized
	  array (i.e. default or CNParam constructor called) didn't work
	  properly.

Wed Jul 21 13:56:40 1993  Martin Junius  (mj at balrog)

	* Fixed a G++ related bug in CNEventHandler::send_event(),
	  comparison of SimTime and integer constant yields false
	  results. (Must use explicit (double) type cast or double constant)

Wed Jul 21 13:13:12 1993  Martin Junius  (mj at balrog)

	* Changed member functions state(), get_state(), now() of
	  CNEventHandler to const.

Mon Jul 19 12:45:36 1993  Martin Junius  (mj at wyvern)

	* Cosmetic changes to CNEvent::dump() and CNEventHandler::dump().

	* Added member function stop() to CNEventScheduler, allowing
	  termination of simulation from within an event handler.

Thu Jul 15 15:34:01 1993  Martin Junius  (mj at wyvern)

	* ********** RELEASE 0.10 **********
	  (Actually some classes are already at revision 0.10.0.2 ;-)

	* Updated documentation for release 0.10, including stuff from
	  Martin Steppler's Studienarbeit. Alas, documentation of the
	  statistic classes is still missing.

	* Bug fixes for dump() member functions of CNDLIterator,
	  CNDLObject, and CNEvent.

	* New classes CNLRE, CNLREF, CNLREG: statistical evaluation with
	  the LRE method for F(x) and G(x).

	* Started using Emacs ChangeLog for documenting CNCL development.

