Re-organization: moving all files.
I re-organized into original cpp directory and 4 additional directories: base, geometry, slam, and tests. cpp will be further renamed/sub-divided and contains the core library. I wanted it not depend on geometry or slam, which necessitated moving complicated tests to a dedicated directory.release/4.3a0
parent
0bb661e847
commit
fea5beb638
|
@ -1,35 +0,0 @@
|
||||||
# Makefile to compile the unit test library, will end up in $(LIBDIR)
|
|
||||||
|
|
||||||
.PHONY: all install clean
|
|
||||||
|
|
||||||
all: libCppUnitLite.a
|
|
||||||
|
|
||||||
CC ?= gcc
|
|
||||||
CXX ?= g++
|
|
||||||
CPP ?= cpp
|
|
||||||
CXXFLAGS += -O2
|
|
||||||
|
|
||||||
sources = $(shell ls *.cpp)
|
|
||||||
objects = $(sources:.cpp=.o)
|
|
||||||
|
|
||||||
library = libCppUnitLite.a
|
|
||||||
|
|
||||||
$(library): $(objects)
|
|
||||||
ar crsv $@ $(objects)
|
|
||||||
ranlib $(library)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.*~ $(library)
|
|
||||||
|
|
||||||
check:
|
|
||||||
echo 'no check for CppUnitLite'
|
|
||||||
|
|
||||||
distdir:
|
|
||||||
|
|
||||||
# Richard: added the following dependencies so that recursive make works:
|
|
||||||
|
|
||||||
install: all
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
|
|
||||||
check: all
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# CppUnitLite
|
||||||
|
# replaced Makefile with automake for easy linking
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
headers = TestHarness.h
|
||||||
|
sources = Failure.cpp SimpleString.cpp Test.cpp TestRegistry.cpp TestResult.cpp
|
||||||
|
headers += $(sources:.cpp=.h)
|
||||||
|
|
||||||
|
noinst_HEADERS = $(headers)
|
||||||
|
noinst_LIBRARIES = libCppUnitLite.a
|
||||||
|
libCppUnitLite_a_SOURCES = $(sources)
|
|
@ -0,0 +1,489 @@
|
||||||
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# CppUnitLite
|
||||||
|
# replaced Makefile with automake for easy linking
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
subdir = CppUnitLite
|
||||||
|
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
ARFLAGS = cru
|
||||||
|
libCppUnitLite_a_AR = $(AR) $(ARFLAGS)
|
||||||
|
libCppUnitLite_a_LIBADD =
|
||||||
|
am__objects_1 = Failure.$(OBJEXT) SimpleString.$(OBJEXT) \
|
||||||
|
Test.$(OBJEXT) TestRegistry.$(OBJEXT) TestResult.$(OBJEXT)
|
||||||
|
am_libCppUnitLite_a_OBJECTS = $(am__objects_1)
|
||||||
|
libCppUnitLite_a_OBJECTS = $(am_libCppUnitLite_a_OBJECTS)
|
||||||
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
am__mv = mv -f
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
SOURCES = $(libCppUnitLite_a_SOURCES)
|
||||||
|
DIST_SOURCES = $(libCppUnitLite_a_SOURCES)
|
||||||
|
HEADERS = $(noinst_HEADERS)
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
DSYMUTIL = @DSYMUTIL@
|
||||||
|
DUMPBIN = @DUMPBIN@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
FGREP = @FGREP@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LD = @LD@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIPO = @LIPO@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
NM = @NM@
|
||||||
|
NMEDIT = @NMEDIT@
|
||||||
|
OBJDUMP = @OBJDUMP@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OTOOL = @OTOOL@
|
||||||
|
OTOOL64 = @OTOOL64@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
boost = @boost@
|
||||||
|
boost_serialization = @boost_serialization@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
lt_ECHO = @lt_ECHO@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
toolbox = @toolbox@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
headers = TestHarness.h $(sources:.cpp=.h)
|
||||||
|
sources = Failure.cpp SimpleString.cpp Test.cpp TestRegistry.cpp TestResult.cpp
|
||||||
|
noinst_HEADERS = $(headers)
|
||||||
|
noinst_LIBRARIES = libCppUnitLite.a
|
||||||
|
libCppUnitLite_a_SOURCES = $(sources)
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .cpp .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu CppUnitLite/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu CppUnitLite/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
clean-noinstLIBRARIES:
|
||||||
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||||
|
libCppUnitLite.a: $(libCppUnitLite_a_OBJECTS) $(libCppUnitLite_a_DEPENDENCIES)
|
||||||
|
-rm -f libCppUnitLite.a
|
||||||
|
$(libCppUnitLite_a_AR) libCppUnitLite.a $(libCppUnitLite_a_OBJECTS) $(libCppUnitLite_a_LIBADD)
|
||||||
|
$(RANLIB) libCppUnitLite.a
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Failure.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SimpleString.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Test.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestRegistry.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestResult.Po@am__quote@
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
.cpp.obj:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.cpp.lo:
|
||||||
|
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile $(LIBRARIES) $(HEADERS)
|
||||||
|
installdirs:
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
|
||||||
|
mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
|
distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||||
|
mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am:
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||||
|
clean-libtool clean-noinstLIBRARIES ctags distclean \
|
||||||
|
distclean-compile distclean-generic distclean-libtool \
|
||||||
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
|
install-strip installcheck installcheck-am installdirs \
|
||||||
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
|
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
||||||
|
pdf pdf-am ps ps-am tags uninstall uninstall-am
|
||||||
|
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
11
LICENSE
11
LICENSE
|
@ -1 +1,12 @@
|
||||||
The GTSAM library has not been licensed yet. See also COPYING
|
The GTSAM library has not been licensed yet. See also COPYING
|
||||||
|
|
||||||
|
|
||||||
|
GTSAM depends on the following packages that are built locally:
|
||||||
|
|
||||||
|
UFconfig
|
||||||
|
Copyright (c) 2006-2009, Timothy A. Davis. Distributed under the GNU LGPL license.
|
||||||
|
|
||||||
|
CCOLAMD
|
||||||
|
Copyright (c) 1998-2007, University of Florida. Author: Timothy A. Davis, Siva Rajamanickam,
|
||||||
|
and Stefan Larimore. The COLAMD algorithm was developed in collaboration Esmond Ng and John Gilbert.
|
||||||
|
Distributed under the GNU LGPL license.
|
||||||
|
|
67
Makefile.am
67
Makefile.am
|
@ -1,46 +1,49 @@
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# GTSAM top-level automake file
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#The option -I m4 tells Autoconf to look for additional Autoconf macros in the m4 subdirectory.
|
#The option -I m4 tells Autoconf to look for additional Autoconf macros in the m4 subdirectory.
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
# make automake install some standard but missing files
|
# make automake install some standard but missing files
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
SUBDIRS = colamd CppUnitLite ldl spqr_mini cpp wrap
|
|
||||||
|
|
||||||
# install the matlab toolbox
|
# All the sub-directories that need to be built
|
||||||
|
SUBDIRS = CppUnitLite colamd ldl spqr_mini base cpp geometry slam . tests wrap
|
||||||
|
|
||||||
|
# And the corresponding libraries produced
|
||||||
|
SUBLIBS = colamd/libcolamd.la ldl/libldl.la \
|
||||||
|
base/libbase.la cpp/libcpp.la geometry/libgeometry.la slam/libslam.la
|
||||||
|
|
||||||
|
if USE_LAPACK
|
||||||
|
SUBLIBS += spqr_mini/libspqr_mini.la
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST = autogen.sh configure.ac THANKS
|
||||||
|
|
||||||
|
# The following lines specify the actual shared library to be built with libtool
|
||||||
|
lib_LTLIBRARIES = libgtsam.la
|
||||||
|
libgtsam_la_SOURCES =
|
||||||
|
libgtsam_la_LIBADD = $(SUBLIBS)
|
||||||
|
libgtsam_la_LDFLAGS = -version-info 0:0:0
|
||||||
|
|
||||||
|
# TODO: UFconfig, CCOLAMD, and LDL automake magic without adding or touching any file
|
||||||
|
# in those directories as to not invalidate the LGPL license
|
||||||
|
# See some possibilities in
|
||||||
|
# http://www.gnu.org/software/hello/manual/automake/Third_002dParty-Makefiles.html
|
||||||
|
|
||||||
|
# install the headers and matlab toolbox
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
install -d ${toolbox}/gtsam && \
|
install -d ${toolbox}/gtsam && \
|
||||||
cp -rf toolbox/* ${toolbox}/gtsam && \
|
cp -rf toolbox/* ${toolbox}/gtsam && \
|
||||||
install -d ${prefix}/include/wrap && \
|
install -d ${prefix}/include/wrap && \
|
||||||
cp -f wrap/wrap-matlab.h ${prefix}/include/wrap/matlab.h && \
|
cp -f wrap/wrap-matlab.h ${prefix}/include/wrap/matlab.h
|
||||||
install -d $(prefix)/include && \
|
|
||||||
install -d $(prefix)/include/colamd && \
|
|
||||||
cp -f colamd/colamd.h $(prefix)/include/colamd/ && \
|
|
||||||
cp -f colamd/ccolamd.h $(prefix)/include/colamd/ && \
|
|
||||||
cp -f colamd/UFconfig.h $(prefix)/include/colamd/ && \
|
|
||||||
cp -f colamd/libcolamd.a $(prefix)/lib/ && \
|
|
||||||
install -d $(prefix)/include/ldl && \
|
|
||||||
cp -f ldl/ldl.h $(prefix)/include/ldl/ && \
|
|
||||||
cp -f ldl/UFconfig.h $(prefix)/include/ldl/ && \
|
|
||||||
cp -f ldl/libldl.a $(prefix)/lib/
|
|
||||||
|
|
||||||
|
# Todo: Also do CppUnitLite with automake
|
||||||
dist-hook:
|
dist-hook:
|
||||||
mkdir $(distdir)/CppUnitLite
|
mkdir $(distdir)/config
|
||||||
cp -p $(srcdir)/CppUnitLite/Makefile $(distdir)/CppUnitLite
|
|
||||||
cp -p $(srcdir)/CppUnitLite/*.h $(distdir)/CppUnitLite
|
|
||||||
cp -p $(srcdir)/CppUnitLite/*.cpp $(distdir)/CppUnitLite
|
|
||||||
mkdir $(distdir)/colamd
|
|
||||||
cp -p $(srcdir)/colamd/Makefile $(distdir)/colamd
|
|
||||||
cp -p $(srcdir)/colamd/*.h $(distdir)/colamd
|
|
||||||
cp -p $(srcdir)/colamd/*.c $(distdir)/colamd
|
|
||||||
cp -p $(srcdir)/colamd/*.cpp $(distdir)/colamd
|
|
||||||
mkdir $(distdir)/ldl
|
|
||||||
cp -p $(srcdir)/ldl/Makefile $(distdir)/ldl
|
|
||||||
cp -p $(srcdir)/ldl/*.h $(distdir)/ldl
|
|
||||||
cp -p $(srcdir)/ldl/*.c $(distdir)/ldl
|
|
||||||
cp -p $(srcdir)/ldl/*.cpp $(distdir)/ldl
|
|
||||||
mkdir $(distdir)/spqr_mini
|
|
||||||
cp -p $(srcdir)/spqr_mini/Makefile $(distdir)/spqr_mini
|
|
||||||
cp -p $(srcdir)/spqr_mini/*.h $(distdir)/spqr_mini
|
|
||||||
cp -p $(srcdir)/spqr_mini/*.c $(distdir)/spqr_mini
|
|
||||||
cp -p $(srcdir)/spqr_mini/*.cpp $(distdir)/spqr_mini
|
|
||||||
mkdir $(distdir)/matlab
|
mkdir $(distdir)/matlab
|
||||||
cp -p $(srcdir)/matlab/*.m $(distdir)/matlab
|
cp -p $(srcdir)/matlab/*.m $(distdir)/matlab
|
||||||
|
cp -r $(srcdir)/wrap/expected $(distdir)/wrap
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
GTSAM was made possible by the efforts of many collaborators at Georgia Tech
|
||||||
|
|
||||||
|
Doru Balcan
|
||||||
|
Alex Cunningham
|
||||||
|
Alireza Fathi
|
||||||
|
Eohan George
|
||||||
|
Viorela Ila
|
||||||
|
Yong-Dian Jian
|
||||||
|
Michael Kaess
|
||||||
|
Kai Ni
|
||||||
|
Carlos Nieto
|
||||||
|
Manohar Paluri
|
||||||
|
Christian Potthast
|
||||||
|
Richard Roberts
|
||||||
|
Grant Schindler
|
||||||
|
|
||||||
|
Many thanks for your hard work!!!!
|
||||||
|
Frank Dellaert
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
class Symbol;
|
|
||||||
|
|
||||||
template <class Key>
|
template <class Key>
|
||||||
class DSF : protected BTree<Key, Key> {
|
class DSF : protected BTree<Key, Key> {
|
||||||
|
|
||||||
|
@ -153,6 +151,5 @@ namespace gtsam {
|
||||||
|
|
||||||
// shortcuts
|
// shortcuts
|
||||||
typedef DSF<int> DSFInt;
|
typedef DSF<int> DSFInt;
|
||||||
typedef DSF<Symbol> DSFSymbol;
|
|
||||||
|
|
||||||
} // namespace gtsam
|
} // namespace gtsam
|
|
@ -0,0 +1,86 @@
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# GTSAM base
|
||||||
|
# provides some base Math and data structures, as well as test-related utilities
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
headers =
|
||||||
|
sources =
|
||||||
|
check_PROGRAMS =
|
||||||
|
|
||||||
|
# base Math
|
||||||
|
sources += Vector.cpp svdcmp.cpp Matrix.cpp
|
||||||
|
check_PROGRAMS += testVector testMatrix
|
||||||
|
|
||||||
|
if USE_LAPACK
|
||||||
|
sources += SPQRUtil.cpp
|
||||||
|
check_PROGRAMS += testSPQRUtil
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
headers += Testable.h numericalDerivative.h
|
||||||
|
|
||||||
|
# Lie Groups
|
||||||
|
headers += Lie.h Lie-inl.h
|
||||||
|
|
||||||
|
# Data structures
|
||||||
|
headers += BTree.h DSF.h
|
||||||
|
sources += DSFVector.cpp
|
||||||
|
check_PROGRAMS += testBTree testDSF testDSFVector
|
||||||
|
|
||||||
|
# Timing tests
|
||||||
|
noinst_PROGRAMS = timeMatrix
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
# The headers are installed in $(includedir)/gtsam:
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
headers += $(sources:.cpp=.h)
|
||||||
|
pkginclude_HEADERS = $(headers)
|
||||||
|
noinst_LTLIBRARIES = libbase.la
|
||||||
|
libbase_la_SOURCES = $(sources)
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I$(boost)
|
||||||
|
|
||||||
|
if USE_BLAS
|
||||||
|
AM_CPPFLAGS += -DGT_USE_CBLAS
|
||||||
|
endif
|
||||||
|
|
||||||
|
if USE_LAPACK
|
||||||
|
AM_CPPFLAGS += -DGT_USE_LAPACK
|
||||||
|
endif
|
||||||
|
|
||||||
|
# On Mac, we compile using the BLAS/LAPACK headers in the Accelerate framework
|
||||||
|
if USE_ACCELERATE_MACOS
|
||||||
|
AM_CPPFLAGS += -F Accelerate
|
||||||
|
endif
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# rules to build local programs
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
TESTS = $(check_PROGRAMS)
|
||||||
|
AM_DEFAULT_SOURCE_EXT = .cpp
|
||||||
|
AM_LDFLAGS = $(BOOST_LDFLAGS) $(boost_serialization)
|
||||||
|
LDADD = libbase.la ../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
|
||||||
|
if USE_BLAS_LINUX
|
||||||
|
AM_LDFLAGS += -lcblas -latlas
|
||||||
|
endif
|
||||||
|
|
||||||
|
if USE_LAPACK
|
||||||
|
LDADD += ../spqr_mini/libspqr_mini.la
|
||||||
|
endif
|
||||||
|
|
||||||
|
if USE_LAPACK_LINUX
|
||||||
|
AM_LDFLAGS += -llapack
|
||||||
|
endif
|
||||||
|
|
||||||
|
if USE_ACCELERATE_MACOS
|
||||||
|
AM_LDFLAGS += -framework Accelerate
|
||||||
|
endif
|
||||||
|
|
||||||
|
# rule to run an executable
|
||||||
|
%.run: % $(LDADD)
|
||||||
|
./$^
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
|
@ -0,0 +1,777 @@
|
||||||
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# GTSAM base
|
||||||
|
# provides some base Math and data structures, as well as test-related utilities
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
check_PROGRAMS = testVector$(EXEEXT) testMatrix$(EXEEXT) \
|
||||||
|
$(am__EXEEXT_1) testBTree$(EXEEXT) testDSF$(EXEEXT) \
|
||||||
|
testDSFVector$(EXEEXT)
|
||||||
|
@USE_LAPACK_TRUE@am__append_1 = SPQRUtil.cpp
|
||||||
|
@USE_LAPACK_TRUE@am__append_2 = testSPQRUtil
|
||||||
|
noinst_PROGRAMS = timeMatrix$(EXEEXT)
|
||||||
|
@USE_BLAS_TRUE@am__append_3 = -DGT_USE_CBLAS
|
||||||
|
@USE_LAPACK_TRUE@am__append_4 = -DGT_USE_LAPACK
|
||||||
|
|
||||||
|
# On Mac, we compile using the BLAS/LAPACK headers in the Accelerate framework
|
||||||
|
@USE_ACCELERATE_MACOS_TRUE@am__append_5 = -F Accelerate
|
||||||
|
@USE_BLAS_LINUX_TRUE@am__append_6 = -lcblas -latlas
|
||||||
|
@USE_LAPACK_TRUE@am__append_7 = ../spqr_mini/libspqr_mini.la
|
||||||
|
@USE_LAPACK_LINUX_TRUE@am__append_8 = -llapack
|
||||||
|
@USE_ACCELERATE_MACOS_TRUE@am__append_9 = -framework Accelerate
|
||||||
|
subdir = base
|
||||||
|
DIST_COMMON = $(am__pkginclude_HEADERS_DIST) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||||
|
libbase_la_LIBADD =
|
||||||
|
am__libbase_la_SOURCES_DIST = Vector.cpp svdcmp.cpp Matrix.cpp \
|
||||||
|
SPQRUtil.cpp DSFVector.cpp
|
||||||
|
@USE_LAPACK_TRUE@am__objects_1 = SPQRUtil.lo
|
||||||
|
am__objects_2 = Vector.lo svdcmp.lo Matrix.lo $(am__objects_1) \
|
||||||
|
DSFVector.lo
|
||||||
|
am_libbase_la_OBJECTS = $(am__objects_2)
|
||||||
|
libbase_la_OBJECTS = $(am_libbase_la_OBJECTS)
|
||||||
|
@USE_LAPACK_TRUE@am__EXEEXT_1 = testSPQRUtil$(EXEEXT)
|
||||||
|
PROGRAMS = $(noinst_PROGRAMS)
|
||||||
|
testBTree_SOURCES = testBTree.cpp
|
||||||
|
testBTree_OBJECTS = testBTree.$(OBJEXT)
|
||||||
|
testBTree_LDADD = $(LDADD)
|
||||||
|
testBTree_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
testDSF_SOURCES = testDSF.cpp
|
||||||
|
testDSF_OBJECTS = testDSF.$(OBJEXT)
|
||||||
|
testDSF_LDADD = $(LDADD)
|
||||||
|
testDSF_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
testDSFVector_SOURCES = testDSFVector.cpp
|
||||||
|
testDSFVector_OBJECTS = testDSFVector.$(OBJEXT)
|
||||||
|
testDSFVector_LDADD = $(LDADD)
|
||||||
|
testDSFVector_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
testMatrix_SOURCES = testMatrix.cpp
|
||||||
|
testMatrix_OBJECTS = testMatrix.$(OBJEXT)
|
||||||
|
testMatrix_LDADD = $(LDADD)
|
||||||
|
testMatrix_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
testSPQRUtil_SOURCES = testSPQRUtil.cpp
|
||||||
|
testSPQRUtil_OBJECTS = testSPQRUtil.$(OBJEXT)
|
||||||
|
testSPQRUtil_LDADD = $(LDADD)
|
||||||
|
testSPQRUtil_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
testVector_SOURCES = testVector.cpp
|
||||||
|
testVector_OBJECTS = testVector.$(OBJEXT)
|
||||||
|
testVector_LDADD = $(LDADD)
|
||||||
|
testVector_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
timeMatrix_SOURCES = timeMatrix.cpp
|
||||||
|
timeMatrix_OBJECTS = timeMatrix.$(OBJEXT)
|
||||||
|
timeMatrix_LDADD = $(LDADD)
|
||||||
|
timeMatrix_DEPENDENCIES = libbase.la ../ldl/libldl.la \
|
||||||
|
../CppUnitLite/libCppUnitLite.a $(am__append_7)
|
||||||
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
am__mv = mv -f
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
SOURCES = $(libbase_la_SOURCES) testBTree.cpp testDSF.cpp \
|
||||||
|
testDSFVector.cpp testMatrix.cpp testSPQRUtil.cpp \
|
||||||
|
testVector.cpp timeMatrix.cpp
|
||||||
|
DIST_SOURCES = $(am__libbase_la_SOURCES_DIST) testBTree.cpp \
|
||||||
|
testDSF.cpp testDSFVector.cpp testMatrix.cpp testSPQRUtil.cpp \
|
||||||
|
testVector.cpp timeMatrix.cpp
|
||||||
|
am__pkginclude_HEADERS_DIST = Testable.h numericalDerivative.h Lie.h \
|
||||||
|
Lie-inl.h BTree.h DSF.h Vector.h svdcmp.h Matrix.h SPQRUtil.h \
|
||||||
|
DSFVector.h
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
HEADERS = $(pkginclude_HEADERS)
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
am__tty_colors = \
|
||||||
|
red=; grn=; lgn=; blu=; std=
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
DSYMUTIL = @DSYMUTIL@
|
||||||
|
DUMPBIN = @DUMPBIN@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
FGREP = @FGREP@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LD = @LD@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIPO = @LIPO@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
NM = @NM@
|
||||||
|
NMEDIT = @NMEDIT@
|
||||||
|
OBJDUMP = @OBJDUMP@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OTOOL = @OTOOL@
|
||||||
|
OTOOL64 = @OTOOL64@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
boost = @boost@
|
||||||
|
boost_serialization = @boost_serialization@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
lt_ECHO = @lt_ECHO@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
toolbox = @toolbox@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
|
||||||
|
# Lie Groups
|
||||||
|
|
||||||
|
# Data structures
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
# The headers are installed in $(includedir)/gtsam:
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
headers = Testable.h numericalDerivative.h Lie.h Lie-inl.h BTree.h \
|
||||||
|
DSF.h $(sources:.cpp=.h)
|
||||||
|
|
||||||
|
# base Math
|
||||||
|
sources = Vector.cpp svdcmp.cpp Matrix.cpp $(am__append_1) \
|
||||||
|
DSFVector.cpp
|
||||||
|
pkginclude_HEADERS = $(headers)
|
||||||
|
noinst_LTLIBRARIES = libbase.la
|
||||||
|
libbase_la_SOURCES = $(sources)
|
||||||
|
AM_CPPFLAGS = -I$(boost) $(am__append_3) $(am__append_4) \
|
||||||
|
$(am__append_5)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# rules to build local programs
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
TESTS = $(check_PROGRAMS)
|
||||||
|
AM_DEFAULT_SOURCE_EXT = .cpp
|
||||||
|
AM_LDFLAGS = $(BOOST_LDFLAGS) $(boost_serialization) $(am__append_6) \
|
||||||
|
$(am__append_8) $(am__append_9)
|
||||||
|
LDADD = libbase.la ../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a \
|
||||||
|
$(am__append_7)
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .cpp .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu base/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu base/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
clean-noinstLTLIBRARIES:
|
||||||
|
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||||
|
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||||
|
test "$$dir" != "$$p" || dir=.; \
|
||||||
|
echo "rm -f \"$${dir}/so_locations\""; \
|
||||||
|
rm -f "$${dir}/so_locations"; \
|
||||||
|
done
|
||||||
|
libbase.la: $(libbase_la_OBJECTS) $(libbase_la_DEPENDENCIES)
|
||||||
|
$(CXXLINK) $(libbase_la_OBJECTS) $(libbase_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
clean-checkPROGRAMS:
|
||||||
|
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
|
||||||
|
clean-noinstPROGRAMS:
|
||||||
|
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
testBTree$(EXEEXT): $(testBTree_OBJECTS) $(testBTree_DEPENDENCIES)
|
||||||
|
@rm -f testBTree$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testBTree_OBJECTS) $(testBTree_LDADD) $(LIBS)
|
||||||
|
testDSF$(EXEEXT): $(testDSF_OBJECTS) $(testDSF_DEPENDENCIES)
|
||||||
|
@rm -f testDSF$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testDSF_OBJECTS) $(testDSF_LDADD) $(LIBS)
|
||||||
|
testDSFVector$(EXEEXT): $(testDSFVector_OBJECTS) $(testDSFVector_DEPENDENCIES)
|
||||||
|
@rm -f testDSFVector$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testDSFVector_OBJECTS) $(testDSFVector_LDADD) $(LIBS)
|
||||||
|
testMatrix$(EXEEXT): $(testMatrix_OBJECTS) $(testMatrix_DEPENDENCIES)
|
||||||
|
@rm -f testMatrix$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testMatrix_OBJECTS) $(testMatrix_LDADD) $(LIBS)
|
||||||
|
testSPQRUtil$(EXEEXT): $(testSPQRUtil_OBJECTS) $(testSPQRUtil_DEPENDENCIES)
|
||||||
|
@rm -f testSPQRUtil$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testSPQRUtil_OBJECTS) $(testSPQRUtil_LDADD) $(LIBS)
|
||||||
|
testVector$(EXEEXT): $(testVector_OBJECTS) $(testVector_DEPENDENCIES)
|
||||||
|
@rm -f testVector$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testVector_OBJECTS) $(testVector_LDADD) $(LIBS)
|
||||||
|
timeMatrix$(EXEEXT): $(timeMatrix_OBJECTS) $(timeMatrix_DEPENDENCIES)
|
||||||
|
@rm -f timeMatrix$(EXEEXT)
|
||||||
|
$(CXXLINK) $(timeMatrix_OBJECTS) $(timeMatrix_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DSFVector.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Matrix.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SPQRUtil.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Vector.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svdcmp.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testBTree.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDSF.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDSFVector.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMatrix.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSPQRUtil.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testVector.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeMatrix.Po@am__quote@
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
.cpp.obj:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.cpp.lo:
|
||||||
|
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
test -n "$$files" || exit 0; \
|
||||||
|
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
|
||||||
|
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
check-TESTS: $(TESTS)
|
||||||
|
@failed=0; all=0; xfail=0; xpass=0; skip=0; \
|
||||||
|
srcdir=$(srcdir); export srcdir; \
|
||||||
|
list=' $(TESTS) '; \
|
||||||
|
$(am__tty_colors); \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
for tst in $$list; do \
|
||||||
|
if test -f ./$$tst; then dir=./; \
|
||||||
|
elif test -f $$tst; then dir=; \
|
||||||
|
else dir="$(srcdir)/"; fi; \
|
||||||
|
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
||||||
|
all=`expr $$all + 1`; \
|
||||||
|
case " $(XFAIL_TESTS) " in \
|
||||||
|
*[\ \ ]$$tst[\ \ ]*) \
|
||||||
|
xpass=`expr $$xpass + 1`; \
|
||||||
|
failed=`expr $$failed + 1`; \
|
||||||
|
col=$$red; res=XPASS; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
col=$$grn; res=PASS; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
elif test $$? -ne 77; then \
|
||||||
|
all=`expr $$all + 1`; \
|
||||||
|
case " $(XFAIL_TESTS) " in \
|
||||||
|
*[\ \ ]$$tst[\ \ ]*) \
|
||||||
|
xfail=`expr $$xfail + 1`; \
|
||||||
|
col=$$lgn; res=XFAIL; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
failed=`expr $$failed + 1`; \
|
||||||
|
col=$$red; res=FAIL; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
else \
|
||||||
|
skip=`expr $$skip + 1`; \
|
||||||
|
col=$$blu; res=SKIP; \
|
||||||
|
fi; \
|
||||||
|
echo "$${col}$$res$${std}: $$tst"; \
|
||||||
|
done; \
|
||||||
|
if test "$$all" -eq 1; then \
|
||||||
|
tests="test"; \
|
||||||
|
All=""; \
|
||||||
|
else \
|
||||||
|
tests="tests"; \
|
||||||
|
All="All "; \
|
||||||
|
fi; \
|
||||||
|
if test "$$failed" -eq 0; then \
|
||||||
|
if test "$$xfail" -eq 0; then \
|
||||||
|
banner="$$All$$all $$tests passed"; \
|
||||||
|
else \
|
||||||
|
if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
|
||||||
|
banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
if test "$$xpass" -eq 0; then \
|
||||||
|
banner="$$failed of $$all $$tests failed"; \
|
||||||
|
else \
|
||||||
|
if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
|
||||||
|
banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
dashes="$$banner"; \
|
||||||
|
skipped=""; \
|
||||||
|
if test "$$skip" -ne 0; then \
|
||||||
|
if test "$$skip" -eq 1; then \
|
||||||
|
skipped="($$skip test was not run)"; \
|
||||||
|
else \
|
||||||
|
skipped="($$skip tests were not run)"; \
|
||||||
|
fi; \
|
||||||
|
test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||||
|
dashes="$$skipped"; \
|
||||||
|
fi; \
|
||||||
|
report=""; \
|
||||||
|
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||||
|
report="Please report to $(PACKAGE_BUGREPORT)"; \
|
||||||
|
test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||||
|
dashes="$$report"; \
|
||||||
|
fi; \
|
||||||
|
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
||||||
|
if test "$$failed" -eq 0; then \
|
||||||
|
echo "$$grn$$dashes"; \
|
||||||
|
else \
|
||||||
|
echo "$$red$$dashes"; \
|
||||||
|
fi; \
|
||||||
|
echo "$$banner"; \
|
||||||
|
test -z "$$skipped" || echo "$$skipped"; \
|
||||||
|
test -z "$$report" || echo "$$report"; \
|
||||||
|
echo "$$dashes$$std"; \
|
||||||
|
test "$$failed" -eq 0; \
|
||||||
|
else :; fi
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
|
||||||
|
clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
|
distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am: install-pkgincludeHEADERS
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||||
|
mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
.MAKE: check-am install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
|
||||||
|
clean-checkPROGRAMS clean-generic clean-libtool \
|
||||||
|
clean-noinstLTLIBRARIES clean-noinstPROGRAMS ctags distclean \
|
||||||
|
distclean-compile distclean-generic distclean-libtool \
|
||||||
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||||
|
install-ps install-ps-am install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
|
tags uninstall uninstall-am uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
|
||||||
|
# rule to run an executable
|
||||||
|
%.run: % $(LDADD)
|
||||||
|
./$^
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -11,19 +11,16 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#ifdef GT_USE_CBLAS
|
#ifdef GT_USE_CBLAS
|
||||||
#ifdef YA_BLAS
|
extern "C" {
|
||||||
#include <vecLib/cblas.h>
|
|
||||||
#else
|
|
||||||
#include <cblas.h>
|
#include <cblas.h>
|
||||||
#endif
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GT_USE_LAPACK
|
#ifdef GT_USE_LAPACK
|
||||||
#ifdef YA_BLAS
|
extern "C" {
|
||||||
#include <vecLib/clapack.h>
|
#include <cblas.h>
|
||||||
#else
|
|
||||||
#include <clapack.h>
|
#include <clapack.h>
|
||||||
#endif
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <boost/numeric/ublas/matrix_proxy.hpp>
|
#include <boost/numeric/ublas/matrix_proxy.hpp>
|
||||||
|
@ -190,7 +187,7 @@ void multiplyAdd(double alpha, const Matrix& A, const Vector& x, Vector& e) {
|
||||||
|
|
||||||
// fill in parameters
|
// fill in parameters
|
||||||
const double beta = 1.0;
|
const double beta = 1.0;
|
||||||
const int incx = 1, incy = 1, ida = n;
|
const size_t incx = 1, incy = 1, ida = n;
|
||||||
|
|
||||||
// execute blas call
|
// execute blas call
|
||||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, m, n, alpha, Aptr, ida, Xptr, incx, beta, Eptr, incy);
|
cblas_dgemv(CblasRowMajor, CblasNoTrans, m, n, alpha, Aptr, ida, Xptr, incx, beta, Eptr, incy);
|
||||||
|
@ -201,9 +198,9 @@ void multiplyAdd(double alpha, const Matrix& A, const Vector& x, Vector& e) {
|
||||||
size_t m = A.size1(), n = A.size2();
|
size_t m = A.size1(), n = A.size2();
|
||||||
double * ei = e.data().begin();
|
double * ei = e.data().begin();
|
||||||
const double * aij = A.data().begin();
|
const double * aij = A.data().begin();
|
||||||
for (int i = 0; i < m; i++, ei++) {
|
for(size_t i = 0; i < m; i++, ei++) {
|
||||||
const double * xj = x.data().begin();
|
const double * xj = x.data().begin();
|
||||||
for (int j = 0; j < n; j++, aij++, xj++)
|
for(size_t j = 0; j < n; j++, aij++, xj++)
|
||||||
(*ei) += alpha * (*aij) * (*xj);
|
(*ei) += alpha * (*aij) * (*xj);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -218,9 +215,9 @@ void multiplyAdd(const Matrix& A, const Vector& x, Vector& e) {
|
||||||
size_t m = A.size1(), n = A.size2();
|
size_t m = A.size1(), n = A.size2();
|
||||||
double * ei = e.data().begin();
|
double * ei = e.data().begin();
|
||||||
const double * aij = A.data().begin();
|
const double * aij = A.data().begin();
|
||||||
for (int i = 0; i < m; i++, ei++) {
|
for(size_t i = 0; i < m; i++, ei++) {
|
||||||
const double * xj = x.data().begin();
|
const double * xj = x.data().begin();
|
||||||
for (int j = 0; j < n; j++, aij++, xj++)
|
for(size_t j = 0; j < n; j++, aij++, xj++)
|
||||||
(*ei) += (*aij) * (*xj);
|
(*ei) += (*aij) * (*xj);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -249,7 +246,7 @@ void transposeMultiplyAdd(double alpha, const Matrix& A, const Vector& e, Vector
|
||||||
|
|
||||||
// fill in parameters
|
// fill in parameters
|
||||||
const double beta = 1.0;
|
const double beta = 1.0;
|
||||||
const int incx = 1, incy = 1, ida = n;
|
const size_t incx = 1, incy = 1, ida = n;
|
||||||
|
|
||||||
// execute blas call
|
// execute blas call
|
||||||
cblas_dgemv(CblasRowMajor, CblasTrans, m, n, alpha, Aptr, ida, Eptr, incx, beta, Xptr, incy);
|
cblas_dgemv(CblasRowMajor, CblasTrans, m, n, alpha, Aptr, ida, Eptr, incx, beta, Xptr, incy);
|
||||||
|
@ -259,10 +256,10 @@ void transposeMultiplyAdd(double alpha, const Matrix& A, const Vector& e, Vector
|
||||||
// TODO: use BLAS
|
// TODO: use BLAS
|
||||||
size_t m = A.size1(), n = A.size2();
|
size_t m = A.size1(), n = A.size2();
|
||||||
double * xj = x.data().begin();
|
double * xj = x.data().begin();
|
||||||
for (int j = 0; j < n; j++,xj++) {
|
for(size_t j = 0; j < n; j++,xj++) {
|
||||||
const double * ei = e.data().begin();
|
const double * ei = e.data().begin();
|
||||||
const double * aij = A.data().begin() + j;
|
const double * aij = A.data().begin() + j;
|
||||||
for (int i = 0; i < m; i++, aij+=n, ei++)
|
for(size_t i = 0; i < m; i++, aij+=n, ei++)
|
||||||
(*xj) += alpha * (*aij) * (*ei);
|
(*xj) += alpha * (*aij) * (*ei);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -276,10 +273,10 @@ void transposeMultiplyAdd(const Matrix& A, const Vector& e, Vector& x) {
|
||||||
#else
|
#else
|
||||||
size_t m = A.size1(), n = A.size2();
|
size_t m = A.size1(), n = A.size2();
|
||||||
double * xj = x.data().begin();
|
double * xj = x.data().begin();
|
||||||
for (int j = 0; j < n; j++,xj++) {
|
for(size_t j = 0; j < n; j++,xj++) {
|
||||||
const double * ei = e.data().begin();
|
const double * ei = e.data().begin();
|
||||||
const double * aij = A.data().begin() + j;
|
const double * aij = A.data().begin() + j;
|
||||||
for (int i = 0; i < m; i++, aij+=n, ei++)
|
for(size_t i = 0; i < m; i++, aij+=n, ei++)
|
||||||
(*xj) += (*aij) * (*ei);
|
(*xj) += (*aij) * (*ei);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -397,7 +394,7 @@ void solve(Matrix& A, Matrix& B)
|
||||||
pmatrix pm(A_.size1());
|
pmatrix pm(A_.size1());
|
||||||
|
|
||||||
// perform LU-factorization
|
// perform LU-factorization
|
||||||
int res = lu_factorize(A_,pm);
|
size_t res = lu_factorize(A_,pm);
|
||||||
if( res != 0 ) throw runtime_error ("Matrix::solve: lu_factorize failed!");
|
if( res != 0 ) throw runtime_error ("Matrix::solve: lu_factorize failed!");
|
||||||
|
|
||||||
// backsubstitute to get the inverse
|
// backsubstitute to get the inverse
|
||||||
|
@ -462,7 +459,7 @@ pair<Matrix,Matrix> qr(const Matrix& A) {
|
||||||
* on a number of different matrices for which all columns change.
|
* on a number of different matrices for which all columns change.
|
||||||
*/
|
*/
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
inline void householder_update_manual(Matrix &A, int j, double beta, const Vector& vjm) {
|
inline void householder_update_manual(Matrix &A, size_t j, double beta, const Vector& vjm) {
|
||||||
const size_t m = A.size1(), n = A.size2();
|
const size_t m = A.size1(), n = A.size2();
|
||||||
// w = beta*transpose(A(j:m,:))*v(j:m)
|
// w = beta*transpose(A(j:m,:))*v(j:m)
|
||||||
Vector w(n);
|
Vector w(n);
|
||||||
|
@ -486,7 +483,7 @@ inline void householder_update_manual(Matrix &A, int j, double beta, const Vecto
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void householder_update(Matrix &A, int j, double beta, const Vector& vjm) {
|
void householder_update(Matrix &A, size_t j, double beta, const Vector& vjm) {
|
||||||
#if defined GT_USE_CBLAS
|
#if defined GT_USE_CBLAS
|
||||||
|
|
||||||
// CBLAS version not working, using manual approach
|
// CBLAS version not working, using manual approach
|
||||||
|
@ -551,7 +548,7 @@ void householder_update(Matrix &A, int j, double beta, const Vector& vjm) {
|
||||||
// update A, b
|
// update A, b
|
||||||
// A' \define A_{S}-ar and b'\define b-ad
|
// A' \define A_{S}-ar and b'\define b-ad
|
||||||
// __attribute__ ((noinline)) // uncomment to prevent inlining when profiling
|
// __attribute__ ((noinline)) // uncomment to prevent inlining when profiling
|
||||||
inline void updateAb_manual(Matrix& A, Vector& b, int j, const Vector& a,
|
inline void updateAb_manual(Matrix& A, Vector& b, size_t j, const Vector& a,
|
||||||
const Vector& r, double d) {
|
const Vector& r, double d) {
|
||||||
const size_t m = A.size1(), n = A.size2();
|
const size_t m = A.size1(), n = A.size2();
|
||||||
for (size_t i = 0; i < m; i++) { // update all rows
|
for (size_t i = 0; i < m; i++) { // update all rows
|
||||||
|
@ -568,7 +565,7 @@ inline void updateAb_manual(Matrix& A, Vector& b, int j, const Vector& a,
|
||||||
/**
|
/**
|
||||||
* Perform updates of system matrices
|
* Perform updates of system matrices
|
||||||
*/
|
*/
|
||||||
static void updateAb(Matrix& A, Vector& b, int j, const Vector& a,
|
static void updateAb(Matrix& A, Vector& b, size_t j, const Vector& a,
|
||||||
const Vector& r, double d) {
|
const Vector& r, double d) {
|
||||||
// TODO: reimplement using BLAS
|
// TODO: reimplement using BLAS
|
||||||
updateAb_manual(A,b,j,a,r,d);
|
updateAb_manual(A,b,j,a,r,d);
|
||||||
|
@ -682,9 +679,9 @@ void householder(Matrix &A) {
|
||||||
__CLPK_integer n = A.size2();
|
__CLPK_integer n = A.size2();
|
||||||
|
|
||||||
// convert from row major to column major
|
// convert from row major to column major
|
||||||
double a[m*n]; int k = 0;
|
double a[m*n]; size_t k = 0;
|
||||||
for(int j=0; j<n; j++)
|
for(size_t j=0; j<n; j++)
|
||||||
for(int i=0; i<m; i++, k++)
|
for(size_t i=0; i<m; i++, k++)
|
||||||
a[k] = A(i,j);
|
a[k] = A(i,j);
|
||||||
|
|
||||||
double tau[n];
|
double tau[n];
|
||||||
|
@ -696,13 +693,13 @@ void householder(Matrix &A) {
|
||||||
lwork = (__CLPK_integer)work_optimal_size;
|
lwork = (__CLPK_integer)work_optimal_size;
|
||||||
double work[lwork];
|
double work[lwork];
|
||||||
dgeqrf_(&m, &n, a, &m, tau, work, &lwork, &info);
|
dgeqrf_(&m, &n, a, &m, tau, work, &lwork, &info);
|
||||||
int k0 = 0;
|
size_t k0 = 0;
|
||||||
int j0;
|
size_t j0;
|
||||||
memset(A.data().begin(), 0, m*n*sizeof(double));
|
memset(A.data().begin(), 0, m*n*sizeof(double));
|
||||||
for(int j=0; j<n; j++, k0+=m) {
|
for(size_t j=0; j<n; j++, k0+=m) {
|
||||||
k = k0;
|
k = k0;
|
||||||
j0 = j+1<m?j+1:m;
|
j0 = j+1<m?j+1:m;
|
||||||
for(int i=0; i<j0; i++, k++)
|
for(size_t i=0; i<j0; i++, k++)
|
||||||
A(i,j) = a[k];
|
A(i,j) = a[k];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -952,13 +949,13 @@ Matrix RtR(const Matrix &A)
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
||||||
|
|
||||||
unsigned int N = M.size1(); // size of the matrix
|
int N = M.size1(); // size of the matrix
|
||||||
|
|
||||||
// count the nonzero entries above diagonal
|
// count the nonzero entries above diagonal
|
||||||
double thresh = 1e-9;
|
double thresh = 1e-9;
|
||||||
unsigned int nrANZ = 0; // # of nonzeros on diagonal and upper triangular part of A
|
int nrANZ = 0; // # of nonzeros on diagonal and upper triangular part of A
|
||||||
for (size_t i=0; i<N; ++i) // rows
|
for (int i=0; i<N; ++i) // rows
|
||||||
for (size_t j=i; j<N; ++j) // columns
|
for (int j=i; j<N; ++j) // columns
|
||||||
if (fabs(M(i,j)) > thresh)
|
if (fabs(M(i,j)) > thresh)
|
||||||
++nrANZ;
|
++nrANZ;
|
||||||
|
|
||||||
|
@ -972,10 +969,10 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
||||||
Ap[N] = nrANZ;
|
Ap[N] = nrANZ;
|
||||||
|
|
||||||
// copy in the full A matrix to compressed column form
|
// copy in the full A matrix to compressed column form
|
||||||
size_t t = 0; // count the elements added
|
int t = 0; // count the elements added
|
||||||
for (size_t j=0; j<N; ++j) { // columns
|
for (int j=0; j<N; ++j) { // columns
|
||||||
Ap[j] = t; // add to the column indices
|
Ap[j] = t; // add to the column indices
|
||||||
for (size_t i=0; i<=j; ++i) { // rows
|
for (int i=0; i<=j; ++i) { // rows
|
||||||
const double& m = M(i,j);
|
const double& m = M(i,j);
|
||||||
if (fabs(m) > thresh) {
|
if (fabs(m) > thresh) {
|
||||||
Ai[t] = i;
|
Ai[t] = i;
|
||||||
|
@ -985,7 +982,7 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy in RHS
|
// copy in RHS
|
||||||
for (size_t i = 0; i < N; ++i)
|
for (int i = 0; i < N; ++i)
|
||||||
b[i] = rhs(i);
|
b[i] = rhs(i);
|
||||||
|
|
||||||
// workspace variables
|
// workspace variables
|
||||||
|
@ -1000,13 +997,13 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
||||||
// factorize A into LDL' (P and Pinv not used)
|
// factorize A into LDL' (P and Pinv not used)
|
||||||
LDL_symbolic (N, Ap, Ai, Lp, Parent, Lnz, Flag, NULL, NULL);
|
LDL_symbolic (N, Ap, Ai, Lp, Parent, Lnz, Flag, NULL, NULL);
|
||||||
|
|
||||||
size_t nrLNZ = Lp[N]; // # of nonzeros below the diagonal of L
|
int nrLNZ = Lp[N]; // # of nonzeros below the diagonal of L
|
||||||
|
|
||||||
// after getting size of L, initialize storage arrays
|
// after getting size of L, initialize storage arrays
|
||||||
double * Lx = new double[nrLNZ];
|
double * Lx = new double[nrLNZ];
|
||||||
int * Li = new int [nrLNZ];
|
int * Li = new int [nrLNZ];
|
||||||
|
|
||||||
size_t d = LDL_numeric (N, Ap, Ai, Ax, Lp, Parent, Lnz, Li, Lx, D, Y, Pattern,
|
int d = LDL_numeric (N, Ap, Ai, Ax, Lp, Parent, Lnz, Li, Lx, D, Y, Pattern,
|
||||||
Flag, NULL, NULL);
|
Flag, NULL, NULL);
|
||||||
|
|
||||||
if (d == N) {
|
if (d == N) {
|
||||||
|
@ -1138,9 +1135,9 @@ Matrix square_root_positive(const Matrix& A) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Matrix expm(const Matrix& A, int K) {
|
Matrix expm(const Matrix& A, size_t K) {
|
||||||
Matrix E = eye(A.size1()), A_k = eye(4);
|
Matrix E = eye(A.size1()), A_k = eye(4);
|
||||||
for (int k=1;k<=K;k++) {
|
for(size_t k=1;k<=K;k++) {
|
||||||
A_k = A_k*A/k;
|
A_k = A_k*A/k;
|
||||||
E = E + A_k;
|
E = E + A_k;
|
||||||
}
|
}
|
|
@ -226,7 +226,7 @@ std::pair<Matrix,Matrix> qr(const Matrix& A);
|
||||||
/**
|
/**
|
||||||
* Imperative version of Householder rank 1 update
|
* Imperative version of Householder rank 1 update
|
||||||
*/
|
*/
|
||||||
void householder_update(Matrix &A, int j, double beta, const Vector& vjm);
|
void householder_update(Matrix &A, size_t j, double beta, const Vector& vjm);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Imperative algorithm for in-place full elimination with
|
* Imperative algorithm for in-place full elimination with
|
||||||
|
@ -383,7 +383,7 @@ Vector solve_ldl(const Matrix& A, const Vector& b);
|
||||||
* @param A matrix to exponentiate
|
* @param A matrix to exponentiate
|
||||||
* @param K number of iterations
|
* @param K number of iterations
|
||||||
*/
|
*/
|
||||||
Matrix expm(const Matrix& A, int K=7);
|
Matrix expm(const Matrix& A, size_t K=7);
|
||||||
|
|
||||||
// macro for unit tests
|
// macro for unit tests
|
||||||
#define EQUALITY(expected,actual)\
|
#define EQUALITY(expected,actual)\
|
|
@ -12,31 +12,30 @@
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
|
|
||||||
#include <CppUnitLite/TestHarness.h>
|
#include <CppUnitLite/TestHarness.h>
|
||||||
#include "Key.h"
|
|
||||||
#include "BTree.h"
|
#include "BTree.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
|
|
||||||
typedef pair<size_t, size_t> Range;
|
typedef pair<size_t, size_t> Range;
|
||||||
typedef BTree<Symbol, Range> RangeTree;
|
typedef BTree<string, Range> RangeTree;
|
||||||
typedef BTree<Symbol, int> IntTree;
|
typedef BTree<string, int> IntTree;
|
||||||
|
|
||||||
static std::stringstream ss;
|
static std::stringstream ss;
|
||||||
static Symbol x1('x', 1), x2('x', 2), x3('x', 3), x4('x', 4), x5('x', 5);
|
static string x1("x1"), x2("x2"), x3("x3"), x4("x4"), x5("x5");
|
||||||
typedef pair<Symbol, int> KeyInt;
|
typedef pair<string, int> KeyInt;
|
||||||
KeyInt p1(x1, 1), p2(x2, 2), p3(x3, 3), p4(x4, 4), p5(x5, 5);
|
KeyInt p1(x1, 1), p2(x2, 2), p3(x3, 3), p4(x4, 4), p5(x5, 5);
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int f(const Symbol& key, const Range& range) {
|
int f(const string& key, const Range& range) {
|
||||||
return range.first;
|
return range.first;
|
||||||
}
|
}
|
||||||
|
|
||||||
void g(const Symbol& key, int i) {
|
void g(const string& key, int i) {
|
||||||
ss << (string) key;
|
ss << (string) key;
|
||||||
}
|
}
|
||||||
|
|
||||||
int add(const Symbol& k, int v, int a) {
|
int add(const string& k, int v, int a) {
|
||||||
return v + a;
|
return v + a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +121,7 @@ TEST( BTree, iterating )
|
||||||
LONGS_EQUAL(25,tree.fold<int>(add,10))
|
LONGS_EQUAL(25,tree.fold<int>(add,10))
|
||||||
|
|
||||||
// test iterator
|
// test iterator
|
||||||
BTree<Symbol, int>::const_iterator it = tree.begin(), it2 = tree.begin();
|
BTree<string, int>::const_iterator it = tree.begin(), it2 = tree.begin();
|
||||||
CHECK(it==it2)
|
CHECK(it==it2)
|
||||||
CHECK(*it == p1)
|
CHECK(*it == p1)
|
||||||
CHECK(it->first == x1)
|
CHECK(it->first == x1)
|
||||||
|
@ -168,7 +167,7 @@ TEST( BTree, stress )
|
||||||
list<RangeTree::value_type> expected;
|
list<RangeTree::value_type> expected;
|
||||||
int N = 128;
|
int N = 128;
|
||||||
for (int i = 1; i <= N; i++) {
|
for (int i = 1; i <= N; i++) {
|
||||||
Symbol key('a', i);
|
string key('a', i);
|
||||||
Range value(i - 1, i);
|
Range value(i - 1, i);
|
||||||
tree = tree.add(key, value);
|
tree = tree.add(key, value);
|
||||||
LONGS_EQUAL(i,tree.size())
|
LONGS_EQUAL(i,tree.size())
|
||||||
|
@ -186,7 +185,7 @@ TEST( BTree, stress )
|
||||||
|
|
||||||
// deconstruct the tree
|
// deconstruct the tree
|
||||||
for (int i = N; i >= N; i--) {
|
for (int i = N; i >= N; i--) {
|
||||||
Symbol key('a', i);
|
string key('a', i);
|
||||||
tree = tree.remove(key);
|
tree = tree.remove(key);
|
||||||
LONGS_EQUAL(i-1,tree.size())
|
LONGS_EQUAL(i-1,tree.size())
|
||||||
CHECK(!tree.mem(key))
|
CHECK(!tree.mem(key))
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
||||||
#include <CppUnitLite/TestHarness.h>
|
#include <CppUnitLite/TestHarness.h>
|
||||||
|
|
||||||
#include "DSF.h"
|
#include "DSF.h"
|
||||||
#include "Key.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
|
@ -249,17 +248,16 @@ TEST(DSF, flatten) {
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST(DSF, flatten2) {
|
TEST(DSF, flatten2) {
|
||||||
Symbol x1('x',1);
|
static string x1("x1"), x2("x2"), x3("x3"), x4("x4");
|
||||||
Symbol x2('x',2), x3('x',3), x4('x',4);
|
list<string> keys; keys += x1,x2,x3,x4;
|
||||||
list<Symbol> keys; keys += x1,x2,x3,x4;
|
DSF<string> dsf(keys);
|
||||||
DSFSymbol dsf(keys);
|
|
||||||
dsf = dsf.makeUnion(x1,x2);
|
dsf = dsf.makeUnion(x1,x2);
|
||||||
dsf = dsf.makeUnion(x3,x4);
|
dsf = dsf.makeUnion(x3,x4);
|
||||||
dsf = dsf.makeUnion(x1,x3);
|
dsf = dsf.makeUnion(x1,x3);
|
||||||
|
|
||||||
CHECK(dsf != dsf.flatten());
|
CHECK(dsf != dsf.flatten());
|
||||||
|
|
||||||
DSFSymbol expected2;
|
DSF<string> expected2;
|
||||||
expected2 = expected2.makePair(x1, x2);
|
expected2 = expected2.makePair(x1, x2);
|
||||||
expected2 = expected2.makePair(x1, x3);
|
expected2 = expected2.makePair(x1, x3);
|
||||||
expected2 = expected2.makePair(x1, x4);
|
expected2 = expected2.makePair(x1, x4);
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
||||||
#include <CppUnitLite/TestHarness.h>
|
#include <CppUnitLite/TestHarness.h>
|
||||||
|
|
||||||
#include "DSFVector.h"
|
#include "DSFVector.h"
|
||||||
#include "Key.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
|
@ -1,38 +0,0 @@
|
||||||
# Makefile to compile the unit test library, will end up in $(LIBDIR)
|
|
||||||
|
|
||||||
.PHONY: all install clean
|
|
||||||
|
|
||||||
all: libcolamd.a
|
|
||||||
|
|
||||||
CC ?= gcc
|
|
||||||
CFLAGS += -O2
|
|
||||||
CFLAGS += -fPIC
|
|
||||||
|
|
||||||
|
|
||||||
sources = $(shell ls *.c)
|
|
||||||
|
|
||||||
library = libcolamd.a
|
|
||||||
|
|
||||||
#Note: hack was added to ensure that flags are acutally used for compilation
|
|
||||||
# This should probably be fixed, but will work for 64 bit machines now
|
|
||||||
|
|
||||||
$(library): colamd.o colamd_global.o ccolamd.o ccolamd_global.o
|
|
||||||
$(CC) $(CFLAGS) -c -DDLONG -o colamd_l.o colamd.c
|
|
||||||
ar crsv $@ $^ colamd_l.o
|
|
||||||
ranlib $(library)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.*~ $(library)
|
|
||||||
|
|
||||||
check:
|
|
||||||
echo 'no check for colamd'
|
|
||||||
|
|
||||||
distdir:
|
|
||||||
|
|
||||||
# Richard: added the following dependencies so that recursive make works:
|
|
||||||
|
|
||||||
install: all
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
|
|
||||||
check: all
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# colamd
|
||||||
|
# replaced Makefile with automake for easy linking
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
noinst_LTLIBRARIES = libcolamd.la
|
||||||
|
|
||||||
|
# We normally would not install these headers
|
||||||
|
# but they are included in the templated class FactorGraph-inl.h so we need them
|
||||||
|
pkginclude_HEADERS = colamd.h ccolamd.h UFconfig.h
|
||||||
|
|
||||||
|
# These are the sources for the library:
|
||||||
|
libcolamd_la_SOURCES = colamd.c colamd_global.c ccolamd.c ccolamd_global.c
|
|
@ -0,0 +1,541 @@
|
||||||
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# colamd
|
||||||
|
# replaced Makefile with automake for easy linking
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
subdir = colamd
|
||||||
|
DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||||
|
libcolamd_la_LIBADD =
|
||||||
|
am_libcolamd_la_OBJECTS = colamd.lo colamd_global.lo ccolamd.lo \
|
||||||
|
ccolamd_global.lo
|
||||||
|
libcolamd_la_OBJECTS = $(am_libcolamd_la_OBJECTS)
|
||||||
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
am__mv = mv -f
|
||||||
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
|
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
|
CCLD = $(CC)
|
||||||
|
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
SOURCES = $(libcolamd_la_SOURCES)
|
||||||
|
DIST_SOURCES = $(libcolamd_la_SOURCES)
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
HEADERS = $(pkginclude_HEADERS)
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
DSYMUTIL = @DSYMUTIL@
|
||||||
|
DUMPBIN = @DUMPBIN@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
FGREP = @FGREP@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LD = @LD@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIPO = @LIPO@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
NM = @NM@
|
||||||
|
NMEDIT = @NMEDIT@
|
||||||
|
OBJDUMP = @OBJDUMP@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OTOOL = @OTOOL@
|
||||||
|
OTOOL64 = @OTOOL64@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
boost = @boost@
|
||||||
|
boost_serialization = @boost_serialization@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
lt_ECHO = @lt_ECHO@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
toolbox = @toolbox@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
noinst_LTLIBRARIES = libcolamd.la
|
||||||
|
|
||||||
|
# We normally would not install these headers
|
||||||
|
# but they are included in the templated class FactorGraph-inl.h so we need them
|
||||||
|
pkginclude_HEADERS = colamd.h ccolamd.h UFconfig.h
|
||||||
|
|
||||||
|
# These are the sources for the library:
|
||||||
|
libcolamd_la_SOURCES = colamd.c colamd_global.c ccolamd.c ccolamd_global.c
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu colamd/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu colamd/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
clean-noinstLTLIBRARIES:
|
||||||
|
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||||
|
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||||
|
test "$$dir" != "$$p" || dir=.; \
|
||||||
|
echo "rm -f \"$${dir}/so_locations\""; \
|
||||||
|
rm -f "$${dir}/so_locations"; \
|
||||||
|
done
|
||||||
|
libcolamd.la: $(libcolamd_la_OBJECTS) $(libcolamd_la_DEPENDENCIES)
|
||||||
|
$(LINK) $(libcolamd_la_OBJECTS) $(libcolamd_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ccolamd.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ccolamd_global.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colamd.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/colamd_global.Plo@am__quote@
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.c.obj:
|
||||||
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
test -n "$$files" || exit 0; \
|
||||||
|
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
|
||||||
|
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
|
||||||
|
mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
|
distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am: install-pkgincludeHEADERS
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||||
|
mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||||
|
clean-libtool clean-noinstLTLIBRARIES ctags distclean \
|
||||||
|
distclean-compile distclean-generic distclean-libtool \
|
||||||
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||||
|
install-ps install-ps-am install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
|
tags uninstall uninstall-am uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,89 @@
|
||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* boost serialization flag */
|
||||||
|
#undef HAVE_BOOST_SERIALIZATION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pow' function. */
|
||||||
|
#undef HAVE_POW
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sqrt' function. */
|
||||||
|
#undef HAVE_SQRT
|
||||||
|
|
||||||
|
/* Define to 1 if stdbool.h conforms to C99. */
|
||||||
|
#undef HAVE_STDBOOL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `_Bool'. */
|
||||||
|
#undef HAVE__BOOL
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#undef inline
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
24
configure.ac
24
configure.ac
|
@ -4,12 +4,19 @@
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT(gtsam, 0.0.0, dellaert@cc.gatech.edu)
|
AC_INIT(gtsam, 0.0.0, dellaert@cc.gatech.edu)
|
||||||
AM_INIT_AUTOMAKE(gtsam, 0.0.0)
|
AM_INIT_AUTOMAKE(gtsam, 0.0.0)
|
||||||
AC_OUTPUT(Makefile spqr_mini/Makefile cpp/Makefile wrap/Makefile)
|
AC_OUTPUT(Makefile CppUnitLite/Makefile colamd/Makefile ldl/Makefile spqr_mini/Makefile base/Makefile geometry/Makefile cpp/Makefile slam/Makefile tests/Makefile wrap/Makefile)
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_CONFIG_SRCDIR([cpp/cal3_S2.cpp])
|
AC_CONFIG_HEADER([config.h])
|
||||||
AC_CONFIG_HEADER([cpp/config.h])
|
AC_CONFIG_SRCDIR([CppUnitLite/Test.cpp])
|
||||||
AC_CONFIG_SRCDIR([wrap/wrap.cpp])
|
AC_CONFIG_SRCDIR([colamd/colamd.c])
|
||||||
|
AC_CONFIG_SRCDIR([ldl/ldl.cpp])
|
||||||
AC_CONFIG_SRCDIR([spqr_mini/spqr_front.cpp])
|
AC_CONFIG_SRCDIR([spqr_mini/spqr_front.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([base/DSFVector.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([geometry/Cal3_S2.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([cpp/GaussianFactor.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([slam/pose2SLAM.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([tests/testSQP.cpp])
|
||||||
|
AC_CONFIG_SRCDIR([wrap/wrap.cpp])
|
||||||
|
|
||||||
# Check for OS
|
# Check for OS
|
||||||
AC_CANONICAL_HOST # needs to be called at some point earlier
|
AC_CANONICAL_HOST # needs to be called at some point earlier
|
||||||
|
@ -52,6 +59,7 @@ AC_ARG_ENABLE([blas],
|
||||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-blas]) ;;
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-blas]) ;;
|
||||||
esac],[blas=false])
|
esac],[blas=false])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([USE_BLAS], test x$blas = xtrue)
|
||||||
AM_CONDITIONAL([USE_BLAS_MACOS], [test x$blas = xtrue && test x$ISMAC = xtrue])
|
AM_CONDITIONAL([USE_BLAS_MACOS], [test x$blas = xtrue && test x$ISMAC = xtrue])
|
||||||
AM_CONDITIONAL([USE_BLAS_LINUX], [test x$blas = xtrue && test x$ISMAC = xfalse])
|
AM_CONDITIONAL([USE_BLAS_LINUX], [test x$blas = xtrue && test x$ISMAC = xfalse])
|
||||||
|
|
||||||
|
@ -64,12 +72,14 @@ AC_ARG_ENABLE([lapack],
|
||||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-lapack]) ;;
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-lapack]) ;;
|
||||||
esac],[lapack=false])
|
esac],[lapack=false])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([USE_LAPACK], test x$lapack = xtrue)
|
||||||
AM_CONDITIONAL([USE_LAPACK_MACOS], [test x$lapack = xtrue && test x$ISMAC = xtrue])
|
AM_CONDITIONAL([USE_LAPACK_MACOS], [test x$lapack = xtrue && test x$ISMAC = xtrue])
|
||||||
AM_CONDITIONAL([USE_LAPACK_LINUX], [test x$lapack = xtrue && test x$ISMAC = xfalse])
|
AM_CONDITIONAL([USE_LAPACK_LINUX], [test x$lapack = xtrue && test x$ISMAC = xfalse])
|
||||||
AM_CONDITIONAL([USE_LAPACK], test x$lapack = xtrue)
|
|
||||||
AM_CONDITIONAL([USE_VECLIB_MACOS], [(test x$lapack = xtrue || test x$blas = xtrue) && test x$ISMAC = xtrue])
|
|
||||||
|
|
||||||
#enabgle SparseQR for linear solving
|
# On Mac, we use the Accelerate framework for BLAS/LAPACK
|
||||||
|
AM_CONDITIONAL([USE_ACCELERATE_MACOS], [(test x$lapack = xtrue || test x$blas = xtrue) && test x$ISMAC = xtrue])
|
||||||
|
|
||||||
|
#enable SparseQR for linear solving
|
||||||
AC_ARG_ENABLE([spqr],
|
AC_ARG_ENABLE([spqr],
|
||||||
[ --enable-spqr Enable SparseQR library support],
|
[ --enable-spqr Enable SparseQR library support],
|
||||||
[case "${enableval}" in
|
[case "${enableval}" in
|
||||||
|
|
|
@ -16,21 +16,17 @@
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#include <colamd/colamd.h>
|
|
||||||
#include <colamd/ccolamd.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
#include <boost/tuple/tuple.hpp>
|
#include <boost/tuple/tuple.hpp>
|
||||||
#include <boost/format.hpp>
|
#include <boost/format.hpp>
|
||||||
#include <boost/graph/prim_minimum_spanning_tree.hpp>
|
#include <boost/graph/prim_minimum_spanning_tree.hpp>
|
||||||
#include <colamd/colamd.h>
|
#include "ccolamd.h"
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "FactorGraph.h"
|
#include "FactorGraph.h"
|
||||||
#include "graph-inl.h"
|
#include "graph-inl.h"
|
||||||
#include "DSF.h"
|
#include "DSF.h"
|
||||||
|
|
||||||
|
|
||||||
#define INSTANTIATE_FACTOR_GRAPH(F) \
|
#define INSTANTIATE_FACTOR_GRAPH(F) \
|
||||||
template class FactorGraph<F>; \
|
template class FactorGraph<F>; \
|
||||||
/*template boost::shared_ptr<F> removeAndCombineFactors(FactorGraph<F>&, const std::string&);*/ \
|
/*template boost::shared_ptr<F> removeAndCombineFactors(FactorGraph<F>&, const std::string&);*/ \
|
||||||
|
@ -189,7 +185,6 @@ void colamd(int n_col, int n_row, int nrNonZeros, const map<Key, vector<int> >&
|
||||||
Ordering& ordering, const set<Symbol>& lastKeys) {
|
Ordering& ordering, const set<Symbol>& lastKeys) {
|
||||||
|
|
||||||
// Convert to compressed column major format colamd wants it in (== MATLAB format!)
|
// Convert to compressed column major format colamd wants it in (== MATLAB format!)
|
||||||
vector<Key> initialOrder;
|
|
||||||
int Alen = ccolamd_recommended(nrNonZeros, n_row, n_col); /* colamd arg 3: size of the array A */
|
int Alen = ccolamd_recommended(nrNonZeros, n_row, n_col); /* colamd arg 3: size of the array A */
|
||||||
int * A = new int[Alen]; /* colamd arg 4: row indices of A, of size Alen */
|
int * A = new int[Alen]; /* colamd arg 4: row indices of A, of size Alen */
|
||||||
int * p = new int[n_col + 1]; /* colamd arg 5: column pointers of A, of size n_col+1 */
|
int * p = new int[n_col + 1]; /* colamd arg 5: column pointers of A, of size n_col+1 */
|
||||||
|
@ -200,6 +195,7 @@ void colamd(int n_col, int n_row, int nrNonZeros, const map<Key, vector<int> >&
|
||||||
int count = 0;
|
int count = 0;
|
||||||
typedef typename map<Key, vector<int> >::const_iterator iterator;
|
typedef typename map<Key, vector<int> >::const_iterator iterator;
|
||||||
bool front_exists = false;
|
bool front_exists = false;
|
||||||
|
vector<Key> initialOrder;
|
||||||
for(iterator it = columns.begin(); it != columns.end(); it++) {
|
for(iterator it = columns.begin(); it != columns.end(); it++) {
|
||||||
const Key& key = it->first;
|
const Key& key = it->first;
|
||||||
const vector<int>& column = it->second;
|
const vector<int>& column = it->second;
|
||||||
|
@ -220,7 +216,7 @@ void colamd(int n_col, int n_row, int nrNonZeros, const map<Key, vector<int> >&
|
||||||
}
|
}
|
||||||
|
|
||||||
double* knobs = NULL; /* colamd arg 6: parameters (uses defaults if NULL) */
|
double* knobs = NULL; /* colamd arg 6: parameters (uses defaults if NULL) */
|
||||||
int stats[COLAMD_STATS]; /* colamd arg 7: colamd output statistics and error codes */
|
int stats[CCOLAMD_STATS]; /* colamd arg 7: colamd output statistics and error codes */
|
||||||
|
|
||||||
// call colamd, result will be in p *************************************************
|
// call colamd, result will be in p *************************************************
|
||||||
/* TODO: returns (1) if successful, (0) otherwise*/
|
/* TODO: returns (1) if successful, (0) otherwise*/
|
||||||
|
|
|
@ -279,6 +279,7 @@ namespace gtsam {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
template<class Conditional, class Config>
|
template<class Conditional, class Config>
|
||||||
void ISAM2<Conditional, Config>::linear_update(const FactorGraph<GaussianFactor>& newFactors) {
|
void ISAM2<Conditional, Config>::linear_update(const FactorGraph<GaussianFactor>& newFactors) {
|
||||||
|
|
||||||
|
@ -329,8 +330,8 @@ namespace gtsam {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output: BayesTree(this)
|
// Output: BayesTree(this)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
template<class Conditional, class Config>
|
template<class Conditional, class Config>
|
||||||
void ISAM2<Conditional, Config>::fluid_relinearization(double relinearize_threshold) {
|
void ISAM2<Conditional, Config>::fluid_relinearization(double relinearize_threshold) {
|
||||||
|
|
370
cpp/Makefile.am
370
cpp/Makefile.am
|
@ -1,69 +1,24 @@
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# GTSAM core functionality: discrete, linear, and non-linear
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
# the install destination
|
headers =
|
||||||
includedir = ${prefix}/include/gtsam
|
sources =
|
||||||
libdir = ${exec_prefix}/lib
|
check_PROGRAMS =
|
||||||
|
|
||||||
# library version
|
#----------------------------------------------------------------------------------------------------
|
||||||
current = 0 # The most recent interface number that this library implements.
|
# base
|
||||||
revision = 0 # The implementation number of the current interface
|
#----------------------------------------------------------------------------------------------------
|
||||||
age = 0 # The difference between the newest and oldest interfaces that \
|
|
||||||
this library implements. In other words, the library implements all \
|
|
||||||
the interface numbers in the range from number current - age to \
|
|
||||||
current.
|
|
||||||
|
|
||||||
# from libtool manual:
|
# GTSAM core
|
||||||
# Here are a set of rules to help you update your library version information:
|
headers += Factor.h Conditional.h Ordering.h IndexTable.h
|
||||||
# Start with version information of ‘0:0:0’ for each libtool library.
|
sources += Ordering.cpp
|
||||||
# - Update the version information only immediately before a public
|
check_PROGRAMS += testOrdering
|
||||||
# release of your software.
|
|
||||||
# - If the library source code has changed at all since the last
|
|
||||||
# update, then increment revision
|
|
||||||
# - If any interfaces have been added, removed, or changed since the
|
|
||||||
# last update, increment current, and set revision to 0.
|
|
||||||
# - If any interfaces have been added since the last public release,
|
|
||||||
# then increment age.
|
|
||||||
# - If any interfaces have been removed since the last public release,
|
|
||||||
# then set age to 0.
|
|
||||||
version = $(current):$(revision):$(age)
|
|
||||||
|
|
||||||
# we specify the library in levels
|
|
||||||
|
|
||||||
# basic Math
|
|
||||||
sources = Vector.cpp svdcmp.cpp Matrix.cpp SPQRUtil.cpp
|
|
||||||
check_PROGRAMS = testVector testMatrix testSPQRUtil
|
|
||||||
testVector_SOURCES = testVector.cpp
|
|
||||||
testVector_LDADD = libgtsam.la
|
|
||||||
testMatrix_SOURCES = testMatrix.cpp
|
|
||||||
testMatrix_LDADD = libgtsam.la
|
|
||||||
testSPQRUtil_SOURCES = testSPQRUtil.cpp
|
|
||||||
testSPQRUtil_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# GTSAM basics
|
|
||||||
# The header files will be installed in ~/include/gtsam
|
|
||||||
headers = gtsam.h Value.h Testable.h Factor.h Conditional.h
|
|
||||||
headers += Ordering.h IndexTable.h numericalDerivative.h
|
|
||||||
headers += BTree.h DSF.h DSFVector.h
|
|
||||||
sources += Ordering.cpp smallExample.cpp DSFVector.cpp
|
|
||||||
check_PROGRAMS += testOrdering testBTree testDSF testDSFVector
|
|
||||||
testOrdering_SOURCES = testOrdering.cpp
|
|
||||||
testOrdering_LDADD = libgtsam.la
|
|
||||||
testBTree_SOURCES = testBTree.cpp
|
|
||||||
testBTree_LDADD = libgtsam.la
|
|
||||||
testDSF_SOURCES = testDSF.cpp
|
|
||||||
testDSF_LDADD = libgtsam.la
|
|
||||||
testDSFVector_SOURCES = testDSFVector.cpp
|
|
||||||
testDSFVector_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Symbolic Inference
|
# Symbolic Inference
|
||||||
headers += SymbolicConditional.h
|
headers += SymbolicConditional.h
|
||||||
sources += SymbolicFactor.cpp SymbolicFactorGraph.cpp SymbolicBayesNet.cpp
|
sources += SymbolicFactor.cpp SymbolicFactorGraph.cpp SymbolicBayesNet.cpp
|
||||||
check_PROGRAMS += testSymbolicFactor testSymbolicFactorGraph testSymbolicBayesNet
|
check_PROGRAMS += testSymbolicFactor testSymbolicFactorGraph testSymbolicBayesNet
|
||||||
testSymbolicFactor_SOURCES = testSymbolicFactor.cpp
|
|
||||||
testSymbolicFactor_LDADD = libgtsam.la
|
|
||||||
testSymbolicFactorGraph_SOURCES = testSymbolicFactorGraph.cpp
|
|
||||||
testSymbolicFactorGraph_LDADD = libgtsam.la
|
|
||||||
testSymbolicBayesNet_SOURCES = testSymbolicBayesNet.cpp
|
|
||||||
testSymbolicBayesNet_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Inference
|
# Inference
|
||||||
headers += inference.h inference-inl.h
|
headers += inference.h inference-inl.h
|
||||||
|
@ -73,231 +28,91 @@ headers += JunctionTree.h JunctionTree-inl.h
|
||||||
headers += BayesNet.h BayesNet-inl.h
|
headers += BayesNet.h BayesNet-inl.h
|
||||||
headers += BayesTree.h BayesTree-inl.h
|
headers += BayesTree.h BayesTree-inl.h
|
||||||
headers += ISAM.h ISAM-inl.h GaussianISAM.h
|
headers += ISAM.h ISAM-inl.h GaussianISAM.h
|
||||||
headers += ISAM2.h ISAM2-inl.h GaussianISAM2.h
|
headers += ISAM2.h ISAM2-inl.h
|
||||||
sources += GaussianISAM.cpp GaussianISAM2.cpp
|
sources += GaussianISAM.cpp
|
||||||
check_PROGRAMS += testGraph testFactorGraph testJunctionTree testInference testOrdering
|
check_PROGRAMS += testFactorGraph testJunctionTree testOrdering
|
||||||
check_PROGRAMS += testBayesTree testISAM testGaussianISAM testGaussianISAM2
|
check_PROGRAMS += testBayesTree testISAM
|
||||||
testGraph_SOURCES = testGraph.cpp
|
|
||||||
testGraph_LDADD = libgtsam.la
|
#----------------------------------------------------------------------------------------------------
|
||||||
testFactorGraph_SOURCES = testFactorgraph.cpp
|
# discrete
|
||||||
testFactorGraph_LDADD = libgtsam.la
|
#----------------------------------------------------------------------------------------------------
|
||||||
testJunctionTree_SOURCES = testJunctionTree.cpp
|
|
||||||
testJunctionTree_LDADD = libgtsam.la
|
|
||||||
testInference_SOURCES = testInference.cpp
|
|
||||||
testInference_LDADD = libgtsam.la
|
|
||||||
testBayesTree_SOURCES = testBayesTree.cpp
|
|
||||||
testBayesTree_LDADD = libgtsam.la
|
|
||||||
testGaussianISAM_SOURCES = testGaussianISAM.cpp
|
|
||||||
testGaussianISAM_LDADD = libgtsam.la
|
|
||||||
testGaussianISAM2_SOURCES = testGaussianISAM2.cpp
|
|
||||||
testGaussianISAM2_LDADD = libgtsam.la
|
|
||||||
testISAM_SOURCES = testISAM.cpp
|
|
||||||
testISAM_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Binary Inference
|
# Binary Inference
|
||||||
headers += BinaryConditional.h
|
headers += BinaryConditional.h
|
||||||
check_PROGRAMS += testBinaryBayesNet
|
check_PROGRAMS += testBinaryBayesNet
|
||||||
testBinaryBayesNet_SOURCES = testBinaryBayesNet.cpp
|
|
||||||
testBinaryBayesNet_LDADD = libgtsam.la
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# linear
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
# Gaussian inference
|
# Gaussian inference
|
||||||
headers += GaussianFactorSet.h SharedGaussian.h SharedDiagonal.h VectorConfig.h Factorization.h
|
headers += GaussianFactorSet.h SharedGaussian.h SharedDiagonal.h VectorConfig.h Factorization.h
|
||||||
sources += NoiseModel.cpp Errors.cpp VectorMap.cpp VectorBTree.cpp GaussianFactor.cpp
|
sources += NoiseModel.cpp Errors.cpp VectorMap.cpp VectorBTree.cpp GaussianFactor.cpp
|
||||||
sources += GaussianFactorGraph.cpp GaussianConditional.cpp GaussianBayesNet.cpp
|
sources += GaussianFactorGraph.cpp GaussianConditional.cpp GaussianBayesNet.cpp
|
||||||
check_PROGRAMS += testVectorMap testVectorBTree testGaussianFactor testGaussianFactorGraph
|
check_PROGRAMS += testVectorMap testVectorBTree testGaussianFactor
|
||||||
check_PROGRAMS += testGaussianConditional testGaussianBayesNet testNoiseModel testErrors
|
check_PROGRAMS += testGaussianConditional testNoiseModel testErrors
|
||||||
testVectorMap_SOURCES = testVectorMap.cpp
|
|
||||||
testVectorMap_LDADD = libgtsam.la
|
|
||||||
testVectorBTree_SOURCES = testVectorBTree.cpp
|
|
||||||
testVectorBTree_LDADD = libgtsam.la
|
|
||||||
testGaussianFactor_SOURCES = testGaussianFactor.cpp
|
|
||||||
testGaussianFactor_LDADD = libgtsam.la
|
|
||||||
testGaussianFactorGraph_SOURCES = testGaussianFactorGraph.cpp
|
|
||||||
testGaussianFactorGraph_LDADD = libgtsam.la
|
|
||||||
testGaussianConditional_SOURCES = testGaussianConditional.cpp
|
|
||||||
testGaussianConditional_LDADD = libgtsam.la
|
|
||||||
testGaussianBayesNet_SOURCES = testGaussianBayesNet.cpp
|
|
||||||
testGaussianBayesNet_LDADD = libgtsam.la
|
|
||||||
testNoiseModel_SOURCES = testNoiseModel.cpp
|
|
||||||
testNoiseModel_LDADD = libgtsam.la
|
|
||||||
testErrors_SOURCES = testErrors.cpp
|
|
||||||
testErrors_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Iterative Methods
|
# Iterative Methods
|
||||||
headers += iterative-inl.h SubgraphSolver.h SubgraphSolver-inl.h
|
headers += iterative-inl.h SubgraphSolver.h SubgraphSolver-inl.h
|
||||||
sources += iterative.cpp BayesNetPreconditioner.cpp SubgraphPreconditioner.cpp
|
sources += iterative.cpp BayesNetPreconditioner.cpp SubgraphPreconditioner.cpp
|
||||||
check_PROGRAMS += testIterative testBayesNetPreconditioner testSubgraphPreconditioner
|
check_PROGRAMS += testBayesNetPreconditioner
|
||||||
testIterative_SOURCES = testIterative.cpp
|
|
||||||
testIterative_LDADD = libgtsam.la
|
# Timing tests
|
||||||
testBayesNetPreconditioner_SOURCES = testBayesNetPreconditioner.cpp
|
noinst_PROGRAMS = timeGaussianFactor timeSymbolMaps timeVectorConfig
|
||||||
testBayesNetPreconditioner_LDADD = libgtsam.la
|
|
||||||
testSubgraphPreconditioner_SOURCES = testSubgraphPreconditioner.cpp
|
#----------------------------------------------------------------------------------------------------
|
||||||
testSubgraphPreconditioner_LDADD = libgtsam.la
|
# nonlinear
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Lie Groups
|
||||||
|
headers += LieConfig.h LieConfig-inl.h TupleConfig.h TupleConfig-inl.h
|
||||||
|
check_PROGRAMS += testLieConfig
|
||||||
|
|
||||||
# Nonlinear inference
|
# Nonlinear inference
|
||||||
headers += Key.h SymbolMap.h NonlinearFactorGraph.h NonlinearFactorGraph-inl.h
|
headers += Key.h SymbolMap.h NonlinearFactorGraph.h NonlinearFactorGraph-inl.h
|
||||||
headers += NonlinearOptimizer.h NonlinearOptimizer-inl.h
|
headers += NonlinearOptimizer.h NonlinearOptimizer-inl.h
|
||||||
headers += NonlinearFactor.h
|
headers += NonlinearFactor.h
|
||||||
check_PROGRAMS += testNonlinearFactor testNonlinearFactorGraph testNonlinearOptimizer testKey
|
check_PROGRAMS += testKey
|
||||||
testNonlinearFactor_SOURCES = testNonlinearFactor.cpp
|
|
||||||
testNonlinearFactor_LDADD = libgtsam.la
|
|
||||||
testNonlinearFactorGraph_SOURCES = testNonlinearFactorGraph.cpp
|
|
||||||
testNonlinearFactorGraph_LDADD = libgtsam.la
|
|
||||||
testNonlinearOptimizer_SOURCES = testNonlinearOptimizer.cpp
|
|
||||||
testNonlinearOptimizer_LDADD = libgtsam.la
|
|
||||||
testKey_SOURCES = testKey.cpp
|
|
||||||
testKey_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Nonlinear constraints
|
# Nonlinear constraints
|
||||||
headers += NonlinearConstraint.h NonlinearConstraint-inl.h
|
headers += NonlinearConstraint.h NonlinearConstraint-inl.h
|
||||||
headers += NonlinearEquality.h
|
headers += NonlinearEquality.h
|
||||||
check_PROGRAMS += testNonlinearConstraint testNonlinearEquality
|
check_PROGRAMS += testNonlinearConstraint
|
||||||
testNonlinearConstraint_SOURCES = testNonlinearConstraint.cpp
|
|
||||||
testNonlinearConstraint_LDADD = libgtsam.la
|
|
||||||
testNonlinearEquality_SOURCES = testNonlinearEquality.cpp
|
|
||||||
testNonlinearEquality_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# SQP
|
# SQP
|
||||||
headers += ConstraintOptimizer.h
|
|
||||||
sources += ConstraintOptimizer.cpp
|
sources += ConstraintOptimizer.cpp
|
||||||
check_PROGRAMS += testSQP testConstraintOptimizer
|
check_PROGRAMS += testConstraintOptimizer
|
||||||
testSQP_SOURCES = $(example) testSQP.cpp
|
|
||||||
testSQP_LDADD = libgtsam.la
|
|
||||||
testConstraintOptimizer_SOURCES = $(example) testConstraintOptimizer.cpp
|
|
||||||
testConstraintOptimizer_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# geometry
|
|
||||||
headers += Lie.h Lie-inl.h
|
|
||||||
sources += Point2.cpp Rot2.cpp Pose2.cpp Point3.cpp Rot3.cpp Pose3.cpp Cal3_S2.cpp
|
|
||||||
check_PROGRAMS += testPoint2 testRot2 testPose2 testPoint3 testRot3 testPose3 testCal3_S2 testLieConfig testTupleConfig
|
|
||||||
testPoint2_SOURCES = testPoint2.cpp
|
|
||||||
testRot2_SOURCES = testRot2.cpp
|
|
||||||
testPose2_SOURCES = testPose2.cpp
|
|
||||||
testPoint3_SOURCES = testPoint3.cpp
|
|
||||||
testRot3_SOURCES = testRot3.cpp
|
|
||||||
testPose3_SOURCES = testPose3.cpp
|
|
||||||
testCal3_S2_SOURCES = testCal3_S2.cpp
|
|
||||||
testLieConfig_SOURCES = testLieConfig.cpp
|
|
||||||
testTupleConfig_SOURCES = testTupleConfig.cpp
|
|
||||||
|
|
||||||
testPoint2_LDADD = libgtsam.la
|
|
||||||
testRot2_LDADD = libgtsam.la
|
|
||||||
testPose2_LDADD = libgtsam.la
|
|
||||||
testPoint3_LDADD = libgtsam.la
|
|
||||||
testRot3_LDADD = libgtsam.la
|
|
||||||
testPose3_LDADD = libgtsam.la
|
|
||||||
testCal3_S2_LDADD = libgtsam.la
|
|
||||||
testLieConfig_LDADD = libgtsam.la
|
|
||||||
testTupleConfig_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# simulated2D example
|
|
||||||
headers += simulated2D.h simulated2DOriented.h
|
|
||||||
headers += Simulated2DConfig.h Simulated2DOrientedConfig.h
|
|
||||||
headers += Simulated2DPosePrior.h Simulated2DPointPrior.h Simulated2DOrientedPosePrior.h
|
|
||||||
headers += Simulated2DOdometry.h Simulated2DMeasurement.h Simulated2DOrientedOdometry.h
|
|
||||||
sources += simulated2D.cpp simulated2DOriented.cpp
|
|
||||||
testSimulated2D_SOURCES = testSimulated2D.cpp
|
|
||||||
testSimulated2D_LDADD = libgtsam.la
|
|
||||||
testSimulated2DOriented_SOURCES = testSimulated2DOriented.cpp
|
|
||||||
testSimulated2DOriented_LDADD = libgtsam.la
|
|
||||||
check_PROGRAMS += testSimulated2D testSimulated2DOriented
|
|
||||||
|
|
||||||
# simulated3D example
|
|
||||||
sources += Simulated3D.cpp
|
|
||||||
testSimulated3D_SOURCES = testSimulated3D.cpp
|
|
||||||
testSimulated3D_LDADD = libgtsam.la
|
|
||||||
check_PROGRAMS += testSimulated3D
|
|
||||||
|
|
||||||
# Pose SLAM headers
|
|
||||||
headers += BetweenFactor.h PriorFactor.h
|
|
||||||
headers += LieConfig.h LieConfig-inl.h TupleConfig.h TupleConfig-inl.h
|
|
||||||
|
|
||||||
# 2D Pose SLAM
|
|
||||||
headers +=
|
|
||||||
sources += pose2SLAM.cpp Pose2SLAMOptimizer.cpp dataset.cpp
|
|
||||||
check_PROGRAMS += testPose2Factor testPose2Config testPose2SLAM testPose2Prior
|
|
||||||
testPose2Prior_SOURCES = testPose2Prior.cpp
|
|
||||||
testPose2Prior_LDADD = libgtsam.la
|
|
||||||
testPose2Factor_SOURCES = testPose2Factor.cpp
|
|
||||||
testPose2Factor_LDADD = libgtsam.la
|
|
||||||
testPose2Config_SOURCES = testPose2Config.cpp
|
|
||||||
testPose2Config_LDADD = libgtsam.la
|
|
||||||
testPose2SLAM_SOURCES = testPose2SLAM.cpp
|
|
||||||
testPose2SLAM_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# 2D SLAM using Bearing and Range
|
|
||||||
headers += BearingFactor.h RangeFactor.h BearingRangeFactor.h
|
|
||||||
sources += planarSLAM.cpp
|
|
||||||
check_PROGRAMS += testPlanarSLAM
|
|
||||||
testPlanarSLAM_SOURCES = testPlanarSLAM.cpp
|
|
||||||
testPlanarSLAM_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# 3D Pose constraints
|
|
||||||
headers +=
|
|
||||||
sources += pose3SLAM.cpp
|
|
||||||
check_PROGRAMS += testPose3Factor testPose3Config testPose3SLAM
|
|
||||||
testPose3Factor_SOURCES = testPose3Factor.cpp
|
|
||||||
testPose3Factor_LDADD = libgtsam.la
|
|
||||||
testPose3Config_SOURCES = testPose3Config.cpp
|
|
||||||
testPose3Config_LDADD = libgtsam.la
|
|
||||||
testPose3SLAM_SOURCES = testPose3SLAM.cpp
|
|
||||||
testPose3SLAM_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Cameras
|
|
||||||
sources += CalibratedCamera.cpp SimpleCamera.cpp
|
|
||||||
check_PROGRAMS += testCalibratedCamera testSimpleCamera
|
|
||||||
testCalibratedCamera_SOURCES = testCalibratedCamera.cpp
|
|
||||||
testCalibratedCamera_LDADD = libgtsam.la
|
|
||||||
testSimpleCamera_SOURCES = testSimpleCamera.cpp
|
|
||||||
testSimpleCamera_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Tensors
|
|
||||||
headers += tensors.h Tensor1.h Tensor2.h Tensor3.h Tensor4.h Tensor5.h
|
|
||||||
headers += Tensor1Expression.h Tensor2Expression.h Tensor3Expression.h Tensor5Expression.h
|
|
||||||
headers += projectiveGeometry.h tensorInterface.h
|
|
||||||
sources += projectiveGeometry.cpp tensorInterface.cpp
|
|
||||||
check_PROGRAMS += testTensors testHomography2 testTrifocal
|
|
||||||
testHomography2_SOURCES = testHomography2.cpp
|
|
||||||
testHomography2_LDADD = libgtsam.la
|
|
||||||
testTensors_SOURCES = testTensors.cpp
|
|
||||||
testTensors_LDADD = libgtsam.la
|
|
||||||
testTrifocal_SOURCES = testTrifocal.cpp
|
|
||||||
testTrifocal_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# Visual SLAM
|
|
||||||
sources += visualSLAM.cpp
|
|
||||||
check_PROGRAMS += testVSLAMFactor testVSLAMGraph testVSLAMConfig
|
|
||||||
testVSLAMFactor_SOURCES = testVSLAMFactor.cpp
|
|
||||||
testVSLAMFactor_LDADD = libgtsam.la
|
|
||||||
testVSLAMGraph_SOURCES = testVSLAMGraph.cpp
|
|
||||||
testVSLAMGraph_LDADD = libgtsam.la
|
|
||||||
testVSLAMConfig_SOURCES = testVSLAMConfig.cpp
|
|
||||||
testVSLAMConfig_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
# The headers are installed in $(includedir)/gtsam:
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
headers += $(sources:.cpp=.h)
|
headers += $(sources:.cpp=.h)
|
||||||
|
pkginclude_HEADERS = $(headers)
|
||||||
|
noinst_HEADERS = gtsam.h
|
||||||
|
noinst_LTLIBRARIES = libcpp.la
|
||||||
|
libcpp_la_SOURCES = $(sources)
|
||||||
|
AM_CPPFLAGS = -I$(boost) -I../colamd -I../base
|
||||||
|
|
||||||
# Timing tests
|
#----------------------------------------------------------------------------------------------------
|
||||||
noinst_PROGRAMS = timeGaussianFactor timeGaussianFactorGraph timeRot3 timeMatrix timeSymbolMaps timeVectorConfig
|
# rules to build local programs
|
||||||
timeRot3_SOURCES = timeRot3.cpp
|
#----------------------------------------------------------------------------------------------------
|
||||||
timeRot3_LDADD = libgtsam.la
|
TESTS = $(check_PROGRAMS)
|
||||||
timeGaussianFactor_SOURCES = timeGaussianFactor.cpp
|
AM_LDFLAGS = $(BOOST_LDFLAGS) $(boost_serialization)
|
||||||
timeGaussianFactor_LDADD = libgtsam.la
|
LDADD = libcpp.la ../base/libbase.la
|
||||||
timeGaussianFactorGraph_SOURCES = timeGaussianFactorGraph.cpp
|
LDADD += ../CppUnitLite/libCppUnitLite.a ../colamd/libcolamd.la ../ldl/libldl.la
|
||||||
timeGaussianFactorGraph_LDADD = libgtsam.la
|
AM_DEFAULT_SOURCE_EXT = .cpp
|
||||||
timeMatrix_SOURCES = timeMatrix.cpp
|
|
||||||
timeMatrix_LDADD = libgtsam.la
|
|
||||||
timeSymbolMaps_SOURCES = timeSymbolMaps.cpp
|
|
||||||
timeSymbolMaps_LDADD = libgtsam.la
|
|
||||||
timeVectorConfig_SOURCES = timeVectorConfig.cpp
|
|
||||||
timeVectorConfig_LDADD = libgtsam.la
|
|
||||||
|
|
||||||
# create both dynamic and static libraries
|
# rule to run an executable
|
||||||
AM_CXXFLAGS = -I$(boost) -fPIC
|
%.run: % $(LDADD)
|
||||||
AM_LDFLAGS =
|
./$^
|
||||||
lib_LTLIBRARIES = libgtsam.la
|
|
||||||
libgtsam_la_SOURCES = $(sources)
|
#----------------------------------------------------------------------------------------------------
|
||||||
libgtsam_la_CPPFLAGS = $(AM_CXXFLAGS)
|
# OLD, need to figure where these go!
|
||||||
libgtsam_la_LDFLAGS = -version-info $(version) -L../colamd -lcolamd -L../ldl -lldl
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
AM_CXXFLAGS =
|
||||||
|
|
||||||
# enable debug if --enable-debug is set in configure
|
# enable debug if --enable-debug is set in configure
|
||||||
if DEBUG
|
if DEBUG
|
||||||
|
@ -306,56 +121,11 @@ endif
|
||||||
|
|
||||||
if USE_PROFILING
|
if USE_PROFILING
|
||||||
AM_CXXFLAGS += -pg
|
AM_CXXFLAGS += -pg
|
||||||
libgtsam_la_CPPFLAGS += -pg
|
|
||||||
AM_LDFLAGS += -pg
|
AM_LDFLAGS += -pg
|
||||||
libgtsam_la_LDFLAGS += -pg
|
|
||||||
endif
|
|
||||||
|
|
||||||
# install the header files
|
|
||||||
include_HEADERS = $(headers)
|
|
||||||
|
|
||||||
AM_CXXFLAGS += -I..
|
|
||||||
AM_LDFLAGS += -L../CppUnitLite -lCppUnitLite $(BOOST_LDFLAGS) $(boost_serialization)
|
|
||||||
|
|
||||||
# adding cblas implementation - split into a default linux version using the
|
|
||||||
# autotools script, and a mac version that is hardcoded
|
|
||||||
# NOTE: the GT_USE_CBLAS is just used as a means of detecting when blas is available
|
|
||||||
if USE_BLAS_LINUX
|
|
||||||
AM_CXXFLAGS += -DGT_USE_CBLAS
|
|
||||||
libgtsam_la_CPPFLAGS += -DGT_USE_CBLAS
|
|
||||||
AM_LDFLAGS += -lcblas -latlas # If getting from script: $(BLAS_LIBS) $(LIBS) $(FLIBS)
|
|
||||||
libgtsam_la_LDFLAGS += -lcblas -latlas # $(BLAS_LIBS) $(LIBS) $(FLIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if USE_BLAS_MACOS
|
|
||||||
AM_CXXFLAGS += -DGT_USE_CBLAS
|
|
||||||
endif
|
|
||||||
|
|
||||||
if USE_LAPACK_LINUX
|
|
||||||
AM_CXXFLAGS += -I/usr/include
|
|
||||||
AM_LDFLAGS += -llapack
|
|
||||||
libgtsam_la_LDFLAGS += -llapack
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if USE_LAPACK
|
if USE_LAPACK
|
||||||
AM_LDFLAGS += -L../spqr_mini -lspqr_mini
|
|
||||||
libgtsam_la_LDFLAGS += -L../spqr_mini -lspqr_mini
|
|
||||||
AM_CXXFLAGS += -DGT_USE_LAPACK
|
AM_CXXFLAGS += -DGT_USE_LAPACK
|
||||||
|
LDADD += ../spqr_mini/libspqr_mini.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if USE_VECLIB_MACOS
|
|
||||||
AM_CXXFLAGS += -DYA_BLAS -DYA_LAPACK -DYA_BLASMULT -I/System/Library/Frameworks/vecLib.framework/Headers
|
|
||||||
libgtsam_la_CPPFLAGS += -DGT_USE_CBLAS -DYA_BLAS -DYA_LAPACK -DYA_BLASMULT -I/System/Library/Frameworks/vecLib.framework/Headers
|
|
||||||
AM_LDFLAGS += -lcblas -latlas
|
|
||||||
libgtsam_la_LDFLAGS += -framework vecLib -lcblas -latlas
|
|
||||||
endif
|
|
||||||
|
|
||||||
TESTS = $(check_PROGRAMS)
|
|
||||||
CXXLINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
|
|
||||||
$(CXXLD) -g $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
|
||||||
-o $@ # CXXLINK is only used for unit tests
|
|
||||||
|
|
||||||
# rule to run an executable
|
|
||||||
%.run: % libgtsam.la
|
|
||||||
./$^
|
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <boost/format.hpp>
|
#include <boost/format.hpp>
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
#include "Point2.h"
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "SymbolicFactorGraph.h"
|
#include "SymbolicFactorGraph.h"
|
||||||
#include "SymbolicBayesNet.h"
|
#include "SymbolicBayesNet.h"
|
||||||
|
@ -20,8 +19,6 @@ using namespace std;
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
INSTANTIATE_LIE_CONFIG(Symbol, Point2)
|
|
||||||
|
|
||||||
// Explicitly instantiate so we don't have to include everywhere
|
// Explicitly instantiate so we don't have to include everywhere
|
||||||
template class FactorGraph<SymbolicFactor>;
|
template class FactorGraph<SymbolicFactor>;
|
||||||
|
|
||||||
|
@ -52,39 +49,5 @@ namespace gtsam {
|
||||||
return eliminate(ordering);
|
return eliminate(ordering);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
void saveGraph(const SymbolicFactorGraph& fg, const SymbolicConfig& config, const std::string& s) {
|
|
||||||
|
|
||||||
Symbol key;
|
|
||||||
Point2 pt;
|
|
||||||
float scale = 100;
|
|
||||||
|
|
||||||
string dotfile = s + ".dot";
|
|
||||||
ofstream of(dotfile.c_str());
|
|
||||||
of << "graph G{" << endl;
|
|
||||||
of << "bgcolor=\"transparent\";" << endl;
|
|
||||||
|
|
||||||
BOOST_FOREACH(boost::tie(key, pt), config){
|
|
||||||
of << (string)key << "[label=\"" << (string)key << "\"][pos=\"" << pt.x()*scale << "," << pt.y()*scale << "\"];" << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
int index = 0;
|
|
||||||
BOOST_FOREACH(const SymbolicFactorGraph::sharedFactor& factor, fg) {
|
|
||||||
index++;
|
|
||||||
Point2 center;
|
|
||||||
BOOST_FOREACH(const Symbol& key, factor->keys())
|
|
||||||
center = center + config[key];
|
|
||||||
center = Point2(center.x() / factor->keys().size(), center.y() / factor->keys().size());
|
|
||||||
of << "f" << index << "[pos=\"" << center.x()*scale << "," << center.y()*scale << "\"][shape=\"point\"];" << endl;
|
|
||||||
BOOST_FOREACH(const Symbol& key, factor->keys())
|
|
||||||
of << "f" << index << "--" << (string)key << endl;
|
|
||||||
}
|
|
||||||
of<<"}";
|
|
||||||
of.close();
|
|
||||||
|
|
||||||
string cmd = boost::str(boost::format("neato -s -n -Tpdf %s -o %s.pdf") % dotfile % s);
|
|
||||||
system(cmd.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,7 @@
|
||||||
* Author: Frank Dellaert
|
* Author: Frank Dellaert
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SYMBOLICFACTORGRAPH_H_
|
#pragma once
|
||||||
#define SYMBOLICFACTORGRAPH_H_
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
@ -18,10 +17,6 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
class Point2;
|
|
||||||
|
|
||||||
typedef LieConfig<Symbol, Point2> SymbolicConfig;
|
|
||||||
|
|
||||||
class SymbolicConditional;
|
class SymbolicConditional;
|
||||||
|
|
||||||
/** Symbolic Factor Graph */
|
/** Symbolic Factor Graph */
|
||||||
|
@ -87,8 +82,4 @@ namespace gtsam {
|
||||||
SymbolicBayesNet eliminateFrontals(const Ordering& ordering);
|
SymbolicBayesNet eliminateFrontals(const Ordering& ordering);
|
||||||
};
|
};
|
||||||
|
|
||||||
// save graph to the graphviz format
|
} // namespace gtsam
|
||||||
void saveGraph(const SymbolicFactorGraph& fg, const SymbolicConfig& config, const std::string& s);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* SYMBOLICFACTORGRAPH_H_ */
|
|
||||||
|
|
44
cpp/Value.h
44
cpp/Value.h
|
@ -1,44 +0,0 @@
|
||||||
/**
|
|
||||||
* @file Value.h
|
|
||||||
* @brief Abstract base class for values that can be updated using exmap
|
|
||||||
* @author Frank Dellaert
|
|
||||||
*/
|
|
||||||
|
|
||||||
// \callgraph
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Vector.h"
|
|
||||||
#include "Testable.h"
|
|
||||||
|
|
||||||
namespace gtsam {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The value class should be templated with the derived class, e.g.
|
|
||||||
* class Rot3 : public Value<Rot3>. This allows us to define the
|
|
||||||
* return type of exmap as a Rot3 as well.
|
|
||||||
*/
|
|
||||||
template <class Derived> class Value : public Testable<Derived> {
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
const size_t dim_; // dimensionality of tangent space, e.g. 3 for Rot3
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
Value(size_t dim) : dim_ (dim) {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* dimensionality of tangent space, e.g. 3 for Rot3
|
|
||||||
*/
|
|
||||||
size_t dim() { return dim_;}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exponential map: add a delta vector, addition for most simple
|
|
||||||
* types, but fully exponential map for types such as Rot3, which
|
|
||||||
* takes a 3-dim delta vector to update a 9-dim representation.
|
|
||||||
* equality up to tolerance
|
|
||||||
*/
|
|
||||||
virtual Derived exmap(const Vector& delta) const = 0;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
#include <boost/graph/breadth_first_search.hpp>
|
#include <boost/graph/breadth_first_search.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
|
||||||
# Visual Studio 2008
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtsam", "gtsam.vcproj", "{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
362
cpp/gtsam.vcproj
362
cpp/gtsam.vcproj
|
@ -1,362 +0,0 @@
|
||||||
<?xml version="1.0" encoding="gb2312"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="9.00"
|
|
||||||
Name="gtsam"
|
|
||||||
ProjectGUID="{8AC1F57D-77D6-4B79-B50C-2508F076EBA3}"
|
|
||||||
RootNamespace="gtsam"
|
|
||||||
Keyword="Win32Proj"
|
|
||||||
TargetFrameworkVersion="196613"
|
|
||||||
>
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"
|
|
||||||
/>
|
|
||||||
</Platforms>
|
|
||||||
<ToolFiles>
|
|
||||||
</ToolFiles>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
|
||||||
ConfigurationType="4"
|
|
||||||
CharacterSet="2"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""$(BOOST_DIR)""
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
|
|
||||||
MinimalRebuild="true"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="3"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLibrarianTool"
|
|
||||||
OutputFile="$(ProjectDir)\$(ConfigurationName)\lib$(ProjectName).lib"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
CommandLine="mkdir $(ProjectDir)\..\..\..\libs\;
copy $(ProjectDir)\$(ConfigurationName)\lib$(ProjectName).lib $(ProjectDir)\..\..\..\libs\;
mkdir $(ProjectDir)\..\..\..\include\;
mkdir $(ProjectDir)\..\..\..\include\gtsam\;
copy $(ProjectDir)\*.h $(ProjectDir)\..\..\..\include\gtsam\;
"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
|
||||||
ConfigurationType="2"
|
|
||||||
CharacterSet="1"
|
|
||||||
WholeProgramOptimization="1"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
EnableIntrinsicFunctions="true"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GTSAM_EXPORTS"
|
|
||||||
RuntimeLibrary="2"
|
|
||||||
EnableFunctionLevelLinking="true"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
LinkIncremental="1"
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
SubSystem="2"
|
|
||||||
OptimizeReferences="2"
|
|
||||||
EnableCOMDATFolding="2"
|
|
||||||
TargetMachine="1"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\cal3_S2.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\chordalBayesNet.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\conditionalGaussian.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\factorGraph.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\fgConfig.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\linearFactor.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\linearFactorGraph.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\matrix.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\nonlinearFactor.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\nonlinearFactorGraph.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\numericalDerivative.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ordering.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Point2.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Point3.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Pose3.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Rot3.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\simulated2D.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\smallExample.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\svdcmp.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\vector.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\cal3_S2.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\chordalBayesNet.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\conditionalGaussian.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\factor.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\factorGraph.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\fgConfig.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\gtsam.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\linearFactor.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\linearFactorGraph.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\LinearFactorSet.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\matrix.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\nonlinearFactor.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\nonlinearFactorGraph.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\numericalDerivative.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ordering.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Point2.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Point3.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Pose3.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Rot3.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\simulated2D.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\smallExample.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\svdcmp.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Value.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\vector.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
|
||||||
>
|
|
||||||
</Filter>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Makefile"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
139
cpp/manual.mk
139
cpp/manual.mk
|
@ -1,139 +0,0 @@
|
||||||
# Makefile for gtsam/cpp
|
|
||||||
# Author Frank Dellaert
|
|
||||||
|
|
||||||
# on the Mac, libtool is called glibtool :-(
|
|
||||||
# documentation see /opt/local/share/doc/libtool-1.5.26/manual.html
|
|
||||||
ifeq ($(shell uname),Darwin)
|
|
||||||
LIBTOOL = glibtool
|
|
||||||
else
|
|
||||||
LIBTOOL = libtool
|
|
||||||
endif
|
|
||||||
|
|
||||||
INSTALL = install
|
|
||||||
|
|
||||||
# C++ flags
|
|
||||||
CXXFLAGS += -isystem $(BOOST_DIR) -O5
|
|
||||||
CXXFLAGS += -DBOOST_UBLAS_NDEBUG
|
|
||||||
|
|
||||||
# specify the source files
|
|
||||||
# basic
|
|
||||||
sources = Vector.cpp svdcmp.cpp Matrix.cpp numericalDerivative.cpp Ordering.cpp
|
|
||||||
# nodes
|
|
||||||
sources += FGConfig.cpp GaussianFactor.cpp ConditionalGaussian.cpp NonlinearFactor.cpp
|
|
||||||
# graphs
|
|
||||||
sources += FactorGraph.cpp GaussianFactorGraph.cpp NonlinearFactorGraph.cpp ChordalBayesNet.cpp
|
|
||||||
# geometry
|
|
||||||
sources += Point2.cpp Point3.cpp Rot3.cpp Pose3.cpp Cal3_S2.cpp
|
|
||||||
|
|
||||||
# The header files will be installed in ~/include/gtsam
|
|
||||||
headers = Value.h factor.h linearfactorset.h $(sources:.cpp=.h)
|
|
||||||
|
|
||||||
# conventional object files
|
|
||||||
object_files = $(sources:.cpp=.o)
|
|
||||||
|
|
||||||
# For libtool to build a shared library, we need "shared" object files with extension .lo
|
|
||||||
shared_object_files = $(sources:.cpp=.lo)
|
|
||||||
|
|
||||||
# rule for shared compiling shared_object_files
|
|
||||||
%.lo: %.o
|
|
||||||
|
|
||||||
# rule for shared compiling shared_object_files
|
|
||||||
%.lo: %.cpp
|
|
||||||
$(LIBTOOL) --tag=CXX --mode=compile $(COMPILE.cpp) $(OUTPUT_OPTION) $<
|
|
||||||
|
|
||||||
# library version
|
|
||||||
current = 0 # The most recent interface number that this library implements.
|
|
||||||
revision = 0 # The implementation number of the current interface
|
|
||||||
age = 0 # The difference between the newest and oldest interfaces that \
|
|
||||||
this library implements. In other words, the library implements all \
|
|
||||||
the interface numbers in the range from number current - age to \
|
|
||||||
current.
|
|
||||||
# from libtool manual:
|
|
||||||
# Here are a set of rules to help you update your library version information:
|
|
||||||
# Start with version information of ‘0:0:0’ for each libtool library.
|
|
||||||
# Update the version information only immediately before a public release of your software.
|
|
||||||
# If the library source code has changed at all since the last update, then increment revision
|
|
||||||
# If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
|
|
||||||
# If any interfaces have been added since the last public release, then increment age.
|
|
||||||
# If any interfaces have been removed since the last public release, then set age to 0.
|
|
||||||
version = $(current):$(revision):$(age)
|
|
||||||
|
|
||||||
# this builds the shared library
|
|
||||||
# note that libgtsam.la is the libtool target
|
|
||||||
# the actual library is built in the hidden subdirectory .libs
|
|
||||||
libgtsam.la : $(shared_object_files)
|
|
||||||
$(LIBTOOL) --tag=CXX --mode=link g++ -version-info $(version) -o libgtsam.la -rpath $(HOME)/lib $(shared_object_files)
|
|
||||||
|
|
||||||
# shortcut
|
|
||||||
lib: libgtsam.la
|
|
||||||
|
|
||||||
# this builds the static library (used for unit testing)
|
|
||||||
# object files will be only ones remade if a file is touched because deps broken
|
|
||||||
libgtsam.a : $(shared_object_files) $(object_files)
|
|
||||||
$(LIBTOOL) --tag=CXX --mode=link g++ -o libgtsam.a -static $(HOME)/lib $(shared_object_files)
|
|
||||||
|
|
||||||
# and this installs the shared library
|
|
||||||
install: libgtsam.la
|
|
||||||
$(INSTALL) -d $(HOME)/include/gtsam
|
|
||||||
rm -f $(HOME)/include/gtsam/typedefs.h
|
|
||||||
cp -f $(headers) $(HOME)/include/gtsam
|
|
||||||
$(LIBTOOL) --mode=install cp libgtsam.la $(HOME)/lib/libgtsam.la
|
|
||||||
|
|
||||||
# create the MATLAB toolbox
|
|
||||||
interfacePath = .
|
|
||||||
moduleName = gtsam
|
|
||||||
toolboxpath = $(HOME)/toolbox/gtsam
|
|
||||||
mexFlags = "-I$(BOOST_DIR) -I$(HOME)/include -I$(HOME)/include/gtsam -L$(HOME)/lib -lgtsam"
|
|
||||||
matlab:
|
|
||||||
wrap $(interfacePath) $(moduleName) $(toolboxpath) $(mexFlags)
|
|
||||||
|
|
||||||
# unit tests
|
|
||||||
unit-tests = $(shell ls test*.cpp)
|
|
||||||
unit-tests: $(unit-tests:.cpp=.run)
|
|
||||||
|
|
||||||
# timing tests
|
|
||||||
timing-tests = $(shell ls time*.cpp)
|
|
||||||
timing-tests: $(timing-tests:.cpp=.run)
|
|
||||||
|
|
||||||
# local executables are for testing and timing
|
|
||||||
executables = $(unit-tests:.cpp=) $(timing-tests:.cpp=)
|
|
||||||
|
|
||||||
# link flags
|
|
||||||
INCDIR ?= $(HOME)/include
|
|
||||||
LIBDIR ?= $(HOME)/lib
|
|
||||||
$(executables) : simulated2D.o smallExample.o libgtsam.a
|
|
||||||
$(executables) : LDFLAGS += -I. -I$(INCDIR)
|
|
||||||
$(executables) : LDLIBS += libgtsam.a -L$(LIBDIR) -lCppUnitLite
|
|
||||||
|
|
||||||
tests: unit-tests timing-tests
|
|
||||||
clean-tests:
|
|
||||||
-rm -rf $(executables)
|
|
||||||
|
|
||||||
# make a version of timeGaussianFactor instrumented for Saturn profiler
|
|
||||||
saturn: timeGaussianFactor
|
|
||||||
saturn: CXXFLAGS += -finstrument-functions
|
|
||||||
saturn: LDLIBS += -lSaturn
|
|
||||||
|
|
||||||
# rule to run an executable
|
|
||||||
%.run: %
|
|
||||||
./$^
|
|
||||||
|
|
||||||
# clean will remove the hidden .libs directory by libtool as well
|
|
||||||
clean: clean-tests
|
|
||||||
-rm -rf *.d *.o *.lo *.a *.la .libs *.dSYM
|
|
||||||
|
|
||||||
.PHONY: clean clean-tests unit-tests timing-tests matlab deps
|
|
||||||
|
|
||||||
# dependecy generation as described in
|
|
||||||
# http://www.wlug.org.nz/MakefileHowto
|
|
||||||
all-sources = $(sources) smallExample.cpp simulated2D.cpp
|
|
||||||
|
|
||||||
# when building object files, -MMD specifies dependency generation into .d files
|
|
||||||
(all-sources:.cpp=.o): CXXFLAGS += -MMD
|
|
||||||
|
|
||||||
deps := $(all-sources:.cpp=.d)
|
|
||||||
deps: $(all-sources)
|
|
||||||
$(CXX) -MMD -E $(CXXFLAGS) -I. -I$(INCDIR) $(all-sources) > /dev/null
|
|
||||||
|
|
||||||
-include $(deps)
|
|
||||||
|
|
|
@ -11,13 +11,11 @@
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "smallExample.h"
|
|
||||||
#include "BayesNetPreconditioner.h"
|
#include "BayesNetPreconditioner.h"
|
||||||
#include "iterative-inl.h"
|
#include "iterative-inl.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( BayesNetPreconditioner, operators )
|
TEST( BayesNetPreconditioner, operators )
|
||||||
|
@ -62,68 +60,6 @@ TEST( BayesNetPreconditioner, operators )
|
||||||
CHECK(assert_equal(expected2,actual2));
|
CHECK(assert_equal(expected2,actual2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( BayesNetPreconditioner, conjugateGradients )
|
|
||||||
{
|
|
||||||
// Build a planar graph
|
|
||||||
GaussianFactorGraph Ab;
|
|
||||||
VectorConfig xtrue;
|
|
||||||
size_t N = 3;
|
|
||||||
boost::tie(Ab, xtrue) = planarGraph(N); // A*x-b
|
|
||||||
|
|
||||||
// Get the spanning tree and corresponding ordering
|
|
||||||
GaussianFactorGraph Ab1, Ab2; // A1*x-b1 and A2*x-b2
|
|
||||||
boost::tie(Ab1, Ab2) = splitOffPlanarTree(N, Ab);
|
|
||||||
|
|
||||||
// Eliminate the spanning tree to build a prior
|
|
||||||
Ordering ordering = planarOrdering(N);
|
|
||||||
GaussianBayesNet Rc1 = Ab1.eliminate(ordering); // R1*x-c1
|
|
||||||
VectorConfig xbar = optimize(Rc1); // xbar = inv(R1)*c1
|
|
||||||
|
|
||||||
// Create BayesNet-preconditioned system
|
|
||||||
BayesNetPreconditioner system(Ab,Rc1);
|
|
||||||
|
|
||||||
// Create zero config y0 and perturbed config y1
|
|
||||||
VectorConfig y0;
|
|
||||||
Vector z2 = zero(2);
|
|
||||||
BOOST_FOREACH(const Symbol& j, ordering) y0.insert(j,z2);
|
|
||||||
|
|
||||||
VectorConfig y1 = y0;
|
|
||||||
y1["x2003"] = Vector_(2, 1.0, -1.0);
|
|
||||||
VectorConfig x1 = system.x(y1);
|
|
||||||
|
|
||||||
// Check gradient for y0
|
|
||||||
VectorConfig expectedGradient0;
|
|
||||||
expectedGradient0.insert("x1001", Vector_(2,-1000.,-1000.));
|
|
||||||
expectedGradient0.insert("x1002", Vector_(2, 0., -300.));
|
|
||||||
expectedGradient0.insert("x1003", Vector_(2, 0., -300.));
|
|
||||||
expectedGradient0.insert("x2001", Vector_(2, -100., 200.));
|
|
||||||
expectedGradient0.insert("x2002", Vector_(2, -100., 0.));
|
|
||||||
expectedGradient0.insert("x2003", Vector_(2, -100., -200.));
|
|
||||||
expectedGradient0.insert("x3001", Vector_(2, -100., 100.));
|
|
||||||
expectedGradient0.insert("x3002", Vector_(2, -100., 0.));
|
|
||||||
expectedGradient0.insert("x3003", Vector_(2, -100., -100.));
|
|
||||||
VectorConfig actualGradient0 = system.gradient(y0);
|
|
||||||
CHECK(assert_equal(expectedGradient0,actualGradient0));
|
|
||||||
#ifdef VECTORBTREE
|
|
||||||
CHECK(actualGradient0.cloned(y0));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Solve using PCG
|
|
||||||
bool verbose = false;
|
|
||||||
double epsilon = 1e-6; // had to crank this down !!!
|
|
||||||
size_t maxIterations = 100;
|
|
||||||
VectorConfig actual_y = gtsam::conjugateGradients<BayesNetPreconditioner,
|
|
||||||
VectorConfig, Errors>(system, y1, verbose, epsilon, epsilon, maxIterations);
|
|
||||||
VectorConfig actual_x = system.x(actual_y);
|
|
||||||
CHECK(assert_equal(xtrue,actual_x));
|
|
||||||
|
|
||||||
// Compare with non preconditioned version:
|
|
||||||
VectorConfig actual2 = conjugateGradientDescent(Ab, x1, verbose, epsilon,
|
|
||||||
maxIterations);
|
|
||||||
CHECK(assert_equal(xtrue,actual2));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() {
|
int main() {
|
||||||
TestResult tr;
|
TestResult tr;
|
||||||
|
|
|
@ -15,7 +15,6 @@ using namespace boost::assign;
|
||||||
#include "SymbolicFactorGraph.h"
|
#include "SymbolicFactorGraph.h"
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "BayesTree-inl.h"
|
#include "BayesTree-inl.h"
|
||||||
#include "smallExample.h"
|
|
||||||
#include "IndexTable.h"
|
#include "IndexTable.h"
|
||||||
|
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
|
|
|
@ -24,7 +24,6 @@ using namespace boost::assign;
|
||||||
|
|
||||||
#include "BinaryConditional.h"
|
#include "BinaryConditional.h"
|
||||||
#include "BayesNet-inl.h"
|
#include "BayesNet-inl.h"
|
||||||
#include "smallExample.h"
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "SymbolMap.h"
|
#include "SymbolMap.h"
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
#include <Ordering.h>
|
#include <Ordering.h>
|
||||||
#include <ConstraintOptimizer.h>
|
#include <ConstraintOptimizer.h>
|
||||||
#include <smallExample.h>
|
|
||||||
|
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
|
@ -23,7 +22,6 @@ using namespace boost::assign;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
// Example of a single Constrained QP problem from the matlab testCQP.m file.
|
// Example of a single Constrained QP problem from the matlab testCQP.m file.
|
||||||
|
@ -382,83 +380,6 @@ TEST( matrix, line_search ) {
|
||||||
CHECK(final_error <= init_error);
|
CHECK(final_error <= init_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( matrix, unconstrained_fg_ata ) {
|
|
||||||
// create a graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
Matrix A; Vector b;
|
|
||||||
Ordering ordering;
|
|
||||||
ordering += Symbol('l', 1), Symbol('x', 1), Symbol('x', 2);
|
|
||||||
boost::tie(A, b) = fg.matrix(ordering);
|
|
||||||
Matrix B_ata = prod(trans(A), A);
|
|
||||||
|
|
||||||
// solve subproblem
|
|
||||||
Vector actual = solve_ldl(B_ata, prod(trans(A), b));
|
|
||||||
|
|
||||||
// verify
|
|
||||||
Vector expected = createCorrectDelta().vector();
|
|
||||||
CHECK(assert_equal(expected,actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///* ************************************************************************* */
|
|
||||||
//TEST( matrix, unconstrained_fg ) {
|
|
||||||
// // create a graph
|
|
||||||
// GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
//
|
|
||||||
// Matrix A; Vector b;
|
|
||||||
// Ordering ordering;
|
|
||||||
// ordering += Symbol('l', 1), Symbol('x', 1), Symbol('x', 2);
|
|
||||||
// boost::tie(A, b) = fg.matrix(ordering);
|
|
||||||
// Matrix B_ata = prod(trans(A), A);
|
|
||||||
//// print(B_ata, "B_ata");
|
|
||||||
//// print(b, " b");
|
|
||||||
//
|
|
||||||
// // parameters
|
|
||||||
// size_t maxIt = 50;
|
|
||||||
// double stepsize = 0.1;
|
|
||||||
//
|
|
||||||
// // iterate to solve
|
|
||||||
// VectorConfig x = createZeroDelta();
|
|
||||||
// BFGSEstimator B(x.dim());
|
|
||||||
//
|
|
||||||
// Vector step;
|
|
||||||
//
|
|
||||||
// for (size_t i=0; i<maxIt; ++i) {
|
|
||||||
//// cout << "Error at Iteration: " << i << " is " << fg.error(x) << endl;
|
|
||||||
//
|
|
||||||
// // find the gradient
|
|
||||||
// Vector dfx = fg.gradient(x).vector();
|
|
||||||
//// print(dfx, " dfx");
|
|
||||||
// CHECK(assert_equal(-1.0 * prod(trans(A), b - A*x.vector()), dfx));
|
|
||||||
//
|
|
||||||
// // update hessian
|
|
||||||
// if (i>0) {
|
|
||||||
// B.update(dfx, step);
|
|
||||||
// } else {
|
|
||||||
// B.update(dfx);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // solve subproblem
|
|
||||||
//// print(B.getB(), " B_bfgs");
|
|
||||||
// Vector delta = solve_ldl(B.getB(), -dfx);
|
|
||||||
//// Vector delta = solve_ldl(B_ata, -dfx);
|
|
||||||
//
|
|
||||||
//// print(delta, " delta");
|
|
||||||
//
|
|
||||||
// // update
|
|
||||||
// step = stepsize * delta;
|
|
||||||
//// step = linesearch(x, delta, penalty); // TODO: switch here
|
|
||||||
// x = expmap(x, step);
|
|
||||||
//// print(step, " step");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // verify
|
|
||||||
// VectorConfig expected = createCorrectDelta();
|
|
||||||
// CHECK(assert_equal(expected,x, 1e-4));
|
|
||||||
//}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
int main() { TestResult tr; return TestRegistry::runAllTests(tr); }
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -21,11 +21,9 @@ using namespace boost::assign;
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "GaussianConditional.h"
|
#include "GaussianConditional.h"
|
||||||
#include "inference-inl.h"
|
#include "inference-inl.h"
|
||||||
#include "smallExample.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
using namespace boost;
|
using namespace boost;
|
||||||
|
|
||||||
static SharedDiagonal
|
static SharedDiagonal
|
||||||
|
@ -33,22 +31,6 @@ static SharedDiagonal
|
||||||
constraintModel = noiseModel::Constrained::All(2);
|
constraintModel = noiseModel::Constrained::All(2);
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( GaussianFactor, linearFactor )
|
|
||||||
{
|
|
||||||
Matrix I = eye(2);
|
|
||||||
Vector b = Vector_(2, 2.0, -1.0);
|
|
||||||
GaussianFactor expected("x1", -10*I,"x2", 10*I, b, noiseModel::Unit::Create(2));
|
|
||||||
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the factor "f2" from the factor graph
|
|
||||||
GaussianFactor::shared_ptr lf = fg[1];
|
|
||||||
|
|
||||||
// check if the two factors are the same
|
|
||||||
CHECK(assert_equal(expected,*lf));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST( GaussianFactor, constructor)
|
TEST( GaussianFactor, constructor)
|
||||||
{
|
{
|
||||||
Vector b = Vector_(3, 1., 2., 3.);
|
Vector b = Vector_(3, 1., 2., 3.);
|
||||||
|
@ -92,101 +74,6 @@ TEST( GaussianFactor, operators )
|
||||||
CHECK(assert_equal(expectedX2,x));
|
CHECK(assert_equal(expectedX2,x));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, keys )
|
|
||||||
{
|
|
||||||
// get the factor "f2" from the small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
GaussianFactor::shared_ptr lf = fg[1];
|
|
||||||
list<Symbol> expected;
|
|
||||||
expected.push_back("x1");
|
|
||||||
expected.push_back("x2");
|
|
||||||
CHECK(lf->keys() == expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, dimensions )
|
|
||||||
{
|
|
||||||
// get the factor "f2" from the small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// Check a single factor
|
|
||||||
Dimensions expected;
|
|
||||||
insert(expected)("x1", 2)("x2", 2);
|
|
||||||
Dimensions actual = fg[1]->dimensions();
|
|
||||||
CHECK(expected==actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, getDim )
|
|
||||||
{
|
|
||||||
// get a factor
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
GaussianFactor::shared_ptr factor = fg[0];
|
|
||||||
|
|
||||||
// get the size of a variable
|
|
||||||
size_t actual = factor->getDim("x1");
|
|
||||||
|
|
||||||
// verify
|
|
||||||
size_t expected = 2;
|
|
||||||
CHECK(actual == expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, combine )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get two factors from it and insert the factors into a vector
|
|
||||||
vector<GaussianFactor::shared_ptr> lfg;
|
|
||||||
lfg.push_back(fg[4 - 1]);
|
|
||||||
lfg.push_back(fg[2 - 1]);
|
|
||||||
|
|
||||||
// combine in a factor
|
|
||||||
GaussianFactor combined(lfg);
|
|
||||||
|
|
||||||
// sigmas
|
|
||||||
double sigma2 = 0.1;
|
|
||||||
double sigma4 = 0.2;
|
|
||||||
Vector sigmas = Vector_(4, sigma4, sigma4, sigma2, sigma2);
|
|
||||||
|
|
||||||
// the expected combined linear factor
|
|
||||||
Matrix Ax2 = Matrix_(4, 2, // x2
|
|
||||||
-5., 0.,
|
|
||||||
+0., -5.,
|
|
||||||
10., 0.,
|
|
||||||
+0., 10.);
|
|
||||||
|
|
||||||
Matrix Al1 = Matrix_(4, 2, // l1
|
|
||||||
5., 0.,
|
|
||||||
0., 5.,
|
|
||||||
0., 0.,
|
|
||||||
0., 0.);
|
|
||||||
|
|
||||||
Matrix Ax1 = Matrix_(4, 2, // x1
|
|
||||||
0.00, 0., // f4
|
|
||||||
0.00, 0., // f4
|
|
||||||
-10., 0., // f2
|
|
||||||
0.00, -10. // f2
|
|
||||||
);
|
|
||||||
|
|
||||||
// the RHS
|
|
||||||
Vector b2(4);
|
|
||||||
b2(0) = -1.0;
|
|
||||||
b2(1) = 1.5;
|
|
||||||
b2(2) = 2.0;
|
|
||||||
b2(3) = -1.0;
|
|
||||||
|
|
||||||
// use general constructor for making arbitrary factors
|
|
||||||
vector<pair<Symbol, Matrix> > meas;
|
|
||||||
meas.push_back(make_pair("x2", Ax2));
|
|
||||||
meas.push_back(make_pair("l1", Al1));
|
|
||||||
meas.push_back(make_pair("x1", Ax1));
|
|
||||||
GaussianFactor expected(meas, b2, noiseModel::Diagonal::Sigmas(ones(4)));
|
|
||||||
CHECK(assert_equal(expected,combined));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( NonlinearFactorGraph, combine2){
|
TEST( NonlinearFactorGraph, combine2){
|
||||||
double sigma1 = 0.0957;
|
double sigma1 = 0.0957;
|
||||||
|
@ -304,65 +191,6 @@ TEST( GaussianFactor, linearFactorN){
|
||||||
CHECK(assert_equal(expected,combinedFactor));
|
CHECK(assert_equal(expected,combinedFactor));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, error )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the first factor from the factor graph
|
|
||||||
GaussianFactor::shared_ptr lf = fg[0];
|
|
||||||
|
|
||||||
// check the error of the first factor with noisy config
|
|
||||||
VectorConfig cfg = createZeroDelta();
|
|
||||||
|
|
||||||
// calculate the error from the factor "f1"
|
|
||||||
// note the error is the same as in testNonlinearFactor
|
|
||||||
double actual = lf->error(cfg);
|
|
||||||
DOUBLES_EQUAL( 1.0, actual, 0.00000001 );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, eliminate )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get two factors from it and insert the factors into a vector
|
|
||||||
vector<GaussianFactor::shared_ptr> lfg;
|
|
||||||
lfg.push_back(fg[4 - 1]);
|
|
||||||
lfg.push_back(fg[2 - 1]);
|
|
||||||
|
|
||||||
// combine in a factor
|
|
||||||
GaussianFactor combined(lfg);
|
|
||||||
|
|
||||||
// eliminate the combined factor
|
|
||||||
GaussianConditional::shared_ptr actualCG;
|
|
||||||
GaussianFactor::shared_ptr actualLF;
|
|
||||||
boost::tie(actualCG,actualLF) = combined.eliminate("x2");
|
|
||||||
|
|
||||||
// create expected Conditional Gaussian
|
|
||||||
Matrix I = eye(2)*sqrt(125.0);
|
|
||||||
Matrix R11 = I, S12 = -0.2*I, S13 = -0.8*I;
|
|
||||||
Vector d = I*Vector_(2,0.2,-0.14);
|
|
||||||
|
|
||||||
// Check the conditional Gaussian
|
|
||||||
GaussianConditional
|
|
||||||
expectedCG("x2", d, R11, "l1", S12, "x1", S13, repeat(2, 1.0));
|
|
||||||
|
|
||||||
// the expected linear factor
|
|
||||||
I = eye(2)/0.2236;
|
|
||||||
Matrix Bl1 = I, Bx1 = -I;
|
|
||||||
Vector b1 = I*Vector_(2,0.0,0.2);
|
|
||||||
|
|
||||||
GaussianFactor expectedLF("l1", Bl1, "x1", Bx1, b1, repeat(2,1.0));
|
|
||||||
|
|
||||||
// check if the result matches
|
|
||||||
CHECK(assert_equal(expectedCG,*actualCG,1e-3));
|
|
||||||
CHECK(assert_equal(expectedLF,*actualLF,1e-3));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( GaussianFactor, eliminate2 )
|
TEST( GaussianFactor, eliminate2 )
|
||||||
{
|
{
|
||||||
|
@ -470,96 +298,6 @@ TEST( GaussianFactor, empty )
|
||||||
CHECK(f.empty()==true);
|
CHECK(f.empty()==true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, matrix )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the factor "f2" from the factor graph
|
|
||||||
//GaussianFactor::shared_ptr lf = fg[1]; // NOTE: using the older version
|
|
||||||
Vector b2 = Vector_(2, 0.2, -0.1);
|
|
||||||
Matrix I = eye(2);
|
|
||||||
GaussianFactor::shared_ptr lf(new GaussianFactor("x1", -I, "x2", I, b2, sigma0_1));
|
|
||||||
|
|
||||||
// render with a given ordering
|
|
||||||
Ordering ord;
|
|
||||||
ord += "x1","x2";
|
|
||||||
|
|
||||||
// Test whitened version
|
|
||||||
Matrix A_act1; Vector b_act1;
|
|
||||||
boost::tie(A_act1,b_act1) = lf->matrix(ord, true);
|
|
||||||
|
|
||||||
Matrix A1 = Matrix_(2,4,
|
|
||||||
-10.0, 0.0, 10.0, 0.0,
|
|
||||||
000.0,-10.0, 0.0, 10.0 );
|
|
||||||
Vector b1 = Vector_(2, 2.0, -1.0);
|
|
||||||
|
|
||||||
EQUALITY(A_act1,A1);
|
|
||||||
EQUALITY(b_act1,b1);
|
|
||||||
|
|
||||||
// Test unwhitened version
|
|
||||||
Matrix A_act2; Vector b_act2;
|
|
||||||
boost::tie(A_act2,b_act2) = lf->matrix(ord, false);
|
|
||||||
|
|
||||||
|
|
||||||
Matrix A2 = Matrix_(2,4,
|
|
||||||
-1.0, 0.0, 1.0, 0.0,
|
|
||||||
000.0,-1.0, 0.0, 1.0 );
|
|
||||||
//Vector b2 = Vector_(2, 2.0, -1.0);
|
|
||||||
|
|
||||||
EQUALITY(A_act2,A2);
|
|
||||||
EQUALITY(b_act2,b2);
|
|
||||||
|
|
||||||
// Ensure that whitening is consistent
|
|
||||||
shared_ptr<noiseModel::Gaussian> model = lf->get_model();
|
|
||||||
model->WhitenSystem(A_act2, b_act2);
|
|
||||||
EQUALITY(A_act1, A_act2);
|
|
||||||
EQUALITY(b_act1, b_act2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, matrix_aug )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the factor "f2" from the factor graph
|
|
||||||
//GaussianFactor::shared_ptr lf = fg[1];
|
|
||||||
Vector b2 = Vector_(2, 0.2, -0.1);
|
|
||||||
Matrix I = eye(2);
|
|
||||||
GaussianFactor::shared_ptr lf(new GaussianFactor("x1", -I, "x2", I, b2, sigma0_1));
|
|
||||||
|
|
||||||
// render with a given ordering
|
|
||||||
Ordering ord;
|
|
||||||
ord += "x1","x2";
|
|
||||||
|
|
||||||
// Test unwhitened version
|
|
||||||
Matrix Ab_act1;
|
|
||||||
Ab_act1 = lf->matrix_augmented(ord, false);
|
|
||||||
|
|
||||||
Matrix Ab1 = Matrix_(2,5,
|
|
||||||
-1.0, 0.0, 1.0, 0.0, 0.2,
|
|
||||||
00.0,- 1.0, 0.0, 1.0, -0.1 );
|
|
||||||
|
|
||||||
EQUALITY(Ab_act1,Ab1);
|
|
||||||
|
|
||||||
// Test whitened version
|
|
||||||
Matrix Ab_act2;
|
|
||||||
Ab_act2 = lf->matrix_augmented(ord, true);
|
|
||||||
|
|
||||||
Matrix Ab2 = Matrix_(2,5,
|
|
||||||
-10.0, 0.0, 10.0, 0.0, 2.0,
|
|
||||||
00.0, -10.0, 0.0, 10.0, -1.0 );
|
|
||||||
|
|
||||||
EQUALITY(Ab_act2,Ab2);
|
|
||||||
|
|
||||||
// Ensure that whitening is consistent
|
|
||||||
shared_ptr<noiseModel::Gaussian> model = lf->get_model();
|
|
||||||
model->WhitenInPlace(Ab_act1);
|
|
||||||
EQUALITY(Ab_act1, Ab_act2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
// small aux. function to print out lists of anything
|
// small aux. function to print out lists of anything
|
||||||
template<class T>
|
template<class T>
|
||||||
|
@ -568,80 +306,6 @@ void print(const list<T>& i) {
|
||||||
cout << endl;
|
cout << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, sparse )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the factor "f2" from the factor graph
|
|
||||||
GaussianFactor::shared_ptr lf = fg[1];
|
|
||||||
|
|
||||||
// render with a given ordering
|
|
||||||
Ordering ord;
|
|
||||||
ord += "x1","x2";
|
|
||||||
|
|
||||||
list<int> i,j;
|
|
||||||
list<double> s;
|
|
||||||
boost::tie(i,j,s) = lf->sparse(fg.columnIndices(ord));
|
|
||||||
|
|
||||||
list<int> i1,j1;
|
|
||||||
i1 += 1,2,1,2;
|
|
||||||
j1 += 1,2,3,4;
|
|
||||||
|
|
||||||
list<double> s1;
|
|
||||||
s1 += -10,-10,10,10;
|
|
||||||
|
|
||||||
CHECK(i==i1);
|
|
||||||
CHECK(j==j1);
|
|
||||||
CHECK(s==s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, sparse2 )
|
|
||||||
{
|
|
||||||
// create a small linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get the factor "f2" from the factor graph
|
|
||||||
GaussianFactor::shared_ptr lf = fg[1];
|
|
||||||
|
|
||||||
// render with a given ordering
|
|
||||||
Ordering ord;
|
|
||||||
ord += "x2","l1","x1";
|
|
||||||
|
|
||||||
list<int> i,j;
|
|
||||||
list<double> s;
|
|
||||||
boost::tie(i,j,s) = lf->sparse(fg.columnIndices(ord));
|
|
||||||
|
|
||||||
list<int> i1,j1;
|
|
||||||
i1 += 1,2,1,2;
|
|
||||||
j1 += 5,6,1,2;
|
|
||||||
|
|
||||||
list<double> s1;
|
|
||||||
s1 += -10,-10,10,10;
|
|
||||||
|
|
||||||
CHECK(i==i1);
|
|
||||||
CHECK(j==j1);
|
|
||||||
CHECK(s==s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactor, size )
|
|
||||||
{
|
|
||||||
// create a linear factor graph
|
|
||||||
GaussianFactorGraph fg = createGaussianFactorGraph();
|
|
||||||
|
|
||||||
// get some factors from the graph
|
|
||||||
boost::shared_ptr<GaussianFactor> factor1 = fg[0];
|
|
||||||
boost::shared_ptr<GaussianFactor> factor2 = fg[1];
|
|
||||||
boost::shared_ptr<GaussianFactor> factor3 = fg[2];
|
|
||||||
|
|
||||||
CHECK(factor1->size() == 1);
|
|
||||||
CHECK(factor2->size() == 2);
|
|
||||||
CHECK(factor3->size() == 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( GaussianFactor, tally_separator )
|
TEST( GaussianFactor, tally_separator )
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,6 @@ using namespace boost::assign;
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "GaussianBayesNet.h"
|
#include "GaussianBayesNet.h"
|
||||||
#include "ISAM-inl.h"
|
#include "ISAM-inl.h"
|
||||||
#include "smallExample.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
|
|
|
@ -16,12 +16,10 @@ using namespace boost::assign;
|
||||||
|
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "smallExample.h"
|
|
||||||
#include "JunctionTree-inl.h"
|
#include "JunctionTree-inl.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
/**
|
/**
|
||||||
|
@ -57,44 +55,6 @@ TEST( GaussianFactorGraph, constructor )
|
||||||
LONGS_EQUAL(2, junctionTree.root()->children()[0]->size());
|
LONGS_EQUAL(2, junctionTree.root()->children()[0]->size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* *
|
|
||||||
Bayes tree for smoother with "nested dissection" ordering:
|
|
||||||
C1 x5 x6 x4
|
|
||||||
C2 x3 x2 : x4
|
|
||||||
C3 x1 : x2
|
|
||||||
C4 x7 : x6
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactorGraph, constructor2 )
|
|
||||||
{
|
|
||||||
// create a graph
|
|
||||||
GaussianFactorGraph fg = createSmoother(7);
|
|
||||||
|
|
||||||
// create an ordering
|
|
||||||
Ordering ordering; ordering += "x1","x3","x5","x7","x2","x6","x4";
|
|
||||||
|
|
||||||
GaussianJunctionTree<GaussianFactorGraph> junctionTree(fg, ordering);
|
|
||||||
Ordering frontal1; frontal1 += "x5", "x6", "x4";
|
|
||||||
Ordering frontal2; frontal2 += "x3", "x2";
|
|
||||||
Ordering frontal3; frontal3 += "x1";
|
|
||||||
Ordering frontal4; frontal4 += "x7";
|
|
||||||
Unordered sep1;
|
|
||||||
Unordered sep2; sep2 += "x4";
|
|
||||||
Unordered sep3; sep3 += "x2";
|
|
||||||
Unordered sep4; sep4 += "x6";
|
|
||||||
CHECK(assert_equal(frontal1, junctionTree.root()->frontal()));
|
|
||||||
CHECK(assert_equal(sep1, junctionTree.root()->separator()));
|
|
||||||
LONGS_EQUAL(5, junctionTree.root()->size());
|
|
||||||
CHECK(assert_equal(frontal2, junctionTree.root()->children()[0]->frontal()));
|
|
||||||
CHECK(assert_equal(sep2, junctionTree.root()->children()[0]->separator()));
|
|
||||||
LONGS_EQUAL(4, junctionTree.root()->children()[0]->size());
|
|
||||||
CHECK(assert_equal(frontal3, junctionTree.root()->children()[0]->children()[0]->frontal()));
|
|
||||||
CHECK(assert_equal(sep3, junctionTree.root()->children()[0]->children()[0]->separator()));
|
|
||||||
LONGS_EQUAL(2, junctionTree.root()->children()[0]->children()[0]->size());
|
|
||||||
CHECK(assert_equal(frontal4, junctionTree.root()->children()[1]->frontal()));
|
|
||||||
CHECK(assert_equal(sep4, junctionTree.root()->children()[1]->separator()));
|
|
||||||
LONGS_EQUAL(2, junctionTree.root()->children()[1]->size());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
/**
|
/**
|
||||||
* x1 - x2 - x3 - x4
|
* x1 - x2 - x3 - x4
|
||||||
|
@ -139,25 +99,6 @@ TEST( GaussianFactorGraph, eliminate )
|
||||||
CHECK(assert_equal(bayesTree_expected, bayesTree));
|
CHECK(assert_equal(bayesTree_expected, bayesTree));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* *
|
|
||||||
TEST( GaussianFactorGraph, optimizeMultiFrontal )
|
|
||||||
{
|
|
||||||
// create a graph
|
|
||||||
GaussianFactorGraph fg = createSmoother(7);
|
|
||||||
|
|
||||||
// create an ordering
|
|
||||||
Ordering ordering; ordering += "x1","x3","x5","x7","x2","x6","x4";
|
|
||||||
|
|
||||||
// optimize the graph
|
|
||||||
GaussianJunctionTree<GaussianFactorGraph> junctionTree(fg, ordering);
|
|
||||||
VectorConfig actual = junctionTree.optimize();
|
|
||||||
|
|
||||||
// verify
|
|
||||||
// VectorConfig expected = createCorrectDelta();
|
|
||||||
//
|
|
||||||
// CHECK(assert_equal(expected,actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
int main() { TestResult tr; return TestRegistry::runAllTests(tr);}
|
int main() { TestResult tr; return TestRegistry::runAllTests(tr);}
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
||||||
|
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "Pose2.h"
|
|
||||||
#include "LieConfig-inl.h"
|
#include "LieConfig-inl.h"
|
||||||
#include "Vector.h"
|
#include "Vector.h"
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@ using namespace boost::assign;
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "pose2SLAM.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
|
|
|
@ -13,13 +13,11 @@ using namespace boost::assign;
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "smallExample.h"
|
|
||||||
#include "SymbolicBayesNet.h"
|
#include "SymbolicBayesNet.h"
|
||||||
#include "SymbolicFactorGraph.h"
|
#include "SymbolicFactorGraph.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
|
|
||||||
Symbol _B_('B', 0), _L_('L', 0);
|
Symbol _B_('B', 0), _L_('L', 0);
|
||||||
SymbolicConditional::shared_ptr
|
SymbolicConditional::shared_ptr
|
||||||
|
@ -39,31 +37,6 @@ TEST( SymbolicBayesNet, equals )
|
||||||
CHECK(!f1.equals(f2));
|
CHECK(!f1.equals(f2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( SymbolicBayesNet, constructor )
|
|
||||||
{
|
|
||||||
// Create manually
|
|
||||||
SymbolicConditional::shared_ptr
|
|
||||||
x2(new SymbolicConditional("x2","l1", "x1")),
|
|
||||||
l1(new SymbolicConditional("l1","x1")),
|
|
||||||
x1(new SymbolicConditional("x1"));
|
|
||||||
SymbolicBayesNet expected;
|
|
||||||
expected.push_back(x2);
|
|
||||||
expected.push_back(l1);
|
|
||||||
expected.push_back(x1);
|
|
||||||
|
|
||||||
// Create from a factor graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph fg(factorGraph);
|
|
||||||
|
|
||||||
// eliminate it
|
|
||||||
Ordering ordering;
|
|
||||||
ordering += "x2","l1","x1";
|
|
||||||
SymbolicBayesNet actual = fg.eliminate(ordering);
|
|
||||||
|
|
||||||
CHECK(assert_equal(expected, actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( SymbolicBayesNet, pop_front )
|
TEST( SymbolicBayesNet, pop_front )
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,130 +12,15 @@ using namespace boost::assign;
|
||||||
#define GTSAM_MAGIC_KEY
|
#define GTSAM_MAGIC_KEY
|
||||||
|
|
||||||
#include "Ordering.h"
|
#include "Ordering.h"
|
||||||
#include "smallExample.h"
|
|
||||||
#include "SymbolicFactorGraph.h"
|
#include "SymbolicFactorGraph.h"
|
||||||
#include "SymbolicBayesNet.h"
|
#include "SymbolicBayesNet.h"
|
||||||
#include "FactorGraph-inl.h"
|
#include "FactorGraph-inl.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace gtsam;
|
using namespace gtsam;
|
||||||
using namespace example;
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST( SymbolicFactorGraph, symbolicFactorGraph )
|
TEST( SymbolicFactorGraph, eliminate2 )
|
||||||
{
|
|
||||||
// construct expected symbolic graph
|
|
||||||
SymbolicFactorGraph expected;
|
|
||||||
expected.push_factor("x1");
|
|
||||||
expected.push_factor("x1","x2");
|
|
||||||
expected.push_factor("l1","x1");
|
|
||||||
expected.push_factor("l1","x2");
|
|
||||||
|
|
||||||
// construct it from the factor graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph actual(factorGraph);
|
|
||||||
|
|
||||||
CHECK(assert_equal(expected, actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( SymbolicFactorGraph, findAndRemoveFactors )
|
|
||||||
{
|
|
||||||
// construct it from the factor graph graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph actual(factorGraph);
|
|
||||||
SymbolicFactor::shared_ptr f1 = actual[0];
|
|
||||||
SymbolicFactor::shared_ptr f3 = actual[2];
|
|
||||||
actual.findAndRemoveFactors<SymbolicFactorGraph>("x2");
|
|
||||||
|
|
||||||
// construct expected graph after find_factors_and_remove
|
|
||||||
SymbolicFactorGraph expected;
|
|
||||||
SymbolicFactor::shared_ptr null;
|
|
||||||
expected.push_back(f1);
|
|
||||||
expected.push_back(null);
|
|
||||||
expected.push_back(f3);
|
|
||||||
expected.push_back(null);
|
|
||||||
|
|
||||||
CHECK(assert_equal(expected, actual));
|
|
||||||
}
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( SymbolicFactorGraph, factors)
|
|
||||||
{
|
|
||||||
// create a test graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph fg(factorGraph);
|
|
||||||
|
|
||||||
// ask for all factor indices connected to x1
|
|
||||||
list<size_t> x1_factors = fg.factors("x1");
|
|
||||||
int x1_indices[] = { 0, 1, 2 };
|
|
||||||
list<size_t> x1_expected(x1_indices, x1_indices + 3);
|
|
||||||
CHECK(x1_factors==x1_expected);
|
|
||||||
|
|
||||||
// ask for all factor indices connected to x2
|
|
||||||
list<size_t> x2_factors = fg.factors("x2");
|
|
||||||
int x2_indices[] = { 1, 3 };
|
|
||||||
list<size_t> x2_expected(x2_indices, x2_indices + 2);
|
|
||||||
CHECK(x2_factors==x2_expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( SymbolicFactorGraph, removeAndCombineFactors )
|
|
||||||
{
|
|
||||||
// create a test graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph fg(factorGraph);
|
|
||||||
|
|
||||||
// combine all factors connected to x1
|
|
||||||
SymbolicFactor::shared_ptr actual = removeAndCombineFactors(fg,"x1");
|
|
||||||
|
|
||||||
// check result
|
|
||||||
SymbolicFactor expected("l1","x1","x2");
|
|
||||||
CHECK(assert_equal(expected,*actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( SymbolicFactorGraph, eliminateOne )
|
|
||||||
{
|
|
||||||
// create a test graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph fg(factorGraph);
|
|
||||||
|
|
||||||
// eliminate
|
|
||||||
SymbolicConditional::shared_ptr actual = fg.eliminateOne("x1");
|
|
||||||
|
|
||||||
// create expected symbolic Conditional
|
|
||||||
SymbolicConditional expected("x1","l1","x2");
|
|
||||||
|
|
||||||
CHECK(assert_equal(expected,*actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactorGraph, eliminate )
|
|
||||||
{
|
|
||||||
// create expected Chordal bayes Net
|
|
||||||
SymbolicConditional::shared_ptr x2(new SymbolicConditional("x2", "l1", "x1"));
|
|
||||||
SymbolicConditional::shared_ptr l1(new SymbolicConditional("l1", "x1"));
|
|
||||||
SymbolicConditional::shared_ptr x1(new SymbolicConditional("x1"));
|
|
||||||
|
|
||||||
SymbolicBayesNet expected;
|
|
||||||
expected.push_back(x2);
|
|
||||||
expected.push_back(l1);
|
|
||||||
expected.push_back(x1);
|
|
||||||
|
|
||||||
// create a test graph
|
|
||||||
GaussianFactorGraph factorGraph = createGaussianFactorGraph();
|
|
||||||
SymbolicFactorGraph fg(factorGraph);
|
|
||||||
|
|
||||||
// eliminate it
|
|
||||||
Ordering ordering;
|
|
||||||
ordering += "x2","l1","x1";
|
|
||||||
SymbolicBayesNet actual = fg.eliminate(ordering);
|
|
||||||
|
|
||||||
CHECK(assert_equal(expected,actual));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
TEST( GaussianFactorGraph, eliminate2 )
|
|
||||||
{
|
{
|
||||||
// create a test graph
|
// create a test graph
|
||||||
SymbolicFactorGraph fg;
|
SymbolicFactorGraph fg;
|
||||||
|
|
|
@ -0,0 +1,823 @@
|
||||||
|
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# GTSAM geometry
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
check_PROGRAMS = testPoint2$(EXEEXT) testRot2$(EXEEXT) \
|
||||||
|
testPose2$(EXEEXT) testPoint3$(EXEEXT) testRot3$(EXEEXT) \
|
||||||
|
testPose3$(EXEEXT) testCal3_S2$(EXEEXT) \
|
||||||
|
testCalibratedCamera$(EXEEXT) testSimpleCamera$(EXEEXT) \
|
||||||
|
testTensors$(EXEEXT) testHomography2$(EXEEXT) \
|
||||||
|
testTrifocal$(EXEEXT)
|
||||||
|
noinst_PROGRAMS = timeRot3$(EXEEXT)
|
||||||
|
subdir = geometry
|
||||||
|
DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||||
|
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||||
|
libgeometry_la_LIBADD =
|
||||||
|
am__objects_1 = Point2.lo Rot2.lo Pose2.lo Point3.lo Rot3.lo Pose3.lo \
|
||||||
|
Cal3_S2.lo CalibratedCamera.lo SimpleCamera.lo \
|
||||||
|
projectiveGeometry.lo tensorInterface.lo
|
||||||
|
am_libgeometry_la_OBJECTS = $(am__objects_1)
|
||||||
|
libgeometry_la_OBJECTS = $(am_libgeometry_la_OBJECTS)
|
||||||
|
PROGRAMS = $(noinst_PROGRAMS)
|
||||||
|
testCal3_S2_SOURCES = testCal3_S2.cpp
|
||||||
|
testCal3_S2_OBJECTS = testCal3_S2.$(OBJEXT)
|
||||||
|
testCal3_S2_LDADD = $(LDADD)
|
||||||
|
testCal3_S2_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testCalibratedCamera_SOURCES = testCalibratedCamera.cpp
|
||||||
|
testCalibratedCamera_OBJECTS = testCalibratedCamera.$(OBJEXT)
|
||||||
|
testCalibratedCamera_LDADD = $(LDADD)
|
||||||
|
testCalibratedCamera_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testHomography2_SOURCES = testHomography2.cpp
|
||||||
|
testHomography2_OBJECTS = testHomography2.$(OBJEXT)
|
||||||
|
testHomography2_LDADD = $(LDADD)
|
||||||
|
testHomography2_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testPoint2_SOURCES = testPoint2.cpp
|
||||||
|
testPoint2_OBJECTS = testPoint2.$(OBJEXT)
|
||||||
|
testPoint2_LDADD = $(LDADD)
|
||||||
|
testPoint2_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testPoint3_SOURCES = testPoint3.cpp
|
||||||
|
testPoint3_OBJECTS = testPoint3.$(OBJEXT)
|
||||||
|
testPoint3_LDADD = $(LDADD)
|
||||||
|
testPoint3_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testPose2_SOURCES = testPose2.cpp
|
||||||
|
testPose2_OBJECTS = testPose2.$(OBJEXT)
|
||||||
|
testPose2_LDADD = $(LDADD)
|
||||||
|
testPose2_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testPose3_SOURCES = testPose3.cpp
|
||||||
|
testPose3_OBJECTS = testPose3.$(OBJEXT)
|
||||||
|
testPose3_LDADD = $(LDADD)
|
||||||
|
testPose3_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testRot2_SOURCES = testRot2.cpp
|
||||||
|
testRot2_OBJECTS = testRot2.$(OBJEXT)
|
||||||
|
testRot2_LDADD = $(LDADD)
|
||||||
|
testRot2_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testRot3_SOURCES = testRot3.cpp
|
||||||
|
testRot3_OBJECTS = testRot3.$(OBJEXT)
|
||||||
|
testRot3_LDADD = $(LDADD)
|
||||||
|
testRot3_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testSimpleCamera_SOURCES = testSimpleCamera.cpp
|
||||||
|
testSimpleCamera_OBJECTS = testSimpleCamera.$(OBJEXT)
|
||||||
|
testSimpleCamera_LDADD = $(LDADD)
|
||||||
|
testSimpleCamera_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testTensors_SOURCES = testTensors.cpp
|
||||||
|
testTensors_OBJECTS = testTensors.$(OBJEXT)
|
||||||
|
testTensors_LDADD = $(LDADD)
|
||||||
|
testTensors_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
testTrifocal_SOURCES = testTrifocal.cpp
|
||||||
|
testTrifocal_OBJECTS = testTrifocal.$(OBJEXT)
|
||||||
|
testTrifocal_LDADD = $(LDADD)
|
||||||
|
testTrifocal_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
timeRot3_SOURCES = timeRot3.cpp
|
||||||
|
timeRot3_OBJECTS = timeRot3.$(OBJEXT)
|
||||||
|
timeRot3_LDADD = $(LDADD)
|
||||||
|
timeRot3_DEPENDENCIES = libgeometry.la ../base/libbase.la \
|
||||||
|
../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
am__mv = mv -f
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||||
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||||
|
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
SOURCES = $(libgeometry_la_SOURCES) testCal3_S2.cpp \
|
||||||
|
testCalibratedCamera.cpp testHomography2.cpp testPoint2.cpp \
|
||||||
|
testPoint3.cpp testPose2.cpp testPose3.cpp testRot2.cpp \
|
||||||
|
testRot3.cpp testSimpleCamera.cpp testTensors.cpp \
|
||||||
|
testTrifocal.cpp timeRot3.cpp
|
||||||
|
DIST_SOURCES = $(libgeometry_la_SOURCES) testCal3_S2.cpp \
|
||||||
|
testCalibratedCamera.cpp testHomography2.cpp testPoint2.cpp \
|
||||||
|
testPoint3.cpp testPose2.cpp testPose3.cpp testRot2.cpp \
|
||||||
|
testRot3.cpp testSimpleCamera.cpp testTensors.cpp \
|
||||||
|
testTrifocal.cpp timeRot3.cpp
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
HEADERS = $(pkginclude_HEADERS)
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
am__tty_colors = \
|
||||||
|
red=; grn=; lgn=; blu=; std=
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
DSYMUTIL = @DSYMUTIL@
|
||||||
|
DUMPBIN = @DUMPBIN@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
FGREP = @FGREP@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LD = @LD@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIPO = @LIPO@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
NM = @NM@
|
||||||
|
NMEDIT = @NMEDIT@
|
||||||
|
OBJDUMP = @OBJDUMP@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OTOOL = @OTOOL@
|
||||||
|
OTOOL64 = @OTOOL64@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
boost = @boost@
|
||||||
|
boost_serialization = @boost_serialization@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
lt_ECHO = @lt_ECHO@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
toolbox = @toolbox@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
|
||||||
|
# Tensors
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# Create a libtool library that is not installed
|
||||||
|
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
|
||||||
|
# The headers are installed in $(includedir)/gtsam:
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
headers = tensors.h Tensor1.h Tensor2.h Tensor3.h Tensor4.h Tensor5.h \
|
||||||
|
Tensor1Expression.h Tensor2Expression.h Tensor3Expression.h \
|
||||||
|
Tensor5Expression.h $(sources:.cpp=.h)
|
||||||
|
|
||||||
|
# Points and poses
|
||||||
|
|
||||||
|
# Cameras
|
||||||
|
sources = Point2.cpp Rot2.cpp Pose2.cpp Point3.cpp Rot3.cpp Pose3.cpp \
|
||||||
|
Cal3_S2.cpp CalibratedCamera.cpp SimpleCamera.cpp \
|
||||||
|
projectiveGeometry.cpp tensorInterface.cpp
|
||||||
|
pkginclude_HEADERS = $(headers)
|
||||||
|
noinst_LTLIBRARIES = libgeometry.la
|
||||||
|
libgeometry_la_SOURCES = $(sources)
|
||||||
|
AM_CPPFLAGS = -I$(boost) -I../base
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
# rules to build local programs
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
TESTS = $(check_PROGRAMS)
|
||||||
|
AM_LDFLAGS = $(BOOST_LDFLAGS) $(boost_serialization)
|
||||||
|
LDADD = libgeometry.la ../base/libbase.la ../ldl/libldl.la ../CppUnitLite/libCppUnitLite.a
|
||||||
|
AM_DEFAULT_SOURCE_EXT = .cpp
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .cpp .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||||
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu geometry/Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu geometry/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
clean-noinstLTLIBRARIES:
|
||||||
|
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||||
|
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||||
|
test "$$dir" != "$$p" || dir=.; \
|
||||||
|
echo "rm -f \"$${dir}/so_locations\""; \
|
||||||
|
rm -f "$${dir}/so_locations"; \
|
||||||
|
done
|
||||||
|
libgeometry.la: $(libgeometry_la_OBJECTS) $(libgeometry_la_DEPENDENCIES)
|
||||||
|
$(CXXLINK) $(libgeometry_la_OBJECTS) $(libgeometry_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
clean-checkPROGRAMS:
|
||||||
|
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
|
||||||
|
clean-noinstPROGRAMS:
|
||||||
|
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
testCal3_S2$(EXEEXT): $(testCal3_S2_OBJECTS) $(testCal3_S2_DEPENDENCIES)
|
||||||
|
@rm -f testCal3_S2$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testCal3_S2_OBJECTS) $(testCal3_S2_LDADD) $(LIBS)
|
||||||
|
testCalibratedCamera$(EXEEXT): $(testCalibratedCamera_OBJECTS) $(testCalibratedCamera_DEPENDENCIES)
|
||||||
|
@rm -f testCalibratedCamera$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testCalibratedCamera_OBJECTS) $(testCalibratedCamera_LDADD) $(LIBS)
|
||||||
|
testHomography2$(EXEEXT): $(testHomography2_OBJECTS) $(testHomography2_DEPENDENCIES)
|
||||||
|
@rm -f testHomography2$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testHomography2_OBJECTS) $(testHomography2_LDADD) $(LIBS)
|
||||||
|
testPoint2$(EXEEXT): $(testPoint2_OBJECTS) $(testPoint2_DEPENDENCIES)
|
||||||
|
@rm -f testPoint2$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testPoint2_OBJECTS) $(testPoint2_LDADD) $(LIBS)
|
||||||
|
testPoint3$(EXEEXT): $(testPoint3_OBJECTS) $(testPoint3_DEPENDENCIES)
|
||||||
|
@rm -f testPoint3$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testPoint3_OBJECTS) $(testPoint3_LDADD) $(LIBS)
|
||||||
|
testPose2$(EXEEXT): $(testPose2_OBJECTS) $(testPose2_DEPENDENCIES)
|
||||||
|
@rm -f testPose2$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testPose2_OBJECTS) $(testPose2_LDADD) $(LIBS)
|
||||||
|
testPose3$(EXEEXT): $(testPose3_OBJECTS) $(testPose3_DEPENDENCIES)
|
||||||
|
@rm -f testPose3$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testPose3_OBJECTS) $(testPose3_LDADD) $(LIBS)
|
||||||
|
testRot2$(EXEEXT): $(testRot2_OBJECTS) $(testRot2_DEPENDENCIES)
|
||||||
|
@rm -f testRot2$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testRot2_OBJECTS) $(testRot2_LDADD) $(LIBS)
|
||||||
|
testRot3$(EXEEXT): $(testRot3_OBJECTS) $(testRot3_DEPENDENCIES)
|
||||||
|
@rm -f testRot3$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testRot3_OBJECTS) $(testRot3_LDADD) $(LIBS)
|
||||||
|
testSimpleCamera$(EXEEXT): $(testSimpleCamera_OBJECTS) $(testSimpleCamera_DEPENDENCIES)
|
||||||
|
@rm -f testSimpleCamera$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testSimpleCamera_OBJECTS) $(testSimpleCamera_LDADD) $(LIBS)
|
||||||
|
testTensors$(EXEEXT): $(testTensors_OBJECTS) $(testTensors_DEPENDENCIES)
|
||||||
|
@rm -f testTensors$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testTensors_OBJECTS) $(testTensors_LDADD) $(LIBS)
|
||||||
|
testTrifocal$(EXEEXT): $(testTrifocal_OBJECTS) $(testTrifocal_DEPENDENCIES)
|
||||||
|
@rm -f testTrifocal$(EXEEXT)
|
||||||
|
$(CXXLINK) $(testTrifocal_OBJECTS) $(testTrifocal_LDADD) $(LIBS)
|
||||||
|
timeRot3$(EXEEXT): $(timeRot3_OBJECTS) $(timeRot3_DEPENDENCIES)
|
||||||
|
@rm -f timeRot3$(EXEEXT)
|
||||||
|
$(CXXLINK) $(timeRot3_OBJECTS) $(timeRot3_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Cal3_S2.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalibratedCamera.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Point2.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Point3.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Pose2.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Pose3.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Rot2.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Rot3.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SimpleCamera.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/projectiveGeometry.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tensorInterface.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testCal3_S2.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testCalibratedCamera.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testHomography2.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testPoint2.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testPoint3.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testPose2.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testPose3.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRot2.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRot3.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSimpleCamera.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testTensors.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testTrifocal.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeRot3.Po@am__quote@
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
.cpp.obj:
|
||||||
|
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.cpp.lo:
|
||||||
|
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
test -n "$$files" || exit 0; \
|
||||||
|
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
|
||||||
|
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
check-TESTS: $(TESTS)
|
||||||
|
@failed=0; all=0; xfail=0; xpass=0; skip=0; \
|
||||||
|
srcdir=$(srcdir); export srcdir; \
|
||||||
|
list=' $(TESTS) '; \
|
||||||
|
$(am__tty_colors); \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
for tst in $$list; do \
|
||||||
|
if test -f ./$$tst; then dir=./; \
|
||||||
|
elif test -f $$tst; then dir=; \
|
||||||
|
else dir="$(srcdir)/"; fi; \
|
||||||
|
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
|
||||||
|
all=`expr $$all + 1`; \
|
||||||
|
case " $(XFAIL_TESTS) " in \
|
||||||
|
*[\ \ ]$$tst[\ \ ]*) \
|
||||||
|
xpass=`expr $$xpass + 1`; \
|
||||||
|
failed=`expr $$failed + 1`; \
|
||||||
|
col=$$red; res=XPASS; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
col=$$grn; res=PASS; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
elif test $$? -ne 77; then \
|
||||||
|
all=`expr $$all + 1`; \
|
||||||
|
case " $(XFAIL_TESTS) " in \
|
||||||
|
*[\ \ ]$$tst[\ \ ]*) \
|
||||||
|
xfail=`expr $$xfail + 1`; \
|
||||||
|
col=$$lgn; res=XFAIL; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
failed=`expr $$failed + 1`; \
|
||||||
|
col=$$red; res=FAIL; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
else \
|
||||||
|
skip=`expr $$skip + 1`; \
|
||||||
|
col=$$blu; res=SKIP; \
|
||||||
|
fi; \
|
||||||
|
echo "$${col}$$res$${std}: $$tst"; \
|
||||||
|
done; \
|
||||||
|
if test "$$all" -eq 1; then \
|
||||||
|
tests="test"; \
|
||||||
|
All=""; \
|
||||||
|
else \
|
||||||
|
tests="tests"; \
|
||||||
|
All="All "; \
|
||||||
|
fi; \
|
||||||
|
if test "$$failed" -eq 0; then \
|
||||||
|
if test "$$xfail" -eq 0; then \
|
||||||
|
banner="$$All$$all $$tests passed"; \
|
||||||
|
else \
|
||||||
|
if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
|
||||||
|
banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
if test "$$xpass" -eq 0; then \
|
||||||
|
banner="$$failed of $$all $$tests failed"; \
|
||||||
|
else \
|
||||||
|
if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
|
||||||
|
banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
dashes="$$banner"; \
|
||||||
|
skipped=""; \
|
||||||
|
if test "$$skip" -ne 0; then \
|
||||||
|
if test "$$skip" -eq 1; then \
|
||||||
|
skipped="($$skip test was not run)"; \
|
||||||
|
else \
|
||||||
|
skipped="($$skip tests were not run)"; \
|
||||||
|
fi; \
|
||||||
|
test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||||
|
dashes="$$skipped"; \
|
||||||
|
fi; \
|
||||||
|
report=""; \
|
||||||
|
if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||||
|
report="Please report to $(PACKAGE_BUGREPORT)"; \
|
||||||
|
test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
|
||||||
|
dashes="$$report"; \
|
||||||
|
fi; \
|
||||||
|
dashes=`echo "$$dashes" | sed s/./=/g`; \
|
||||||
|
if test "$$failed" -eq 0; then \
|
||||||
|
echo "$$grn$$dashes"; \
|
||||||
|
else \
|
||||||
|
echo "$$red$$dashes"; \
|
||||||
|
fi; \
|
||||||
|
echo "$$banner"; \
|
||||||
|
test -z "$$skipped" || echo "$$skipped"; \
|
||||||
|
test -z "$$report" || echo "$$report"; \
|
||||||
|
echo "$$dashes$$std"; \
|
||||||
|
test "$$failed" -eq 0; \
|
||||||
|
else :; fi
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
|
||||||
|
clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
|
distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am: install-pkgincludeHEADERS
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -rf ./$(DEPDIR)
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||||
|
mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
.MAKE: check-am install-am install-strip
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
|
||||||
|
clean-checkPROGRAMS clean-generic clean-libtool \
|
||||||
|
clean-noinstLTLIBRARIES clean-noinstPROGRAMS ctags distclean \
|
||||||
|
distclean-compile distclean-generic distclean-libtool \
|
||||||
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-data install-data-am install-dvi \
|
||||||
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
|
install-html-am install-info install-info-am install-man \
|
||||||
|
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||||
|
install-ps install-ps-am install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
|
tags uninstall uninstall-am uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
|
||||||
|
# rule to run an executable
|
||||||
|
%.run: % $(LDADD)
|
||||||
|
./$^
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -6,7 +6,6 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "Pose3.h"
|
#include "Pose3.h"
|
||||||
#include "Lie-inl.h"
|
#include "Lie-inl.h"
|
||||||
#include "LieConfig.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost::numeric::ublas;
|
using namespace boost::numeric::ublas;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue