BTF, by Timothy A. Davis, Copyright (C) 2004-2016, University of Florida
BTF is also available under other licenses; contact the author for details.
http://www.suitesparse.com

See BTF/Doc/License.txt for the license.

BTF is a software package for permuting a matrix into block upper triangular
form.  It includes a maximum transversal algorithm, which finds a permutation
of a square or rectangular matrix so that it has a zero-free diagonal (if one
exists); otherwise, it finds a maximal matching which maximizes the number of
nonzeros on the diagonal.  The package also includes a method for finding the
strongly connected components of a graph.  These two methods together give the
permutation to block upper triangular form.

Requires SuiteSparse_config, in the ../SuiteSparse_config directory relative to
this directory.  KLU relies on the BTF package to permute the matrix prior to
factorization.

To compile the libbtf.a and libbtf.so library (*.dylib on the Mac), type
"make".  Type "make install" to install the library in /usr/local/lib and
/usr/local/include, and "make uninstall" to remove it.
"make local ; make install" will install only in SuiteSparse/lib and
SuiteSparse/include.

Type "make clean" to remove all but the compiled library, and "make distclean"
to remove all files not in the original distribution.

This package does not include a statement coverage test (Tcov directory) or
demo program (Demo directory).  See the KLU package for both.  The BTF package
does include a MATLAB interface, a MATLAB test suite (in the MATLAB/Test
directory), and a MATLAB demo.

See BTF/Include/btf.h for documentation on how to use the C-callable functions.
Use "help btf", "help maxtrans" and "help strongcomp" in MATLAB, for details on
how to use the MATLAB-callable functions.  Additional details on the use of BTF
are given in the KLU User Guide, normally in ../KLU/Doc/KLU_UserGuide.pdf
relative to this directory.

--------------------------------------------------------------------------------

Files and directories in the BTF package:

    Doc             documentation and license
    Include         include files
    Makefile        Makefile for C and MATLAB versions
    MATLAB          MATLAB interface
    README.txt      this file
    Source          BTF source code
    CMakeLists.txt  cmake script for compiling BTF
    Config          source for bft.h

./Doc:

    ChangeLog       changes in BTF

./Include:

    btf.h           primary user include file
    btf_internal.h  internal include file, not for user programs

./Lib:

    Makefile        Makefile for C library

./MATLAB:

    btf.c           btf mexFunction
    btf_install.m   compile and install BTF for use in MATLAB
    btf.m           btf help
    Contents.m      contents of MATLAB interface
    Makefile        Makefile for MATLAB functions
    maxtrans.c      maxtrans mexFunction
    maxtrans.m      maxtrans help
    strongcomp.c    strongcomp mexFunction
    strongcomp.m    strongcomp help
    Test            MATLAB test directory

./MATLAB/Test:

    checkbtf.m      check a BTF ordering
    drawbtf.m       plot a BTF ordering
    test1.m         compare maxtrans and cs_dmperm
    test2.m         compare btf and cs_dmperm
    test3.m         extensive test (maxtrans, strongcomp, and btf)
    test4b.m        test btf maxwork option
    test4.m         test btf maxwork option
    test5.m         test maxtrans maxwork option

./Source:

    btf_maxtrans.c      btf_maxtrans C function
    btf_order.c         btf_order C function
    btf_strongcomp.c    btf_strongcomp C function

