As of SuiteSparse 4.5.6 CCOLAMD is now licensed under BSD-3!

release/4.3a0
chrisbeall 2017-10-17 08:27:44 -07:00
parent c82fe1fde2
commit 18fb907a85
20 changed files with 74 additions and 177 deletions

View File

@ -4,11 +4,11 @@ LICENSE.BSD in this directory.
GTSAM contains two third party libraries, with documentation of licensing and GTSAM contains two third party libraries, with documentation of licensing and
modifications as follows: modifications as follows:
- CCOLAMD 2.73: Tim Davis' constrained column approximate minimum degree - CCOLAMD 2.9.3: Tim Davis' constrained column approximate minimum degree
ordering library ordering library
- Included unmodified in gtsam/3rdparty/CCOLAMD and gtsam/3rdparty/UFconfig - Included unmodified in gtsam/3rdparty/CCOLAMD and gtsam/3rdparty/UFconfig
- http://www.cise.ufl.edu/research/sparse - http://faculty.cse.tamu.edu/davis/suitesparse.html
- Licenced under LGPL v2.1, provided in gtsam/3rdparty/CCOLAMD/Doc/lesser.txt - Licenced under BSD-3, provided in gtsam/3rdparty/CCOLAMD/Doc/License.txt
- Eigen 3.2: General C++ matrix and linear algebra library - Eigen 3.2: General C++ matrix and linear algebra library
- Modified with 3 patches that have been contributed back to the Eigen team: - Modified with 3 patches that have been contributed back to the Eigen team:
- http://eigen.tuxfamily.org/bz/show_bug.cgi?id=704 (Householder QR MKL selection) - http://eigen.tuxfamily.org/bz/show_bug.cgi?id=704 (Householder QR MKL selection)

Binary file not shown.

View File

@ -15,7 +15,7 @@ Column 3, with 2 entries:
row 1 row 1
row 3 row 3
ccolamd version 2.9, Apr 1, 2016: OK. ccolamd version 2.9, May 4, 2016: OK.
ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty rows ignored: 0
ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of dense or empty columns ignored: 0
ccolamd: number of garbage collections performed: 0 ccolamd: number of garbage collections performed: 0
@ -38,7 +38,7 @@ Column 3, with 1 entries:
row 4 row 4
Column 4, with 0 entries: Column 4, with 0 entries:
csymamd version 2.9, Apr 1, 2016: OK. csymamd version 2.9, May 4, 2016: OK.
csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty rows ignored: 0
csymamd: number of dense or empty columns ignored: 0 csymamd: number of dense or empty columns ignored: 0
csymamd: number of garbage collections performed: 0 csymamd: number of garbage collections performed: 0

Binary file not shown.

View File

@ -15,7 +15,7 @@ Column 3, with 2 entries:
row 1 row 1
row 3 row 3
ccolamd version 2.9, Apr 1, 2016: OK. ccolamd version 2.9, May 4, 2016: OK.
ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty rows ignored: 0
ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of dense or empty columns ignored: 0
ccolamd: number of garbage collections performed: 0 ccolamd: number of garbage collections performed: 0
@ -38,7 +38,7 @@ Column 3, with 1 entries:
row 4 row 4
Column 4, with 0 entries: Column 4, with 0 entries:
csymamd version 2.9, Apr 1, 2016: OK. csymamd version 2.9, May 4, 2016: OK.
csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty rows ignored: 0
csymamd: number of dense or empty columns ignored: 0 csymamd: number of dense or empty columns ignored: 0
csymamd: number of garbage collections performed: 0 csymamd: number of garbage collections performed: 0

View File

