Copyright 2000, 2001 Free Software Foundation, Inc.

This file is part of the GNU MP Library test suite.

The GNU MP Library test suite is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of the License,
or (at your option) any later version.

The GNU MP Library test suite is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
Public License for more details.

You should have received a copy of the GNU General Public License along with
the GNU MP Library test suite.  If not, see https://www.gnu.org/licenses/.




                       DEVELOPMENT TEST PROGRAMS


This directory contains various programs used during development.  Casual
GMP users are unlikely to find anything of interest.

Nothing here is built or installed, nor even run in a "make check", but
there's Makefile rules to build each program, or "allprogs" to build
everything.



----------------
Local variables:
mode: text
fill-column: 76
End:
