**********************************************************************
	SNNS License Agreement Readme File for SNNS version 4.2
**********************************************************************

SNNS  is (Copyright) 1990-95  University of Stuttgart,  Institute  for
Parallel   and   Distributed   High   Performance   Systems    (IPVR),
Breitwiesenstr. 20-22,  D-70565 Stuttgart,  Fed.  Rep.  of Germany and 
(Copyright)  1996-98   University  of   Tuebingen,   Wilhelm-Schickard 
Institute for Computer Science, Koestlinstr. 6, D-72074 Tuebingen.

SNNS is distributed by the University of Tuebingen  as `Free Software' 
in a licensing agreement similar in some  aspects  to  the GNU General
Public License.  There are a number of important differences, however,
regarding  modifications and distribution of  SNNS to  third  parties.
Note also that SNNS is not part of the  GNU software nor is any of its
authors connected with the Free  Software  Foundation. We  only  share
some common beliefs about  software distribution.  Note  further  that
SNNS is NOT PUBLIC DOMAIN.

The SNNS License is designed to make sure that you have the freedom to
give away verbatim copies of SNNS, that you receive source code or can
get it if  you want  it and that you  can change the software for your
personal use; and that you know you can do these things.

We  protect  your  and  our rights  with  two steps: (1) copyright the
software,  and  (2) offer  you this  license  which  gives  you  legal
permission to copy and distribute the unmodified software or modify it
for your own purpose.

In contrast to the GNU license we do not allow  modified copies of our
software  to  be  distributed.  You  may,  however,   distribute  your
modifications  as separate  files (e.g. patch files)  along  with  our
unmodified SNNS  software. We  encourage users  to  send  changes  and
improvements  which would  benefit many other users to us  so that all
users   may  receive  these  improvements  in  a  later  version.  The
restriction  not  to distribute  modified  copies  is  also useful  to
prevent bug reports from someone else's modifications.

Also,  for  our  protection,  we  want to make  certain  that everyone
understands  that  there  is  NO  WARRANTY  OF ANY KIND  for the  SNNS
software.

If you have  any  questions regarding this  license  agreement, please
contact Andreas Zell at zell@informatik.uni-tuebingen.de


**********************************************************************
	SNNS License Agreement
**********************************************************************

1.  This  License  Agreement  applies  to  the SNNS  program  and  all
accompanying  programs and  files that are  distributed with  a notice
placed by the copyright holder  saying it may be distributed under the
terms of  the SNNS  License.  ``SNNS'',  below,  refers  to  any  such
program or work, and a ``work based on SNNS'' means either SNNS or any
work containing SNNS  or a  portion  of it,  either  verbatim or  with
modifications.  Each licensee is addressed as ``you''.

2.  You may copy and distribute verbatim copies  of SNNS's source code
as you receive it,  in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this
License  and  to  the absence  of  any  warranty; and  give any  other
recipients of SNNS a copy of this license along with SNNS.

3. You  may modify  your copy or copies of  SNNS or  any portion of it
only for your own use. You  may not distribute modified copies of SNNS
You may,  however, distribute your modifications as separate files (e.
patch  files)  along  with  the  unmodified  SNNS  software.  We  also
encourage users to  send changes  and improvements which would benefit
many  other  users  to  us  so  that   all  users  may  receive  these
improvements  in a later  version. The restriction not  to  distribute
modified copies is also  useful  to prevent bug  reports from  someone
else's modifications.

4. If you distribute copies of SNNS you may not charge anything except
the cost for the media and  a fair estimate  of the  costs of computer
time or network time directly attributable to the copying.

5. You may not  copy, modify,  sublicense, distribute or transfer SNNS
except  as  expressly  provided  under  this   License.   Any  attempt
otherwise to copy,  modify, sublicense, distribute or transfer SNNS is
void, and will automatically terminate your rights to  use  SNNS under
this License.  However, parties who have received copies, or rights to
use  copies, from you  under this License will not have their licenses
terminated so long as such parties remain in full compliance.

6.  By copying, distributing or modifying SNNS (or any  work based  on
SNNS) you indicate your  acceptance of this license to do  so, and all
its terms and conditions.

7. Each time you redistribute SNNS (or any  work based  on  SNNS), the
recipient automatically receives a license from the  original licensor
to  copy,  distribute  or  modify SNNS  subject  to  these  terms  and
conditions.   You may not  impose  any  further  restrictions  on  the
recipients' exercise of the rights granted herein.

8.  Incorporation of  SNNS  or  parts of  it  in  commercial  programs
requires a special  agreement  between the  copyright holder  and  the
Licensee in writing and ususally involves the payment of license fees.
If  you want to incorporate SNNS or parts of it in commercial programs
write to the author about further details.

9. Because SNNS is licensed free of charge, there is  no warranty  for
SNNS, to the extent permitted by applicable law. The copyright holders
and/or other parties  provide  SNNS ``as  is'' without warranty of any
kind, either expressed or implied,  including, but not limited to, the
implied warranties of  merchantability and  fitness  for a  particular
purpose. The entire risk as to  the quality and performance of SNNS is
with you. Should the program prove  defective, you assume the cost  of
all necessary servicing, repair or correction.

10. In  no event will any copyright holder, or any other party who may
redistribute SNNS as permitted  above, be  liable to you for  damages,
including  any  general, special,  incidental or consequential damages
arising out of the use or inability  to  use  SNNS (including  but not
limited to  loss of data or  data being rendered inaccurate  or losses
sustained by you or third parties or a failure of SNNS to operate with
any other  programs),  even  if such holder or  other  party has  been
advised of the possibility of such damages.

**********************************************************************
	End of SNNS License Agreement
**********************************************************************