@ -1,50 +0,0 @@
ccolamd 5-by-4 input matrix:
Column 0, with 3 entries:
row 0
row 1
row 4
Column 1, with 2 entries:
row 2
row 4
Column 2, with 4 entries:
row 0
row 1
row 2
row 3
Column 3, with 2 entries:
row 1
row 3
ccolamd version 2.7, Jan 25, 2011: OK.
ccolamd: number of dense or empty rows ignored: 0
ccolamd: number of dense or empty columns ignored: 0
ccolamd: number of garbage collections performed: 0
ccolamd column ordering:
1st column: 1
2nd column: 0
3rd column: 3
4th column: 2
csymamd 5-by-5 input matrix:
Entries in strictly lower triangular part:
Column 0, with 1 entries:
row 1
Column 1, with 2 entries:
row 2
row 3
Column 2, with 0 entries:
Column 3, with 1 entries:
row 4
Column 4, with 0 entries:
csymamd version 2.7, Jan 25, 2011: OK.
csymamd: number of dense or empty rows ignored: 0
csymamd: number of dense or empty columns ignored: 0
csymamd: number of garbage collections performed: 0
csymamd column ordering:
1st row/column: 0
2nd row/column: 2
3rd row/column: 1
4th row/column: 3
5th row/column: 4

View File

@ -1,50 +0,0 @@
ccolamd 5-by-4 input matrix:
Column 0, with 3 entries:
row 0
row 1
row 4
Column 1, with 2 entries:
row 2
row 4
Column 2, with 4 entries:
row 0
row 1
row 2
row 3
Column 3, with 2 entries:
row 1
row 3
ccolamd version 2.7, Jan 25, 2011: OK.
ccolamd: number of dense or empty rows ignored: 0
ccolamd: number of dense or empty columns ignored: 0
ccolamd: number of garbage collections performed: 0
ccolamd_l column ordering:
1st column: 1
2nd column: 0
3rd column: 3
4th column: 2
csymamd_l 5-by-5 input matrix:
Entries in strictly lower triangular part:
Column 0, with 1 entries:
row 1
Column 1, with 2 entries:
row 2
row 3
Column 2, with 0 entries:
Column 3, with 1 entries:
row 4
Column 4, with 0 entries:
csymamd version 2.7, Jan 25, 2011: OK.
csymamd: number of dense or empty rows ignored: 0
csymamd: number of dense or empty columns ignored: 0
csymamd: number of garbage collections performed: 0
csymamd_l column ordering:
1st row/column: 0
2nd row/column: 2
3rd row/column: 1
4th row/column: 3
5th row/column: 4

View File

@ -1,3 +1,7 @@
May 4, 2016: version 2.9.6
* minor changes to Makefile
Apr 1, 2016: version 2.9.5 Apr 1, 2016: version 2.9.5
* licensing simplified (no other change); refer to CCOLAMD/Doc/License.txt * licensing simplified (no other change); refer to CCOLAMD/Doc/License.txt

View File

@ -6,16 +6,28 @@ http://www.suitesparse.com
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
CCOLAMD is free software; you can redistribute it and/or CCOLAMD license: BSD 3-clause:
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
CCOLAMD is distributed in the hope that it will be useful, Redistribution and use in source and binary forms, with or without
but WITHOUT ANY WARRANTY; without even the implied warranty of modification, are permitted provided that the following conditions are met:
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Redistributions of source code must retain the above copyright
Lesser General Public License for more details. notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the organizations to which the authors are
affiliated, nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior
written permission.
You should have received a copy of the GNU Lesser General Public THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
License along with this Module; if not, write to the Free Software AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

View File

@ -41,11 +41,11 @@ extern "C" {
* #endif * #endif
*/ */
#define CCOLAMD_DATE "Apr 1, 2016" #define CCOLAMD_DATE "May 4, 2016"
#define CCOLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define CCOLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
#define CCOLAMD_MAIN_VERSION 2 #define CCOLAMD_MAIN_VERSION 2
#define CCOLAMD_SUB_VERSION 9 #define CCOLAMD_SUB_VERSION 9
#define CCOLAMD_SUBSUB_VERSION 5 #define CCOLAMD_SUBSUB_VERSION 6
#define CCOLAMD_VERSION \ #define CCOLAMD_VERSION \
CCOLAMD_VERSION_CODE(CCOLAMD_MAIN_VERSION,CCOLAMD_SUB_VERSION) CCOLAMD_VERSION_CODE(CCOLAMD_MAIN_VERSION,CCOLAMD_SUB_VERSION)

View File

@ -3,7 +3,7 @@
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
LIBRARY = libccolamd LIBRARY = libccolamd
VERSION = 2.9.5 VERSION = 2.9.6
SO_VERSION = 2 SO_VERSION = 2
default: library default: library
@ -32,6 +32,8 @@ ccolamd_l.o: $(SRC) $(INC)
$(CC) $(CF) $(I) -c ../Source/ccolamd.c -DDLONG -o ccolamd_l.o $(CC) $(CF) $(I) -c ../Source/ccolamd.c -DDLONG -o ccolamd_l.o
# creates libccolamd.a, a C-callable CCOLAMD library # creates libccolamd.a, a C-callable CCOLAMD library
static: $(AR_TARGET)
$(AR_TARGET): $(OBJ) $(AR_TARGET): $(OBJ)
$(ARCHIVE) $@ $^ $(ARCHIVE) $@ $^
- $(RANLIB) $@ - $(RANLIB) $@

Binary file not shown.

View File

@ -20,6 +20,10 @@ all:
library: library:
( cd Lib ; $(MAKE) ) ( cd Lib ; $(MAKE) )
# compile the static libraries only
static:
( cd Lib ; $(MAKE) static )
# remove object files, but keep the compiled programs and library archives # remove object files, but keep the compiled programs and library archives
clean: clean:
( cd Lib ; $(MAKE) clean ) ( cd Lib ; $(MAKE) clean )

View File

@ -1,28 +0,0 @@
/* ========================================================================== */
/* === ccolamd_global.c ===================================================== */
/* ========================================================================== */
/* ----------------------------------------------------------------------------
* CCOLAMD Copyright (C), Univ. of Florida. Authors: Timothy A. Davis,
* Sivasankaran Rajamanickam, and Stefan Larimore
* See License.txt for the Version 2.1 of the GNU Lesser General Public License
* http://www.cise.ufl.edu/research/sparse
* -------------------------------------------------------------------------- */
/* Global variables for CCOLAMD */
#ifndef NPRINT
#ifdef MATLAB_MEX_FILE
#include <stdlib.h>
#include <stdint.h>
typedef uint16_t char16_t;
#include "mex.h"
int (*ccolamd_printf) (const char *, ...) = mexPrintf ;
#else
#include <stdio.h>
int (*ccolamd_printf) (const char *, ...) = printf ;
#endif
#else
int (*ccolamd_printf) (const char *, ...) = ((void *) 0) ;
#endif

View File

@ -7,7 +7,7 @@ export SUITESPARSE
# version of SuiteSparse_config is also version of SuiteSparse meta-package # version of SuiteSparse_config is also version of SuiteSparse meta-package
LIBRARY = libsuitesparseconfig LIBRARY = libsuitesparseconfig
VERSION = 4.5.2 VERSION = 4.5.6
SO_VERSION = 4 SO_VERSION = 4
default: library default: library
@ -27,6 +27,8 @@ OBJ = SuiteSparse_config.o
SuiteSparse_config.o: SuiteSparse_config.c SuiteSparse_config.h SuiteSparse_config.o: SuiteSparse_config.c SuiteSparse_config.h
$(CC) $(CF) -c SuiteSparse_config.c $(CC) $(CF) -c SuiteSparse_config.c
static: $(AR_TARGET)
$(AR_TARGET): $(OBJ) $(AR_TARGET): $(OBJ)
$(ARCHIVE) $(AR_TARGET) SuiteSparse_config.o $(ARCHIVE) $(AR_TARGET) SuiteSparse_config.o
$(RANLIB) $(AR_TARGET) $(RANLIB) $(AR_TARGET)

View File

@ -1,4 +1,4 @@
SuiteSparse_config, 2016, Timothy A. Davis, http://www.suitesparse.com SuiteSparse_config, 2017, Timothy A. Davis, http://www.suitesparse.com
(formerly the UFconfig package) (formerly the UFconfig package)
This directory contains a default SuiteSparse_config.mk file. It tries to This directory contains a default SuiteSparse_config.mk file. It tries to

View File

@ -184,24 +184,24 @@ int SuiteSparse_divcomplex
* *
* SuiteSparse contains the following packages: * SuiteSparse contains the following packages:
* *
* SuiteSparse_config version 4.5.2 (version always the same as SuiteSparse) * SuiteSparse_config version 4.5.6 (version always the same as SuiteSparse)
* AMD version 2.4.5 * AMD version 2.4.6
* BTF version 1.2.5 * BTF version 1.2.6
* CAMD version 2.4.5 * CAMD version 2.4.6
* CCOLAMD version 2.9.5 * CCOLAMD version 2.9.6
* CHOLMOD version 3.0.10 * CHOLMOD version 3.0.11
* COLAMD version 2.9.5 * COLAMD version 2.9.6
* CSparse version 3.1.8 * CSparse version 3.1.9
* CXSparse version 3.1.8 * CXSparse version 3.1.9
* GPUQREngine version 1.0.4 * GPUQREngine version 1.0.5
* KLU version 1.3.7 * KLU version 1.3.8
* LDL version 2.2.5 * LDL version 2.2.6
* RBio version 2.2.5 * RBio version 2.2.6
* SPQR version 2.0.6 * SPQR version 2.0.8
* SuiteSparse_GPURuntime version 1.0.4 * SuiteSparse_GPURuntime version 1.0.5
* UMFPACK version 5.7.5 * UMFPACK version 5.7.6
* MATLAB_Tools various packages & M-files * MATLAB_Tools various packages & M-files
* xerbla version 1.0.2 * xerbla version 1.0.3
* *
* Other package dependencies: * Other package dependencies:
* BLAS required by CHOLMOD and UMFPACK * BLAS required by CHOLMOD and UMFPACK
@ -211,7 +211,6 @@ int SuiteSparse_divcomplex
* they are compiled with GPU acceleration. * they are compiled with GPU acceleration.
*/ */
int SuiteSparse_version /* returns SUITESPARSE_VERSION */ int SuiteSparse_version /* returns SUITESPARSE_VERSION */
( (
/* output, not defined on input. Not used if NULL. Returns /* output, not defined on input. Not used if NULL. Returns
@ -234,11 +233,11 @@ int SuiteSparse_version /* returns SUITESPARSE_VERSION */
*/ */
#define SUITESPARSE_HAS_VERSION_FUNCTION #define SUITESPARSE_HAS_VERSION_FUNCTION
#define SUITESPARSE_DATE "Apr 1, 2016" #define SUITESPARSE_DATE "Oct 3, 2017"
#define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub))
#define SUITESPARSE_MAIN_VERSION 4 #define SUITESPARSE_MAIN_VERSION 4
#define SUITESPARSE_SUB_VERSION 5 #define SUITESPARSE_SUB_VERSION 5
#define SUITESPARSE_SUBSUB_VERSION 2 #define SUITESPARSE_SUBSUB_VERSION 6
#define SUITESPARSE_VERSION \ #define SUITESPARSE_VERSION \
SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION) SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION)

View File

@ -5,7 +5,7 @@
# This file contains all configuration settings for all packages in SuiteSparse, # This file contains all configuration settings for all packages in SuiteSparse,
# except for CSparse (which is stand-alone) and the packages in MATLAB_Tools. # except for CSparse (which is stand-alone) and the packages in MATLAB_Tools.
SUITESPARSE_VERSION = 4.5.2 SUITESPARSE_VERSION = 4.5.6
#=============================================================================== #===============================================================================
# Options you can change without editing this file: # Options you can change without editing this file:
@ -115,6 +115,7 @@ SUITESPARSE_VERSION = 4.5.2
CC = icc -D_GNU_SOURCE CC = icc -D_GNU_SOURCE
CXX = $(CC) CXX = $(CC)
CFOPENMP = -qopenmp -I$(MKLROOT)/include CFOPENMP = -qopenmp -I$(MKLROOT)/include
LDFLAGS += -openmp
endif endif
ifneq ($(shell which ifort 2>/dev/null),) ifneq ($(shell which ifort 2>/dev/null),)
# use the Intel ifort compiler for Fortran codes # use the Intel ifort compiler for Fortran codes
@ -123,7 +124,7 @@ SUITESPARSE_VERSION = 4.5.2
endif endif
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# code formatting (for Tcov only) # code formatting (for Tcov on Linux only)
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
PRETTY ?= grep -v "^\#" | indent -bl -nce -bli0 -i4 -sob -l120 PRETTY ?= grep -v "^\#" | indent -bl -nce -bli0 -i4 -sob -l120
@ -224,7 +225,6 @@ SUITESPARSE_VERSION = 4.5.2
CUDA_INC = -I$(CUDA_INC_PATH) CUDA_INC = -I$(CUDA_INC_PATH)
NVCC = $(CUDA_PATH)/bin/nvcc NVCC = $(CUDA_PATH)/bin/nvcc
NVCCFLAGS = -Xcompiler -fPIC -O3 \ NVCCFLAGS = -Xcompiler -fPIC -O3 \
-gencode=arch=compute_20,code=sm_20 \
-gencode=arch=compute_30,code=sm_30 \ -gencode=arch=compute_30,code=sm_30 \
-gencode=arch=compute_35,code=sm_35 \ -gencode=arch=compute_35,code=sm_35 \
-gencode=arch=compute_50,code=sm_50 \ -gencode=arch=compute_50,code=sm_50 \
@ -305,8 +305,9 @@ SUITESPARSE_VERSION = 4.5.2
SPQR_CONFIG ?= $(GPU_CONFIG) SPQR_CONFIG ?= $(GPU_CONFIG)
# to compile with Intel's TBB, use TBB=-ltbb SPQR_CONFIG=-DHAVE_TBB # to compile with Intel's TBB, use TBB=-ltbb -DSPQR_CONFIG=-DHAVE_TBB
TBB ?= TBB ?=
# TBB = -ltbb -DSPQR_CONFIG=-DHAVE_TBB
# TODO: this *mk file should auto-detect the presence of Intel's TBB, # TODO: this *mk file should auto-detect the presence of Intel's TBB,
# and set the compiler flags accordingly. # and set the compiler flags accordingly.

View File

@ -4,7 +4,7 @@
USE_FORTRAN = 0 USE_FORTRAN = 0
# USE_FORTRAN = 1 # USE_FORTRAN = 1
VERSION = 1.0.2 VERSION = 1.0.3
SO_VERSION = 1 SO_VERSION = 1
default: library default: library
@ -35,6 +35,8 @@ ccode: all
fortran: all fortran: all
static: $(AR_TARGET)
$(AR_TARGET): $(DEPENDS) $(AR_TARGET): $(DEPENDS)
$(COMPILE) $(COMPILE)
$(ARCHIVE) $(AR_TARGET) xerbla.o $(ARCHIVE) $(AR_TARGET) xerbla.o

View File

@ -25,7 +25,6 @@ add_subdirectory(3rdparty)
set (3rdparty_srcs set (3rdparty_srcs
${eigen_headers} # Set by 3rdparty/CMakeLists.txt ${eigen_headers} # Set by 3rdparty/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/CCOLAMD/Source/ccolamd.c ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/CCOLAMD/Source/ccolamd.c
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/CCOLAMD/Source/ccolamd_global.c
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SuiteSparse_config/SuiteSparse_config.c) ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SuiteSparse_config/SuiteSparse_config.c)
gtsam_assign_source_folders("${3rdparty_srcs}") # Create MSVC structure gtsam_assign_source_folders("${3rdparty_srcs}") # Create MSVC structure