(Changes since tiers1.0 was released)


                               _   _   _    _   _ 
                              (_) / ) / \ /(_| |_ 
                              (_)/ /_ \_//   | |_)

Ran testcenter on tiers and found access to uninitialized memory of edges
tiers_create. Added code to zero the edges array for all three types of network

Also found 100K of leaks, mainly since theModel is not deleted. When I deleted
theModel, I got complaints of double deletion, so I undid the deletion (see
leaks.tc file)

ACTION: comments above
                                  _         _ __ 
                              /| / ) |_|_ /(_| / 
                               |/ /_   | /   |/  

Bug reported from ISI ...

To: doar@pobox.com
Subject: tiers bug fix
Date: Fri, 24 Jan 97 17:14:25 PST
From: Daniel Zappala <daniel@ISI.EDU>

When running tiers with

	tiers 1 0 0 100 0 0 3 1 1 1 1

I got a core dump because of a divide by 0. I patched the file
tiers_red_intra.cc with the following fix:

============================================================================
*** tiers_red_intra.cc.orig     Wed Jul 24 09:59:42 1996
--- tiers_red_intra.cc  Fri Jan 24 17:09:26 1997
***************
*** 74,79 ****
--- 74,82 ----
           network++)
        {
          const unsigned long int NumNodes = NetworkList[network].NumNodes();  
 
+         if (NumNodes == 0)
+                 continue;
+         
          const unsigned long int MaxNumEdges = NetworkList[network].MaxNumEdge
s();     
          nodes = NetworkList[network].nodes; // an alias
============================================================================  

Daniel Zappala
daniel@isi.edu

ACTION: Bug fix incorporated, not tested.

                               _   _   _    _ __ 
                                ) / ) (_) /(_| / 
                               /_/ /_ (_)/   |/  

Formatting bug seen in generic output by Wendy Heffner
<wendyh@CS.Berkeley.EDU> where second column of Edge lists has only a
space not a tab. Code inspected in tiers_output (line 223) and looks alright:

 cout << edges[index].start << "\t"
      << edges[index].end << "\t"

Later comment from Wendy: "I believe that the tabbing problem was purely a 
factor of my email program formatting the inserted file differently."

ACTION: no action taken

                                 _   _    _ __ 
                                 _) /_) /(_| / 
                                 _)/ _)/   |/  
                                               

Bug seen in generic output by Wendy Heffner <wendyh@CS.Berkeley.EDU>
where in the edge lists for a MAN the node type of the destination
node is always 2 (LAN) instead of 0 (WAN) or 2 (LAN).

ACTION: bug fix in tiers_output, around line 273, tested.

                                _    _    _ __ 
                                _) /|_  /(_| / 
                                _)/  _)/   |/  

NOTE:

From Wendy:
"I am running the code in two places: at home on a pentium pro running
FreeBSD, and at U.C. Berkeley on a DEC Alpha (64 bit) running OSF. I'm
not up on the details of the random number generators in these
systems, but I do get different results if I use the same seed on both
systems. The file that I sent you was generated on the pentium pro
running FreeBSD."

This suggest that the code has been ported sucessfully to two other machines 
and two other OS's.


End of file
