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
|
||||
|
||||
|
||||
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.
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
# make automake install some standard but missing files
|
||||
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 -d ${toolbox}/gtsam && \
|
||||
cp -rf toolbox/* ${toolbox}/gtsam && \
|
||||
install -d ${prefix}/include/wrap && \
|
||||
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/
|
||||
cp -f wrap/wrap-matlab.h ${prefix}/include/wrap/matlab.h
|
||||
|
||||
# Todo: Also do CppUnitLite with automake
|
||||
dist-hook:
|
||||
mkdir $(distdir)/CppUnitLite
|
||||
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)/config
|
||||
mkdir $(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 {
|
||||
|
||||
class Symbol;
|
||||
|
||||
template <class Key>
|
||||
class DSF : protected BTree<Key, Key> {
|
||||
|
||||
|
@ -153,6 +151,5 @@ namespace gtsam {
|
|||
|
||||
// shortcuts
|
||||
typedef DSF<int> DSFInt;
|
||||
typedef DSF<Symbol> DSFSymbol;
|
||||
|
||||
} // 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>
|
||||
|
||||
#ifdef GT_USE_CBLAS
|
||||
#ifdef YA_BLAS
|
||||
#include <vecLib/cblas.h>
|
||||
#else
|
||||
extern "C" {
|
||||
#include <cblas.h>
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GT_USE_LAPACK
|
||||
#ifdef YA_BLAS
|
||||
#include <vecLib/clapack.h>
|
||||
#else
|
||||
extern "C" {
|
||||
#include <cblas.h>
|
||||
#include <clapack.h>
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#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
|
||||
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
|
||||
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();
|
||||
double * ei = e.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();
|
||||
for (int j = 0; j < n; j++, aij++, xj++)
|
||||
for(size_t j = 0; j < n; j++, aij++, xj++)
|
||||
(*ei) += alpha * (*aij) * (*xj);
|
||||
}
|
||||
#endif
|
||||
|
@ -218,9 +215,9 @@ void multiplyAdd(const Matrix& A, const Vector& x, Vector& e) {
|
|||
size_t m = A.size1(), n = A.size2();
|
||||
double * ei = e.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();
|
||||
for (int j = 0; j < n; j++, aij++, xj++)
|
||||
for(size_t j = 0; j < n; j++, aij++, xj++)
|
||||
(*ei) += (*aij) * (*xj);
|
||||
}
|
||||
#endif
|
||||
|
@ -249,7 +246,7 @@ void transposeMultiplyAdd(double alpha, const Matrix& A, const Vector& e, Vector
|
|||
|
||||
// fill in parameters
|
||||
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
|
||||
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
|
||||
size_t m = A.size1(), n = A.size2();
|
||||
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 * 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);
|
||||
}
|
||||
#endif
|
||||
|
@ -276,10 +273,10 @@ void transposeMultiplyAdd(const Matrix& A, const Vector& e, Vector& x) {
|
|||
#else
|
||||
size_t m = A.size1(), n = A.size2();
|
||||
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 * 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);
|
||||
}
|
||||
#endif
|
||||
|
@ -397,7 +394,7 @@ void solve(Matrix& A, Matrix& B)
|
|||
pmatrix pm(A_.size1());
|
||||
|
||||
// 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!");
|
||||
|
||||
// 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.
|
||||
*/
|
||||
/* ************************************************************************* */
|
||||
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();
|
||||
// w = beta*transpose(A(j:m,:))*v(j:m)
|
||||
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
|
||||
|
||||
// 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
|
||||
// A' \define A_{S}-ar and b'\define b-ad
|
||||
// __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 size_t m = A.size1(), n = A.size2();
|
||||
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
|
||||
*/
|
||||
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) {
|
||||
// TODO: reimplement using BLAS
|
||||
updateAb_manual(A,b,j,a,r,d);
|
||||
|
@ -682,9 +679,9 @@ void householder(Matrix &A) {
|
|||
__CLPK_integer n = A.size2();
|
||||
|
||||
// convert from row major to column major
|
||||
double a[m*n]; int k = 0;
|
||||
for(int j=0; j<n; j++)
|
||||
for(int i=0; i<m; i++, k++)
|
||||
double a[m*n]; size_t k = 0;
|
||||
for(size_t j=0; j<n; j++)
|
||||
for(size_t i=0; i<m; i++, k++)
|
||||
a[k] = A(i,j);
|
||||
|
||||
double tau[n];
|
||||
|
@ -696,13 +693,13 @@ void householder(Matrix &A) {
|
|||
lwork = (__CLPK_integer)work_optimal_size;
|
||||
double work[lwork];
|
||||
dgeqrf_(&m, &n, a, &m, tau, work, &lwork, &info);
|
||||
int k0 = 0;
|
||||
int j0;
|
||||
size_t k0 = 0;
|
||||
size_t j0;
|
||||
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;
|
||||
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];
|
||||
}
|
||||
}
|
||||
|
@ -952,13 +949,13 @@ Matrix RtR(const Matrix &A)
|
|||
/* ************************************************************************* */
|
||||
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
|
||||
double thresh = 1e-9;
|
||||
unsigned int nrANZ = 0; // # of nonzeros on diagonal and upper triangular part of A
|
||||
for (size_t i=0; i<N; ++i) // rows
|
||||
for (size_t j=i; j<N; ++j) // columns
|
||||
int nrANZ = 0; // # of nonzeros on diagonal and upper triangular part of A
|
||||
for (int i=0; i<N; ++i) // rows
|
||||
for (int j=i; j<N; ++j) // columns
|
||||
if (fabs(M(i,j)) > thresh)
|
||||
++nrANZ;
|
||||
|
||||
|
@ -972,10 +969,10 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
|||
Ap[N] = nrANZ;
|
||||
|
||||
// copy in the full A matrix to compressed column form
|
||||
size_t t = 0; // count the elements added
|
||||
for (size_t j=0; j<N; ++j) { // columns
|
||||
int t = 0; // count the elements added
|
||||
for (int j=0; j<N; ++j) { // columns
|
||||
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);
|
||||
if (fabs(m) > thresh) {
|
||||
Ai[t] = i;
|
||||
|
@ -985,7 +982,7 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
|||
}
|
||||
|
||||
// copy in RHS
|
||||
for (size_t i = 0; i < N; ++i)
|
||||
for (int i = 0; i < N; ++i)
|
||||
b[i] = rhs(i);
|
||||
|
||||
// workspace variables
|
||||
|
@ -1000,13 +997,13 @@ Vector solve_ldl(const Matrix& M, const Vector& rhs) {
|
|||
// factorize A into LDL' (P and Pinv not used)
|
||||
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
|
||||
double * Lx = new double[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);
|
||||
|
||||
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);
|
||||
for (int k=1;k<=K;k++) {
|
||||
for(size_t k=1;k<=K;k++) {
|
||||
A_k = A_k*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
|
||||
*/
|
||||
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
|
||||
|
@ -383,7 +383,7 @@ Vector solve_ldl(const Matrix& A, const Vector& b);
|
|||
* @param A matrix to exponentiate
|
||||
* @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
|
||||
#define EQUALITY(expected,actual)\
|
|
@ -12,31 +12,30 @@
|
|||
using namespace boost::assign;
|
||||
|
||||
#include <CppUnitLite/TestHarness.h>
|
||||
#include "Key.h"
|
||||
#include "BTree.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
|
||||
typedef pair<size_t, size_t> Range;
|
||||
typedef BTree<Symbol, Range> RangeTree;
|
||||
typedef BTree<Symbol, int> IntTree;
|
||||
typedef BTree<string, Range> RangeTree;
|
||||
typedef BTree<string, int> IntTree;
|
||||
|
||||
static std::stringstream ss;
|
||||
static Symbol x1('x', 1), x2('x', 2), x3('x', 3), x4('x', 4), x5('x', 5);
|
||||
typedef pair<Symbol, int> KeyInt;
|
||||
static string x1("x1"), x2("x2"), x3("x3"), x4("x4"), x5("x5");
|
||||
typedef pair<string, int> KeyInt;
|
||||
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;
|
||||
}
|
||||
|
||||
void g(const Symbol& key, int i) {
|
||||
void g(const string& key, int i) {
|
||||
ss << (string) key;
|
||||
}
|
||||
|
||||
int add(const Symbol& k, int v, int a) {
|
||||
int add(const string& k, int v, int a) {
|
||||
return v + a;
|
||||
}
|
||||
|
||||
|
@ -122,7 +121,7 @@ TEST( BTree, iterating )
|
|||
LONGS_EQUAL(25,tree.fold<int>(add,10))
|
||||
|
||||
// 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 == p1)
|
||||
CHECK(it->first == x1)
|
||||
|
@ -168,7 +167,7 @@ TEST( BTree, stress )
|
|||
list<RangeTree::value_type> expected;
|
||||
int N = 128;
|
||||
for (int i = 1; i <= N; i++) {
|
||||
Symbol key('a', i);
|
||||
string key('a', i);
|
||||
Range value(i - 1, i);
|
||||
tree = tree.add(key, value);
|
||||
LONGS_EQUAL(i,tree.size())
|
||||
|
@ -186,7 +185,7 @@ TEST( BTree, stress )
|
|||
|
||||
// deconstruct the tree
|
||||
for (int i = N; i >= N; i--) {
|
||||
Symbol key('a', i);
|
||||
string key('a', i);
|
||||
tree = tree.remove(key);
|
||||
LONGS_EQUAL(i-1,tree.size())
|
||||
CHECK(!tree.mem(key))
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
|||
#include <CppUnitLite/TestHarness.h>
|
||||
|
||||
#include "DSF.h"
|
||||
#include "Key.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
|
@ -249,17 +248,16 @@ TEST(DSF, flatten) {
|
|||
|
||||
/* ************************************************************************* */
|
||||
TEST(DSF, flatten2) {
|
||||
Symbol x1('x',1);
|
||||
Symbol x2('x',2), x3('x',3), x4('x',4);
|
||||
list<Symbol> keys; keys += x1,x2,x3,x4;
|
||||
DSFSymbol dsf(keys);
|
||||
static string x1("x1"), x2("x2"), x3("x3"), x4("x4");
|
||||
list<string> keys; keys += x1,x2,x3,x4;
|
||||
DSF<string> dsf(keys);
|
||||
dsf = dsf.makeUnion(x1,x2);
|
||||
dsf = dsf.makeUnion(x3,x4);
|
||||
dsf = dsf.makeUnion(x1,x3);
|
||||
|
||||
CHECK(dsf != dsf.flatten());
|
||||
|
||||
DSFSymbol expected2;
|
||||
DSF<string> expected2;
|
||||
expected2 = expected2.makePair(x1, x2);
|
||||
expected2 = expected2.makePair(x1, x3);
|
||||
expected2 = expected2.makePair(x1, x4);
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
|||
#include <CppUnitLite/TestHarness.h>
|
||||
|
||||
#include "DSFVector.h"
|
||||
#include "Key.h"
|
||||
|
||||
using namespace std;
|
||||
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_INIT(gtsam, 0.0.0, dellaert@cc.gatech.edu)
|
||||
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_SRCDIR([cpp/cal3_S2.cpp])
|
||||
AC_CONFIG_HEADER([cpp/config.h])
|
||||
AC_CONFIG_SRCDIR([wrap/wrap.cpp])
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AC_CONFIG_SRCDIR([CppUnitLite/Test.cpp])
|
||||
AC_CONFIG_SRCDIR([colamd/colamd.c])
|
||||
AC_CONFIG_SRCDIR([ldl/ldl.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
|
||||
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]) ;;
|
||||
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_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]) ;;
|
||||
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_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],
|
||||
[ --enable-spqr Enable SparseQR library support],
|
||||
[case "${enableval}" in
|
||||
|
|
|
@ -16,21 +16,17 @@
|
|||
#include <stdexcept>
|
||||
#include <functional>
|
||||
|
||||
extern "C" {
|
||||
#include <colamd/colamd.h>
|
||||
#include <colamd/ccolamd.h>
|
||||
}
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/tuple/tuple.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/graph/prim_minimum_spanning_tree.hpp>
|
||||
#include <colamd/colamd.h>
|
||||
#include "ccolamd.h"
|
||||
#include "Ordering.h"
|
||||
#include "FactorGraph.h"
|
||||
#include "graph-inl.h"
|
||||
#include "DSF.h"
|
||||
|
||||
|
||||
#define INSTANTIATE_FACTOR_GRAPH(F) \
|
||||
template class FactorGraph<F>; \
|
||||
/*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) {
|
||||
|
||||
// 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 * 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 */
|
||||
|
@ -200,6 +195,7 @@ void colamd(int n_col, int n_row, int nrNonZeros, const map<Key, vector<int> >&
|
|||
int count = 0;
|
||||
typedef typename map<Key, vector<int> >::const_iterator iterator;
|
||||
bool front_exists = false;
|
||||
vector<Key> initialOrder;
|
||||
for(iterator it = columns.begin(); it != columns.end(); it++) {
|
||||
const Key& key = it->first;
|
||||
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) */
|
||||
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 *************************************************
|
||||
/* TODO: returns (1) if successful, (0) otherwise*/
|
||||
|
|
|
@ -279,6 +279,7 @@ namespace gtsam {
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
template<class Conditional, class Config>
|
||||
void ISAM2<Conditional, Config>::linear_update(const FactorGraph<GaussianFactor>& newFactors) {
|
||||
|
||||
|
@ -329,8 +330,8 @@ namespace gtsam {
|
|||
}
|
||||
|
||||
// Output: BayesTree(this)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
template<class Conditional, class Config>
|
||||
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
|
||||
includedir = ${prefix}/include/gtsam
|
||||
libdir = ${exec_prefix}/lib
|
||||
headers =
|
||||
sources =
|
||||
check_PROGRAMS =
|
||||
|
||||
# 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.
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# base
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
# 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)
|
||||
|
||||
# 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
|
||||
# GTSAM core
|
||||
headers += Factor.h Conditional.h Ordering.h IndexTable.h
|
||||
sources += Ordering.cpp
|
||||
check_PROGRAMS += testOrdering
|
||||
|
||||
# Symbolic Inference
|
||||
headers += SymbolicConditional.h
|
||||
sources += SymbolicFactor.cpp SymbolicFactorGraph.cpp SymbolicBayesNet.cpp
|
||||
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
|
||||
headers += inference.h inference-inl.h
|
||||
|
@ -73,231 +28,91 @@ headers += JunctionTree.h JunctionTree-inl.h
|
|||
headers += BayesNet.h BayesNet-inl.h
|
||||
headers += BayesTree.h BayesTree-inl.h
|
||||
headers += ISAM.h ISAM-inl.h GaussianISAM.h
|
||||
headers += ISAM2.h ISAM2-inl.h GaussianISAM2.h
|
||||
sources += GaussianISAM.cpp GaussianISAM2.cpp
|
||||
check_PROGRAMS += testGraph testFactorGraph testJunctionTree testInference testOrdering
|
||||
check_PROGRAMS += testBayesTree testISAM testGaussianISAM testGaussianISAM2
|
||||
testGraph_SOURCES = testGraph.cpp
|
||||
testGraph_LDADD = libgtsam.la
|
||||
testFactorGraph_SOURCES = testFactorgraph.cpp
|
||||
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
|
||||
headers += ISAM2.h ISAM2-inl.h
|
||||
sources += GaussianISAM.cpp
|
||||
check_PROGRAMS += testFactorGraph testJunctionTree testOrdering
|
||||
check_PROGRAMS += testBayesTree testISAM
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# discrete
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
# Binary Inference
|
||||
headers += BinaryConditional.h
|
||||
check_PROGRAMS += testBinaryBayesNet
|
||||
testBinaryBayesNet_SOURCES = testBinaryBayesNet.cpp
|
||||
testBinaryBayesNet_LDADD = libgtsam.la
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# linear
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
# Gaussian inference
|
||||
headers += GaussianFactorSet.h SharedGaussian.h SharedDiagonal.h VectorConfig.h Factorization.h
|
||||
sources += NoiseModel.cpp Errors.cpp VectorMap.cpp VectorBTree.cpp GaussianFactor.cpp
|
||||
sources += GaussianFactorGraph.cpp GaussianConditional.cpp GaussianBayesNet.cpp
|
||||
check_PROGRAMS += testVectorMap testVectorBTree testGaussianFactor testGaussianFactorGraph
|
||||
check_PROGRAMS += testGaussianConditional testGaussianBayesNet 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
|
||||
check_PROGRAMS += testVectorMap testVectorBTree testGaussianFactor
|
||||
check_PROGRAMS += testGaussianConditional testNoiseModel testErrors
|
||||
|
||||
# Iterative Methods
|
||||
headers += iterative-inl.h SubgraphSolver.h SubgraphSolver-inl.h
|
||||
sources += iterative.cpp BayesNetPreconditioner.cpp SubgraphPreconditioner.cpp
|
||||
check_PROGRAMS += testIterative testBayesNetPreconditioner testSubgraphPreconditioner
|
||||
testIterative_SOURCES = testIterative.cpp
|
||||
testIterative_LDADD = libgtsam.la
|
||||
testBayesNetPreconditioner_SOURCES = testBayesNetPreconditioner.cpp
|
||||
testBayesNetPreconditioner_LDADD = libgtsam.la
|
||||
testSubgraphPreconditioner_SOURCES = testSubgraphPreconditioner.cpp
|
||||
testSubgraphPreconditioner_LDADD = libgtsam.la
|
||||
check_PROGRAMS += testBayesNetPreconditioner
|
||||
|
||||
# Timing tests
|
||||
noinst_PROGRAMS = timeGaussianFactor timeSymbolMaps timeVectorConfig
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# nonlinear
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
# Lie Groups
|
||||
headers += LieConfig.h LieConfig-inl.h TupleConfig.h TupleConfig-inl.h
|
||||
check_PROGRAMS += testLieConfig
|
||||
|
||||
# Nonlinear inference
|
||||
headers += Key.h SymbolMap.h NonlinearFactorGraph.h NonlinearFactorGraph-inl.h
|
||||
headers += NonlinearOptimizer.h NonlinearOptimizer-inl.h
|
||||
headers += NonlinearFactor.h
|
||||
check_PROGRAMS += testNonlinearFactor testNonlinearFactorGraph testNonlinearOptimizer 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
|
||||
check_PROGRAMS += testKey
|
||||
|
||||
# Nonlinear constraints
|
||||
headers += NonlinearConstraint.h NonlinearConstraint-inl.h
|
||||
headers += NonlinearEquality.h
|
||||
check_PROGRAMS += testNonlinearConstraint testNonlinearEquality
|
||||
testNonlinearConstraint_SOURCES = testNonlinearConstraint.cpp
|
||||
testNonlinearConstraint_LDADD = libgtsam.la
|
||||
testNonlinearEquality_SOURCES = testNonlinearEquality.cpp
|
||||
testNonlinearEquality_LDADD = libgtsam.la
|
||||
check_PROGRAMS += testNonlinearConstraint
|
||||
|
||||
# SQP
|
||||
headers += ConstraintOptimizer.h
|
||||
sources += ConstraintOptimizer.cpp
|
||||
check_PROGRAMS += testSQP 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
|
||||
check_PROGRAMS += testConstraintOptimizer
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# 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_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
|
||||
timeRot3_SOURCES = timeRot3.cpp
|
||||
timeRot3_LDADD = libgtsam.la
|
||||
timeGaussianFactor_SOURCES = timeGaussianFactor.cpp
|
||||
timeGaussianFactor_LDADD = libgtsam.la
|
||||
timeGaussianFactorGraph_SOURCES = timeGaussianFactorGraph.cpp
|
||||
timeGaussianFactorGraph_LDADD = libgtsam.la
|
||||
timeMatrix_SOURCES = timeMatrix.cpp
|
||||
timeMatrix_LDADD = libgtsam.la
|
||||
timeSymbolMaps_SOURCES = timeSymbolMaps.cpp
|
||||
timeSymbolMaps_LDADD = libgtsam.la
|
||||
timeVectorConfig_SOURCES = timeVectorConfig.cpp
|
||||
timeVectorConfig_LDADD = libgtsam.la
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# rules to build local programs
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
TESTS = $(check_PROGRAMS)
|
||||
AM_LDFLAGS = $(BOOST_LDFLAGS) $(boost_serialization)
|
||||
LDADD = libcpp.la ../base/libbase.la
|
||||
LDADD += ../CppUnitLite/libCppUnitLite.a ../colamd/libcolamd.la ../ldl/libldl.la
|
||||
AM_DEFAULT_SOURCE_EXT = .cpp
|
||||
|
||||
# create both dynamic and static libraries
|
||||
AM_CXXFLAGS = -I$(boost) -fPIC
|
||||
AM_LDFLAGS =
|
||||
lib_LTLIBRARIES = libgtsam.la
|
||||
libgtsam_la_SOURCES = $(sources)
|
||||
libgtsam_la_CPPFLAGS = $(AM_CXXFLAGS)
|
||||
libgtsam_la_LDFLAGS = -version-info $(version) -L../colamd -lcolamd -L../ldl -lldl
|
||||
# rule to run an executable
|
||||
%.run: % $(LDADD)
|
||||
./$^
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# OLD, need to figure where these go!
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
AM_CXXFLAGS =
|
||||
|
||||
# enable debug if --enable-debug is set in configure
|
||||
if DEBUG
|
||||
|
@ -306,56 +121,11 @@ endif
|
|||
|
||||
if USE_PROFILING
|
||||
AM_CXXFLAGS += -pg
|
||||
libgtsam_la_CPPFLAGS += -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
|
||||
|
||||
if USE_LAPACK
|
||||
AM_LDFLAGS += -L../spqr_mini -lspqr_mini
|
||||
libgtsam_la_LDFLAGS += -L../spqr_mini -lspqr_mini
|
||||
AM_CXXFLAGS += -DGT_USE_LAPACK
|
||||
LDADD += ../spqr_mini/libspqr_mini.la
|
||||
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 <boost/format.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include "Point2.h"
|
||||
#include "Ordering.h"
|
||||
#include "SymbolicFactorGraph.h"
|
||||
#include "SymbolicBayesNet.h"
|
||||
|
@ -20,8 +19,6 @@ using namespace std;
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
INSTANTIATE_LIE_CONFIG(Symbol, Point2)
|
||||
|
||||
// Explicitly instantiate so we don't have to include everywhere
|
||||
template class FactorGraph<SymbolicFactor>;
|
||||
|
||||
|
@ -52,39 +49,5 @@ namespace gtsam {
|
|||
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
|
||||
*/
|
||||
|
||||
#ifndef SYMBOLICFACTORGRAPH_H_
|
||||
#define SYMBOLICFACTORGRAPH_H_
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <list>
|
||||
|
@ -18,10 +17,6 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
class Point2;
|
||||
|
||||
typedef LieConfig<Symbol, Point2> SymbolicConfig;
|
||||
|
||||
class SymbolicConditional;
|
||||
|
||||
/** Symbolic Factor Graph */
|
||||
|
@ -87,8 +82,4 @@ namespace gtsam {
|
|||
SymbolicBayesNet eliminateFrontals(const Ordering& ordering);
|
||||
};
|
||||
|
||||
// save graph to the graphviz format
|
||||
void saveGraph(const SymbolicFactorGraph& fg, const SymbolicConfig& config, const std::string& s);
|
||||
}
|
||||
|
||||
#endif /* SYMBOLICFACTORGRAPH_H_ */
|
||||
} // namespace gtsam
|
||||
|
|
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
|
||||
|
||||
#include <stdexcept>
|
||||
#include <boost/foreach.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
|
||||
|
||||
#include "Ordering.h"
|
||||
#include "smallExample.h"
|
||||
#include "BayesNetPreconditioner.h"
|
||||
#include "iterative-inl.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST( BayesNetPreconditioner, operators )
|
||||
|
@ -62,68 +60,6 @@ TEST( BayesNetPreconditioner, operators )
|
|||
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() {
|
||||
TestResult tr;
|
||||
|
|
|
@ -15,7 +15,6 @@ using namespace boost::assign;
|
|||
#include "SymbolicFactorGraph.h"
|
||||
#include "Ordering.h"
|
||||
#include "BayesTree-inl.h"
|
||||
#include "smallExample.h"
|
||||
#include "IndexTable.h"
|
||||
|
||||
using namespace gtsam;
|
||||
|
|
|
@ -24,7 +24,6 @@ using namespace boost::assign;
|
|||
|
||||
#include "BinaryConditional.h"
|
||||
#include "BayesNet-inl.h"
|
||||
#include "smallExample.h"
|
||||
#include "Ordering.h"
|
||||
#include "SymbolMap.h"
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
#include <Ordering.h>
|
||||
#include <ConstraintOptimizer.h>
|
||||
#include <smallExample.h>
|
||||
|
||||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
|
@ -23,7 +22,6 @@ using namespace boost::assign;
|
|||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
|
||||
/* ************************************************************************* */
|
||||
// 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);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
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); }
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -21,11 +21,9 @@ using namespace boost::assign;
|
|||
#include "Ordering.h"
|
||||
#include "GaussianConditional.h"
|
||||
#include "inference-inl.h"
|
||||
#include "smallExample.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
using namespace boost;
|
||||
|
||||
static SharedDiagonal
|
||||
|
@ -33,22 +31,6 @@ static SharedDiagonal
|
|||
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)
|
||||
{
|
||||
Vector b = Vector_(3, 1., 2., 3.);
|
||||
|
@ -92,101 +74,6 @@ TEST( GaussianFactor, operators )
|
|||
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){
|
||||
double sigma1 = 0.0957;
|
||||
|
@ -304,65 +191,6 @@ TEST( GaussianFactor, linearFactorN){
|
|||
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 )
|
||||
{
|
||||
|
@ -470,96 +298,6 @@ TEST( GaussianFactor, empty )
|
|||
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
|
||||
template<class T>
|
||||
|
@ -568,80 +306,6 @@ void print(const list<T>& i) {
|
|||
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 )
|
||||
{
|
||||
|
|
|
@ -17,7 +17,6 @@ using namespace boost::assign;
|
|||
#include "Ordering.h"
|
||||
#include "GaussianBayesNet.h"
|
||||
#include "ISAM-inl.h"
|
||||
#include "smallExample.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
|
|
|
@ -16,12 +16,10 @@ using namespace boost::assign;
|
|||
|
||||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
#include "smallExample.h"
|
||||
#include "JunctionTree-inl.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
|
||||
/* ************************************************************************* */
|
||||
/**
|
||||
|
@ -57,44 +55,6 @@ TEST( GaussianFactorGraph, constructor )
|
|||
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
|
||||
|
@ -139,25 +99,6 @@ TEST( GaussianFactorGraph, eliminate )
|
|||
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);}
|
||||
/* ************************************************************************* */
|
||||
|
|
|
@ -13,7 +13,6 @@ using namespace boost::assign;
|
|||
|
||||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
#include "Pose2.h"
|
||||
#include "LieConfig-inl.h"
|
||||
#include "Vector.h"
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ using namespace boost::assign;
|
|||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
#include "Ordering.h"
|
||||
#include "pose2SLAM.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
|
|
|
@ -13,13 +13,11 @@ using namespace boost::assign;
|
|||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
#include "Ordering.h"
|
||||
#include "smallExample.h"
|
||||
#include "SymbolicBayesNet.h"
|
||||
#include "SymbolicFactorGraph.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
|
||||
Symbol _B_('B', 0), _L_('L', 0);
|
||||
SymbolicConditional::shared_ptr
|
||||
|
@ -39,31 +37,6 @@ TEST( SymbolicBayesNet, equals )
|
|||
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 )
|
||||
{
|
||||
|
|
|
@ -12,130 +12,15 @@ using namespace boost::assign;
|
|||
#define GTSAM_MAGIC_KEY
|
||||
|
||||
#include "Ordering.h"
|
||||
#include "smallExample.h"
|
||||
#include "SymbolicFactorGraph.h"
|
||||
#include "SymbolicBayesNet.h"
|
||||
#include "FactorGraph-inl.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace example;
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST( SymbolicFactorGraph, symbolicFactorGraph )
|
||||
{
|
||||
// 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 )
|
||||
TEST( SymbolicFactorGraph, eliminate2 )
|
||||
{
|
||||
// create a test graph
|
||||
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 "Pose3.h"
|
||||
#include "Lie-inl.h"
|
||||
#include "LieConfig.h"
|
||||
|
||||
using namespace std;
|
||||
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