]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[bem3d] neuste Version eingescheckt
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 7 May 2011 15:00:55 +0000 (15:00 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 7 May 2011 15:00:55 +0000 (15:00 +0000)
[bem3d] schnittstelle für achsenorientierte Rechtecke
[src] Karkulik skripte versucht zu testen -> eigenartige Lösungen

git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@19 26120e32-c555-405d-b3e1-1f783fb42516

137 files changed:
src/bem3d/Makefile [new file with mode: 0644]
src/bem3d/ROADMAP [new file with mode: 0644]
src/bem3d/autom4te.cache/output.1
src/bem3d/autom4te.cache/output.2
src/bem3d/autom4te.cache/requests
src/bem3d/autom4te.cache/traces.1
src/bem3d/autom4te.cache/traces.2
src/bem3d/config.status [new file with mode: 0755]
src/bem3d/configure
src/bem3d/configure.ac
src/bem3d/src/HLibOperator.cpp [new file with mode: 0644]
src/bem3d/src/HLibOperator.hpp [new file with mode: 0644]
src/bem3d/src/HLibOperator_fwd.hpp [new file with mode: 0644]
src/bem3d/src/HLibOperator_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/Makefile [new file with mode: 0644]
src/bem3d/src/Makefile.am
src/bem3d/src/Makefile.in
src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-CouldNotDispatchCall.Po [new file with mode: 0644]
src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-DispatchIdNotSet.Po [new file with mode: 0644]
src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-FlexibleMesh.Po [new file with mode: 0644]
src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-GenericVector.Po [new file with mode: 0644]
src/bem3d/src/boundary_mesh/.deps/t.Po [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Face.cpp
src/bem3d/src/boundary_mesh/Face.hpp
src/bem3d/src/boundary_mesh/FaceDispatch.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/FaceDispatch_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Face_tmpl.cpp
src/bem3d/src/boundary_mesh/FlexibleMesh.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/FlexibleMesh.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/FlexibleMesh_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/HalfEdge.cpp [deleted file]
src/bem3d/src/boundary_mesh/HalfEdge.hpp
src/bem3d/src/boundary_mesh/HalfEdge_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Makefile [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Makefile.am
src/bem3d/src/boundary_mesh/Makefile.in
src/bem3d/src/boundary_mesh/Marker.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Marker_fwd.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Marker_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Mesh.cpp
src/bem3d/src/boundary_mesh/Mesh.hpp
src/bem3d/src/boundary_mesh/MeshBuilder.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/MeshBuilder_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/Vertex.cpp [deleted file]
src/bem3d/src/boundary_mesh/Vertex.hpp
src/bem3d/src/boundary_mesh/Vertex_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/algorithm/HandleObj.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/algorithm/HandleObj_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/algorithm/RefineUniformly.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/algorithm/RefineUniformly_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/dispatchTest.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Parallelogram.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Quadrilateral.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Triangle.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Triangle_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/face/Triangle_tmpl.hpp [new file with mode: 0644]
src/bem3d/src/boundary_mesh/generic/AbstractIteratorBase.hpp [deleted file]
src/bem3d/src/boundary_mesh/generic/Marking.cpp [deleted file]
src/bem3d/src/boundary_mesh/generic/Marking.hpp [deleted file]
src/bem3d/src/boundary_mesh/layer/Marker.cpp [deleted file]
src/bem3d/src/boundary_mesh/layer/Marker.hpp [deleted file]
src/bem3d/src/boundary_mesh/mesh_compare.cpp
src/bem3d/src/boundary_mesh/mixin/ExportingObj.cpp [deleted file]
src/bem3d/src/boundary_mesh/mixin/ExportingObj.hpp [deleted file]
src/bem3d/src/boundary_mesh/mixin/LoadingObj.cpp [deleted file]
src/bem3d/src/boundary_mesh/mixin/LoadingObj.hpp [deleted file]
src/bem3d/src/boundary_mesh/mixin/RefiningAdaptivly.cpp
src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.cpp [deleted file]
src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.hpp [deleted file]
src/bem3d/src/boundary_mesh/t.cpp
src/bem3d/src/boundary_mesh/testhilbertmesh [new file with mode: 0755]
src/bem3d/src/boundary_mesh/types.hpp [new file with mode: 0644]
src/bem3d/src/config.h [new file with mode: 0644]
src/bem3d/src/generic/BaseTypes.hpp [new file with mode: 0644]
src/bem3d/src/generic/GenericVector.cpp
src/bem3d/src/generic/GenericVector.hpp
src/bem3d/src/generic/GenericVector_tmpl.cpp
src/bem3d/src/generic/Singleton.hpp [new file with mode: 0644]
src/bem3d/src/generic/Singleton_tmpl.cpp [new file with mode: 0644]
src/bem3d/src/generic/TypeList.hpp [new file with mode: 0644]
src/bem3d/src/hilbert.hpp
src/bem3d/src/laplace/.deps/testLaplace-GenericVector.Po [new file with mode: 0644]
src/bem3d/src/laplace/.deps/testLaplace-HLibOperator.Po [new file with mode: 0644]
src/bem3d/src/laplace/.deps/testLaplace-SimpleLayerPotential.Po [new file with mode: 0644]
src/bem3d/src/laplace/.deps/testLaplace-TriangleIntegrator.Po [new file with mode: 0644]
src/bem3d/src/laplace/.deps/testLaplace-t.Po [new file with mode: 0644]
src/bem3d/src/laplace/Makefile [new file with mode: 0644]
src/bem3d/src/laplace/Makefile.am
src/bem3d/src/laplace/Makefile.in [new file with mode: 0644]
src/bem3d/src/laplace/SLPrecangle.cpp [new file with mode: 0644]
src/bem3d/src/laplace/SLPrecangle.hpp [new file with mode: 0644]
src/bem3d/src/laplace/SimpleLayerPotential.cpp
src/bem3d/src/laplace/SimpleLayerPotential.hpp
src/bem3d/src/laplace/TriangleIntegrator.cpp
src/bem3d/src/laplace/TriangleIntegrator.hpp
src/bem3d/src/laplace/V.ps [new file with mode: 0644]
src/bem3d/src/laplace/clustertree.ps [new file with mode: 0644]
src/bem3d/src/laplace/clustertree.txt [new file with mode: 0644]
src/bem3d/src/laplace/t.cpp
src/bem3d/src/laplace/testLaplace [new file with mode: 0755]
src/bem3d/src/mesh_explorer/Makefile [new file with mode: 0644]
src/bem3d/src/mesh_explorer/Mesh.hpp [new file with mode: 0644]
src/bem3d/src/mesh_explorer/MeshWidget.cpp [new file with mode: 0644]
src/bem3d/src/mesh_explorer/MeshWidget.hpp [new file with mode: 0644]
src/bem3d/src/mesh_explorer/mesh_explorer.cpp [new file with mode: 0644]
src/bem3d/src/mesh_explorer/mesh_explorer.pro [new file with mode: 0644]
src/bem3d/src/mesh_explorer/moc_MeshWidget.cpp [new file with mode: 0644]
src/bem3d/src/spaces/.deps/libhilbert_spaces_a-P0Space.Po [new file with mode: 0644]
src/bem3d/src/spaces/.deps/testP0Space-t.Po [new file with mode: 0644]
src/bem3d/src/spaces/HLibSpace.hpp [new file with mode: 0644]
src/bem3d/src/spaces/Makefile [new file with mode: 0644]
src/bem3d/src/spaces/Makefile.am
src/bem3d/src/spaces/Makefile.in
src/bem3d/src/spaces/P0Space.cpp
src/bem3d/src/spaces/P0Space.hpp
src/bem3d/src/spaces/t.cpp
src/bem3d/src/spaces/testP0Space [new file with mode: 0755]
src/bem3d/src/stamp-h1 [new file with mode: 0644]
src/build_A.cpp
src/build_A.mexa64 [new file with mode: 0755]
src/exportCOEL.m [new file with mode: 0644]
src/test_solveError.m

diff --git a/src/bem3d/Makefile b/src/bem3d/Makefile
new file mode 100644 (file)
index 0000000..924a14d
--- /dev/null
@@ -0,0 +1,765 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+pkgdatadir = $(datadir)/hilbert3d
+pkgincludedir = $(includedir)/hilbert3d
+pkglibdir = $(libdir)/hilbert3d
+pkglibexecdir = $(libexecdir)/hilbert3d
+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 = :
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
+       ChangeLog INSTALL NEWS depcomp install-sh missing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar
+AUTOCONF = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11
+AWK = mawk
+BLAS_LIBS = -lblas
+BOOST_CPPFLAGS = -I/usr/include
+BOOST_LDFLAGS = -L/usr/lib
+BOOST_REGEX_LIB = -lboost_regex-mt
+BOOST_ROOT_PATH = /usr
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN_PAPER_SIZE = 
+DX_CONFIG = Doxyfile
+DX_DOCDIR = docs/doxygen
+DX_DOT = 
+DX_DOXYGEN = 
+DX_DVIPS = 
+DX_EGREP = 
+DX_ENV =  SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'
+DX_FLAG_chi = 0
+DX_FLAG_chm = 0
+DX_FLAG_doc = 0
+DX_FLAG_dot = 0
+DX_FLAG_html = 0
+DX_FLAG_man = 0
+DX_FLAG_pdf = 0
+DX_FLAG_ps = 0
+DX_FLAG_rtf = 0
+DX_FLAG_xml = 0
+DX_HHC = 
+DX_LATEX = 
+DX_MAKEINDEX = 
+DX_PDFLATEX = 
+DX_PERL = /usr/bin/perl
+DX_PROJECT = Hilbert 3D
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FFLAGS = -g -O2
+FLIBS =  -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
+GREP = /bin/grep
+HLIB_CPPFLAGS = -I/usr/local/include
+HLIB_LDFLAGS = -L/usr/local/lib
+HLIB_LIB = -lhmatrix
+HLIB_ROOT_PATH = /usr/local
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LAPACK_LIBS = -llapack
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = hilbert3d
+PACKAGE_BUGREPORT = markus.mayr@tuwien.ac.at
+PACKAGE_NAME = Hilbert 3D
+PACKAGE_STRING = Hilbert 3D 0.1.0
+PACKAGE_TARNAME = hilbert3d
+PACKAGE_URL = http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git
+PACKAGE_VERSION = 0.1.0
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = 
+VERSION = 0.1.0
+abs_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_srcdir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_srcdir = /home/treecity/workspace/bacc/src/bem3d
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = 
+top_builddir = .
+top_srcdir = .
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = src
+##DX_CLEAN_HTML = docs/doxygen/html
+##DX_CLEAN_CHM = docs/doxygen/chm
+###DX_CLEAN_CHI = docs/doxygen/hilbert3d.chi
+##DX_CLEAN_MAN = docs/doxygen/man
+##DX_CLEAN_RTF = docs/doxygen/rtf
+##DX_CLEAN_XML = docs/doxygen/xml
+##DX_CLEAN_PS = docs/doxygen/hilbert3d.ps
+##DX_PS_GOAL = doxygen-ps
+##DX_CLEAN_PDF = docs/doxygen/hilbert3d.pdf
+##DX_PDF_GOAL = doxygen-pdf
+##DX_CLEAN_LATEX = docs/doxygen/latex
+#DX_CLEANFILES = \
+#      docs/doxygen/hilbert3d.tag \
+#      -r \
+#      $(DX_CLEAN_HTML) \
+#      $(DX_CLEAN_CHM) \
+#      $(DX_CLEAN_CHI) \
+#      $(DX_CLEAN_MAN) \
+#      $(DX_CLEAN_RTF) \
+#      $(DX_CLEAN_XML) \
+#  $(DX_CLEAN_PDF) \
+#  $(DX_CLEAN_PS) \
+#  $(DX_CLEAN_LATEX)
+
+all: all-recursive
+
+.SUFFIXES:
+am--refresh:
+       @:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           echo ' $(SHELL) ./config.status'; \
+           $(SHELL) ./config.status;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       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: ctags-recursive $(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)
+       $(am__remove_distdir)
+       test -d "$(distdir)" || mkdir "$(distdir)"
+       @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
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+       -test -n "$(am__skip_mode_fix)" \
+       || find "$(distdir)" -type d ! -perm -755 \
+               -exec chmod u+rwx,go+rx {} \; -o \
+         ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+       || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(am__remove_distdir)
+
+dist-bzip2: distdir
+       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+       $(am__remove_distdir)
+
+dist-lzma: distdir
+       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+       $(am__remove_distdir)
+
+dist-xz: distdir
+       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+       $(am__remove_distdir)
+
+dist-tarZ: distdir
+       tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+       $(am__remove_distdir)
+
+dist-shar: distdir
+       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       $(am__remove_distdir)
+
+dist-zip: distdir
+       -rm -f $(distdir).zip
+       zip -rq $(distdir).zip $(distdir)
+       $(am__remove_distdir)
+
+dist dist-all: distdir
+       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       case '$(DIST_ARCHIVES)' in \
+       *.tar.gz*) \
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+       *.tar.bz2*) \
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+       *.tar.lzma*) \
+         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+       *.tar.xz*) \
+         xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+       *.tar.Z*) \
+         uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+       *.shar.gz*) \
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+       *.zip*) \
+         unzip $(distdir).zip ;;\
+       esac
+       chmod -R a-w $(distdir); chmod a+w $(distdir)
+       mkdir $(distdir)/_build
+       mkdir $(distdir)/_inst
+       chmod a-w $(distdir)
+       test -d $(distdir)/_build || exit 0; \
+       dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+         && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+         && am__cwd=`pwd` \
+         && $(am__cd) $(distdir)/_build \
+         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(DISTCHECK_CONFIGURE_FLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+         && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+               distuninstallcheck \
+         && chmod -R a-w "$$dc_install_base" \
+         && ({ \
+              (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+                   distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+             } || { rm -rf "$$dc_destdir"; exit 1; }) \
+         && rm -rf "$$dc_destdir" \
+         && $(MAKE) $(AM_MAKEFLAGS) dist \
+         && rm -rf $(DIST_ARCHIVES) \
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+         && cd "$$am__cwd" \
+         || exit 1
+       $(am__remove_distdir)
+       @(echo "$(distdir) archives ready for distribution: "; \
+         list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+         sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+       @$(am__cd) '$(distuninstallcheck_dir)' \
+       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+          || { echo "ERROR: files left after uninstall:" ; \
+               if test -n "$(DESTDIR)"; then \
+                 echo "  (check DESTDIR support)"; \
+               fi ; \
+               $(distuninstallcheck_listfiles) ; \
+               exit 1; } >&2
+distcleancheck: distclean
+       @if test '$(srcdir)' = . ; then \
+         echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+         exit 1 ; \
+       fi
+       @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+         || { echo "ERROR: files left in build directory after distclean:" ; \
+              $(distcleancheck_listfiles) ; \
+              exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+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-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -rf $(top_srcdir)/autom4te.cache
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am am--refresh check check-am clean clean-generic \
+       ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+       dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
+       distclean distclean-generic distclean-tags distcleancheck \
+       distdir distuninstallcheck 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 installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+       pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
+
+##doxygen-ps: docs/doxygen/hilbert3d.ps
+##docs/doxygen/hilbert3d.ps: docs/doxygen/hilbert3d.tag
+##     cd docs/doxygen/latex; \
+##     rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
+##     $(DX_LATEX) refman.tex; \
+##     $(MAKEINDEX_PATH) refman.idx; \
+##     $(DX_LATEX) refman.tex; \
+##     countdown=5; \
+##     while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
+##                                       refman.log > /dev/null 2>&1 \
+##        && test $$countdown -gt 0; do \
+##             $(DX_LATEX) refman.tex; \
+##             countdown=`expr $$countdown - 1`; \
+##     done; \
+##     $(DX_DVIPS) -o ../hilbert3d.ps refman.dvi
+##doxygen-pdf: docs/doxygen/hilbert3d.pdf
+##docs/doxygen/hilbert3d.pdf: docs/doxygen/hilbert3d.tag
+##     cd docs/doxygen/latex; \
+##     rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
+##     $(DX_PDFLATEX) refman.tex; \
+##     $(DX_MAKEINDEX) refman.idx; \
+##     $(DX_PDFLATEX) refman.tex; \
+##     countdown=5; \
+##     while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
+##                                       refman.log > /dev/null 2>&1 \
+##        && test $$countdown -gt 0; do \
+##             $(DX_PDFLATEX) refman.tex; \
+##             countdown=`expr $$countdown - 1`; \
+##     done; \
+##     mv refman.pdf ../hilbert3d.pdf
+#.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
+#.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
+#doxygen-run: docs/doxygen/hilbert3d.tag
+#doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
+#docs/doxygen/hilbert3d.tag: $(DX_CONFIG) $(pkginclude_HEADERS)
+#      rm -rf docs/doxygen
+#      $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG)
+
+# 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:
diff --git a/src/bem3d/ROADMAP b/src/bem3d/ROADMAP
new file mode 100644 (file)
index 0000000..f32dec8
--- /dev/null
@@ -0,0 +1,81 @@
+*******************************************************************************
+*                       Version 0.2: Mission "V\phi=f"                        *
+*******************************************************************************
+
+.=========================================================.==========.========.
+| Aufgabe                                                 | Verantw. | Status |
+|=========================================================|==========|========|
+| Netzverwaltung                                          | MM       | teilw. |
+|=========================================================|==========|========|
+| 01) Das Speichern und effiziente Abrufen von Netzen,    | MM       |   OK   |
+|       die aus beliebigen Polygonen bestehen.            |          |        |
+|---------------------------------------------------------|----------|--------|
+| 02) Laden und Speichern von Netzen im Wavefront-OBJ-    | MM       |   OK   |
+|       Format bzw. in einer Restriktion dieses Formats.  |          |        |
+|---------------------------------------------------------|----------|--------|
+| 03) Uniforme Netzverfeinerung für Dreiecke und          | MM       |   OK   |
+|       konvexe Vierecke.                                 |          |        |
+|---------------------------------------------------------|----------|--------|
+| 04) Adaptive Netzverfeinerung für Dreiecke und          | MM       | teilw. |
+|       konvexe Vierecke.                                 |          |        |
+|---------------------------------------------------------|----------|--------|
+| 05) Ein einfaches, plattformunabhängiges Werkzeug zum   | MM       |   OK   |
+|       Darstellen von Netzen (mesh_explorer).            |          |        |
+|---------------------------------------------------------|----------|--------|
+| 06) Mechanismen zum Verwalten des Codes für             | MM       | teilw. |
+|       verschiedenartige Polygone.                       |          |        |
+|=========================================================|==========|========|
+| Finite-Element-Räume                                    |          |        |
+|=========================================================|==========|========|
+| 07) P0-Räume und P0-Elemente, d.h. Basisfunktionen.     | MK       | teilw. |
+|---------------------------------------------------------|----------|--------|
+| 08) Diskrete Funktionen als Linearkombination von       |          |   ??   |
+|       Basisfunktionen.                                  |          |        |
+|=========================================================|==========|========|
+| Operatoren                                              |          |        |
+|=========================================================|==========|========|
+| 09) Einfachschichtpotential für Laplace für Dreiecke.   | MK       | teilw. |
+|---------------------------------------------------------|----------|--------|
+| 10) Einfachschichtpotential für Laplace und achsen-     | PS,MM,MK |  TODO  |
+|       parallele Rechtecke.                              |          |        |
+|---------------------------------------------------------|----------|--------|
+| 11) Anbindung an die HLib zum Aufstellen der Matrizen   | MK,MM    | teilw. |
+|       und zum Lösen.                                    |          |        |
+|=========================================================|==========|========|
+| Dokumentation                                           |          |        |
+|=========================================================|==========|========|
+| Testen                                                  |          |        |
+'========================================================='=========='========'
+
+@ Netzverwaltung: Es ist derzeit noch nicht möglich, ein Mesh-Template so zu
+        spezialisieren, dass es in eine Bibliothek kompiliert werden kann.
+@ 02: Es werden nur die v- und f-Direktiven unterstützt.
+@ 04: Die adaptive Netzverfeinerung wurde noch nicht vollständig von der alten
+        auf die neue Netzverwaltung übernommen.
+@ 06: SingleDispatch ist implementiert und funktionstüchtig, DoubleDispatch
+        ist implementiert, muss jedoch noch getestet werden.
+@ 10: Peter Schaefer arbeitet derzeit in einem externen Repository an dem
+        Einfachschichtpotential für achsenparallele Rechtecke. Sobald verfügbar
+        werden die entsprechenden Funktionen übernommen.
+@ 11: Die Anbindung ist weitgehend ungetestet.
+
+*******************************************************************************
+*                       Version 0.4:                                          *
+*******************************************************************************
+
+.=========================================================.==========.========.
+| Aufgabe                                                 | Verantw. | Status |
+|=========================================================|==========|========|
+| Finite-Element-Räume                                    |          |        |
+|=========================================================|==========|========|
+| Operatoren                                              |          |        |
+|=========================================================|==========|========|
+| Fehler-Schätzer                                         |          |        |
+|=========================================================|==========|========|
+| mesh_explorer                                           |          |        |
+|=========================================================|==========|========|
+| Netzverwaltung                                          |          |        |
+|=========================================================|==========|========|
+| Dokumentation                                           |          |        |
+'========================================================='=========='========'
+
index b34ae7e490868e99129d3e06de9d0d56a71f7fa6..6868db44977ff4d425dbb2eafe54da290ff36304 100755 (executable)
@@ -3590,7 +3590,7 @@ fi
 
 
 # Files:
-DX_PROJECT=Hilbert 3D
+DX_PROJECT="Hilbert 3D"
 
 DX_CONFIG=Doxyfile
 
@@ -9337,7 +9337,7 @@ $as_echo "@%:@define HAVE_STDBOOL_H 1" >>confdefs.h
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -10155,6 +10155,7 @@ do
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "src/boundary_mesh/Makefile") CONFIG_FILES="$CONFIG_FILES src/boundary_mesh/Makefile" ;;
     "src/spaces/Makefile") CONFIG_FILES="$CONFIG_FILES src/spaces/Makefile" ;;
+    "src/laplace/Makefile") CONFIG_FILES="$CONFIG_FILES src/laplace/Makefile" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
index b34ae7e490868e99129d3e06de9d0d56a71f7fa6..6868db44977ff4d425dbb2eafe54da290ff36304 100755 (executable)
@@ -3590,7 +3590,7 @@ fi
 
 
 # Files:
-DX_PROJECT=Hilbert 3D
+DX_PROJECT="Hilbert 3D"
 
 DX_CONFIG=Doxyfile
 
@@ -9337,7 +9337,7 @@ $as_echo "@%:@define HAVE_STDBOOL_H 1" >>confdefs.h
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -10155,6 +10155,7 @@ do
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "src/boundary_mesh/Makefile") CONFIG_FILES="$CONFIG_FILES src/boundary_mesh/Makefile" ;;
     "src/spaces/Makefile") CONFIG_FILES="$CONFIG_FILES src/spaces/Makefile" ;;
+    "src/laplace/Makefile") CONFIG_FILES="$CONFIG_FILES src/laplace/Makefile" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
index 8e7a009ba34e5f2cf1dc748313bf752f80ee3ccd..85aa52a0ff24f183b31b1035c7df923d4c90c27a 100755 (executable)
                         'AM_PROG_MKDIR_P' => 1,
                         'DX_FEATURE_chi' => 1,
                         'DX_IF_FEATURE' => 1,
+                        'DX_CHM_FEATURE' => 1,
                         'AM_AUTOMAKE_VERSION' => 1,
                         'DX_FEATURE_doc' => 1,
-                        'DX_CHM_FEATURE' => 1,
                         'AM_MISSING_HAS_RUN' => 1,
                         'DX_PDF_FEATURE' => 1,
                         'AM_SUBST_NOTMAKE' => 1,
index 1f1ebe00797a3dec54b54a6202462627f6f0978b..8c32705f771bd14cbf8b1b70b62337da958bd5c8 100755 (executable)
@@ -1485,7 +1485,7 @@ m4trace:configure.ac:6: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
 m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
 m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
 m4trace:configure.ac:7: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:10: -1- DX_INIT_DOXYGEN([Hilbert 3D], [Doxyfile], [docs/doxygen])
+m4trace:configure.ac:10: -1- DX_INIT_DOXYGEN(["Hilbert 3D"], [Doxyfile], [docs/doxygen])
 m4trace:configure.ac:10: -1- m4_pattern_allow([^DX_PROJECT$])
 m4trace:configure.ac:10: -1- m4_pattern_allow([^DX_CONFIG$])
 m4trace:configure.ac:10: -1- m4_pattern_allow([^DX_DOCDIR$])
index 9de8fcf7c684f866ade1ec504ab8c4e46ee880c9..4a1e5e60bb155a7c3582678f7f225a654b53678e 100755 (executable)
@@ -303,7 +303,7 @@ m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
 m4trace:configure.ac:7: -1- AC_SUBST([RANLIB])
 m4trace:configure.ac:7: -1- AC_SUBST_TRACE([RANLIB])
 m4trace:configure.ac:7: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:10: -1- AC_SUBST([DX_PROJECT], [Hilbert 3D])
+m4trace:configure.ac:10: -1- AC_SUBST([DX_PROJECT], ["Hilbert 3D"])
 m4trace:configure.ac:10: -1- AC_SUBST_TRACE([DX_PROJECT])
 m4trace:configure.ac:10: -1- m4_pattern_allow([^DX_PROJECT$])
 m4trace:configure.ac:10: -1- AC_SUBST([DX_CONFIG], [ifelse([Doxyfile], [], Doxyfile, [Doxyfile])])
@@ -952,7 +952,7 @@ m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDBOOL_H])
 m4trace:configure.ac:16: -1- m4_pattern_allow([^HAVE_STDBOOL_H$])
 m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if stdbool.h conforms to C99. */
 @%:@undef HAVE_STDBOOL_H])
-m4trace:configure.ac:18: -1- AC_CONFIG_FILES([Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile])
+m4trace:configure.ac:18: -1- AC_CONFIG_FILES([Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile])
 m4trace:configure.ac:19: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
 m4trace:configure.ac:19: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
 m4trace:configure.ac:19: -1- m4_pattern_allow([^LIB@&t@OBJS$])
diff --git a/src/bem3d/config.status b/src/bem3d/config.status
new file mode 100755 (executable)
index 0000000..5450625
--- /dev/null
@@ -0,0 +1,1272 @@
+#! /bin/bash
+# Generated by configure.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=${CONFIG_SHELL-/bin/bash}
+export SHELL
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by Hilbert 3D $as_me 0.1.0, which was
+generated by GNU Autoconf 2.67.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+# Files that config.status was made for.
+config_files=" Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile"
+config_headers=" src/config.h"
+config_commands=" depfiles"
+
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <markus.mayr@tuwien.ac.at>.
+Hilbert 3D home page: <http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git>."
+
+ac_cs_config=""
+ac_cs_version="\
+Hilbert 3D config.status 0.1.0
+configured by ./configure, generated by GNU Autoconf 2.67,
+  with options \"$ac_cs_config\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='/home/treecity/workspace/bacc/src/bem3d'
+srcdir='.'
+INSTALL='/usr/bin/install -c'
+MKDIR_P='/bin/mkdir -p'
+AWK='mawk'
+test -n "$AWK" || AWK=awk
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+if $ac_cs_recheck; then
+  set X '/bin/bash' './configure'  $ac_configure_extra_args --no-create --no-recursion
+  shift
+  $as_echo "running CONFIG_SHELL=/bin/bash $*" >&6
+  CONFIG_SHELL='/bin/bash'
+  export CONFIG_SHELL
+  exec "$@"
+fi
+
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="" ac_aux_dir="."
+
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "src/boundary_mesh/Makefile") CONFIG_FILES="$CONFIG_FILES src/boundary_mesh/Makefile" ;;
+    "src/spaces/Makefile") CONFIG_FILES="$CONFIG_FILES src/spaces/Makefile" ;;
+    "src/laplace/Makefile") CONFIG_FILES="$CONFIG_FILES src/laplace/Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+cat >>"$tmp/subs1.awk" <<\_ACAWK &&
+S["am__EXEEXT_FALSE"]=""
+S["am__EXEEXT_TRUE"]="#"
+S["LTLIBOBJS"]=""
+S["LIBOBJS"]=""
+S["EGREP"]="/bin/grep -E"
+S["GREP"]="/bin/grep"
+S["CPP"]="gcc -E"
+S["HLIB_LIB"]="-lhmatrix"
+S["HLIB_ROOT_PATH"]="/usr/local"
+S["HLIB_LDFLAGS"]="-L/usr/local/lib"
+S["HLIB_CPPFLAGS"]="-I/usr/local/include"
+S["LAPACK_LIBS"]="-llapack"
+S["BLAS_LIBS"]="-lblas"
+S["FLIBS"]=" -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu "\
+"-lgfortran -lm"
+S["ac_ct_F77"]="gfortran"
+S["FFLAGS"]="-g -O2"
+S["F77"]="gfortran"
+S["BOOST_REGEX_LIB"]="-lboost_regex-mt"
+S["am__fastdepCC_FALSE"]="#"
+S["am__fastdepCC_TRUE"]=""
+S["CCDEPMODE"]="depmode=gcc3"
+S["ac_ct_CC"]="gcc"
+S["CFLAGS"]="-g -O2"
+S["CC"]="gcc"
+S["BOOST_ROOT_PATH"]="/usr"
+S["BOOST_LDFLAGS"]="-L/usr/lib"
+S["BOOST_CPPFLAGS"]="-I/usr/include"
+S["DOXYGEN_PAPER_SIZE"]=""
+S["DX_COND_latex_FALSE"]=""
+S["DX_COND_latex_TRUE"]="#"
+S["DX_COND_pdf_FALSE"]=""
+S["DX_COND_pdf_TRUE"]="#"
+S["DX_PDFLATEX"]=""
+S["DX_FLAG_pdf"]="0"
+S["DX_COND_ps_FALSE"]=""
+S["DX_COND_ps_TRUE"]="#"
+S["DX_EGREP"]=""
+S["DX_DVIPS"]=""
+S["DX_MAKEINDEX"]=""
+S["DX_LATEX"]=""
+S["DX_FLAG_ps"]="0"
+S["DX_COND_html_FALSE"]=""
+S["DX_COND_html_TRUE"]="#"
+S["DX_FLAG_html"]="0"
+S["DX_COND_chi_FALSE"]=""
+S["DX_COND_chi_TRUE"]="#"
+S["DX_FLAG_chi"]="0"
+S["DX_COND_chm_FALSE"]=""
+S["DX_COND_chm_TRUE"]="#"
+S["DX_HHC"]=""
+S["DX_FLAG_chm"]="0"
+S["DX_COND_xml_FALSE"]=""
+S["DX_COND_xml_TRUE"]="#"
+S["DX_FLAG_xml"]="0"
+S["DX_COND_rtf_FALSE"]=""
+S["DX_COND_rtf_TRUE"]="#"
+S["DX_FLAG_rtf"]="0"
+S["DX_COND_man_FALSE"]=""
+S["DX_COND_man_TRUE"]="#"
+S["DX_FLAG_man"]="0"
+S["DX_COND_dot_FALSE"]=""
+S["DX_COND_dot_TRUE"]="#"
+S["DX_DOT"]=""
+S["DX_FLAG_dot"]="0"
+S["DX_COND_doc_FALSE"]=""
+S["DX_COND_doc_TRUE"]="#"
+S["DX_PERL"]="/usr/bin/perl"
+S["DX_DOXYGEN"]=""
+S["DX_FLAG_doc"]="0"
+S["DX_ENV"]=" SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_"\
+"HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'"
+S["DX_DOCDIR"]="docs/doxygen"
+S["DX_CONFIG"]="Doxyfile"
+S["DX_PROJECT"]="Hilbert 3D"
+S["RANLIB"]="ranlib"
+S["am__fastdepCXX_FALSE"]="#"
+S["am__fastdepCXX_TRUE"]=""
+S["CXXDEPMODE"]="depmode=gcc3"
+S["AMDEPBACKSLASH"]="\\"
+S["AMDEP_FALSE"]="#"
+S["AMDEP_TRUE"]=""
+S["am__quote"]=""
+S["am__include"]="include"
+S["DEPDIR"]=".deps"
+S["OBJEXT"]="o"
+S["EXEEXT"]=""
+S["ac_ct_CXX"]="g++"
+S["CPPFLAGS"]=""
+S["LDFLAGS"]=""
+S["CXXFLAGS"]="-g -O2"
+S["CXX"]="g++"
+S["am__untar"]="${AMTAR} xf -"
+S["am__tar"]="${AMTAR} chof - \"$$tardir\""
+S["AMTAR"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar"
+S["am__leading_dot"]="."
+S["SET_MAKE"]=""
+S["AWK"]="mawk"
+S["mkdir_p"]="/bin/mkdir -p"
+S["MKDIR_P"]="/bin/mkdir -p"
+S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s"
+S["STRIP"]=""
+S["install_sh"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh"
+S["MAKEINFO"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo"
+S["AUTOHEADER"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader"
+S["AUTOMAKE"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11"
+S["AUTOCONF"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf"
+S["ACLOCAL"]="${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11"
+S["VERSION"]="0.1.0"
+S["PACKAGE"]="hilbert3d"
+S["CYGPATH_W"]="echo"
+S["am__isrc"]=""
+S["INSTALL_DATA"]="${INSTALL} -m 644"
+S["INSTALL_SCRIPT"]="${INSTALL}"
+S["INSTALL_PROGRAM"]="${INSTALL}"
+S["target_alias"]=""
+S["host_alias"]=""
+S["build_alias"]=""
+S["LIBS"]=""
+S["ECHO_T"]=""
+S["ECHO_N"]="-n"
+S["ECHO_C"]=""
+S["DEFS"]="-DHAVE_CONFIG_H"
+S["mandir"]="${datarootdir}/man"
+S["localedir"]="${datarootdir}/locale"
+S["libdir"]="${exec_prefix}/lib"
+S["psdir"]="${docdir}"
+S["pdfdir"]="${docdir}"
+S["dvidir"]="${docdir}"
+S["htmldir"]="${docdir}"
+S["infodir"]="${datarootdir}/info"
+S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}"
+S["oldincludedir"]="/usr/include"
+S["includedir"]="${prefix}/include"
+S["localstatedir"]="${prefix}/var"
+S["sharedstatedir"]="${prefix}/com"
+S["sysconfdir"]="${prefix}/etc"
+S["datadir"]="${datarootdir}"
+S["datarootdir"]="${prefix}/share"
+S["libexecdir"]="${exec_prefix}/libexec"
+S["sbindir"]="${exec_prefix}/sbin"
+S["bindir"]="${exec_prefix}/bin"
+S["program_transform_name"]="s,x,x,"
+S["prefix"]="/usr/local"
+S["exec_prefix"]="${prefix}"
+S["PACKAGE_URL"]="http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git"
+S["PACKAGE_BUGREPORT"]="markus.mayr@tuwien.ac.at"
+S["PACKAGE_STRING"]="Hilbert 3D 0.1.0"
+S["PACKAGE_VERSION"]="0.1.0"
+S["PACKAGE_TARNAME"]="hilbert3d"
+S["PACKAGE_NAME"]="Hilbert 3D"
+S["PATH_SEPARATOR"]=":"
+S["SHELL"]="/bin/bash"
+_ACAWK
+cat >>"$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+D["PACKAGE_NAME"]=" \"Hilbert 3D\""
+D["PACKAGE_TARNAME"]=" \"hilbert3d\""
+D["PACKAGE_VERSION"]=" \"0.1.0\""
+D["PACKAGE_STRING"]=" \"Hilbert 3D 0.1.0\""
+D["PACKAGE_BUGREPORT"]=" \"markus.mayr@tuwien.ac.at\""
+D["PACKAGE_URL"]=" \"http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git\""
+D["PACKAGE"]=" \"hilbert3d\""
+D["VERSION"]=" \"0.1.0\""
+D["HAVE_BOOST"]=" /**/"
+D["HAVE_BOOST_REGEX"]=" /**/"
+D["HAVE_BLAS"]=" 1"
+D["HAVE_LAPACK"]=" 1"
+D["HAVE_HLIB"]=" /**/"
+D["STDC_HEADERS"]=" 1"
+D["HAVE_SYS_TYPES_H"]=" 1"
+D["HAVE_SYS_STAT_H"]=" 1"
+D["HAVE_STDLIB_H"]=" 1"
+D["HAVE_STRING_H"]=" 1"
+D["HAVE_MEMORY_H"]=" 1"
+D["HAVE_STRINGS_H"]=" 1"
+D["HAVE_INTTYPES_H"]=" 1"
+D["HAVE_STDINT_H"]=" 1"
+D["HAVE_UNISTD_H"]=" 1"
+D["HAVE__BOOL"]=" 1"
+D["HAVE_STDBOOL_H"]=" 1"
+  for (key in D) D_is_set[key] = 1
+  FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\t (]|$)/ {
+  line = $ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+        # (if the path is not absolute).  The absolute path cannot be DOS-style,
+        # because $ac_f cannot contain `:'.
+        test -f "$ac_f" ||
+          case $ac_f in
+          [\\/$]*) false;;
+          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+          esac ||
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+         $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+       `' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$ac_file" : 'X\(//\)[^/]' \| \
+        X"$ac_file" : 'X\(//\)$' \| \
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  ac_datarootdir_hack='
+  s&@datadir@&${datarootdir}&g
+  s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g
+  s&@infodir@&${datarootdir}/info&g
+  s&@localedir@&${datarootdir}/locale&g
+  s&@mandir@&${datarootdir}/man&g
+  s&\${datarootdir}&${prefix}/share&g' ;;
+esac
+ac_sed_extra="/^[       ]*VPATH[        ]*=[    ]*/{
+h
+s///
+s/^/:/
+s/[     ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[  ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[      ]*$//
+}
+
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$_am_arg" : 'X\(//\)[^/]' \| \
+        X"$_am_arg" : 'X\(//\)$' \| \
+        X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$mf" : 'X\(//\)[^/]' \| \
+        X"$mf" : 'X\(//\)$' \| \
+        X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$file" : 'X\(//\)[^/]' \| \
+        X"$file" : 'X\(//\)$' \| \
+        X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
index c23e2ddda585a5f28bf4aff701bb559687adfde1..e0e7146d92cd7f5b9b9d530b6ff1d0838c7863c6 100755 (executable)
@@ -3590,7 +3590,7 @@ fi
 
 
 # Files:
-DX_PROJECT=Hilbert 3D
+DX_PROJECT="Hilbert 3D"
 
 DX_CONFIG=Doxyfile
 
@@ -9337,7 +9337,7 @@ $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -10155,6 +10155,7 @@ do
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "src/boundary_mesh/Makefile") CONFIG_FILES="$CONFIG_FILES src/boundary_mesh/Makefile" ;;
     "src/spaces/Makefile") CONFIG_FILES="$CONFIG_FILES src/spaces/Makefile" ;;
+    "src/laplace/Makefile") CONFIG_FILES="$CONFIG_FILES src/laplace/Makefile" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
index bdf94fb09a9b72ca99fae6d085bf43284951a543..06f3daf060ab15f60f43f51ba7a2b529ce5961a6 100644 (file)
@@ -7,7 +7,7 @@ AC_PROG_CXX
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 
-DX_INIT_DOXYGEN([Hilbert 3D], [Doxyfile], [docs/doxygen])
+DX_INIT_DOXYGEN(["Hilbert 3D"], [Doxyfile], [docs/doxygen])
 
 AX_BOOST_BASE([1.38.0])
 AX_BOOST_REGEX
@@ -15,6 +15,6 @@ AX_HLIB
 
 AC_HEADER_STDBOOL
 
-AC_CONFIG_FILES([Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile])
+AC_CONFIG_FILES([Makefile src/Makefile src/boundary_mesh/Makefile src/spaces/Makefile src/laplace/Makefile])
 AC_OUTPUT
 
diff --git a/src/bem3d/src/HLibOperator.cpp b/src/bem3d/src/HLibOperator.cpp
new file mode 100644 (file)
index 0000000..f86b745
--- /dev/null
@@ -0,0 +1,15 @@
+#include "HLibOperator_fwd.hpp"
+
+extern "C"
+{
+# include "HLib/rkmatrix.h"
+}
+
+void
+HLibInitializer::initialize()
+{
+  init_rkmatrices(0);
+}
+
+bool HLibInitializer::hLibInitialized = false;
+
diff --git a/src/bem3d/src/HLibOperator.hpp b/src/bem3d/src/HLibOperator.hpp
new file mode 100644 (file)
index 0000000..21a238a
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_HLIBOPERATOR_HPP_GUARD_
+#define HILBERT3D_HLIBOPERATOR_HPP_GUARD_
+
+#include "HLibOperator_fwd.hpp"
+#include "HLibOperator_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/HLibOperator_fwd.hpp b/src/bem3d/src/HLibOperator_fwd.hpp
new file mode 100644 (file)
index 0000000..dcf06f7
--- /dev/null
@@ -0,0 +1,123 @@
+#ifndef HILBERT3D_HLIBOPERATOR_FWD_HPP_GUARD_
+#define HILBERT3D_HLIBOPERATOR_FWD_HPP_GUARD_
+
+#include <vector>
+
+extern "C"
+{
+# include "HLib/cluster.h"
+# include "HLib/supermatrix.h"
+# include "HLib/krylov.h"
+# include "HLib/graphics.h"
+# include "HLib/aca.h"
+}
+
+#define ACA_KMAX 1e4
+#define ACA_EPS 1e-5
+#define ACA_STRATEGY HLIB_ACA_RELATIVE
+
+enum MatrixSymmetry
+{
+  SymmetricMatrix,
+  UnsymmetricMatrix
+};
+
+enum HLibOperatorConstructionMethod
+{
+  BuildHLibOperatorFull,
+  BuildHLibOperatorFromCluster
+};
+
+class HLibInitializer
+{
+  public:
+    static void initialize();
+
+  private:
+    static bool hLibInitialized;
+};
+
+/**
+ * @brief Base class for operators which are based upon HLib.
+ *
+ * This class template encapsulates most calls to the hierarchical matrix
+ * library HLib which are necessary to build an operator, which is cheap in
+ * terms of storage and computational complexity.
+ *
+ * The class takes an ansatz space and a test space class as template
+ * parameters. Spaces, which are used as template parameters, must provide the
+ * createClusterFactory method and the getNumberOfElements method. In other
+ * words they must implement the space::HLibSpace class. Apart from implementing
+ * the createClusterFactory method within the finite element space classes, it
+ * should not be necessary to make further calls to HLib functions.
+ *
+ * The third template parameter, symmetry, takes either the values
+ * UnsymmetricMatrix or SymmetricMatrix. For the symmetric case, we provide
+ * a more efficient implementation of the adaptive cross approximation
+ * algorithm, c.f. fillSupermatrixAca.
+ */
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry = UnsymmetricMatrix >
+class HLibOperator
+{
+  public:
+    static const double defaultEpsForAcaAlgorithm = 1e-8;
+    static const double defaultAimedResidualForGMRes = 1e-6;
+    static const double defaultMaximumNumberOfStepsForGMRes = 100;
+    static const int hLibMinimalAdmissableBlockSize = 30;
+    static const enum HLibOperatorConstructionMethod
+        defaultOperatorConstructionMethod = BuildHLibOperatorFromCluster;
+
+    HLibOperator(
+        const TAnsatzSpace& ansatzSpace,
+        const TTestSpace& testSpace,
+        double (&computeEntry)( const typename TAnsatzSpace::Element& e1,
+                                const typename TTestSpace::Element& e2 ),
+        double acaEps = defaultEpsForAcaAlgorithm,
+        enum HLibOperatorConstructionMethod method =
+          defaultOperatorConstructionMethod);
+    virtual ~HLibOperator();
+
+    std::vector< double > solveGMRes(
+        const std::vector< double >& rhs,
+        double aimedResidual = defaultAimedResidualForGMRes,
+        double maximumNumberOfSteps = defaultMaximumNumberOfStepsForGMRes
+        ) const;
+
+  private:
+    const TAnsatzSpace ansatzSpace_;
+    const TTestSpace testSpace_;
+    double (&computeEntry_)( const typename TAnsatzSpace::Element& e1,
+                              const typename TTestSpace::Element& e2 );
+    supermatrix* supermatrix_;
+    clustertree* rowClusterTree_;
+    clustertree* columnClusterTree_;
+
+    static void fillSupermatrixAca(
+        supermatrix* matrix,
+        const cluster* rowCluster,
+        const cluster* columnCluster,
+        void* data,
+        double acaEps);
+
+    /**
+     * @brief Wrapper method around the computeEntry_ function.
+     *
+     * @param i Index of an element within the ansatz space with respect to
+     *          HLib's internal order.
+     * @param j Index of an element within the test space with respect to
+     *          HLib's internal order.
+     * @param data A valid pointer to an HLibOperator instance.
+     *
+     * Using the HLibOperator instance data points to, this function determines
+     * the elements within the respective finite element spaces and calls the
+     * computeEntry_ function.
+     *
+     * @returns The result the computeEntry_ function returns for the determined
+     *          space elements.
+     */
+    static double computeEntryHelper( int i, int j, void* data );
+};
+
+#endif
+
diff --git a/src/bem3d/src/HLibOperator_tmpl.cpp b/src/bem3d/src/HLibOperator_tmpl.cpp
new file mode 100644 (file)
index 0000000..63005be
--- /dev/null
@@ -0,0 +1,201 @@
+#include "HLibOperator_fwd.hpp"
+
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry >
+HLibOperator< TAnsatzSpace, TTestSpace, symmetry >::HLibOperator(
+    const TAnsatzSpace& ansatzSpace,
+    const TTestSpace& testSpace,
+    double (&computeEntry)( const typename TAnsatzSpace::Element& e1,
+                            const typename TTestSpace::Element& e2 ),
+    double acaEps,
+    enum HLibOperatorConstructionMethod method )
+  : ansatzSpace_(ansatzSpace), testSpace_(testSpace),
+    computeEntry_(computeEntry), supermatrix_(0),
+    rowClusterTree_(0), columnClusterTree_(0)
+{
+  HLibInitializer::initialize();
+
+  unsigned int numberOfAnsatzElements = ansatzSpace_.getNumberOfElements();
+  clusterfactory* ansatzFactory = ansatzSpace_.createClusterFactory();
+
+
+  columnClusterTree_ = create_clustertree(
+      ansatzFactory, HLIB_GEOMETRIC, 30, /* XXX: What is this constant? */
+      numberOfAnsatzElements * numberOfAnsatzElements);
+  del_clusterfactory( ansatzFactory );
+
+  write_clustertree(columnClusterTree_,"clustertree.txt");
+  output_clustertree(columnClusterTree_,"clustertree.ps",0);
+
+  unsigned int numberOfTestElements   = testSpace_.getNumberOfElements();
+  if ( &ansatzSpace == &testSpace )
+  {
+    std::cerr << "TestSpace = AnsatzSpace" << std::endl;
+    rowClusterTree_ = columnClusterTree_;
+  }
+  else
+  {
+    clusterfactory* testFactory = testSpace_.createClusterFactory();
+    rowClusterTree_ = create_clustertree(
+        testFactory, HLIB_GEOMETRIC, 30, /* XXX: What is this constant? */
+        numberOfTestElements * numberOfTestElements );
+    del_clusterfactory( testFactory );
+  }
+
+  if ( method == BuildHLibOperatorFull )
+  {
+    supermatrix_ = build_full_supermatrix(
+        rowClusterTree_->root, columnClusterTree_->root );
+  }
+  else if ( method == BuildHLibOperatorFromCluster )
+  {
+    //assert(0); // TODO/XXX: Not implemented yet!
+    supermatrix_ = build_supermatrix_from_cluster(
+        rowClusterTree_->root, columnClusterTree_->root,
+        1, 30, HLIB_MINADM);
+  }
+  else
+  {
+    assert(0);
+  }
+
+  outputrank_supermatrix(supermatrix_,"V.ps");
+//  print_cluster(rowClusterTree_->root,0,0);
+
+  fillSupermatrixAca(
+      supermatrix_,
+      rowClusterTree_->root,
+      columnClusterTree_->root,
+      (void*) this,
+      acaEps);
+
+//  fill_supermatrix_aca(supermatrix_,rowClusterTree_->root,columnClusterTree_->root,(void*) this, computeEntryHelper, acaEps);
+}
+
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry >
+HLibOperator< TAnsatzSpace, TTestSpace, symmetry >::~HLibOperator()
+{
+  del_supermatrix( supermatrix_ );
+}
+
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry >
+std::vector< double >
+HLibOperator< TAnsatzSpace, TTestSpace, symmetry >::solveGMRes(
+    const std::vector< double >& rhs,
+    double aimedResidual,
+    double maximumNumberOfSteps) const
+{
+  if ( rhs.size() != testSpace_.getNumberOfElements() )
+  {
+    assert(0); /* TODO: Replace by an exception, name: *DimensionMismatch* */
+  }
+
+  std::vector< double > solution( ansatzSpace_.getNumberOfElements(), 0 );
+
+  /* TODO: Document this call and the effects for certain operators.
+   *       Should it be possible to specify preconditioner matrices?
+   */
+  solve_gmres_supermatrix(
+    supermatrix_, (double*)(&rhs[0]), &solution[0],
+    aimedResidual, maximumNumberOfSteps,
+    0, HLIB_PREC_LU,
+    0, HLIB_EVAL_DEFAULT,
+    0);
+
+  return solution;
+}
+
+
+// XXX: MK: is it necessary to have a template function here?
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry >
+void
+HLibOperator< TAnsatzSpace, TTestSpace, symmetry >::fillSupermatrixAca(
+    supermatrix* matrix,
+    const cluster* rowCluster,
+    const cluster* columnCluster,
+    void* data,
+    double acaEps)
+{
+  // TODO/XXX: At the moment, this function only covers the full case, i.e.
+  //           the constructor needs to be called with BuildHLibOperatorFull.
+  
+  rkmatrix* r = matrix->r;
+  int rank;
+
+  if ( matrix->f != 0 )
+  {
+    fullmatrix* full = matrix->f;
+    int rowClusterSize = rowCluster->size;
+
+    for ( int i = 0; i < rowCluster->size; ++i )
+    {
+      for ( int j = 0; j < columnCluster->size; ++j )
+      {
+        full->e[ i + j*rowClusterSize ] = computeEntryHelper(
+            rowCluster->start + i,
+            columnCluster->start + j,
+            data );
+      }
+    }
+    return;
+  }
+
+  if ( r != 0)
+  {
+    if ( r->rows > r->cols )
+      rank = r->cols;
+    else
+      rank = r->rows;
+
+    if ( rank > ACA_KMAX)
+      rank = ACA_KMAX;
+
+    r->k = rank;
+    r->a = allocate_matrix(r->rows,rank);
+    r->b  = allocate_matrix(r->cols,rank);
+
+    r->kt = newaca_fill_block(r->a, r->b, r->rows, r->cols,
+                             rowCluster->start, columnCluster->start,
+                             computeEntryHelper, data,
+                             rank, acaEps, ACA_STRATEGY);
+
+    r->a = (double*) realloc(r->a,r->rows*r->kt*sizeof(double));
+    r->b = (double*) realloc(r->b,r->cols*r->kt*sizeof(double));
+    r->k = r->kt;
+
+    return;
+  }
+
+  if(rowCluster->sons>0) {
+    if(columnCluster->sons>0) {
+      for(int i=0;i<rowCluster->sons;++i)
+        for(int j=0;j<columnCluster->sons;++j) {
+            int s=i+j*rowCluster->sons;
+            fillSupermatrixAca(matrix->s[s],rowCluster->son[i],columnCluster->son[j],data,acaEps);
+        }
+    } else {
+      for(int i=0;i<rowCluster->sons;++i)
+        fillSupermatrixAca(matrix->s[i],rowCluster->son[i],columnCluster,data,acaEps);
+    }
+  } else {
+    for(int i=0;i<columnCluster->sons;++i)
+      fillSupermatrixAca(matrix->s[i],rowCluster,columnCluster->son[i],data,acaEps);
+  }
+
+}
+
+template < class TAnsatzSpace, class TTestSpace,
+            enum MatrixSymmetry symmetry >
+double
+HLibOperator< TAnsatzSpace, TTestSpace, symmetry >::computeEntryHelper(
+    int i, int j, void* data )
+{
+  HLibOperator* op = static_cast< HLibOperator* >( data );
+  int ourI = op->rowClusterTree_->dof2idx[ i ];
+  int ourJ = op->columnClusterTree_->dof2idx[ j ];
+  return op->computeEntry_( op->ansatzSpace_[ ourI ], op->testSpace_[ ourJ ] );
+}
+
diff --git a/src/bem3d/src/Makefile b/src/bem3d/src/Makefile
new file mode 100644 (file)
index 0000000..90fcf89
--- /dev/null
@@ -0,0 +1,582 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# src/Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+pkgdatadir = $(datadir)/hilbert3d
+pkgincludedir = $(includedir)/hilbert3d
+pkglibdir = $(libdir)/hilbert3d
+pkglibexecdir = $(libexecdir)/hilbert3d
+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 = :
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(srcdir)/config.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar
+AUTOCONF = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11
+AWK = mawk
+BLAS_LIBS = -lblas
+BOOST_CPPFLAGS = -I/usr/include
+BOOST_LDFLAGS = -L/usr/lib
+BOOST_REGEX_LIB = -lboost_regex-mt
+BOOST_ROOT_PATH = /usr
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN_PAPER_SIZE = 
+DX_CONFIG = Doxyfile
+DX_DOCDIR = docs/doxygen
+DX_DOT = 
+DX_DOXYGEN = 
+DX_DVIPS = 
+DX_EGREP = 
+DX_ENV =  SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'
+DX_FLAG_chi = 0
+DX_FLAG_chm = 0
+DX_FLAG_doc = 0
+DX_FLAG_dot = 0
+DX_FLAG_html = 0
+DX_FLAG_man = 0
+DX_FLAG_pdf = 0
+DX_FLAG_ps = 0
+DX_FLAG_rtf = 0
+DX_FLAG_xml = 0
+DX_HHC = 
+DX_LATEX = 
+DX_MAKEINDEX = 
+DX_PDFLATEX = 
+DX_PERL = /usr/bin/perl
+DX_PROJECT = Hilbert 3D
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FFLAGS = -g -O2
+FLIBS =  -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
+GREP = /bin/grep
+HLIB_CPPFLAGS = -I/usr/local/include
+HLIB_LDFLAGS = -L/usr/local/lib
+HLIB_LIB = -lhmatrix
+HLIB_ROOT_PATH = /usr/local
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LAPACK_LIBS = -llapack
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = hilbert3d
+PACKAGE_BUGREPORT = markus.mayr@tuwien.ac.at
+PACKAGE_NAME = Hilbert 3D
+PACKAGE_STRING = Hilbert 3D 0.1.0
+PACKAGE_TARNAME = hilbert3d
+PACKAGE_URL = http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git
+PACKAGE_VERSION = 0.1.0
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = 
+VERSION = 0.1.0
+abs_builddir = /home/treecity/workspace/bacc/src/bem3d/src
+abs_srcdir = /home/treecity/workspace/bacc/src/bem3d/src
+abs_top_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_srcdir = /home/treecity/workspace/bacc/src/bem3d
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+SUBDIRS = boundary_mesh spaces laplace 
+all: config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+$(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 src/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/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):
+
+config.h: stamp-h1
+       @if test ! -f $@; then \
+         rm -f stamp-h1; \
+         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+       else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+       @rm -f stamp-h1
+       cd $(top_builddir) && $(SHELL) ./config.status src/config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) 
+       ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+       rm -f stamp-h1
+       touch $@
+
+distclean-hdr:
+       -rm -f config.h stamp-h1
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+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: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS) config.h.in $(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: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS) config.h.in $(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
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+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-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
+       ctags-recursive install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic ctags \
+       ctags-recursive distclean distclean-generic distclean-hdr \
+       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 \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+       tags-recursive 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:
index c413d10b023a9fefa486c74711e23a58f0582a59..4f3282ba7831ada8684980781953e18829e1c072 100644 (file)
@@ -1,2 +1,2 @@
-SUBDIRS = boundary_mesh spaces laplace
+SUBDIRS = boundary_mesh spaces laplace 
 
index 32853c9769e032eb4a086c00e74e8890e38fe4ae..af2378138de898b73a8533167d2692aa64f1b283 100644 (file)
@@ -218,7 +218,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = boundary_mesh spaces laplace
+SUBDIRS = boundary_mesh spaces laplace 
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
diff --git a/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-CouldNotDispatchCall.Po b/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-CouldNotDispatchCall.Po
new file mode 100644 (file)
index 0000000..51de0f9
--- /dev/null
@@ -0,0 +1,213 @@
+libhilbert_mesh_a-CouldNotDispatchCall.o: \
+ exception/CouldNotDispatchCall.cpp exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/exception \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/stl_algobase.h /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/postypes.h \
+ /usr/include/c++/4.5/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/basic_string.tcc
+
+exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
diff --git a/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-DispatchIdNotSet.Po b/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-DispatchIdNotSet.Po
new file mode 100644 (file)
index 0000000..64582a8
--- /dev/null
@@ -0,0 +1,212 @@
+libhilbert_mesh_a-DispatchIdNotSet.o: exception/DispatchIdNotSet.cpp \
+ exception/DispatchIdNotSet.hpp /usr/include/c++/4.5/exception \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/stl_algobase.h /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/postypes.h \
+ /usr/include/c++/4.5/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/basic_string.tcc
+
+exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
diff --git a/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-FlexibleMesh.Po b/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-FlexibleMesh.Po
new file mode 100644 (file)
index 0000000..27fd0e8
--- /dev/null
@@ -0,0 +1,1314 @@
+libhilbert_mesh_a-FlexibleMesh.o: FlexibleMesh.cpp FlexibleMesh.hpp \
+ FaceDispatch.hpp /usr/include/c++/4.5/vector \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc ../generic/Singleton.hpp \
+ ../generic/Singleton_tmpl.cpp ../generic/Singleton.hpp \
+ ../generic/TypeList.hpp ../generic/BaseTypes.hpp \
+ ../generic/BaseTypes.hpp exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc FaceDispatch_tmpl.cpp \
+ exception/CouldNotDispatchCall.hpp /usr/include/c++/4.5/cassert \
+ /usr/include/assert.h Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h types.hpp \
+ /usr/include/c++/4.5/limits exception.hpp \
+ exception/NoMatchingFaceType.hpp Face_tmpl.cpp \
+ /usr/include/c++/4.5/sstream /usr/include/c++/4.5/bits/sstream.tcc \
+ HalfEdge.hpp HalfEdge_tmpl.cpp Vertex.hpp ../generic/GenericVector.hpp \
+ ../generic/GenericVector_tmpl.cpp ../generic/GenericVector.hpp \
+ Vertex_tmpl.cpp Mesh.hpp MeshBuilder.hpp MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ exception/NoMatchingFaceType_tmpl.hpp exception/NoMatchingFaceType.hpp \
+ exception/NoMatchingFaceType_tmpl.cpp /usr/include/c++/4.5/cstring \
+ /usr/include/string.h /usr/include/bits/string3.h face/Triangle_tmpl.hpp \
+ face/Triangle.hpp face/../../generic/BaseTypes.hpp \
+ face/Triangle_tmpl.cpp face/Triangle_tmpl.hpp face/../Face.hpp \
+ face/Parallelogram_tmpl.hpp face/Parallelogram.hpp \
+ face/ConvexQuadrilateral.hpp face/Quadrilateral.hpp face/../types.hpp \
+ face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ face/ConvexQuadrilateral_tmpl.hpp face/ConvexQuadrilateral_tmpl.cpp \
+ face/Quadrilateral_tmpl.hpp face/Quadrilateral_tmpl.cpp \
+ face/Parallelogram_tmpl.hpp algorithm/HandleObj.hpp \
+ algorithm/HandleObj_tmpl.cpp /usr/include/c++/4.5/fstream \
+ /usr/include/c++/4.5/bits/codecvt.h /usr/include/c++/4.5/cstdio \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp algorithm/../MeshBuilder.hpp \
+ algorithm/RefineUniformly.hpp algorithm/../types.hpp \
+ algorithm/../FaceDispatch.hpp algorithm/RefineUniformly_tmpl.cpp \
+ algorithm/RefineUniformly.hpp FlexibleMesh_tmpl.cpp
+
+FlexibleMesh.hpp:
+
+FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../generic/Singleton.hpp:
+
+../generic/Singleton_tmpl.cpp:
+
+../generic/Singleton.hpp:
+
+../generic/TypeList.hpp:
+
+../generic/BaseTypes.hpp:
+
+../generic/BaseTypes.hpp:
+
+exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+FaceDispatch_tmpl.cpp:
+
+exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+exception.hpp:
+
+exception/NoMatchingFaceType.hpp:
+
+Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+HalfEdge.hpp:
+
+HalfEdge_tmpl.cpp:
+
+Vertex.hpp:
+
+../generic/GenericVector.hpp:
+
+../generic/GenericVector_tmpl.cpp:
+
+../generic/GenericVector.hpp:
+
+Vertex_tmpl.cpp:
+
+Mesh.hpp:
+
+MeshBuilder.hpp:
+
+MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+exception/NoMatchingFaceType_tmpl.hpp:
+
+exception/NoMatchingFaceType.hpp:
+
+exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+face/Triangle_tmpl.hpp:
+
+face/Triangle.hpp:
+
+face/../../generic/BaseTypes.hpp:
+
+face/Triangle_tmpl.cpp:
+
+face/Triangle_tmpl.hpp:
+
+face/../Face.hpp:
+
+face/Parallelogram_tmpl.hpp:
+
+face/Parallelogram.hpp:
+
+face/ConvexQuadrilateral.hpp:
+
+face/Quadrilateral.hpp:
+
+face/../types.hpp:
+
+face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+face/ConvexQuadrilateral_tmpl.hpp:
+
+face/ConvexQuadrilateral_tmpl.cpp:
+
+face/Quadrilateral_tmpl.hpp:
+
+face/Quadrilateral_tmpl.cpp:
+
+face/Parallelogram_tmpl.hpp:
+
+algorithm/HandleObj.hpp:
+
+algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+algorithm/../MeshBuilder.hpp:
+
+algorithm/RefineUniformly.hpp:
+
+algorithm/../types.hpp:
+
+algorithm/../FaceDispatch.hpp:
+
+algorithm/RefineUniformly_tmpl.cpp:
+
+algorithm/RefineUniformly.hpp:
+
+FlexibleMesh_tmpl.cpp:
diff --git a/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-GenericVector.Po b/src/bem3d/src/boundary_mesh/.deps/libhilbert_mesh_a-GenericVector.Po
new file mode 100644 (file)
index 0000000..247e377
--- /dev/null
@@ -0,0 +1,294 @@
+libhilbert_mesh_a-GenericVector.o: ../generic/GenericVector.cpp \
+ ../generic/GenericVector.hpp /usr/include/c++/4.5/ostream \
+ /usr/include/c++/4.5/ios /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/exception \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/cctype \
+ /usr/include/ctype.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/locale_classes.h /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc ../generic/GenericVector_tmpl.cpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ /usr/include/c++/4.5/cmath /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.5/bits/cmath.tcc
+
+../generic/GenericVector.hpp:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+../generic/GenericVector_tmpl.cpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
diff --git a/src/bem3d/src/boundary_mesh/.deps/t.Po b/src/bem3d/src/boundary_mesh/.deps/t.Po
new file mode 100644 (file)
index 0000000..5717b26
--- /dev/null
@@ -0,0 +1,1313 @@
+t.o: t.cpp FlexibleMesh.hpp FaceDispatch.hpp /usr/include/c++/4.5/vector \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc ../generic/Singleton.hpp \
+ ../generic/Singleton_tmpl.cpp ../generic/Singleton.hpp \
+ ../generic/TypeList.hpp ../generic/BaseTypes.hpp \
+ ../generic/BaseTypes.hpp exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc FaceDispatch_tmpl.cpp \
+ exception/CouldNotDispatchCall.hpp /usr/include/c++/4.5/cassert \
+ /usr/include/assert.h Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h types.hpp \
+ /usr/include/c++/4.5/limits exception.hpp \
+ exception/NoMatchingFaceType.hpp Face_tmpl.cpp \
+ /usr/include/c++/4.5/sstream /usr/include/c++/4.5/bits/sstream.tcc \
+ HalfEdge.hpp HalfEdge_tmpl.cpp Vertex.hpp ../generic/GenericVector.hpp \
+ ../generic/GenericVector_tmpl.cpp ../generic/GenericVector.hpp \
+ Vertex_tmpl.cpp Mesh.hpp MeshBuilder.hpp MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ exception/NoMatchingFaceType_tmpl.hpp exception/NoMatchingFaceType.hpp \
+ exception/NoMatchingFaceType_tmpl.cpp /usr/include/c++/4.5/cstring \
+ /usr/include/string.h /usr/include/bits/string3.h face/Triangle_tmpl.hpp \
+ face/Triangle.hpp face/../../generic/BaseTypes.hpp \
+ face/Triangle_tmpl.cpp face/Triangle_tmpl.hpp face/../Face.hpp \
+ face/Parallelogram_tmpl.hpp face/Parallelogram.hpp \
+ face/ConvexQuadrilateral.hpp face/Quadrilateral.hpp face/../types.hpp \
+ face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ face/ConvexQuadrilateral_tmpl.hpp face/ConvexQuadrilateral_tmpl.cpp \
+ face/Quadrilateral_tmpl.hpp face/Quadrilateral_tmpl.cpp \
+ face/Parallelogram_tmpl.hpp algorithm/HandleObj.hpp \
+ algorithm/HandleObj_tmpl.cpp /usr/include/c++/4.5/fstream \
+ /usr/include/c++/4.5/bits/codecvt.h /usr/include/c++/4.5/cstdio \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp algorithm/../MeshBuilder.hpp \
+ algorithm/RefineUniformly.hpp algorithm/../types.hpp \
+ algorithm/../FaceDispatch.hpp algorithm/RefineUniformly_tmpl.cpp \
+ algorithm/RefineUniformly.hpp FlexibleMesh_tmpl.cpp
+
+FlexibleMesh.hpp:
+
+FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../generic/Singleton.hpp:
+
+../generic/Singleton_tmpl.cpp:
+
+../generic/Singleton.hpp:
+
+../generic/TypeList.hpp:
+
+../generic/BaseTypes.hpp:
+
+../generic/BaseTypes.hpp:
+
+exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+FaceDispatch_tmpl.cpp:
+
+exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+exception.hpp:
+
+exception/NoMatchingFaceType.hpp:
+
+Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+HalfEdge.hpp:
+
+HalfEdge_tmpl.cpp:
+
+Vertex.hpp:
+
+../generic/GenericVector.hpp:
+
+../generic/GenericVector_tmpl.cpp:
+
+../generic/GenericVector.hpp:
+
+Vertex_tmpl.cpp:
+
+Mesh.hpp:
+
+MeshBuilder.hpp:
+
+MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+exception/NoMatchingFaceType_tmpl.hpp:
+
+exception/NoMatchingFaceType.hpp:
+
+exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+face/Triangle_tmpl.hpp:
+
+face/Triangle.hpp:
+
+face/../../generic/BaseTypes.hpp:
+
+face/Triangle_tmpl.cpp:
+
+face/Triangle_tmpl.hpp:
+
+face/../Face.hpp:
+
+face/Parallelogram_tmpl.hpp:
+
+face/Parallelogram.hpp:
+
+face/ConvexQuadrilateral.hpp:
+
+face/Quadrilateral.hpp:
+
+face/../types.hpp:
+
+face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+face/ConvexQuadrilateral_tmpl.hpp:
+
+face/ConvexQuadrilateral_tmpl.cpp:
+
+face/Quadrilateral_tmpl.hpp:
+
+face/Quadrilateral_tmpl.cpp:
+
+face/Parallelogram_tmpl.hpp:
+
+algorithm/HandleObj.hpp:
+
+algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+algorithm/../MeshBuilder.hpp:
+
+algorithm/RefineUniformly.hpp:
+
+algorithm/../types.hpp:
+
+algorithm/../FaceDispatch.hpp:
+
+algorithm/RefineUniformly_tmpl.cpp:
+
+algorithm/RefineUniformly.hpp:
+
+FlexibleMesh_tmpl.cpp:
index 02b17f5e13065edf55803a1777abc4555f28b680..fae314a00af2c37257ddf361b720cc3ed3401b25 100644 (file)
@@ -5,6 +5,7 @@
 
 using namespace boundary_mesh;
 
+#if 0
 Face::Face()
   : halfedge_(0)
 {}
@@ -95,4 +96,5 @@ double Face::area() const
       assert(0);
   }
 }
+#endif
 
index eac4bed526bc4fcb71e7909fbd8a2d417bbb661f..29c5ef29592621e761dea2b30a493b93dc5125dc 100644 (file)
 #define BOUNDARY_MESH_FACE_HPP_GUARD_
 
 #include <iterator>
+#include <vector>
+
+#include "types.hpp"
+#include "exception.hpp"
+#include "FaceDispatch.hpp"
+
+/**
+ * @page boundary_mesh_faces The Face datatypes
+ *
+ * The boundary mesh library is a flexible template library, which provides
+ * optimized versions for many use cases. In terms of faces, the library is
+ * flexible by the means of allowing any number of different kinds of faces
+ * within a single mesh. At the same time, it provides optimizations for
+ * meshes, which consist only of one kind of faces. More details are provided
+ * in section @ref boundary_mesh_mesh_traits_faces.
+ *
+ * The library also makes strong use of C++'s type system so that it is
+ * possible to structure code in an idiomatic way. For more details on this,
+ * please refer to @ref boundary_mesh_face_specific_code.
+ *
+ * Furthermore, it is possible to add custom faces without modifying the
+ * code of the boundary mesh library. Further details can be found in section
+ * @ref boundary_mesh_adding_new_face_types.
+ *
+ * Within boundary mesh algorithms or other code related to boundary meshes,
+ * one should not refer to faces directly, but only by using the Mesh class.
+ * For example, provided Mesh is the name of the mesh class that is used, one
+ * should write Mesh::Triangle instead of Triangle< Mesh >. For technically
+ * interested people, a reason is provided below.
+ *
+ * We provide three different classes for each kind of faces. As an example,
+ * we consider the classes provided for triangles.
+ *  - Triangle: This class provides an implementation which should be used
+ *              when the given mesh only contains this kind of faces. It must
+ *              not be used, when different kinds of faces are involved.
+ *  - RTriangle: This class contains additional run-time information, which
+ *              makes it possible to use instances of that class even if the
+ *              given mesh contains different kinds of faces.
+ * For users of the mesh, it makes no difference which class is used, because
+ * they refer to that class only using Mesh::Triangle for built-in types or
+ * Mesh::Prop::Triangle for user types. Finally, for each kind of face, there
+ * is another class:
+ *  - NoTriangle: This class is just an indicator, that the mesh does not
+ *              contain any faces of that kind.
+ *
+ * Below, there is an UML diagram for all built-in types (Triangle,
+ * Quadrilateral, Parallelogram, Rectangle and AxisParallelRectangle).
+ *
+ * TODO: A proper diagram is missing.
+ */
+
+/**
+ * @file Face.hpp
+ *
+ * TODO: Write documentation.
+ */
 
 namespace boundary_mesh
 {
-  class Face;
-  class HalfEdge;
-  class Vertex;
-
-  class Face
+  /**
+   * @class CommonFaceBase__
+   * @brief A base class for all flavours of faces.
+   */
+  template < class TMesh >
+  class CommonFaceBase__
   {
-    template < class T > friend class Mesh;
+    template < class TFace, class TNext > friend class FaceFactory;
 
     public:
-      template < class T >
-      class Iterator__ : public std::iterator< std::input_iterator_tag, T >
+      typedef TMesh Mesh;
+
+      enum WhereToStart
+      {
+        StartAtBeginning,
+        StartAtEnd
+      };
+
+      class IteratorBase__
       {
         public:
-          Iterator__(const HalfEdge* startingEdge, bool end = false);
-          Iterator__(const Iterator__& copy);
+          IteratorBase__(const typename TMesh::HalfEdge& halfedge,
+              enum WhereToStart);
+          bool operator==(const IteratorBase__& rhs) const;
+          bool operator!=(const IteratorBase__& rhs) const;
+          IteratorBase__& operator++();
 
-          bool operator==(const Iterator__< T >& rhs) const;
-          bool operator!=(const Iterator__< T >& rhs) const;
-          Iterator__< T >& operator++();
-          const T& operator*() const;
-          const T* operator->() const;
+        protected:
+          const typename TMesh::HalfEdge* getCurrentHalfEdge() const;
 
         private:
-          const HalfEdge& getCurrentEdge() const;
+          const typename TMesh::HalfEdge* startingEdge_;
+          const typename TMesh::HalfEdge* currentEdge_;  
+      };
 
-          const HalfEdge* startingEdge_;
-          const HalfEdge* currentEdge_;
+      class ConstFaceIterator : public IteratorBase__,
+          std::iterator< std::input_iterator_tag, typename TMesh::Face >
+      {
+        public:
+          ConstFaceIterator(const typename TMesh::HalfEdge& halfedge,
+              enum WhereToStart);
+          ConstFaceIterator& operator++();
+          const typename TMesh::Face& operator*() const;
+          const typename TMesh::Face* operator->() const;
       };
 
-    public:
-      typedef Iterator__< Face > ConstFaceIterator;
-      typedef Iterator__< Vertex > ConstVertexIterator;
-      typedef Iterator__< HalfEdge > ConstEdgeIterator;
+      class ConstVertexIterator : public IteratorBase__,
+          std::iterator< std::input_iterator_tag, typename TMesh::Vertex >
+      {
+        public:
+          ConstVertexIterator(const typename TMesh::HalfEdge& halfedge,
+              enum WhereToStart);
+          const typename TMesh::Vertex& operator*() const;
+          const typename TMesh::Vertex* operator->() const;
+      };
+
+      class ConstEdgeIterator : public IteratorBase__,
+          std::iterator< std::input_iterator_tag, typename TMesh::HalfEdge >
+      {
+        public:
+          ConstEdgeIterator(const typename TMesh::HalfEdge& halfedge,
+              enum WhereToStart);
+          const typename TMesh::HalfEdge& operator*() const;
+          const typename TMesh::HalfEdge* operator->() const;
+      };
 
       ConstVertexIterator begin_v() const;
       ConstVertexIterator end_v() const;
@@ -46,21 +134,51 @@ namespace boundary_mesh
       ConstFaceIterator begin_f() const;
       ConstFaceIterator end_f() const;
 
-      unsigned int getNumberOfVertices() const;
-      bool isBoundaryFace() const;
-      bool operator==(const Face& rhs) const;
-      double area() const;
+      unsigned int getLocalEdgeId(
+            const typename TMesh::Prop::HalfEdge& edge ) const;
+
+      bool operator==(const typename TMesh::Prop::HalfEdge& rhs) const;
+
+    protected:
+      CommonFaceBase__( const typename TMesh::Prop::HalfEdge& halfedge )
+        : halfedge_( halfedge ) {}
 
     private:
-      Face();
-      void setHalfEdge(const HalfEdge& edge);
+      const typename TMesh::Prop::HalfEdge& halfedge_;
+  };
 
-      const HalfEdge* halfedge_;
+  template < class TMesh >
+  class RFace : public CommonFaceBase__< TMesh >
+  {
+    public:
+      RFace( const typename TMesh::Prop::HalfEdge& halfedge,
+              geoid_t id)
+        : CommonFaceBase__< TMesh >(halfedge), id_(id) {}
+      typedef RFace< TMesh >* CommonSuperFace;
+      geoid_t getId() const;
 
-      static const ConstVertexIterator scVertexEndIterator;
-      static const ConstEdgeIterator scEdgeEndIterator;
-      static const ConstFaceIterator scFaceEndIterator;
+      virtual double computeArea() const =0;
+      virtual unsigned int getNumberOfVertices() const =0;
+      virtual dispatchId_t getDispatchId() const =0;
+
+    private:
+      geoid_t id_;
   };
+
+  template < class TMesh >
+  class FaceVertexCache
+    : public generic::Singleton< FaceVertexCache< TMesh > >
+  {
+    public:
+      FaceVertexCache();
+      static const typename TMesh::Vertex& Get(
+          const typename TMesh::Face* face, unsigned int id );
+
+    private:
+      const typename TMesh::Face* face_;
+      typename std::vector< const typename TMesh::Vertex* > vertices_;
+  };
+
 }
 
 #include "Face_tmpl.cpp"
diff --git a/src/bem3d/src/boundary_mesh/FaceDispatch.hpp b/src/bem3d/src/boundary_mesh/FaceDispatch.hpp
new file mode 100644 (file)
index 0000000..0cff98b
--- /dev/null
@@ -0,0 +1,103 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACEDISPATCH_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACEDISPATCH_HPP_GUARD_
+
+#include <vector>
+
+#include "../generic/Singleton.hpp"
+#include "../generic/TypeList.hpp"
+#include "../generic/BaseTypes.hpp"
+#include "exception/DispatchIdNotSet.hpp"
+
+typedef int dispatchId_t;
+
+namespace boundary_mesh
+{
+  template < class TExecutor, class TBase, class TTypes, class TResult = void >
+  class StaticSingleDispatcher
+  {
+    public:
+      typedef TExecutor PARAM;
+
+      static TResult Exec(
+        const TBase& face,
+        TExecutor exec);
+  };
+
+  template < class TExecutor, class TBase, class TResult >
+  class StaticSingleDispatcher< TExecutor, TBase, generic::NullType, TResult >
+  {
+    public:
+      typedef TExecutor PARAM;
+
+      static TResult Exec(
+        const TBase& face,
+        TExecutor exec);
+  };
+
+  template < class TExecutor, class TMesh, class TResult = void >
+  class SingleFaceDispatcher
+    : public StaticSingleDispatcher<
+        TExecutor,
+        typename TMesh::Face, typename TMesh::FaceTypes,
+        TResult >
+  {};
+
+  template < class TExecutor, class TBaseLhs, class TTypesLhs,
+            class TBaseRhs = TBaseLhs, class TTypesRhs = TTypesLhs,
+            class TResult = void >
+  class StaticDoubleDispatcher
+  {
+    public:
+      typedef TExecutor PARAM;
+
+      static TResult Exec(
+        const TBaseLhs& lhs,
+        const TBaseRhs& rhs,
+        const TExecutor& exec);
+
+      template < class TLhs >
+      static TResult DispatchRhs(
+        const TLhs & lhs,
+        const TBaseRhs& rhs,
+        const TExecutor& exec);
+  };
+
+  template < class TExecutor, class TBaseLhs,
+            class TBaseRhs, class TTypesRhs, class TResult >
+  class StaticDoubleDispatcher< TExecutor, TBaseLhs, generic::NullType,
+            TBaseRhs, TTypesRhs, TResult >
+  {
+    public:
+      static TResult Exec(
+        const TBaseLhs& lhs,
+        const TBaseRhs& rhs,
+        const TExecutor& exec );
+  };
+
+  template < class TExecutor, class TBaseLhs, class TTypesLhs,
+              class TBaseRhs, class TResult >
+  class StaticDoubleDispatcher< TExecutor, TBaseLhs, TTypesLhs,
+            TBaseRhs, generic::NullType, TResult >
+  {
+    public:
+      template < class TLhs >
+      static TResult DispatchRhs(
+        const TLhs& lhs,
+        const TBaseRhs& rhs,
+        const TExecutor& exec);
+  };
+
+  template < class TExecutor, class TMesh, class TResult >
+  class DoubleFaceDispatcher
+    : public StaticDoubleDispatcher<
+        TExecutor,
+        typename TMesh::Face, typename TMesh::FaceTypes,
+        typename TMesh::Face, typename TMesh::FaceTypes,
+        TResult >
+  {};
+}
+
+#include "FaceDispatch_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/FaceDispatch_tmpl.cpp b/src/bem3d/src/boundary_mesh/FaceDispatch_tmpl.cpp
new file mode 100644 (file)
index 0000000..8380a16
--- /dev/null
@@ -0,0 +1,123 @@
+#ifdef HILBERT3D_BOUNDARY_MESH_FACEDISPATCH_CPP_GUARD_
+#error Please never include or compile this file directly. Include the \
+       corresponding header file instead.
+#else
+#define HILBERT3D_BOUNDARY_MESH_FACEDISPATCH_CPP_GUARD_
+#include "FaceDispatch.hpp"
+
+#include "exception/CouldNotDispatchCall.hpp"
+
+#include <cassert>
+
+namespace boundary_mesh
+{
+  template < class TExecutor, class TBase, class TTypes, class TResult >
+  TResult
+  StaticSingleDispatcher< TExecutor, TBase, TTypes, TResult >::Exec(
+      const TBase& face,
+      TExecutor exec)
+  {
+    typedef typename TTypes::Head Head;
+    typedef typename TTypes::Tail Tail;
+
+    if (const Head* castedFace = dynamic_cast< const Head* >(&face))
+    {
+      exec.exec( *castedFace );
+    }
+    else
+    {
+      StaticSingleDispatcher< TExecutor, TBase, Tail, TResult >::
+        Exec( face, exec );
+    }
+  }
+
+  template < class TExecutor, class TBase, class TResult >
+  TResult
+  StaticSingleDispatcher< TExecutor, TBase, generic::NullType, TResult >::Exec(
+      const TBase& face,
+      TExecutor exec)
+  {
+    throw new exception::CouldNotDispatchCall(
+      "Could not dispatch function call!\n");
+  }
+
+  template < class TExecutor, class TBaseLhs, class TTypesLhs,
+              class TBaseRhs, class TTypesRhs, class TResult >
+  TResult
+  StaticDoubleDispatcher< TExecutor, TBaseLhs, TTypesLhs,
+      TBaseRhs, TTypesRhs, TResult >::Exec(
+    const TBaseLhs& lhs,
+    const TBaseRhs& rhs,
+    const TExecutor& exec)
+  {
+    typedef typename TTypesLhs::Head Head;
+    typedef typename TTypesLhs::Tail Tail;
+
+    if (const Head* p1 = dynamic_cast<const Head*>(&lhs))
+    {
+      return StaticDoubleDispatcher< TExecutor, TBaseLhs, Head,
+                TBaseRhs, TTypesRhs, TResult >::DispatchRhs( *p1, rhs, exec );
+    }
+    else
+    {
+      return StaticDoubleDispatcher< TExecutor, TBaseLhs, Tail,
+                TBaseRhs, TTypesRhs, TResult >::Exec( lhs, rhs, exec );
+    }
+  }
+
+  template < class TExecutor, class TBaseLhs, class TTypesLhs,
+              class TBaseRhs, class TTypesRhs, class TResult >
+  template < class TLhs >
+  TResult
+  StaticDoubleDispatcher< TExecutor, TBaseLhs, TTypesLhs,
+      TBaseRhs, TTypesRhs, TResult >::DispatchRhs(
+    const TLhs& lhs,
+    const TBaseRhs& rhs,
+    const TExecutor& exec)
+  {
+    typedef typename TTypesRhs::Head Head;
+    typedef typename TTypesRhs::Tail Tail;
+
+    if (const Head* p2 = dynamic_cast<const Head*>(&rhs))
+    {
+      return exec.exec( lhs, *p2 );
+    }
+    else
+    {
+      return StaticDoubleDispatcher< TExecutor, TLhs, TTypesLhs,
+                TBaseRhs, Tail, TResult >::DispatchRhs(
+                lhs, rhs, exec );
+    }
+  }
+
+  template < class TExecutor, class TBaseLhs,
+            class TBaseRhs, class TTypesRhs, class TResult >
+  TResult
+  StaticDoubleDispatcher< TExecutor, TBaseLhs, generic::NullType,
+            TBaseRhs, TTypesRhs, TResult >::Exec(
+    const TBaseLhs& lhs,
+    const TBaseRhs& rhs,
+    const TExecutor& exec)
+  {
+    throw exception::CouldNotDispatchCall(
+      "Double Dispatcher: Could not dispatch left-hand side argument!\n");
+  }
+
+  template < class TExecutor, class TBaseLhs, class TTypesLhs,
+              class TBaseRhs, class TResult >
+  template < class TLhs >
+  TResult
+  StaticDoubleDispatcher< TExecutor, TBaseLhs, TTypesLhs,
+            TBaseRhs, generic::NullType, TResult >::DispatchRhs(
+    const TLhs& lhs,
+    const TBaseRhs& rhs,
+    const TExecutor& exec)
+  {
+    throw exception::CouldNotDispatchCall(
+      "Double Dispatcher: Could not dispatch right-hand side argument!\n");
+  }
+
+}
+
+#endif
+
index 2830dc8788f29a6c58035d08face0df8ab7c56cb..5f99319edc6ec91b4585dc7ae24feabe5347588b 100644 (file)
-#ifdef MESH_FACE_TMPL_CPP_GUARD_
-#error "Never include this file directly! Use #include \"Face.hpp\" instead!"
-#else
+#ifndef MESH_FACE_TMPL_CPP_GUARD_
 #define MESH_FACE_TMPL_CPP_GUARD_
 
 #include <cassert>
+#include <sstream>
+#include <vector>
 
-#include "HalfEdge.hpp"
+#include "Face.hpp"
 
 namespace boundary_mesh {
 
-template <>
-inline
-Face::Iterator__<Face>&
-Face::Iterator__<Face>::operator++()
-{
-  do
+  template < class TMesh >
+  CommonFaceBase__< TMesh >::IteratorBase__::IteratorBase__(
+      const typename TMesh::HalfEdge& startingEdge,
+      enum WhereToStart whereToStart)
+    : startingEdge_( &startingEdge ), currentEdge_( &startingEdge )
+  {
+    if ( whereToStart == StartAtEnd )
+    {
+      currentEdge_ = 0;
+      return;
+    }
+  }
+
+  template < class TMesh >
+  bool
+  CommonFaceBase__< TMesh >::IteratorBase__::operator==(
+      const CommonFaceBase__< TMesh >::IteratorBase__& rhs) const
+  {
+    assert( startingEdge_ == rhs.startingEdge_ );
+    return currentEdge_ == rhs.currentEdge_;
+  }
+
+  template < class TMesh >
+  bool
+  CommonFaceBase__< TMesh >::IteratorBase__::operator!=(
+      const CommonFaceBase__< TMesh >::IteratorBase__& rhs) const
+  {
+    return ! ( *this == rhs );
+  }
+
+  
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::IteratorBase__&
+  CommonFaceBase__< TMesh >::IteratorBase__::operator++()
   {
     currentEdge_ = currentEdge_->getNextEdge();
     if (currentEdge_ == startingEdge_)
     {
       currentEdge_ = 0;
-      break;
     }
-  } while (currentEdge_->getOppositeEdge() == 0);
-  return *this;
-}
+    return *this;
+  }
 
-template < class T >
-inline
-Face::Iterator__<T>&
-Face::Iterator__<T>::operator++()
-{
-  currentEdge_ = currentEdge_->getNextEdge();
-  if (currentEdge_ == startingEdge_)
+  template < class TMesh >
+  const typename TMesh::HalfEdge*
+  CommonFaceBase__< TMesh >::IteratorBase__::getCurrentHalfEdge() const
   {
-    currentEdge_ = 0;
+    return currentEdge_;
   }
-  return *this;
-}
 
-template <>
-inline
-Face::Iterator__<Face>::Iterator__(const HalfEdge* startingEdge, bool end)
-  : startingEdge_(startingEdge), currentEdge_(startingEdge)
-{
-  if (end)
+  template < class TMesh >
+  CommonFaceBase__< TMesh >::ConstFaceIterator::ConstFaceIterator(
+      const typename TMesh::HalfEdge& halfedge,
+      enum WhereToStart whereToStart)
+    : CommonFaceBase__< TMesh >::IteratorBase__( halfedge, whereToStart )
   {
-    currentEdge_ = 0;
-    return;
+    if ( this->getCurrentHalfEdge() != 0 )
+    {
+      if ( this->getCurrentHalfEdge()->getOppositeEdge() == 0 )
+        ++(*this);
+    }
   }
-  if (getCurrentEdge().getOppositeEdge() == 0)
-    ++(*this);
-}
 
-template < class T >
-inline
-Face::Iterator__<T>::Iterator__(const HalfEdge* startingEdge, bool end)
-  : startingEdge_(startingEdge), currentEdge_(startingEdge)
-{
-  if (end)
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstFaceIterator&
+  CommonFaceBase__< TMesh >::ConstFaceIterator::operator++()
   {
-    currentEdge_ = 0;
-    return;
+    do
+    {
+      CommonFaceBase__< TMesh >::IteratorBase__::operator++();
+    } while ( this->getCurrentHalfEdge() != 0
+                && this->getCurrentHalfEdge()->getOppositeEdge() == 0 );
   }
-}
 
-template < class T >
-inline
-Face::Iterator__<T>::Iterator__(const Face::Iterator__<T>& copy)
-  : startingEdge_(copy.startingEdge_), currentEdge_(copy.currentEdge_)
-{}
-
-template < class T >
-inline
-bool
-Face::Iterator__<T>::operator==(
-  const Face::Iterator__<T>& rhs) const
-{
-  assert( startingEdge_ == rhs.startingEdge_ );
-  return currentEdge_ == rhs.currentEdge_;
-}
+  template < class TMesh >
+  const typename TMesh::Face&
+  CommonFaceBase__< TMesh >::ConstFaceIterator::operator*() const
+  {
+    assert( this->getCurrentHalfEdge() != 0
+              && this->getCurrentHalfEdge()->getOppositeEdge() != 0);
+    return this->getCurrentHalfEdge()->getOppositeEdge()->getFace();
+  }
 
-template < class T >
-inline
-bool
-Face::Iterator__<T>::operator!=(
-  const Face::Iterator__<T>& rhs) const
-{
-  return ! ( *this == rhs );
-}
+  template < class TMesh >
+  const typename TMesh::Face*
+  CommonFaceBase__< TMesh >::ConstFaceIterator::operator->() const
+  {
+    assert( this->getCurrentHalfEdge() != 0
+              && this->getCurrentHalfEdge()->getOppositeEdge() != 0);
+    return &(this->getCurrentHalfEdge()->getOppositeEdge()->getFace());
+  }
 
-template <>
-inline
-const Vertex&
-Face::Iterator__< Vertex >::operator*() const
-{
-  return getCurrentEdge().getStartVertex();
-}
+  template < class TMesh >
+  CommonFaceBase__< TMesh >::ConstVertexIterator::ConstVertexIterator(
+      const typename TMesh::HalfEdge& halfedge,
+      enum WhereToStart whereToStart)
+    : CommonFaceBase__< TMesh >::IteratorBase__( halfedge, whereToStart )
+  {}
 
-template <>
-inline
-const HalfEdge&
-Face::Iterator__< HalfEdge >::operator*() const
-{
-  return getCurrentEdge();
-}
+  template < class TMesh >
+  const typename TMesh::Vertex&
+  CommonFaceBase__< TMesh >::ConstVertexIterator::operator*() const
+  {
+    assert( this->getCurrentHalfEdge() != 0 );
+    return this->getCurrentHalfEdge()->getStartVertex();
+  }
 
-template <>
-inline
-const Face&
-Face::Iterator__< Face >::operator*() const
-{
-  return getCurrentEdge().getOppositeEdge()->getFace();
-}
+  template < class TMesh >
+  const typename TMesh::Vertex*
+  CommonFaceBase__< TMesh >::ConstVertexIterator::operator->() const
+  {
+    assert( this->getCurrentHalfEdge() != 0 );
+    &(this->getCurrentHalfEdge()->getStartVertex());
+  }
 
-template < class T >
-inline
-const T*
-Face::Iterator__< T >::operator->() const
-{
-  return &(Face::Iterator__< T >::operator*( *this ));
-}
+  template < class TMesh >
+  CommonFaceBase__< TMesh >::ConstEdgeIterator::ConstEdgeIterator(
+      const typename TMesh::HalfEdge& halfedge,
+      enum WhereToStart whereToStart)
+    : CommonFaceBase__< TMesh >::IteratorBase__( halfedge, whereToStart )
+  {}
 
-template < class T >
-inline
-const HalfEdge&
-Face::Iterator__<T>::getCurrentEdge() const
-{
-  return *currentEdge_;
-}
+  template < class TMesh >
+  const typename TMesh::HalfEdge&
+  CommonFaceBase__< TMesh >::ConstEdgeIterator::operator*() const
+  {
+    assert( this->getCurrentHalfEdge() != 0 );
+    return *(this->getCurrentHalfEdge());
+  }
 
+  template < class TMesh >
+  const typename TMesh::HalfEdge*
+  CommonFaceBase__< TMesh >::ConstEdgeIterator::operator->() const
+  {
+    assert( this->getCurrentHalfEdge() != 0 );
+    return this->getCurrentHalfEdge();
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstEdgeIterator
+  CommonFaceBase__< TMesh >::begin_e() const
+  {
+    return ConstEdgeIterator( halfedge_, StartAtBeginning );
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstEdgeIterator
+  CommonFaceBase__< TMesh >::end_e() const
+  {
+    return ConstEdgeIterator( halfedge_, StartAtEnd );
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstFaceIterator
+  CommonFaceBase__< TMesh >::begin_f() const
+  {
+    return ConstFaceIterator( halfedge_, StartAtBeginning );
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstFaceIterator
+  CommonFaceBase__< TMesh >::end_f() const
+  {
+    return ConstFaceIterator( halfedge_, StartAtEnd );
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstVertexIterator
+  CommonFaceBase__< TMesh >::begin_v() const
+  {
+    return ConstVertexIterator( halfedge_, StartAtBeginning );
+  }
+
+  template < class TMesh >
+  typename CommonFaceBase__< TMesh >::ConstVertexIterator
+  CommonFaceBase__< TMesh >::end_v() const
+  {
+    return ConstVertexIterator( halfedge_, StartAtEnd );
+  }
+
+  template < class TMesh >
+  unsigned int
+  CommonFaceBase__< TMesh >::getLocalEdgeId(
+      const typename TMesh::Prop::HalfEdge& edge ) const
+  {
+    unsigned int i = 0;
+    CommonFaceBase__< TMesh >::ConstEdgeIterator edgeIt = begin_e();
+    assert( edgeIt != end_e() );
+
+    while ( *edgeIt != edge && ++edgeIt != end_e() )
+    {
+      ++i;
+    }
+
+    assert( edgeIt != end_e() );
+    return i;
+  }
+
+  template < class TMesh >
+  geoid_t
+  RFace< TMesh >::getId() const
+  {
+    return id_;
+  }
+
+  template < class TMesh >
+  FaceVertexCache< TMesh >::FaceVertexCache()
+    : face_(0),
+      vertices_( std::vector< const typename TMesh::Vertex* >(
+                    TMesh::Prop::maximumNumberOfEdgesPerFace ) )
+  {
+  }
+
+  template < class TMesh >
+  const typename TMesh::Vertex&
+  FaceVertexCache< TMesh >::Get( const typename TMesh::Face* face,
+      unsigned int id )
+  {
+    FaceVertexCache& cache =
+        generic::Singleton< FaceVertexCache< TMesh > >::Get();
+
+    if ( cache.face_ != face )
+    {
+      cache.face_ = face;
+      unsigned int i = 0;
+
+      for ( typename TMesh::Face::ConstVertexIterator vertex = face->begin_v();
+              vertex != face->end_v(); ++vertex )
+      {
+        cache.vertices_[ i ] = &(*vertex);
+        ++i;
+      }
+    }
+
+    return *(cache.vertices_[ id ]);
+  }
 }
 
 #endif
diff --git a/src/bem3d/src/boundary_mesh/FlexibleMesh.cpp b/src/bem3d/src/boundary_mesh/FlexibleMesh.cpp
new file mode 100644 (file)
index 0000000..4e4798b
--- /dev/null
@@ -0,0 +1,2 @@
+#include "FlexibleMesh.hpp"
+
diff --git a/src/bem3d/src/boundary_mesh/FlexibleMesh.hpp b/src/bem3d/src/boundary_mesh/FlexibleMesh.hpp
new file mode 100644 (file)
index 0000000..4f7ff53
--- /dev/null
@@ -0,0 +1,55 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FLEXIBLEMESH_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FLEXIBLEMESH_HPP_GUARD_
+
+#include "FaceDispatch.hpp"
+#include "Face.hpp"
+#include "HalfEdge.hpp"
+#include "Vertex.hpp"
+#include "Mesh.hpp"
+
+#include "../generic/TypeList.hpp"
+
+#include "face/Triangle_tmpl.hpp"
+#include "face/Parallelogram_tmpl.hpp"
+
+#include "algorithm/HandleObj.hpp"
+#include "algorithm/RefineUniformly.hpp"
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  struct FlexibleMeshProps
+  {
+    typedef UnlinkedVertex UVertex;
+    typedef VertexT< TMesh > Vertex;
+    typedef HalfEdgeT< TMesh > HalfEdge;
+    typedef RFace< TMesh >* IntFace;
+    typedef RFace< TMesh > Face;
+
+    typedef face::RTriangle< TMesh >              Triangle;
+    typedef face::RParallelogram< TMesh >         Parallelogram;
+    typedef Parallelogram ConvexQuadrilateral;
+    typedef Parallelogram Quadrilateral;
+    typedef HILBERT3D_TYPELIST_2( Triangle, Parallelogram ) FaceTypes;
+
+    static const unsigned int maximumNumberOfEdgesPerFace = 4;
+    static const unsigned int maximumNumberOfHangingNodes = 1;
+  };
+  
+  template < class TMesh >
+  struct FlexibleMeshAlgorithms
+  {
+    static TMesh (*loadFromObj)( const char* );
+    static void (*saveAsObj)( const TMesh&, const char* );
+    static TMesh (*refineUniformly)( const TMesh& );
+  };
+
+  template class Mesh< FlexibleMeshProps, FlexibleMeshAlgorithms >;
+  typedef Mesh< FlexibleMeshProps, FlexibleMeshAlgorithms > FlexibleMesh;
+}
+
+#include "FlexibleMesh_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/FlexibleMesh_tmpl.cpp b/src/bem3d/src/boundary_mesh/FlexibleMesh_tmpl.cpp
new file mode 100644 (file)
index 0000000..56aff7f
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FLEXIBLEMESH_TMPL_CPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FLEXIBLEMESH_TMPL_CPP_GUARD_
+
+#include "FlexibleMesh.hpp"
+#include "FaceDispatch.hpp"
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  TMesh (* FlexibleMeshAlgorithms< TMesh >::loadFromObj)(const char*)
+      = &(algorithm::loadFromObj< TMesh >);
+
+  template < class TMesh >
+  void (* FlexibleMeshAlgorithms< TMesh >::saveAsObj)(const TMesh&, const char*)
+      = &(algorithm::saveAsObj< TMesh >);
+
+  template < class TMesh >
+  TMesh (* FlexibleMeshAlgorithms< TMesh >::refineUniformly)(const TMesh& )
+      = &(algorithm::refineUniformly< TMesh >);
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/HalfEdge.cpp b/src/bem3d/src/boundary_mesh/HalfEdge.cpp
deleted file mode 100644 (file)
index e7c95a3..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#include "HalfEdge.hpp"
-
-namespace boundary_mesh {
-unsigned int HalfEdge::getNumberOfHangingNodes() const
-{
-  if (hanging_ == 0)
-  {
-    return 0;
-  }
-  else
-  {
-    HalfEdge* hanging = hanging_;
-    unsigned int hangingNodes = 0;
-    while ( (hanging = hanging->hanging_) != 0 )
-      ++hangingNodes;
-    return hangingNodes;
-  }
-}
-
-bool
-HalfEdge::operator<(const HalfEdge& rhs) const
-{
-  const Vertex* my_min = start_;
-  const Vertex* my_max = end_;
-  const Vertex* rhs_min = rhs.start_;
-  const Vertex* rhs_max = rhs.end_;
-
-  if ( my_min > my_max )
-  {
-    my_min = end_;
-    my_max = start_;
-  }
-
-  if ( rhs_min > rhs_max )
-  {
-    rhs_min = rhs.end_;
-    rhs_max = rhs.start_;
-  }
-
-  return ( my_min < rhs_min || ( my_min == rhs_min && my_max <= rhs_max ) );
-}
-
-bool
-HalfEdge::oppositeEdgeCheck(const HalfEdge& rhs) const
-{
-  const Vertex* my_min = start_;
-  const Vertex* my_max = end_;
-  const Vertex* rhs_min = rhs.start_;
-  const Vertex* rhs_max = rhs.end_;
-
-  if ( my_min > my_max )
-  {
-    my_min = end_;
-    my_max = start_;
-  }
-
-  if ( rhs_min > rhs_max )
-  {
-    rhs_min = rhs.end_;
-    rhs_max = rhs.start_;
-  }
-
-  return ( my_min == rhs_min && my_max == rhs_max );
-}
-
-bool
-halfedge_p_comparator_lt_minmax_vertex(
-  const HalfEdge* lhs, const HalfEdge* rhs)
-{
-  if ( lhs == 0 )
-    return lhs != rhs;
-  else if ( rhs == 0 )
-    return false;
-  else
-    return *lhs < *rhs;
-}
-
-bool
-halfedge_p_comparator_lt_lexical_vertex(
-  const HalfEdge* lhs, const HalfEdge* rhs)
-{
-  return ( &(lhs->getStartVertex()) < &(rhs->getStartVertex()) ||
-              ( &(lhs->getStartVertex()) == &(rhs->getStartVertex())
-                && &(lhs->getEndVertex()) < &(rhs->getEndVertex()) ) );
-}
-}
-
index b9a5d9f77aecac938fc39178db689dd945d550a4..6d3193b6ebd5a67a61bf203e72a6bd285a23c409 100644 (file)
@@ -1,73 +1,98 @@
-#ifndef MESH_HALFEDGE_HPP_GUARD_
-#define MESH_HALFEDGE_HPP_GUARD_
+#ifndef HILBERT3D_BOUNDARY_MESH_HALFEDGE_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_HALFEDGE_HPP_GUARD_
+
+/**
+ * @file HalfEdge.hpp
+ * @brief Declares a half-edge data structure.
+ *
+ * Half-edges contain the information about the geometry of the boundary mesh,
+ * basically all information except for the coordinates of the vertices.
+ */
 
 namespace boundary_mesh
 {
-  class Face;
-  class HalfEdge;
-  class Vertex;
-
-  class HalfEdge
+  /**
+   * HalfEdgeT is a class template, which implements a half-edge data
+   * structure. The template parameter must be a class, which declares at
+   * least the class-local data types Face, HalfEdge and Vertex. This class
+   * does not make any assumptions on the Face and the Vertex type. The
+   * type TMesh::HalfEdge must however be equal to the HalfEdgeT< TMesh >
+   * type when TMesh is the template parameter passed to HalfEdgeT.
+   *
+   * TODO: Do not use the Mesh class as a friend class. Create a
+   * HalfEdgeBuilder class instead. This also requires some changes in the
+   * Mesh class.
+   */
+  template < class TMesh >
+  class HalfEdgeT
   {
-    template < class T > friend class Mesh;
+    template < template <typename> class TProp,
+                template <typename> class TAlg > friend class Mesh;
 
     public:
-      HalfEdge(const Vertex& start, const Vertex& end, const Face& face)
-        : start_(&start), end_(&end), face_(&face),
-          pair_(0), prev_(0), next_(0), hanging_(0)
-        {}
-
-      const Vertex& getStartVertex() const
+      const typename TMesh::Vertex& getStartVertex() const
         { return *start_; }
-      const Vertex& getEndVertex() const
+      const typename TMesh::Vertex& getEndVertex() const
         { return *end_; }
-      const Face& getFace() const
-        { return *face_; }
-      const HalfEdge* getOppositeEdge() const
+      const typename TMesh::Face& getFace() const
+        { assert( face_ != 0 ); return *face_; }
+      const typename TMesh::HalfEdge* getOppositeEdge() const
         { return pair_; }
-      const HalfEdge* getHangingEdge() const
+      const typename TMesh::HalfEdge* getHangingEdge() const
         { return hanging_; }
-      const HalfEdge* getPreviousEdge() const
+      const typename TMesh::HalfEdge* getPreviousEdge() const
         { return prev_; }
-      const HalfEdge* getNextEdge() const
+      const typename TMesh::HalfEdge* getNextEdge() const
         { return next_; }
       unsigned int getNumberOfHangingNodes() const;
-      bool operator<(const HalfEdge& halfedge) const;
-      bool oppositeEdgeCheck(const HalfEdge& halfedge) const;
+      bool operator<(const typename TMesh::HalfEdge& halfedge) const;
+      bool oppositeEdgeCheck(const typename TMesh::HalfEdge& halfedge) const;
+
+      static bool compLtMinmaxVertex(
+            const typename TMesh::HalfEdge* lhs,
+            const typename TMesh::HalfEdge* rhs);
+      static bool compLtLexicalVertex(
+            const typename TMesh::HalfEdge* lhs,
+            const typename TMesh::HalfEdge* rhs);
 
     private:
-      HalfEdge();
-      HalfEdge* getOppositeEdge()
+      HalfEdgeT(const typename TMesh::Vertex& start,
+                const typename TMesh::Vertex& end)
+        : start_(&start), end_(&end), face_(0),
+          pair_(0), prev_(0), next_(0), hanging_(0)
+        {}
+
+      HalfEdgeT();
+      typename TMesh::HalfEdge* getOppositeEdge()
         { return pair_; }
-      HalfEdge* getPreviousEdge()
+      typename TMesh::HalfEdge* getPreviousEdge()
         { return prev_; }
-      HalfEdge* getNextEdge()
+      typename TMesh::HalfEdge* getNextEdge()
         { return next_; }
-      HalfEdge* getHangingEdge()
+      typename TMesh::HalfEdge* getHangingEdge()
         { return hanging_; }
-      void setOppositeEdge(HalfEdge* oppositeEdge)
+      void setFace(typename TMesh::Face& face)
+        { face_ = &face; }
+      void setOppositeEdge(typename TMesh::HalfEdge* oppositeEdge)
         { pair_ = oppositeEdge; }
-      void setPreviousEdge(HalfEdge* prevEdge)
+      void setPreviousEdge(typename TMesh::HalfEdge* prevEdge)
         { prev_ = prevEdge; }
-      void setNextEdge(HalfEdge* nextEdge)
+      void setNextEdge(typename TMesh::HalfEdge* nextEdge)
         { next_ = nextEdge; }
-      void setHangingEdge(HalfEdge* hangingEdge)
+      void setHangingEdge(typename TMesh::HalfEdge* hangingEdge)
         { hanging_ = hangingEdge; }
 
-      const Vertex* start_;
-      const Vertex* end_;
-      const Face* face_;
-      HalfEdge* pair_;
-      HalfEdge* prev_;
-      HalfEdge* next_;
-      HalfEdge* hanging_;
+      const typename TMesh::Vertex* start_;
+      const typename TMesh::Vertex* end_;
+      const typename TMesh::Face* face_;
+      typename TMesh::HalfEdge* pair_;
+      typename TMesh::HalfEdge* prev_;
+      typename TMesh::HalfEdge* next_;
+      typename TMesh::HalfEdge* hanging_;
   };
-
-  bool halfedge_p_comparator_lt_minmax_vertex(
-      const HalfEdge* lhs, const HalfEdge* rhs);
-  bool halfedge_p_comparator_lt_lexical_vertex(
-      const HalfEdge* lhs, const HalfEdge* rhs);
 }
 
+#include "HalfEdge_tmpl.cpp"
+
 #endif
 
diff --git a/src/bem3d/src/boundary_mesh/HalfEdge_tmpl.cpp b/src/bem3d/src/boundary_mesh/HalfEdge_tmpl.cpp
new file mode 100644 (file)
index 0000000..f62a197
--- /dev/null
@@ -0,0 +1,99 @@
+#include "HalfEdge.hpp"
+
+namespace boundary_mesh {
+template < class TMesh >
+unsigned int HalfEdgeT< TMesh >::getNumberOfHangingNodes() const
+{
+  if (hanging_ == 0)
+  {
+    return 0;
+  }
+  else
+  {
+    typename TMesh::HalfEdge* hanging = hanging_;
+    unsigned int hangingNodes = 0;
+    while ( (hanging = hanging->hanging_) != 0 )
+      ++hangingNodes;
+    return hangingNodes;
+  }
+}
+
+template < class TMesh >
+bool
+HalfEdgeT< TMesh >::operator<(const typename TMesh::HalfEdge& rhs) const
+{
+  const typename TMesh::Vertex* my_min = start_;
+  const typename TMesh::Vertex* my_max = end_;
+  const typename TMesh::Vertex* rhs_min = rhs.start_;
+  const typename TMesh::Vertex* rhs_max = rhs.end_;
+
+  if ( my_min > my_max )
+  {
+    my_min = end_;
+    my_max = start_;
+  }
+
+  if ( rhs_min > rhs_max )
+  {
+    rhs_min = rhs.end_;
+    rhs_max = rhs.start_;
+  }
+
+  return ( my_min < rhs_min || ( my_min == rhs_min && my_max <= rhs_max ) );
+}
+
+template < class TMesh >
+bool
+HalfEdgeT< TMesh >::oppositeEdgeCheck(const typename TMesh::HalfEdge& rhs) const
+{
+  const typename TMesh::Vertex* my_min = start_;
+  const typename TMesh::Vertex* my_max = end_;
+  const typename TMesh::Vertex* rhs_min = rhs.start_;
+  const typename TMesh::Vertex* rhs_max = rhs.end_;
+
+  if ( my_min > my_max )
+  {
+    my_min = end_;
+    my_max = start_;
+  }
+
+  if ( rhs_min > rhs_max )
+  {
+    rhs_min = (rhs.end_);
+    rhs_max = (rhs.start_);
+  }
+
+  return ( my_min == rhs_min && my_max == rhs_max );
+}
+
+template < class TMesh >
+bool
+HalfEdgeT< TMesh >::compLtMinmaxVertex(
+  const typename TMesh::HalfEdge* lhs,
+  const typename TMesh::HalfEdge* rhs)
+{
+  if ( lhs == 0 )
+    return lhs != rhs;
+  else if ( rhs == 0 )
+    return false;
+  else
+    return *lhs < *rhs;
+}
+
+template < class TMesh >
+bool
+HalfEdgeT<TMesh>::compLtLexicalVertex(
+  const typename TMesh::HalfEdge* lhs,
+  const typename TMesh::HalfEdge* rhs)
+{
+  if ( lhs == 0 )
+    return lhs != rhs;
+  else if ( rhs == 0)
+    return false;
+  else
+    return ( &(lhs->getStartVertex()) < &(rhs->getStartVertex()) ||
+              ( &(lhs->getStartVertex()) == &(rhs->getStartVertex())
+                && &(lhs->getEndVertex()) < &(rhs->getEndVertex()) ) );
+}
+}
+
diff --git a/src/bem3d/src/boundary_mesh/Makefile b/src/bem3d/src/boundary_mesh/Makefile
new file mode 100644 (file)
index 0000000..1011ccb
--- /dev/null
@@ -0,0 +1,711 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# src/boundary_mesh/Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+
+
+
+pkgdatadir = $(datadir)/hilbert3d
+pkgincludedir = $(includedir)/hilbert3d
+pkglibdir = $(libdir)/hilbert3d
+pkglibexecdir = $(libexecdir)/hilbert3d
+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 = :
+bin_PROGRAMS = testhilbertmesh$(EXEEXT)
+subdir = src/boundary_mesh
+DIST_COMMON = $(libhilbert_mesh_a_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(testhilbertmesh_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+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)$(libdir)" "$(DESTDIR)$(bindir)" \
+       "$(DESTDIR)$(libhilbert_mesh_adir)" \
+       "$(DESTDIR)$(testhilbertmeshdir)"
+LIBRARIES = $(lib_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libhilbert_mesh_a_AR = $(AR) $(ARFLAGS)
+libhilbert_mesh_a_LIBADD =
+am_libhilbert_mesh_a_OBJECTS =  \
+       libhilbert_mesh_a-CouldNotDispatchCall.$(OBJEXT) \
+       libhilbert_mesh_a-DispatchIdNotSet.$(OBJEXT) \
+       libhilbert_mesh_a-GenericVector.$(OBJEXT) \
+       libhilbert_mesh_a-FlexibleMesh.$(OBJEXT)
+libhilbert_mesh_a_OBJECTS = $(am_libhilbert_mesh_a_OBJECTS)
+PROGRAMS = $(bin_PROGRAMS)
+am_testhilbertmesh_OBJECTS = t.$(OBJEXT)
+testhilbertmesh_OBJECTS = $(am_testhilbertmesh_OBJECTS)
+am__DEPENDENCIES_1 =
+testhilbertmesh_DEPENDENCIES = $(am__DEPENDENCIES_1) libhilbert-mesh.a
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/src
+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)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
+SOURCES = $(libhilbert_mesh_a_SOURCES) $(testhilbertmesh_SOURCES)
+DIST_SOURCES = $(libhilbert_mesh_a_SOURCES) $(testhilbertmesh_SOURCES)
+HEADERS = $(libhilbert_mesh_a_HEADERS) $(testhilbertmesh_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar
+AUTOCONF = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11
+AWK = mawk
+BLAS_LIBS = -lblas
+BOOST_CPPFLAGS = -I/usr/include
+BOOST_LDFLAGS = -L/usr/lib
+BOOST_REGEX_LIB = -lboost_regex-mt
+BOOST_ROOT_PATH = /usr
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN_PAPER_SIZE = 
+DX_CONFIG = Doxyfile
+DX_DOCDIR = docs/doxygen
+DX_DOT = 
+DX_DOXYGEN = 
+DX_DVIPS = 
+DX_EGREP = 
+DX_ENV =  SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'
+DX_FLAG_chi = 0
+DX_FLAG_chm = 0
+DX_FLAG_doc = 0
+DX_FLAG_dot = 0
+DX_FLAG_html = 0
+DX_FLAG_man = 0
+DX_FLAG_pdf = 0
+DX_FLAG_ps = 0
+DX_FLAG_rtf = 0
+DX_FLAG_xml = 0
+DX_HHC = 
+DX_LATEX = 
+DX_MAKEINDEX = 
+DX_PDFLATEX = 
+DX_PERL = /usr/bin/perl
+DX_PROJECT = Hilbert 3D
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FFLAGS = -g -O2
+FLIBS =  -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
+GREP = /bin/grep
+HLIB_CPPFLAGS = -I/usr/local/include
+HLIB_LDFLAGS = -L/usr/local/lib
+HLIB_LIB = -lhmatrix
+HLIB_ROOT_PATH = /usr/local
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LAPACK_LIBS = -llapack
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = hilbert3d
+PACKAGE_BUGREPORT = markus.mayr@tuwien.ac.at
+PACKAGE_NAME = Hilbert 3D
+PACKAGE_STRING = Hilbert 3D 0.1.0
+PACKAGE_TARNAME = hilbert3d
+PACKAGE_URL = http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git
+PACKAGE_VERSION = 0.1.0
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = 
+VERSION = 0.1.0
+abs_builddir = /home/treecity/workspace/bacc/src/bem3d/src/boundary_mesh
+abs_srcdir = /home/treecity/workspace/bacc/src/bem3d/src/boundary_mesh
+abs_top_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_srcdir = /home/treecity/workspace/bacc/src/bem3d
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+lib_LIBRARIES = libhilbert-mesh.a
+libhilbert_mesh_adir = .
+libhilbert_mesh_a_SOURCES = \
+  exception/CouldNotDispatchCall.cpp exception/DispatchIdNotSet.cpp \
+  ../generic/GenericVector.cpp FlexibleMesh.cpp
+
+libhilbert_mesh_a_HEADERS = \
+  Face.hpp Face.cpp FaceDispatch.hpp FaceDispatch_tmpl.cpp FlexibleMesh.hpp \
+  FlexibleMesh_tmpl.cpp HalfEdge.hpp HalfEdge_tmpl.cpp MeshBuilder.hpp \
+  MeshBuilder_tmpl.cpp Mesh.hpp Mesh.cpp types.hpp Vertex.hpp Vertex_tmpl.cpp \
+  algorithm/HandleObj.hpp algorithm/HandleObj_tmpl.cpp \
+  algorithm/RefineUniformly.hpp algorithm/RefineUniformly_tmpl.cpp \
+  exception/CouldNotDispatchCall.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/NoMatchingFaceType_tmpl.cpp \
+  face/ConvexQuadrilateral.hpp face/ConvexQuadrilateral_tmpl.cpp \
+  face/Parallelogram.hpp face/Parallelogram_tmpl.cpp \
+  face/Quadrilateral.hpp face/Quadrilateral_tmpl.cpp \
+  face/Triangle.hpp face/Triangle_tmpl.cpp \
+  ../generic/BaseTypes.hpp ../generic/TypeList.hpp \
+  ../generic/Singleton.hpp ../generic/Singleton_tmpl.cpp \
+  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp
+
+libhilbert_mesh_a_CPPFLAGS = $(CPPFLAGS)
+testhilbertmeshdir = .
+testhilbertmesh_SOURCES = t.cpp
+testhilbertmesh_HEADERS = \
+  Face.hpp HalfEdge.hpp FlexibleMesh.hpp Mesh.hpp Vertex.hpp \
+  ../generic/GenericVector.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/CouldNotDispatchCall.hpp \
+  algorithm/HandleObj.hpp algorithm/RefineUniformly.hpp
+
+testhilbertmesh_LDADD = $(BOOST_REGEX_LIB) libhilbert-mesh.a
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .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 src/boundary_mesh/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/boundary_mesh/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):
+install-libLIBRARIES: $(lib_LIBRARIES)
+       @$(NORMAL_INSTALL)
+       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
+         $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
+       @$(POST_INSTALL)
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       for p in $$list; do \
+         if test -f $$p; then \
+           $(am__strip_dir) \
+           echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
+           ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
+         else :; fi; \
+       done
+
+uninstall-libLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libdir)' && rm -f "$$files" )"; \
+       cd "$(DESTDIR)$(libdir)" && rm -f $$files
+
+clean-libLIBRARIES:
+       -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libhilbert-mesh.a: $(libhilbert_mesh_a_OBJECTS) $(libhilbert_mesh_a_DEPENDENCIES) 
+       -rm -f libhilbert-mesh.a
+       $(libhilbert_mesh_a_AR) libhilbert-mesh.a $(libhilbert_mesh_a_OBJECTS) $(libhilbert_mesh_a_LIBADD)
+       $(RANLIB) libhilbert-mesh.a
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+testhilbertmesh$(EXEEXT): $(testhilbertmesh_OBJECTS) $(testhilbertmesh_DEPENDENCIES) 
+       @rm -f testhilbertmesh$(EXEEXT)
+       $(CXXLINK) $(testhilbertmesh_OBJECTS) $(testhilbertmesh_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+include ./$(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po
+include ./$(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po
+include ./$(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po
+include ./$(DEPDIR)/libhilbert_mesh_a-GenericVector.Po
+include ./$(DEPDIR)/t.Po
+
+.cpp.o:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+libhilbert_mesh_a-CouldNotDispatchCall.o: exception/CouldNotDispatchCall.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-CouldNotDispatchCall.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo -c -o libhilbert_mesh_a-CouldNotDispatchCall.o `test -f 'exception/CouldNotDispatchCall.cpp' || echo '$(srcdir)/'`exception/CouldNotDispatchCall.cpp
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po
+#      source='exception/CouldNotDispatchCall.cpp' object='libhilbert_mesh_a-CouldNotDispatchCall.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-CouldNotDispatchCall.o `test -f 'exception/CouldNotDispatchCall.cpp' || echo '$(srcdir)/'`exception/CouldNotDispatchCall.cpp
+
+libhilbert_mesh_a-CouldNotDispatchCall.obj: exception/CouldNotDispatchCall.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-CouldNotDispatchCall.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo -c -o libhilbert_mesh_a-CouldNotDispatchCall.obj `if test -f 'exception/CouldNotDispatchCall.cpp'; then $(CYGPATH_W) 'exception/CouldNotDispatchCall.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/CouldNotDispatchCall.cpp'; fi`
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po
+#      source='exception/CouldNotDispatchCall.cpp' object='libhilbert_mesh_a-CouldNotDispatchCall.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-CouldNotDispatchCall.obj `if test -f 'exception/CouldNotDispatchCall.cpp'; then $(CYGPATH_W) 'exception/CouldNotDispatchCall.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/CouldNotDispatchCall.cpp'; fi`
+
+libhilbert_mesh_a-DispatchIdNotSet.o: exception/DispatchIdNotSet.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-DispatchIdNotSet.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo -c -o libhilbert_mesh_a-DispatchIdNotSet.o `test -f 'exception/DispatchIdNotSet.cpp' || echo '$(srcdir)/'`exception/DispatchIdNotSet.cpp
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po
+#      source='exception/DispatchIdNotSet.cpp' object='libhilbert_mesh_a-DispatchIdNotSet.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-DispatchIdNotSet.o `test -f 'exception/DispatchIdNotSet.cpp' || echo '$(srcdir)/'`exception/DispatchIdNotSet.cpp
+
+libhilbert_mesh_a-DispatchIdNotSet.obj: exception/DispatchIdNotSet.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-DispatchIdNotSet.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo -c -o libhilbert_mesh_a-DispatchIdNotSet.obj `if test -f 'exception/DispatchIdNotSet.cpp'; then $(CYGPATH_W) 'exception/DispatchIdNotSet.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/DispatchIdNotSet.cpp'; fi`
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po
+#      source='exception/DispatchIdNotSet.cpp' object='libhilbert_mesh_a-DispatchIdNotSet.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-DispatchIdNotSet.obj `if test -f 'exception/DispatchIdNotSet.cpp'; then $(CYGPATH_W) 'exception/DispatchIdNotSet.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/DispatchIdNotSet.cpp'; fi`
+
+libhilbert_mesh_a-GenericVector.o: ../generic/GenericVector.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-GenericVector.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo -c -o libhilbert_mesh_a-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo $(DEPDIR)/libhilbert_mesh_a-GenericVector.Po
+#      source='../generic/GenericVector.cpp' object='libhilbert_mesh_a-GenericVector.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+
+libhilbert_mesh_a-GenericVector.obj: ../generic/GenericVector.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-GenericVector.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo -c -o libhilbert_mesh_a-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo $(DEPDIR)/libhilbert_mesh_a-GenericVector.Po
+#      source='../generic/GenericVector.cpp' object='libhilbert_mesh_a-GenericVector.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+
+libhilbert_mesh_a-FlexibleMesh.o: FlexibleMesh.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-FlexibleMesh.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo -c -o libhilbert_mesh_a-FlexibleMesh.o `test -f 'FlexibleMesh.cpp' || echo '$(srcdir)/'`FlexibleMesh.cpp
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po
+#      source='FlexibleMesh.cpp' object='libhilbert_mesh_a-FlexibleMesh.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-FlexibleMesh.o `test -f 'FlexibleMesh.cpp' || echo '$(srcdir)/'`FlexibleMesh.cpp
+
+libhilbert_mesh_a-FlexibleMesh.obj: FlexibleMesh.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-FlexibleMesh.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo -c -o libhilbert_mesh_a-FlexibleMesh.obj `if test -f 'FlexibleMesh.cpp'; then $(CYGPATH_W) 'FlexibleMesh.cpp'; else $(CYGPATH_W) '$(srcdir)/FlexibleMesh.cpp'; fi`
+       $(am__mv) $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po
+#      source='FlexibleMesh.cpp' object='libhilbert_mesh_a-FlexibleMesh.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-FlexibleMesh.obj `if test -f 'FlexibleMesh.cpp'; then $(CYGPATH_W) 'FlexibleMesh.cpp'; else $(CYGPATH_W) '$(srcdir)/FlexibleMesh.cpp'; fi`
+install-libhilbert_mesh_aHEADERS: $(libhilbert_mesh_a_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libhilbert_mesh_adir)" || $(MKDIR_P) "$(DESTDIR)$(libhilbert_mesh_adir)"
+       @list='$(libhilbert_mesh_a_HEADERS)'; test -n "$(libhilbert_mesh_adir)" || 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)$(libhilbert_mesh_adir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libhilbert_mesh_adir)" || exit $$?; \
+       done
+
+uninstall-libhilbert_mesh_aHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libhilbert_mesh_a_HEADERS)'; test -n "$(libhilbert_mesh_adir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libhilbert_mesh_adir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libhilbert_mesh_adir)" && rm -f $$files
+install-testhilbertmeshHEADERS: $(testhilbertmesh_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(testhilbertmeshdir)" || $(MKDIR_P) "$(DESTDIR)$(testhilbertmeshdir)"
+       @list='$(testhilbertmesh_HEADERS)'; test -n "$(testhilbertmeshdir)" || 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)$(testhilbertmeshdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(testhilbertmeshdir)" || exit $$?; \
+       done
+
+uninstall-testhilbertmeshHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(testhilbertmesh_HEADERS)'; test -n "$(testhilbertmeshdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(testhilbertmeshdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(testhilbertmeshdir)" && 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 $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libhilbert_mesh_adir)" "$(DESTDIR)$(testhilbertmeshdir)"; 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-binPROGRAMS clean-generic clean-libLIBRARIES \
+       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-libhilbert_mesh_aHEADERS \
+       install-testhilbertmeshHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-libLIBRARIES
+
+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
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-libLIBRARIES \
+       uninstall-libhilbert_mesh_aHEADERS \
+       uninstall-testhilbertmeshHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic clean-libLIBRARIES ctags distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-binPROGRAMS 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-libLIBRARIES install-libhilbert_mesh_aHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip install-testhilbertmeshHEADERS \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS uninstall-libLIBRARIES \
+       uninstall-libhilbert_mesh_aHEADERS \
+       uninstall-testhilbertmeshHEADERS
+
+
+# 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:
index 03eada2b20fa8c720addce65b47bed2c0360e06f..247cc6371078a4e34c30cc52db4c1e60f9068a4a 100644 (file)
@@ -1,38 +1,33 @@
-bin_PROGRAMS = testhilbertmesh mesh_compare
+bin_PROGRAMS = testhilbertmesh
 lib_LIBRARIES = libhilbert-mesh.a
 
 libhilbert_mesh_adir = .
-libhilbert_mesh_a_HEADERS = \
-  Face.hpp Face_tmpl.cpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  layer/Marker.hpp layer/Marker.cpp mixin/MeshMixin.hpp \
-  mixin/RefiningAdaptivly.hpp mixin/RefiningAdaptivly.cpp \
-  mixin/RefiningUniformly.hpp mixin/RefiningUniformly.cpp
 libhilbert_mesh_a_SOURCES = \
-  Face.cpp HalfEdge.cpp Vertex.cpp \
-  ../generic/GenericVector.cpp
-
+  exception/CouldNotDispatchCall.cpp exception/DispatchIdNotSet.cpp \
+  ../generic/GenericVector.cpp FlexibleMesh.cpp
+libhilbert_mesh_a_HEADERS = \
+  Face.hpp Face.cpp FaceDispatch.hpp FaceDispatch_tmpl.cpp FlexibleMesh.hpp \
+  FlexibleMesh_tmpl.cpp HalfEdge.hpp HalfEdge_tmpl.cpp MeshBuilder.hpp \
+  MeshBuilder_tmpl.cpp Mesh.hpp Mesh.cpp types.hpp Vertex.hpp Vertex_tmpl.cpp \
+  algorithm/HandleObj.hpp algorithm/HandleObj_tmpl.cpp \
+  algorithm/RefineUniformly.hpp algorithm/RefineUniformly_tmpl.cpp \
+  exception/CouldNotDispatchCall.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/NoMatchingFaceType_tmpl.cpp \
+  face/ConvexQuadrilateral.hpp face/ConvexQuadrilateral_tmpl.cpp \
+  face/Parallelogram.hpp face/Parallelogram_tmpl.cpp \
+  face/Quadrilateral.hpp face/Quadrilateral_tmpl.cpp \
+  face/Triangle.hpp face/Triangle_tmpl.cpp \
+  ../generic/BaseTypes.hpp ../generic/TypeList.hpp \
+  ../generic/Singleton.hpp ../generic/Singleton_tmpl.cpp \
+  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp
+libhilbert_mesh_a_CPPFLAGS = $(CPPFLAGS)
 
 testhilbertmeshdir = .
 testhilbertmesh_SOURCES = t.cpp
 testhilbertmesh_HEADERS = \
-  Face.hpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  layer/Marker.hpp layer/Marker.cpp mixin/MeshMixin.hpp \
-  mixin/RefiningAdaptivly.hpp mixin/RefiningAdaptivly.cpp \
-  mixin/RefiningUniformly.hpp mixin/RefiningUniformly.cpp
+  Face.hpp HalfEdge.hpp FlexibleMesh.hpp Mesh.hpp Vertex.hpp \
+  ../generic/GenericVector.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/CouldNotDispatchCall.hpp \
+  algorithm/HandleObj.hpp algorithm/RefineUniformly.hpp
 testhilbertmesh_LDADD = $(BOOST_REGEX_LIB) libhilbert-mesh.a
 
-mesh_comparedir = .
-mesh_compare_SOURCES = mesh_compare.cpp
-mesh_compare_HEADERS = \
-  Face.hpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  mixin/Comparing.hpp mixin/Comparing.cpp
-mesh_compare_LDADD = $(BOOST_REGEX_LIB) libhilbert-mesh.a
-
index b38c19196142f71bdc4fe388cf98309d60571e6e..9798cb5065f4d7b091b5556a7aa568a9b58c57ee 100644 (file)
@@ -34,11 +34,10 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-bin_PROGRAMS = testhilbertmesh$(EXEEXT) mesh_compare$(EXEEXT)
+bin_PROGRAMS = testhilbertmesh$(EXEEXT)
 subdir = src/boundary_mesh
-DIST_COMMON = $(libhilbert_mesh_a_HEADERS) $(mesh_compare_HEADERS) \
-       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(testhilbertmesh_HEADERS)
+DIST_COMMON = $(libhilbert_mesh_a_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(testhilbertmesh_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
        $(top_srcdir)/m4/ax_boost_base.m4 \
@@ -74,23 +73,22 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
        "$(DESTDIR)$(libhilbert_mesh_adir)" \
-       "$(DESTDIR)$(mesh_comparedir)" \
        "$(DESTDIR)$(testhilbertmeshdir)"
 LIBRARIES = $(lib_LIBRARIES)
 AR = ar
 ARFLAGS = cru
 libhilbert_mesh_a_AR = $(AR) $(ARFLAGS)
 libhilbert_mesh_a_LIBADD =
-am_libhilbert_mesh_a_OBJECTS = Face.$(OBJEXT) HalfEdge.$(OBJEXT) \
-       Vertex.$(OBJEXT) GenericVector.$(OBJEXT)
+am_libhilbert_mesh_a_OBJECTS =  \
+       libhilbert_mesh_a-CouldNotDispatchCall.$(OBJEXT) \
+       libhilbert_mesh_a-DispatchIdNotSet.$(OBJEXT) \
+       libhilbert_mesh_a-GenericVector.$(OBJEXT) \
+       libhilbert_mesh_a-FlexibleMesh.$(OBJEXT)
 libhilbert_mesh_a_OBJECTS = $(am_libhilbert_mesh_a_OBJECTS)
 PROGRAMS = $(bin_PROGRAMS)
-am_mesh_compare_OBJECTS = mesh_compare.$(OBJEXT)
-mesh_compare_OBJECTS = $(am_mesh_compare_OBJECTS)
-am__DEPENDENCIES_1 =
-mesh_compare_DEPENDENCIES = $(am__DEPENDENCIES_1) libhilbert-mesh.a
 am_testhilbertmesh_OBJECTS = t.$(OBJEXT)
 testhilbertmesh_OBJECTS = $(am_testhilbertmesh_OBJECTS)
+am__DEPENDENCIES_1 =
 testhilbertmesh_DEPENDENCIES = $(am__DEPENDENCIES_1) libhilbert-mesh.a
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -101,12 +99,9 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 CXXLD = $(CXX)
 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
        -o $@
-SOURCES = $(libhilbert_mesh_a_SOURCES) $(mesh_compare_SOURCES) \
-       $(testhilbertmesh_SOURCES)
-DIST_SOURCES = $(libhilbert_mesh_a_SOURCES) $(mesh_compare_SOURCES) \
-       $(testhilbertmesh_SOURCES)
-HEADERS = $(libhilbert_mesh_a_HEADERS) $(mesh_compare_HEADERS) \
-       $(testhilbertmesh_HEADERS)
+SOURCES = $(libhilbert_mesh_a_SOURCES) $(testhilbertmesh_SOURCES)
+DIST_SOURCES = $(libhilbert_mesh_a_SOURCES) $(testhilbertmesh_SOURCES)
+HEADERS = $(libhilbert_mesh_a_HEADERS) $(testhilbertmesh_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -241,40 +236,36 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 lib_LIBRARIES = libhilbert-mesh.a
 libhilbert_mesh_adir = .
-libhilbert_mesh_a_HEADERS = \
-  Face.hpp Face_tmpl.cpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  layer/Marker.hpp layer/Marker.cpp mixin/MeshMixin.hpp \
-  mixin/RefiningAdaptivly.hpp mixin/RefiningAdaptivly.cpp \
-  mixin/RefiningUniformly.hpp mixin/RefiningUniformly.cpp
-
 libhilbert_mesh_a_SOURCES = \
-  Face.cpp HalfEdge.cpp Vertex.cpp \
-  ../generic/GenericVector.cpp
+  exception/CouldNotDispatchCall.cpp exception/DispatchIdNotSet.cpp \
+  ../generic/GenericVector.cpp FlexibleMesh.cpp
 
+libhilbert_mesh_a_HEADERS = \
+  Face.hpp Face.cpp FaceDispatch.hpp FaceDispatch_tmpl.cpp FlexibleMesh.hpp \
+  FlexibleMesh_tmpl.cpp HalfEdge.hpp HalfEdge_tmpl.cpp MeshBuilder.hpp \
+  MeshBuilder_tmpl.cpp Mesh.hpp Mesh.cpp types.hpp Vertex.hpp Vertex_tmpl.cpp \
+  algorithm/HandleObj.hpp algorithm/HandleObj_tmpl.cpp \
+  algorithm/RefineUniformly.hpp algorithm/RefineUniformly_tmpl.cpp \
+  exception/CouldNotDispatchCall.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/NoMatchingFaceType_tmpl.cpp \
+  face/ConvexQuadrilateral.hpp face/ConvexQuadrilateral_tmpl.cpp \
+  face/Parallelogram.hpp face/Parallelogram_tmpl.cpp \
+  face/Quadrilateral.hpp face/Quadrilateral_tmpl.cpp \
+  face/Triangle.hpp face/Triangle_tmpl.cpp \
+  ../generic/BaseTypes.hpp ../generic/TypeList.hpp \
+  ../generic/Singleton.hpp ../generic/Singleton_tmpl.cpp \
+  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp
+
+libhilbert_mesh_a_CPPFLAGS = $(CPPFLAGS)
 testhilbertmeshdir = .
 testhilbertmesh_SOURCES = t.cpp
 testhilbertmesh_HEADERS = \
-  Face.hpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  layer/Marker.hpp layer/Marker.cpp mixin/MeshMixin.hpp \
-  mixin/RefiningAdaptivly.hpp mixin/RefiningAdaptivly.cpp \
-  mixin/RefiningUniformly.hpp mixin/RefiningUniformly.cpp
+  Face.hpp HalfEdge.hpp FlexibleMesh.hpp Mesh.hpp Vertex.hpp \
+  ../generic/GenericVector.hpp exception/DispatchIdNotSet.hpp \
+  exception/NoMatchingFaceType.hpp exception/CouldNotDispatchCall.hpp \
+  algorithm/HandleObj.hpp algorithm/RefineUniformly.hpp
 
 testhilbertmesh_LDADD = $(BOOST_REGEX_LIB) libhilbert-mesh.a
-mesh_comparedir = .
-mesh_compare_SOURCES = mesh_compare.cpp
-mesh_compare_HEADERS = \
-  Face.hpp HalfEdge.hpp Mesh.hpp Mesh.cpp Vertex.hpp \
-  mixin/ExportingObj.hpp mixin/ExportingObj.cpp \
-  mixin/LoadingObj.hpp mixin/LoadingObj.cpp \
-  mixin/Comparing.hpp mixin/Comparing.cpp
-
-mesh_compare_LDADD = $(BOOST_REGEX_LIB) libhilbert-mesh.a
 all: all-am
 
 .SUFFIXES:
@@ -382,9 +373,6 @@ uninstall-binPROGRAMS:
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-mesh_compare$(EXEEXT): $(mesh_compare_OBJECTS) $(mesh_compare_DEPENDENCIES) 
-       @rm -f mesh_compare$(EXEEXT)
-       $(CXXLINK) $(mesh_compare_OBJECTS) $(mesh_compare_LDADD) $(LIBS)
 testhilbertmesh$(EXEEXT): $(testhilbertmesh_OBJECTS) $(testhilbertmesh_DEPENDENCIES) 
        @rm -f testhilbertmesh$(EXEEXT)
        $(CXXLINK) $(testhilbertmesh_OBJECTS) $(testhilbertmesh_LDADD) $(LIBS)
@@ -395,11 +383,10 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Face.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenericVector.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HalfEdge.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Vertex.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mesh_compare.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhilbert_mesh_a-GenericVector.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t.Po@am__quote@
 
 .cpp.o:
@@ -416,19 +403,61 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-GenericVector.o: ../generic/GenericVector.cpp
-@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenericVector.o -MD -MP -MF $(DEPDIR)/GenericVector.Tpo -c -o GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
-@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/GenericVector.Tpo $(DEPDIR)/GenericVector.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='GenericVector.o' libtool=no @AMDEPBACKSLASH@
+libhilbert_mesh_a-CouldNotDispatchCall.o: exception/CouldNotDispatchCall.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-CouldNotDispatchCall.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo -c -o libhilbert_mesh_a-CouldNotDispatchCall.o `test -f 'exception/CouldNotDispatchCall.cpp' || echo '$(srcdir)/'`exception/CouldNotDispatchCall.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='exception/CouldNotDispatchCall.cpp' object='libhilbert_mesh_a-CouldNotDispatchCall.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-CouldNotDispatchCall.o `test -f 'exception/CouldNotDispatchCall.cpp' || echo '$(srcdir)/'`exception/CouldNotDispatchCall.cpp
+
+libhilbert_mesh_a-CouldNotDispatchCall.obj: exception/CouldNotDispatchCall.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-CouldNotDispatchCall.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo -c -o libhilbert_mesh_a-CouldNotDispatchCall.obj `if test -f 'exception/CouldNotDispatchCall.cpp'; then $(CYGPATH_W) 'exception/CouldNotDispatchCall.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/CouldNotDispatchCall.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Tpo $(DEPDIR)/libhilbert_mesh_a-CouldNotDispatchCall.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='exception/CouldNotDispatchCall.cpp' object='libhilbert_mesh_a-CouldNotDispatchCall.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-CouldNotDispatchCall.obj `if test -f 'exception/CouldNotDispatchCall.cpp'; then $(CYGPATH_W) 'exception/CouldNotDispatchCall.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/CouldNotDispatchCall.cpp'; fi`
+
+libhilbert_mesh_a-DispatchIdNotSet.o: exception/DispatchIdNotSet.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-DispatchIdNotSet.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo -c -o libhilbert_mesh_a-DispatchIdNotSet.o `test -f 'exception/DispatchIdNotSet.cpp' || echo '$(srcdir)/'`exception/DispatchIdNotSet.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='exception/DispatchIdNotSet.cpp' object='libhilbert_mesh_a-DispatchIdNotSet.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-DispatchIdNotSet.o `test -f 'exception/DispatchIdNotSet.cpp' || echo '$(srcdir)/'`exception/DispatchIdNotSet.cpp
+
+libhilbert_mesh_a-DispatchIdNotSet.obj: exception/DispatchIdNotSet.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-DispatchIdNotSet.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo -c -o libhilbert_mesh_a-DispatchIdNotSet.obj `if test -f 'exception/DispatchIdNotSet.cpp'; then $(CYGPATH_W) 'exception/DispatchIdNotSet.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/DispatchIdNotSet.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Tpo $(DEPDIR)/libhilbert_mesh_a-DispatchIdNotSet.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='exception/DispatchIdNotSet.cpp' object='libhilbert_mesh_a-DispatchIdNotSet.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-DispatchIdNotSet.obj `if test -f 'exception/DispatchIdNotSet.cpp'; then $(CYGPATH_W) 'exception/DispatchIdNotSet.cpp'; else $(CYGPATH_W) '$(srcdir)/exception/DispatchIdNotSet.cpp'; fi`
+
+libhilbert_mesh_a-GenericVector.o: ../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-GenericVector.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo -c -o libhilbert_mesh_a-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo $(DEPDIR)/libhilbert_mesh_a-GenericVector.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='libhilbert_mesh_a-GenericVector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+
+libhilbert_mesh_a-GenericVector.obj: ../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-GenericVector.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo -c -o libhilbert_mesh_a-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-GenericVector.Tpo $(DEPDIR)/libhilbert_mesh_a-GenericVector.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='libhilbert_mesh_a-GenericVector.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
 
-GenericVector.obj: ../generic/GenericVector.cpp
-@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GenericVector.obj -MD -MP -MF $(DEPDIR)/GenericVector.Tpo -c -o GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
-@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/GenericVector.Tpo $(DEPDIR)/GenericVector.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='GenericVector.obj' libtool=no @AMDEPBACKSLASH@
+libhilbert_mesh_a-FlexibleMesh.o: FlexibleMesh.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-FlexibleMesh.o -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo -c -o libhilbert_mesh_a-FlexibleMesh.o `test -f 'FlexibleMesh.cpp' || echo '$(srcdir)/'`FlexibleMesh.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='FlexibleMesh.cpp' object='libhilbert_mesh_a-FlexibleMesh.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-FlexibleMesh.o `test -f 'FlexibleMesh.cpp' || echo '$(srcdir)/'`FlexibleMesh.cpp
+
+libhilbert_mesh_a-FlexibleMesh.obj: FlexibleMesh.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_mesh_a-FlexibleMesh.obj -MD -MP -MF $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo -c -o libhilbert_mesh_a-FlexibleMesh.obj `if test -f 'FlexibleMesh.cpp'; then $(CYGPATH_W) 'FlexibleMesh.cpp'; else $(CYGPATH_W) '$(srcdir)/FlexibleMesh.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Tpo $(DEPDIR)/libhilbert_mesh_a-FlexibleMesh.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='FlexibleMesh.cpp' object='libhilbert_mesh_a-FlexibleMesh.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_mesh_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_mesh_a-FlexibleMesh.obj `if test -f 'FlexibleMesh.cpp'; then $(CYGPATH_W) 'FlexibleMesh.cpp'; else $(CYGPATH_W) '$(srcdir)/FlexibleMesh.cpp'; fi`
 install-libhilbert_mesh_aHEADERS: $(libhilbert_mesh_a_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libhilbert_mesh_adir)" || $(MKDIR_P) "$(DESTDIR)$(libhilbert_mesh_adir)"
@@ -449,26 +478,6 @@ uninstall-libhilbert_mesh_aHEADERS:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(libhilbert_mesh_adir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(libhilbert_mesh_adir)" && rm -f $$files
-install-mesh_compareHEADERS: $(mesh_compare_HEADERS)
-       @$(NORMAL_INSTALL)
-       test -z "$(mesh_comparedir)" || $(MKDIR_P) "$(DESTDIR)$(mesh_comparedir)"
-       @list='$(mesh_compare_HEADERS)'; test -n "$(mesh_comparedir)" || 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)$(mesh_comparedir)'"; \
-         $(INSTALL_HEADER) $$files "$(DESTDIR)$(mesh_comparedir)" || exit $$?; \
-       done
-
-uninstall-mesh_compareHEADERS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(mesh_compare_HEADERS)'; test -n "$(mesh_comparedir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(mesh_comparedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(mesh_comparedir)" && rm -f $$files
 install-testhilbertmeshHEADERS: $(testhilbertmesh_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(testhilbertmeshdir)" || $(MKDIR_P) "$(DESTDIR)$(testhilbertmeshdir)"
@@ -576,7 +585,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
 installdirs:
-       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libhilbert_mesh_adir)" "$(DESTDIR)$(mesh_comparedir)" "$(DESTDIR)$(testhilbertmeshdir)"; do \
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libhilbert_mesh_adir)" "$(DESTDIR)$(testhilbertmeshdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -628,7 +637,7 @@ info: info-am
 info-am:
 
 install-data-am: install-libhilbert_mesh_aHEADERS \
-       install-mesh_compareHEADERS install-testhilbertmeshHEADERS
+       install-testhilbertmeshHEADERS
 
 install-dvi: install-dvi-am
 
@@ -675,7 +684,7 @@ ps-am:
 
 uninstall-am: uninstall-binPROGRAMS uninstall-libLIBRARIES \
        uninstall-libhilbert_mesh_aHEADERS \
-       uninstall-mesh_compareHEADERS uninstall-testhilbertmeshHEADERS
+       uninstall-testhilbertmeshHEADERS
 
 .MAKE: install-am install-strip
 
@@ -687,14 +696,14 @@ uninstall-am: uninstall-binPROGRAMS uninstall-libLIBRARIES \
        install-dvi-am install-exec install-exec-am install-html \
        install-html-am install-info install-info-am \
        install-libLIBRARIES install-libhilbert_mesh_aHEADERS \
-       install-man install-mesh_compareHEADERS install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       install-testhilbertmeshHEADERS installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-       ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-libLIBRARIES uninstall-libhilbert_mesh_aHEADERS \
-       uninstall-mesh_compareHEADERS uninstall-testhilbertmeshHEADERS
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip install-testhilbertmeshHEADERS \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS uninstall-libLIBRARIES \
+       uninstall-libhilbert_mesh_aHEADERS \
+       uninstall-testhilbertmeshHEADERS
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/bem3d/src/boundary_mesh/Marker.hpp b/src/bem3d/src/boundary_mesh/Marker.hpp
new file mode 100644 (file)
index 0000000..67fd4a1
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_MARKER_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_MARKER_HPP_GUARD_
+
+#include "Marker_fwd.hpp"
+#include "Marker_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/Marker_fwd.hpp b/src/bem3d/src/boundary_mesh/Marker_fwd.hpp
new file mode 100644 (file)
index 0000000..6be62d2
--- /dev/null
@@ -0,0 +1,144 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_MARKER_FWD_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_MARKER_FWD_HPP_GUARD_
+
+#include <vector>
+
+namespace boundary_mesh
+{
+  /**
+   * The Marker class contains state information about a specific Mesh instance.
+   * It stores whether a certain edge is marked with respect to a certain face.
+   * This class was written for and is extensivly used within the adaptive
+   * refinement algorithms. There, we also provide functions to build the
+   * closure of a marking with respect to certain shape regularity constraints.
+   *
+   * In order to follow our design principle of objects being "immutable after
+   * construction", we provide the MarkerBuilder class which exposes methods
+   * to build or instantize a Marker instance step by step.
+   */
+  template < class TMesh >
+  class Marker
+  {
+    template <typename> friend class MarkerBuilder; // MK changed this: XXX: why do i have to write typename, and not class TMesh?
+
+    public:
+      /**
+       * @param face This is a face, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       * @param edge This is a half-edge, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       *
+       * TODO: Error handling? At the moment:
+       * The method fails and terminates the program if either face or edge
+       * are not within the Mesh instance, this Marker instance was created for,
+       * if compiled wihtout the NDEBUG flag. Otherwise, behaviour is undefined.
+       *
+       * @returns Whether the given half-edge is marked with respect to the
+       *          given face.
+       */
+      bool isMarked( const typename TMesh::Face& face,
+                      const typename TMesh::HalfEdge& edge) const;
+
+    private:
+      const TMesh& mesh_;
+      std::vector< bool > marked_;
+
+      /**
+       * @param mesh
+       *
+       * Creates and initializes a Marker instance which has enough space to
+       * mark any number of edges.
+       */
+      Marker( const TMesh& mesh );
+
+      /**
+       * @param marker
+       *
+       * Creates a copy of the given Marker instance.
+       */
+      Marker( const Marker& marker );
+
+      /**
+       * @param face This is a face, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       * @param edge This is a half-edge, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       *
+       * TODO: Error handling? At the moment:
+       * The method fails and terminates the program if either face or edge
+       * are not within the Mesh instance, this Marker instance was created for,
+       * if compiled wihtout the NDEBUG flag. Otherwise, behaviour is undefined.
+       *
+       * This method marks the given edge with respect to the given face.
+       * Subsequent class to the method isMarked with the same face and the same
+       * edge will return true.
+       */
+      void mark( const typename TMesh::Face& face,
+                  const typename TMesh::HalfEdge& edge);
+
+      /**
+       * @param face This is a face, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       * @param edge This is a half-edge, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       *
+       * TODO: Error handling? At the moment:
+       * The method fails and terminates the program if either face or edge
+       * are not within the Mesh instance, this Marker instance was created for,
+       * if compiled wihtout the NDEBUG flag. Otherwise, behaviour is undefined.
+       *
+       * @returns The index of the given face/edge combination with respect to
+       *          the boolean vector, the marker flags are stored within.
+       */
+      geoid_t getIndex( const typename TMesh::Face& face,
+                          const typename TMesh::HalfEdge& edge) const;
+  };
+
+  /**
+   * TODO: Write documentation for MarkerBuilder class.
+   */
+  template < class TMesh >
+  class MarkerBuilder
+  {
+    public:
+      /**
+       * @param mesh
+       *
+       * Creates a new MeshBuilder instance with respect to the given Mesh
+       * instance.
+       */
+      MarkerBuilder( const TMesh& mesh );
+
+      /**
+       * @param marker
+       *
+       * Create a new MeshBuilder instance with respect to the same Mesh
+       * instance the given Marker instance refers to. Also marks all the
+       * face/edge combinations, which are marked within the given Marker
+       * instance.
+       */
+      MarkerBuilder( const Marker< TMesh >& marker );
+
+      /**
+       * @param face This is a face, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       * @param edge This is a half-edge, which is contained within the Mesh
+       *             instance this Marker instance was created for.
+       *
+       * Marks the given face/edge combination within the Marker instance.
+       */
+      void mark( const typename TMesh::Face& face,
+                  const typename TMesh::HalfEdge& edge );
+
+      /**
+       * @returns Delivers the Marker instance that is built by this class.
+       */
+      Marker< TMesh > deliver();
+
+    private:
+      Marker< TMesh > marker_;
+  };
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/Marker_tmpl.cpp b/src/bem3d/src/boundary_mesh/Marker_tmpl.cpp
new file mode 100644 (file)
index 0000000..c7e6efc
--- /dev/null
@@ -0,0 +1,72 @@
+#include "Marker_fwd.hpp"
+#include <cassert>
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  bool
+  Marker< TMesh >::isMarked( const typename TMesh::Face& face,
+                      const typename TMesh::HalfEdge& edge ) const
+  {
+    geoid_t idx = getIndex( face, edge );
+    assert( idx < marked_.size() );
+    return marked_[ idx ];
+  }
+
+  template < class TMesh >
+  Marker< TMesh >::Marker( const TMesh& mesh )
+    : mesh_(mesh),
+      marked_(std::vector< bool >( mesh.getNumberOfFaces() *
+        TMesh::Prop::maximumNumberOfEdgesPerFace, false ))
+  {}
+
+  template < class TMesh >
+  Marker< TMesh >::Marker( const Marker& marker )
+    : mesh_(marker.mesh_), marked_(marker.marked_)
+  {}
+
+  template < class TMesh >
+  void
+  Marker< TMesh >::mark( const typename TMesh::Face& face,
+                      const typename TMesh::HalfEdge& edge )
+  {
+    geoid_t idx = getIndex( face, edge );
+    assert( idx < marked_.size() );
+    marked_[ idx ] = true;
+  }
+
+  template < class TMesh >
+  geoid_t
+  Marker< TMesh >::getIndex( const typename TMesh::Face& face,
+                      const typename TMesh::HalfEdge& edge ) const
+  {
+    return TMesh::Prop::maximumNumberOfEdgesPerFace * mesh_.getFaceId( face )
+            + face.getLocalEdgeId( edge );
+  }
+
+  template < class TMesh >
+  MarkerBuilder< TMesh >::MarkerBuilder( const TMesh& mesh )
+    : marker_( Marker< TMesh >(mesh) )
+  {}
+
+  template < class TMesh >
+  MarkerBuilder< TMesh >::MarkerBuilder( const Marker< TMesh >& marker )
+    : marker_( marker )
+  {}
+
+  template < class TMesh >
+  void
+  MarkerBuilder< TMesh >::mark( const typename TMesh::Face& face,
+      const typename TMesh::HalfEdge& edge )
+  {
+    marker_.mark( face, edge );
+  }
+
+  template < class TMesh >
+  Marker< TMesh >
+  MarkerBuilder< TMesh >::deliver()
+  {
+    return marker_;
+  }
+}
+
index 136cfad7480a358d5b6f8456613e082257155d28..4baa4386ff8e9a7d09b4c106d2c6253f038de9d4 100644 (file)
@@ -5,54 +5,66 @@
 
 #include "Mesh.hpp"
 
-#include "Face.hpp"
-#include "HalfEdge.hpp"
-#include "Vertex.hpp"
-
 #include <iostream>
 #include <string>
 #include <set>
 #include <list>
 #include <vector>
 
+#include "exception/NoMatchingFaceType_tmpl.hpp"
+
 namespace boundary_mesh {
 
-template < class Ttraits >
-struct Mesh< Ttraits >::data
+template < template < typename > class TProp, template < typename > class TAlg >
+struct Mesh< TProp, TAlg >::data
 {
   data()
-    : number_of_faces(0), number_of_vertices(0), number_of_halfedges(0),
+    : numberOfFaces(0), numberOfVertices(0), numberOfHalfEdges(0),
       reference_counter(1)
     {}
+  ~data()
+  {
+    if ( boost::is_pointer< typename Mesh::IntFace >() )
+    {
+      for (typename std::vector< typename Mesh::IntFace >::iterator
+            it = face.begin(); it != face.end(); ++it)
+      {
+        delete *it;
+      }
+    }
+  }
 
-  typename std::vector< typename traits::Vertex > vertex;
-  typename std::vector< typename traits::Face > face;
-  typename std::vector< typename traits::HalfEdge > edge;
+  typename std::vector< typename Mesh::Vertex > vertex;
+  typename std::vector< typename Mesh::IntFace > face;
+  typename std::vector< typename Mesh::HalfEdge > edge;
 
-  unsigned int number_of_faces;
-  unsigned int number_of_vertices;
-  unsigned int number_of_halfedges;
+  unsigned int numberOfFaces;
+  unsigned int numberOfVertices;
+  unsigned int numberOfHalfEdges;
 
   unsigned int reference_counter;
 };
 
-template < class Ttraits >
-Mesh< Ttraits >::Mesh(const Mesh< Ttraits >& copy)
+template < template < typename > class TProp, template < typename > class TAlg >
+bool Mesh< TProp, TAlg >::initialized_ = false;
+
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >::Mesh(const Mesh< TProp, TAlg >& copy)
   : d(copy.d)
 {
   ++(d->reference_counter);
 }
 
-template < class Ttraits >
-Mesh< Ttraits >::~Mesh()
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >::~Mesh()
 {
   if (--(d->reference_counter) <= 0)
     delete d;
 }
 
-template < class Ttraits >
-Mesh< Ttraits >&
-Mesh< Ttraits >::operator=(const Mesh& rhs)
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >&
+Mesh< TProp, TAlg >::operator=(const Mesh& rhs)
 {
   if (d == rhs.d)
     return *this;
@@ -65,142 +77,233 @@ Mesh< Ttraits >::operator=(const Mesh& rhs)
   return *this;
 }
 
-template < class Ttraits >
-typename Mesh< Ttraits >::ConstFaceIterator
-Mesh< Ttraits >::begin_f() const
+template < template < typename > class TProp, template < typename > class TAlg >
+typename Mesh< TProp, TAlg >::ConstFaceIterator
+Mesh< TProp, TAlg >::begin_f() const
 {
-  return d->face.begin();
+  return ConstFaceIterator( d->face.begin() );
 }
 
-template < class Ttraits >
-typename Mesh< Ttraits >::ConstFaceIterator
-Mesh< Ttraits >::end_f() const
+template < template < typename > class TProp, template < typename > class TAlg >
+typename Mesh< TProp, TAlg >::ConstFaceIterator
+Mesh< TProp, TAlg >::end_f() const
 {
-  return d->face.end();
+  return ConstFaceIterator( d->face.end() );
 }
 
-template < class Ttraits >
-typename Mesh< Ttraits >::ConstVertexIterator
-Mesh< Ttraits >::begin_v() const
+template < template < typename > class TProp, template < typename > class TAlg >
+typename Mesh< TProp, TAlg >::ConstVertexIterator
+Mesh< TProp, TAlg >::begin_v() const
 {
   return d->vertex.begin();
 }
 
-template < class Ttraits >
-typename Mesh< Ttraits >::ConstVertexIterator
-Mesh< Ttraits >::end_v() const
+template < template < typename > class TProp, template < typename > class TAlg >
+typename Mesh< TProp, TAlg >::ConstVertexIterator
+Mesh< TProp, TAlg >::end_v() const
 {
   return d->vertex.end();
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getNumberOfFaces() const
+Mesh< TProp, TAlg >::getNumberOfFaces() const
 {
-  return d->number_of_faces;
+  return d->numberOfFaces;
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getNumberOfEdges() const
+Mesh< TProp, TAlg >::getNumberOfEdges() const
 {
-  return d->number_of_halfedges;
+  return d->numberOfHalfEdges;
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getNumberOfVertices() const
+Mesh< TProp, TAlg >::getNumberOfVertices() const
 {
-  return d->number_of_vertices;
+  return d->numberOfVertices;
 }
 
-template < class Ttraits >
-Mesh< Ttraits >::Mesh( const Mesh< Ttraits >::Size& sizeInfo )
-  : d(new Mesh< Ttraits >::data())
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >::Mesh( const Size& sizeInfo )
+  : d(new Mesh< TProp, TAlg >::data())
 {
-  reserve( sizeInfo );
+  initialize();
+  d->vertex.reserve( sizeInfo.vertices );
+  d->face.reserve( sizeInfo.faces );
+  d->edge.reserve( sizeInfo.edges );
 }
 
-template < class Ttraits >
-Mesh< Ttraits >::Mesh()
-  : d(new Mesh< Ttraits >::data())
-{}
-
-template < class Ttraits >
-void
-Mesh< Ttraits >::reserve(const Mesh< Ttraits >::Size& sizeInfo)
-{
-  d->vertex.reserve(sizeInfo.vertices);
-  d->face.reserve(sizeInfo.faces);
-  d->edge.reserve(sizeInfo.edges);
-}
-
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::addVertex(const typename Ttraits::UnlinkedVertex& v)
+Mesh< TProp, TAlg >::addVertex(const typename Mesh::UVertex& v)
 {
-  assert(d->vertex.capacity() > d->number_of_vertices);
+  assert(d->vertex.capacity() > d->numberOfVertices);
   d->vertex.push_back(Vertex(v));
-  return d->number_of_vertices++;
+  return d->numberOfVertices++;
 }
 
-template < class Ttraits >
-const typename Ttraits::Face&
-Mesh< Ttraits >::addFace(unsigned int number_of_vertices,
-  unsigned int vertex_id[])
+template < template < typename > class TProp, template < typename > class TAlg >
+const typename Mesh< TProp, TAlg >::Face&
+Mesh< TProp, TAlg >::addFace( std::vector< geoid_t > vertexIds )
 {
-  unsigned int NUMOF_VERTICES = number_of_vertices;
-  assert(NUMOF_VERTICES > 2);
-  unsigned int max_length_id = 0;
-  double max_length = 0.;
-  d->face.push_back(typename traits::Face());
-  typename Ttraits::Face& f = d->face[d->number_of_faces];
-
-  for (unsigned int i = 0; i < NUMOF_VERTICES; ++i)
+  unsigned int numberOfVertices = vertexIds.size();
+  assert( numberOfVertices >= 3 );
+  std::vector< const typename Mesh::Vertex* > vertices;
+  vertices.reserve( vertexIds.size() );
+
+  // Create all half-edges and store them within the d->edge vector.
+  // Also determine the longest half-edge and assign a half-edge to each vertex.
+  Mesh::HalfEdge* longestHalfEdge = 0;
+  double longestHalfEdgeLength = 0.;
+
+  for (unsigned int i = 0; i < numberOfVertices; ++i)
   {
-    typename Ttraits::UnlinkedVertex diff =
-      (d->vertex[vertex_id[(i+1) % NUMOF_VERTICES]] - d->vertex[vertex_id[i]]);
-    double length = diff.norm();
-    if (length > max_length)
+    typename Mesh::Vertex& startVertex = d->vertex[ vertexIds[ i ] ];
+    typename Mesh::Vertex& endVertex =
+        d->vertex[ vertexIds[ (i+1) % numberOfVertices ] ];
+    vertices.push_back( &startVertex );
+
+    d->edge.push_back( Mesh::HalfEdge( startVertex, endVertex ) );
+    typename Mesh::HalfEdge& currentHalfEdge = d->edge.back();
+    double currentHalfEdgeLength =
+      (currentHalfEdge.getEndVertex() -
+        currentHalfEdge.getStartVertex()).norm();
+
+    if ( currentHalfEdgeLength >= longestHalfEdgeLength )
     {
-      max_length = length;
-      max_length_id = i;
+      longestHalfEdgeLength = currentHalfEdgeLength;
+      longestHalfEdge       = &currentHalfEdge;
     }
-    assert(d->edge.capacity() > d->number_of_halfedges+i);
-    d->edge.push_back(HalfEdge(d->vertex[vertex_id[i]],
-                              d->vertex[vertex_id[(i+1) % NUMOF_VERTICES]], f));
-    d->vertex[vertex_id[i]].setHalfEdge(d->edge[d->number_of_halfedges]);
+    
+    startVertex.setHalfEdge( currentHalfEdge );
   }
 
-  for (unsigned int i = 0; i < NUMOF_VERTICES; ++i)
+  assert(longestHalfEdge != 0);
+
+  // Link the half-edges into a double-linked list.
+  for (unsigned int i = 0; i < numberOfVertices; ++i)
   {
-    d->edge[d->number_of_halfedges+i].setPreviousEdge(
-        &(d->edge[d->number_of_halfedges+((i-1) % NUMOF_VERTICES)]));
-    d->edge[d->number_of_halfedges+i].setNextEdge(
-        &(d->edge[d->number_of_halfedges+((i+1) % NUMOF_VERTICES)]));
+    d->edge[ d->numberOfHalfEdges + i ].setPreviousEdge(
+        &( d->edge[ d->numberOfHalfEdges + ((i-1) % numberOfVertices) ] ));
+    d->edge[ d->numberOfHalfEdges + i ].setNextEdge(
+        &( d->edge[ d->numberOfHalfEdges + ((i+1) % numberOfVertices) ] ));
   }
 
-  f.setHalfEdge(d->edge[d->number_of_halfedges + max_length_id]);
-  assert(d->face.capacity() > d->number_of_faces);
+  d->numberOfHalfEdges += numberOfVertices;
+
+  // Create the face by using the mesh's face-factory which does the
+  // type checking magic.
+  // The reference edge of the face is set to the longest half-edge:
+  typename Mesh< TProp, TAlg >::Face& currentFace =
+    Mesh< TProp, TAlg >::factorizeFace< Mesh< TProp, TAlg >::FaceTypes >(
+      vertices, longestHalfEdge );
 
-  d->number_of_faces += 1;
-  d->number_of_halfedges += NUMOF_VERTICES;
+  // Modify the counters for the number of faces and half-edges:
+  return currentFace;
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TypeList >
+typename boost::enable_if_c<
+  generic::typelist::Length< TypeList >::value == 0,
+  typename Mesh< TProp, TAlg >::Face& >::type
+Mesh< TProp, TAlg >::factorizeFace(
+    const typename std::vector< const typename Mesh::Vertex* >& vertices,
+    const typename Mesh::HalfEdge* longestHalfEdge)
+{
+  throw exception::NoMatchingFaceType< Mesh >(
+    "Could not find a matching face type.", vertices);
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TypeList >
+typename boost::enable_if_c<
+  generic::typelist::Length< TypeList >::value >= 1,
+  typename Mesh< TProp, TAlg >::Face& >::type
+Mesh< TProp, TAlg >::factorizeFace(
+    const typename std::vector< const typename Mesh::Vertex* >& vertices,
+    const typename Mesh::HalfEdge* longestHalfEdge)
+{
+  typedef typename TypeList::Head Head;
+  typedef typename TypeList::Tail Tail;
 
+  if ( Head::is( vertices ) == true )
+  {
+    return factorizeFace_< Mesh< TProp, TAlg >, Head >(longestHalfEdge);
+  }
+  else
+  {
+    return factorizeFace< Tail >(vertices, longestHalfEdge);
+  }
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TMesh, class TSpecificFace >
+typename boost::enable_if<
+    boost::is_pointer< typename TMesh::IntFace >,
+    typename TMesh::Face& >::type
+Mesh< TProp, TAlg >::factorizeFace_(
+  const typename TMesh::HalfEdge* longestHalfEdge)
+{
+  d->face.push_back(new TSpecificFace( *longestHalfEdge, d->numberOfFaces ));
+  typename TMesh::Face& f = getFaceRefById< TMesh >( d->numberOfFaces );
+  ++(d->numberOfFaces);
   return f;
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TMesh, class TSpecificFace >
+typename boost::disable_if<
+    boost::is_pointer< typename TMesh::IntFace >,
+    typename TMesh::Face& >::type
+Mesh< TProp, TAlg >::factorizeFace_(
+  const typename TMesh::HalfEdge* longestHalfEdge)
+{
+  d->face.push_back(TSpecificFace( *longestHalfEdge ));
+  typename TMesh::Face& f = getFaceRefById< TMesh >( d->numberOfFaces );
+  ++(d->numberOfFaces);
+  return f;
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TMesh >
+typename boost::enable_if<
+  boost::is_pointer< typename TMesh::IntFace >,
+  typename TMesh::Face& >::type
+Mesh< TProp, TAlg >::getFaceRefById( geoid_t faceId )
+  const
+{
+  assert( faceId < d->face.size() );
+  return *(d->face[faceId]);
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+template < class TMesh >
+typename boost::disable_if<
+  boost::is_pointer< typename TMesh::IntFace >,
+  typename TMesh::Face& >::type
+Mesh< TProp, TAlg >::getFaceRefById( geoid_t faceId )
+  const
+{
+  assert( faceId < d->face.size() );
+  return d->face[faceId];
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
 void
-Mesh< Ttraits >::build_meta_data()
+Mesh< TProp, TAlg >::buildMetaData( void )
 {
-  typedef typename std::set< typename Ttraits::HalfEdge*,
-      bool(*)(const typename Ttraits::HalfEdge*,
-              const typename Ttraits::HalfEdge*) >
+  typedef typename std::set< typename Mesh::HalfEdge*,
+      bool(*)(const typename Mesh::HalfEdge*,
+              const typename Mesh::HalfEdge*) >
     custom_set;
 
-  custom_set minmax_sorted(&halfedge_p_comparator_lt_minmax_vertex);
+  custom_set minmax_sorted(&Mesh::HalfEdge::compLtMinmaxVertex);
 
-  for (typename std::vector< typename Ttraits::HalfEdge >::iterator
+  for (typename std::vector< typename Mesh::HalfEdge >::iterator
           edge_it = d->edge.begin();
           edge_it != d->edge.end(); ++edge_it)
   {
@@ -210,11 +313,11 @@ Mesh< Ttraits >::build_meta_data()
   typename custom_set::iterator edge_it = minmax_sorted.begin();
   while (edge_it != minmax_sorted.end())
   {
-    typename Ttraits::HalfEdge* current = *edge_it;
+    typename Mesh::HalfEdge* current = *edge_it;
     ++edge_it;
     if (edge_it == minmax_sorted.end())
       break;
-    typename Ttraits::HalfEdge* next = *edge_it;
+    typename Mesh::HalfEdge* next = *edge_it;
 
     if (current->oppositeEdgeCheck(*next))
     {
@@ -226,7 +329,7 @@ Mesh< Ttraits >::build_meta_data()
 
   minmax_sorted.clear();
 
-  if (traits::maximumNumberOfHangingNodes <= 0)
+  if (Mesh::Prop::maximumNumberOfHangingNodes <= 0)
     return;
 
   // Now we have built all neighbour relationships except for the ones that
@@ -242,19 +345,19 @@ Mesh< Ttraits >::build_meta_data()
   //   4.) Clean up.
 
   // Build incidence list:
-  std::vector< std::list< typename Ttraits::HalfEdge* > > incidenceList;
+  std::vector< std::list< typename Mesh::HalfEdge* > > incidenceList;
   incidenceList.resize( getNumberOfVertices() );
 
-  for (std::vector<HalfEdge>::iterator edge_it = d->edge.begin();
-          edge_it != d->edge.end(); ++edge_it)
+  for (typename std::vector< typename Mesh::HalfEdge >::iterator
+          edgeIt = d->edge.begin(); edgeIt != d->edge.end(); ++edgeIt)
   {
-    incidenceList[ getVertexId(edge_it->getStartVertex()) ]
-      .push_back(&(*edge_it));
+    incidenceList[ getVertexId(edgeIt->getStartVertex()) ]
+      .push_back(&(*edgeIt));
   }
 
   // Link:
-  for (std::vector<HalfEdge>::iterator edge_it = d->edge.begin();
-          edge_it != d->edge.end(); ++edge_it)
+  for (typename std::vector< typename Mesh::HalfEdge >::iterator
+          edge_it = d->edge.begin(); edge_it != d->edge.end(); ++edge_it)
   {
     if (edge_it->getOppositeEdge() != 0)
       continue;
@@ -264,18 +367,19 @@ Mesh< Ttraits >::build_meta_data()
     //   2.) It starts or ends at a hanging node.
     // In the second case, the difference vectors of both edges are linearly
     // dependent.
-    typename Ttraits::UnlinkedVertex edge_vec =
+    typename Mesh::UVertex edge_vec =
       edge_it->getEndVertex() - edge_it->getStartVertex();
 
     std::list< HalfEdge* > vert_inc_list
       = incidenceList[ getVertexId(edge_it->getEndVertex()) ];
-    for (std::list< HalfEdge* >::iterator inc_edge = vert_inc_list.begin();
-            inc_edge != vert_inc_list.end(); ++inc_edge)
+    for ( typename std::list< typename Mesh::HalfEdge* >::iterator
+          inc_edge = vert_inc_list.begin(); inc_edge != vert_inc_list.end();
+          ++inc_edge)
     {
       if ((*inc_edge)->getOppositeEdge() != 0)
         continue;
 
-      typename Ttraits::UnlinkedVertex inc_edge_vec
+      typename Mesh::UVertex inc_edge_vec
         = (*inc_edge)->getEndVertex() - (*inc_edge)->getStartVertex();
 
       if (edge_vec.isProlongation(inc_edge_vec))
@@ -287,38 +391,38 @@ Mesh< Ttraits >::build_meta_data()
   }
 
   // Third phase:
-  for (typename std::vector<typename Ttraits::HalfEdge>::iterator
+  for (typename std::vector<typename Mesh::HalfEdge>::iterator
           edgeIt = d->edge.begin(); edgeIt != d->edge.end(); ++edgeIt)
   {
     if (edgeIt->getOppositeEdge() != 0 || edgeIt->getHangingEdge() != 0)
       continue;
 
-    const typename Ttraits::Vertex& startVertex     = edgeIt->getStartVertex();
-    const typename Ttraits::Vertex& endVertex       = edgeIt->getEndVertex();
-    const typename Ttraits::UnlinkedVertex edgeDiff = endVertex - startVertex;
+    const typename Mesh::Vertex& startVertex     = edgeIt->getStartVertex();
+    const typename Mesh::Vertex& endVertex       = edgeIt->getEndVertex();
+    const typename Mesh::UVertex edgeDiff = endVertex - startVertex;
 
     bool foundOppositeEdge = false;
 
     // Find appropiate candidates for opposite edges:
-    for (typename std::list< typename Ttraits::HalfEdge* >::iterator opEdgeIt =
+    for (typename std::list< typename Mesh::HalfEdge* >::iterator opEdgeIt =
           incidenceList[ getVertexId( endVertex ) ].begin();
           opEdgeIt != incidenceList[ getVertexId( endVertex ) ].end();
           ++opEdgeIt)
     {
-      const typename Ttraits::Vertex& opStartVertex =
+      const typename Mesh::Vertex& opStartVertex =
         (*opEdgeIt)->getStartVertex();
-      const typename Ttraits::UnlinkedVertex opEdgeDiff = 
+      const typename Mesh::UVertex opEdgeDiff = 
         opStartVertex - (*opEdgeIt)->getEndVertex();
 
       if ( opEdgeDiff.isProlongation( edgeDiff ) == false )
         continue;
 
       unsigned int hangingEdgeIterations = 0;
-      typename Ttraits::HalfEdge* first = *opEdgeIt;
-      typename Ttraits::HalfEdge* next  = first;
+      typename Mesh::HalfEdge* first = *opEdgeIt;
+      typename Mesh::HalfEdge* next  = first;
 
       while (next->getHangingEdge() != 0 &&
-              ++hangingEdgeIterations <= traits::maximumNumberOfHangingNodes)
+            ++hangingEdgeIterations <= Mesh::Prop::maximumNumberOfHangingNodes)
       {
         next = next->getHangingEdge();
         const Vertex& opEndVertex = next->getEndVertex();
@@ -341,33 +445,97 @@ Mesh< Ttraits >::build_meta_data()
   // Cleanup:
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getVertexId(const typename Ttraits::Vertex& v) const
+Mesh< TProp, TAlg >::getVertexId(const typename Mesh::Vertex& v) const
 {
+  assert( d->edge.size() > 0 );
   long offset = static_cast<long>(&v - &(d->vertex.front()));
-  assert(offset >= 0 && offset < d->number_of_vertices);
+  assert(offset >= 0 && offset < d->numberOfVertices);
   return offset;
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getEdgeId(const typename Ttraits::HalfEdge& e) const
+Mesh< TProp, TAlg >::getEdgeId(const typename Mesh::HalfEdge& e) const
 {
+  assert( d->edge.size() > 0 );
   long offset = static_cast<long>(&e - &(d->edge.front()));
-  assert(offset >= 0 && offset < d->number_of_halfedges);
+  assert(offset >= 0 && offset < d->numberOfHalfEdges);
   return offset;
 }
 
-template < class Ttraits >
+template < template < typename > class TProp, template < typename > class TAlg >
 unsigned int
-Mesh< Ttraits >::getFaceId(const typename Ttraits::Face& f) const
+Mesh< TProp, TAlg >::getFaceId(const typename Mesh::Face& f) const
 {
-  assert( d->face.size() > 0 );
-  long offset = static_cast<long>(&f - &(d->face.front()));
-  assert(offset >= 0 && offset < d->number_of_halfedges);
-  return offset;
+  return f.getId();
 }
+
+
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >::ConstFaceIterator::ConstFaceIterator(
+    typename std::vector< Mesh::IntFace >::const_iterator iterator)
+  : vectorIterator_(iterator)
+{}
+
+
+template < template < typename > class TProp, template < typename > class TAlg >
+Mesh< TProp, TAlg >::ConstFaceIterator::ConstFaceIterator(
+    const ConstFaceIterator& copy)
+  : vectorIterator_( copy.vectorIterator_ )
+{}
+
+
+template < template < typename > class TProp, template < typename > class TAlg >
+bool
+Mesh< TProp, TAlg >::ConstFaceIterator::operator==(
+    const ConstFaceIterator& rhs) const
+{
+  return ( vectorIterator_ == rhs.vectorIterator_ );
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+bool
+Mesh< TProp, TAlg >::ConstFaceIterator::operator!=(
+    const ConstFaceIterator& rhs) const
+{
+  return ( vectorIterator_ != rhs.vectorIterator_ );
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+typename Mesh< TProp, TAlg >::ConstFaceIterator&
+Mesh< TProp, TAlg >::ConstFaceIterator::operator++()
+{
+  ++vectorIterator_;
+  return *this;
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+const typename Mesh< TProp, TAlg >::Face&
+Mesh< TProp, TAlg >::ConstFaceIterator::operator*() const
+{
+  // XXX: The case that IntFace is not a pointer is missing:
+  return **vectorIterator_;
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+const typename Mesh< TProp, TAlg >::Face*
+Mesh< TProp, TAlg >::ConstFaceIterator::operator->() const
+{
+  // XXX: The case that IntFace is not a pointer is missing:
+  return *vectorIterator_;
+}
+
+template < template < typename > class TProp, template < typename > class TAlg >
+void Mesh< TProp, TAlg >::initialize()
+{
+  if ( initialized_ == false )
+  {
+    initialized_ = true;
+  }
+}
+
 }
 
 #endif
index 4bfab9d5cf05016a0fe903447f69fd38f7d8a15f..dad7d6dc0f3be4c9761ab2ff72f80f50f14af3fc 100644 (file)
  * The constants help the implementation of the algorithms to use optimized
  * data structures.
  *
- * A good example for a traits class is the DefaultMeshTraits class within
- * this file.
- *
- * The Traits template parameter defaults to the DefaultMeshTraits class.
+ * Using XXX
  */
 
 #include <iterator>
 #include <string>
 #include <vector>
 
-#include "Face.hpp"
-#include "Vertex.hpp"
-#include "HalfEdge.hpp"
+#include "types.hpp"
+#include "MeshBuilder.hpp"
+#include "../generic/BaseTypes.hpp"
+#include "../generic/TypeList.hpp"
+
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <cassert>
 
 namespace boundary_mesh
 {
-  /**
-   * @class DefaultMeshTraits
-   * @brief Basic settings for the mesh.
-   *
-   * This is an example for a Traits class that is passed to the Mesh class
-   * template to create a concrete Mesh class. It defines a few types, more
-   * precisly a Face, a HalfEdge, a Vertex and an UnlinkedVertex type. Each
-   * of these types must provide a number of basic methods to make use of the
-   * mesh algorithms that are contained within the layer namespace.
-   */
-  class DefaultMeshTraits
-  {
-    public:
-      typedef boundary_mesh::Face             Face;
-      typedef boundary_mesh::HalfEdge         HalfEdge;
-      typedef boundary_mesh::Vertex           Vertex;
-      typedef boundary_mesh::UnlinkedVertex   UnlinkedVertex;
-
-      static const unsigned int maximumNumberOfHangingNodes = 1;
-      static const unsigned int maximumNumberOfFaceVertices = 4;
-  };
-
-  template < class T >
+  template < template < typename > class TProp,
+              template < typename > class TAlg >
   class Mesh;
 
   /**
@@ -102,16 +83,57 @@ namespace boundary_mesh
    * modified after construction and that it can not retain any information
    * during method calls.
    */
-  template < class Ttraits = boundary_mesh::DefaultMeshTraits >
+  template < template < typename > class TProp,
+              template < typename > class TAlg>
   class Mesh
   {
+    template <typename> friend class MeshBuilder;
+
     public:
-      typedef Ttraits traits;
-      typedef typename std::vector< typename traits::Face >::const_iterator
-        ConstFaceIterator;
-      typedef typename std::vector< typename traits::Vertex >::const_iterator
+      typedef TProp< Mesh > Prop;
+      typedef TAlg< Mesh > Alg;
+      typedef MeshBuilder< Mesh > Builder;
+
+      typedef typename Prop::UVertex    UVertex;
+      typedef typename Prop::Vertex     Vertex;
+      typedef typename Prop::HalfEdge   HalfEdge;
+      typedef typename Prop::IntFace    IntFace;
+      typedef typename Prop::Face       Face;
+
+      typedef typename Prop::FaceTypes  FaceTypes;
+
+      struct Size
+      {
+        geoid_t vertices;
+        geoid_t faces;
+        geoid_t edges;
+      };
+
+      typedef typename std::vector< Vertex >::const_iterator
         ConstVertexIterator;
 
+      /* The mesh's face elements can either be pointers to a compliant class
+       * or complete copies of instances. To everyone outside this class, this
+       * difference should not matter. This class cares about that matter.
+       */
+      class ConstFaceIterator
+      {
+        public:
+          ConstFaceIterator(
+              typename std::vector< IntFace >::const_iterator iterator );
+          ConstFaceIterator( const ConstFaceIterator& copy );
+
+          bool operator==( const ConstFaceIterator& rhs ) const;
+          bool operator!=( const ConstFaceIterator& rhs ) const;
+          ConstFaceIterator& operator++();
+          const typename Mesh::Face & operator*() const;
+          const typename Mesh::Face * operator->() const;
+
+        private:
+          typename std::vector< typename Mesh::IntFace >::const_iterator
+            vectorIterator_;
+      };
+
       /**
        * @fn Mesh(const Mesh& copy)
        *
@@ -183,28 +205,28 @@ namespace boundary_mesh
       ConstVertexIterator end_v() const;
 
     /**
-     * @fn unsigned int getNumberOfFaces() const
+     * @fn geoid_t getNumberOfFaces() const
      *
      * Returns the number of faces contained in this mesh.
      */
-      unsigned int getNumberOfFaces() const;
+      geoid_t getNumberOfFaces() const;
 
     /**
-     * @fn unsigned int getNumberOfEdges() const
+     * @fn geoid_t getNumberOfEdges() const
      *
      * Returns the number of half-edges contained in this mesh.
      */
-      unsigned int getNumberOfEdges() const;
+      geoid_t getNumberOfEdges() const;
 
     /**
-     * @fn unsigned int getNumberOfVertices() const
+     * @fn geoid_t getNumberOfVertices() const
      *
      * Returns the number of vertices contained in this mesh.
      */
-      unsigned int getNumberOfVertices() const;
+      geoid_t getNumberOfVertices() const;
 
     /**
-     * @fn unsigned int getVertexId(const typename traits::Vertex& v) const
+     * @fn geoid_t getVertexId(const typename traits::Vertex& v) const
      *
      * Returns an unique id which is between 0 and getNumberOfVertices() - 1.
      * The ids are assigned in the same order as the vertices are added to
@@ -213,20 +235,20 @@ namespace boundary_mesh
      * This method throws an assertion if the vertex v does not belong to the
      * mesh.
      */
-      unsigned int getVertexId(const typename traits::Vertex& v) const;
+      geoid_t getVertexId(const typename Mesh::Vertex& v) const;
 
     /**
-     * @fn unsigned int getEdgeId(const typename traits::HalfEdge& e) const
+     * @fn geoid_t getEdgeId(const typename traits::HalfEdge& e) const
      *
      * Returns an unique id which is between 0 and getNumberOfEdges() - 1.
      *
      * This method throws an assertion if the half-edge e does not belong to the
      * mesh.
      */
-      unsigned int getEdgeId(const typename traits::HalfEdge& e) const;
+      geoid_t getEdgeId(const typename Mesh::HalfEdge& e) const;
 
     /**
-     * @fn unsigned int getFaceId(const typename traits::Face& f) const
+     * @fn geoid_t getFaceId(const typename traits::Face& f) const
      *
      * Returns an unique id which is between 0 and getNumberOfFaces() - 1.
      * The ids are assigned in the same order as the faces are added to
@@ -235,43 +257,78 @@ namespace boundary_mesh
      * This method throws an assertion if the face f does not belong to the
      * mesh.
      */
-      unsigned int getFaceId(const typename traits::Face& f) const;
-
-    protected:
-      typedef Mesh< Ttraits > Base;
+      geoid_t getFaceId(const typename Mesh::Face& f) const;
 
-      struct Size
-      {
-        unsigned int vertices;
-        unsigned int faces;
-        unsigned int edges;
-      };
+    /**
+     * @fn Size getSize() const
+     * @brief Returns a struct that contains the number of vertices, edges
+     *        and faces of the mesh.
+     */
+      Size getSize() const;
 
-      // This is used by MeshLoader classes, which impelement parsers for
-      // individual file formats.
+    private:
+      // The following part of the interface is only used by the
+      // MeshBuilder class. The MeshBuilder class is the only way
+      // to construct Mesh instances.
       Mesh();
       Mesh( const Size& sizeInfo );
-      void reserve(const Size& sizeInfo);
-      unsigned int addVertex(const typename traits::UnlinkedVertex& v);
-      const typename Mesh::traits::Face& addFace(
-        unsigned int number_of_vertices, unsigned int vertex_id[]);
-      const typename Mesh::traits::Face& addFace(
-        unsigned int a, unsigned int b, unsigned int c)
-      {
-        unsigned int t[] = {a, b, c};
-        return addFace(3, t);
-      }
-      const typename Mesh::traits::Face& addFace(
-        unsigned int a, unsigned int b, unsigned int c, unsigned int d)
-      {
-        unsigned int t[] = {a, b, c, d};
-        return addFace(4, t);
-      }
-      void build_meta_data();
+      geoid_t addVertex(const typename Mesh::UVertex& v);
+      const typename Mesh::Face& addFace(
+        std::vector< geoid_t > vertexIds );
+      void buildMetaData( void );
 
-    private:
+      // The following methods' main purpose is to abstract the actual
+      // representation of the face classes within this class, i.e. if we
+      // maintain pointers to the objects or store them in a long block
+      // of memory.
+      template < class TypeList >
+      typename boost::enable_if_c<
+        generic::typelist::Length< TypeList >::value == 0,
+        typename Mesh< TProp, TAlg >::Face& >::type
+      factorizeFace(
+        const typename std::vector< const typename Mesh::Vertex* >& vertices,
+        const typename Mesh::HalfEdge* longestHalfEdge);
+
+      template < class TypeList >
+      typename boost::enable_if_c<
+        generic::typelist::Length< TypeList >::value >= 1,
+        typename Mesh< TProp, TAlg >::Face& >::type
+      factorizeFace(
+        const typename std::vector< const typename Mesh::Vertex* >& vertices,
+        const typename Mesh::HalfEdge* longestHalfEdge);
+
+      template < class TMesh, class TSpecificFace >
+      typename boost::enable_if<
+        boost::is_pointer< typename TMesh::IntFace >,
+        typename TMesh::Face& >::type
+      factorizeFace_(
+        const typename TMesh::HalfEdge* longestHalfEdge);
+
+      template < class TMesh, class TSpecificFace >
+      typename boost::disable_if<
+        boost::is_pointer< typename TMesh::IntFace >,
+        typename TMesh::Face& >::type
+      factorizeFace_(
+        const typename TMesh::HalfEdge* longestHalfEdge);
+      template < class TMesh >
+      typename boost::enable_if<
+        boost::is_pointer< typename TMesh::IntFace >,
+        typename TMesh::Face& >::type
+      getFaceRefById( geoid_t faceId ) const;
+
+      template < class TMesh >
+      typename boost::disable_if<
+        boost::is_pointer< typename TMesh::IntFace >,
+        typename TMesh::Face& >::type
+      getFaceRefById( geoid_t faceId ) const;
+
+      // For various reasons this class uses the Pimpl idiom.
       struct data;
       data* d;
+
+      static void initialize();
+      static bool initialized_;
   };
 }
 
diff --git a/src/bem3d/src/boundary_mesh/MeshBuilder.hpp b/src/bem3d/src/boundary_mesh/MeshBuilder.hpp
new file mode 100644 (file)
index 0000000..5af08ce
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_MESH_BUILDER_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_MESH_BUILDER_HPP_GUARD_
+
+#include "types.hpp"
+#include "Mesh.hpp"
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  class MeshBuilder
+  {
+    public:
+      MeshBuilder( const typename TMesh::Size& size );
+      geoid_t addVertex( const typename TMesh::UVertex& v );
+      const typename TMesh::Face& addFace( std::vector< geoid_t > vertexIds );
+      TMesh deliver();
+
+    private:
+      TMesh mesh_;
+  };
+}
+
+#include "MeshBuilder_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/MeshBuilder_tmpl.cpp b/src/bem3d/src/boundary_mesh/MeshBuilder_tmpl.cpp
new file mode 100644 (file)
index 0000000..f12cbe1
--- /dev/null
@@ -0,0 +1,41 @@
+#ifdef HILBERT3D_BOUNDARY_MESH_MESHBUILDER_CPP_GUARD_
+#error Please never include or compile this file directly, but include the \
+       corresponding header files instead.
+#else
+#define HILBERT3D_BOUNDARY_MESH_MESHBUILDER_CPP_GUARD_
+#include "MeshBuilder.hpp"
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  MeshBuilder< TMesh >::MeshBuilder( const typename TMesh::Size& size )
+    : mesh_( size )
+  {
+    TMesh::initialize();
+  }
+
+  template < class TMesh >
+  geoid_t
+  MeshBuilder< TMesh >::addVertex( const typename TMesh::UVertex& v )
+  {
+    return mesh_.addVertex( v );
+  }
+
+  template < class TMesh >
+  const typename TMesh::Face&
+  MeshBuilder< TMesh >::addFace( std::vector< geoid_t > vertexIds )
+  {
+    return mesh_.addFace( vertexIds );
+  }
+
+  template < class TMesh >
+  TMesh
+  MeshBuilder< TMesh >::deliver()
+  {
+    mesh_.buildMetaData();
+    return mesh_;
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/Vertex.cpp b/src/bem3d/src/boundary_mesh/Vertex.cpp
deleted file mode 100644 (file)
index 414e0bc..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#include "Vertex.hpp"
-
-#include <cassert>
-
-namespace boundary_mesh
-{
-  Vertex::Vertex(const double coord[3])
-    : UnlinkedVertex(coord), halfedge_(0)
-  {}
-  
-  Vertex::Vertex(const UnlinkedVertex& down_copy)
-    : UnlinkedVertex(down_copy), halfedge_(0)
-  {}
-  
-  void
-  Vertex::setHalfEdge(const HalfEdge& halfedge)
-  {
-    halfedge_ = &halfedge;
-  }
-  
-#if 0
-  const Vertex::ConstVertexIterator &
-  Vertex::s_vertex_end_iterator = Vertex::ConstVertexIterator();
-  
-  const Vertex::ConstFaceIterator &
-  Vertex::s_face_end_iterator = Vertex::ConstFaceIterator();
-  
-  bool
-  Vertex::IteratorData_Base__::operator==(
-    const Vertex::IteratorData_Base__ & rhs) const
-  {
-    return m_startingEdge == rhs.m_startingEdge &&
-            (
-              (m_startingEdge == NULL)
-              ||
-              (m_currentEdge == rhs.m_currentEdge
-                && m_options == rhs.m_options
-                && m_inverted == rhs.m_inverted)
-            );
-  }
-  
-  bool
-  Vertex::IteratorData_Base__::operator!=(
-    const Vertex::IteratorData_Base__& rhs) const
-  {
-    return ! (*this == rhs);
-  }
-  
-  Vertex::IteratorData_Base__ &
-  Vertex::IteratorData_Base__::operator++()
-  {
-  // XXX: Implement this function, support options, ...
-  #warning Vertex::IteratorData_Base__::operator++ is not implemented yet,\
-            you may experience troubles using it, especially if you are trying\
-            to use it on boundary vertices!
-    if (m_inverted == false)
-    {
-      if (m_fast_forward_hanging_nodes)
-      {
-        m_currentEdge = m_currentEdge->getHangingEdge();
-        assert(m_currentEdge->getHangingEdge() == 0);
-        m_currentEdge = m_currentEdge->getNextEdge();
-        m_fast_forward_hanging_nodes = false;
-      }
-      else
-      {
-        if (m_currentEdge->getOppositeEdge() == 0)
-        {
-#       if 0
-          if (m_options.no_boundary_inversion())
-          {
-            m_startingEdge = m_currentEdge = 0;
-            return *this;
-          }
-          else
-          {
-#       endif
-            m_currentEdge = m_startingEdge->getOppositeEdge();
-            m_inverted = true;
-            return ++(*this);
-#       if 0
-          }
-#       endif
-        }
-  
-        m_currentEdge = m_currentEdge->getOppositeEdge()->getNextEdge();
-  
-        if (m_currentEdge == m_startingEdge)
-        {
-          m_startingEdge = m_currentEdge = 0;
-          return *this;
-        }
-      }
-    }
-    else // m_inverted == true
-    {
-      
-    }
-  
-    return *this;
-  }
-  
-  Vertex::ConstFaceIterator
-  Vertex::begin_f() const
-  {
-    assert(m_halfedge != 0);
-    return ConstFaceIterator(m_halfedge);
-  }
-  
-  const Vertex::ConstFaceIterator&
-  Vertex::end_f()
-  {
-    return s_face_end_iterator;
-  }
-  
-  Vertex::ConstVertexIterator
-  Vertex::begin_v() const
-  {
-    assert(m_halfedge != 0);
-    return ConstVertexIterator(m_halfedge);
-  }
-  
-  const Vertex::ConstVertexIterator&
-  Vertex::end_v()
-  {
-    return s_vertex_end_iterator;
-  }
-  
-  bool
-  Vertex::isBoundaryVertex() const
-  {
-  #warning isBoundaryVertex is not implemented correctly yet.
-    return begin_v() == end_v();
-  }
-#endif
-} 
index bb7c5b0d1ee63b160229fd3486bb5e04e0aeeac4..d561d78cadd8813b9a0a644ea6430237d0fc2e9f 100644 (file)
 /**
  * @file boundary_mesh/Vertex.hpp
  * @brief This file provides the types boundary_mesh::Vertex and
- *        boundary_mesh::OVertex.
+ *        boundary_mesh::UnlinkedVertex.
  */
 
 namespace boundary_mesh
 {
-  class HalfEdge;
-
-  /**
-   * @class OVertex
-   * @brief An OVertex supports all operations, you may want to use on points
-   *        or vectors, but in contrast to the Vertex class, it does not belong
-   *        to a particular mesh.
-   *
-   * In contrast to the Vertex class, the OVertex class allows instantation
-   * (from a double[3] array). All operations on Vertex instances return
-   * OVertex instances, as the result does not belong to a particular mesh.
-   *
-   * For more information on the supported operations, please refer to the
-   * documentation of generic::GenericVector.
-   */
   typedef generic::Vector3D<double> UnlinkedVertex;
 
-  class Vertex : public UnlinkedVertex
+  template < class TMesh >
+  class VertexT : public TMesh::UVertex
   {
-    template < class T > friend class Mesh;
+    template < template <typename> class TProp,
+                template <typename> class TAlg > friend class Mesh;
 
     public:
-#if 0
-      class IteratorData_Base__;
-      class ConstVertexIterator;
-      class ConstFaceIterator;
-
-      class IteratorData_Base__
-      {
-        public:
-          IteratorData_Base__(const HalfEdge* startingEdge,
-              const HalfEdge* currentEdge,
-              iterator_options options = iterator_options(),
-              bool inverted = false)
-            : m_startingEdge(startingEdge), m_currentEdge(currentEdge),
-              m_options(options), m_inverted(inverted),
-              m_fast_forward_hanging_nodes(false)
-            {}
-          IteratorData_Base__(const IteratorData_Base__& copy)
-            : m_startingEdge(copy.m_startingEdge),
-              m_currentEdge(copy.m_currentEdge),
-              m_options(copy.m_options), m_inverted(copy.m_inverted),
-              m_fast_forward_hanging_nodes(false)
-            {}
-
-          bool operator==(const IteratorData_Base__& rhs) const;
-          bool operator!=(const IteratorData_Base__& rhs) const;
-          IteratorData_Base__& operator++();
-
-          const HalfEdge& getCurrentHalfEdge() const
-            { return *m_currentEdge; }
-
-        private:
-          const HalfEdge* m_startingEdge;
-          const HalfEdge* m_currentEdge;
-          iterator_options m_options;
-          bool m_inverted;
-          bool m_fast_forward_hanging_nodes;
-      };
-
-      class ConstVertexIterator : public std::iterator<
-          std::input_iterator_tag, Vertex>
-      {
-        friend class Vertex;
-
-        public:
-          ConstVertexIterator(const ConstVertexIterator& copy)
-            : m_data(copy.m_data)
-            {}
-          bool operator==(const ConstVertexIterator& rhs) const
-            { return m_data == rhs.m_data; }
-          bool operator!=(const ConstVertexIterator& rhs) const
-            { return m_data != rhs.m_data; }
-          ConstVertexIterator& operator++()
-            { ++m_data; return *this; }
-          const Vertex& operator*() const;
-
-        private:
-          ConstVertexIterator()
-            : m_data(0,0)
-            {}
-          ConstVertexIterator(const HalfEdge* startingEdge)
-            : m_data(startingEdge,startingEdge)
-            {}
-          ConstVertexIterator(const HalfEdge* startingEdge,
-              iterator_options options)
-            : m_data(startingEdge,startingEdge,options)
-            {}
-
-          IteratorData_Base__ m_data;
-      };
-
-      class ConstFaceIterator : public std::iterator<
-          std::input_iterator_tag, Face>
-      {
-        friend class Vertex;
-
-        public:
-          ConstFaceIterator(const ConstFaceIterator& copy)
-            : m_data(copy.m_data)
-            {}
-          bool operator==(const ConstFaceIterator& rhs) const
-            { return m_data == rhs.m_data; }
-          bool operator!=(const ConstFaceIterator& rhs) const
-            { return m_data != rhs.m_data; }
-          ConstFaceIterator& operator++()
-            { ++m_data; return *this; }
-          const Face& operator*() const;
-
-        private:
-          ConstFaceIterator()
-            : m_data(0,0)
-            {}
-          ConstFaceIterator(const HalfEdge* startingEdge)
-            : m_data(startingEdge,startingEdge)
-            {}
-          ConstFaceIterator(const HalfEdge* startingEdge,
-              iterator_options options)
-            : m_data(startingEdge,startingEdge,options)
-            {}
-
-          IteratorData_Base__ m_data;
-      };
-
-      ConstFaceIterator begin_f() const;
-      static const ConstFaceIterator& end_f();
-      ConstVertexIterator begin_v() const;
-      static const ConstVertexIterator& end_v();
-      bool isBoundaryVertex() const;
-#endif
+      const typename TMesh::HalfEdge* getHalfEdge() const;
 
     private:
-      Vertex(const double[3]);
-      Vertex(const UnlinkedVertex& down_copy);
-      void setHalfEdge(const HalfEdge& halfedge);
-
-      const HalfEdge* halfedge_;
+      VertexT(const double[3]);
+      VertexT(const typename TMesh::UVertex& downCopy);
+      void setHalfEdge(const typename TMesh::HalfEdge& halfedge);
 
-#if 0
-      static const ConstVertexIterator& s_vertex_end_iterator;
-      static const ConstFaceIterator& s_face_end_iterator;
-#endif
+      const typename TMesh::HalfEdge* halfedge_;
   };
 }
 
+#include "Vertex_tmpl.cpp"
+
 #endif
 
diff --git a/src/bem3d/src/boundary_mesh/Vertex_tmpl.cpp b/src/bem3d/src/boundary_mesh/Vertex_tmpl.cpp
new file mode 100644 (file)
index 0000000..1935e64
--- /dev/null
@@ -0,0 +1,30 @@
+#include "Vertex.hpp"
+
+#include <cassert>
+
+namespace boundary_mesh
+{
+  template < class TMesh >
+  VertexT< TMesh >::VertexT(const double coord[3])
+    : TMesh::UVertex(coord), halfedge_(0)
+  {}
+  
+  template < class TMesh >
+  VertexT< TMesh >::VertexT(const typename TMesh::UVertex& down_copy)
+    : TMesh::UVertex(down_copy), halfedge_(0)
+  {}
+  
+  template < class TMesh >
+  void
+  VertexT< TMesh >::setHalfEdge(const typename TMesh::HalfEdge& halfedge)
+  {
+    halfedge_ = &halfedge;
+  }
+
+  template < class TMesh >
+  const typename TMesh::HalfEdge*
+  VertexT< TMesh >::getHalfEdge() const
+  {
+    return halfedge_;
+  }
+} 
diff --git a/src/bem3d/src/boundary_mesh/algorithm/HandleObj.hpp b/src/bem3d/src/boundary_mesh/algorithm/HandleObj.hpp
new file mode 100644 (file)
index 0000000..41929c9
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_ALGORITHM_HANDLEOBJ_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_ALGORITHM_HANDLEOBJ_HPP_GUARD_
+
+#include <string>
+
+namespace boundary_mesh
+{
+  namespace algorithm
+  {
+    template < class TMesh >
+    TMesh loadFromObj( const char* fileName );
+
+    template < class TMesh >
+    TMesh loadFromObj( std::string fileName );
+
+    template < class TMesh >
+    void saveAsObj( const TMesh& mesh, const char* fileName );
+
+    template < class TMesh >
+    void saveAsObj( const TMesh& mesh, std::string fileName );
+  }
+}
+
+#include "HandleObj_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/algorithm/HandleObj_tmpl.cpp b/src/bem3d/src/boundary_mesh/algorithm/HandleObj_tmpl.cpp
new file mode 100644 (file)
index 0000000..ce297ba
--- /dev/null
@@ -0,0 +1,193 @@
+
+#include <iostream>
+#include <sstream>
+#include <fstream>
+#include <string>
+#include <cstring>
+#include <boost/regex.hpp>
+#include "../MeshBuilder.hpp"
+
+namespace boundary_mesh
+{
+  namespace algorithm
+  {
+    template < class TMesh >
+    TMesh
+    loadFromObj( const char* fileName )
+    {
+      return loadFromObj< TMesh >( std::string( fileName ) );
+    }
+
+    template < class TMesh >
+    TMesh
+    loadFromObj( std::string fileName )
+    {
+      static const unsigned int vertexDimension = 3;
+      static const boost::regex
+        vertex_line("v\\s+(-?\\d+(?:\\.\\d+)?)\\s+(-?\\d+(?:\\.\\d+)?)"
+                      "\\s+(-?\\d+(?:\\.\\d+)?)\\s*",
+          boost::regex::perl);
+      static const boost::regex 
+        face_line("f\\s+((?:\\d+\\s+|\\d+$){3,})\\s*",
+          boost::regex::perl);
+      static const boost::regex empty_line("\\s*|\\s*\\#.*",
+          boost::regex::perl);
+
+      const size_t matchedNumberBufferSize = 1024;
+      char* matchedNumberBuffer = new char[matchedNumberBufferSize];
+    
+      std::ifstream file(fileName.c_str());
+    
+      if ( file.is_open() == false )
+      {
+        assert(0);
+//        throw exception::FileIO(fileName, exception::FileIO::Reading);
+      }
+    
+      struct TMesh::Size sizeInfo;
+      sizeInfo.vertices = 0;
+      sizeInfo.faces = 0;
+      sizeInfo.edges = 0;
+      boost::smatch what;
+      std::string line;
+    
+      while ( file.good() )
+      {
+        std::getline( file, line );
+    
+        if ( line[0] == 'v' )
+          sizeInfo.vertices += 1;
+        else if (line[0] == 'f' && boost::regex_match( line, what, face_line ))
+        {
+          sizeInfo.faces += 1;
+          const std::string numbers = what[1].str();
+          assert( numbers.length() < matchedNumberBufferSize );
+          matchedNumberBuffer = strncpy(matchedNumberBuffer, numbers.c_str(),
+                                        matchedNumberBufferSize);
+          char* savePtr = 0;
+          char* currentNumber = strtok_r(matchedNumberBuffer, " \t", &savePtr);
+          do
+          {
+            sizeInfo.edges += 1;
+          } while ((currentNumber = strtok_r( 0, " \t", &savePtr )) != 0);
+        }
+      }
+    
+      file.clear();
+      file.seekg( 0, std::ios_base::beg );
+    
+      typename TMesh::Builder builder(sizeInfo);
+      unsigned int line_number = 0;
+      std::vector< geoid_t > vertexIds;
+      vertexIds.reserve(TMesh::Prop::maximumNumberOfEdgesPerFace);
+    
+      while ( file.good() )
+      {
+        std::getline( file, line );
+        ++line_number;
+    
+        if (line[0] == 'v' && boost::regex_match( line, what, vertex_line ))
+        {
+          double coordinates[vertexDimension];
+          assert(what.size() == vertexDimension+1);
+          for (unsigned int i = 0; i < vertexDimension; ++i)
+          {
+            std::istringstream istr( what[i+1] );
+            istr >> coordinates[i];
+          }
+          builder.addVertex(typename TMesh::UVertex(coordinates));
+        }
+        else if (line[0] == 'f' && boost::regex_match( line, what, face_line ))
+        {
+          assert(what.size() == 2);
+
+          vertexIds.clear();
+          const std::string numbers = what[1].str();
+          assert( numbers.length() < matchedNumberBufferSize );
+          matchedNumberBuffer = strncpy(matchedNumberBuffer, numbers.c_str(),
+                                        matchedNumberBufferSize);
+          char* savePtr = 0;
+          char* currentNumber = strtok_r(matchedNumberBuffer, " \t", &savePtr);
+          do
+          {
+            unsigned int id = 0;
+            std::istringstream istr( currentNumber );
+            istr >> id;
+            vertexIds.push_back( id-1 );
+          } while ((currentNumber = strtok_r( 0, " \t", &savePtr )) != 0);
+
+          assert(vertexIds.size() >= 3);
+
+          builder.addFace(vertexIds);
+        }
+        else if ( boost::regex_match( line, what, empty_line ) )
+        {}
+        else
+        {
+          assert(0);
+        #if 0
+          throw new mesh::exception::syntax( file_name, line_number );
+        #endif
+        }
+      }
+
+      delete[] matchedNumberBuffer;
+      return builder.deliver();
+    }
+
+    template < class TMesh >
+    void saveAsObj( const TMesh& mesh, const char* fileName )
+    {
+      saveAsObj( mesh, std::string( fileName ) );
+    }
+
+    template < class TMesh >
+    void saveAsObj( const TMesh& mesh, std::string fileName )
+    {
+      std::ofstream outputFile( fileName.c_str() );
+
+      if ( outputFile.fail() == true )
+      {
+        // TODO: Throw proper exception.
+        assert(0);
+      }
+
+      /// Print out all vertices ordered by their ids:
+      for (typename TMesh::ConstVertexIterator vertexIt = mesh.begin_v();
+            vertexIt != mesh.end_v(); ++vertexIt)
+      {
+        outputFile << "v "
+                   << (*vertexIt)[0] << " "
+                   << (*vertexIt)[1] << " "
+                   << (*vertexIt)[2] << std::endl;
+      }
+
+      /// Print out all faces with their respective ids:
+      for (typename TMesh::ConstFaceIterator faceIt = mesh.begin_f();
+            faceIt != mesh.end_f(); ++faceIt)
+      {
+        outputFile << "f ";
+        typename TMesh::Face::ConstVertexIterator vertexIt = faceIt->begin_v();
+        assert( vertexIt != faceIt->end_v() );
+
+        while ( true )
+        {
+          outputFile << mesh.getVertexId( *vertexIt ) + 1;
+          ++vertexIt;
+          if ( vertexIt != faceIt->end_v() )
+          {
+            outputFile << " ";
+          }
+          else
+          {
+            outputFile << std::endl;
+            break;
+          }
+        }
+      }
+
+      outputFile.close();
+    }
+  }
+}
+
diff --git a/src/bem3d/src/boundary_mesh/algorithm/RefineUniformly.hpp b/src/bem3d/src/boundary_mesh/algorithm/RefineUniformly.hpp
new file mode 100644 (file)
index 0000000..a91df60
--- /dev/null
@@ -0,0 +1,74 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_ALGORITHM_REFINEUNIFORMLY_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_ALGORITHM_REFINEUNIFORMLY_HPP_GUARD_
+
+#include "../types.hpp"
+#include "../FaceDispatch.hpp"
+
+#define HILBERT3D_DISPATCH_PARAMETERS_0(Name) \
+  public: \
+    Name() {} \
+  private:
+#define HILBERT3D_DISPATCH_PARAMETERS_1(Name, T1, N1) \
+  public: \
+    Name(T1 N1) : N1(N1) {} \
+  private: \
+    T1 N1;
+#define HILBERT3D_DISPATCH_PARAMETERS_2(Name, T1, N1, T2, N2) \
+  public: \
+    Name(T1 N1, T2 N2) : N1(N1), N2(N2) {} \
+  private: \
+    T1 N1; T2 N2;
+#define HILBERT3D_DISPATCH_PARAMETERS_3(Name, T1, N1, T2, N2, T3, N3) \
+  public: \
+    Name(T1 N1, T2 N2, T3 N3) : N1(N1), N2(N2), N3(N3) {} \
+  private: \
+    T1 N1; T2 N2; T3 N3;
+
+
+namespace boundary_mesh
+{
+  namespace algorithm
+  {
+    namespace refine_uniformly_impl
+    {
+      template < class TMesh >
+      std::vector< geoid_t >
+      addEdgeVerticesForFace(
+          const TMesh& oldMesh,
+          typename TMesh::Builder* builder,
+          const typename TMesh::Face& face,
+          std::vector< geoid_t >* newVertices );
+
+      template < class TMesh >
+      class RefineFaceUniformlyImpl
+      {
+        HILBERT3D_DISPATCH_PARAMETERS_3( RefineFaceUniformlyImpl,
+          const TMesh&, oldMesh_, typename TMesh::Builder*, builder_,
+          std::vector< geoid_t >*, newVertices_ );
+
+        public:
+          void exec(const typename TMesh::Prop::Triangle& face);
+          void exec(const typename TMesh::Prop::ConvexQuadrilateral& face);
+      };
+
+      template < class TMesh >
+      class ComputeNewSizeForFaceImpl
+      {
+        HILBERT3D_DISPATCH_PARAMETERS_1( ComputeNewSizeForFaceImpl,
+          typename TMesh::Size*, size_ );
+
+        public:
+          void exec( const typename TMesh::Prop::Triangle& face );
+          void exec( const typename TMesh::Prop::ConvexQuadrilateral& face );
+      };
+    }
+
+    template < class TMesh >
+    TMesh refineUniformly( const TMesh& mesh );
+  }
+}
+
+#include "RefineUniformly_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/algorithm/RefineUniformly_tmpl.cpp b/src/bem3d/src/boundary_mesh/algorithm/RefineUniformly_tmpl.cpp
new file mode 100644 (file)
index 0000000..514da47
--- /dev/null
@@ -0,0 +1,206 @@
+#include "RefineUniformly.hpp"
+#include "../FaceDispatch.hpp"
+
+namespace boundary_mesh
+{
+  namespace algorithm
+  {
+    namespace refine_uniformly_impl
+    {
+      template < class TMesh >
+      std::vector< geoid_t >
+      addEdgeVerticesForFace(
+          const TMesh& oldMesh,
+          typename TMesh::Builder* builder,
+          const typename TMesh::Face& face,
+          std::vector< geoid_t >* newVertices)
+      {
+        unsigned int i = 0;
+        std::vector< geoid_t > faceVertexIds(
+            face.getNumberOfVertices() * 2, 0);
+  
+        for ( typename TMesh::Face::ConstEdgeIterator edgeIt = face.begin_e();
+              edgeIt != face.end_e(); ++edgeIt )
+        {
+          const typename TMesh::Vertex& startVertex = edgeIt->getStartVertex();
+          geoid_t edgeId = oldMesh.getEdgeId( *edgeIt );
+  
+          if ( (*newVertices)[ edgeId ] == geoid_t_max )
+          {
+            const typename TMesh::Vertex& endVertex = edgeIt->getEndVertex();
+            (*newVertices)[ edgeId ] =
+              builder->addVertex( ( startVertex + endVertex ) / 2. );
+            if ( edgeIt->getOppositeEdge() != 0 )
+            {
+              (*newVertices)[oldMesh.getEdgeId(*(edgeIt->getOppositeEdge()))] =
+                (*newVertices)[ edgeId ];
+            }
+          }
+  
+          faceVertexIds[ 2*i + 0 ] = oldMesh.getVertexId( startVertex );
+          faceVertexIds[ 2*i + 1 ] = (*newVertices)[ edgeId ];
+  
+          ++i;
+        }
+  
+        return faceVertexIds;
+      }
+  
+      template < class TMesh >
+      void
+      RefineFaceUniformlyImpl< TMesh >::exec(
+          const typename TMesh::Prop::Triangle& face)
+      {
+        std::vector< geoid_t > faceVertexIds =
+          addEdgeVerticesForFace( oldMesh_, builder_, face, newVertices_ );
+        std::vector< geoid_t > triangle(3);
+  
+        assert( faceVertexIds.size() == 6 );
+  
+        // Some ASCII-Art:
+        //             4          
+        //             *          
+        //            / \           The big triangle is refined to the small
+        //         5 *---* 3        ones. The numbers next to the stars are the
+        //          / \ / \         indices of the appropiate nodes with respect
+        //       0 *---*---* 2      to the faceVertexIds vector.
+        //             1
+        // We need to add the following triangles:
+        //   [ 0, 1, 5 ], [ 1, 2, 3 ], [ 1, 3, 5 ] and [ 3, 4, 5 ]
+  
+        triangle[0] = faceVertexIds[0];
+        triangle[1] = faceVertexIds[1];
+        triangle[2] = faceVertexIds[5];
+        builder_->addFace( triangle );
+  
+        triangle[0] = faceVertexIds[1];
+        triangle[1] = faceVertexIds[2];
+        triangle[2] = faceVertexIds[3];
+        builder_->addFace( triangle );
+  
+        triangle[0] = faceVertexIds[1];
+        triangle[1] = faceVertexIds[3];
+        triangle[2] = faceVertexIds[5];
+        builder_->addFace( triangle );
+  
+        triangle[0] = faceVertexIds[3];
+        triangle[1] = faceVertexIds[4];
+        triangle[2] = faceVertexIds[5];
+        builder_->addFace( triangle );
+      }
+  
+      template < class TMesh >
+      void
+      RefineFaceUniformlyImpl< TMesh >::exec(
+          const typename TMesh::Prop::ConvexQuadrilateral& face)
+      {
+        std::vector< geoid_t > faceVertexIds =
+          addEdgeVerticesForFace( oldMesh_, builder_, face, newVertices_ );
+        std::vector< geoid_t > quad(4);
+  
+        assert( faceVertexIds.size() == 8 );
+  
+        // Add an additional vertex right in the center of the rectangle:
+        const typename TMesh::Prop::Quadrilateral& rect =
+          dynamic_cast< const typename TMesh::Prop::Quadrilateral& >(
+            face);
+  
+        geoid_t centerVertexId = builder_->addVertex(
+          ( rect.getA() + rect.getC() ) / 2.);
+  
+        // Some ASCII-Art:
+        //           5
+        //     6 *---*---* 4         Stars and numbers have the same meaning
+        //       |       |           as in the triangle case.
+        //     7 *---c---* 3         c is also a vertex, it has the special id
+        //       |       |             centerVertexId.
+        //     0 *---*---* 2
+        //           1
+        // We need to add the following rectangles:
+        //  [0, 1, c, 7], [1, 2, 3, c], [3, 4, 5, c] and [5, 6, 7, c]
+        quad[0] = faceVertexIds[0]; quad[1] = faceVertexIds[1];
+        quad[2] = centerVertexId;   quad[3] = faceVertexIds[7];
+        builder_->addFace( quad );
+  
+        quad[0] = faceVertexIds[1]; quad[2] = faceVertexIds[2];
+        quad[3] = faceVertexIds[3]; quad[4] = centerVertexId;
+        builder_->addFace( quad );
+  
+        quad[0] = faceVertexIds[3]; quad[1] = faceVertexIds[4];
+        quad[2] = faceVertexIds[5]; quad[3] = centerVertexId;
+        builder_->addFace( quad );
+  
+        quad[0] = faceVertexIds[5]; quad[1] = faceVertexIds[6];
+        quad[2] = faceVertexIds[7]; quad[3] = centerVertexId;
+        builder_->addFace( quad );
+      }
+  
+      template < class TMesh >
+      void
+      ComputeNewSizeForFaceImpl< TMesh >::exec(
+          const typename TMesh::Prop::Triangle& face)
+      {
+        size_->vertices  +=  6;
+        size_->faces     +=  4;
+        size_->edges     += 12;
+      }
+  
+      template < class TMesh >
+      void
+      ComputeNewSizeForFaceImpl< TMesh >::exec(
+          const typename TMesh::Prop::ConvexQuadrilateral& face)
+      {
+        size_->vertices  +=  9;
+        size_->faces     +=  4;
+        size_->edges     += 16;
+      }
+    }
+
+    template < class TMesh >
+    TMesh
+    refineUniformly( const TMesh& mesh )
+    {
+      // Define nice names for the used functions.
+      typedef SingleFaceDispatcher<
+          refine_uniformly_impl::ComputeNewSizeForFaceImpl< TMesh >, TMesh >
+        ComputeNewSizeForFace;
+      typedef SingleFaceDispatcher<
+          refine_uniformly_impl::RefineFaceUniformlyImpl< TMesh >, TMesh >
+        RefineFaceUniformly;
+
+      // Compute the new size of the mesh using the appropiate functor and
+      // create a TMesh::Builder instance for the new mesh.
+      typename TMesh::Size newSize = { 0, 0, 0 };
+      for (typename TMesh::ConstFaceIterator faceIt = mesh.begin_f();
+            faceIt != mesh.end_f(); ++faceIt)
+      {
+        ComputeNewSizeForFace::Exec( *faceIt,
+          typename ComputeNewSizeForFace::PARAM( &newSize ) );
+      }
+
+      typename TMesh::Builder builder( newSize );
+
+      // Add all vertices of the old mesh (in the same order, the ids are
+      // therefore the same for both meshes):
+      for (typename TMesh::ConstVertexIterator vertexIt = mesh.begin_v();
+            vertexIt != mesh.end_v(); ++vertexIt)
+      {
+        builder.addVertex( *vertexIt );
+      }
+
+      // Call the refineFaceUniformly functor to actually do the work and
+      // refine the faces.
+      std::vector< geoid_t > newVertices( mesh.getNumberOfEdges(),
+                                          geoid_t_max );
+      for (typename TMesh::ConstFaceIterator faceIt = mesh.begin_f();
+            faceIt != mesh.end_f(); ++faceIt)
+      {
+        RefineFaceUniformly::Exec( *faceIt,
+           typename RefineFaceUniformly::PARAM(mesh, &builder, &newVertices) );
+      }
+
+      return builder.deliver();
+    }
+  }
+}
+
diff --git a/src/bem3d/src/boundary_mesh/dispatchTest.cpp b/src/bem3d/src/boundary_mesh/dispatchTest.cpp
new file mode 100644 (file)
index 0000000..e0882df
--- /dev/null
@@ -0,0 +1,110 @@
+#include "FaceDispatch.hpp"
+#include <iostream>
+
+using namespace boundary_mesh;
+
+/*
+ * NEU NEU NEU
+ *
+ * Ich habe gerade einen dynamischen Multi-Dispatcher geschrieben, hier ist
+ * das Ergebnis. Ziel ist es -- nur um dir das Googeln zu ersparen -- den
+ * Typ eines Faces dynamisch zur Laufzeit zu erkennen und daraufhin die dem
+ * Typ entsprechende Variante einer Funktion aufzurufen.
+ *
+ * Man kann dabei daran denken, dass wir eine Funktion refineFace schreiben
+ * können, die in Abhängigkeit vom Typ des Faces das Face selbstständig
+ * verfeinert.
+ *
+ * In unserem jetzigen refine-Algorithmus können wir dann einfach diese
+ * refine-Funktion aufrufen und es passiert das richtige, d.h. wir ersparen
+ * uns die Fallunterscheidungen innerhalb der Funktion, haben nicht den
+ * Code für alle verschiedenen Faces innerhalb dieser einen Funktion und
+ * halten die Bibliothek leichter erweiterbar.
+ *
+ */
+
+// Hier deklarieren wir zum Testen eine abstrakte Basisklasse RFace, sowie
+// zwei Realisierungen RTriangle und RQuadrilateral.
+// Volle Implementierungen dieser Klassen sind bald Bestandteil von Face.hpp.
+struct Mesh {};
+
+struct RFace
+{
+  virtual dispatchId_t getDispatchId() const =0;
+};
+
+struct RTriangle : RFace
+{
+  virtual dispatchId_t getDispatchId() const {
+    return DispatchId< Mesh, RTriangle >::Get();
+  }
+};
+
+struct RQuadrilateral : RFace
+{
+  virtual dispatchId_t getDispatchId() const {
+    return DispatchId< Mesh, RQuadrilateral >::Get();
+  }
+};
+
+// Das ist die Realisierung der Funktion für ein Dreieck.
+void testTriangle( const RFace& f )
+{
+  std::cout << "Das ist ein Dreieck!" << std::endl;
+}
+
+// Und das für ein Viereck.
+void testQuadrilateral( const RFace& f )
+{
+  std::cout << "Das ist ein Viereck!" << std::endl;
+}
+
+// Nun erzeugen wir einen Dispatch-Funktor mit dem Namen test, in dem Fall
+// als globale Variable.
+MultiDispatchSingleArg< RFace, void (&)( const RFace& f ),
+                        void (*)( const RFace& f )> test;
+
+int main()
+{
+  // Jedem Face-Typen gehört *einmalig* eine Id zugeordnet. Darum kümmert
+  // sich später eine Initialisierungsfunktion, die automatisch aufgerufen
+  // wird.
+  DispatchId< Mesh, RTriangle >::Set(
+    CentralDispatchIdDispenser< Mesh >::Get());
+  DispatchId< Mesh, RQuadrilateral >::Set(
+    CentralDispatchIdDispenser< Mesh >::Get());
+
+  // Jedem Funktor muss mitgeteilt werden, welche Realisierungen zur
+  // Verfügung stehen. Prinzipiell wird es dazu eine Liste von
+  // Registrierungsfunktionen geben, die von der Initialisierungsfunktion
+  // aufgerufen werden.
+  test.registerHandler< Mesh, RTriangle >( testTriangle );
+  test.registerHandler< Mesh, RQuadrilateral >( testQuadrilateral );
+
+  // So, sobald alles aufgesetzt ist wird es etwas hübscher:
+  // Unsere Test-Typen.
+  RTriangle t;
+  RQuadrilateral q;
+
+  // So sehen dann die Funktionsaufrufe aus.
+  test(t)(t);
+  test(q)(q);
+
+  // Ausgabe:
+  // Das ist ein Dreieck!
+  // Das ist ein Viereck!
+  //
+
+  return 0;
+}
+
+// Das sieht nicht nach sehr viel aus, aber dadurch wird es möglich, den
+// Code gut zu strukturieren und die Netzverwaltung vorallem erweiterbar
+// zu halten. Außerdem ist der Dispatcher schneller als eine Liste von
+// dynamic_casts, weil er in einer Tabelle nachsieht und nicht versuchen
+// muss das Objekt auf alle Möglichkeiten zu casten.
+
+// Was derzeit vor allem noch fehlt ist die Möglichkeit, den dynamischen
+// Dispatcher gegen einen statischen auszutauschen um Zeit zu sparen, falls
+// das Netz z.B. nur aus Dreiecken besteht.
+
diff --git a/src/bem3d/src/boundary_mesh/exception.hpp b/src/bem3d/src/boundary_mesh/exception.hpp
new file mode 100644 (file)
index 0000000..9e3c0da
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_EXCEPTION_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_EXCEPTION_HPP_GUARD_
+
+#include "exception/NoMatchingFaceType.hpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.cpp b/src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.cpp
new file mode 100644 (file)
index 0000000..16eda9f
--- /dev/null
@@ -0,0 +1,12 @@
+#include "CouldNotDispatchCall.hpp"
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    CouldNotDispatchCall::CouldNotDispatchCall( const std::string& whatArg )
+      : std::runtime_error( whatArg )
+    {}
+  }
+}
+
diff --git a/src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.hpp b/src/bem3d/src/boundary_mesh/exception/CouldNotDispatchCall.hpp
new file mode 100644 (file)
index 0000000..ee455c4
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_EXCEPTION_COULDNOTDISPATCHCALL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_EXCEPTION_COULDNOTDISPATCHCALL_HPP_GUARD_
+
+#include <exception>
+#include <stdexcept>
+#include <string>
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    class CouldNotDispatchCall : public std::runtime_error
+    {
+      public:
+        CouldNotDispatchCall( const std::string& whatArg );
+    };
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.cpp b/src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.cpp
new file mode 100644 (file)
index 0000000..d3563b6
--- /dev/null
@@ -0,0 +1,12 @@
+#include "DispatchIdNotSet.hpp"
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    DispatchIdNotSet::DispatchIdNotSet( const std::string& whatArg )
+      : std::logic_error( whatArg )
+    {}
+  }
+}
+
diff --git a/src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.hpp b/src/bem3d/src/boundary_mesh/exception/DispatchIdNotSet.hpp
new file mode 100644 (file)
index 0000000..8d203eb
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_EXCEPTION_DISPATCHIDNOTSET_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_EXCEPTION_DISPATCHIDNOTSET_HPP_GUARD_
+
+#include <exception>
+#include <stdexcept>
+#include <string>
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    class DispatchIdNotSet : public std::logic_error
+    {
+      public:
+        DispatchIdNotSet( const std::string& whatArg );
+    };
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType.hpp b/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType.hpp
new file mode 100644 (file)
index 0000000..68790bc
--- /dev/null
@@ -0,0 +1,32 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_EXCEPTION_NOMATCHINGFACETYPE_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_EXCEPTION_NOMATCHINGFACETYPE_HPP_GUARD_
+
+#include <exception>
+#include <stdexcept>
+#include <string>
+#include <vector>
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    template < class TMesh >
+    class NoMatchingFaceType : public std::runtime_error
+    {
+      public:
+        NoMatchingFaceType(const std::string& what_arg,
+          const std::vector< const typename TMesh::Vertex* > vertices) throw();
+
+        virtual ~NoMatchingFaceType() throw();
+        virtual const char* what() const throw();
+
+      private:
+        char* message_;
+
+        static const unsigned int maximumMessageSize = 512;
+    };
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp b/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp
new file mode 100644 (file)
index 0000000..aed85e5
--- /dev/null
@@ -0,0 +1,68 @@
+#include "NoMatchingFaceType.hpp"
+
+#include <cstring>
+#include <sstream>
+
+namespace boundary_mesh
+{
+  namespace exception
+  {
+    template < class TMesh >
+    NoMatchingFaceType< TMesh >::NoMatchingFaceType(
+        const std::string& what_arg,
+        const std::vector< const typename TMesh::Vertex* > vertices) throw()
+      : std::runtime_error(what_arg), message_(new char[maximumMessageSize])
+    {
+      message_ = std::strncpy(message_, std::runtime_error::what(),
+                              maximumMessageSize);
+      if ( message_[maximumMessageSize-1] != '\0' )
+      {
+        message_[maximumMessageSize-1] = '\0';
+      }
+      else
+      {
+        size_t firstFreePos = strlen(message_);
+        std::strncpy(message_+firstFreePos,
+          "\nThe following vertices are involved:",
+          maximumMessageSize - firstFreePos);
+        if (message_[maximumMessageSize-1] != '\0')
+        {
+          message_[maximumMessageSize-1] = '\0';
+        }
+        else
+        {
+          std::stringstream ss;
+          for ( typename std::vector< const typename TMesh::Vertex* >::
+                  const_iterator vertexIt = vertices.begin();
+                  vertexIt != vertices.end(); ++vertexIt )
+          {
+            ss << std::endl << **vertexIt;
+          }
+          std::string s = ss.str();
+  
+          firstFreePos = strlen(message_);
+          std::strncpy(message_+firstFreePos, s.c_str(),
+                        maximumMessageSize - firstFreePos);
+          if (message_[maximumMessageSize-1] != '\0')
+          {
+            message_[maximumMessageSize-1] = '\0';
+          }
+        }
+      }
+    }
+
+    template < class TMesh >
+    NoMatchingFaceType< TMesh >::~NoMatchingFaceType() throw()
+    {
+      delete message_;
+    }
+
+    template < class TMesh >
+    const char*
+    NoMatchingFaceType< TMesh >::what() const throw()
+    {
+      return message_;
+    }
+  }
+}
+
diff --git a/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp b/src/bem3d/src/boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp
new file mode 100644 (file)
index 0000000..2880f14
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_EXCEPTION_NOMATCHINGFACETYPE_TMPL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_EXCEPTION_NOMATCHINGFACETYPE_TMPL_HPP_GUARD_
+
+#include "NoMatchingFaceType.hpp"
+#include "NoMatchingFaceType_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral.hpp b/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral.hpp
new file mode 100644 (file)
index 0000000..ccb5b23
--- /dev/null
@@ -0,0 +1,61 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_HPP_GUARD_
+
+#include "../../generic/BaseTypes.hpp"
+#include "Quadrilateral.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      class GenericConvexQuadrilateral__
+        : public TFaceBase
+      {
+        public:
+          static bool is(
+              const typename std::vector< const typename TMesh::Vertex* >
+                  vertices);
+
+          GenericConvexQuadrilateral__(
+              const typename TMesh::HalfEdge& halfedge );
+          GenericConvexQuadrilateral__(
+              const typename TMesh::HalfEdge& halfedge, geoid_t id );
+          double computeArea() const;
+      };
+    }
+
+    template < class TMesh >
+    class ConvexQuadrilateral
+      : public priv::GenericConvexQuadrilateral__<
+            Quadrilateral<TMesh>, TMesh >
+    {
+      public:
+        ConvexQuadrilateral( const typename TMesh::HalfEdge& halfedge );
+    };
+
+    template < class TMesh >
+    class RConvexQuadrilateral
+      : public priv::GenericConvexQuadrilateral__<
+            RQuadrilateral< TMesh >, TMesh >
+    {
+      typedef priv::GenericConvexQuadrilateral__<
+          RQuadrilateral< TMesh >, TMesh > GenericConvexQuadrilateral;
+
+      public:
+        RConvexQuadrilateral( const typename TMesh::HalfEdge& halfedge,
+                              geoid_t id );
+        virtual double computeArea() const;
+    };
+
+    template < class TMesh >
+    class NoConvexQuadrilateral
+      : public generic::NullType
+    {};
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp b/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp
new file mode 100644 (file)
index 0000000..980428c
--- /dev/null
@@ -0,0 +1,95 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_TMPL_CPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_TMPL_CPP_GUARD_
+
+#include "../Face.hpp"
+#include "Quadrilateral_tmpl.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      inline int signum(double x) // MK: changed this to inline, otherwise "mulitple definition error" when compiling....solution to this??
+      {
+        if ( x < 0 )
+          return -1;
+        else if ( x > 0 )
+          return  1;
+        else
+          return  0;
+      }
+
+      template < class TFaceBase, class TMesh >
+      bool
+      GenericConvexQuadrilateral__< TFaceBase, TMesh >::is(
+          const typename std::vector< const typename TMesh::Vertex* >
+              vertices)
+      {
+        if (vertices.size() == 4)
+        {
+          const typename TMesh::Vertex& a = *(vertices[0]);
+          const typename TMesh::Vertex& b = *(vertices[1]);
+          const typename TMesh::Vertex& c = *(vertices[2]);
+          const typename TMesh::Vertex& d = *(vertices[3]);
+          int sA1 = signum( (d-a) * (b-a) );
+          int sA2 = signum( (a-b) * (c-b) );
+          int sA3 = signum( (b-c) * (d-c) );
+          int sA4 = signum( (c-d) * (a-d) );
+          return sA1 == sA2 && sA2 == sA3 && sA3 == sA4 && sA4 != 0;
+        }
+        return false;
+      }
+
+      template < class TFaceBase, class TMesh >
+      GenericConvexQuadrilateral__< TFaceBase, TMesh >::
+        GenericConvexQuadrilateral__(
+          const typename TMesh::HalfEdge& halfedge)
+      : TFaceBase( halfedge )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      GenericConvexQuadrilateral__< TFaceBase, TMesh >::
+        GenericConvexQuadrilateral__(
+          const typename TMesh::HalfEdge& halfedge, geoid_t id)
+      : TFaceBase( halfedge, id )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      double
+      GenericConvexQuadrilateral__< TFaceBase, TMesh >::computeArea() const
+      {
+        const typename TMesh::Vertex& a = TFaceBase::getA();
+        const typename TMesh::Vertex& b = TFaceBase::getB();
+        const typename TMesh::Vertex& c = TFaceBase::getC();
+        const typename TMesh::Vertex& d = TFaceBase::getD();
+        return .5 * ( (TMesh::Vertex::crossProduct( b-a, d-a )).norm()
+                      + (TMesh::Vertex::crossProduct( b-c, d-c )).norm());
+      }
+    }
+
+    template < class TMesh >
+    ConvexQuadrilateral< TMesh >::ConvexQuadrilateral(
+        const typename TMesh::HalfEdge& halfedge)
+      : priv::GenericConvexQuadrilateral__< Quadrilateral< TMesh >, TMesh >(
+          halfedge)
+    {}
+
+    template < class TMesh >
+    RConvexQuadrilateral< TMesh >::RConvexQuadrilateral(
+        const typename TMesh::HalfEdge& halfedge, geoid_t id)
+      : priv::GenericConvexQuadrilateral__< RQuadrilateral< TMesh >, TMesh >(
+          halfedge, id)
+    {}
+
+    template < class TMesh >
+    double
+    RConvexQuadrilateral< TMesh >::computeArea() const
+    {
+      return GenericConvexQuadrilateral::computeArea();
+    }
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp b/src/bem3d/src/boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp
new file mode 100644 (file)
index 0000000..4b390c9
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_TMPL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_CONVEXQUADRILATERAL_TMPL_HPP_GUARD_
+
+#include "ConvexQuadrilateral.hpp"
+#include "ConvexQuadrilateral_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Parallelogram.hpp b/src/bem3d/src/boundary_mesh/face/Parallelogram.hpp
new file mode 100644 (file)
index 0000000..93be81c
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_HPP_GUARD_
+
+#include "../../generic/BaseTypes.hpp"
+#include "ConvexQuadrilateral.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      class GenericParallelogram__
+        : public TFaceBase
+      {
+        public:
+          static bool is(
+              const typename std::vector< const typename TMesh::Vertex* >
+                  vertices);
+
+          GenericParallelogram__( const typename TMesh::HalfEdge& halfedge );
+          GenericParallelogram__( const typename TMesh::HalfEdge& halfedge,
+                                  geoid_t id );
+          double computeArea() const;
+      };
+    }
+
+    template < class TMesh >
+    class Parallelogram
+      : public priv::GenericParallelogram__<
+            ConvexQuadrilateral<TMesh>, TMesh >
+    {
+      public:
+        Parallelogram( const typename TMesh::HalfEdge& halfedge );
+    };
+
+    template < class TMesh >
+    class RParallelogram
+      : public priv::GenericParallelogram__<
+            RConvexQuadrilateral< TMesh >, TMesh >
+    {
+      typedef priv::GenericParallelogram__<
+          RConvexQuadrilateral< TMesh >, TMesh > GenericParallelogram;
+
+      public:
+        RParallelogram( const typename TMesh::HalfEdge& halfedge, geoid_t id );
+        virtual double computeArea() const;
+    };
+
+    template < class TMesh >
+    class NoParallelogram
+      : public generic::NullType
+    {};
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.cpp b/src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.cpp
new file mode 100644 (file)
index 0000000..9f0b5c1
--- /dev/null
@@ -0,0 +1,77 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_TMPL_CPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_TMPL_CPP_GUARD_
+
+#include <cmath>
+#include "ConvexQuadrilateral_tmpl.hpp"
+#include "Parallelogram_tmpl.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      bool GenericParallelogram__< TFaceBase, TMesh >::is(
+          const typename std::vector< const typename TMesh::Vertex* >
+              vertices)
+      {
+        if ( TFaceBase::is( vertices ) == true )
+        {
+          const typename TMesh::Vertex& a = *(vertices[0]);
+          const typename TMesh::Vertex& b = *(vertices[1]);
+          const typename TMesh::Vertex& c = *(vertices[2]);
+          const typename TMesh::Vertex& d = *(vertices[3]);
+          return (b - a).isLinearlyDependent( d - c ) &&
+              (c - b).isLinearlyDependent( a - d );
+        }
+        return false;
+      }
+
+      template < class TFaceBase, class TMesh >
+      GenericParallelogram__< TFaceBase, TMesh >::GenericParallelogram__(
+          const typename TMesh::HalfEdge& halfedge )
+        : TFaceBase( halfedge )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      GenericParallelogram__< TFaceBase, TMesh >::GenericParallelogram__(
+          const typename TMesh::HalfEdge& halfedge, geoid_t id )
+        : TFaceBase( halfedge, id )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      double
+      GenericParallelogram__< TFaceBase, TMesh >::computeArea() const
+      {
+        return TMesh::Vertex::crossProduct(
+                  TFaceBase::getB() - TFaceBase::getA(),
+                  TFaceBase::getC() - TFaceBase::getA() ).norm();
+      }
+    }
+
+    template < class TMesh >
+    Parallelogram< TMesh >::Parallelogram(
+        const typename TMesh::HalfEdge& halfedge)
+      : priv::GenericParallelogram__< ConvexQuadrilateral< TMesh >, TMesh >(
+          halfedge)
+    {}
+
+    template < class TMesh >
+    RParallelogram< TMesh >::RParallelogram(
+        const typename TMesh::HalfEdge& halfedge, geoid_t id)
+      : priv::GenericParallelogram__< RConvexQuadrilateral< TMesh >, TMesh >(
+          halfedge, id)
+    {}
+
+    template < class TMesh >
+    double
+    RParallelogram< TMesh >::computeArea() const
+    {
+      return GenericParallelogram::computeArea();
+    }
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.hpp b/src/bem3d/src/boundary_mesh/face/Parallelogram_tmpl.hpp
new file mode 100644 (file)
index 0000000..3142138
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_TMPL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_PARALLELOGRAM_TMPL_HPP_GUARD_
+
+#include "Parallelogram.hpp"
+#include "Parallelogram_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Quadrilateral.hpp b/src/bem3d/src/boundary_mesh/face/Quadrilateral.hpp
new file mode 100644 (file)
index 0000000..0f43964
--- /dev/null
@@ -0,0 +1,66 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_HPP_GUARD_
+
+#include <vector>
+#include "../../generic/BaseTypes.hpp"
+#include "../types.hpp"
+#include "../Face.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      class GenericQuadrilateral__
+        : public TFaceBase
+      {
+        public:
+          static bool is(
+              const typename std::vector< const typename TMesh::Vertex* >
+                  vertices);
+
+          GenericQuadrilateral__( const typename TMesh::HalfEdge& halfedge );
+          GenericQuadrilateral__( const typename TMesh::HalfEdge& halfedge,
+                                  geoid_t id );
+          double computeArea() const;
+          geoid_t getNumberOfVertices() const;
+          const typename TMesh::Vertex& getA() const;
+          const typename TMesh::Vertex& getB() const;
+          const typename TMesh::Vertex& getC() const;
+          const typename TMesh::Vertex& getD() const;
+      };
+    }
+
+    template < class TMesh >
+    class Quadrilateral
+      : public priv::GenericQuadrilateral__< CommonFaceBase__< TMesh >, TMesh >
+    {
+      public:
+        Quadrilateral( const typename TMesh::HalfEdge& halfedge );
+    };
+
+    template < class TMesh >
+    class RQuadrilateral
+      : public priv::GenericQuadrilateral__< RFace< TMesh >, TMesh >
+    {
+      typedef priv::GenericQuadrilateral__< RFace< TMesh >, TMesh >
+        GenericQuadrilateral;
+
+      public:
+        RQuadrilateral( const typename TMesh::HalfEdge& halfedge, geoid_t id );
+        virtual double computeArea() const;
+        virtual geoid_t getNumberOfVertices() const;
+        virtual dispatchId_t getDispatchId() const;
+    };
+
+    template < class TMesh >
+    class NoQuadrilateral
+      : public generic::NullType
+    {};
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.cpp b/src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.cpp
new file mode 100644 (file)
index 0000000..b1a6b79
--- /dev/null
@@ -0,0 +1,134 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_TMPL_CPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_TMPL_CPP_GUARD_
+
+#include <cmath>
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      bool
+      GenericQuadrilateral__< TFaceBase, TMesh >::is(
+          const typename std::vector< const typename TMesh::Vertex* > vertices)
+      {
+        #ifdef HILBERT3D_BOUNDARY_MESH_CHEAP_TYPE_CHECKS
+          return vertices.size() == 4;
+        #else
+          const typename TMesh::Vertex& a = vertices[0];
+          const typename TMesh::Vertex& b = vertices[1];
+          const typename TMesh::Vertex& c = vertices[2];
+          const typename TMesh::Vertex& d = vertices[3];
+          return ( vertices.size() == 4 &&
+                    (b-a).isLinearlyDependent(c-b) == false &&
+                    (c-b).isLinearlyDependent(d-c) == false &&
+                    (d-c).isLinearlyDependent(a-d) == false &&
+                    (a-d).isLinearlyDependent(b-a) == false );
+                  
+        #endif
+      }
+
+      template < class TFaceBase, class TMesh >
+      GenericQuadrilateral__< TFaceBase, TMesh >::GenericQuadrilateral__(
+          const typename TMesh::HalfEdge& halfedge)
+        : TFaceBase( halfedge )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      GenericQuadrilateral__< TFaceBase, TMesh >::GenericQuadrilateral__(
+          const typename TMesh::HalfEdge& halfedge, geoid_t id)
+        : TFaceBase( halfedge, id )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      double
+      GenericQuadrilateral__< TFaceBase, TMesh >::computeArea() const
+      {
+        const typename TMesh::Vertex& a = getA();
+        const typename TMesh::Vertex& b = getB();
+        const typename TMesh::Vertex& c = getC();
+        const typename TMesh::Vertex& d = getD();
+
+        return (TMesh::Vertex::crossProduct( d - a, b - a )
+                    + TMesh::Vertex::crossProduct( a - b, c - b )
+                    + TMesh::Vertex::crossProduct( b - c, d - c )
+                    + TMesh::Vertex::crossProduct( c - d, a - d )).norm();
+      }
+
+      template < class TFaceBase, class TMesh >
+      geoid_t
+      GenericQuadrilateral__< TFaceBase, TMesh >::getNumberOfVertices() const
+      {
+        return 4;
+      }
+
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericQuadrilateral__< TFaceBase, TMesh >::getA() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 0 );
+      }
+
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericQuadrilateral__< TFaceBase, TMesh >::getB() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 1 );
+      }
+
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericQuadrilateral__< TFaceBase, TMesh >::getC() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 2 );
+      }
+
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericQuadrilateral__< TFaceBase, TMesh >::getD() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 3 );
+      }
+    }
+
+    template < class TMesh >
+    Quadrilateral< TMesh >::Quadrilateral(
+        const typename TMesh::HalfEdge& halfedge )
+      : priv::GenericQuadrilateral__< CommonFaceBase__< TMesh >, TMesh >(
+          halfedge )
+    {}
+
+    template < class TMesh >
+    RQuadrilateral< TMesh >::RQuadrilateral(
+        const typename TMesh::HalfEdge& halfedge, geoid_t id )
+      : priv::GenericQuadrilateral__< RFace< TMesh >, TMesh >(halfedge,id)
+    {}
+
+    template < class TMesh >
+    double
+    RQuadrilateral< TMesh >::computeArea() const
+    {
+      return GenericQuadrilateral::computeArea();
+    }
+
+    template < class TMesh >
+    geoid_t
+    RQuadrilateral< TMesh >::getNumberOfVertices() const
+    {
+      return GenericQuadrilateral::getNumberOfVertices();
+    }
+
+    template < class TMesh >
+    dispatchId_t
+    RQuadrilateral< TMesh >::getDispatchId() const
+    {
+      // TODO: Implement or remove.
+      return -1;
+    }
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.hpp b/src/bem3d/src/boundary_mesh/face/Quadrilateral_tmpl.hpp
new file mode 100644 (file)
index 0000000..0b89f4e
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_TMPL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_QUADRILATERAL_TMPL_HPP_GUARD_
+
+#include "Quadrilateral.hpp"
+#include "Quadrilateral_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Triangle.hpp b/src/bem3d/src/boundary_mesh/face/Triangle.hpp
new file mode 100644 (file)
index 0000000..75ca88f
--- /dev/null
@@ -0,0 +1,60 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_HPP_GUARD_
+
+#include "../../generic/BaseTypes.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      class GenericTriangle__
+        : public TFaceBase
+      {
+        public:
+          static bool is(
+              const typename std::vector< const typename TMesh::Vertex* >
+                  vertices);
+
+          GenericTriangle__( const typename TMesh::HalfEdge& halfedge );
+          GenericTriangle__( const typename TMesh::HalfEdge& halfedge,
+                              geoid_t id );
+          double computeArea() const;
+          geoid_t getNumberOfVertices() const;
+          const typename TMesh::Vertex& getA() const;
+          const typename TMesh::Vertex& getB() const;
+          const typename TMesh::Vertex& getC() const;
+      };
+    }
+
+    template < class TMesh >
+    class Triangle
+      : public priv::GenericTriangle__< CommonFaceBase__< TMesh >, TMesh >
+    {
+      public:
+        Triangle( const typename TMesh::HalfEdge& halfedge );
+    };
+
+    template < class TMesh >
+    class RTriangle
+      : public priv::GenericTriangle__< RFace< TMesh >, TMesh >
+    {
+      typedef priv::GenericTriangle__< RFace< TMesh >, TMesh > GenericTriangle;
+
+      public:
+        RTriangle( const typename TMesh::HalfEdge& halfedge, geoid_t id );
+        virtual double computeArea() const;
+        virtual geoid_t getNumberOfVertices() const;
+        virtual dispatchId_t getDispatchId() const;
+    };
+
+    template < class TMesh >
+    class NoTriangle : public generic::NullType
+    {};
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Triangle_tmpl.cpp b/src/bem3d/src/boundary_mesh/face/Triangle_tmpl.cpp
new file mode 100644 (file)
index 0000000..9808a27
--- /dev/null
@@ -0,0 +1,106 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_TMPL_CPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_TMPL_CPP_GUARD_
+
+#include "Triangle_tmpl.hpp"
+#include "../Face.hpp"
+
+namespace boundary_mesh
+{
+  namespace face
+  {
+    namespace priv
+    {
+      template < class TFaceBase, class TMesh >
+      bool
+      GenericTriangle__< TFaceBase, TMesh >::is(
+          const typename std::vector< const typename TMesh::Vertex* > vert)
+      {
+        return vert.size() == 3;
+      }
+  
+      template < class TFaceBase, class TMesh >
+      GenericTriangle__< TFaceBase, TMesh >::GenericTriangle__(
+          const typename TMesh::HalfEdge& halfedge)
+        : TFaceBase( halfedge )
+      {}
+
+      template < class TFaceBase, class TMesh >
+      GenericTriangle__< TFaceBase, TMesh >::GenericTriangle__(
+          const typename TMesh::HalfEdge& halfedge, geoid_t id)
+        : TFaceBase( halfedge, id )
+      {}
+  
+      template < class TFaceBase, class TMesh >
+      double
+      GenericTriangle__< TFaceBase, TMesh >::computeArea() const
+      {
+        return .5 * (TMesh::Vertex::crossProduct(
+                        getC() - getA(), getB() - getA() ).norm());
+      }
+  
+      template < class TFaceBase, class TMesh >
+      geoid_t
+      GenericTriangle__< TFaceBase, TMesh >::getNumberOfVertices() const
+      {
+        return 3;
+      }
+  
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericTriangle__< TFaceBase, TMesh >::getA() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 0 );
+      }
+      
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericTriangle__< TFaceBase, TMesh >::getB() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 1 );
+      }
+      
+      template < class TFaceBase, class TMesh >
+      const typename TMesh::Vertex&
+      GenericTriangle__< TFaceBase, TMesh >::getC() const
+      {
+        return FaceVertexCache< TMesh >::Get( this, 2 );
+      }
+    }
+    
+    template < class TMesh >
+    Triangle< TMesh >::Triangle( const typename TMesh::HalfEdge& halfedge )
+      : priv::GenericTriangle__< CommonFaceBase__< TMesh >, TMesh >( halfedge )
+    {}
+
+    template < class TMesh >
+    RTriangle< TMesh >::RTriangle( const typename TMesh::HalfEdge& halfedge,
+        geoid_t id)
+      : priv::GenericTriangle__< RFace< TMesh >, TMesh >( halfedge, id )
+    {}
+
+    template < class TMesh >
+    double
+    RTriangle< TMesh >::computeArea() const
+    {
+      return GenericTriangle::computeArea();
+    }
+
+    template < class TMesh >
+    geoid_t
+    RTriangle< TMesh >::getNumberOfVertices() const
+    {
+      return GenericTriangle::getNumberOfVertices();
+    }
+
+    template < class TMesh >
+    dispatchId_t
+    RTriangle< TMesh >::getDispatchId() const
+    {
+      // TODO: Either remove this function or implement it.
+      return -1;
+    }
+  }
+}
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/face/Triangle_tmpl.hpp b/src/bem3d/src/boundary_mesh/face/Triangle_tmpl.hpp
new file mode 100644 (file)
index 0000000..545f85a
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_TMPL_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_FACE_TRIANGLE_TMPL_HPP_GUARD_
+
+#include "Triangle.hpp"
+#include "Triangle_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/boundary_mesh/generic/AbstractIteratorBase.hpp b/src/bem3d/src/boundary_mesh/generic/AbstractIteratorBase.hpp
deleted file mode 100644 (file)
index 88289ab..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef MESH_GENERIC_DATA_BASED_ITERATOR_HPP_GUARD_
-#define MESH_GENERIC_DATA_BASED_ITERATOR_HPP_GUARD_
-
-#include <iterator>
-
-namespace boundary_mesh {
-namespace generic {
-  template < class TType, class THelper >
-  class AbstractIteratorBase : public std::iterator<
-      std::input_iterator_tag, TType >
-  {
-    public:
-      AbstractIteratorBase(THelper helper);
-      AbstractIteratorBase(const AbstractIteratorBase& copy);
-      AbstractIteratorBase();
-
-      bool operator==(const AbstractIteratorBase& rhs) const;
-      bool operator!=(const AbstractIteratorBase& rhs) const;
-      AbstractIteratorBase< TType, THelper >& operator++();
-      const TType& operator*() const;
-      const TType* operator->() const;
-
-    protected:
-      THelper helper_;
-  };
-}
-}
-
-#include "AbstractIteratorBase.cpp"
-
-#endif
-
diff --git a/src/bem3d/src/boundary_mesh/generic/Marking.cpp b/src/bem3d/src/boundary_mesh/generic/Marking.cpp
deleted file mode 100644 (file)
index b133833..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "Marking.hpp"
-
-template < Face, Edge, Vertex >
-mesh::generic::Marking< Face, Edge, Vertex >::Marking(
-  Vertex& v1, Vertex& v2, Vertex& v3)
-  : Face(v1, v2, v3), marked(std::vector<bool>(32))
-{
-}
-
-template < Face, Edge, Vertex >
-void
-mesh::generic::Marking< Face, Edge, Vertex >::mark(
-  Edge& edge, int maximum_number_of_hanging_nodes)
-{
-  bool found = false;
-  unsigned int i = 0;
-  Face::EdgeIterator it = begin();
-
-  for (i = 0, it; it != end(); ++i, ++it)
-  {
-    if (&*it == edge)
-    {
-      found = true;
-      marked[i] = true;
-      break;
-    }
-  }
-
-  if (! found)
-  {
-  #if 0
-    throw exception
-  #endif
-  }
-
-  if (isTriangle())
-    marked[0] = true;
-  else if (isRectangle())
-    marked[(i+2)%4] = true;
-}
-
diff --git a/src/bem3d/src/boundary_mesh/generic/Marking.hpp b/src/bem3d/src/boundary_mesh/generic/Marking.hpp
deleted file mode 100644 (file)
index 01fc291..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef MARKING_HPP_GUARD_
-#define MARKING_HPP_GUARD_
-
-// This is an implementation of a marking algorithm that automatically closes
-// the mesh in a way that guarantees the following two conditions:
-//   1.) The marked face has not more than a certain number of hanging nodes.
-//   2.) If any edge is marked within a triangle, the longest edge is marked
-//       as well
-//   3.) If an edge is marked within a face with 4 edges, the opposite edge
-//       is marked as well.
-namespace mesh
-{
-namespace generic
-{
-  template < Face, Edge, Vertex >
-  class Marking : public Face
-  {
-    public:
-      Marking(Vertex&, Vertex&, Vertex&);
-      void mark(Edge&, int maximum_number_of_hanging_nodes = -1);
-      void unmark(Edge&, int maximum_number_of_hanging_nodes = -1);
-      bool isMarked(Edge&) const;
-      bool isMarked(unsigned int id);
-
-    private:
-      std::vector<bool> marked;
-  };
-}
-}
-
-#endif
-
diff --git a/src/bem3d/src/boundary_mesh/layer/Marker.cpp b/src/bem3d/src/boundary_mesh/layer/Marker.cpp
deleted file mode 100644 (file)
index 59a5c0c..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifdef MESH_LAYER_MARKER_CPP_GUARD_
-#error
-#else
-#define MESH_LAYER_MARKER_CPP_GUARD_
-
-#include <cassert>
-
-namespace boundary_mesh {
-namespace layer {
-
-  template < class TMesh >
-  Marker< TMesh >::Marker(const TMesh& mesh)
-    : mesh_(mesh),
-      marked_(std::vector<bool>(2 * TMesh::traits::maximumNumberOfFaceVertices *
-                                mesh.getNumberOfFaces(), false))
-  {
-  }
-
-  template < class TMesh >
-  void
-  Marker< TMesh >::mark( const typename TMesh::traits::Face& face,
-        const typename TMesh::traits::HalfEdge& edge )
-  {
-    Marker< TMesh >::mark( face, Marker< TMesh >::getEdgeId( face, edge ) );
-  }
-
-  template < class TMesh >
-  void
-  Marker< TMesh >::mark( const typename TMesh::traits::Face& face,
-        unsigned int edgeId)
-  {
-    assert( edgeId >= 0 &&
-            edgeId < TMesh::traits::maximumNumberOfFaceVertices );
-    unsigned int idx = 2 * TMesh::traits::maximumNumberOfFaceVertices *
-              mesh_.getFaceId( face ) + edgeId;
-    assert( idx >= 0 && idx < marked_.size() );
-    marked_[ idx ] = true;
-  }
-
-  template < class TMesh >
-  bool
-  Marker< TMesh >::isMarked( const typename TMesh::traits::Face& face,
-        const typename TMesh::traits::HalfEdge& edge ) const
-  {
-    return Marker< TMesh >::isMarked( face,
-                                      Marker< TMesh >::getEdgeId( face, edge ) );
-  }
-
-  template < class TMesh >
-  bool
-  Marker< TMesh >::isMarked( const typename TMesh::traits::Face& face,
-        unsigned int edgeId ) const
-  {
-    assert( edgeId >= 0 &&
-            edgeId < TMesh::traits::maximumNumberOfFaceVertices );
-    unsigned int idx = 2 * TMesh::traits::maximumNumberOfFaceVertices *
-              mesh_.getFaceId( face ) + edgeId;
-    assert( idx >= 0 && idx < marked_.size() );
-    return marked_[ idx ];
-  }
-
-  template < class TMesh >
-  unsigned int
-  Marker< TMesh >::getEdgeId( const typename TMesh::traits::Face& face,
-        const typename TMesh::traits::HalfEdge& edge ) const
-  {
-    unsigned int i = 0;
-    #ifndef NDEBUG
-    bool found = false;
-    #endif
-    for (typename TMesh::traits::Face::ConstEdgeIterator
-            edgeIt = face.begin_e(); edgeIt != face.end_e(); ++edgeIt, ++i)
-    {
-      if (&(*edgeIt) == &edge)
-      {
-        #ifndef NDEBUG
-        found = true;
-        #endif
-        break;
-      }
-    }
-    assert(found);
-    return i;
-  }
-
-  template < class TMesh >
-  void
-  Marker< TMesh >::close(unsigned int allowedNumberOfHangingNodes)
-  {
-    assert(allowedNumberOfHangingNodes <=
-              TMesh::traits::maximumNumberOfHangingNodes);
-
-    for (typename TMesh::ConstFaceIterator faceIt = mesh_.begin_f();
-            faceIt != mesh_.end_f(); ++faceIt)
-    {
-      _close( allowedNumberOfHangingNodes, *faceIt );
-    }
-  }
-
-  template < class TMesh >
-  void
-  Marker< TMesh >::_close( unsigned int allowedNumberOfHangingNodes,
-        const typename TMesh::traits::Face& face )
-  {
-    unsigned int numberOfEdges = 0;
-    bool anyMarked = false;
-    for (typename TMesh::traits::Face::ConstEdgeIterator
-            edgeIt = face.begin_e(); edgeIt != face.end_e(); ++edgeIt)
-    {
-      if (Marker< TMesh >::isMarked( face, *edgeIt ))
-      {
-        _close( allowedNumberOfHangingNodes, face, *edgeIt );
-        anyMarked = true;
-      }
-      ++numberOfEdges;
-    }
-
-    if (numberOfEdges == 3 && anyMarked &&
-          Marker< TMesh >::isMarked( face, 0 ) == false)
-    {
-      Marker< TMesh >::mark( face, 0 );
-      _close( allowedNumberOfHangingNodes, face, *(face.begin_e()) );
-    }
-    else if (numberOfEdges % 2 == 0)
-    {
-      for (unsigned int i = 0; i < numberOfEdges; ++i)
-      {
-        unsigned int opposite = (i + (numberOfEdges / 2)) % numberOfEdges;
-        if ( Marker< TMesh >::isMarked( face, i ) &&
-              not Marker< TMesh >::isMarked( face, opposite ) )
-        {
-          Marker< TMesh >::mark( face, opposite );
-          typename TMesh::traits::Face::ConstEdgeIterator edgeIt =
-            face.begin_e();
-          for (unsigned int j = 0; j < opposite; ++j)
-          {
-            ++edgeIt;
-          }
-          Marker< TMesh >::_close( allowedNumberOfHangingNodes, face, *edgeIt );
-        }
-      }
-    }
-  }
-
-  template < class TMesh >
-  void
-  Marker< TMesh >::_close(unsigned int allowedNumberOfHangingNodes,
-        const typename TMesh::traits::Face& face,
-        const typename TMesh::traits::HalfEdge& edge)
-  {
-    const typename TMesh::traits::HalfEdge* opEdge =
-      edge.getOppositeEdge();
-    if (opEdge != 0)
-    {
-      if (opEdge->getNumberOfHangingNodes() >=
-              allowedNumberOfHangingNodes &&
-          Marker< TMesh >::isMarked(opEdge->getFace(), *opEdge) == false )
-      {
-        Marker< TMesh >::mark(opEdge->getFace(), *opEdge);
-        Marker< TMesh >::_close(allowedNumberOfHangingNodes, opEdge->getFace());
-      }
-    }
-  }
-}
-}
-
-#endif
-
diff --git a/src/bem3d/src/boundary_mesh/layer/Marker.hpp b/src/bem3d/src/boundary_mesh/layer/Marker.hpp
deleted file mode 100644 (file)
index 652f178..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef MESH_LAYER_MARKER_HPP_GUARD_
-#define MESH_LAYER_MARKER_HPP_GUARD_
-
-#include <vector>
-
-namespace boundary_mesh {
-namespace layer {
-  template < class TMesh >
-  class Marker
-  {
-    public:
-      Marker(const TMesh& mesh);
-      void mark(const typename TMesh::traits::Face& face,
-            const typename TMesh::traits::HalfEdge& edge);
-      void mark(const typename TMesh::traits::Face& face,
-            unsigned int edgeId);
-      bool isMarked(const typename TMesh::traits::Face& face,
-            const typename TMesh::traits::HalfEdge& edge) const;
-      bool isMarked(const typename TMesh::traits::Face& face,
-            unsigned int edgeId) const;
-      void close(unsigned int allowedNumberOfHangingNodes = 0);
-
-    private:
-      const TMesh& mesh_;
-      std::vector<bool> marked_;
-
-      Marker();
-      unsigned int getEdgeId( const typename TMesh::traits::Face& face,
-            const typename TMesh::traits::HalfEdge& edge ) const;
-      void _close( unsigned int allowedNumberOfHangingNodes,
-            const typename TMesh::traits::Face& face);
-      void _close( unsigned int allowedNumberOfHangingNodes,
-            const typename TMesh::traits::Face& face,
-            const typename TMesh::traits::HalfEdge& edge );
-  };
-}
-}
-
-#include "Marker.cpp"
-
-#endif
-
index 9093023999d3b20810c77252fb8815042e2bb690..614e9cc2205f510cfafa37d1003e3aca2c7ec3e5 100644 (file)
@@ -35,8 +35,8 @@
 #include "HalfEdge.hpp"
 #include "Vertex.hpp"
 
-#include "mixin/LoadingObj.hpp"
-#include "mixin/ExportingObj.hpp"
+#include "LoadingObj.hpp"
+#include "ExportingObj.hpp"
 #include "mixin/Comparing.hpp"
 
 typedef boundary_mesh::mixin::LoadingObj<
diff --git a/src/bem3d/src/boundary_mesh/mixin/ExportingObj.cpp b/src/bem3d/src/boundary_mesh/mixin/ExportingObj.cpp
deleted file mode 100644 (file)
index 5743270..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifdef HILBERT3D_BOUNDARY_MESH_MIXIN_EXPORTING_OBJ_CPP_GUARD_
-#error This file must not be compiled or included directly. Include the \
-       appropiate header file instead.
-#else
-#define HILBERT3D_BOUNDARY_MESH_MIXIN_EXPORTING_OBJ_CPP_GUARD_
-
-#include "ExportingObj.hpp"
-
-#include <string>
-#include <fstream>
-
-namespace boundary_mesh {
-namespace mixin {
-  template < class TMesh >
-  void
-  ExportingObj< TMesh >::exportTo(const char* file_name) const
-  {
-    std::ofstream output_file(file_name);
-
-    for (typename TMesh::ConstVertexIterator vertex_it = TMesh::begin_v();
-            vertex_it != TMesh::end_v(); ++vertex_it)
-    {
-      const typename traits::Vertex& v = *vertex_it;
-      output_file << "v " << v[0] << " " << v[1] << " " << v[2] << std::endl;
-    }
-
-    for (typename TMesh::ConstFaceIterator face_it = TMesh::begin_f();
-            face_it != TMesh::end_f(); ++face_it)
-    {
-      const typename traits::Face& f = *face_it;
-      output_file << "f ";
-      for (typename traits::Face::ConstVertexIterator vertex_it = f.begin_v();
-              vertex_it != f.end_v(); ++vertex_it)
-      {
-        output_file << TMesh::getVertexId(*vertex_it)+1 << " ";
-      }
-      output_file << std::endl;
-    }
-  }
-
-  template < class TMesh >
-  void
-  ExportingObj< TMesh >::exportTo(std::string file_name) const
-  {
-    ExportingObj< TMesh >::exportTo(file_name.c_str());
-  }
-}
-}
-
-#endif
-
diff --git a/src/bem3d/src/boundary_mesh/mixin/ExportingObj.hpp b/src/bem3d/src/boundary_mesh/mixin/ExportingObj.hpp
deleted file mode 100644 (file)
index 3e04240..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef HILBERT3D_BOUNDARY_MESH_MIXIN_EXPORTING_OBJ_HPP_GUARD_
-#define HILBERT3D_BOUNDARY_MESH_MIXIN_EXPORTING_OBJ_HPP_GUARD_
-
-#include <string>
-
-#include "MeshMixin.hpp"
-
-namespace boundary_mesh
-{
-  namespace mixin
-  {
-    template < class TMesh >
-    class ExportingObj : public TMesh
-    {
-      HILBERT3D_MESH_MIXIN( ExportingObj, TMesh )
-
-      public:
-        void exportTo(const char* file_name) const;
-        void exportTo(std::string file_name) const;
-    };
-  }
-}
-
-#include "ExportingObj.cpp"
-
-#endif
-
diff --git a/src/bem3d/src/boundary_mesh/mixin/LoadingObj.cpp b/src/bem3d/src/boundary_mesh/mixin/LoadingObj.cpp
deleted file mode 100644 (file)
index bf77b6b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#include "LoadingObj.hpp"
-
-#include <iostream>
-#include <sstream>
-#include <fstream>
-#include <string>
-#include "../../exception.hpp"
-
-#include <boost/regex.hpp>
-
-namespace boundary_mesh {
-namespace mixin {
-
-/* Please note, that the vertex_line regex specifially checks that vertices
- * are three-dimensional. It is not sufficient to modify this constant in
- * order to switch to another dimension!
- */
-static const unsigned int vertexDimension = 3;
-
-template < class TMesh >
-LoadingObj< TMesh >::LoadingObj(const char* file_name)
-  : TMesh()
-{
-  LoadingObj< TMesh >::init(std::string(file_name));
-}
-
-template < class TMesh >
-LoadingObj< TMesh >::LoadingObj(std::string file_name)
-{
-  LoadingObj< TMesh >::init(file_name);
-}
-
-template < class TMesh >
-void
-LoadingObj< TMesh >::init(std::string fileName)
-{
-  static const boost::regex
-    vertex_line("v\\s+(-?\\d+(?:\\.\\d+)?)\\s+(-?\\d+(?:\\.\\d+)?)\\s+(-?\\d+(?:\\.\\d+)?)\\s*",
-      boost::regex::perl);
-  static const boost::regex 
-    face_line("f\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s*",
-      boost::regex::perl);
-  static const boost::regex empty_line("\\s*|\\s*\\#.*",
-      boost::regex::perl);
-
-  std::ifstream file(fileName.c_str());
-
-  if ( file.is_open() == false )
-  {
-    throw exception::FileIO(fileName, exception::FileIO::Reading);
-  }
-
-  struct TMesh::Size size_info;
-  size_info.vertices = 0;
-  size_info.faces = 0;
-  size_info.edges = 0;
-  boost::smatch what;
-  std::string line;
-
-  while ( file.good() )
-  {
-    std::getline( file, line );
-
-    if ( line[0] == 'v' )
-      size_info.vertices += 1;
-    else if ( line[0] == 'f' && boost::regex_match( line, what, face_line ) )
-    {
-      size_info.faces += 1;
-      size_info.edges += what.size();
-    }
-  }
-
-  file.clear();
-  file.seekg( 0, std::ios_base::beg );
-
-  reserve( size_info );
-
-  unsigned int line_number = 0;
-
-  while ( file.good() )
-  {
-    std::getline( file, line );
-    ++line_number;
-
-    if ( line[0] == 'v' && boost::regex_match( line, what, vertex_line ) )
-    {
-      double coordinates[vertexDimension];
-      assert(what.size() == vertexDimension+1);
-      for (unsigned int i = 0; i < vertexDimension; ++i)
-      {
-        std::istringstream istr( what[i+1] );
-        istr >> coordinates[i];
-      }
-      TMesh::addVertex(typename TMesh::traits::UnlinkedVertex(coordinates));
-    }
-    else if ( line[0] == 'f' && boost::regex_match( line, what, face_line ) )
-    {
-      unsigned int patterns_matched = what.size();
-      assert(patterns_matched > 3);
-      unsigned int vertex_id[patterns_matched-1];
-      for (unsigned int i = 1; i < patterns_matched; ++i)
-      {
-        std::istringstream istr( what[i] );
-        istr >> vertex_id[i-1];
-        vertex_id[i-1] -= 1;
-      }
-
-      TMesh::addFace(patterns_matched - 1, vertex_id);
-    }
-    else if ( boost::regex_match( line, what, empty_line ) )
-    {}
-    else
-    {
-      assert(0);
-    #if 0
-      throw new mesh::exception::syntax( file_name, line_number );
-    #endif
-    }
-  }
-
-  TMesh::build_meta_data();
-}
-
-}
-}
-
diff --git a/src/bem3d/src/boundary_mesh/mixin/LoadingObj.hpp b/src/bem3d/src/boundary_mesh/mixin/LoadingObj.hpp
deleted file mode 100644 (file)
index 2b60fa1..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef MESH_MESHLOADER_HPP_GUARD_
-#define MESH_MESHLOADER_HPP_GUARD_
-
-#include <string>
-
-#include "MeshMixin.hpp"
-
-namespace boundary_mesh {
-namespace mixin {
-  template < class TMesh >
-  class LoadingObj : public TMesh
-  {
-    HILBERT3D_MESH_MIXIN( LoadingObj, TMesh )
-
-    public:
-      LoadingObj(const char* fileName);
-      LoadingObj(std::string fileName);
-
-    private:
-      void init(std::string fileName);
-  };
-}
-}
-
-#include "LoadingObj.cpp"
-
-#endif
-
index 72a03dea64e7ef58c35768458961b0fc2b2a9cf1..1ff97a667326dd6bde83ebfafa8ee20ce5b3cd91 100644 (file)
@@ -7,7 +7,7 @@
 #include <vector>
 
 #include "RefiningAdaptivly.hpp"
-#include "../layer/Marker.hpp"
+#include "../Marker.hpp"
 #include "../layer/RefinementData.hpp"
 
 namespace boundary_mesh
diff --git a/src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.cpp b/src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.cpp
deleted file mode 100644 (file)
index d00db3f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "RefiningUniformly.hpp"
-
-#include <vector>
-
-namespace boundary_mesh
-{
-  namespace mixin
-  {
-    template < class TMesh >
-    RefiningUniformly< TMesh >
-    RefiningUniformly< TMesh >::refineUniform() const
-    {
-      typename TMesh::Size new_size;
-      new_size.vertices = TMesh::getNumberOfVertices() * 5;
-      new_size.faces = TMesh::getNumberOfFaces() * 4;
-      new_size.edges = TMesh::getNumberOfEdges() * 4;
-    
-      RefiningUniformly< TMesh > new_mesh( new_size );
-
-      std::vector< unsigned int > new_vertices;
-      new_vertices.resize( TMesh::getNumberOfEdges() );
-      for (unsigned int i = 0; i < TMesh::getNumberOfEdges(); ++i)
-      {
-        new_vertices[i] = 0;
-      }
-    
-      for (typename TMesh::ConstVertexIterator it = TMesh::begin_v();
-              it != TMesh::end_v(); ++it)
-      {
-        new_mesh.addVertex(*it);
-      }
-    
-      for (typename TMesh::ConstFaceIterator face_it = TMesh::begin_f();
-              face_it != TMesh::end_f(); ++face_it)
-      {
-        unsigned int number_of_face_edges = 0;
-        unsigned int old_ids[4];
-        unsigned int new_ids[5];
-    
-        for (typename traits::Face::ConstEdgeIterator
-                edge_it = face_it->begin_e();
-                edge_it != face_it->end_e(); ++edge_it)
-        {
-          old_ids[number_of_face_edges]
-            = TMesh::getVertexId( (*edge_it).getStartVertex() );
-          if (new_vertices[ TMesh::getEdgeId( *edge_it ) ] != 0)
-          {
-            new_ids[number_of_face_edges]
-              = new_vertices[ TMesh::getEdgeId( *edge_it ) ];
-          }
-          else
-          {
-            unsigned int id = new_mesh.addVertex(
-               0.5 * ((*edge_it).getStartVertex() + (*edge_it).getEndVertex()));
-            new_vertices[ TMesh::getEdgeId( *edge_it ) ] = id;
-            if ( ((*edge_it).getOppositeEdge()) != 0)
-            {
-              new_vertices[
-                TMesh::getEdgeId( *((*edge_it).getOppositeEdge()) ) ] = id;
-            }
-            new_ids[number_of_face_edges] = id;
-          }
-          ++number_of_face_edges;
-          assert(number_of_face_edges <= 4);
-        }
-    
-        if (number_of_face_edges == 3)
-        {
-          new_mesh.addFace(old_ids[0], new_ids[0], new_ids[2]);
-          new_mesh.addFace(new_ids[0], old_ids[1], new_ids[1]);
-          new_mesh.addFace(new_ids[0], new_ids[1], old_ids[2]);
-          new_mesh.addFace(new_ids[0], old_ids[2], new_ids[2]);
-        }
-        else if (number_of_face_edges == 4)
-        {
-          typename traits::Face::ConstVertexIterator vertex_it =
-            (*face_it).begin_v();
-          ++(++vertex_it);
-          new_ids[4] = new_mesh.addVertex(
-                0.5 * (*vertex_it + *(*face_it).begin_v()) );
-          new_mesh.addFace(old_ids[0], new_ids[0], new_ids[4], new_ids[3]);
-          new_mesh.addFace(new_ids[0], old_ids[1], new_ids[1], new_ids[4]);
-          new_mesh.addFace(new_ids[1], old_ids[2], new_ids[2], new_ids[4]);
-          new_mesh.addFace(new_ids[2], old_ids[3], new_ids[3], new_ids[4]);
-        }
-        else
-        {
-          assert(0); // XXX: Not implemented yet, traits, etc.
-        }
-      }
-
-      new_mesh.build_meta_data();
-      return new_mesh;
-    }
-  }
-}
-
diff --git a/src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.hpp b/src/bem3d/src/boundary_mesh/mixin/RefiningUniformly.hpp
deleted file mode 100644 (file)
index 5da1c88..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef MESH_LAYER_MESH_UNIFORM_REFINEMENT_HPP_GUARD_
-#define MESH_LAYER_MESH_UNIFORM_REFINEMENT_HPP_GUARD_
-
-#include "MeshMixin.hpp"
-
-namespace boundary_mesh
-{
-  namespace mixin
-  {
-    template < class TMesh >
-    class RefiningUniformly : public TMesh
-    {
-      HILBERT3D_MESH_MIXIN(RefiningUniformly, TMesh);
-
-      public:
-        RefiningUniformly< TMesh > refineUniform() const;
-    };
-  }
-}
-
-#include "RefiningUniformly.cpp"
-
-#endif
-
index 43584017772830143fbff4c7932de69efcc926ef..c654171c487225e581c3a0c3572154c951ef039a 100644 (file)
@@ -1,35 +1,22 @@
-#include "Mesh.hpp"
-#include "mixin/LoadingObj.hpp"
-#include "mixin/ExportingObj.hpp"
-#include "mixin/RefiningAdaptivly.hpp"
-#include "mixin/RefiningUniformly.hpp"
-#include "layer/Marker.hpp"
+#include "FlexibleMesh.hpp"
+
+#include <iostream>
+#include <stdexcept>
 
 using namespace boundary_mesh;
-typedef mixin::LoadingObj<
-          mixin::ExportingObj<
-          mixin::RefiningAdaptivly<
-          mixin::RefiningUniformly<
-            Mesh<> > > > >
-        ObjMesh;
 
 int main()
 {
-  ObjMesh::LoadingObj m("test.obj");
-  layer::Marker< Mesh<> > marker(m);
-  marker.mark( *(m.begin_f()), 2 );
-  marker.close(1);
-  clock_t commence, complete;
-  commence = clock();
-  ObjMesh refined = m.refineAdaptivly( marker );
-  complete = clock();
-
-  long lTime = (complete-commence);
-  std::cerr << "Time for refinement: "
-            << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
-
-  refined.exportTo("output.obj");
-
+  try
+  {
+    FlexibleMesh m = FlexibleMesh::Alg::loadFromObj( "head.obj" );
+    FlexibleMesh refined = FlexibleMesh::Alg::refineUniformly( m );
+    FlexibleMesh::Alg::saveAsObj( refined, "refined_head.obj" );
+  }
+  catch (std::runtime_error& error)
+  {
+    std::cerr << error.what();
+  }
   return 0;
 }
 
diff --git a/src/bem3d/src/boundary_mesh/testhilbertmesh b/src/bem3d/src/boundary_mesh/testhilbertmesh
new file mode 100755 (executable)
index 0000000..51b8ad8
Binary files /dev/null and b/src/bem3d/src/boundary_mesh/testhilbertmesh differ
diff --git a/src/bem3d/src/boundary_mesh/types.hpp b/src/bem3d/src/boundary_mesh/types.hpp
new file mode 100644 (file)
index 0000000..a4d96f8
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_TYPES_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_TYPES_HPP_GUARD_
+
+#include <limits>
+
+namespace boundary_mesh {
+  typedef unsigned int geoid_t;
+
+  const geoid_t geoid_t_max = std::numeric_limits< unsigned int >::max();
+}
+
+#endif
+
diff --git a/src/bem3d/src/config.h b/src/bem3d/src/config.h
new file mode 100644 (file)
index 0000000..c4f8323
--- /dev/null
@@ -0,0 +1,84 @@
+/* src/config.h.  Generated from config.h.in by configure.  */
+/* src/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to dummy `main' function (if any) required to link to the Fortran
+   libraries. */
+/* #undef F77_DUMMY_MAIN */
+
+/* Define if F77 and FC dummy `main' functions are identical. */
+/* #undef FC_DUMMY_MAIN_EQ_F77 */
+
+/* Define if you have a BLAS library. */
+#define HAVE_BLAS 1
+
+/* define if the Boost library is available */
+#define HAVE_BOOST /**/
+
+/* define if the Boost::Regex library is available */
+#define HAVE_BOOST_REGEX /**/
+
+/* Define if HLib library is available */
+#define HAVE_HLIB /**/
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if you have LAPACK library. */
+#define HAVE_LAPACK 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Name of package */
+#define PACKAGE "hilbert3d"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "markus.mayr@tuwien.ac.at"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Hilbert 3D"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Hilbert 3D 0.1.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "hilbert3d"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.1.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "0.1.0"
diff --git a/src/bem3d/src/generic/BaseTypes.hpp b/src/bem3d/src/generic/BaseTypes.hpp
new file mode 100644 (file)
index 0000000..dde4540
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef HILBERT3D_GENERIC_BASETYPES_HPP_GUARD_
+#define HILBERT3D_GENERIC_BASETYPES_HPP_GUARD_
+
+namespace generic
+{
+  struct NullType;
+
+  struct NullType
+  {
+    static const bool isNullType = true;
+  };
+
+  struct EmptyType
+  {};
+
+  template <int>
+  struct WorkAround
+  {
+    WorkAround(int) {}
+  };
+}
+
+#endif
+
index 39f7ebeba78f31ae824d70f21493df4b0ed2ac7a..a05b3e6a77c784383d19517bbd471aa5e6a44d53 100644 (file)
@@ -21,16 +21,4 @@ namespace generic {
   template <>
   const float BaseTypeTraits< float >::initialValue = 0.;
 
-#warning BADHACK
-//template < class BaseType, class Traits >
-  Vector3D< double, generic::BaseTypeTraits< double > >
-cross_product(  const Vector3D< double, generic::BaseTypeTraits< double > >& lhs,
-                const Vector3D< double, generic::BaseTypeTraits< double > >& rhs )
-{
-  return Vector3D< double, generic::BaseTypeTraits< double > >(
-      lhs[1] * rhs[2] - lhs[2] * rhs[1],
-      lhs[2] * rhs[0] - lhs[0] * rhs[2],
-      lhs[0] * rhs[1] - lhs[1] * rhs[0]);
-}
-
 }
index c280ac76c7dce96a3e3f2ee62aff1db2f0f844bb..e758b49c332211abd786b5f0dd9b89cd24451d73 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef HILBERT3D_GENERIC_GENERIC_VECTOR_HPP_GUARD_
 #define HILBERT3D_GENERIC_GENERIC_VECTOR_HPP_GUARD_
 
+#include <ostream>
+
 namespace generic {
   static const unsigned int genericVectorDefaultDim = 3;
 
@@ -44,7 +46,7 @@ namespace generic {
       BaseType
       norm() const;
 
-      static const unsigned int getDimension();
+      static unsigned int getDimension();
 
     private:
       BaseType coeff[DIM];
@@ -58,17 +60,10 @@ namespace generic {
       Vector3D(BaseType x, BaseType y, BaseType z);
       Vector3D(const BaseType coeff[3]);
       Vector3D(const GenericVector<3, BaseType, Traits >& copy);
+
+      static Vector3D crossProduct( const Vector3D& lhs, const Vector3D& rhs );
   };
 
-#warning BADHACK
-/*  template < class BaseType, class Traits >
-  Vector3D< BaseType, Traits >
-  cross_product( const Vector3D< BaseType, Traits >& lhs,
-                  const Vector3D< BaseType, Traits >& rhs );
-*/
-  Vector3D< double, BaseTypeTraits< double > >
-    cross_product( const Vector3D< double, BaseTypeTraits< double > >& lhs,
-                    const Vector3D< double, BaseTypeTraits< double > >& rhs);
   template< unsigned int DIM, class BaseType, class Traits>
   bool
   operator==(const GenericVector< DIM, BaseType, Traits >&,
@@ -105,6 +100,11 @@ namespace generic {
   template< unsigned int DIM, class BaseType, class Traits >
   const GenericVector< DIM, BaseType, Traits >
   operator*(const BaseType, const GenericVector< DIM, BaseType, Traits >&);
+
+  template < unsigned int DIM, class BaseType, class Traits >
+  std::ostream&
+  operator<<( std::ostream& out,
+              const GenericVector< DIM, BaseType, Traits >& rhs);
 }
 
 #include "GenericVector_tmpl.cpp"
index a4b42039a7ee647ffdf5ec40c5ef5f89b4d5a050..13d5fa3f3cc1a5068b2d154fc0292c31e0c7a427 100644 (file)
@@ -35,7 +35,7 @@ const BaseType &
 GenericVector< DIM, BaseType, Traits >::operator[](unsigned int coord)
 const
 {
-  assert(coord >= 0 && coord < DIM);
+  assert(coord < DIM);
   return coeff[coord];
 }
 
@@ -43,7 +43,7 @@ template < unsigned int DIM, class BaseType, class Traits >
 BaseType &
 GenericVector< DIM, BaseType, Traits >::operator[](unsigned int coord)
 {
-  assert(coord >= 0 && coord < DIM);
+  assert(coord < DIM);
   return coeff[coord];
 }
 
@@ -140,7 +140,7 @@ GenericVector< DIM, BaseType, Traits >::norm() const
 }
 
 template < unsigned int DIM, class BaseType, class Traits >
-const unsigned int
+unsigned int
 GenericVector< DIM, BaseType, Traits >::getDimension()
 {
   return DIM;
@@ -170,6 +170,18 @@ Vector3D< BaseType, Traits >::Vector3D(const GenericVector<3, BaseType, Traits >
   : GenericVector<3, BaseType, Traits>( copy )
 {}
 
+template < class BaseType, class Traits >
+Vector3D< BaseType, Traits >
+Vector3D< BaseType, Traits >::crossProduct(
+      const Vector3D< BaseType, Traits >& lhs,
+      const Vector3D< BaseType, Traits >& rhs )
+{
+  return Vector3D< BaseType, Traits >(
+      lhs[1] * rhs[2] - lhs[2] * rhs[1],
+      lhs[2] * rhs[0] - lhs[0] * rhs[2],
+      lhs[0] * rhs[1] - lhs[1] * rhs[0]);
+}
+
 template < unsigned int DIM, class BaseType, class Traits >
 bool
 operator==(
@@ -265,6 +277,18 @@ operator*(
   return result;
 }
 
+template < unsigned int DIM, class BaseType, class Traits >
+std::ostream&
+operator<<( std::ostream& out,
+            const GenericVector< DIM, BaseType, Traits >& rhs)
+{
+  out << "[ ";
+  for (unsigned int i = 0; i < DIM-1; ++i)
+    out << rhs[i] << ",  ";
+  out << rhs[DIM-1] << " ]";
+  return out;
+}
+
 }
 
 #endif
diff --git a/src/bem3d/src/generic/Singleton.hpp b/src/bem3d/src/generic/Singleton.hpp
new file mode 100644 (file)
index 0000000..af6634a
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef HILBERT3D_BOUNDARY_MESH_GENERIC_SINGLETON_HPP_GUARD_
+#define HILBERT3D_BOUNDARY_MESH_GENERIC_SINGLETON_HPP_GUARD_
+
+namespace generic
+{
+  template < class T >
+  class Singleton
+  {
+    public:
+      static T& Get();
+
+    protected:
+      Singleton();
+
+    private:
+      Singleton( const Singleton& );
+  };
+}
+
+#include "Singleton_tmpl.cpp"
+
+#endif
+
diff --git a/src/bem3d/src/generic/Singleton_tmpl.cpp b/src/bem3d/src/generic/Singleton_tmpl.cpp
new file mode 100644 (file)
index 0000000..6aaed9c
--- /dev/null
@@ -0,0 +1,17 @@
+#include "Singleton.hpp"
+
+namespace generic
+{
+  template < class T >
+  T& Singleton< T >::Get()
+  {
+    static T singleton;
+    return singleton;
+  }
+
+  template < class T >
+  Singleton< T >::Singleton()
+  {
+  }
+}
+
diff --git a/src/bem3d/src/generic/TypeList.hpp b/src/bem3d/src/generic/TypeList.hpp
new file mode 100644 (file)
index 0000000..dea6fa0
--- /dev/null
@@ -0,0 +1,80 @@
+#ifndef HILBERT3D_GENERIC_TYPELIST_HPP_GUARD_
+#define HILBERT3D_GENERIC_TYPELIST_HPP_GUARD_
+
+/**
+ * TODO: Lizensierung klarstellen.
+ * Remark: This module is strongly based on Modern C++ Design by Andrei
+ *         Alexandrescu and the Loki library. This is clearly derived work. As
+ *         a result, full copyright belongs to Andrei Alexandrescu.
+ */
+
+#include "BaseTypes.hpp"
+
+namespace generic
+{
+  template < class THead, class TTail >
+  struct TypeList
+  {
+    typedef THead Head;
+    typedef TTail Tail;
+  };
+
+  namespace typelist
+  {
+    template < class TList > struct Length;
+
+    template <> struct Length< NullType >
+    {
+      enum { value = 0 };
+    };
+
+    template < class THead, class TTail >
+    struct Length< TypeList< THead, TTail > >
+    {
+      enum { value = 1 + Length< TTail >::value };
+    };
+
+    template < class TList, class T > struct IndexOf;
+
+    template < class T >
+    struct IndexOf< NullType, T >
+    {
+      enum { value = -1 };
+    };
+
+    template < class T, class TTail >
+    struct IndexOf< TypeList< T, TTail >, T >
+    {
+      enum { value = 0 };
+    };
+
+    template < class THead, class TTail, class T >
+    struct IndexOf< TypeList< THead, TTail >, T >
+    {
+      private:
+        enum { temp = IndexOf< TTail, T >::value };
+      public:
+        enum { value = ( temp == -1 ? -1 : 1 + temp ) };
+    };
+  }
+}
+
+#define HILBERT3D_TYPELIST_1(T1) \
+  ::generic::TypeList< T1, ::generic::NullType >
+#define HILBERT3D_TYPELIST_2(T1, T2) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_1(T2) >
+#define HILBERT3D_TYPELIST_3(T1, T2, T3) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_2(T2,T3) >
+#define HILBERT3D_TYPELIST_4(T1, T2, T3, T4) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_3(T2,T3,T4) >
+#define HILBERT3D_TYPELIST_5(T1, T2, T3, T4, T5) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_4(T2,T3,T4,T5) >
+#define HILBERT3D_TYPELIST_6(T1, T2, T3, T4, T5, T6) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_5(T2,T3,T4,T5,T6) >
+#define HILBERT3D_TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_6(T2,T3,T4,T5,T6,T7) >
+#define HILBERT3D_TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) \
+  ::generic::TypeList< T1, HILBERT3D_TYPELIST_7(T2,T3,T4,T5,T6,T7,T8) >
+
+#endif
+
index 44cd76096260b15439007ffc3a7f73e13286859c..d08d2a4befa5d3ead2ffc31965d883c47dbb506c 100644 (file)
@@ -1,9 +1,9 @@
 #ifndef HILBERT3D_HILBERT_HPP_GUARD_
 #define HILBERT3D_HILBERT_HPP_GUARD_
 
-#include "boundary_mesh/Mesh.hpp"
+#include "boundary_mesh/FlexibleMesh.hpp"
 
-typedef boundary_mesh::Mesh<> BoundaryMesh;
+typedef boundary_mesh::FlexibleMesh BoundaryMesh;
 
 #include "spaces/P0Space.hpp" // MK: warum muss dieses include nach dem typedefine in zeile 6 stehen?? sonst gehts nämlich nicht...
 #endif
diff --git a/src/bem3d/src/laplace/.deps/testLaplace-GenericVector.Po b/src/bem3d/src/laplace/.deps/testLaplace-GenericVector.Po
new file mode 100644 (file)
index 0000000..1f1a525
--- /dev/null
@@ -0,0 +1,294 @@
+testLaplace-GenericVector.o: ../generic/GenericVector.cpp \
+ ../generic/GenericVector.hpp /usr/include/c++/4.5/ostream \
+ /usr/include/c++/4.5/ios /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/exception \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/cctype \
+ /usr/include/ctype.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/locale_classes.h /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc ../generic/GenericVector_tmpl.cpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ /usr/include/c++/4.5/cmath /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.5/bits/cmath.tcc
+
+../generic/GenericVector.hpp:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+../generic/GenericVector_tmpl.cpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
diff --git a/src/bem3d/src/laplace/.deps/testLaplace-HLibOperator.Po b/src/bem3d/src/laplace/.deps/testLaplace-HLibOperator.Po
new file mode 100644 (file)
index 0000000..f7a5243
--- /dev/null
@@ -0,0 +1,260 @@
+testLaplace-HLibOperator.o: ../HLibOperator.cpp ../HLibOperator_fwd.hpp \
+ /usr/include/c++/4.5/vector /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/basic.h ../../src/config.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/bits/stdlib.h \
+ /usr/local/include/HLib/clusterbasis.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/include/assert.h /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/local/include/HLib/blockcluster.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h \
+ /usr/local/include/HLib/uniformmatrix.h \
+ /usr/local/include/HLib/supermatrix.h /usr/local/include/HLib/krylov.h \
+ /usr/local/include/HLib/factorisations.h \
+ /usr/local/include/HLib/graphics.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/surfacebem.h /usr/local/include/HLib/bem3d.h \
+ /usr/local/include/HLib/h2virtual.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/quadrature2d.h \
+ /usr/local/include/HLib/rkmatrix.h
+
+../HLibOperator_fwd.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/include/assert.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/krylov.h:
+
+/usr/local/include/HLib/factorisations.h:
+
+/usr/local/include/HLib/graphics.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/surfacebem.h:
+
+/usr/local/include/HLib/bem3d.h:
+
+/usr/local/include/HLib/h2virtual.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/quadrature2d.h:
+
+/usr/local/include/HLib/rkmatrix.h:
diff --git a/src/bem3d/src/laplace/.deps/testLaplace-SimpleLayerPotential.Po b/src/bem3d/src/laplace/.deps/testLaplace-SimpleLayerPotential.Po
new file mode 100644 (file)
index 0000000..aeedc5c
--- /dev/null
@@ -0,0 +1,1430 @@
+testLaplace-SimpleLayerPotential.o: SimpleLayerPotential.cpp \
+ SimpleLayerPotential.hpp ../hilbert.hpp \
+ ../boundary_mesh/FlexibleMesh.hpp ../boundary_mesh/FaceDispatch.hpp \
+ /usr/include/c++/4.5/vector /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/Singleton_tmpl.cpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/TypeList.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ ../boundary_mesh/FaceDispatch_tmpl.cpp \
+ ../boundary_mesh/exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ ../boundary_mesh/Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h ../boundary_mesh/types.hpp \
+ /usr/include/c++/4.5/limits ../boundary_mesh/exception.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/Face_tmpl.cpp /usr/include/c++/4.5/sstream \
+ /usr/include/c++/4.5/bits/sstream.tcc ../boundary_mesh/HalfEdge.hpp \
+ ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/../generic/GenericVector_tmpl.cpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp \
+ ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp ../boundary_mesh/Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp \
+ /usr/include/c++/4.5/cstring /usr/include/string.h \
+ /usr/include/bits/string3.h ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/Triangle.hpp \
+ ../boundary_mesh/face/../../generic/BaseTypes.hpp \
+ ../boundary_mesh/face/Triangle_tmpl.cpp \
+ ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/../Face.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/face/Parallelogram.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral.hpp \
+ ../boundary_mesh/face/Quadrilateral.hpp \
+ ../boundary_mesh/face/../types.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/algorithm/HandleObj.hpp \
+ ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+ /usr/include/c++/4.5/fstream /usr/include/c++/4.5/bits/codecvt.h \
+ /usr/include/c++/4.5/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp \
+ ../boundary_mesh/algorithm/../MeshBuilder.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/algorithm/../types.hpp \
+ ../boundary_mesh/algorithm/../FaceDispatch.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/FlexibleMesh_tmpl.cpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../spaces/P0Space.hpp ../spaces/../hilbert.hpp \
+ /usr/local/include/HLib/sparsematrix.h /usr/local/include/HLib/basic.h \
+ ../../src/config.h /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/local/include/HLib/blockcluster.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/clusterbasis.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/uniformmatrix.h \
+ ../boundary_mesh/FaceDispatch.hpp ../HLibOperator.hpp \
+ ../HLibOperator_fwd.hpp /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/supermatrix.h /usr/local/include/HLib/krylov.h \
+ /usr/local/include/HLib/factorisations.h \
+ /usr/local/include/HLib/graphics.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/surfacebem.h /usr/local/include/HLib/bem3d.h \
+ /usr/local/include/HLib/h2virtual.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/quadrature2d.h ../HLibOperator_tmpl.cpp \
+ ../spaces/P0Space.hpp TriangleIntegrator.hpp
+
+SimpleLayerPotential.hpp:
+
+../hilbert.hpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/Singleton_tmpl.cpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/TypeList.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+../boundary_mesh/FaceDispatch_tmpl.cpp:
+
+../boundary_mesh/exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+../boundary_mesh/Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+../boundary_mesh/types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+../boundary_mesh/exception.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+../boundary_mesh/HalfEdge.hpp:
+
+../boundary_mesh/HalfEdge_tmpl.cpp:
+
+../boundary_mesh/Vertex.hpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/../generic/GenericVector_tmpl.cpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/Vertex_tmpl.cpp:
+
+../boundary_mesh/Mesh.hpp:
+
+../boundary_mesh/MeshBuilder.hpp:
+
+../boundary_mesh/MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+../boundary_mesh/Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/Triangle.hpp:
+
+../boundary_mesh/face/../../generic/BaseTypes.hpp:
+
+../boundary_mesh/face/Triangle_tmpl.cpp:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/../Face.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/face/Parallelogram.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral.hpp:
+
+../boundary_mesh/face/Quadrilateral.hpp:
+
+../boundary_mesh/face/../types.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/algorithm/HandleObj.hpp:
+
+../boundary_mesh/algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+../boundary_mesh/algorithm/../MeshBuilder.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/algorithm/../types.hpp:
+
+../boundary_mesh/algorithm/../FaceDispatch.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/FlexibleMesh_tmpl.cpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+../spaces/../hilbert.hpp:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+../HLibOperator.hpp:
+
+../HLibOperator_fwd.hpp:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/krylov.h:
+
+/usr/local/include/HLib/factorisations.h:
+
+/usr/local/include/HLib/graphics.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/surfacebem.h:
+
+/usr/local/include/HLib/bem3d.h:
+
+/usr/local/include/HLib/h2virtual.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/quadrature2d.h:
+
+../HLibOperator_tmpl.cpp:
+
+../spaces/P0Space.hpp:
+
+TriangleIntegrator.hpp:
diff --git a/src/bem3d/src/laplace/.deps/testLaplace-TriangleIntegrator.Po b/src/bem3d/src/laplace/.deps/testLaplace-TriangleIntegrator.Po
new file mode 100644 (file)
index 0000000..b738a2d
--- /dev/null
@@ -0,0 +1,1387 @@
+testLaplace-TriangleIntegrator.o: TriangleIntegrator.cpp \
+ TriangleIntegrator.hpp /usr/include/c++/4.5/vector \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc ../hilbert.hpp \
+ ../boundary_mesh/FlexibleMesh.hpp ../boundary_mesh/FaceDispatch.hpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/Singleton_tmpl.cpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/TypeList.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ ../boundary_mesh/FaceDispatch_tmpl.cpp \
+ ../boundary_mesh/exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ ../boundary_mesh/Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h ../boundary_mesh/types.hpp \
+ /usr/include/c++/4.5/limits ../boundary_mesh/exception.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/Face_tmpl.cpp /usr/include/c++/4.5/sstream \
+ /usr/include/c++/4.5/bits/sstream.tcc ../boundary_mesh/HalfEdge.hpp \
+ ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/../generic/GenericVector_tmpl.cpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp \
+ ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp ../boundary_mesh/Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp \
+ /usr/include/c++/4.5/cstring /usr/include/string.h \
+ /usr/include/bits/string3.h ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/Triangle.hpp \
+ ../boundary_mesh/face/../../generic/BaseTypes.hpp \
+ ../boundary_mesh/face/Triangle_tmpl.cpp \
+ ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/../Face.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/face/Parallelogram.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral.hpp \
+ ../boundary_mesh/face/Quadrilateral.hpp \
+ ../boundary_mesh/face/../types.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/algorithm/HandleObj.hpp \
+ ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+ /usr/include/c++/4.5/fstream /usr/include/c++/4.5/bits/codecvt.h \
+ /usr/include/c++/4.5/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp \
+ ../boundary_mesh/algorithm/../MeshBuilder.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/algorithm/../types.hpp \
+ ../boundary_mesh/algorithm/../FaceDispatch.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/FlexibleMesh_tmpl.cpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../spaces/P0Space.hpp ../spaces/../hilbert.hpp \
+ /usr/local/include/HLib/sparsematrix.h /usr/local/include/HLib/basic.h \
+ ../../src/config.h /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/local/include/HLib/blockcluster.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/clusterbasis.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/uniformmatrix.h
+
+TriangleIntegrator.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../hilbert.hpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/Singleton_tmpl.cpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/TypeList.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+../boundary_mesh/FaceDispatch_tmpl.cpp:
+
+../boundary_mesh/exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+../boundary_mesh/Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+../boundary_mesh/types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+../boundary_mesh/exception.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+../boundary_mesh/HalfEdge.hpp:
+
+../boundary_mesh/HalfEdge_tmpl.cpp:
+
+../boundary_mesh/Vertex.hpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/../generic/GenericVector_tmpl.cpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/Vertex_tmpl.cpp:
+
+../boundary_mesh/Mesh.hpp:
+
+../boundary_mesh/MeshBuilder.hpp:
+
+../boundary_mesh/MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+../boundary_mesh/Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/Triangle.hpp:
+
+../boundary_mesh/face/../../generic/BaseTypes.hpp:
+
+../boundary_mesh/face/Triangle_tmpl.cpp:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/../Face.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/face/Parallelogram.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral.hpp:
+
+../boundary_mesh/face/Quadrilateral.hpp:
+
+../boundary_mesh/face/../types.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/algorithm/HandleObj.hpp:
+
+../boundary_mesh/algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+../boundary_mesh/algorithm/../MeshBuilder.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/algorithm/../types.hpp:
+
+../boundary_mesh/algorithm/../FaceDispatch.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/FlexibleMesh_tmpl.cpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+../spaces/../hilbert.hpp:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
diff --git a/src/bem3d/src/laplace/.deps/testLaplace-t.Po b/src/bem3d/src/laplace/.deps/testLaplace-t.Po
new file mode 100644 (file)
index 0000000..330d857
--- /dev/null
@@ -0,0 +1,1430 @@
+testLaplace-t.o: t.cpp ../hilbert.hpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../boundary_mesh/FaceDispatch.hpp /usr/include/c++/4.5/vector \
+ /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/Singleton_tmpl.cpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/TypeList.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ ../boundary_mesh/FaceDispatch_tmpl.cpp \
+ ../boundary_mesh/exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ ../boundary_mesh/Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h ../boundary_mesh/types.hpp \
+ /usr/include/c++/4.5/limits ../boundary_mesh/exception.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/Face_tmpl.cpp /usr/include/c++/4.5/sstream \
+ /usr/include/c++/4.5/bits/sstream.tcc ../boundary_mesh/HalfEdge.hpp \
+ ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/../generic/GenericVector_tmpl.cpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp \
+ ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp ../boundary_mesh/Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp \
+ /usr/include/c++/4.5/cstring /usr/include/string.h \
+ /usr/include/bits/string3.h ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/Triangle.hpp \
+ ../boundary_mesh/face/../../generic/BaseTypes.hpp \
+ ../boundary_mesh/face/Triangle_tmpl.cpp \
+ ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/../Face.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/face/Parallelogram.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral.hpp \
+ ../boundary_mesh/face/Quadrilateral.hpp \
+ ../boundary_mesh/face/../types.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/algorithm/HandleObj.hpp \
+ ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+ /usr/include/c++/4.5/fstream /usr/include/c++/4.5/bits/codecvt.h \
+ /usr/include/c++/4.5/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp \
+ ../boundary_mesh/algorithm/../MeshBuilder.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/algorithm/../types.hpp \
+ ../boundary_mesh/algorithm/../FaceDispatch.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/FlexibleMesh_tmpl.cpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../spaces/P0Space.hpp ../spaces/../hilbert.hpp \
+ /usr/local/include/HLib/sparsematrix.h /usr/local/include/HLib/basic.h \
+ ../../src/config.h /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/local/include/HLib/blockcluster.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/clusterbasis.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/uniformmatrix.h \
+ ../boundary_mesh/FlexibleMesh.hpp ../spaces/P0Space.hpp \
+ SimpleLayerPotential.hpp ../boundary_mesh/FaceDispatch.hpp \
+ ../HLibOperator.hpp ../HLibOperator_fwd.hpp \
+ /usr/local/include/HLib/cluster.h /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/krylov.h \
+ /usr/local/include/HLib/factorisations.h \
+ /usr/local/include/HLib/graphics.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/surfacebem.h /usr/local/include/HLib/bem3d.h \
+ /usr/local/include/HLib/h2virtual.h /usr/local/include/HLib/aca.h \
+ /usr/local/include/HLib/quadrature2d.h ../HLibOperator_tmpl.cpp
+
+../hilbert.hpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/Singleton_tmpl.cpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/TypeList.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+../boundary_mesh/FaceDispatch_tmpl.cpp:
+
+../boundary_mesh/exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+../boundary_mesh/Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+../boundary_mesh/types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+../boundary_mesh/exception.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+../boundary_mesh/HalfEdge.hpp:
+
+../boundary_mesh/HalfEdge_tmpl.cpp:
+
+../boundary_mesh/Vertex.hpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/../generic/GenericVector_tmpl.cpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/Vertex_tmpl.cpp:
+
+../boundary_mesh/Mesh.hpp:
+
+../boundary_mesh/MeshBuilder.hpp:
+
+../boundary_mesh/MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+../boundary_mesh/Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/Triangle.hpp:
+
+../boundary_mesh/face/../../generic/BaseTypes.hpp:
+
+../boundary_mesh/face/Triangle_tmpl.cpp:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/../Face.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/face/Parallelogram.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral.hpp:
+
+../boundary_mesh/face/Quadrilateral.hpp:
+
+../boundary_mesh/face/../types.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/algorithm/HandleObj.hpp:
+
+../boundary_mesh/algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+../boundary_mesh/algorithm/../MeshBuilder.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/algorithm/../types.hpp:
+
+../boundary_mesh/algorithm/../FaceDispatch.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/FlexibleMesh_tmpl.cpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+../spaces/../hilbert.hpp:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+SimpleLayerPotential.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+../HLibOperator.hpp:
+
+../HLibOperator_fwd.hpp:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/krylov.h:
+
+/usr/local/include/HLib/factorisations.h:
+
+/usr/local/include/HLib/graphics.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/surfacebem.h:
+
+/usr/local/include/HLib/bem3d.h:
+
+/usr/local/include/HLib/h2virtual.h:
+
+/usr/local/include/HLib/aca.h:
+
+/usr/local/include/HLib/quadrature2d.h:
+
+../HLibOperator_tmpl.cpp:
diff --git a/src/bem3d/src/laplace/Makefile b/src/bem3d/src/laplace/Makefile
new file mode 100644 (file)
index 0000000..4ebbb2c
--- /dev/null
@@ -0,0 +1,640 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# src/laplace/Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+
+
+pkgdatadir = $(datadir)/hilbert3d
+pkgincludedir = $(includedir)/hilbert3d
+pkglibdir = $(libdir)/hilbert3d
+pkglibexecdir = $(libexecdir)/hilbert3d
+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 = :
+bin_PROGRAMS = testLaplace$(EXEEXT)
+subdir = src/laplace
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(testLaplace_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(testLaplacedir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_testLaplace_OBJECTS = testLaplace-t.$(OBJEXT) \
+       testLaplace-SimpleLayerPotential.$(OBJEXT) \
+       testLaplace-TriangleIntegrator.$(OBJEXT) \
+       testLaplace-HLibOperator.$(OBJEXT) \
+       testLaplace-GenericVector.$(OBJEXT)
+testLaplace_OBJECTS = $(am_testLaplace_OBJECTS)
+am__DEPENDENCIES_1 =
+testLaplace_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       ../boundary_mesh/libhilbert-mesh.a \
+       ../spaces/libhilbert-spaces.a $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/src
+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)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
+SOURCES = $(testLaplace_SOURCES)
+DIST_SOURCES = $(testLaplace_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'
+HEADERS = $(testLaplace_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar
+AUTOCONF = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11
+AWK = mawk
+BLAS_LIBS = -lblas
+BOOST_CPPFLAGS = -I/usr/include
+BOOST_LDFLAGS = -L/usr/lib
+BOOST_REGEX_LIB = -lboost_regex-mt
+BOOST_ROOT_PATH = /usr
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN_PAPER_SIZE = 
+DX_CONFIG = Doxyfile
+DX_DOCDIR = docs/doxygen
+DX_DOT = 
+DX_DOXYGEN = 
+DX_DVIPS = 
+DX_EGREP = 
+DX_ENV =  SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'
+DX_FLAG_chi = 0
+DX_FLAG_chm = 0
+DX_FLAG_doc = 0
+DX_FLAG_dot = 0
+DX_FLAG_html = 0
+DX_FLAG_man = 0
+DX_FLAG_pdf = 0
+DX_FLAG_ps = 0
+DX_FLAG_rtf = 0
+DX_FLAG_xml = 0
+DX_HHC = 
+DX_LATEX = 
+DX_MAKEINDEX = 
+DX_PDFLATEX = 
+DX_PERL = /usr/bin/perl
+DX_PROJECT = Hilbert 3D
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FFLAGS = -g -O2
+FLIBS =  -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
+GREP = /bin/grep
+HLIB_CPPFLAGS = -I/usr/local/include
+HLIB_LDFLAGS = -L/usr/local/lib
+HLIB_LIB = -lhmatrix
+HLIB_ROOT_PATH = /usr/local
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LAPACK_LIBS = -llapack
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = hilbert3d
+PACKAGE_BUGREPORT = markus.mayr@tuwien.ac.at
+PACKAGE_NAME = Hilbert 3D
+PACKAGE_STRING = Hilbert 3D 0.1.0
+PACKAGE_TARNAME = hilbert3d
+PACKAGE_URL = http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git
+PACKAGE_VERSION = 0.1.0
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = 
+VERSION = 0.1.0
+abs_builddir = /home/treecity/workspace/bacc/src/bem3d/src/laplace
+abs_srcdir = /home/treecity/workspace/bacc/src/bem3d/src/laplace
+abs_top_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_srcdir = /home/treecity/workspace/bacc/src/bem3d
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+testLaplacedir = .
+testLaplace_SOURCES = t.cpp SimpleLayerPotential.cpp TriangleIntegrator.cpp \
+  ../HLibOperator.cpp ../generic/GenericVector.cpp
+
+#  ../boundary_mesh/exception/NoMatchingFaceType.cpp \
+#  ../boundary_mesh/exception/DispatchIdNotSet.cpp
+testLaplace_HEADERS = \
+  SimpleLayerPotential.hpp TriangleIntegrator.hpp ../HLibOperator.hpp \
+  ../boundary_mesh/Face.hpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/Vertex.hpp \
+  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
+  ../boundary_mesh/FaceDispatch.hpp ../boundary_mesh/FaceDispatch_tmpl.cpp \
+  ../spaces/P0Space.hpp
+
+testLaplace_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a ../spaces/libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
+testLaplace_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .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 src/laplace/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/laplace/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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+testLaplace$(EXEEXT): $(testLaplace_OBJECTS) $(testLaplace_DEPENDENCIES) 
+       @rm -f testLaplace$(EXEEXT)
+       $(CXXLINK) $(testLaplace_OBJECTS) $(testLaplace_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+include ./$(DEPDIR)/testLaplace-GenericVector.Po
+include ./$(DEPDIR)/testLaplace-HLibOperator.Po
+include ./$(DEPDIR)/testLaplace-SimpleLayerPotential.Po
+include ./$(DEPDIR)/testLaplace-TriangleIntegrator.Po
+include ./$(DEPDIR)/testLaplace-t.Po
+
+.cpp.o:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+testLaplace-t.o: t.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-t.o -MD -MP -MF $(DEPDIR)/testLaplace-t.Tpo -c -o testLaplace-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+       $(am__mv) $(DEPDIR)/testLaplace-t.Tpo $(DEPDIR)/testLaplace-t.Po
+#      source='t.cpp' object='testLaplace-t.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+
+testLaplace-t.obj: t.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-t.obj -MD -MP -MF $(DEPDIR)/testLaplace-t.Tpo -c -o testLaplace-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testLaplace-t.Tpo $(DEPDIR)/testLaplace-t.Po
+#      source='t.cpp' object='testLaplace-t.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+
+testLaplace-SimpleLayerPotential.o: SimpleLayerPotential.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-SimpleLayerPotential.o -MD -MP -MF $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo -c -o testLaplace-SimpleLayerPotential.o `test -f 'SimpleLayerPotential.cpp' || echo '$(srcdir)/'`SimpleLayerPotential.cpp
+       $(am__mv) $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo $(DEPDIR)/testLaplace-SimpleLayerPotential.Po
+#      source='SimpleLayerPotential.cpp' object='testLaplace-SimpleLayerPotential.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-SimpleLayerPotential.o `test -f 'SimpleLayerPotential.cpp' || echo '$(srcdir)/'`SimpleLayerPotential.cpp
+
+testLaplace-SimpleLayerPotential.obj: SimpleLayerPotential.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-SimpleLayerPotential.obj -MD -MP -MF $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo -c -o testLaplace-SimpleLayerPotential.obj `if test -f 'SimpleLayerPotential.cpp'; then $(CYGPATH_W) 'SimpleLayerPotential.cpp'; else $(CYGPATH_W) '$(srcdir)/SimpleLayerPotential.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo $(DEPDIR)/testLaplace-SimpleLayerPotential.Po
+#      source='SimpleLayerPotential.cpp' object='testLaplace-SimpleLayerPotential.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-SimpleLayerPotential.obj `if test -f 'SimpleLayerPotential.cpp'; then $(CYGPATH_W) 'SimpleLayerPotential.cpp'; else $(CYGPATH_W) '$(srcdir)/SimpleLayerPotential.cpp'; fi`
+
+testLaplace-TriangleIntegrator.o: TriangleIntegrator.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-TriangleIntegrator.o -MD -MP -MF $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo -c -o testLaplace-TriangleIntegrator.o `test -f 'TriangleIntegrator.cpp' || echo '$(srcdir)/'`TriangleIntegrator.cpp
+       $(am__mv) $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo $(DEPDIR)/testLaplace-TriangleIntegrator.Po
+#      source='TriangleIntegrator.cpp' object='testLaplace-TriangleIntegrator.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-TriangleIntegrator.o `test -f 'TriangleIntegrator.cpp' || echo '$(srcdir)/'`TriangleIntegrator.cpp
+
+testLaplace-TriangleIntegrator.obj: TriangleIntegrator.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-TriangleIntegrator.obj -MD -MP -MF $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo -c -o testLaplace-TriangleIntegrator.obj `if test -f 'TriangleIntegrator.cpp'; then $(CYGPATH_W) 'TriangleIntegrator.cpp'; else $(CYGPATH_W) '$(srcdir)/TriangleIntegrator.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo $(DEPDIR)/testLaplace-TriangleIntegrator.Po
+#      source='TriangleIntegrator.cpp' object='testLaplace-TriangleIntegrator.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-TriangleIntegrator.obj `if test -f 'TriangleIntegrator.cpp'; then $(CYGPATH_W) 'TriangleIntegrator.cpp'; else $(CYGPATH_W) '$(srcdir)/TriangleIntegrator.cpp'; fi`
+
+testLaplace-HLibOperator.o: ../HLibOperator.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-HLibOperator.o -MD -MP -MF $(DEPDIR)/testLaplace-HLibOperator.Tpo -c -o testLaplace-HLibOperator.o `test -f '../HLibOperator.cpp' || echo '$(srcdir)/'`../HLibOperator.cpp
+       $(am__mv) $(DEPDIR)/testLaplace-HLibOperator.Tpo $(DEPDIR)/testLaplace-HLibOperator.Po
+#      source='../HLibOperator.cpp' object='testLaplace-HLibOperator.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-HLibOperator.o `test -f '../HLibOperator.cpp' || echo '$(srcdir)/'`../HLibOperator.cpp
+
+testLaplace-HLibOperator.obj: ../HLibOperator.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-HLibOperator.obj -MD -MP -MF $(DEPDIR)/testLaplace-HLibOperator.Tpo -c -o testLaplace-HLibOperator.obj `if test -f '../HLibOperator.cpp'; then $(CYGPATH_W) '../HLibOperator.cpp'; else $(CYGPATH_W) '$(srcdir)/../HLibOperator.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testLaplace-HLibOperator.Tpo $(DEPDIR)/testLaplace-HLibOperator.Po
+#      source='../HLibOperator.cpp' object='testLaplace-HLibOperator.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-HLibOperator.obj `if test -f '../HLibOperator.cpp'; then $(CYGPATH_W) '../HLibOperator.cpp'; else $(CYGPATH_W) '$(srcdir)/../HLibOperator.cpp'; fi`
+
+testLaplace-GenericVector.o: ../generic/GenericVector.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-GenericVector.o -MD -MP -MF $(DEPDIR)/testLaplace-GenericVector.Tpo -c -o testLaplace-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+       $(am__mv) $(DEPDIR)/testLaplace-GenericVector.Tpo $(DEPDIR)/testLaplace-GenericVector.Po
+#      source='../generic/GenericVector.cpp' object='testLaplace-GenericVector.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+
+testLaplace-GenericVector.obj: ../generic/GenericVector.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-GenericVector.obj -MD -MP -MF $(DEPDIR)/testLaplace-GenericVector.Tpo -c -o testLaplace-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testLaplace-GenericVector.Tpo $(DEPDIR)/testLaplace-GenericVector.Po
+#      source='../generic/GenericVector.cpp' object='testLaplace-GenericVector.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+install-testLaplaceHEADERS: $(testLaplace_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(testLaplacedir)" || $(MKDIR_P) "$(DESTDIR)$(testLaplacedir)"
+       @list='$(testLaplace_HEADERS)'; test -n "$(testLaplacedir)" || 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)$(testLaplacedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(testLaplacedir)" || exit $$?; \
+       done
+
+uninstall-testLaplaceHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(testLaplace_HEADERS)'; test -n "$(testLaplacedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(testLaplacedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(testLaplacedir)" && 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 $(PROGRAMS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(testLaplacedir)"; 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-binPROGRAMS clean-generic 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-testLaplaceHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+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
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-testLaplaceHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-binPROGRAMS \
+       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 \
+       install-testLaplaceHEADERS installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
+       uninstall-testLaplaceHEADERS
+
+
+# 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:
index 32b8e151c9666398a9fffbe44b1ff69ba9f32f01..8341f54d2db1e7b97aea0d9906ca6058b1191e3b 100644 (file)
@@ -1,25 +1,16 @@
-lib_LIBRARIES = libhilbert-laplace.a
 bin_PROGRAMS = testLaplace
 
-libhilbert_laplace_adir = .
-libhilbert_laplace_a_HEADERS =\
-  SimpleLayerPotential.hpp TriangleIntegrator.hpp
-libhilbert_laplace_a_SOURCES = \
-  SimpleLayerPotential.cpp TriangleIntegrator.cpp
-libhilbert_laplace_a_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
-
 testLaplacedir = .
-testLaplace_SOURCES = t.cpp
+testLaplace_SOURCES = t.cpp SimpleLayerPotential.cpp TriangleIntegrator.cpp \
+  ../HLibOperator.cpp ../generic/GenericVector.cpp
+#  ../boundary_mesh/exception/NoMatchingFaceType.cpp \
+#  ../boundary_mesh/exception/DispatchIdNotSet.cpp
 testLaplace_HEADERS = \
+  SimpleLayerPotential.hpp TriangleIntegrator.hpp ../HLibOperator.hpp \
   ../boundary_mesh/Face.hpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/Vertex.hpp \
   ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  ../boundary_mesh/mixin/ExportingObj.hpp ../boundary_mesh/mixin/ExportingObj.cpp \
-  ../boundary_mesh/mixin/LoadingObj.hpp ../boundary_mesh/mixin/LoadingObj.cpp \
-  ../boundary_mesh/layer/Marker.hpp ../boundary_mesh/layer/Marker.cpp ../boundary_mesh/mixin/MeshMixin.hpp \
-  ../boundary_mesh/mixin/RefiningAdaptivly.hpp ../boundary_mesh/mixin/RefiningAdaptivly.cpp \
-  ../boundary_mesh/mixin/RefiningUniformly.hpp ../boundary_mesh/mixin/RefiningUniformly.cpp \
-  ../spaces/P0Space.hpp ../spaces/P0Space.cpp \
-  SimpleLayerPotential.hpp
-testLaplace_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a ../spaces/libhilbert-spaces.a libhilbert-laplace.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
+  ../boundary_mesh/FaceDispatch.hpp ../boundary_mesh/FaceDispatch_tmpl.cpp \
+  ../spaces/P0Space.hpp
+testLaplace_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a ../spaces/libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
 testLaplace_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
 
diff --git a/src/bem3d/src/laplace/Makefile.in b/src/bem3d/src/laplace/Makefile.in
new file mode 100644 (file)
index 0000000..41158f7
--- /dev/null
@@ -0,0 +1,640 @@
+# 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@
+
+
+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 = :
+bin_PROGRAMS = testLaplace$(EXEEXT)
+subdir = src/laplace
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(testLaplace_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(testLaplacedir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_testLaplace_OBJECTS = testLaplace-t.$(OBJEXT) \
+       testLaplace-SimpleLayerPotential.$(OBJEXT) \
+       testLaplace-TriangleIntegrator.$(OBJEXT) \
+       testLaplace-HLibOperator.$(OBJEXT) \
+       testLaplace-GenericVector.$(OBJEXT)
+testLaplace_OBJECTS = $(am_testLaplace_OBJECTS)
+am__DEPENDENCIES_1 =
+testLaplace_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       ../boundary_mesh/libhilbert-mesh.a \
+       ../spaces/libhilbert-spaces.a $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
+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)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
+SOURCES = $(testLaplace_SOURCES)
+DIST_SOURCES = $(testLaplace_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'
+HEADERS = $(testLaplace_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BLAS_LIBS = @BLAS_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_REGEX_LIB = @BOOST_REGEX_LIB@
+BOOST_ROOT_PATH = @BOOST_ROOT_PATH@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@
+DX_CONFIG = @DX_CONFIG@
+DX_DOCDIR = @DX_DOCDIR@
+DX_DOT = @DX_DOT@
+DX_DOXYGEN = @DX_DOXYGEN@
+DX_DVIPS = @DX_DVIPS@
+DX_EGREP = @DX_EGREP@
+DX_ENV = @DX_ENV@
+DX_FLAG_chi = @DX_FLAG_chi@
+DX_FLAG_chm = @DX_FLAG_chm@
+DX_FLAG_doc = @DX_FLAG_doc@
+DX_FLAG_dot = @DX_FLAG_dot@
+DX_FLAG_html = @DX_FLAG_html@
+DX_FLAG_man = @DX_FLAG_man@
+DX_FLAG_pdf = @DX_FLAG_pdf@
+DX_FLAG_ps = @DX_FLAG_ps@
+DX_FLAG_rtf = @DX_FLAG_rtf@
+DX_FLAG_xml = @DX_FLAG_xml@
+DX_HHC = @DX_HHC@
+DX_LATEX = @DX_LATEX@
+DX_MAKEINDEX = @DX_MAKEINDEX@
+DX_PDFLATEX = @DX_PDFLATEX@
+DX_PERL = @DX_PERL@
+DX_PROJECT = @DX_PROJECT@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FLIBS = @FLIBS@
+GREP = @GREP@
+HLIB_CPPFLAGS = @HLIB_CPPFLAGS@
+HLIB_LDFLAGS = @HLIB_LDFLAGS@
+HLIB_LIB = @HLIB_LIB@
+HLIB_ROOT_PATH = @HLIB_ROOT_PATH@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LAPACK_LIBS = @LAPACK_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+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_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+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@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+testLaplacedir = .
+testLaplace_SOURCES = t.cpp SimpleLayerPotential.cpp TriangleIntegrator.cpp \
+  ../HLibOperator.cpp ../generic/GenericVector.cpp
+
+#  ../boundary_mesh/exception/NoMatchingFaceType.cpp \
+#  ../boundary_mesh/exception/DispatchIdNotSet.cpp
+testLaplace_HEADERS = \
+  SimpleLayerPotential.hpp TriangleIntegrator.hpp ../HLibOperator.hpp \
+  ../boundary_mesh/Face.hpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/Vertex.hpp \
+  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
+  ../boundary_mesh/FaceDispatch.hpp ../boundary_mesh/FaceDispatch_tmpl.cpp \
+  ../spaces/P0Space.hpp
+
+testLaplace_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a ../spaces/libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
+testLaplace_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .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 src/laplace/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/laplace/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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+testLaplace$(EXEEXT): $(testLaplace_OBJECTS) $(testLaplace_DEPENDENCIES) 
+       @rm -f testLaplace$(EXEEXT)
+       $(CXXLINK) $(testLaplace_OBJECTS) $(testLaplace_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testLaplace-GenericVector.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testLaplace-HLibOperator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testLaplace-SimpleLayerPotential.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testLaplace-TriangleIntegrator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testLaplace-t.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) '$<'`
+
+testLaplace-t.o: t.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-t.o -MD -MP -MF $(DEPDIR)/testLaplace-t.Tpo -c -o testLaplace-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-t.Tpo $(DEPDIR)/testLaplace-t.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='t.cpp' object='testLaplace-t.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+
+testLaplace-t.obj: t.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-t.obj -MD -MP -MF $(DEPDIR)/testLaplace-t.Tpo -c -o testLaplace-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-t.Tpo $(DEPDIR)/testLaplace-t.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='t.cpp' object='testLaplace-t.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+
+testLaplace-SimpleLayerPotential.o: SimpleLayerPotential.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-SimpleLayerPotential.o -MD -MP -MF $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo -c -o testLaplace-SimpleLayerPotential.o `test -f 'SimpleLayerPotential.cpp' || echo '$(srcdir)/'`SimpleLayerPotential.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo $(DEPDIR)/testLaplace-SimpleLayerPotential.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='SimpleLayerPotential.cpp' object='testLaplace-SimpleLayerPotential.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-SimpleLayerPotential.o `test -f 'SimpleLayerPotential.cpp' || echo '$(srcdir)/'`SimpleLayerPotential.cpp
+
+testLaplace-SimpleLayerPotential.obj: SimpleLayerPotential.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-SimpleLayerPotential.obj -MD -MP -MF $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo -c -o testLaplace-SimpleLayerPotential.obj `if test -f 'SimpleLayerPotential.cpp'; then $(CYGPATH_W) 'SimpleLayerPotential.cpp'; else $(CYGPATH_W) '$(srcdir)/SimpleLayerPotential.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-SimpleLayerPotential.Tpo $(DEPDIR)/testLaplace-SimpleLayerPotential.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='SimpleLayerPotential.cpp' object='testLaplace-SimpleLayerPotential.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-SimpleLayerPotential.obj `if test -f 'SimpleLayerPotential.cpp'; then $(CYGPATH_W) 'SimpleLayerPotential.cpp'; else $(CYGPATH_W) '$(srcdir)/SimpleLayerPotential.cpp'; fi`
+
+testLaplace-TriangleIntegrator.o: TriangleIntegrator.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-TriangleIntegrator.o -MD -MP -MF $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo -c -o testLaplace-TriangleIntegrator.o `test -f 'TriangleIntegrator.cpp' || echo '$(srcdir)/'`TriangleIntegrator.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo $(DEPDIR)/testLaplace-TriangleIntegrator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='TriangleIntegrator.cpp' object='testLaplace-TriangleIntegrator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-TriangleIntegrator.o `test -f 'TriangleIntegrator.cpp' || echo '$(srcdir)/'`TriangleIntegrator.cpp
+
+testLaplace-TriangleIntegrator.obj: TriangleIntegrator.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-TriangleIntegrator.obj -MD -MP -MF $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo -c -o testLaplace-TriangleIntegrator.obj `if test -f 'TriangleIntegrator.cpp'; then $(CYGPATH_W) 'TriangleIntegrator.cpp'; else $(CYGPATH_W) '$(srcdir)/TriangleIntegrator.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-TriangleIntegrator.Tpo $(DEPDIR)/testLaplace-TriangleIntegrator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='TriangleIntegrator.cpp' object='testLaplace-TriangleIntegrator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-TriangleIntegrator.obj `if test -f 'TriangleIntegrator.cpp'; then $(CYGPATH_W) 'TriangleIntegrator.cpp'; else $(CYGPATH_W) '$(srcdir)/TriangleIntegrator.cpp'; fi`
+
+testLaplace-HLibOperator.o: ../HLibOperator.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-HLibOperator.o -MD -MP -MF $(DEPDIR)/testLaplace-HLibOperator.Tpo -c -o testLaplace-HLibOperator.o `test -f '../HLibOperator.cpp' || echo '$(srcdir)/'`../HLibOperator.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-HLibOperator.Tpo $(DEPDIR)/testLaplace-HLibOperator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../HLibOperator.cpp' object='testLaplace-HLibOperator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-HLibOperator.o `test -f '../HLibOperator.cpp' || echo '$(srcdir)/'`../HLibOperator.cpp
+
+testLaplace-HLibOperator.obj: ../HLibOperator.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-HLibOperator.obj -MD -MP -MF $(DEPDIR)/testLaplace-HLibOperator.Tpo -c -o testLaplace-HLibOperator.obj `if test -f '../HLibOperator.cpp'; then $(CYGPATH_W) '../HLibOperator.cpp'; else $(CYGPATH_W) '$(srcdir)/../HLibOperator.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-HLibOperator.Tpo $(DEPDIR)/testLaplace-HLibOperator.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../HLibOperator.cpp' object='testLaplace-HLibOperator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-HLibOperator.obj `if test -f '../HLibOperator.cpp'; then $(CYGPATH_W) '../HLibOperator.cpp'; else $(CYGPATH_W) '$(srcdir)/../HLibOperator.cpp'; fi`
+
+testLaplace-GenericVector.o: ../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-GenericVector.o -MD -MP -MF $(DEPDIR)/testLaplace-GenericVector.Tpo -c -o testLaplace-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-GenericVector.Tpo $(DEPDIR)/testLaplace-GenericVector.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='testLaplace-GenericVector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-GenericVector.o `test -f '../generic/GenericVector.cpp' || echo '$(srcdir)/'`../generic/GenericVector.cpp
+
+testLaplace-GenericVector.obj: ../generic/GenericVector.cpp
+@am__fastdepCXX_TRUE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testLaplace-GenericVector.obj -MD -MP -MF $(DEPDIR)/testLaplace-GenericVector.Tpo -c -o testLaplace-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/testLaplace-GenericVector.Tpo $(DEPDIR)/testLaplace-GenericVector.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='../generic/GenericVector.cpp' object='testLaplace-GenericVector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testLaplace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testLaplace-GenericVector.obj `if test -f '../generic/GenericVector.cpp'; then $(CYGPATH_W) '../generic/GenericVector.cpp'; else $(CYGPATH_W) '$(srcdir)/../generic/GenericVector.cpp'; fi`
+install-testLaplaceHEADERS: $(testLaplace_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(testLaplacedir)" || $(MKDIR_P) "$(DESTDIR)$(testLaplacedir)"
+       @list='$(testLaplace_HEADERS)'; test -n "$(testLaplacedir)" || 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)$(testLaplacedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(testLaplacedir)" || exit $$?; \
+       done
+
+uninstall-testLaplaceHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(testLaplace_HEADERS)'; test -n "$(testLaplacedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(testLaplacedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(testLaplacedir)" && 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 $(PROGRAMS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(testLaplacedir)"; 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-binPROGRAMS clean-generic 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-testLaplaceHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+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
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-testLaplaceHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-binPROGRAMS \
+       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 \
+       install-testLaplaceHEADERS installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
+       uninstall-testLaplaceHEADERS
+
+
+# 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:
diff --git a/src/bem3d/src/laplace/SLPrecangle.cpp b/src/bem3d/src/laplace/SLPrecangle.cpp
new file mode 100644 (file)
index 0000000..18f174b
--- /dev/null
@@ -0,0 +1,357 @@
+#include <iostream>\r
+#include <cmath>\r
+#include <cassert>\r
+#include <stdlib.h>\r
+\r
+#include "SLPrecangle.hpp"\r
+\r
+#define my_PI 3.141592653589793\r
+#define EPS 0.02\r
+\r
+using namespace std;\r
+\r
+int sign(double);\r
+double arsinh(double);\r
+\r
+// sol = quadInt((F_par/F_ort),s1,s2,k1,k2,t1,t2,l1,l2,d1,d2,d3);\r
+double quadInt(\r
+               double(*)(double, double, double, double, double, double, double),\r
+               double, double, double, double, double, double, double, double, double,\r
+               double, double);\r
+\r
+void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {\r
+       //sicherheitsabfragen zu Datengroessen\r
+       if (nrhs != 2)\r
+               mexErrMsgTxt("expected (coordinates(Nx3),elements(Mx3))");\r
+       if (nlhs > 1)\r
+               mexErrMsgTxt("has only one output argument");\r
+\r
+       int cm = mxGetM(prhs[0]);\r
+       int cn = mxGetN(prhs[0]);\r
+\r
+       if (cn != 3)\r
+               mexErrMsgTxt("expected coordinates (Nx3)");\r
+       int em = mxGetM(prhs[1]);\r
+       int en = mxGetN(prhs[1]);\r
+       if (en != 3)\r
+               mexErrMsgTxt("expected elements (Mx3)");\r
+       //Vorbereitung der Daten\r
+\r
+       plhs[0] = mxCreateDoubleMatrix(em, em, mxREAL);\r
+       double * A = mxGetPr(plhs[0]);\r
+       double * C = mxGetPr(prhs[0]);\r
+       double * E = mxGetPr(prhs[1]);\r
+\r
+       double * x1 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * x2 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * x3 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * xn = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+\r
+       double * y1 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * y2 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * y3 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * yn = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+\r
+       double * d = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+\r
+       double tmp;\r
+\r
+       int rx, ry;\r
+\r
+       //Ausrechnen\r
+       for (int j = 0; j < em; ++j) {\r
+               x1[0] = C[(int) E[j] - 1];\r
+               x1[1] = C[cm + (int) E[j] - 1];\r
+               x1[2] = C[2 * cm + (int) E[j] - 1];\r
+\r
+               x2[0] = C[(int) E[em + j] - 1];\r
+               x2[1] = C[cm + (int) E[em + j] - 1];\r
+               x2[2] = C[2 * cm + (int) E[em + j] - 1];\r
+\r
+               x3[0] = C[(int) E[2 * em + j] - 1];\r
+               x3[1] = C[cm + (int) E[2 * em + j] - 1];\r
+               x3[2] = C[2 * cm + (int) E[2 * em + j] - 1];\r
+\r
+               xn[0] = (x2[1] - x1[1]) * (x3[2] - x1[2]) - (x2[2] - x1[2]) * (x3[1]\r
+                               - x1[1]);\r
+               xn[1] = (x2[2] - x1[2]) * (x3[0] - x1[0]) - (x2[0] - x1[0]) * (x3[2]\r
+                               - x1[2]);\r
+               xn[2] = (x2[0] - x1[0]) * (x3[1] - x1[1]) - (x2[1] - x1[1]) * (x3[0]\r
+                               - x1[0]);\r
+\r
+               //if(xn[0]*xn[0]+xn[1]*xn[1]<xn[2]*xn[2])\r
+               if (xn[2] != 0)\r
+                       rx = 2;\r
+               else if (xn[1] != 0)\r
+                       rx = 1;\r
+               else\r
+                       rx = 0;\r
+\r
+               // printf("(%d n- %f | %f | %f)\n",j,xn[0],xn[1],xn[2]);\r
+\r
+               for (int k = 0; k < em; ++k) {\r
+                       y1[0] = C[(int) E[k] - 1];\r
+                       y1[1] = C[cm + (int) E[k] - 1];\r
+                       y1[2] = C[2 * cm + (int) E[k] - 1];\r
+\r
+                       y2[0] = C[(int) E[em + k] - 1];\r
+                       y2[1] = C[cm + (int) E[em + k] - 1];\r
+                       y2[2] = C[2 * cm + (int) E[em + k] - 1];\r
+\r
+                       y3[0] = C[(int) E[2 * em + k] - 1];\r
+                       y3[1] = C[cm + (int) E[2 * em + k] - 1];\r
+                       y3[2] = C[2 * cm + (int) E[2 * em + k] - 1];\r
+\r
+                       yn[0] = (y2[1] - y1[1]) * (y3[2] - y1[2]) - (y2[2] - y1[2])\r
+                                       * (y3[1] - y1[1]);\r
+                       yn[1] = (y2[2] - y1[2]) * (y3[0] - y1[0]) - (y2[0] - y1[0])\r
+                                       * (y3[2] - y1[2]);\r
+                       yn[2] = (y2[0] - y1[0]) * (y3[1] - y1[1]) - (y2[1] - y1[1])\r
+                                       * (y3[0] - y1[0]);\r
+\r
+                       if (yn[2] != 0)\r
+                               ry = 2;\r
+                       else if (yn[1] != 0)\r
+                               ry = 1;\r
+                       else\r
+                               ry = 0;\r
+\r
+                       d[0] = y1[0] - x1[0];\r
+                       d[1] = y1[1] - x1[1];\r
+                       d[2] = y1[2] - x1[2];\r
+\r
+                       if (rx = ry) {\r
+                               if (rx = 2) {\r
+                                       //printf("%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n",j,k,x1[0],x1[1],x2[0],x3[1],y1[0],y1[1],y2[0],y3[1],d[0],d[1],d[2]);\r
+                                       //printf("%d%d %.1f %.1f %.1f\n",j,k,d[0],d[1],d[2]);\r
+                                       tmp = quadInt(FLO_plane, x1[0], x1[1], x2[0], x3[1], y1[0],\r
+                                                       y1[1], y2[0], y3[1], d[0], d[1], d[2]);\r
+                                       //       printf("%d%d|%.2f\n",j,k,tmp);\r
+                                       A[(k * em) + j] = 1. / (4 * my_PI) * tmp;\r
+\r
+                               } else\r
+                                       A[(k * em) + j] = 0;\r
+                       } else {\r
+                               A[(k * em) + j] = 0;\r
+                       }\r
+\r
+                       // Vorbereiten der DATEN\r
+                       //   ej = coordinates(elements(j,:)',:);\r
+                       //   ek = coordinates(elements(k,:)',:);\r
+                       //   d = ek(1,:) - ej(1,:);\r
+\r
+                       // AUSRECHNEN\r
+                       //     A[(k*em)+j] = 1./(4*my_PI);// *\r
+                       // quadInt(F_par,\r
+                       //   ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));\r
+\r
+               }\r
+\r
+       }\r
+       //Rueckgabe (eventuell zurueck schreiben)\r
+       //   mxFree(x1);\r
+       //mxFree(x2);\r
+       //mxFree(x3);\r
+       //mxFree(y1);\r
+       //mxFree(y2);\r
+       //mxFree(y3);\r
+       //mxFree(xn);\r
+       //mxFree(yn);\r
+       //mxFree(d);\r
+\r
+       return;\r
+}\r
+\r
+int inline sign(double x) {\r
+       return x > 0 ? 1 : (x < 0 ? -1 : 0);\r
+}\r
+\r
+double inline arsinh(double x) {\r
+       return log(x + sqrt(x * x + 1));\r
+}\r
+\r
+//y-x muss != 0 sein\r
+double g0(double p, double y, double x, double l) {\r
+       //printf("%.1f | %.1f | %.1f | %.1f +",p,x,y,l);\r
+\r
+       double sol = 0;\r
+\r
+       if (l != 0) {\r
+               if (p == 0.5) {\r
+                       sol = (y - x) / 2 * sqrt((y - x) * (y - x) + l * l) + l * l / 2\r
+                                       * arsinh((y - x) / fabs(l));\r
+                       //          printf("%.2f |",sol);\r
+               } else if (p == 0)\r
+                       sol = y - x;\r
+               else if (p == -0.5)\r
+                       sol = asinh((y - x) / fabs(l));\r
+               else if (p == -1)\r
+                       sol = atan((y - x) / fabs(l));\r
+               else if (p == -1.5)\r
+                       sol = (y - x) / ((l * l) * sqrt((y - x) * (y - x) + l * l));\r
+               else\r
+                       sol = (y - x) * pow((y - x) * (y - x) + l * l, p) + 2 * p * l * l\r
+                                       * g0(p - 1, y, x, l) / (2 * p + 1);\r
+       } else {\r
+               if (p == -0.5)\r
+                       sol = sign(y - x) * log(fabs(y - x));\r
+               else\r
+                       sol = (y - x) * pow(fabs(y - x), 2 * p) / (2 * p + 1);\r
+       }\r
+\r
+       return sol;\r
+}\r
+\r
+double G00(double p, double y1, double y2, double x1, double x2, double l) {\r
+       //      printf("%.1f | %.1f %.1f | %.1f %.1f | %.1f +",p,x1,x2,y1,y2,l);\r
+\r
+       double sol = 0;\r
+       if (p == -1.5) {\r
+               if (l == 0) {\r
+                       sol = -sqrt((y1 - x1) * (y1 - x1) + (y2 - x2) * (y2 - x2)) / ((y1\r
+                                       - x1) * (y2 - x2));\r
+               } else {\r
+                       sol = sign((y1 - x1) * (y2 - x2)) / (2 * fabs(l)) * acos(\r
+                                       -2 * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2) / (((y1\r
+                                                       - x1) * (y1 - x1) + l * l) * ((y2 - x2) * (y2 - x2)\r
+                                                       + l * l)) + 1);\r
+               }\r
+\r
+       } else if (p == -0.5) {\r
+               if (l != 0)\r
+                       sol = 2 * p * l * l * G00(p - 1, y1, y2, x1, x2, l);\r
+               if ((y1 - x1) != 0)\r
+                       sol += (y1 - x1) * g0(p, y2, x2,\r
+                                       sqrt((y1 - x1) * (y1 - x1) + l * l));\r
+               if ((y2 - x2) != 0)\r
+                       sol += (y2 - x2) * g0(p, y1, x1,\r
+                                       sqrt((y2 - x2) * (y2 - x2) + l * l));\r
+               sol /= 2 * p + 2;\r
+       } else {\r
+               mexErrMsgTxt("no case for p defined");\r
+       }\r
+\r
+       return sol;\r
+}\r
+\r
+double F_par(double x1, double x2, double y1, double y2, double d1, double d2,\r
+               double d3) {\r
+\r
+       //       printf("%.1f %.1f | %.1f %.1f | %.1f %.1f %.1f",x1,x2,y1,y2,d1,d2,d3);\r
+       double sol = (x1 - y1 - d1) * (x2 - y2 - d2);\r
+\r
+       if (sol != 0)\r
+               sol *= slpADLO(x1, x2, y1 + d1, y2 + d2, d3);\r
+\r
+       if ((x1 - y1 - d1) != 0)\r
+               sol -= (x1 - y1 - d1) * compute_g0(0.5, x1, y1 + d1,\r
+                               sqrt((x2 - y2 - d2) * (x2 - y2 - d2) + d3 * d3));\r
+\r
+       if ((x2 - y2 - d2) != 0)\r
+               sol -= (x2 - y2 - d2) * compute_g0(0.5, x2, y2 + d2,\r
+                               sqrt((x1 - y1 - d1) * (x1 - y1 - d1) + d3 * d3));\r
+\r
+       double hlp = ((x1 - y1 - d1) * (x1 - y1 - d1) + (x2 - y2 - d2) * (x2 - y2\r
+                       - d2) + d3 * d3);\r
+       sol += 1. / 3 * hlp * sqrt(hlp);\r
+       return sol;\r
+}\r
+\r
+double inline quadInt(\r
+               double(*f)(double, double, double, double, double, double, double),\r
+               double s1, double s2, double k1, double k2, double t1, double t2,\r
+               double l1, double l2, double d1, double d2, double d3) {\r
+\r
+       return f(k1, k2, l1, l2, d1, d2, d3) - f(k1, k2, l1, t2, d1, d2, d3) - f(\r
+                       k1, k2, t1, l2, d1, d2, d3) + f(k1, k2, t1, t2, d1, d2, d3) - f(k1,\r
+                       s2, l1, l2, d1, d2, d3) + f(k1, s2, l1, t2, d1, d2, d3) + f(k1, s2,\r
+                       t1, l2, d1, d2, d3) - f(k1, s2, t1, t2, d1, d2, d3) - f(s1, k2, l1,\r
+                       l2, d1, d2, d3) + f(s1, k2, l1, t2, d1, d2, d3) + f(s1, k2, t1, l2,\r
+                       d1, d2, d3) - f(s1, l2, t1, t2, d1, d2, d3) + f(s1, s2, l1, l2, d1,\r
+                       d2, d3) - f(s1, 0, l1, t2, d1, d2, d3) - f(s1, s2, t1, l2, d1, d2,\r
+                       d3) + f(s1, s2, t1, t2, d1, d2, d3);\r
+}\r
+\r
+double slpADLO(double y1, double y2, double x1, double x2, double a) {\r
+       double G3 = 0;\r
+       double gL = 0;\r
+       double gK = 0;\r
+       double tmp;\r
+\r
+       tmp = y1 - x1;\r
+       if (fabs(tmp) >= EPS * y1) {\r
+               tmp = sqrt(y1 * y1 + x1 * x1 + a * a - 2 * y1 * x1);\r
+               gL = compute_g0(-0.5, y2, x2, tmp);\r
+       }\r
+       tmp = y2 - x2;\r
+       if (fabs(tmp) >= EPS * y2) {\r
+               tmp = sqrt(y2 * y2 + x2 * x2 + a * a - 2 * y2 * x2);\r
+               gK = compute_g0(-0.5, y1, x1, tmp);\r
+       }\r
+       if (fabs(a * a) > EPS) {\r
+               if ((y1 - x1) * (y2 - x2) * a >= 0)\r
+                       tmp = 1.;\r
+               else\r
+                       tmp = -1.;\r
+\r
+               G3 = tmp * acos(\r
+                               (-2. * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2)) / (((y1\r
+                                               - x1) * (y1 - x1) + a * a) * ((y2 - x2) * (y2 - x2) + a\r
+                                               * a)) + 1.) / (2. * a);\r
+       }\r
+\r
+       return (y1 - x1) * gL + (y2 - x2) * gK - a * a * G3;\r
+}\r
+\r
+double compute_g0(double p, double y, double x, double a) {\r
+       int sp = (int) 2 * (p - EPS); // MK (p-EPS) instead of (p+EPS)\r
+       //printf("\n compute_g0, p = %lf, sp = %d\n",p,sp);\r
+       assert(\r
+                       p == 0 || (p == -0.5) || (p == -1) || (p == -1.5) || (fabs(a)\r
+                                       <= EPS));\r
+       if (fabs(a) <= EPS) {\r
+               // printf("\n a < eps\n");\r
+               switch (sp) {\r
+               case 0:\r
+                       return y - x;\r
+               case -1:\r
+                       return log(fabs(x - y)) * (y - x) / fabs(y - x);\r
+               case -2:\r
+                       return -(y - x) / fabs(y - x) / fabs(y - x);\r
+               case -3:\r
+                       return -0.5 * (y - x) / fabs(y - x) / fabs(y - x) / fabs(y - x);\r
+               }\r
+       } else {\r
+               //  printf("\n a > eps\n");\r
+               switch (sp) {\r
+               case 0:\r
+                       return y - x;\r
+               case -1:\r
+                       return asinh((y - x) / fabs(a));\r
+               case -2:\r
+                       return atan((y - x) / fabs(a));\r
+               case -3:\r
+                       return (y - x) * pow((x * x + y * y + a * a - 2 * x * y), -0.5)\r
+                                       / (a * a);\r
+               default:\r
+                       printf("p must be either 0, -1/2, -1 or -3/2.");\r
+                       return NAN;\r
+               }\r
+       }\r
+}\r
+\r
+double FLO_plane(double x1, double x2, double y1, double y2, double delta1,\r
+               double delta2, double a) {\r
+       double yd1 = y1 + delta1;\r
+       double yd2 = y2 + delta2;\r
+       double tmp1 = x1 - y1 - delta1;\r
+       double tmp2 = x2 - y2 - delta2;\r
+       double tmp3 = sqrt(tmp2 * tmp2 + a * a);\r
+       double tmp4 = sqrt(tmp1 * tmp1 + a * a);\r
+       double tmp5 = pow(tmp1 * tmp1 + tmp2 * tmp2 + a * a, 3. / 2.);\r
+       double rval = 0;\r
+\r
+       rval = tmp1 * tmp2 * slpADLO(x1, x2, yd1, yd2, a) - tmp1 * compute_g0(-0.5,\r
+                       x1, yd1, tmp3) - tmp2 * compute_g0(-0.5, x2, yd2, tmp4) + tmp5 / 3.;\r
+       return rval;\r
+}\r
diff --git a/src/bem3d/src/laplace/SLPrecangle.hpp b/src/bem3d/src/laplace/SLPrecangle.hpp
new file mode 100644 (file)
index 0000000..6f80150
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef HILBERT3D_LAPLACE_SLPRECTANGLE_HPP_GUARD_
+#define HILBERT3D_LAPLACE_SLPRECTANGLE_HPP_GUARD_
+
+int sign(double);
+double arsinh(double);
+
+// sol = g0(p,y,x,l);
+double g0(double, double, double, double);
+// sol = G00(p,y1,y2,x1,x2,l);
+double G00(double, double, double, double, double, double);
+// sol = F_par(x1,x2,y1,y2,d1,d2,d3);
+double F_par(double, double, double, double, double, double, double);
+// sol = F_ort(x1,x2,y1,y2,d1,d2,d3);
+//double F_ort(double, double, double, double, double, double, double);
+
+
+double slpADLO(double, double, double, double, double);
+double compute_g0(double, double, double, double);
+double FLO_plane(double, double, double, double, double, double, double);
+
+#endif
index d400eb24cf7bddfdebf57adf309873d4fa0e3377..c5e299a139463b2f59eb32db3d3b0e151e18829e 100644 (file)
 #include "../spaces/P0Space.hpp"
 #include "TriangleIntegrator.hpp"
 
+#include "SLPrecangle.hpp"
+
 #include <fstream>
 
 using namespace laplace;
 
-SimpleLayerPotential::SimpleLayerPotential(const space::P0Space &space)
-  : s_(space), hlibSupermatrix_(0), rowClusterTree_(0), colClusterTree_(0)
+SimpleLayerPotential::SimpleLayerPotential(const space::P0Space& space)
+  : HLibOperator< space::P0Space, space::P0Space, SymmetricMatrix >(
+        space, space, SimpleLayerPotential::computeEntry)
 {
-  unsigned int numberOfElements = space.getNumberOfElements();
-  init_rkmatrices(0);
-  clusterfactory* factory = space.createClusterFactory();
-  rowClusterTree_ = colClusterTree_ =
-     create_clustertree(factory, HLIB_GEOMETRIC, 30, numberOfElements * numberOfElements);
-
-//  print_cluster(colClusterTree_->root,colClusterTree_->idx2dof,0);
-  del_clusterfactory(factory);
-
-//  hlibSupermatrix_ = build_supermatrix_from_cluster(
-//                          rowClusterTree_->root, colClusterTree_->root,
-//                          1, 30, HLIB_MINADM);
-
-  hlibSupermatrix_ = build_full_supermatrix(
-                          rowClusterTree_->root, colClusterTree_->root);
-
-  print_supermatrix("SLP.ps",hlibSupermatrix_);
-  std::cerr << "hlibSupermatrix: " << hlibSupermatrix_->rows << " x " << hlibSupermatrix_->cols << " (rows x cols), "
-    << hlibSupermatrix_->block_rows << " x " << hlibSupermatrix_->block_cols << " (blockrows x blockcols)" << std::endl;
-
-  fill_supermatrix_aca(
-      hlibSupermatrix_,
-      rowClusterTree_->root, colClusterTree_->root,
-      (void*) this,
-      SimpleLayerPotential::slp_compute_matrix_entry,1e-5);
-
 }
 
 SimpleLayerPotential::~SimpleLayerPotential()
 {
 }
 
-double SimpleLayerPotential::slp_compute_matrix_entry(int i,int j,void* data)
+template < class TMesh >
+double ComputeSimpleLayerPotentialEntry< TMesh >::exec(
+    const typename TMesh::Prop::Triangle& f1,
+    const typename TMesh::Prop::Triangle& f2) const
 {
-  int tf_i, tf_j;
-  const SimpleLayerPotential* th = (SimpleLayerPotential*) (data);
-  tf_i = th->rowClusterTree_->dof2idx[i];
-  tf_j = th->colClusterTree_->dof2idx[j];
-
-  const space::P0Space& s = th->s_;
-  return slp_compute_matrix_entry(s[tf_i], s[tf_j]);
-}
+  TriangleIntegrator integrator = TriangleIntegrator();
 
-double SimpleLayerPotential::slp_compute_matrix_entry(const space::P0Element &e1,
-                                                      const space::P0Element &e2)
-{
-  const BoundaryMesh::traits::Face &f1 = e1.getSupport();
-  const BoundaryMesh::traits::Face &f2 = e2.getSupport();
-  TriangleIntegrator integrator;
-
-  if (f1.area() < f2.area())
-    return integrator.integrate(f1, f2, &slp_compute_inner_integral);
+  if ( f1.computeArea() < f2.computeArea() )
+  {
+    return integrator.integrate( f1, f2,
+          computeInnerIntegralForTriangles);
+  }
   else
-    return integrator.integrate(f2, f1, &slp_compute_inner_integral);
-
+  {
+    return integrator.integrate( f2, f1,
+          computeInnerIntegralForTriangles);
+  }
 }
 
-double SimpleLayerPotential::solve(double* rhs) const
+template < class TMesh >
+double ComputeSimpleLayerPotentialEntry< TMesh >::exec(
+    const typename TMesh::Prop::Parallelogram& f1,
+    const typename TMesh::Prop::Parallelogram& f2) const
 {
-  std::cerr << "solving by GMRES" << std::endl;
 
-//  for ( int i=0; i<s_.getNumberOfElements(); ++i)
-//    std::cerr << rhs[i] << ", ";
-//  std::cerr << std::endl;
+   const typename TMesh::Vertex& a1 = f1.getA();
+   const typename TMesh::Vertex& a2 = f2.getA();
 
-  double u[s_.getNumberOfElements()];
-  for ( int i=0; i<s_.getNumberOfElements(); ++i)
-    u[i]=0;
 
-  solve_gmres_supermatrix(hlibSupermatrix_,rhs,u,1e-6,100,0,HLIB_PREC_LU,0,HLIB_EVAL_DEFAULT,1);
 
-//  for ( int i=0; i<s_.getNumberOfElements(); ++i)
-//    std::cerr << u[i] << ", ";
-//  std::cerr << std::endl;
 
-  return 0;
+   return NAN;
 }
 
-void SimpleLayerPotential::show()
+double SimpleLayerPotential::computeEntry(
+    const space::P0Space::Element &e1,
+    const space::P0Space::Element &e2)
 {
-  fullmatrix* f = hlibSupermatrix_->f;
-  int i, j;
+  typedef boundary_mesh::DoubleFaceDispatcher<
+    ComputeSimpleLayerPotentialEntry< BoundaryMesh >, BoundaryMesh, double >
+  ComputeEntry;
 
-  std::ofstream output_file("slp.txt");
-
-  if ( f!= NULL ) // fill fullmatrix block
-    for ( i=0; i<rowClusterTree_->root->size; i++ ){
-      for ( j=0; j<colClusterTree_->root->size; j++ ){
-//     std::cerr << f->e[i+j*rowClusterTree_->root->size] << ", ";
-       output_file << f->e[i+j*rowClusterTree_->root->size] << ", " << std::endl;
-      }
-//      std::cerr << std::endl;
-    }
+  return ComputeEntry::Exec( e1.getSupport(), e2.getSupport(),
+                      ComputeSimpleLayerPotentialEntry< BoundaryMesh >() );
 }
 
-double SimpleLayerPotential::slp_compute_inner_integral(const BoundaryMesh::traits::Face &tau,
-    const BoundaryMesh::traits::UnlinkedVertex &x)
+template < class TMesh >
+double
+ComputeSimpleLayerPotentialEntry< TMesh >::computeInnerIntegralForTriangles(
+    const typename TMesh::Prop::Triangle& tau,
+    const typename TMesh::UVertex& x)
 {
-  boundary_mesh::Face::ConstVertexIterator vIt = tau.begin_v();
-  const boundary_mesh::UnlinkedVertex& x1 = *vIt;
-  const boundary_mesh::UnlinkedVertex& x2 = *(++vIt);
-  const boundary_mesh::UnlinkedVertex& x3 = *(++vIt);
+  BoundaryMesh::Face::ConstVertexIterator vIt = tau.begin_v();
+  const BoundaryMesh::UVertex& x1 = *vIt; ++vIt;
+  const BoundaryMesh::UVertex& x2 = *vIt; ++vIt;
+  const BoundaryMesh::UVertex& x3 = *vIt; ++vIt;
 
   // determine a local orthogonal coordinate system (r1,r2,n) on the triangle tau
   double t_tau = (x3-x2).norm();
-  boundary_mesh::UnlinkedVertex r2 = (x3-x2)/t_tau;
+  BoundaryMesh::UVertex r2 = (x3-x2)/t_tau;
   double t_star=(x1-x2)*r2;
 
-  boundary_mesh::UnlinkedVertex r1 = (x2+t_star*r2-x1);
+  BoundaryMesh::UVertex r1 = (x2+t_star*r2-x1);
   double s_tau = r1.norm();
   r1 = r1 / s_tau;
 
-  boundary_mesh::UnlinkedVertex n = cross_product(r1,r2);
+  BoundaryMesh::UVertex n = BoundaryMesh::Vertex::crossProduct(r1,r2);
 
   // determine necessary information
   double sx = (x-x1)*r1;
@@ -135,7 +98,10 @@ double SimpleLayerPotential::slp_compute_inner_integral(const BoundaryMesh::trai
   return 0.25*(F(s_tau,a2,sx,tx,ux) - F(0,a2,sx,tx,ux) - F(s_tau,a1,sx,tx,ux) + F(0,a1,sx,tx,ux))/M_PI;
 }
 
-double laplace::F(double s, double a, double sx, double tx, double ux)
+template < class TMesh >
+double
+ComputeSimpleLayerPotentialEntry< TMesh >::F(
+  double s, double a, double sx, double tx, double ux)
 {
   double p = (a*tx+sx)/(1+a*a);
   double q = ux*ux + (tx-a*sx)*(tx-a*sx)/(1+a*a);
@@ -145,19 +111,66 @@ double laplace::F(double s, double a, double sx, double tx, double ux)
     + 2*ux*atan(((q-(a*sx-tx)/(1+a*a))*sqrt((1+a*a)*(s-p)*(s-p)+q*q) + (a*s-tx-q)*q)/((s-p)*ux));
 }
 
-void laplace::fill_supermatrix_aca(supermatrix* A, const cluster* row, const cluster* col, void *data,
+void fill_supermatrix_aca_OLD(supermatrix* A, const cluster* row, const cluster* col, void *data,
     double (*compute_entry)(int i, int j, void* data), double aca_eps)
 {
-  std::cerr << "*** fill_supermatrix_aca" << std::endl;
+//  std::cerr << "*** fill_supermatrix_aca" << std::endl;
 
   fullmatrix* f = A->f;
+  rkmatrix* r = A->r;
   int i, j;
+  int rank;
 
-  if ( f!= NULL ) // fill fullmatrix block
+  if ( f!= NULL ) { // fill fullmatrix block
+//    std::cerr << "*** full matrix block" << std::endl;
     for ( i=0; i<row->size; i++ ){
       for ( j=0; j<col->size; j++ )
-//     f->e[i+j*row->size] = 0;
        f->e[i+j*row->size] = compute_entry(row->start+i,col->start+j, data);
     }
+
+    return;
+  }
+
+  if ( r!= NULL ) { // fill rk-block with aca
+//    std::cerr << "*** rank k matrix block" << std::endl;
+    if ( r->rows > r-> cols )
+      rank = r->cols;
+    else
+      rank = r->rows;
+
+    if ( rank > ACA_KMAX )
+      rank = ACA_KMAX;
+    
+    r->k = rank;
+    r->a = allocate_matrix(r->rows,rank);
+    r->b = allocate_matrix(r->cols,rank);
+       
+    r->kt = newaca_fill_block(r->a, r->b, r->rows, r->cols,
+                                 row->start, col->start, 
+                                 compute_entry, data,
+                                 rank, aca_eps, ACA_STRATEGY);
+
+    r->a = (double*) realloc(r->a,r->rows*r->kt*sizeof(double));
+    r->b = (double*) realloc(r->b,r->cols*r->kt*sizeof(double));
+    r->k = r->kt;
+
+    return;
+  }
+
+  if(row->sons>0) {
+    if(col->sons>0) {
+      for(int i=0;i<row->sons;++i)
+        for(int j=0;j<col->sons;++j) {
+            int s=i+j*row->sons;
+            fill_supermatrix_aca_OLD(A->s[s],row->son[i],col->son[j],data,compute_entry,aca_eps);
+        }
+    } else {
+      for(int i=0;i<row->sons;++i)
+        fill_supermatrix_aca_OLD(A->s[i],row->son[i],col,data,compute_entry,aca_eps);
+    }
+  } else {
+    for(int i=0;i<col->sons;++i)
+      fill_supermatrix_aca_OLD(A->s[i],row,col->son[i],data,compute_entry,aca_eps);
+  }
 }
 
index 381d60f4311ebfe6e1aff0f4e0f200e1ad84e254..fe0e8f0d3c324d44b058c5cc8feb1f6672894aaa 100644 (file)
@@ -2,45 +2,52 @@
 #define HILBERT3D_LAPLACE_SIMPLELAYERPOTENTIAL_HPP_GUARD_
 
 #include "../hilbert.hpp"
-extern "C" {
-#include "HLib/cluster.h"
-#include "HLib/supermatrix.h"
-#include "HLib/krylov.h"
-#include "HLib/graphics.h"
-}
+#include "../boundary_mesh/FaceDispatch.hpp"
+#include "../HLibOperator.hpp"
+#include "../spaces/P0Space.hpp"
 
 namespace laplace
 {
   /* 
    * @ brief: Implementation of Discrete (P0 x P0) Single Layer Potential for Laplace.
    **/
+  template < class TMesh = BoundaryMesh >
+  class ComputeSimpleLayerPotentialEntry
+  {
+    public:
+      double exec( const typename TMesh::Prop::Triangle& f1,
+                    const typename TMesh::Prop::Triangle& f2 ) const;
+      double exec( const typename TMesh::Prop::Parallelogram& f1,
+                    const typename TMesh::Prop::Parallelogram& f2 ) const;
+      double exec( const typename TMesh::Face& f1,
+                    const typename TMesh::Face& f2 ) const
+      {
+        assert(0); // Missing implementation!
+      }
+
+    private:
+      static double computeInnerIntegralForTriangles(
+          const typename TMesh::Prop::Triangle& tau,
+          const typename TMesh::UVertex& x);
+      static double F(double s, double a, double sx, double tx, double ux);
+  };
+
   class SimpleLayerPotential
+    : public HLibOperator< space::P0Space, space::P0Space, SymmetricMatrix >
   {
     public:
-      SimpleLayerPotential(const space::P0Space &s);
-      ~SimpleLayerPotential();
-      double solve(double* rhs) const;
-      void show();
+      SimpleLayerPotential(const space::P0Space &space);
+      virtual ~SimpleLayerPotential();
 
     private:
-      const space::P0Space &s_;
-      supermatrix* hlibSupermatrix_;
-      clustertree* rowClusterTree_;
-      clustertree* colClusterTree_;
-      static double slp_compute_matrix_entry(int i, int j, void* data);
-      static double slp_compute_matrix_entry(
-         const space::P0Element &e1,const space::P0Element &e2);
-      static double slp_compute_inner_integral(const BoundaryMesh::traits::Face &tau,
-         const BoundaryMesh::traits::UnlinkedVertex &x);
+      static double computeEntry(
+          const space::P0Space::Element& e1,const space::P0Space::Element &e2);
   };
 
-  double F(double s, double a, double sx, double tx, double ux);
-  void fill_supermatrix_aca(supermatrix* A,
-                          const cluster* row,
-                          const cluster* col,
-                          void* data,
-                          double (*compute_entry)(int i,int j,void* data),
-                          double aca_eps);
+#if 0
+  void fill_supermatrix_aca(supermatrix*, const cluster*, const cluster*, void*, double* (compute_entry)(int, int, void*), double);
+#endif
 }
 
 #endif
+
index 87f23d01356919bdbe6ec5730eec93d4a9fa4f6e..c697415bc7b6a090073e7855dc4edd40160b0112 100644 (file)
@@ -3,9 +3,6 @@
 #include <vector>
 #include <cmath>
 
-#include "../boundary_mesh/Vertex.hpp"
-#include "../boundary_mesh/Face.hpp"
-
 using namespace std;
 
 TriangleIntegrator::TriangleIntegrator()
@@ -51,9 +48,9 @@ TriangleIntegrator::TriangleIntegrator()
 
 double
 TriangleIntegrator::integrate(
-  const boundary_mesh::Face & triangle_1,
-  const boundary_mesh::Face & triangle_2,
-  double (*integrand)(const boundary_mesh::Face &triangle, const boundary_mesh::UnlinkedVertex & point))
+  const BoundaryMesh::Prop::Triangle & triangle_1,
+  const BoundaryMesh::Prop::Triangle & triangle_2,
+  double (*integrand)(const BoundaryMesh::Prop::Triangle &triangle, const BoundaryMesh::UVertex & point))
   const
 {
   int gauss_order = m_r.size();
@@ -65,14 +62,14 @@ TriangleIntegrator::integrate(
               computeIthEvaluationPoint( triangle_1, m_r[i], m_s[i] ));
   }
 
-  sum *= 2 * triangle_1.area(); // Factor 2 is becase gauss-weights sum up tp 0.5
+  sum *= 2 * triangle_1.computeArea(); // Factor 2 is becase gauss-weights sum up tp 0.5
   return sum;
 }
 
 double
 TriangleIntegrator::integrate(
-  const boundary_mesh::Face & triangle,
-  double (*integrand)(const boundary_mesh::UnlinkedVertex & point))
+  const BoundaryMesh::Prop::Triangle & triangle,
+  double (*integrand)(const BoundaryMesh::UVertex & point))
   const
 {
   int gauss_order = m_r.size();
@@ -83,21 +80,25 @@ TriangleIntegrator::integrate(
     sum += m_weights[i] * integrand(computeIthEvaluationPoint( triangle, m_r[i], m_s[i] ));
   }
 
-  sum *= 2 * triangle.area(); // Factor 2 is becase gauss-weights sum up tp 0.5
+  sum *= 2 * triangle.computeArea();
+    // Factor 2 is becase gauss-weights sum up tp 0.5
   return sum;
 }
 
-boundary_mesh::UnlinkedVertex
+BoundaryMesh::UVertex
 TriangleIntegrator::computeIthEvaluationPoint(
-   const boundary_mesh::Face & triangle,
+   const BoundaryMesh::Prop::Triangle & triangle,
    double xCoord, double yCoord)
 {
-  boundary_mesh::Face::ConstVertexIterator vertexIt = triangle.begin_v(); // MK: why here not 
+  BoundaryMesh::Face::ConstVertexIterator vertexIt = triangle.begin_v(); // MK: why here not 
   // boundary_mesh::traits:Face.... ????
-  const boundary_mesh::UnlinkedVertex& a = *vertexIt; // MK: write a function for this?
-  const boundary_mesh::UnlinkedVertex& b = *(++vertexIt);
-  const boundary_mesh::UnlinkedVertex& c = *(++vertexIt);
-//  assert( vertexIt == triangle.end_v() );  // MK: what is this good for? it doesn't work anyway
+  const BoundaryMesh::UVertex& a = *vertexIt; ++vertexIt; // MK: write a function for this?
+  const BoundaryMesh::UVertex& b = *vertexIt; ++vertexIt;
+  const BoundaryMesh::UVertex& c = *vertexIt; ++vertexIt;
+  assert( vertexIt == triangle.end_v() );  // MK: what is this good for?
+  // it doesn't work anyway
+  // MM: -> Überprüft, ob es sich wirklich um ein Dreieck handelt.
+  //   Wenn es fehlschlägt, dann ist der == operator für Iteratoren fehlerhaft.
   return a + (b-a) * xCoord + (c-a) * yCoord;
 }
 
index fd25cfc563b4a29fe0c2c1125fd96252de9f0673..6f7827676d91c71036426dd9c030f42960b4a9ed 100644 (file)
@@ -2,11 +2,7 @@
 #define HILBERT3D_LAPLACE_TRIANGLEINTEGRATOR_HPP_GUARD_
 
 #include <vector>
-#include "../boundary_mesh/Vertex.hpp"
-
-namespace boundary_mesh {
-    class Face;
-}
+#include "../hilbert.hpp"
 
 class TriangleIntegrator {
     public:
@@ -31,10 +27,10 @@ class TriangleIntegrator {
          * This function just returns the computed value.
          */
         double integrate(
-            const boundary_mesh::Face & triangle_1,
-            const boundary_mesh::Face & triangle_2,
-            double (*integrand)(const boundary_mesh::Face & triangle,  // MK added a &
-                                const boundary_mesh::UnlinkedVertex & point))
+            const BoundaryMesh::Prop::Triangle & triangle_1,
+            const BoundaryMesh::Prop::Triangle & triangle_2,
+            double (*integrand)(const BoundaryMesh::Prop::Triangle & triangle,
+                                const BoundaryMesh::UVertex & point))
             const;
 
         /**
@@ -51,14 +47,15 @@ class TriangleIntegrator {
          *        \f$f\f$.
          */
         double integrate(
-            const boundary_mesh::Face & triangle,
-            double (*integrand)(const boundary_mesh::UnlinkedVertex & point))
+            const BoundaryMesh::Prop::Triangle & triangle,
+            double (*integrand)(const BoundaryMesh::UVertex & point))
             const;
 
     private:
-        static boundary_mesh::UnlinkedVertex
-          computeIthEvaluationPoint( const boundary_mesh::Face& triangle,
-                                     double xCoord, double yCoord );
+        static BoundaryMesh::UVertex
+        computeIthEvaluationPoint(
+          const BoundaryMesh::Prop::Triangle& triangle,
+          double xCoord, double yCoord );
 
         std::vector<double> m_r;
         std::vector<double> m_s;
diff --git a/src/bem3d/src/laplace/V.ps b/src/bem3d/src/laplace/V.ps
new file mode 100644 (file)
index 0000000..2245ef0
--- /dev/null
@@ -0,0 +1,19980 @@
+%!PS-Adobe-2.0-2.0 EPSF-2.0
+%%BoundingBox: 50.000000 50.000000 570.000000 570.000000
+60.000000 dup translate
+0.488281 dup scale
+0.009766 setlinewidth
+/Helvetica findfont 24.576000 scalefont setfont
+0 setgray
+/bl{0 setgray} def
+/fb{0.95 setgray fill} def
+/fr{1.0 0.6 0.6  setrgbcolor fill} def
+/fg{0.5 setgray fill} def
+/fl{0.6 1.0 0.6  setrgbcolor fill} def
+/fi{0.8 0.0 0.0  setrgbcolor fill} def
+/fu{0.3 0.3 1.0  setrgbcolor fill} def
+/cs{closepath stroke} def
+/m{moveto} def
+/l{lineto} def
+/hf{/Helvetica findfont} def
+/sf{scalefont setfont} def
+bl
+0 1008 m
+0 1024 l
+16 1024 l
+16 1008 l
+0 1008 l
+cs
+bl
+hf 8.0 sf
+3.2 1009.6 m (16) show
+bl
+16 1008 m
+16 1024 l
+32 1024 l
+32 1008 l
+16 1008 l
+cs
+bl
+hf 8.0 sf
+19.2 1009.6 m (16) show
+bl
+0 992 m
+0 1008 l
+16 1008 l
+16 992 l
+0 992 l
+cs
+bl
+hf 8.0 sf
+3.2 993.6 m (16) show
+bl
+16 992 m
+16 1008 l
+32 1008 l
+32 992 l
+16 992 l
+cs
+bl
+hf 8.0 sf
+19.2 993.6 m (16) show
+bl
+32 1008 m
+32 1024 l
+48 1024 l
+48 1008 l
+32 1008 l
+cs
+bl
+hf 8.0 sf
+35.2 1009.6 m (16) show
+bl
+48 1008 m
+48 1024 l
+64 1024 l
+64 1008 l
+48 1008 l
+cs
+bl
+hf 8.0 sf
+51.2 1009.6 m (16) show
+bl
+32 992 m
+32 1008 l
+48 1008 l
+48 992 l
+32 992 l
+cs
+bl
+hf 8.0 sf
+35.2 993.6 m (16) show
+bl
+48 992 m
+48 1008 l
+64 1008 l
+64 992 l
+48 992 l
+cs
+bl
+hf 8.0 sf
+51.2 993.6 m (16) show
+bl
+0 976 m
+0 992 l
+16 992 l
+16 976 l
+0 976 l
+cs
+bl
+hf 8.0 sf
+3.2 977.6 m (16) show
+bl
+16 976 m
+16 992 l
+32 992 l
+32 976 l
+16 976 l
+cs
+bl
+hf 8.0 sf
+19.2 977.6 m (16) show
+bl
+0 960 m
+0 976 l
+16 976 l
+16 960 l
+0 960 l
+cs
+bl
+hf 8.0 sf
+3.2 961.6 m (16) show
+bl
+16 960 m
+16 976 l
+32 976 l
+32 960 l
+16 960 l
+cs
+bl
+hf 8.0 sf
+19.2 961.6 m (16) show
+bl
+32 976 m
+32 992 l
+48 992 l
+48 976 l
+32 976 l
+cs
+bl
+hf 8.0 sf
+35.2 977.6 m (16) show
+bl
+48 976 m
+48 992 l
+64 992 l
+64 976 l
+48 976 l
+cs
+bl
+hf 8.0 sf
+51.2 977.6 m (16) show
+bl
+32 960 m
+32 976 l
+48 976 l
+48 960 l
+32 960 l
+cs
+bl
+hf 8.0 sf
+35.2 961.6 m (16) show
+bl
+48 960 m
+48 976 l
+64 976 l
+64 960 l
+48 960 l
+cs
+bl
+hf 8.0 sf
+51.2 961.6 m (16) show
+bl
+64 1008 m
+64 1024 l
+80 1024 l
+80 1008 l
+64 1008 l
+cs
+bl
+hf 8.0 sf
+67.2 1009.6 m (16) show
+bl
+80 1008 m
+80 1024 l
+96 1024 l
+96 1008 l
+80 1008 l
+cs
+bl
+hf 8.0 sf
+83.2 1009.6 m (16) show
+bl
+64 992 m
+64 1008 l
+80 1008 l
+80 992 l
+64 992 l
+cs
+bl
+hf 8.0 sf
+67.2 993.6 m (16) show
+bl
+80 992 m
+80 1008 l
+96 1008 l
+96 992 l
+80 992 l
+cs
+bl
+hf 8.0 sf
+83.2 993.6 m (16) show
+bl
+96 1008 m
+96 1024 l
+112 1024 l
+112 1008 l
+96 1008 l
+cs
+bl
+hf 8.0 sf
+99.2 1009.6 m (16) show
+bl
+112 1008 m
+112 1024 l
+128 1024 l
+128 1008 l
+112 1008 l
+cs
+bl
+hf 8.0 sf
+115.2 1009.6 m (16) show
+bl
+96 992 m
+96 1008 l
+112 1008 l
+112 992 l
+96 992 l
+cs
+bl
+hf 8.0 sf
+99.2 993.6 m (16) show
+bl
+112 992 m
+112 1008 l
+128 1008 l
+128 992 l
+112 992 l
+cs
+bl
+hf 8.0 sf
+115.2 993.6 m (16) show
+bl
+64 976 m
+64 992 l
+80 992 l
+80 976 l
+64 976 l
+cs
+bl
+hf 8.0 sf
+67.2 977.6 m (16) show
+bl
+80 976 m
+80 992 l
+96 992 l
+96 976 l
+80 976 l
+cs
+bl
+hf 8.0 sf
+83.2 977.6 m (16) show
+bl
+64 960 m
+64 976 l
+80 976 l
+80 960 l
+64 960 l
+cs
+bl
+hf 8.0 sf
+67.2 961.6 m (16) show
+bl
+80 960 m
+80 976 l
+96 976 l
+96 960 l
+80 960 l
+cs
+bl
+hf 8.0 sf
+83.2 961.6 m (16) show
+bl
+96 976 m
+96 992 l
+112 992 l
+112 976 l
+96 976 l
+cs
+bl
+hf 8.0 sf
+99.2 977.6 m (16) show
+bl
+112 976 m
+112 992 l
+128 992 l
+128 976 l
+112 976 l
+cs
+bl
+hf 8.0 sf
+115.2 977.6 m (16) show
+bl
+96 960 m
+96 976 l
+112 976 l
+112 960 l
+96 960 l
+cs
+bl
+hf 8.0 sf
+99.2 961.6 m (16) show
+bl
+112 960 m
+112 976 l
+128 976 l
+128 960 l
+112 960 l
+cs
+bl
+hf 8.0 sf
+115.2 961.6 m (16) show
+bl
+0 944 m
+0 960 l
+16 960 l
+16 944 l
+0 944 l
+cs
+bl
+hf 8.0 sf
+3.2 945.6 m (16) show
+bl
+16 944 m
+16 960 l
+32 960 l
+32 944 l
+16 944 l
+cs
+bl
+hf 8.0 sf
+19.2 945.6 m (16) show
+bl
+0 928 m
+0 944 l
+16 944 l
+16 928 l
+0 928 l
+cs
+bl
+hf 8.0 sf
+3.2 929.6 m (16) show
+bl
+16 928 m
+16 944 l
+32 944 l
+32 928 l
+16 928 l
+cs
+bl
+hf 8.0 sf
+19.2 929.6 m (16) show
+bl
+32 944 m
+32 960 l
+48 960 l
+48 944 l
+32 944 l
+cs
+bl
+hf 8.0 sf
+35.2 945.6 m (16) show
+bl
+48 944 m
+48 960 l
+64 960 l
+64 944 l
+48 944 l
+cs
+bl
+hf 8.0 sf
+51.2 945.6 m (16) show
+bl
+32 928 m
+32 944 l
+48 944 l
+48 928 l
+32 928 l
+cs
+bl
+hf 8.0 sf
+35.2 929.6 m (16) show
+bl
+48 928 m
+48 944 l
+64 944 l
+64 928 l
+48 928 l
+cs
+bl
+hf 8.0 sf
+51.2 929.6 m (16) show
+bl
+0 912 m
+0 928 l
+16 928 l
+16 912 l
+0 912 l
+cs
+bl
+hf 8.0 sf
+3.2 913.6 m (16) show
+bl
+16 912 m
+16 928 l
+32 928 l
+32 912 l
+16 912 l
+cs
+bl
+hf 8.0 sf
+19.2 913.6 m (16) show
+bl
+0 896 m
+0 912 l
+16 912 l
+16 896 l
+0 896 l
+cs
+bl
+hf 8.0 sf
+3.2 897.6 m (16) show
+bl
+16 896 m
+16 912 l
+32 912 l
+32 896 l
+16 896 l
+cs
+bl
+hf 8.0 sf
+19.2 897.6 m (16) show
+bl
+32 912 m
+32 928 l
+48 928 l
+48 912 l
+32 912 l
+cs
+bl
+hf 8.0 sf
+35.2 913.6 m (16) show
+bl
+48 912 m
+48 928 l
+64 928 l
+64 912 l
+48 912 l
+cs
+bl
+hf 8.0 sf
+51.2 913.6 m (16) show
+bl
+32 896 m
+32 912 l
+48 912 l
+48 896 l
+32 896 l
+cs
+bl
+hf 8.0 sf
+35.2 897.6 m (16) show
+bl
+48 896 m
+48 912 l
+64 912 l
+64 896 l
+48 896 l
+cs
+bl
+hf 8.0 sf
+51.2 897.6 m (16) show
+bl
+64 944 m
+64 960 l
+80 960 l
+80 944 l
+64 944 l
+cs
+bl
+hf 8.0 sf
+67.2 945.6 m (16) show
+bl
+80 944 m
+80 960 l
+96 960 l
+96 944 l
+80 944 l
+cs
+bl
+hf 8.0 sf
+83.2 945.6 m (16) show
+bl
+64 928 m
+64 944 l
+80 944 l
+80 928 l
+64 928 l
+cs
+bl
+hf 8.0 sf
+67.2 929.6 m (16) show
+bl
+80 928 m
+80 944 l
+96 944 l
+96 928 l
+80 928 l
+cs
+bl
+hf 8.0 sf
+83.2 929.6 m (16) show
+bl
+96 944 m
+96 960 l
+112 960 l
+112 944 l
+96 944 l
+cs
+bl
+hf 8.0 sf
+99.2 945.6 m (16) show
+bl
+112 944 m
+112 960 l
+128 960 l
+128 944 l
+112 944 l
+cs
+bl
+hf 8.0 sf
+115.2 945.6 m (16) show
+bl
+96 928 m
+96 944 l
+112 944 l
+112 928 l
+96 928 l
+cs
+bl
+hf 8.0 sf
+99.2 929.6 m (16) show
+bl
+112 928 m
+112 944 l
+128 944 l
+128 928 l
+112 928 l
+cs
+bl
+hf 8.0 sf
+115.2 929.6 m (16) show
+bl
+64 912 m
+64 928 l
+80 928 l
+80 912 l
+64 912 l
+cs
+bl
+hf 8.0 sf
+67.2 913.6 m (16) show
+bl
+80 912 m
+80 928 l
+96 928 l
+96 912 l
+80 912 l
+cs
+bl
+hf 8.0 sf
+83.2 913.6 m (16) show
+bl
+64 896 m
+64 912 l
+80 912 l
+80 896 l
+64 896 l
+cs
+bl
+hf 8.0 sf
+67.2 897.6 m (16) show
+bl
+80 896 m
+80 912 l
+96 912 l
+96 896 l
+80 896 l
+cs
+bl
+hf 8.0 sf
+83.2 897.6 m (16) show
+bl
+96 912 m
+96 928 l
+112 928 l
+112 912 l
+96 912 l
+cs
+bl
+hf 8.0 sf
+99.2 913.6 m (16) show
+bl
+112 912 m
+112 928 l
+128 928 l
+128 912 l
+112 912 l
+cs
+bl
+hf 8.0 sf
+115.2 913.6 m (16) show
+bl
+96 896 m
+96 912 l
+112 912 l
+112 896 l
+96 896 l
+cs
+bl
+hf 8.0 sf
+99.2 897.6 m (16) show
+bl
+112 896 m
+112 912 l
+128 912 l
+128 896 l
+112 896 l
+cs
+bl
+hf 8.0 sf
+115.2 897.6 m (16) show
+bl
+128 1008 m
+128 1024 l
+144 1024 l
+144 1008 l
+128 1008 l
+cs
+bl
+hf 8.0 sf
+131.2 1009.6 m (16) show
+bl
+144 1008 m
+144 1024 l
+160 1024 l
+160 1008 l
+144 1008 l
+cs
+bl
+hf 8.0 sf
+147.2 1009.6 m (16) show
+bl
+128 992 m
+128 1008 l
+144 1008 l
+144 992 l
+128 992 l
+cs
+bl
+hf 8.0 sf
+131.2 993.6 m (16) show
+bl
+144 992 m
+144 1008 l
+160 1008 l
+160 992 l
+144 992 l
+cs
+bl
+hf 8.0 sf
+147.2 993.6 m (16) show
+160 992 m
+160 1024 l
+192 1024 l
+192 992 l
+160 992 l
+fl
+bl
+160 992 m
+160 1024 l
+192 1024 l
+192 992 l
+160 992 l
+cs
+bl
+128 976 m
+128 992 l
+144 992 l
+144 976 l
+128 976 l
+cs
+bl
+hf 8.0 sf
+131.2 977.6 m (16) show
+bl
+144 976 m
+144 992 l
+160 992 l
+160 976 l
+144 976 l
+cs
+bl
+hf 8.0 sf
+147.2 977.6 m (16) show
+bl
+128 960 m
+128 976 l
+144 976 l
+144 960 l
+128 960 l
+cs
+bl
+hf 8.0 sf
+131.2 961.6 m (16) show
+bl
+144 960 m
+144 976 l
+160 976 l
+160 960 l
+144 960 l
+cs
+bl
+hf 8.0 sf
+147.2 961.6 m (16) show
+bl
+160 976 m
+160 992 l
+176 992 l
+176 976 l
+160 976 l
+cs
+bl
+hf 8.0 sf
+163.2 977.6 m (16) show
+bl
+176 976 m
+176 992 l
+192 992 l
+192 976 l
+176 976 l
+cs
+bl
+hf 8.0 sf
+179.2 977.6 m (16) show
+bl
+160 960 m
+160 976 l
+176 976 l
+176 960 l
+160 960 l
+cs
+bl
+hf 8.0 sf
+163.2 961.6 m (16) show
+bl
+176 960 m
+176 976 l
+192 976 l
+192 960 l
+176 960 l
+cs
+bl
+hf 8.0 sf
+179.2 961.6 m (16) show
+bl
+192 1008 m
+192 1024 l
+208 1024 l
+208 1008 l
+192 1008 l
+cs
+bl
+hf 8.0 sf
+195.2 1009.6 m (16) show
+208 1008 m
+208 1024 l
+224 1024 l
+224 1008 l
+208 1008 l
+fl
+bl
+208 1008 m
+208 1024 l
+224 1024 l
+224 1008 l
+208 1008 l
+cs
+bl
+192 992 m
+192 1008 l
+208 1008 l
+208 992 l
+192 992 l
+cs
+bl
+hf 8.0 sf
+195.2 993.6 m (16) show
+bl
+208 992 m
+208 1008 l
+224 1008 l
+224 992 l
+208 992 l
+cs
+bl
+hf 8.0 sf
+211.2 993.6 m (16) show
+224 992 m
+224 1024 l
+256 1024 l
+256 992 l
+224 992 l
+fl
+bl
+224 992 m
+224 1024 l
+256 1024 l
+256 992 l
+224 992 l
+cs
+bl
+192 976 m
+192 992 l
+208 992 l
+208 976 l
+192 976 l
+cs
+bl
+hf 8.0 sf
+195.2 977.6 m (16) show
+bl
+208 976 m
+208 992 l
+224 992 l
+224 976 l
+208 976 l
+cs
+bl
+hf 8.0 sf
+211.2 977.6 m (16) show
+bl
+192 960 m
+192 976 l
+208 976 l
+208 960 l
+192 960 l
+cs
+bl
+hf 8.0 sf
+195.2 961.6 m (16) show
+bl
+208 960 m
+208 976 l
+224 976 l
+224 960 l
+208 960 l
+cs
+bl
+hf 8.0 sf
+211.2 961.6 m (16) show
+bl
+224 976 m
+224 992 l
+240 992 l
+240 976 l
+224 976 l
+cs
+bl
+hf 8.0 sf
+227.2 977.6 m (16) show
+240 976 m
+240 992 l
+256 992 l
+256 976 l
+240 976 l
+fl
+bl
+240 976 m
+240 992 l
+256 992 l
+256 976 l
+240 976 l
+cs
+bl
+224 960 m
+224 976 l
+240 976 l
+240 960 l
+224 960 l
+cs
+bl
+hf 8.0 sf
+227.2 961.6 m (16) show
+bl
+240 960 m
+240 976 l
+256 976 l
+256 960 l
+240 960 l
+cs
+bl
+hf 8.0 sf
+243.2 961.6 m (16) show
+bl
+128 944 m
+128 960 l
+144 960 l
+144 944 l
+128 944 l
+cs
+bl
+hf 8.0 sf
+131.2 945.6 m (16) show
+bl
+144 944 m
+144 960 l
+160 960 l
+160 944 l
+144 944 l
+cs
+bl
+hf 8.0 sf
+147.2 945.6 m (16) show
+128 928 m
+128 944 l
+144 944 l
+144 928 l
+128 928 l
+fl
+bl
+128 928 m
+128 944 l
+144 944 l
+144 928 l
+128 928 l
+cs
+bl
+144 928 m
+144 944 l
+160 944 l
+160 928 l
+144 928 l
+cs
+bl
+hf 8.0 sf
+147.2 929.6 m (16) show
+160 928 m
+160 960 l
+192 960 l
+192 928 l
+160 928 l
+fl
+bl
+160 928 m
+160 960 l
+192 960 l
+192 928 l
+160 928 l
+cs
+bl
+128 912 m
+128 928 l
+144 928 l
+144 912 l
+128 912 l
+cs
+bl
+hf 8.0 sf
+131.2 913.6 m (16) show
+bl
+144 912 m
+144 928 l
+160 928 l
+160 912 l
+144 912 l
+cs
+bl
+hf 8.0 sf
+147.2 913.6 m (16) show
+bl
+128 896 m
+128 912 l
+144 912 l
+144 896 l
+128 896 l
+cs
+bl
+hf 8.0 sf
+131.2 897.6 m (16) show
+bl
+144 896 m
+144 912 l
+160 912 l
+160 896 l
+144 896 l
+cs
+bl
+hf 8.0 sf
+147.2 897.6 m (16) show
+bl
+160 912 m
+160 928 l
+176 928 l
+176 912 l
+160 912 l
+cs
+bl
+hf 8.0 sf
+163.2 913.6 m (16) show
+bl
+176 912 m
+176 928 l
+192 928 l
+192 912 l
+176 912 l
+cs
+bl
+hf 8.0 sf
+179.2 913.6 m (16) show
+160 896 m
+160 912 l
+176 912 l
+176 896 l
+160 896 l
+fl
+bl
+160 896 m
+160 912 l
+176 912 l
+176 896 l
+160 896 l
+cs
+bl
+176 896 m
+176 912 l
+192 912 l
+192 896 l
+176 896 l
+cs
+bl
+hf 8.0 sf
+179.2 897.6 m (16) show
+bl
+192 944 m
+192 960 l
+208 960 l
+208 944 l
+192 944 l
+cs
+bl
+hf 8.0 sf
+195.2 945.6 m (16) show
+bl
+208 944 m
+208 960 l
+224 960 l
+224 944 l
+208 944 l
+cs
+bl
+hf 8.0 sf
+211.2 945.6 m (16) show
+bl
+192 928 m
+192 944 l
+208 944 l
+208 928 l
+192 928 l
+cs
+bl
+hf 8.0 sf
+195.2 929.6 m (16) show
+bl
+208 928 m
+208 944 l
+224 944 l
+224 928 l
+208 928 l
+cs
+bl
+hf 8.0 sf
+211.2 929.6 m (16) show
+224 928 m
+224 960 l
+256 960 l
+256 928 l
+224 928 l
+fl
+bl
+224 928 m
+224 960 l
+256 960 l
+256 928 l
+224 928 l
+cs
+bl
+192 912 m
+192 928 l
+208 928 l
+208 912 l
+192 912 l
+cs
+bl
+hf 8.0 sf
+195.2 913.6 m (16) show
+bl
+208 912 m
+208 928 l
+224 928 l
+224 912 l
+208 912 l
+cs
+bl
+hf 8.0 sf
+211.2 913.6 m (16) show
+bl
+192 896 m
+192 912 l
+208 912 l
+208 896 l
+192 896 l
+cs
+bl
+hf 8.0 sf
+195.2 897.6 m (16) show
+bl
+208 896 m
+208 912 l
+224 912 l
+224 896 l
+208 896 l
+cs
+bl
+hf 8.0 sf
+211.2 897.6 m (16) show
+bl
+224 912 m
+224 928 l
+240 928 l
+240 912 l
+224 912 l
+cs
+bl
+hf 8.0 sf
+227.2 913.6 m (16) show
+bl
+240 912 m
+240 928 l
+256 928 l
+256 912 l
+240 912 l
+cs
+bl
+hf 8.0 sf
+243.2 913.6 m (16) show
+bl
+224 896 m
+224 912 l
+240 912 l
+240 896 l
+224 896 l
+cs
+bl
+hf 8.0 sf
+227.2 897.6 m (16) show
+bl
+240 896 m
+240 912 l
+256 912 l
+256 896 l
+240 896 l
+cs
+bl
+hf 8.0 sf
+243.2 897.6 m (16) show
+bl
+0 880 m
+0 896 l
+16 896 l
+16 880 l
+0 880 l
+cs
+bl
+hf 8.0 sf
+3.2 881.6 m (16) show
+bl
+16 880 m
+16 896 l
+32 896 l
+32 880 l
+16 880 l
+cs
+bl
+hf 8.0 sf
+19.2 881.6 m (16) show
+bl
+0 864 m
+0 880 l
+16 880 l
+16 864 l
+0 864 l
+cs
+bl
+hf 8.0 sf
+3.2 865.6 m (16) show
+bl
+16 864 m
+16 880 l
+32 880 l
+32 864 l
+16 864 l
+cs
+bl
+hf 8.0 sf
+19.2 865.6 m (16) show
+bl
+32 880 m
+32 896 l
+48 896 l
+48 880 l
+32 880 l
+cs
+bl
+hf 8.0 sf
+35.2 881.6 m (16) show
+bl
+48 880 m
+48 896 l
+64 896 l
+64 880 l
+48 880 l
+cs
+bl
+hf 8.0 sf
+51.2 881.6 m (16) show
+bl
+32 864 m
+32 880 l
+48 880 l
+48 864 l
+32 864 l
+cs
+bl
+hf 8.0 sf
+35.2 865.6 m (16) show
+bl
+48 864 m
+48 880 l
+64 880 l
+64 864 l
+48 864 l
+cs
+bl
+hf 8.0 sf
+51.2 865.6 m (16) show
+0 832 m
+0 864 l
+32 864 l
+32 832 l
+0 832 l
+fl
+bl
+0 832 m
+0 864 l
+32 864 l
+32 832 l
+0 832 l
+cs
+bl
+32 848 m
+32 864 l
+48 864 l
+48 848 l
+32 848 l
+cs
+bl
+hf 8.0 sf
+35.2 849.6 m (16) show
+bl
+48 848 m
+48 864 l
+64 864 l
+64 848 l
+48 848 l
+cs
+bl
+hf 8.0 sf
+51.2 849.6 m (16) show
+bl
+32 832 m
+32 848 l
+48 848 l
+48 832 l
+32 832 l
+cs
+bl
+hf 8.0 sf
+35.2 833.6 m (16) show
+bl
+48 832 m
+48 848 l
+64 848 l
+64 832 l
+48 832 l
+cs
+bl
+hf 8.0 sf
+51.2 833.6 m (16) show
+bl
+64 880 m
+64 896 l
+80 896 l
+80 880 l
+64 880 l
+cs
+bl
+hf 8.0 sf
+67.2 881.6 m (16) show
+80 880 m
+80 896 l
+96 896 l
+96 880 l
+80 880 l
+fl
+bl
+80 880 m
+80 896 l
+96 896 l
+96 880 l
+80 880 l
+cs
+bl
+64 864 m
+64 880 l
+80 880 l
+80 864 l
+64 864 l
+cs
+bl
+hf 8.0 sf
+67.2 865.6 m (16) show
+bl
+80 864 m
+80 880 l
+96 880 l
+96 864 l
+80 864 l
+cs
+bl
+hf 8.0 sf
+83.2 865.6 m (16) show
+bl
+96 880 m
+96 896 l
+112 896 l
+112 880 l
+96 880 l
+cs
+bl
+hf 8.0 sf
+99.2 881.6 m (16) show
+bl
+112 880 m
+112 896 l
+128 896 l
+128 880 l
+112 880 l
+cs
+bl
+hf 8.0 sf
+115.2 881.6 m (16) show
+bl
+96 864 m
+96 880 l
+112 880 l
+112 864 l
+96 864 l
+cs
+bl
+hf 8.0 sf
+99.2 865.6 m (16) show
+bl
+112 864 m
+112 880 l
+128 880 l
+128 864 l
+112 864 l
+cs
+bl
+hf 8.0 sf
+115.2 865.6 m (16) show
+64 832 m
+64 864 l
+96 864 l
+96 832 l
+64 832 l
+fl
+bl
+64 832 m
+64 864 l
+96 864 l
+96 832 l
+64 832 l
+cs
+bl
+96 848 m
+96 864 l
+112 864 l
+112 848 l
+96 848 l
+cs
+bl
+hf 8.0 sf
+99.2 849.6 m (16) show
+112 848 m
+112 864 l
+128 864 l
+128 848 l
+112 848 l
+fl
+bl
+112 848 m
+112 864 l
+128 864 l
+128 848 l
+112 848 l
+cs
+bl
+96 832 m
+96 848 l
+112 848 l
+112 832 l
+96 832 l
+cs
+bl
+hf 8.0 sf
+99.2 833.6 m (16) show
+bl
+112 832 m
+112 848 l
+128 848 l
+128 832 l
+112 832 l
+cs
+bl
+hf 8.0 sf
+115.2 833.6 m (16) show
+bl
+0 816 m
+0 832 l
+16 832 l
+16 816 l
+0 816 l
+cs
+bl
+hf 8.0 sf
+3.2 817.6 m (16) show
+bl
+16 816 m
+16 832 l
+32 832 l
+32 816 l
+16 816 l
+cs
+bl
+hf 8.0 sf
+19.2 817.6 m (16) show
+0 800 m
+0 816 l
+16 816 l
+16 800 l
+0 800 l
+fl
+bl
+0 800 m
+0 816 l
+16 816 l
+16 800 l
+0 800 l
+cs
+bl
+16 800 m
+16 816 l
+32 816 l
+32 800 l
+16 800 l
+cs
+bl
+hf 8.0 sf
+19.2 801.6 m (16) show
+bl
+32 816 m
+32 832 l
+48 832 l
+48 816 l
+32 816 l
+cs
+bl
+hf 8.0 sf
+35.2 817.6 m (16) show
+bl
+48 816 m
+48 832 l
+64 832 l
+64 816 l
+48 816 l
+cs
+bl
+hf 8.0 sf
+51.2 817.6 m (16) show
+bl
+32 800 m
+32 816 l
+48 816 l
+48 800 l
+32 800 l
+cs
+bl
+hf 8.0 sf
+35.2 801.6 m (16) show
+bl
+48 800 m
+48 816 l
+64 816 l
+64 800 l
+48 800 l
+cs
+bl
+hf 8.0 sf
+51.2 801.6 m (16) show
+0 768 m
+0 800 l
+32 800 l
+32 768 l
+0 768 l
+fl
+bl
+0 768 m
+0 800 l
+32 800 l
+32 768 l
+0 768 l
+cs
+bl
+32 784 m
+32 800 l
+48 800 l
+48 784 l
+32 784 l
+cs
+bl
+hf 8.0 sf
+35.2 785.6 m (16) show
+bl
+48 784 m
+48 800 l
+64 800 l
+64 784 l
+48 784 l
+cs
+bl
+hf 8.0 sf
+51.2 785.6 m (16) show
+32 768 m
+32 784 l
+48 784 l
+48 768 l
+32 768 l
+fl
+bl
+32 768 m
+32 784 l
+48 784 l
+48 768 l
+32 768 l
+cs
+bl
+48 768 m
+48 784 l
+64 784 l
+64 768 l
+48 768 l
+cs
+bl
+hf 8.0 sf
+51.2 769.6 m (16) show
+bl
+64 816 m
+64 832 l
+80 832 l
+80 816 l
+64 816 l
+cs
+bl
+hf 8.0 sf
+67.2 817.6 m (16) show
+bl
+80 816 m
+80 832 l
+96 832 l
+96 816 l
+80 816 l
+cs
+bl
+hf 8.0 sf
+83.2 817.6 m (16) show
+bl
+64 800 m
+64 816 l
+80 816 l
+80 800 l
+64 800 l
+cs
+bl
+hf 8.0 sf
+67.2 801.6 m (16) show
+bl
+80 800 m
+80 816 l
+96 816 l
+96 800 l
+80 800 l
+cs
+bl
+hf 8.0 sf
+83.2 801.6 m (16) show
+bl
+96 816 m
+96 832 l
+112 832 l
+112 816 l
+96 816 l
+cs
+bl
+hf 8.0 sf
+99.2 817.6 m (16) show
+bl
+112 816 m
+112 832 l
+128 832 l
+128 816 l
+112 816 l
+cs
+bl
+hf 8.0 sf
+115.2 817.6 m (16) show
+bl
+96 800 m
+96 816 l
+112 816 l
+112 800 l
+96 800 l
+cs
+bl
+hf 8.0 sf
+99.2 801.6 m (16) show
+bl
+112 800 m
+112 816 l
+128 816 l
+128 800 l
+112 800 l
+cs
+bl
+hf 8.0 sf
+115.2 801.6 m (16) show
+64 768 m
+64 800 l
+96 800 l
+96 768 l
+64 768 l
+fl
+bl
+64 768 m
+64 800 l
+96 800 l
+96 768 l
+64 768 l
+cs
+bl
+96 784 m
+96 800 l
+112 800 l
+112 784 l
+96 784 l
+cs
+bl
+hf 8.0 sf
+99.2 785.6 m (16) show
+bl
+112 784 m
+112 800 l
+128 800 l
+128 784 l
+112 784 l
+cs
+bl
+hf 8.0 sf
+115.2 785.6 m (16) show
+bl
+96 768 m
+96 784 l
+112 784 l
+112 768 l
+96 768 l
+cs
+bl
+hf 8.0 sf
+99.2 769.6 m (16) show
+bl
+112 768 m
+112 784 l
+128 784 l
+128 768 l
+112 768 l
+cs
+bl
+hf 8.0 sf
+115.2 769.6 m (16) show
+bl
+128 880 m
+128 896 l
+144 896 l
+144 880 l
+128 880 l
+cs
+bl
+hf 8.0 sf
+131.2 881.6 m (16) show
+bl
+144 880 m
+144 896 l
+160 896 l
+160 880 l
+144 880 l
+cs
+bl
+hf 8.0 sf
+147.2 881.6 m (16) show
+bl
+128 864 m
+128 880 l
+144 880 l
+144 864 l
+128 864 l
+cs
+bl
+hf 8.0 sf
+131.2 865.6 m (16) show
+bl
+144 864 m
+144 880 l
+160 880 l
+160 864 l
+144 864 l
+cs
+bl
+hf 8.0 sf
+147.2 865.6 m (16) show
+bl
+160 880 m
+160 896 l
+176 896 l
+176 880 l
+160 880 l
+cs
+bl
+hf 8.0 sf
+163.2 881.6 m (16) show
+bl
+176 880 m
+176 896 l
+192 896 l
+192 880 l
+176 880 l
+cs
+bl
+hf 8.0 sf
+179.2 881.6 m (16) show
+bl
+160 864 m
+160 880 l
+176 880 l
+176 864 l
+160 864 l
+cs
+bl
+hf 8.0 sf
+163.2 865.6 m (16) show
+bl
+176 864 m
+176 880 l
+192 880 l
+192 864 l
+176 864 l
+cs
+bl
+hf 8.0 sf
+179.2 865.6 m (16) show
+bl
+128 848 m
+128 864 l
+144 864 l
+144 848 l
+128 848 l
+cs
+bl
+hf 8.0 sf
+131.2 849.6 m (16) show
+bl
+144 848 m
+144 864 l
+160 864 l
+160 848 l
+144 848 l
+cs
+bl
+hf 8.0 sf
+147.2 849.6 m (16) show
+bl
+128 832 m
+128 848 l
+144 848 l
+144 832 l
+128 832 l
+cs
+bl
+hf 8.0 sf
+131.2 833.6 m (16) show
+bl
+144 832 m
+144 848 l
+160 848 l
+160 832 l
+144 832 l
+cs
+bl
+hf 8.0 sf
+147.2 833.6 m (16) show
+bl
+160 848 m
+160 864 l
+176 864 l
+176 848 l
+160 848 l
+cs
+bl
+hf 8.0 sf
+163.2 849.6 m (16) show
+bl
+176 848 m
+176 864 l
+192 864 l
+192 848 l
+176 848 l
+cs
+bl
+hf 8.0 sf
+179.2 849.6 m (16) show
+bl
+160 832 m
+160 848 l
+176 848 l
+176 832 l
+160 832 l
+cs
+bl
+hf 8.0 sf
+163.2 833.6 m (16) show
+bl
+176 832 m
+176 848 l
+192 848 l
+192 832 l
+176 832 l
+cs
+bl
+hf 8.0 sf
+179.2 833.6 m (16) show
+bl
+192 880 m
+192 896 l
+208 896 l
+208 880 l
+192 880 l
+cs
+bl
+hf 8.0 sf
+195.2 881.6 m (16) show
+bl
+208 880 m
+208 896 l
+224 896 l
+224 880 l
+208 880 l
+cs
+bl
+hf 8.0 sf
+211.2 881.6 m (16) show
+bl
+192 864 m
+192 880 l
+208 880 l
+208 864 l
+192 864 l
+cs
+bl
+hf 8.0 sf
+195.2 865.6 m (16) show
+bl
+208 864 m
+208 880 l
+224 880 l
+224 864 l
+208 864 l
+cs
+bl
+hf 8.0 sf
+211.2 865.6 m (16) show
+bl
+224 880 m
+224 896 l
+240 896 l
+240 880 l
+224 880 l
+cs
+bl
+hf 8.0 sf
+227.2 881.6 m (16) show
+bl
+240 880 m
+240 896 l
+256 896 l
+256 880 l
+240 880 l
+cs
+bl
+hf 8.0 sf
+243.2 881.6 m (16) show
+bl
+224 864 m
+224 880 l
+240 880 l
+240 864 l
+224 864 l
+cs
+bl
+hf 8.0 sf
+227.2 865.6 m (16) show
+bl
+240 864 m
+240 880 l
+256 880 l
+256 864 l
+240 864 l
+cs
+bl
+hf 8.0 sf
+243.2 865.6 m (16) show
+bl
+192 848 m
+192 864 l
+208 864 l
+208 848 l
+192 848 l
+cs
+bl
+hf 8.0 sf
+195.2 849.6 m (16) show
+bl
+208 848 m
+208 864 l
+224 864 l
+224 848 l
+208 848 l
+cs
+bl
+hf 8.0 sf
+211.2 849.6 m (16) show
+bl
+192 832 m
+192 848 l
+208 848 l
+208 832 l
+192 832 l
+cs
+bl
+hf 8.0 sf
+195.2 833.6 m (16) show
+bl
+208 832 m
+208 848 l
+224 848 l
+224 832 l
+208 832 l
+cs
+bl
+hf 8.0 sf
+211.2 833.6 m (16) show
+bl
+224 848 m
+224 864 l
+240 864 l
+240 848 l
+224 848 l
+cs
+bl
+hf 8.0 sf
+227.2 849.6 m (16) show
+bl
+240 848 m
+240 864 l
+256 864 l
+256 848 l
+240 848 l
+cs
+bl
+hf 8.0 sf
+243.2 849.6 m (16) show
+bl
+224 832 m
+224 848 l
+240 848 l
+240 832 l
+224 832 l
+cs
+bl
+hf 8.0 sf
+227.2 833.6 m (16) show
+bl
+240 832 m
+240 848 l
+256 848 l
+256 832 l
+240 832 l
+cs
+bl
+hf 8.0 sf
+243.2 833.6 m (16) show
+bl
+128 816 m
+128 832 l
+144 832 l
+144 816 l
+128 816 l
+cs
+bl
+hf 8.0 sf
+131.2 817.6 m (16) show
+bl
+144 816 m
+144 832 l
+160 832 l
+160 816 l
+144 816 l
+cs
+bl
+hf 8.0 sf
+147.2 817.6 m (16) show
+bl
+128 800 m
+128 816 l
+144 816 l
+144 800 l
+128 800 l
+cs
+bl
+hf 8.0 sf
+131.2 801.6 m (16) show
+bl
+144 800 m
+144 816 l
+160 816 l
+160 800 l
+144 800 l
+cs
+bl
+hf 8.0 sf
+147.2 801.6 m (16) show
+bl
+160 816 m
+160 832 l
+176 832 l
+176 816 l
+160 816 l
+cs
+bl
+hf 8.0 sf
+163.2 817.6 m (16) show
+bl
+176 816 m
+176 832 l
+192 832 l
+192 816 l
+176 816 l
+cs
+bl
+hf 8.0 sf
+179.2 817.6 m (16) show
+bl
+160 800 m
+160 816 l
+176 816 l
+176 800 l
+160 800 l
+cs
+bl
+hf 8.0 sf
+163.2 801.6 m (16) show
+bl
+176 800 m
+176 816 l
+192 816 l
+192 800 l
+176 800 l
+cs
+bl
+hf 8.0 sf
+179.2 801.6 m (16) show
+bl
+128 784 m
+128 800 l
+144 800 l
+144 784 l
+128 784 l
+cs
+bl
+hf 8.0 sf
+131.2 785.6 m (16) show
+bl
+144 784 m
+144 800 l
+160 800 l
+160 784 l
+144 784 l
+cs
+bl
+hf 8.0 sf
+147.2 785.6 m (16) show
+bl
+128 768 m
+128 784 l
+144 784 l
+144 768 l
+128 768 l
+cs
+bl
+hf 8.0 sf
+131.2 769.6 m (16) show
+bl
+144 768 m
+144 784 l
+160 784 l
+160 768 l
+144 768 l
+cs
+bl
+hf 8.0 sf
+147.2 769.6 m (16) show
+bl
+160 784 m
+160 800 l
+176 800 l
+176 784 l
+160 784 l
+cs
+bl
+hf 8.0 sf
+163.2 785.6 m (16) show
+bl
+176 784 m
+176 800 l
+192 800 l
+192 784 l
+176 784 l
+cs
+bl
+hf 8.0 sf
+179.2 785.6 m (16) show
+bl
+160 768 m
+160 784 l
+176 784 l
+176 768 l
+160 768 l
+cs
+bl
+hf 8.0 sf
+163.2 769.6 m (16) show
+bl
+176 768 m
+176 784 l
+192 784 l
+192 768 l
+176 768 l
+cs
+bl
+hf 8.0 sf
+179.2 769.6 m (16) show
+bl
+192 816 m
+192 832 l
+208 832 l
+208 816 l
+192 816 l
+cs
+bl
+hf 8.0 sf
+195.2 817.6 m (16) show
+bl
+208 816 m
+208 832 l
+224 832 l
+224 816 l
+208 816 l
+cs
+bl
+hf 8.0 sf
+211.2 817.6 m (16) show
+bl
+192 800 m
+192 816 l
+208 816 l
+208 800 l
+192 800 l
+cs
+bl
+hf 8.0 sf
+195.2 801.6 m (16) show
+bl
+208 800 m
+208 816 l
+224 816 l
+224 800 l
+208 800 l
+cs
+bl
+hf 8.0 sf
+211.2 801.6 m (16) show
+bl
+224 816 m
+224 832 l
+240 832 l
+240 816 l
+224 816 l
+cs
+bl
+hf 8.0 sf
+227.2 817.6 m (16) show
+bl
+240 816 m
+240 832 l
+256 832 l
+256 816 l
+240 816 l
+cs
+bl
+hf 8.0 sf
+243.2 817.6 m (16) show
+bl
+224 800 m
+224 816 l
+240 816 l
+240 800 l
+224 800 l
+cs
+bl
+hf 8.0 sf
+227.2 801.6 m (16) show
+bl
+240 800 m
+240 816 l
+256 816 l
+256 800 l
+240 800 l
+cs
+bl
+hf 8.0 sf
+243.2 801.6 m (16) show
+bl
+192 784 m
+192 800 l
+208 800 l
+208 784 l
+192 784 l
+cs
+bl
+hf 8.0 sf
+195.2 785.6 m (16) show
+bl
+208 784 m
+208 800 l
+224 800 l
+224 784 l
+208 784 l
+cs
+bl
+hf 8.0 sf
+211.2 785.6 m (16) show
+bl
+192 768 m
+192 784 l
+208 784 l
+208 768 l
+192 768 l
+cs
+bl
+hf 8.0 sf
+195.2 769.6 m (16) show
+bl
+208 768 m
+208 784 l
+224 784 l
+224 768 l
+208 768 l
+cs
+bl
+hf 8.0 sf
+211.2 769.6 m (16) show
+bl
+224 784 m
+224 800 l
+240 800 l
+240 784 l
+224 784 l
+cs
+bl
+hf 8.0 sf
+227.2 785.6 m (16) show
+bl
+240 784 m
+240 800 l
+256 800 l
+256 784 l
+240 784 l
+cs
+bl
+hf 8.0 sf
+243.2 785.6 m (16) show
+bl
+224 768 m
+224 784 l
+240 784 l
+240 768 l
+224 768 l
+cs
+bl
+hf 8.0 sf
+227.2 769.6 m (16) show
+bl
+240 768 m
+240 784 l
+256 784 l
+256 768 l
+240 768 l
+cs
+bl
+hf 8.0 sf
+243.2 769.6 m (16) show
+256 1008 m
+256 1024 l
+272 1024 l
+272 1008 l
+256 1008 l
+fl
+bl
+256 1008 m
+256 1024 l
+272 1024 l
+272 1008 l
+256 1008 l
+cs
+272 1008 m
+272 1024 l
+288 1024 l
+288 1008 l
+272 1008 l
+fl
+bl
+272 1008 m
+272 1024 l
+288 1024 l
+288 1008 l
+272 1008 l
+cs
+bl
+256 992 m
+256 1008 l
+272 1008 l
+272 992 l
+256 992 l
+cs
+bl
+hf 8.0 sf
+259.2 993.6 m (16) show
+272 992 m
+272 1008 l
+288 1008 l
+288 992 l
+272 992 l
+fl
+bl
+272 992 m
+272 1008 l
+288 1008 l
+288 992 l
+272 992 l
+cs
+288 1008 m
+288 1024 l
+304 1024 l
+304 1008 l
+288 1008 l
+fl
+bl
+288 1008 m
+288 1024 l
+304 1024 l
+304 1008 l
+288 1008 l
+cs
+304 1008 m
+304 1024 l
+320 1024 l
+320 1008 l
+304 1008 l
+fl
+bl
+304 1008 m
+304 1024 l
+320 1024 l
+320 1008 l
+304 1008 l
+cs
+bl
+288 992 m
+288 1008 l
+304 1008 l
+304 992 l
+288 992 l
+cs
+bl
+hf 8.0 sf
+291.2 993.6 m (16) show
+304 992 m
+304 1008 l
+320 1008 l
+320 992 l
+304 992 l
+fl
+bl
+304 992 m
+304 1008 l
+320 1008 l
+320 992 l
+304 992 l
+cs
+256 976 m
+256 992 l
+272 992 l
+272 976 l
+256 976 l
+fl
+bl
+256 976 m
+256 992 l
+272 992 l
+272 976 l
+256 976 l
+cs
+272 976 m
+272 992 l
+288 992 l
+288 976 l
+272 976 l
+fl
+bl
+272 976 m
+272 992 l
+288 992 l
+288 976 l
+272 976 l
+cs
+bl
+256 960 m
+256 976 l
+272 976 l
+272 960 l
+256 960 l
+cs
+bl
+hf 8.0 sf
+259.2 961.6 m (16) show
+272 960 m
+272 976 l
+288 976 l
+288 960 l
+272 960 l
+fl
+bl
+272 960 m
+272 976 l
+288 976 l
+288 960 l
+272 960 l
+cs
+288 976 m
+288 992 l
+304 992 l
+304 976 l
+288 976 l
+fl
+bl
+288 976 m
+288 992 l
+304 992 l
+304 976 l
+288 976 l
+cs
+304 976 m
+304 992 l
+320 992 l
+320 976 l
+304 976 l
+fl
+bl
+304 976 m
+304 992 l
+320 992 l
+320 976 l
+304 976 l
+cs
+bl
+288 960 m
+288 976 l
+304 976 l
+304 960 l
+288 960 l
+cs
+bl
+hf 8.0 sf
+291.2 961.6 m (16) show
+304 960 m
+304 976 l
+320 976 l
+320 960 l
+304 960 l
+fl
+bl
+304 960 m
+304 976 l
+320 976 l
+320 960 l
+304 960 l
+cs
+320 992 m
+320 1024 l
+352 1024 l
+352 992 l
+320 992 l
+fl
+bl
+320 992 m
+320 1024 l
+352 1024 l
+352 992 l
+320 992 l
+cs
+352 992 m
+352 1024 l
+384 1024 l
+384 992 l
+352 992 l
+fl
+bl
+352 992 m
+352 1024 l
+384 1024 l
+384 992 l
+352 992 l
+cs
+320 960 m
+320 992 l
+352 992 l
+352 960 l
+320 960 l
+fl
+bl
+320 960 m
+320 992 l
+352 992 l
+352 960 l
+320 960 l
+cs
+352 960 m
+352 992 l
+384 992 l
+384 960 l
+352 960 l
+fl
+bl
+352 960 m
+352 992 l
+384 992 l
+384 960 l
+352 960 l
+cs
+bl
+256 944 m
+256 960 l
+272 960 l
+272 944 l
+256 944 l
+cs
+bl
+hf 8.0 sf
+259.2 945.6 m (16) show
+bl
+272 944 m
+272 960 l
+288 960 l
+288 944 l
+272 944 l
+cs
+bl
+hf 8.0 sf
+275.2 945.6 m (16) show
+bl
+256 928 m
+256 944 l
+272 944 l
+272 928 l
+256 928 l
+cs
+bl
+hf 8.0 sf
+259.2 929.6 m (16) show
+bl
+272 928 m
+272 944 l
+288 944 l
+288 928 l
+272 928 l
+cs
+bl
+hf 8.0 sf
+275.2 929.6 m (16) show
+bl
+288 944 m
+288 960 l
+304 960 l
+304 944 l
+288 944 l
+cs
+bl
+hf 8.0 sf
+291.2 945.6 m (16) show
+bl
+304 944 m
+304 960 l
+320 960 l
+320 944 l
+304 944 l
+cs
+bl
+hf 8.0 sf
+307.2 945.6 m (16) show
+bl
+288 928 m
+288 944 l
+304 944 l
+304 928 l
+288 928 l
+cs
+bl
+hf 8.0 sf
+291.2 929.6 m (16) show
+bl
+304 928 m
+304 944 l
+320 944 l
+320 928 l
+304 928 l
+cs
+bl
+hf 8.0 sf
+307.2 929.6 m (16) show
+bl
+256 912 m
+256 928 l
+272 928 l
+272 912 l
+256 912 l
+cs
+bl
+hf 8.0 sf
+259.2 913.6 m (16) show
+bl
+272 912 m
+272 928 l
+288 928 l
+288 912 l
+272 912 l
+cs
+bl
+hf 8.0 sf
+275.2 913.6 m (16) show
+bl
+256 896 m
+256 912 l
+272 912 l
+272 896 l
+256 896 l
+cs
+bl
+hf 8.0 sf
+259.2 897.6 m (16) show
+bl
+272 896 m
+272 912 l
+288 912 l
+288 896 l
+272 896 l
+cs
+bl
+hf 8.0 sf
+275.2 897.6 m (16) show
+bl
+288 912 m
+288 928 l
+304 928 l
+304 912 l
+288 912 l
+cs
+bl
+hf 8.0 sf
+291.2 913.6 m (16) show
+bl
+304 912 m
+304 928 l
+320 928 l
+320 912 l
+304 912 l
+cs
+bl
+hf 8.0 sf
+307.2 913.6 m (16) show
+bl
+288 896 m
+288 912 l
+304 912 l
+304 896 l
+288 896 l
+cs
+bl
+hf 8.0 sf
+291.2 897.6 m (16) show
+bl
+304 896 m
+304 912 l
+320 912 l
+320 896 l
+304 896 l
+cs
+bl
+hf 8.0 sf
+307.2 897.6 m (16) show
+320 944 m
+320 960 l
+336 960 l
+336 944 l
+320 944 l
+fl
+bl
+320 944 m
+320 960 l
+336 960 l
+336 944 l
+320 944 l
+cs
+336 944 m
+336 960 l
+352 960 l
+352 944 l
+336 944 l
+fl
+bl
+336 944 m
+336 960 l
+352 960 l
+352 944 l
+336 944 l
+cs
+bl
+320 928 m
+320 944 l
+336 944 l
+336 928 l
+320 928 l
+cs
+bl
+hf 8.0 sf
+323.2 929.6 m (16) show
+336 928 m
+336 944 l
+352 944 l
+352 928 l
+336 928 l
+fl
+bl
+336 928 m
+336 944 l
+352 944 l
+352 928 l
+336 928 l
+cs
+352 944 m
+352 960 l
+368 960 l
+368 944 l
+352 944 l
+fl
+bl
+352 944 m
+352 960 l
+368 960 l
+368 944 l
+352 944 l
+cs
+368 944 m
+368 960 l
+384 960 l
+384 944 l
+368 944 l
+fl
+bl
+368 944 m
+368 960 l
+384 960 l
+384 944 l
+368 944 l
+cs
+bl
+352 928 m
+352 944 l
+368 944 l
+368 928 l
+352 928 l
+cs
+bl
+hf 8.0 sf
+355.2 929.6 m (16) show
+368 928 m
+368 944 l
+384 944 l
+384 928 l
+368 928 l
+fl
+bl
+368 928 m
+368 944 l
+384 944 l
+384 928 l
+368 928 l
+cs
+320 912 m
+320 928 l
+336 928 l
+336 912 l
+320 912 l
+fl
+bl
+320 912 m
+320 928 l
+336 928 l
+336 912 l
+320 912 l
+cs
+336 912 m
+336 928 l
+352 928 l
+352 912 l
+336 912 l
+fl
+bl
+336 912 m
+336 928 l
+352 928 l
+352 912 l
+336 912 l
+cs
+bl
+320 896 m
+320 912 l
+336 912 l
+336 896 l
+320 896 l
+cs
+bl
+hf 8.0 sf
+323.2 897.6 m (16) show
+336 896 m
+336 912 l
+352 912 l
+352 896 l
+336 896 l
+fl
+bl
+336 896 m
+336 912 l
+352 912 l
+352 896 l
+336 896 l
+cs
+352 912 m
+352 928 l
+368 928 l
+368 912 l
+352 912 l
+fl
+bl
+352 912 m
+352 928 l
+368 928 l
+368 912 l
+352 912 l
+cs
+368 912 m
+368 928 l
+384 928 l
+384 912 l
+368 912 l
+fl
+bl
+368 912 m
+368 928 l
+384 928 l
+384 912 l
+368 912 l
+cs
+bl
+352 896 m
+352 912 l
+368 912 l
+368 896 l
+352 896 l
+cs
+bl
+hf 8.0 sf
+355.2 897.6 m (16) show
+368 896 m
+368 912 l
+384 912 l
+384 896 l
+368 896 l
+fl
+bl
+368 896 m
+368 912 l
+384 912 l
+384 896 l
+368 896 l
+cs
+384 1008 m
+384 1024 l
+400 1024 l
+400 1008 l
+384 1008 l
+fl
+bl
+384 1008 m
+384 1024 l
+400 1024 l
+400 1008 l
+384 1008 l
+cs
+400 1008 m
+400 1024 l
+416 1024 l
+416 1008 l
+400 1008 l
+fl
+bl
+400 1008 m
+400 1024 l
+416 1024 l
+416 1008 l
+400 1008 l
+cs
+384 992 m
+384 1008 l
+400 1008 l
+400 992 l
+384 992 l
+fl
+bl
+384 992 m
+384 1008 l
+400 1008 l
+400 992 l
+384 992 l
+cs
+400 992 m
+400 1008 l
+416 1008 l
+416 992 l
+400 992 l
+fl
+bl
+400 992 m
+400 1008 l
+416 1008 l
+416 992 l
+400 992 l
+cs
+416 992 m
+416 1024 l
+448 1024 l
+448 992 l
+416 992 l
+fl
+bl
+416 992 m
+416 1024 l
+448 1024 l
+448 992 l
+416 992 l
+cs
+384 976 m
+384 992 l
+400 992 l
+400 976 l
+384 976 l
+fl
+bl
+384 976 m
+384 992 l
+400 992 l
+400 976 l
+384 976 l
+cs
+400 976 m
+400 992 l
+416 992 l
+416 976 l
+400 976 l
+fl
+bl
+400 976 m
+400 992 l
+416 992 l
+416 976 l
+400 976 l
+cs
+bl
+384 960 m
+384 976 l
+400 976 l
+400 960 l
+384 960 l
+cs
+bl
+hf 8.0 sf
+387.2 961.6 m (16) show
+400 960 m
+400 976 l
+416 976 l
+416 960 l
+400 960 l
+fl
+bl
+400 960 m
+400 976 l
+416 976 l
+416 960 l
+400 960 l
+cs
+416 976 m
+416 992 l
+432 992 l
+432 976 l
+416 976 l
+fl
+bl
+416 976 m
+416 992 l
+432 992 l
+432 976 l
+416 976 l
+cs
+432 976 m
+432 992 l
+448 992 l
+448 976 l
+432 976 l
+fl
+bl
+432 976 m
+432 992 l
+448 992 l
+448 976 l
+432 976 l
+cs
+416 960 m
+416 976 l
+432 976 l
+432 960 l
+416 960 l
+fl
+bl
+416 960 m
+416 976 l
+432 976 l
+432 960 l
+416 960 l
+cs
+432 960 m
+432 976 l
+448 976 l
+448 960 l
+432 960 l
+fl
+bl
+432 960 m
+432 976 l
+448 976 l
+448 960 l
+432 960 l
+cs
+448 992 m
+448 1024 l
+480 1024 l
+480 992 l
+448 992 l
+fl
+bl
+448 992 m
+448 1024 l
+480 1024 l
+480 992 l
+448 992 l
+cs
+480 992 m
+480 1024 l
+512 1024 l
+512 992 l
+480 992 l
+fl
+bl
+480 992 m
+480 1024 l
+512 1024 l
+512 992 l
+480 992 l
+cs
+448 960 m
+448 992 l
+480 992 l
+480 960 l
+448 960 l
+fl
+bl
+448 960 m
+448 992 l
+480 992 l
+480 960 l
+448 960 l
+cs
+480 960 m
+480 992 l
+512 992 l
+512 960 l
+480 960 l
+fl
+bl
+480 960 m
+480 992 l
+512 992 l
+512 960 l
+480 960 l
+cs
+bl
+384 944 m
+384 960 l
+400 960 l
+400 944 l
+384 944 l
+cs
+bl
+hf 8.0 sf
+387.2 945.6 m (16) show
+400 944 m
+400 960 l
+416 960 l
+416 944 l
+400 944 l
+fl
+bl
+400 944 m
+400 960 l
+416 960 l
+416 944 l
+400 944 l
+cs
+bl
+384 928 m
+384 944 l
+400 944 l
+400 928 l
+384 928 l
+cs
+bl
+hf 8.0 sf
+387.2 929.6 m (16) show
+bl
+400 928 m
+400 944 l
+416 944 l
+416 928 l
+400 928 l
+cs
+bl
+hf 8.0 sf
+403.2 929.6 m (16) show
+416 928 m
+416 960 l
+448 960 l
+448 928 l
+416 928 l
+fl
+bl
+416 928 m
+416 960 l
+448 960 l
+448 928 l
+416 928 l
+cs
+bl
+384 912 m
+384 928 l
+400 928 l
+400 912 l
+384 912 l
+cs
+bl
+hf 8.0 sf
+387.2 913.6 m (16) show
+bl
+400 912 m
+400 928 l
+416 928 l
+416 912 l
+400 912 l
+cs
+bl
+hf 8.0 sf
+403.2 913.6 m (16) show
+bl
+384 896 m
+384 912 l
+400 912 l
+400 896 l
+384 896 l
+cs
+bl
+hf 8.0 sf
+387.2 897.6 m (16) show
+bl
+400 896 m
+400 912 l
+416 912 l
+416 896 l
+400 896 l
+cs
+bl
+hf 8.0 sf
+403.2 897.6 m (16) show
+bl
+416 912 m
+416 928 l
+432 928 l
+432 912 l
+416 912 l
+cs
+bl
+hf 8.0 sf
+419.2 913.6 m (16) show
+432 912 m
+432 928 l
+448 928 l
+448 912 l
+432 912 l
+fl
+bl
+432 912 m
+432 928 l
+448 928 l
+448 912 l
+432 912 l
+cs
+bl
+416 896 m
+416 912 l
+432 912 l
+432 896 l
+416 896 l
+cs
+bl
+hf 8.0 sf
+419.2 897.6 m (16) show
+bl
+432 896 m
+432 912 l
+448 912 l
+448 896 l
+432 896 l
+cs
+bl
+hf 8.0 sf
+435.2 897.6 m (16) show
+448 944 m
+448 960 l
+464 960 l
+464 944 l
+448 944 l
+fl
+bl
+448 944 m
+448 960 l
+464 960 l
+464 944 l
+448 944 l
+cs
+464 944 m
+464 960 l
+480 960 l
+480 944 l
+464 944 l
+fl
+bl
+464 944 m
+464 960 l
+480 960 l
+480 944 l
+464 944 l
+cs
+448 928 m
+448 944 l
+464 944 l
+464 928 l
+448 928 l
+fl
+bl
+448 928 m
+448 944 l
+464 944 l
+464 928 l
+448 928 l
+cs
+464 928 m
+464 944 l
+480 944 l
+480 928 l
+464 928 l
+fl
+bl
+464 928 m
+464 944 l
+480 944 l
+480 928 l
+464 928 l
+cs
+480 928 m
+480 960 l
+512 960 l
+512 928 l
+480 928 l
+fl
+bl
+480 928 m
+480 960 l
+512 960 l
+512 928 l
+480 928 l
+cs
+448 912 m
+448 928 l
+464 928 l
+464 912 l
+448 912 l
+fl
+bl
+448 912 m
+448 928 l
+464 928 l
+464 912 l
+448 912 l
+cs
+464 912 m
+464 928 l
+480 928 l
+480 912 l
+464 912 l
+fl
+bl
+464 912 m
+464 928 l
+480 928 l
+480 912 l
+464 912 l
+cs
+bl
+448 896 m
+448 912 l
+464 912 l
+464 896 l
+448 896 l
+cs
+bl
+hf 8.0 sf
+451.2 897.6 m (16) show
+464 896 m
+464 912 l
+480 912 l
+480 896 l
+464 896 l
+fl
+bl
+464 896 m
+464 912 l
+480 912 l
+480 896 l
+464 896 l
+cs
+480 912 m
+480 928 l
+496 928 l
+496 912 l
+480 912 l
+fl
+bl
+480 912 m
+480 928 l
+496 928 l
+496 912 l
+480 912 l
+cs
+496 912 m
+496 928 l
+512 928 l
+512 912 l
+496 912 l
+fl
+bl
+496 912 m
+496 928 l
+512 928 l
+512 912 l
+496 912 l
+cs
+480 896 m
+480 912 l
+496 912 l
+496 896 l
+480 896 l
+fl
+bl
+480 896 m
+480 912 l
+496 912 l
+496 896 l
+480 896 l
+cs
+496 896 m
+496 912 l
+512 912 l
+512 896 l
+496 896 l
+fl
+bl
+496 896 m
+496 912 l
+512 912 l
+512 896 l
+496 896 l
+cs
+256 880 m
+256 896 l
+272 896 l
+272 880 l
+256 880 l
+fl
+bl
+256 880 m
+256 896 l
+272 896 l
+272 880 l
+256 880 l
+cs
+272 880 m
+272 896 l
+288 896 l
+288 880 l
+272 880 l
+fl
+bl
+272 880 m
+272 896 l
+288 896 l
+288 880 l
+272 880 l
+cs
+256 864 m
+256 880 l
+272 880 l
+272 864 l
+256 864 l
+fl
+bl
+256 864 m
+256 880 l
+272 880 l
+272 864 l
+256 864 l
+cs
+272 864 m
+272 880 l
+288 880 l
+288 864 l
+272 864 l
+fl
+bl
+272 864 m
+272 880 l
+288 880 l
+288 864 l
+272 864 l
+cs
+288 880 m
+288 896 l
+304 896 l
+304 880 l
+288 880 l
+fl
+bl
+288 880 m
+288 896 l
+304 896 l
+304 880 l
+288 880 l
+cs
+304 880 m
+304 896 l
+320 896 l
+320 880 l
+304 880 l
+fl
+bl
+304 880 m
+304 896 l
+320 896 l
+320 880 l
+304 880 l
+cs
+bl
+288 864 m
+288 880 l
+304 880 l
+304 864 l
+288 864 l
+cs
+bl
+hf 8.0 sf
+291.2 865.6 m (16) show
+304 864 m
+304 880 l
+320 880 l
+320 864 l
+304 864 l
+fl
+bl
+304 864 m
+304 880 l
+320 880 l
+320 864 l
+304 864 l
+cs
+256 832 m
+256 864 l
+288 864 l
+288 832 l
+256 832 l
+fl
+bl
+256 832 m
+256 864 l
+288 864 l
+288 832 l
+256 832 l
+cs
+288 848 m
+288 864 l
+304 864 l
+304 848 l
+288 848 l
+fl
+bl
+288 848 m
+288 864 l
+304 864 l
+304 848 l
+288 848 l
+cs
+304 848 m
+304 864 l
+320 864 l
+320 848 l
+304 848 l
+fl
+bl
+304 848 m
+304 864 l
+320 864 l
+320 848 l
+304 848 l
+cs
+288 832 m
+288 848 l
+304 848 l
+304 832 l
+288 832 l
+fl
+bl
+288 832 m
+288 848 l
+304 848 l
+304 832 l
+288 832 l
+cs
+304 832 m
+304 848 l
+320 848 l
+320 832 l
+304 832 l
+fl
+bl
+304 832 m
+304 848 l
+320 848 l
+320 832 l
+304 832 l
+cs
+320 864 m
+320 896 l
+352 896 l
+352 864 l
+320 864 l
+fl
+bl
+320 864 m
+320 896 l
+352 896 l
+352 864 l
+320 864 l
+cs
+352 864 m
+352 896 l
+384 896 l
+384 864 l
+352 864 l
+fl
+bl
+352 864 m
+352 896 l
+384 896 l
+384 864 l
+352 864 l
+cs
+320 832 m
+320 864 l
+352 864 l
+352 832 l
+320 832 l
+fl
+bl
+320 832 m
+320 864 l
+352 864 l
+352 832 l
+320 832 l
+cs
+352 832 m
+352 864 l
+384 864 l
+384 832 l
+352 832 l
+fl
+bl
+352 832 m
+352 864 l
+384 864 l
+384 832 l
+352 832 l
+cs
+bl
+256 816 m
+256 832 l
+272 832 l
+272 816 l
+256 816 l
+cs
+bl
+hf 8.0 sf
+259.2 817.6 m (16) show
+272 816 m
+272 832 l
+288 832 l
+288 816 l
+272 816 l
+fl
+bl
+272 816 m
+272 832 l
+288 832 l
+288 816 l
+272 816 l
+cs
+bl
+256 800 m
+256 816 l
+272 816 l
+272 800 l
+256 800 l
+cs
+bl
+hf 8.0 sf
+259.2 801.6 m (16) show
+bl
+272 800 m
+272 816 l
+288 816 l
+288 800 l
+272 800 l
+cs
+bl
+hf 8.0 sf
+275.2 801.6 m (16) show
+bl
+288 816 m
+288 832 l
+304 832 l
+304 816 l
+288 816 l
+cs
+bl
+hf 8.0 sf
+291.2 817.6 m (16) show
+bl
+304 816 m
+304 832 l
+320 832 l
+320 816 l
+304 816 l
+cs
+bl
+hf 8.0 sf
+307.2 817.6 m (16) show
+bl
+288 800 m
+288 816 l
+304 816 l
+304 800 l
+288 800 l
+cs
+bl
+hf 8.0 sf
+291.2 801.6 m (16) show
+bl
+304 800 m
+304 816 l
+320 816 l
+320 800 l
+304 800 l
+cs
+bl
+hf 8.0 sf
+307.2 801.6 m (16) show
+256 768 m
+256 800 l
+288 800 l
+288 768 l
+256 768 l
+fl
+bl
+256 768 m
+256 800 l
+288 800 l
+288 768 l
+256 768 l
+cs
+bl
+288 784 m
+288 800 l
+304 800 l
+304 784 l
+288 784 l
+cs
+bl
+hf 8.0 sf
+291.2 785.6 m (16) show
+304 784 m
+304 800 l
+320 800 l
+320 784 l
+304 784 l
+fl
+bl
+304 784 m
+304 800 l
+320 800 l
+320 784 l
+304 784 l
+cs
+bl
+288 768 m
+288 784 l
+304 784 l
+304 768 l
+288 768 l
+cs
+bl
+hf 8.0 sf
+291.2 769.6 m (16) show
+bl
+304 768 m
+304 784 l
+320 784 l
+320 768 l
+304 768 l
+cs
+bl
+hf 8.0 sf
+307.2 769.6 m (16) show
+320 816 m
+320 832 l
+336 832 l
+336 816 l
+320 816 l
+fl
+bl
+320 816 m
+320 832 l
+336 832 l
+336 816 l
+320 816 l
+cs
+336 816 m
+336 832 l
+352 832 l
+352 816 l
+336 816 l
+fl
+bl
+336 816 m
+336 832 l
+352 832 l
+352 816 l
+336 816 l
+cs
+320 800 m
+320 816 l
+336 816 l
+336 800 l
+320 800 l
+fl
+bl
+320 800 m
+320 816 l
+336 816 l
+336 800 l
+320 800 l
+cs
+336 800 m
+336 816 l
+352 816 l
+352 800 l
+336 800 l
+fl
+bl
+336 800 m
+336 816 l
+352 816 l
+352 800 l
+336 800 l
+cs
+352 816 m
+352 832 l
+368 832 l
+368 816 l
+352 816 l
+fl
+bl
+352 816 m
+352 832 l
+368 832 l
+368 816 l
+352 816 l
+cs
+368 816 m
+368 832 l
+384 832 l
+384 816 l
+368 816 l
+fl
+bl
+368 816 m
+368 832 l
+384 832 l
+384 816 l
+368 816 l
+cs
+bl
+352 800 m
+352 816 l
+368 816 l
+368 800 l
+352 800 l
+cs
+bl
+hf 8.0 sf
+355.2 801.6 m (16) show
+368 800 m
+368 816 l
+384 816 l
+384 800 l
+368 800 l
+fl
+bl
+368 800 m
+368 816 l
+384 816 l
+384 800 l
+368 800 l
+cs
+320 768 m
+320 800 l
+352 800 l
+352 768 l
+320 768 l
+fl
+bl
+320 768 m
+320 800 l
+352 800 l
+352 768 l
+320 768 l
+cs
+352 784 m
+352 800 l
+368 800 l
+368 784 l
+352 784 l
+fl
+bl
+352 784 m
+352 800 l
+368 800 l
+368 784 l
+352 784 l
+cs
+368 784 m
+368 800 l
+384 800 l
+384 784 l
+368 784 l
+fl
+bl
+368 784 m
+368 800 l
+384 800 l
+384 784 l
+368 784 l
+cs
+352 768 m
+352 784 l
+368 784 l
+368 768 l
+352 768 l
+fl
+bl
+352 768 m
+352 784 l
+368 784 l
+368 768 l
+352 768 l
+cs
+368 768 m
+368 784 l
+384 784 l
+384 768 l
+368 768 l
+fl
+bl
+368 768 m
+368 784 l
+384 784 l
+384 768 l
+368 768 l
+cs
+384 880 m
+384 896 l
+400 896 l
+400 880 l
+384 880 l
+fl
+bl
+384 880 m
+384 896 l
+400 896 l
+400 880 l
+384 880 l
+cs
+400 880 m
+400 896 l
+416 896 l
+416 880 l
+400 880 l
+fl
+bl
+400 880 m
+400 896 l
+416 896 l
+416 880 l
+400 880 l
+cs
+bl
+384 864 m
+384 880 l
+400 880 l
+400 864 l
+384 864 l
+cs
+bl
+hf 8.0 sf
+387.2 865.6 m (16) show
+400 864 m
+400 880 l
+416 880 l
+416 864 l
+400 864 l
+fl
+bl
+400 864 m
+400 880 l
+416 880 l
+416 864 l
+400 864 l
+cs
+416 880 m
+416 896 l
+432 896 l
+432 880 l
+416 880 l
+fl
+bl
+416 880 m
+416 896 l
+432 896 l
+432 880 l
+416 880 l
+cs
+432 880 m
+432 896 l
+448 896 l
+448 880 l
+432 880 l
+fl
+bl
+432 880 m
+432 896 l
+448 896 l
+448 880 l
+432 880 l
+cs
+bl
+416 864 m
+416 880 l
+432 880 l
+432 864 l
+416 864 l
+cs
+bl
+hf 8.0 sf
+419.2 865.6 m (16) show
+432 864 m
+432 880 l
+448 880 l
+448 864 l
+432 864 l
+fl
+bl
+432 864 m
+432 880 l
+448 880 l
+448 864 l
+432 864 l
+cs
+384 848 m
+384 864 l
+400 864 l
+400 848 l
+384 848 l
+fl
+bl
+384 848 m
+384 864 l
+400 864 l
+400 848 l
+384 848 l
+cs
+400 848 m
+400 864 l
+416 864 l
+416 848 l
+400 848 l
+fl
+bl
+400 848 m
+400 864 l
+416 864 l
+416 848 l
+400 848 l
+cs
+bl
+384 832 m
+384 848 l
+400 848 l
+400 832 l
+384 832 l
+cs
+bl
+hf 8.0 sf
+387.2 833.6 m (16) show
+400 832 m
+400 848 l
+416 848 l
+416 832 l
+400 832 l
+fl
+bl
+400 832 m
+400 848 l
+416 848 l
+416 832 l
+400 832 l
+cs
+416 848 m
+416 864 l
+432 864 l
+432 848 l
+416 848 l
+fl
+bl
+416 848 m
+416 864 l
+432 864 l
+432 848 l
+416 848 l
+cs
+432 848 m
+432 864 l
+448 864 l
+448 848 l
+432 848 l
+fl
+bl
+432 848 m
+432 864 l
+448 864 l
+448 848 l
+432 848 l
+cs
+bl
+416 832 m
+416 848 l
+432 848 l
+432 832 l
+416 832 l
+cs
+bl
+hf 8.0 sf
+419.2 833.6 m (16) show
+432 832 m
+432 848 l
+448 848 l
+448 832 l
+432 832 l
+fl
+bl
+432 832 m
+432 848 l
+448 848 l
+448 832 l
+432 832 l
+cs
+448 864 m
+448 896 l
+480 896 l
+480 864 l
+448 864 l
+fl
+bl
+448 864 m
+448 896 l
+480 896 l
+480 864 l
+448 864 l
+cs
+480 864 m
+480 896 l
+512 896 l
+512 864 l
+480 864 l
+fl
+bl
+480 864 m
+480 896 l
+512 896 l
+512 864 l
+480 864 l
+cs
+448 832 m
+448 864 l
+480 864 l
+480 832 l
+448 832 l
+fl
+bl
+448 832 m
+448 864 l
+480 864 l
+480 832 l
+448 832 l
+cs
+480 832 m
+480 864 l
+512 864 l
+512 832 l
+480 832 l
+fl
+bl
+480 832 m
+480 864 l
+512 864 l
+512 832 l
+480 832 l
+cs
+bl
+384 816 m
+384 832 l
+400 832 l
+400 816 l
+384 816 l
+cs
+bl
+hf 8.0 sf
+387.2 817.6 m (16) show
+bl
+400 816 m
+400 832 l
+416 832 l
+416 816 l
+400 816 l
+cs
+bl
+hf 8.0 sf
+403.2 817.6 m (16) show
+bl
+384 800 m
+384 816 l
+400 816 l
+400 800 l
+384 800 l
+cs
+bl
+hf 8.0 sf
+387.2 801.6 m (16) show
+bl
+400 800 m
+400 816 l
+416 816 l
+416 800 l
+400 800 l
+cs
+bl
+hf 8.0 sf
+403.2 801.6 m (16) show
+bl
+416 816 m
+416 832 l
+432 832 l
+432 816 l
+416 816 l
+cs
+bl
+hf 8.0 sf
+419.2 817.6 m (16) show
+bl
+432 816 m
+432 832 l
+448 832 l
+448 816 l
+432 816 l
+cs
+bl
+hf 8.0 sf
+435.2 817.6 m (16) show
+bl
+416 800 m
+416 816 l
+432 816 l
+432 800 l
+416 800 l
+cs
+bl
+hf 8.0 sf
+419.2 801.6 m (16) show
+bl
+432 800 m
+432 816 l
+448 816 l
+448 800 l
+432 800 l
+cs
+bl
+hf 8.0 sf
+435.2 801.6 m (16) show
+bl
+384 784 m
+384 800 l
+400 800 l
+400 784 l
+384 784 l
+cs
+bl
+hf 8.0 sf
+387.2 785.6 m (16) show
+bl
+400 784 m
+400 800 l
+416 800 l
+416 784 l
+400 784 l
+cs
+bl
+hf 8.0 sf
+403.2 785.6 m (16) show
+bl
+384 768 m
+384 784 l
+400 784 l
+400 768 l
+384 768 l
+cs
+bl
+hf 8.0 sf
+387.2 769.6 m (16) show
+bl
+400 768 m
+400 784 l
+416 784 l
+416 768 l
+400 768 l
+cs
+bl
+hf 8.0 sf
+403.2 769.6 m (16) show
+bl
+416 784 m
+416 800 l
+432 800 l
+432 784 l
+416 784 l
+cs
+bl
+hf 8.0 sf
+419.2 785.6 m (16) show
+bl
+432 784 m
+432 800 l
+448 800 l
+448 784 l
+432 784 l
+cs
+bl
+hf 8.0 sf
+435.2 785.6 m (16) show
+bl
+416 768 m
+416 784 l
+432 784 l
+432 768 l
+416 768 l
+cs
+bl
+hf 8.0 sf
+419.2 769.6 m (16) show
+bl
+432 768 m
+432 784 l
+448 784 l
+448 768 l
+432 768 l
+cs
+bl
+hf 8.0 sf
+435.2 769.6 m (16) show
+448 816 m
+448 832 l
+464 832 l
+464 816 l
+448 816 l
+fl
+bl
+448 816 m
+448 832 l
+464 832 l
+464 816 l
+448 816 l
+cs
+464 816 m
+464 832 l
+480 832 l
+480 816 l
+464 816 l
+fl
+bl
+464 816 m
+464 832 l
+480 832 l
+480 816 l
+464 816 l
+cs
+bl
+448 800 m
+448 816 l
+464 816 l
+464 800 l
+448 800 l
+cs
+bl
+hf 8.0 sf
+451.2 801.6 m (16) show
+464 800 m
+464 816 l
+480 816 l
+480 800 l
+464 800 l
+fl
+bl
+464 800 m
+464 816 l
+480 816 l
+480 800 l
+464 800 l
+cs
+480 816 m
+480 832 l
+496 832 l
+496 816 l
+480 816 l
+fl
+bl
+480 816 m
+480 832 l
+496 832 l
+496 816 l
+480 816 l
+cs
+496 816 m
+496 832 l
+512 832 l
+512 816 l
+496 816 l
+fl
+bl
+496 816 m
+496 832 l
+512 832 l
+512 816 l
+496 816 l
+cs
+bl
+480 800 m
+480 816 l
+496 816 l
+496 800 l
+480 800 l
+cs
+bl
+hf 8.0 sf
+483.2 801.6 m (16) show
+496 800 m
+496 816 l
+512 816 l
+512 800 l
+496 800 l
+fl
+bl
+496 800 m
+496 816 l
+512 816 l
+512 800 l
+496 800 l
+cs
+448 784 m
+448 800 l
+464 800 l
+464 784 l
+448 784 l
+fl
+bl
+448 784 m
+448 800 l
+464 800 l
+464 784 l
+448 784 l
+cs
+464 784 m
+464 800 l
+480 800 l
+480 784 l
+464 784 l
+fl
+bl
+464 784 m
+464 800 l
+480 800 l
+480 784 l
+464 784 l
+cs
+bl
+448 768 m
+448 784 l
+464 784 l
+464 768 l
+448 768 l
+cs
+bl
+hf 8.0 sf
+451.2 769.6 m (16) show
+464 768 m
+464 784 l
+480 784 l
+480 768 l
+464 768 l
+fl
+bl
+464 768 m
+464 784 l
+480 784 l
+480 768 l
+464 768 l
+cs
+480 784 m
+480 800 l
+496 800 l
+496 784 l
+480 784 l
+fl
+bl
+480 784 m
+480 800 l
+496 800 l
+496 784 l
+480 784 l
+cs
+496 784 m
+496 800 l
+512 800 l
+512 784 l
+496 784 l
+fl
+bl
+496 784 m
+496 800 l
+512 800 l
+512 784 l
+496 784 l
+cs
+bl
+480 768 m
+480 784 l
+496 784 l
+496 768 l
+480 768 l
+cs
+bl
+hf 8.0 sf
+483.2 769.6 m (16) show
+496 768 m
+496 784 l
+512 784 l
+512 768 l
+496 768 l
+fl
+bl
+496 768 m
+496 784 l
+512 784 l
+512 768 l
+496 768 l
+cs
+0 752 m
+0 768 l
+16 768 l
+16 752 l
+0 752 l
+fl
+bl
+0 752 m
+0 768 l
+16 768 l
+16 752 l
+0 752 l
+cs
+bl
+16 752 m
+16 768 l
+32 768 l
+32 752 l
+16 752 l
+cs
+bl
+hf 8.0 sf
+19.2 753.6 m (16) show
+0 736 m
+0 752 l
+16 752 l
+16 736 l
+0 736 l
+fl
+bl
+0 736 m
+0 752 l
+16 752 l
+16 736 l
+0 736 l
+cs
+16 736 m
+16 752 l
+32 752 l
+32 736 l
+16 736 l
+fl
+bl
+16 736 m
+16 752 l
+32 752 l
+32 736 l
+16 736 l
+cs
+32 752 m
+32 768 l
+48 768 l
+48 752 l
+32 752 l
+fl
+bl
+32 752 m
+32 768 l
+48 768 l
+48 752 l
+32 752 l
+cs
+bl
+48 752 m
+48 768 l
+64 768 l
+64 752 l
+48 752 l
+cs
+bl
+hf 8.0 sf
+51.2 753.6 m (16) show
+32 736 m
+32 752 l
+48 752 l
+48 736 l
+32 736 l
+fl
+bl
+32 736 m
+32 752 l
+48 752 l
+48 736 l
+32 736 l
+cs
+48 736 m
+48 752 l
+64 752 l
+64 736 l
+48 736 l
+fl
+bl
+48 736 m
+48 752 l
+64 752 l
+64 736 l
+48 736 l
+cs
+0 720 m
+0 736 l
+16 736 l
+16 720 l
+0 720 l
+fl
+bl
+0 720 m
+0 736 l
+16 736 l
+16 720 l
+0 720 l
+cs
+bl
+16 720 m
+16 736 l
+32 736 l
+32 720 l
+16 720 l
+cs
+bl
+hf 8.0 sf
+19.2 721.6 m (16) show
+0 704 m
+0 720 l
+16 720 l
+16 704 l
+0 704 l
+fl
+bl
+0 704 m
+0 720 l
+16 720 l
+16 704 l
+0 704 l
+cs
+16 704 m
+16 720 l
+32 720 l
+32 704 l
+16 704 l
+fl
+bl
+16 704 m
+16 720 l
+32 720 l
+32 704 l
+16 704 l
+cs
+32 720 m
+32 736 l
+48 736 l
+48 720 l
+32 720 l
+fl
+bl
+32 720 m
+32 736 l
+48 736 l
+48 720 l
+32 720 l
+cs
+bl
+48 720 m
+48 736 l
+64 736 l
+64 720 l
+48 720 l
+cs
+bl
+hf 8.0 sf
+51.2 721.6 m (16) show
+32 704 m
+32 720 l
+48 720 l
+48 704 l
+32 704 l
+fl
+bl
+32 704 m
+32 720 l
+48 720 l
+48 704 l
+32 704 l
+cs
+48 704 m
+48 720 l
+64 720 l
+64 704 l
+48 704 l
+fl
+bl
+48 704 m
+48 720 l
+64 720 l
+64 704 l
+48 704 l
+cs
+bl
+64 752 m
+64 768 l
+80 768 l
+80 752 l
+64 752 l
+cs
+bl
+hf 8.0 sf
+67.2 753.6 m (16) show
+bl
+80 752 m
+80 768 l
+96 768 l
+96 752 l
+80 752 l
+cs
+bl
+hf 8.0 sf
+83.2 753.6 m (16) show
+bl
+64 736 m
+64 752 l
+80 752 l
+80 736 l
+64 736 l
+cs
+bl
+hf 8.0 sf
+67.2 737.6 m (16) show
+bl
+80 736 m
+80 752 l
+96 752 l
+96 736 l
+80 736 l
+cs
+bl
+hf 8.0 sf
+83.2 737.6 m (16) show
+bl
+96 752 m
+96 768 l
+112 768 l
+112 752 l
+96 752 l
+cs
+bl
+hf 8.0 sf
+99.2 753.6 m (16) show
+bl
+112 752 m
+112 768 l
+128 768 l
+128 752 l
+112 752 l
+cs
+bl
+hf 8.0 sf
+115.2 753.6 m (16) show
+bl
+96 736 m
+96 752 l
+112 752 l
+112 736 l
+96 736 l
+cs
+bl
+hf 8.0 sf
+99.2 737.6 m (16) show
+bl
+112 736 m
+112 752 l
+128 752 l
+128 736 l
+112 736 l
+cs
+bl
+hf 8.0 sf
+115.2 737.6 m (16) show
+bl
+64 720 m
+64 736 l
+80 736 l
+80 720 l
+64 720 l
+cs
+bl
+hf 8.0 sf
+67.2 721.6 m (16) show
+bl
+80 720 m
+80 736 l
+96 736 l
+96 720 l
+80 720 l
+cs
+bl
+hf 8.0 sf
+83.2 721.6 m (16) show
+bl
+64 704 m
+64 720 l
+80 720 l
+80 704 l
+64 704 l
+cs
+bl
+hf 8.0 sf
+67.2 705.6 m (16) show
+bl
+80 704 m
+80 720 l
+96 720 l
+96 704 l
+80 704 l
+cs
+bl
+hf 8.0 sf
+83.2 705.6 m (16) show
+bl
+96 720 m
+96 736 l
+112 736 l
+112 720 l
+96 720 l
+cs
+bl
+hf 8.0 sf
+99.2 721.6 m (16) show
+bl
+112 720 m
+112 736 l
+128 736 l
+128 720 l
+112 720 l
+cs
+bl
+hf 8.0 sf
+115.2 721.6 m (16) show
+bl
+96 704 m
+96 720 l
+112 720 l
+112 704 l
+96 704 l
+cs
+bl
+hf 8.0 sf
+99.2 705.6 m (16) show
+bl
+112 704 m
+112 720 l
+128 720 l
+128 704 l
+112 704 l
+cs
+bl
+hf 8.0 sf
+115.2 705.6 m (16) show
+0 672 m
+0 704 l
+32 704 l
+32 672 l
+0 672 l
+fl
+bl
+0 672 m
+0 704 l
+32 704 l
+32 672 l
+0 672 l
+cs
+32 672 m
+32 704 l
+64 704 l
+64 672 l
+32 672 l
+fl
+bl
+32 672 m
+32 704 l
+64 704 l
+64 672 l
+32 672 l
+cs
+0 640 m
+0 672 l
+32 672 l
+32 640 l
+0 640 l
+fl
+bl
+0 640 m
+0 672 l
+32 672 l
+32 640 l
+0 640 l
+cs
+32 640 m
+32 672 l
+64 672 l
+64 640 l
+32 640 l
+fl
+bl
+32 640 m
+32 672 l
+64 672 l
+64 640 l
+32 640 l
+cs
+64 688 m
+64 704 l
+80 704 l
+80 688 l
+64 688 l
+fl
+bl
+64 688 m
+64 704 l
+80 704 l
+80 688 l
+64 688 l
+cs
+bl
+80 688 m
+80 704 l
+96 704 l
+96 688 l
+80 688 l
+cs
+bl
+hf 8.0 sf
+83.2 689.6 m (16) show
+64 672 m
+64 688 l
+80 688 l
+80 672 l
+64 672 l
+fl
+bl
+64 672 m
+64 688 l
+80 688 l
+80 672 l
+64 672 l
+cs
+80 672 m
+80 688 l
+96 688 l
+96 672 l
+80 672 l
+fl
+bl
+80 672 m
+80 688 l
+96 688 l
+96 672 l
+80 672 l
+cs
+96 688 m
+96 704 l
+112 704 l
+112 688 l
+96 688 l
+fl
+bl
+96 688 m
+96 704 l
+112 704 l
+112 688 l
+96 688 l
+cs
+bl
+112 688 m
+112 704 l
+128 704 l
+128 688 l
+112 688 l
+cs
+bl
+hf 8.0 sf
+115.2 689.6 m (16) show
+96 672 m
+96 688 l
+112 688 l
+112 672 l
+96 672 l
+fl
+bl
+96 672 m
+96 688 l
+112 688 l
+112 672 l
+96 672 l
+cs
+112 672 m
+112 688 l
+128 688 l
+128 672 l
+112 672 l
+fl
+bl
+112 672 m
+112 688 l
+128 688 l
+128 672 l
+112 672 l
+cs
+64 656 m
+64 672 l
+80 672 l
+80 656 l
+64 656 l
+fl
+bl
+64 656 m
+64 672 l
+80 672 l
+80 656 l
+64 656 l
+cs
+bl
+80 656 m
+80 672 l
+96 672 l
+96 656 l
+80 656 l
+cs
+bl
+hf 8.0 sf
+83.2 657.6 m (16) show
+64 640 m
+64 656 l
+80 656 l
+80 640 l
+64 640 l
+fl
+bl
+64 640 m
+64 656 l
+80 656 l
+80 640 l
+64 640 l
+cs
+80 640 m
+80 656 l
+96 656 l
+96 640 l
+80 640 l
+fl
+bl
+80 640 m
+80 656 l
+96 656 l
+96 640 l
+80 640 l
+cs
+96 656 m
+96 672 l
+112 672 l
+112 656 l
+96 656 l
+fl
+bl
+96 656 m
+96 672 l
+112 672 l
+112 656 l
+96 656 l
+cs
+bl
+112 656 m
+112 672 l
+128 672 l
+128 656 l
+112 656 l
+cs
+bl
+hf 8.0 sf
+115.2 657.6 m (16) show
+96 640 m
+96 656 l
+112 656 l
+112 640 l
+96 640 l
+fl
+bl
+96 640 m
+96 656 l
+112 656 l
+112 640 l
+96 640 l
+cs
+112 640 m
+112 656 l
+128 656 l
+128 640 l
+112 640 l
+fl
+bl
+112 640 m
+112 656 l
+128 656 l
+128 640 l
+112 640 l
+cs
+128 752 m
+128 768 l
+144 768 l
+144 752 l
+128 752 l
+fl
+bl
+128 752 m
+128 768 l
+144 768 l
+144 752 l
+128 752 l
+cs
+144 752 m
+144 768 l
+160 768 l
+160 752 l
+144 752 l
+fl
+bl
+144 752 m
+144 768 l
+160 768 l
+160 752 l
+144 752 l
+cs
+128 736 m
+128 752 l
+144 752 l
+144 736 l
+128 736 l
+fl
+bl
+128 736 m
+128 752 l
+144 752 l
+144 736 l
+128 736 l
+cs
+144 736 m
+144 752 l
+160 752 l
+160 736 l
+144 736 l
+fl
+bl
+144 736 m
+144 752 l
+160 752 l
+160 736 l
+144 736 l
+cs
+160 736 m
+160 768 l
+192 768 l
+192 736 l
+160 736 l
+fl
+bl
+160 736 m
+160 768 l
+192 768 l
+192 736 l
+160 736 l
+cs
+128 720 m
+128 736 l
+144 736 l
+144 720 l
+128 720 l
+fl
+bl
+128 720 m
+128 736 l
+144 736 l
+144 720 l
+128 720 l
+cs
+bl
+144 720 m
+144 736 l
+160 736 l
+160 720 l
+144 720 l
+cs
+bl
+hf 8.0 sf
+147.2 721.6 m (16) show
+128 704 m
+128 720 l
+144 720 l
+144 704 l
+128 704 l
+fl
+bl
+128 704 m
+128 720 l
+144 720 l
+144 704 l
+128 704 l
+cs
+144 704 m
+144 720 l
+160 720 l
+160 704 l
+144 704 l
+fl
+bl
+144 704 m
+144 720 l
+160 720 l
+160 704 l
+144 704 l
+cs
+160 720 m
+160 736 l
+176 736 l
+176 720 l
+160 720 l
+fl
+bl
+160 720 m
+160 736 l
+176 736 l
+176 720 l
+160 720 l
+cs
+176 720 m
+176 736 l
+192 736 l
+192 720 l
+176 720 l
+fl
+bl
+176 720 m
+176 736 l
+192 736 l
+192 720 l
+176 720 l
+cs
+160 704 m
+160 720 l
+176 720 l
+176 704 l
+160 704 l
+fl
+bl
+160 704 m
+160 720 l
+176 720 l
+176 704 l
+160 704 l
+cs
+176 704 m
+176 720 l
+192 720 l
+192 704 l
+176 704 l
+fl
+bl
+176 704 m
+176 720 l
+192 720 l
+192 704 l
+176 704 l
+cs
+bl
+192 752 m
+192 768 l
+208 768 l
+208 752 l
+192 752 l
+cs
+bl
+hf 8.0 sf
+195.2 753.6 m (16) show
+bl
+208 752 m
+208 768 l
+224 768 l
+224 752 l
+208 752 l
+cs
+bl
+hf 8.0 sf
+211.2 753.6 m (16) show
+192 736 m
+192 752 l
+208 752 l
+208 736 l
+192 736 l
+fl
+bl
+192 736 m
+192 752 l
+208 752 l
+208 736 l
+192 736 l
+cs
+bl
+208 736 m
+208 752 l
+224 752 l
+224 736 l
+208 736 l
+cs
+bl
+hf 8.0 sf
+211.2 737.6 m (16) show
+224 736 m
+224 768 l
+256 768 l
+256 736 l
+224 736 l
+fl
+bl
+224 736 m
+224 768 l
+256 768 l
+256 736 l
+224 736 l
+cs
+bl
+192 720 m
+192 736 l
+208 736 l
+208 720 l
+192 720 l
+cs
+bl
+hf 8.0 sf
+195.2 721.6 m (16) show
+bl
+208 720 m
+208 736 l
+224 736 l
+224 720 l
+208 720 l
+cs
+bl
+hf 8.0 sf
+211.2 721.6 m (16) show
+bl
+192 704 m
+192 720 l
+208 720 l
+208 704 l
+192 704 l
+cs
+bl
+hf 8.0 sf
+195.2 705.6 m (16) show
+bl
+208 704 m
+208 720 l
+224 720 l
+224 704 l
+208 704 l
+cs
+bl
+hf 8.0 sf
+211.2 705.6 m (16) show
+bl
+224 720 m
+224 736 l
+240 736 l
+240 720 l
+224 720 l
+cs
+bl
+hf 8.0 sf
+227.2 721.6 m (16) show
+bl
+240 720 m
+240 736 l
+256 736 l
+256 720 l
+240 720 l
+cs
+bl
+hf 8.0 sf
+243.2 721.6 m (16) show
+224 704 m
+224 720 l
+240 720 l
+240 704 l
+224 704 l
+fl
+bl
+224 704 m
+224 720 l
+240 720 l
+240 704 l
+224 704 l
+cs
+bl
+240 704 m
+240 720 l
+256 720 l
+256 704 l
+240 704 l
+cs
+bl
+hf 8.0 sf
+243.2 705.6 m (16) show
+128 672 m
+128 704 l
+160 704 l
+160 672 l
+128 672 l
+fl
+bl
+128 672 m
+128 704 l
+160 704 l
+160 672 l
+128 672 l
+cs
+160 672 m
+160 704 l
+192 704 l
+192 672 l
+160 672 l
+fl
+bl
+160 672 m
+160 704 l
+192 704 l
+192 672 l
+160 672 l
+cs
+128 640 m
+128 672 l
+160 672 l
+160 640 l
+128 640 l
+fl
+bl
+128 640 m
+128 672 l
+160 672 l
+160 640 l
+128 640 l
+cs
+160 640 m
+160 672 l
+192 672 l
+192 640 l
+160 640 l
+fl
+bl
+160 640 m
+160 672 l
+192 672 l
+192 640 l
+160 640 l
+cs
+192 688 m
+192 704 l
+208 704 l
+208 688 l
+192 688 l
+fl
+bl
+192 688 m
+192 704 l
+208 704 l
+208 688 l
+192 688 l
+cs
+208 688 m
+208 704 l
+224 704 l
+224 688 l
+208 688 l
+fl
+bl
+208 688 m
+208 704 l
+224 704 l
+224 688 l
+208 688 l
+cs
+192 672 m
+192 688 l
+208 688 l
+208 672 l
+192 672 l
+fl
+bl
+192 672 m
+192 688 l
+208 688 l
+208 672 l
+192 672 l
+cs
+208 672 m
+208 688 l
+224 688 l
+224 672 l
+208 672 l
+fl
+bl
+208 672 m
+208 688 l
+224 688 l
+224 672 l
+208 672 l
+cs
+224 672 m
+224 704 l
+256 704 l
+256 672 l
+224 672 l
+fl
+bl
+224 672 m
+224 704 l
+256 704 l
+256 672 l
+224 672 l
+cs
+192 656 m
+192 672 l
+208 672 l
+208 656 l
+192 656 l
+fl
+bl
+192 656 m
+192 672 l
+208 672 l
+208 656 l
+192 656 l
+cs
+bl
+208 656 m
+208 672 l
+224 672 l
+224 656 l
+208 656 l
+cs
+bl
+hf 8.0 sf
+211.2 657.6 m (16) show
+192 640 m
+192 656 l
+208 656 l
+208 640 l
+192 640 l
+fl
+bl
+192 640 m
+192 656 l
+208 656 l
+208 640 l
+192 640 l
+cs
+208 640 m
+208 656 l
+224 656 l
+224 640 l
+208 640 l
+fl
+bl
+208 640 m
+208 656 l
+224 656 l
+224 640 l
+208 640 l
+cs
+224 656 m
+224 672 l
+240 672 l
+240 656 l
+224 656 l
+fl
+bl
+224 656 m
+224 672 l
+240 672 l
+240 656 l
+224 656 l
+cs
+240 656 m
+240 672 l
+256 672 l
+256 656 l
+240 656 l
+fl
+bl
+240 656 m
+240 672 l
+256 672 l
+256 656 l
+240 656 l
+cs
+224 640 m
+224 656 l
+240 656 l
+240 640 l
+224 640 l
+fl
+bl
+224 640 m
+224 656 l
+240 656 l
+240 640 l
+224 640 l
+cs
+240 640 m
+240 656 l
+256 656 l
+256 640 l
+240 640 l
+fl
+bl
+240 640 m
+240 656 l
+256 656 l
+256 640 l
+240 640 l
+cs
+0 624 m
+0 640 l
+16 640 l
+16 624 l
+0 624 l
+fl
+bl
+0 624 m
+0 640 l
+16 640 l
+16 624 l
+0 624 l
+cs
+16 624 m
+16 640 l
+32 640 l
+32 624 l
+16 624 l
+fl
+bl
+16 624 m
+16 640 l
+32 640 l
+32 624 l
+16 624 l
+cs
+0 608 m
+0 624 l
+16 624 l
+16 608 l
+0 608 l
+fl
+bl
+0 608 m
+0 624 l
+16 624 l
+16 608 l
+0 608 l
+cs
+16 608 m
+16 624 l
+32 624 l
+32 608 l
+16 608 l
+fl
+bl
+16 608 m
+16 624 l
+32 624 l
+32 608 l
+16 608 l
+cs
+32 624 m
+32 640 l
+48 640 l
+48 624 l
+32 624 l
+fl
+bl
+32 624 m
+32 640 l
+48 640 l
+48 624 l
+32 624 l
+cs
+bl
+48 624 m
+48 640 l
+64 640 l
+64 624 l
+48 624 l
+cs
+bl
+hf 8.0 sf
+51.2 625.6 m (16) show
+32 608 m
+32 624 l
+48 624 l
+48 608 l
+32 608 l
+fl
+bl
+32 608 m
+32 624 l
+48 624 l
+48 608 l
+32 608 l
+cs
+48 608 m
+48 624 l
+64 624 l
+64 608 l
+48 608 l
+fl
+bl
+48 608 m
+48 624 l
+64 624 l
+64 608 l
+48 608 l
+cs
+0 576 m
+0 608 l
+32 608 l
+32 576 l
+0 576 l
+fl
+bl
+0 576 m
+0 608 l
+32 608 l
+32 576 l
+0 576 l
+cs
+32 592 m
+32 608 l
+48 608 l
+48 592 l
+32 592 l
+fl
+bl
+32 592 m
+32 608 l
+48 608 l
+48 592 l
+32 592 l
+cs
+48 592 m
+48 608 l
+64 608 l
+64 592 l
+48 592 l
+fl
+bl
+48 592 m
+48 608 l
+64 608 l
+64 592 l
+48 592 l
+cs
+32 576 m
+32 592 l
+48 592 l
+48 576 l
+32 576 l
+fl
+bl
+32 576 m
+32 592 l
+48 592 l
+48 576 l
+32 576 l
+cs
+48 576 m
+48 592 l
+64 592 l
+64 576 l
+48 576 l
+fl
+bl
+48 576 m
+48 592 l
+64 592 l
+64 576 l
+48 576 l
+cs
+bl
+64 624 m
+64 640 l
+80 640 l
+80 624 l
+64 624 l
+cs
+bl
+hf 8.0 sf
+67.2 625.6 m (16) show
+bl
+80 624 m
+80 640 l
+96 640 l
+96 624 l
+80 624 l
+cs
+bl
+hf 8.0 sf
+83.2 625.6 m (16) show
+64 608 m
+64 624 l
+80 624 l
+80 608 l
+64 608 l
+fl
+bl
+64 608 m
+64 624 l
+80 624 l
+80 608 l
+64 608 l
+cs
+bl
+80 608 m
+80 624 l
+96 624 l
+96 608 l
+80 608 l
+cs
+bl
+hf 8.0 sf
+83.2 609.6 m (16) show
+bl
+96 624 m
+96 640 l
+112 640 l
+112 624 l
+96 624 l
+cs
+bl
+hf 8.0 sf
+99.2 625.6 m (16) show
+bl
+112 624 m
+112 640 l
+128 640 l
+128 624 l
+112 624 l
+cs
+bl
+hf 8.0 sf
+115.2 625.6 m (16) show
+bl
+96 608 m
+96 624 l
+112 624 l
+112 608 l
+96 608 l
+cs
+bl
+hf 8.0 sf
+99.2 609.6 m (16) show
+bl
+112 608 m
+112 624 l
+128 624 l
+128 608 l
+112 608 l
+cs
+bl
+hf 8.0 sf
+115.2 609.6 m (16) show
+64 576 m
+64 608 l
+96 608 l
+96 576 l
+64 576 l
+fl
+bl
+64 576 m
+64 608 l
+96 608 l
+96 576 l
+64 576 l
+cs
+bl
+96 592 m
+96 608 l
+112 608 l
+112 592 l
+96 592 l
+cs
+bl
+hf 8.0 sf
+99.2 593.6 m (16) show
+bl
+112 592 m
+112 608 l
+128 608 l
+128 592 l
+112 592 l
+cs
+bl
+hf 8.0 sf
+115.2 593.6 m (16) show
+96 576 m
+96 592 l
+112 592 l
+112 576 l
+96 576 l
+fl
+bl
+96 576 m
+96 592 l
+112 592 l
+112 576 l
+96 576 l
+cs
+bl
+112 576 m
+112 592 l
+128 592 l
+128 576 l
+112 576 l
+cs
+bl
+hf 8.0 sf
+115.2 577.6 m (16) show
+0 544 m
+0 576 l
+32 576 l
+32 544 l
+0 544 l
+fl
+bl
+0 544 m
+0 576 l
+32 576 l
+32 544 l
+0 544 l
+cs
+32 544 m
+32 576 l
+64 576 l
+64 544 l
+32 544 l
+fl
+bl
+32 544 m
+32 576 l
+64 576 l
+64 544 l
+32 544 l
+cs
+0 512 m
+0 544 l
+32 544 l
+32 512 l
+0 512 l
+fl
+bl
+0 512 m
+0 544 l
+32 544 l
+32 512 l
+0 512 l
+cs
+32 512 m
+32 544 l
+64 544 l
+64 512 l
+32 512 l
+fl
+bl
+32 512 m
+32 544 l
+64 544 l
+64 512 l
+32 512 l
+cs
+64 560 m
+64 576 l
+80 576 l
+80 560 l
+64 560 l
+fl
+bl
+64 560 m
+64 576 l
+80 576 l
+80 560 l
+64 560 l
+cs
+80 560 m
+80 576 l
+96 576 l
+96 560 l
+80 560 l
+fl
+bl
+80 560 m
+80 576 l
+96 576 l
+96 560 l
+80 560 l
+cs
+64 544 m
+64 560 l
+80 560 l
+80 544 l
+64 544 l
+fl
+bl
+64 544 m
+64 560 l
+80 560 l
+80 544 l
+64 544 l
+cs
+80 544 m
+80 560 l
+96 560 l
+96 544 l
+80 544 l
+fl
+bl
+80 544 m
+80 560 l
+96 560 l
+96 544 l
+80 544 l
+cs
+96 560 m
+96 576 l
+112 576 l
+112 560 l
+96 560 l
+fl
+bl
+96 560 m
+96 576 l
+112 576 l
+112 560 l
+96 560 l
+cs
+bl
+112 560 m
+112 576 l
+128 576 l
+128 560 l
+112 560 l
+cs
+bl
+hf 8.0 sf
+115.2 561.6 m (16) show
+96 544 m
+96 560 l
+112 560 l
+112 544 l
+96 544 l
+fl
+bl
+96 544 m
+96 560 l
+112 560 l
+112 544 l
+96 544 l
+cs
+112 544 m
+112 560 l
+128 560 l
+128 544 l
+112 544 l
+fl
+bl
+112 544 m
+112 560 l
+128 560 l
+128 544 l
+112 544 l
+cs
+64 512 m
+64 544 l
+96 544 l
+96 512 l
+64 512 l
+fl
+bl
+64 512 m
+64 544 l
+96 544 l
+96 512 l
+64 512 l
+cs
+96 528 m
+96 544 l
+112 544 l
+112 528 l
+96 528 l
+fl
+bl
+96 528 m
+96 544 l
+112 544 l
+112 528 l
+96 528 l
+cs
+112 528 m
+112 544 l
+128 544 l
+128 528 l
+112 528 l
+fl
+bl
+112 528 m
+112 544 l
+128 544 l
+128 528 l
+112 528 l
+cs
+96 512 m
+96 528 l
+112 528 l
+112 512 l
+96 512 l
+fl
+bl
+96 512 m
+96 528 l
+112 528 l
+112 512 l
+96 512 l
+cs
+112 512 m
+112 528 l
+128 528 l
+128 512 l
+112 512 l
+fl
+bl
+112 512 m
+112 528 l
+128 528 l
+128 512 l
+112 512 l
+cs
+128 624 m
+128 640 l
+144 640 l
+144 624 l
+128 624 l
+fl
+bl
+128 624 m
+128 640 l
+144 640 l
+144 624 l
+128 624 l
+cs
+bl
+144 624 m
+144 640 l
+160 640 l
+160 624 l
+144 624 l
+cs
+bl
+hf 8.0 sf
+147.2 625.6 m (16) show
+128 608 m
+128 624 l
+144 624 l
+144 608 l
+128 608 l
+fl
+bl
+128 608 m
+128 624 l
+144 624 l
+144 608 l
+128 608 l
+cs
+144 608 m
+144 624 l
+160 624 l
+160 608 l
+144 608 l
+fl
+bl
+144 608 m
+144 624 l
+160 624 l
+160 608 l
+144 608 l
+cs
+160 624 m
+160 640 l
+176 640 l
+176 624 l
+160 624 l
+fl
+bl
+160 624 m
+160 640 l
+176 640 l
+176 624 l
+160 624 l
+cs
+bl
+176 624 m
+176 640 l
+192 640 l
+192 624 l
+176 624 l
+cs
+bl
+hf 8.0 sf
+179.2 625.6 m (16) show
+160 608 m
+160 624 l
+176 624 l
+176 608 l
+160 608 l
+fl
+bl
+160 608 m
+160 624 l
+176 624 l
+176 608 l
+160 608 l
+cs
+176 608 m
+176 624 l
+192 624 l
+192 608 l
+176 608 l
+fl
+bl
+176 608 m
+176 624 l
+192 624 l
+192 608 l
+176 608 l
+cs
+128 592 m
+128 608 l
+144 608 l
+144 592 l
+128 592 l
+fl
+bl
+128 592 m
+128 608 l
+144 608 l
+144 592 l
+128 592 l
+cs
+bl
+144 592 m
+144 608 l
+160 608 l
+160 592 l
+144 592 l
+cs
+bl
+hf 8.0 sf
+147.2 593.6 m (16) show
+128 576 m
+128 592 l
+144 592 l
+144 576 l
+128 576 l
+fl
+bl
+128 576 m
+128 592 l
+144 592 l
+144 576 l
+128 576 l
+cs
+144 576 m
+144 592 l
+160 592 l
+160 576 l
+144 576 l
+fl
+bl
+144 576 m
+144 592 l
+160 592 l
+160 576 l
+144 576 l
+cs
+160 592 m
+160 608 l
+176 608 l
+176 592 l
+160 592 l
+fl
+bl
+160 592 m
+160 608 l
+176 608 l
+176 592 l
+160 592 l
+cs
+bl
+176 592 m
+176 608 l
+192 608 l
+192 592 l
+176 592 l
+cs
+bl
+hf 8.0 sf
+179.2 593.6 m (16) show
+160 576 m
+160 592 l
+176 592 l
+176 576 l
+160 576 l
+fl
+bl
+160 576 m
+160 592 l
+176 592 l
+176 576 l
+160 576 l
+cs
+176 576 m
+176 592 l
+192 592 l
+192 576 l
+176 576 l
+fl
+bl
+176 576 m
+176 592 l
+192 592 l
+192 576 l
+176 576 l
+cs
+bl
+192 624 m
+192 640 l
+208 640 l
+208 624 l
+192 624 l
+cs
+bl
+hf 8.0 sf
+195.2 625.6 m (16) show
+bl
+208 624 m
+208 640 l
+224 640 l
+224 624 l
+208 624 l
+cs
+bl
+hf 8.0 sf
+211.2 625.6 m (16) show
+bl
+192 608 m
+192 624 l
+208 624 l
+208 608 l
+192 608 l
+cs
+bl
+hf 8.0 sf
+195.2 609.6 m (16) show
+bl
+208 608 m
+208 624 l
+224 624 l
+224 608 l
+208 608 l
+cs
+bl
+hf 8.0 sf
+211.2 609.6 m (16) show
+bl
+224 624 m
+224 640 l
+240 640 l
+240 624 l
+224 624 l
+cs
+bl
+hf 8.0 sf
+227.2 625.6 m (16) show
+bl
+240 624 m
+240 640 l
+256 640 l
+256 624 l
+240 624 l
+cs
+bl
+hf 8.0 sf
+243.2 625.6 m (16) show
+bl
+224 608 m
+224 624 l
+240 624 l
+240 608 l
+224 608 l
+cs
+bl
+hf 8.0 sf
+227.2 609.6 m (16) show
+bl
+240 608 m
+240 624 l
+256 624 l
+256 608 l
+240 608 l
+cs
+bl
+hf 8.0 sf
+243.2 609.6 m (16) show
+bl
+192 592 m
+192 608 l
+208 608 l
+208 592 l
+192 592 l
+cs
+bl
+hf 8.0 sf
+195.2 593.6 m (16) show
+bl
+208 592 m
+208 608 l
+224 608 l
+224 592 l
+208 592 l
+cs
+bl
+hf 8.0 sf
+211.2 593.6 m (16) show
+bl
+192 576 m
+192 592 l
+208 592 l
+208 576 l
+192 576 l
+cs
+bl
+hf 8.0 sf
+195.2 577.6 m (16) show
+bl
+208 576 m
+208 592 l
+224 592 l
+224 576 l
+208 576 l
+cs
+bl
+hf 8.0 sf
+211.2 577.6 m (16) show
+bl
+224 592 m
+224 608 l
+240 608 l
+240 592 l
+224 592 l
+cs
+bl
+hf 8.0 sf
+227.2 593.6 m (16) show
+bl
+240 592 m
+240 608 l
+256 608 l
+256 592 l
+240 592 l
+cs
+bl
+hf 8.0 sf
+243.2 593.6 m (16) show
+bl
+224 576 m
+224 592 l
+240 592 l
+240 576 l
+224 576 l
+cs
+bl
+hf 8.0 sf
+227.2 577.6 m (16) show
+bl
+240 576 m
+240 592 l
+256 592 l
+256 576 l
+240 576 l
+cs
+bl
+hf 8.0 sf
+243.2 577.6 m (16) show
+128 544 m
+128 576 l
+160 576 l
+160 544 l
+128 544 l
+fl
+bl
+128 544 m
+128 576 l
+160 576 l
+160 544 l
+128 544 l
+cs
+160 544 m
+160 576 l
+192 576 l
+192 544 l
+160 544 l
+fl
+bl
+160 544 m
+160 576 l
+192 576 l
+192 544 l
+160 544 l
+cs
+128 512 m
+128 544 l
+160 544 l
+160 512 l
+128 512 l
+fl
+bl
+128 512 m
+128 544 l
+160 544 l
+160 512 l
+128 512 l
+cs
+160 512 m
+160 544 l
+192 544 l
+192 512 l
+160 512 l
+fl
+bl
+160 512 m
+160 544 l
+192 544 l
+192 512 l
+160 512 l
+cs
+192 560 m
+192 576 l
+208 576 l
+208 560 l
+192 560 l
+fl
+bl
+192 560 m
+192 576 l
+208 576 l
+208 560 l
+192 560 l
+cs
+bl
+208 560 m
+208 576 l
+224 576 l
+224 560 l
+208 560 l
+cs
+bl
+hf 8.0 sf
+211.2 561.6 m (16) show
+192 544 m
+192 560 l
+208 560 l
+208 544 l
+192 544 l
+fl
+bl
+192 544 m
+192 560 l
+208 560 l
+208 544 l
+192 544 l
+cs
+208 544 m
+208 560 l
+224 560 l
+224 544 l
+208 544 l
+fl
+bl
+208 544 m
+208 560 l
+224 560 l
+224 544 l
+208 544 l
+cs
+224 560 m
+224 576 l
+240 576 l
+240 560 l
+224 560 l
+fl
+bl
+224 560 m
+224 576 l
+240 576 l
+240 560 l
+224 560 l
+cs
+bl
+240 560 m
+240 576 l
+256 576 l
+256 560 l
+240 560 l
+cs
+bl
+hf 8.0 sf
+243.2 561.6 m (16) show
+224 544 m
+224 560 l
+240 560 l
+240 544 l
+224 544 l
+fl
+bl
+224 544 m
+224 560 l
+240 560 l
+240 544 l
+224 544 l
+cs
+240 544 m
+240 560 l
+256 560 l
+256 544 l
+240 544 l
+fl
+bl
+240 544 m
+240 560 l
+256 560 l
+256 544 l
+240 544 l
+cs
+192 528 m
+192 544 l
+208 544 l
+208 528 l
+192 528 l
+fl
+bl
+192 528 m
+192 544 l
+208 544 l
+208 528 l
+192 528 l
+cs
+bl
+208 528 m
+208 544 l
+224 544 l
+224 528 l
+208 528 l
+cs
+bl
+hf 8.0 sf
+211.2 529.6 m (16) show
+192 512 m
+192 528 l
+208 528 l
+208 512 l
+192 512 l
+fl
+bl
+192 512 m
+192 528 l
+208 528 l
+208 512 l
+192 512 l
+cs
+208 512 m
+208 528 l
+224 528 l
+224 512 l
+208 512 l
+fl
+bl
+208 512 m
+208 528 l
+224 528 l
+224 512 l
+208 512 l
+cs
+224 528 m
+224 544 l
+240 544 l
+240 528 l
+224 528 l
+fl
+bl
+224 528 m
+224 544 l
+240 544 l
+240 528 l
+224 528 l
+cs
+bl
+240 528 m
+240 544 l
+256 544 l
+256 528 l
+240 528 l
+cs
+bl
+hf 8.0 sf
+243.2 529.6 m (16) show
+224 512 m
+224 528 l
+240 528 l
+240 512 l
+224 512 l
+fl
+bl
+224 512 m
+224 528 l
+240 528 l
+240 512 l
+224 512 l
+cs
+240 512 m
+240 528 l
+256 528 l
+256 512 l
+240 512 l
+fl
+bl
+240 512 m
+240 528 l
+256 528 l
+256 512 l
+240 512 l
+cs
+bl
+256 752 m
+256 768 l
+272 768 l
+272 752 l
+256 752 l
+cs
+bl
+hf 8.0 sf
+259.2 753.6 m (16) show
+bl
+272 752 m
+272 768 l
+288 768 l
+288 752 l
+272 752 l
+cs
+bl
+hf 8.0 sf
+275.2 753.6 m (16) show
+bl
+256 736 m
+256 752 l
+272 752 l
+272 736 l
+256 736 l
+cs
+bl
+hf 8.0 sf
+259.2 737.6 m (16) show
+bl
+272 736 m
+272 752 l
+288 752 l
+288 736 l
+272 736 l
+cs
+bl
+hf 8.0 sf
+275.2 737.6 m (16) show
+bl
+288 752 m
+288 768 l
+304 768 l
+304 752 l
+288 752 l
+cs
+bl
+hf 8.0 sf
+291.2 753.6 m (16) show
+bl
+304 752 m
+304 768 l
+320 768 l
+320 752 l
+304 752 l
+cs
+bl
+hf 8.0 sf
+307.2 753.6 m (16) show
+bl
+288 736 m
+288 752 l
+304 752 l
+304 736 l
+288 736 l
+cs
+bl
+hf 8.0 sf
+291.2 737.6 m (16) show
+bl
+304 736 m
+304 752 l
+320 752 l
+320 736 l
+304 736 l
+cs
+bl
+hf 8.0 sf
+307.2 737.6 m (16) show
+bl
+256 720 m
+256 736 l
+272 736 l
+272 720 l
+256 720 l
+cs
+bl
+hf 8.0 sf
+259.2 721.6 m (16) show
+bl
+272 720 m
+272 736 l
+288 736 l
+288 720 l
+272 720 l
+cs
+bl
+hf 8.0 sf
+275.2 721.6 m (16) show
+bl
+256 704 m
+256 720 l
+272 720 l
+272 704 l
+256 704 l
+cs
+bl
+hf 8.0 sf
+259.2 705.6 m (16) show
+bl
+272 704 m
+272 720 l
+288 720 l
+288 704 l
+272 704 l
+cs
+bl
+hf 8.0 sf
+275.2 705.6 m (16) show
+bl
+288 720 m
+288 736 l
+304 736 l
+304 720 l
+288 720 l
+cs
+bl
+hf 8.0 sf
+291.2 721.6 m (16) show
+bl
+304 720 m
+304 736 l
+320 736 l
+320 720 l
+304 720 l
+cs
+bl
+hf 8.0 sf
+307.2 721.6 m (16) show
+bl
+288 704 m
+288 720 l
+304 720 l
+304 704 l
+288 704 l
+cs
+bl
+hf 8.0 sf
+291.2 705.6 m (16) show
+bl
+304 704 m
+304 720 l
+320 720 l
+320 704 l
+304 704 l
+cs
+bl
+hf 8.0 sf
+307.2 705.6 m (16) show
+bl
+320 752 m
+320 768 l
+336 768 l
+336 752 l
+320 752 l
+cs
+bl
+hf 8.0 sf
+323.2 753.6 m (16) show
+bl
+336 752 m
+336 768 l
+352 768 l
+352 752 l
+336 752 l
+cs
+bl
+hf 8.0 sf
+339.2 753.6 m (16) show
+bl
+320 736 m
+320 752 l
+336 752 l
+336 736 l
+320 736 l
+cs
+bl
+hf 8.0 sf
+323.2 737.6 m (16) show
+bl
+336 736 m
+336 752 l
+352 752 l
+352 736 l
+336 736 l
+cs
+bl
+hf 8.0 sf
+339.2 737.6 m (16) show
+bl
+352 752 m
+352 768 l
+368 768 l
+368 752 l
+352 752 l
+cs
+bl
+hf 8.0 sf
+355.2 753.6 m (16) show
+bl
+368 752 m
+368 768 l
+384 768 l
+384 752 l
+368 752 l
+cs
+bl
+hf 8.0 sf
+371.2 753.6 m (16) show
+bl
+352 736 m
+352 752 l
+368 752 l
+368 736 l
+352 736 l
+cs
+bl
+hf 8.0 sf
+355.2 737.6 m (16) show
+bl
+368 736 m
+368 752 l
+384 752 l
+384 736 l
+368 736 l
+cs
+bl
+hf 8.0 sf
+371.2 737.6 m (16) show
+bl
+320 720 m
+320 736 l
+336 736 l
+336 720 l
+320 720 l
+cs
+bl
+hf 8.0 sf
+323.2 721.6 m (16) show
+bl
+336 720 m
+336 736 l
+352 736 l
+352 720 l
+336 720 l
+cs
+bl
+hf 8.0 sf
+339.2 721.6 m (16) show
+bl
+320 704 m
+320 720 l
+336 720 l
+336 704 l
+320 704 l
+cs
+bl
+hf 8.0 sf
+323.2 705.6 m (16) show
+bl
+336 704 m
+336 720 l
+352 720 l
+352 704 l
+336 704 l
+cs
+bl
+hf 8.0 sf
+339.2 705.6 m (16) show
+bl
+352 720 m
+352 736 l
+368 736 l
+368 720 l
+352 720 l
+cs
+bl
+hf 8.0 sf
+355.2 721.6 m (16) show
+bl
+368 720 m
+368 736 l
+384 736 l
+384 720 l
+368 720 l
+cs
+bl
+hf 8.0 sf
+371.2 721.6 m (16) show
+bl
+352 704 m
+352 720 l
+368 720 l
+368 704 l
+352 704 l
+cs
+bl
+hf 8.0 sf
+355.2 705.6 m (16) show
+bl
+368 704 m
+368 720 l
+384 720 l
+384 704 l
+368 704 l
+cs
+bl
+hf 8.0 sf
+371.2 705.6 m (16) show
+bl
+256 688 m
+256 704 l
+272 704 l
+272 688 l
+256 688 l
+cs
+bl
+hf 8.0 sf
+259.2 689.6 m (16) show
+bl
+272 688 m
+272 704 l
+288 704 l
+288 688 l
+272 688 l
+cs
+bl
+hf 8.0 sf
+275.2 689.6 m (16) show
+bl
+256 672 m
+256 688 l
+272 688 l
+272 672 l
+256 672 l
+cs
+bl
+hf 8.0 sf
+259.2 673.6 m (16) show
+bl
+272 672 m
+272 688 l
+288 688 l
+288 672 l
+272 672 l
+cs
+bl
+hf 8.0 sf
+275.2 673.6 m (16) show
+bl
+288 688 m
+288 704 l
+304 704 l
+304 688 l
+288 688 l
+cs
+bl
+hf 8.0 sf
+291.2 689.6 m (16) show
+bl
+304 688 m
+304 704 l
+320 704 l
+320 688 l
+304 688 l
+cs
+bl
+hf 8.0 sf
+307.2 689.6 m (16) show
+bl
+288 672 m
+288 688 l
+304 688 l
+304 672 l
+288 672 l
+cs
+bl
+hf 8.0 sf
+291.2 673.6 m (16) show
+bl
+304 672 m
+304 688 l
+320 688 l
+320 672 l
+304 672 l
+cs
+bl
+hf 8.0 sf
+307.2 673.6 m (16) show
+bl
+256 656 m
+256 672 l
+272 672 l
+272 656 l
+256 656 l
+cs
+bl
+hf 8.0 sf
+259.2 657.6 m (16) show
+bl
+272 656 m
+272 672 l
+288 672 l
+288 656 l
+272 656 l
+cs
+bl
+hf 8.0 sf
+275.2 657.6 m (16) show
+bl
+256 640 m
+256 656 l
+272 656 l
+272 640 l
+256 640 l
+cs
+bl
+hf 8.0 sf
+259.2 641.6 m (16) show
+bl
+272 640 m
+272 656 l
+288 656 l
+288 640 l
+272 640 l
+cs
+bl
+hf 8.0 sf
+275.2 641.6 m (16) show
+bl
+288 656 m
+288 672 l
+304 672 l
+304 656 l
+288 656 l
+cs
+bl
+hf 8.0 sf
+291.2 657.6 m (16) show
+bl
+304 656 m
+304 672 l
+320 672 l
+320 656 l
+304 656 l
+cs
+bl
+hf 8.0 sf
+307.2 657.6 m (16) show
+bl
+288 640 m
+288 656 l
+304 656 l
+304 640 l
+288 640 l
+cs
+bl
+hf 8.0 sf
+291.2 641.6 m (16) show
+bl
+304 640 m
+304 656 l
+320 656 l
+320 640 l
+304 640 l
+cs
+bl
+hf 8.0 sf
+307.2 641.6 m (16) show
+bl
+320 688 m
+320 704 l
+336 704 l
+336 688 l
+320 688 l
+cs
+bl
+hf 8.0 sf
+323.2 689.6 m (16) show
+bl
+336 688 m
+336 704 l
+352 704 l
+352 688 l
+336 688 l
+cs
+bl
+hf 8.0 sf
+339.2 689.6 m (16) show
+bl
+320 672 m
+320 688 l
+336 688 l
+336 672 l
+320 672 l
+cs
+bl
+hf 8.0 sf
+323.2 673.6 m (16) show
+bl
+336 672 m
+336 688 l
+352 688 l
+352 672 l
+336 672 l
+cs
+bl
+hf 8.0 sf
+339.2 673.6 m (16) show
+bl
+352 688 m
+352 704 l
+368 704 l
+368 688 l
+352 688 l
+cs
+bl
+hf 8.0 sf
+355.2 689.6 m (16) show
+bl
+368 688 m
+368 704 l
+384 704 l
+384 688 l
+368 688 l
+cs
+bl
+hf 8.0 sf
+371.2 689.6 m (16) show
+bl
+352 672 m
+352 688 l
+368 688 l
+368 672 l
+352 672 l
+cs
+bl
+hf 8.0 sf
+355.2 673.6 m (16) show
+bl
+368 672 m
+368 688 l
+384 688 l
+384 672 l
+368 672 l
+cs
+bl
+hf 8.0 sf
+371.2 673.6 m (16) show
+bl
+320 656 m
+320 672 l
+336 672 l
+336 656 l
+320 656 l
+cs
+bl
+hf 8.0 sf
+323.2 657.6 m (16) show
+bl
+336 656 m
+336 672 l
+352 672 l
+352 656 l
+336 656 l
+cs
+bl
+hf 8.0 sf
+339.2 657.6 m (16) show
+bl
+320 640 m
+320 656 l
+336 656 l
+336 640 l
+320 640 l
+cs
+bl
+hf 8.0 sf
+323.2 641.6 m (16) show
+bl
+336 640 m
+336 656 l
+352 656 l
+352 640 l
+336 640 l
+cs
+bl
+hf 8.0 sf
+339.2 641.6 m (16) show
+bl
+352 656 m
+352 672 l
+368 672 l
+368 656 l
+352 656 l
+cs
+bl
+hf 8.0 sf
+355.2 657.6 m (16) show
+bl
+368 656 m
+368 672 l
+384 672 l
+384 656 l
+368 656 l
+cs
+bl
+hf 8.0 sf
+371.2 657.6 m (16) show
+bl
+352 640 m
+352 656 l
+368 656 l
+368 640 l
+352 640 l
+cs
+bl
+hf 8.0 sf
+355.2 641.6 m (16) show
+bl
+368 640 m
+368 656 l
+384 656 l
+384 640 l
+368 640 l
+cs
+bl
+hf 8.0 sf
+371.2 641.6 m (16) show
+bl
+384 752 m
+384 768 l
+400 768 l
+400 752 l
+384 752 l
+cs
+bl
+hf 8.0 sf
+387.2 753.6 m (16) show
+bl
+400 752 m
+400 768 l
+416 768 l
+416 752 l
+400 752 l
+cs
+bl
+hf 8.0 sf
+403.2 753.6 m (16) show
+bl
+384 736 m
+384 752 l
+400 752 l
+400 736 l
+384 736 l
+cs
+bl
+hf 8.0 sf
+387.2 737.6 m (16) show
+bl
+400 736 m
+400 752 l
+416 752 l
+416 736 l
+400 736 l
+cs
+bl
+hf 8.0 sf
+403.2 737.6 m (16) show
+416 736 m
+416 768 l
+448 768 l
+448 736 l
+416 736 l
+fl
+bl
+416 736 m
+416 768 l
+448 768 l
+448 736 l
+416 736 l
+cs
+bl
+384 720 m
+384 736 l
+400 736 l
+400 720 l
+384 720 l
+cs
+bl
+hf 8.0 sf
+387.2 721.6 m (16) show
+bl
+400 720 m
+400 736 l
+416 736 l
+416 720 l
+400 720 l
+cs
+bl
+hf 8.0 sf
+403.2 721.6 m (16) show
+bl
+384 704 m
+384 720 l
+400 720 l
+400 704 l
+384 704 l
+cs
+bl
+hf 8.0 sf
+387.2 705.6 m (16) show
+bl
+400 704 m
+400 720 l
+416 720 l
+416 704 l
+400 704 l
+cs
+bl
+hf 8.0 sf
+403.2 705.6 m (16) show
+bl
+416 720 m
+416 736 l
+432 736 l
+432 720 l
+416 720 l
+cs
+bl
+hf 8.0 sf
+419.2 721.6 m (16) show
+bl
+432 720 m
+432 736 l
+448 736 l
+448 720 l
+432 720 l
+cs
+bl
+hf 8.0 sf
+435.2 721.6 m (16) show
+bl
+416 704 m
+416 720 l
+432 720 l
+432 704 l
+416 704 l
+cs
+bl
+hf 8.0 sf
+419.2 705.6 m (16) show
+bl
+432 704 m
+432 720 l
+448 720 l
+448 704 l
+432 704 l
+cs
+bl
+hf 8.0 sf
+435.2 705.6 m (16) show
+bl
+448 752 m
+448 768 l
+464 768 l
+464 752 l
+448 752 l
+cs
+bl
+hf 8.0 sf
+451.2 753.6 m (16) show
+464 752 m
+464 768 l
+480 768 l
+480 752 l
+464 752 l
+fl
+bl
+464 752 m
+464 768 l
+480 768 l
+480 752 l
+464 752 l
+cs
+bl
+448 736 m
+448 752 l
+464 752 l
+464 736 l
+448 736 l
+cs
+bl
+hf 8.0 sf
+451.2 737.6 m (16) show
+bl
+464 736 m
+464 752 l
+480 752 l
+480 736 l
+464 736 l
+cs
+bl
+hf 8.0 sf
+467.2 737.6 m (16) show
+480 736 m
+480 768 l
+512 768 l
+512 736 l
+480 736 l
+fl
+bl
+480 736 m
+480 768 l
+512 768 l
+512 736 l
+480 736 l
+cs
+bl
+448 720 m
+448 736 l
+464 736 l
+464 720 l
+448 720 l
+cs
+bl
+hf 8.0 sf
+451.2 721.6 m (16) show
+bl
+464 720 m
+464 736 l
+480 736 l
+480 720 l
+464 720 l
+cs
+bl
+hf 8.0 sf
+467.2 721.6 m (16) show
+bl
+448 704 m
+448 720 l
+464 720 l
+464 704 l
+448 704 l
+cs
+bl
+hf 8.0 sf
+451.2 705.6 m (16) show
+bl
+464 704 m
+464 720 l
+480 720 l
+480 704 l
+464 704 l
+cs
+bl
+hf 8.0 sf
+467.2 705.6 m (16) show
+bl
+480 720 m
+480 736 l
+496 736 l
+496 720 l
+480 720 l
+cs
+bl
+hf 8.0 sf
+483.2 721.6 m (16) show
+496 720 m
+496 736 l
+512 736 l
+512 720 l
+496 720 l
+fl
+bl
+496 720 m
+496 736 l
+512 736 l
+512 720 l
+496 720 l
+cs
+bl
+480 704 m
+480 720 l
+496 720 l
+496 704 l
+480 704 l
+cs
+bl
+hf 8.0 sf
+483.2 705.6 m (16) show
+bl
+496 704 m
+496 720 l
+512 720 l
+512 704 l
+496 704 l
+cs
+bl
+hf 8.0 sf
+499.2 705.6 m (16) show
+bl
+384 688 m
+384 704 l
+400 704 l
+400 688 l
+384 688 l
+cs
+bl
+hf 8.0 sf
+387.2 689.6 m (16) show
+bl
+400 688 m
+400 704 l
+416 704 l
+416 688 l
+400 688 l
+cs
+bl
+hf 8.0 sf
+403.2 689.6 m (16) show
+384 672 m
+384 688 l
+400 688 l
+400 672 l
+384 672 l
+fl
+bl
+384 672 m
+384 688 l
+400 688 l
+400 672 l
+384 672 l
+cs
+bl
+400 672 m
+400 688 l
+416 688 l
+416 672 l
+400 672 l
+cs
+bl
+hf 8.0 sf
+403.2 673.6 m (16) show
+416 672 m
+416 704 l
+448 704 l
+448 672 l
+416 672 l
+fl
+bl
+416 672 m
+416 704 l
+448 704 l
+448 672 l
+416 672 l
+cs
+bl
+384 656 m
+384 672 l
+400 672 l
+400 656 l
+384 656 l
+cs
+bl
+hf 8.0 sf
+387.2 657.6 m (16) show
+bl
+400 656 m
+400 672 l
+416 672 l
+416 656 l
+400 656 l
+cs
+bl
+hf 8.0 sf
+403.2 657.6 m (16) show
+bl
+384 640 m
+384 656 l
+400 656 l
+400 640 l
+384 640 l
+cs
+bl
+hf 8.0 sf
+387.2 641.6 m (16) show
+bl
+400 640 m
+400 656 l
+416 656 l
+416 640 l
+400 640 l
+cs
+bl
+hf 8.0 sf
+403.2 641.6 m (16) show
+bl
+416 656 m
+416 672 l
+432 672 l
+432 656 l
+416 656 l
+cs
+bl
+hf 8.0 sf
+419.2 657.6 m (16) show
+bl
+432 656 m
+432 672 l
+448 672 l
+448 656 l
+432 656 l
+cs
+bl
+hf 8.0 sf
+435.2 657.6 m (16) show
+416 640 m
+416 656 l
+432 656 l
+432 640 l
+416 640 l
+fl
+bl
+416 640 m
+416 656 l
+432 656 l
+432 640 l
+416 640 l
+cs
+bl
+432 640 m
+432 656 l
+448 656 l
+448 640 l
+432 640 l
+cs
+bl
+hf 8.0 sf
+435.2 641.6 m (16) show
+bl
+448 688 m
+448 704 l
+464 704 l
+464 688 l
+448 688 l
+cs
+bl
+hf 8.0 sf
+451.2 689.6 m (16) show
+bl
+464 688 m
+464 704 l
+480 704 l
+480 688 l
+464 688 l
+cs
+bl
+hf 8.0 sf
+467.2 689.6 m (16) show
+bl
+448 672 m
+448 688 l
+464 688 l
+464 672 l
+448 672 l
+cs
+bl
+hf 8.0 sf
+451.2 673.6 m (16) show
+bl
+464 672 m
+464 688 l
+480 688 l
+480 672 l
+464 672 l
+cs
+bl
+hf 8.0 sf
+467.2 673.6 m (16) show
+480 672 m
+480 704 l
+512 704 l
+512 672 l
+480 672 l
+fl
+bl
+480 672 m
+480 704 l
+512 704 l
+512 672 l
+480 672 l
+cs
+bl
+448 656 m
+448 672 l
+464 672 l
+464 656 l
+448 656 l
+cs
+bl
+hf 8.0 sf
+451.2 657.6 m (16) show
+bl
+464 656 m
+464 672 l
+480 672 l
+480 656 l
+464 656 l
+cs
+bl
+hf 8.0 sf
+467.2 657.6 m (16) show
+bl
+448 640 m
+448 656 l
+464 656 l
+464 640 l
+448 640 l
+cs
+bl
+hf 8.0 sf
+451.2 641.6 m (16) show
+bl
+464 640 m
+464 656 l
+480 656 l
+480 640 l
+464 640 l
+cs
+bl
+hf 8.0 sf
+467.2 641.6 m (16) show
+bl
+480 656 m
+480 672 l
+496 672 l
+496 656 l
+480 656 l
+cs
+bl
+hf 8.0 sf
+483.2 657.6 m (16) show
+bl
+496 656 m
+496 672 l
+512 672 l
+512 656 l
+496 656 l
+cs
+bl
+hf 8.0 sf
+499.2 657.6 m (16) show
+bl
+480 640 m
+480 656 l
+496 656 l
+496 640 l
+480 640 l
+cs
+bl
+hf 8.0 sf
+483.2 641.6 m (16) show
+bl
+496 640 m
+496 656 l
+512 656 l
+512 640 l
+496 640 l
+cs
+bl
+hf 8.0 sf
+499.2 641.6 m (16) show
+bl
+256 624 m
+256 640 l
+272 640 l
+272 624 l
+256 624 l
+cs
+bl
+hf 8.0 sf
+259.2 625.6 m (16) show
+bl
+272 624 m
+272 640 l
+288 640 l
+288 624 l
+272 624 l
+cs
+bl
+hf 8.0 sf
+275.2 625.6 m (16) show
+bl
+256 608 m
+256 624 l
+272 624 l
+272 608 l
+256 608 l
+cs
+bl
+hf 8.0 sf
+259.2 609.6 m (16) show
+bl
+272 608 m
+272 624 l
+288 624 l
+288 608 l
+272 608 l
+cs
+bl
+hf 8.0 sf
+275.2 609.6 m (16) show
+bl
+288 624 m
+288 640 l
+304 640 l
+304 624 l
+288 624 l
+cs
+bl
+hf 8.0 sf
+291.2 625.6 m (16) show
+bl
+304 624 m
+304 640 l
+320 640 l
+320 624 l
+304 624 l
+cs
+bl
+hf 8.0 sf
+307.2 625.6 m (16) show
+bl
+288 608 m
+288 624 l
+304 624 l
+304 608 l
+288 608 l
+cs
+bl
+hf 8.0 sf
+291.2 609.6 m (16) show
+bl
+304 608 m
+304 624 l
+320 624 l
+320 608 l
+304 608 l
+cs
+bl
+hf 8.0 sf
+307.2 609.6 m (16) show
+256 576 m
+256 608 l
+288 608 l
+288 576 l
+256 576 l
+fl
+bl
+256 576 m
+256 608 l
+288 608 l
+288 576 l
+256 576 l
+cs
+bl
+288 592 m
+288 608 l
+304 608 l
+304 592 l
+288 592 l
+cs
+bl
+hf 8.0 sf
+291.2 593.6 m (16) show
+bl
+304 592 m
+304 608 l
+320 608 l
+320 592 l
+304 592 l
+cs
+bl
+hf 8.0 sf
+307.2 593.6 m (16) show
+bl
+288 576 m
+288 592 l
+304 592 l
+304 576 l
+288 576 l
+cs
+bl
+hf 8.0 sf
+291.2 577.6 m (16) show
+bl
+304 576 m
+304 592 l
+320 592 l
+320 576 l
+304 576 l
+cs
+bl
+hf 8.0 sf
+307.2 577.6 m (16) show
+bl
+320 624 m
+320 640 l
+336 640 l
+336 624 l
+320 624 l
+cs
+bl
+hf 8.0 sf
+323.2 625.6 m (16) show
+336 624 m
+336 640 l
+352 640 l
+352 624 l
+336 624 l
+fl
+bl
+336 624 m
+336 640 l
+352 640 l
+352 624 l
+336 624 l
+cs
+bl
+320 608 m
+320 624 l
+336 624 l
+336 608 l
+320 608 l
+cs
+bl
+hf 8.0 sf
+323.2 609.6 m (16) show
+bl
+336 608 m
+336 624 l
+352 624 l
+352 608 l
+336 608 l
+cs
+bl
+hf 8.0 sf
+339.2 609.6 m (16) show
+bl
+352 624 m
+352 640 l
+368 640 l
+368 624 l
+352 624 l
+cs
+bl
+hf 8.0 sf
+355.2 625.6 m (16) show
+bl
+368 624 m
+368 640 l
+384 640 l
+384 624 l
+368 624 l
+cs
+bl
+hf 8.0 sf
+371.2 625.6 m (16) show
+bl
+352 608 m
+352 624 l
+368 624 l
+368 608 l
+352 608 l
+cs
+bl
+hf 8.0 sf
+355.2 609.6 m (16) show
+bl
+368 608 m
+368 624 l
+384 624 l
+384 608 l
+368 608 l
+cs
+bl
+hf 8.0 sf
+371.2 609.6 m (16) show
+320 576 m
+320 608 l
+352 608 l
+352 576 l
+320 576 l
+fl
+bl
+320 576 m
+320 608 l
+352 608 l
+352 576 l
+320 576 l
+cs
+bl
+352 592 m
+352 608 l
+368 608 l
+368 592 l
+352 592 l
+cs
+bl
+hf 8.0 sf
+355.2 593.6 m (16) show
+368 592 m
+368 608 l
+384 608 l
+384 592 l
+368 592 l
+fl
+bl
+368 592 m
+368 608 l
+384 608 l
+384 592 l
+368 592 l
+cs
+bl
+352 576 m
+352 592 l
+368 592 l
+368 576 l
+352 576 l
+cs
+bl
+hf 8.0 sf
+355.2 577.6 m (16) show
+bl
+368 576 m
+368 592 l
+384 592 l
+384 576 l
+368 576 l
+cs
+bl
+hf 8.0 sf
+371.2 577.6 m (16) show
+bl
+256 560 m
+256 576 l
+272 576 l
+272 560 l
+256 560 l
+cs
+bl
+hf 8.0 sf
+259.2 561.6 m (16) show
+bl
+272 560 m
+272 576 l
+288 576 l
+288 560 l
+272 560 l
+cs
+bl
+hf 8.0 sf
+275.2 561.6 m (16) show
+256 544 m
+256 560 l
+272 560 l
+272 544 l
+256 544 l
+fl
+bl
+256 544 m
+256 560 l
+272 560 l
+272 544 l
+256 544 l
+cs
+bl
+272 544 m
+272 560 l
+288 560 l
+288 544 l
+272 544 l
+cs
+bl
+hf 8.0 sf
+275.2 545.6 m (16) show
+bl
+288 560 m
+288 576 l
+304 576 l
+304 560 l
+288 560 l
+cs
+bl
+hf 8.0 sf
+291.2 561.6 m (16) show
+bl
+304 560 m
+304 576 l
+320 576 l
+320 560 l
+304 560 l
+cs
+bl
+hf 8.0 sf
+307.2 561.6 m (16) show
+bl
+288 544 m
+288 560 l
+304 560 l
+304 544 l
+288 544 l
+cs
+bl
+hf 8.0 sf
+291.2 545.6 m (16) show
+bl
+304 544 m
+304 560 l
+320 560 l
+320 544 l
+304 544 l
+cs
+bl
+hf 8.0 sf
+307.2 545.6 m (16) show
+256 512 m
+256 544 l
+288 544 l
+288 512 l
+256 512 l
+fl
+bl
+256 512 m
+256 544 l
+288 544 l
+288 512 l
+256 512 l
+cs
+bl
+288 528 m
+288 544 l
+304 544 l
+304 528 l
+288 528 l
+cs
+bl
+hf 8.0 sf
+291.2 529.6 m (16) show
+bl
+304 528 m
+304 544 l
+320 544 l
+320 528 l
+304 528 l
+cs
+bl
+hf 8.0 sf
+307.2 529.6 m (16) show
+288 512 m
+288 528 l
+304 528 l
+304 512 l
+288 512 l
+fl
+bl
+288 512 m
+288 528 l
+304 528 l
+304 512 l
+288 512 l
+cs
+bl
+304 512 m
+304 528 l
+320 528 l
+320 512 l
+304 512 l
+cs
+bl
+hf 8.0 sf
+307.2 513.6 m (16) show
+bl
+320 560 m
+320 576 l
+336 576 l
+336 560 l
+320 560 l
+cs
+bl
+hf 8.0 sf
+323.2 561.6 m (16) show
+bl
+336 560 m
+336 576 l
+352 576 l
+352 560 l
+336 560 l
+cs
+bl
+hf 8.0 sf
+339.2 561.6 m (16) show
+bl
+320 544 m
+320 560 l
+336 560 l
+336 544 l
+320 544 l
+cs
+bl
+hf 8.0 sf
+323.2 545.6 m (16) show
+bl
+336 544 m
+336 560 l
+352 560 l
+352 544 l
+336 544 l
+cs
+bl
+hf 8.0 sf
+339.2 545.6 m (16) show
+bl
+352 560 m
+352 576 l
+368 576 l
+368 560 l
+352 560 l
+cs
+bl
+hf 8.0 sf
+355.2 561.6 m (16) show
+bl
+368 560 m
+368 576 l
+384 576 l
+384 560 l
+368 560 l
+cs
+bl
+hf 8.0 sf
+371.2 561.6 m (16) show
+bl
+352 544 m
+352 560 l
+368 560 l
+368 544 l
+352 544 l
+cs
+bl
+hf 8.0 sf
+355.2 545.6 m (16) show
+bl
+368 544 m
+368 560 l
+384 560 l
+384 544 l
+368 544 l
+cs
+bl
+hf 8.0 sf
+371.2 545.6 m (16) show
+320 512 m
+320 544 l
+352 544 l
+352 512 l
+320 512 l
+fl
+bl
+320 512 m
+320 544 l
+352 544 l
+352 512 l
+320 512 l
+cs
+bl
+352 528 m
+352 544 l
+368 544 l
+368 528 l
+352 528 l
+cs
+bl
+hf 8.0 sf
+355.2 529.6 m (16) show
+bl
+368 528 m
+368 544 l
+384 544 l
+384 528 l
+368 528 l
+cs
+bl
+hf 8.0 sf
+371.2 529.6 m (16) show
+bl
+352 512 m
+352 528 l
+368 528 l
+368 512 l
+352 512 l
+cs
+bl
+hf 8.0 sf
+355.2 513.6 m (16) show
+bl
+368 512 m
+368 528 l
+384 528 l
+384 512 l
+368 512 l
+cs
+bl
+hf 8.0 sf
+371.2 513.6 m (16) show
+bl
+384 624 m
+384 640 l
+400 640 l
+400 624 l
+384 624 l
+cs
+bl
+hf 8.0 sf
+387.2 625.6 m (16) show
+bl
+400 624 m
+400 640 l
+416 640 l
+416 624 l
+400 624 l
+cs
+bl
+hf 8.0 sf
+403.2 625.6 m (16) show
+bl
+384 608 m
+384 624 l
+400 624 l
+400 608 l
+384 608 l
+cs
+bl
+hf 8.0 sf
+387.2 609.6 m (16) show
+bl
+400 608 m
+400 624 l
+416 624 l
+416 608 l
+400 608 l
+cs
+bl
+hf 8.0 sf
+403.2 609.6 m (16) show
+bl
+416 624 m
+416 640 l
+432 640 l
+432 624 l
+416 624 l
+cs
+bl
+hf 8.0 sf
+419.2 625.6 m (16) show
+bl
+432 624 m
+432 640 l
+448 640 l
+448 624 l
+432 624 l
+cs
+bl
+hf 8.0 sf
+435.2 625.6 m (16) show
+bl
+416 608 m
+416 624 l
+432 624 l
+432 608 l
+416 608 l
+cs
+bl
+hf 8.0 sf
+419.2 609.6 m (16) show
+bl
+432 608 m
+432 624 l
+448 624 l
+448 608 l
+432 608 l
+cs
+bl
+hf 8.0 sf
+435.2 609.6 m (16) show
+bl
+384 592 m
+384 608 l
+400 608 l
+400 592 l
+384 592 l
+cs
+bl
+hf 8.0 sf
+387.2 593.6 m (16) show
+bl
+400 592 m
+400 608 l
+416 608 l
+416 592 l
+400 592 l
+cs
+bl
+hf 8.0 sf
+403.2 593.6 m (16) show
+bl
+384 576 m
+384 592 l
+400 592 l
+400 576 l
+384 576 l
+cs
+bl
+hf 8.0 sf
+387.2 577.6 m (16) show
+bl
+400 576 m
+400 592 l
+416 592 l
+416 576 l
+400 576 l
+cs
+bl
+hf 8.0 sf
+403.2 577.6 m (16) show
+bl
+416 592 m
+416 608 l
+432 608 l
+432 592 l
+416 592 l
+cs
+bl
+hf 8.0 sf
+419.2 593.6 m (16) show
+bl
+432 592 m
+432 608 l
+448 608 l
+448 592 l
+432 592 l
+cs
+bl
+hf 8.0 sf
+435.2 593.6 m (16) show
+bl
+416 576 m
+416 592 l
+432 592 l
+432 576 l
+416 576 l
+cs
+bl
+hf 8.0 sf
+419.2 577.6 m (16) show
+bl
+432 576 m
+432 592 l
+448 592 l
+448 576 l
+432 576 l
+cs
+bl
+hf 8.0 sf
+435.2 577.6 m (16) show
+bl
+448 624 m
+448 640 l
+464 640 l
+464 624 l
+448 624 l
+cs
+bl
+hf 8.0 sf
+451.2 625.6 m (16) show
+bl
+464 624 m
+464 640 l
+480 640 l
+480 624 l
+464 624 l
+cs
+bl
+hf 8.0 sf
+467.2 625.6 m (16) show
+bl
+448 608 m
+448 624 l
+464 624 l
+464 608 l
+448 608 l
+cs
+bl
+hf 8.0 sf
+451.2 609.6 m (16) show
+bl
+464 608 m
+464 624 l
+480 624 l
+480 608 l
+464 608 l
+cs
+bl
+hf 8.0 sf
+467.2 609.6 m (16) show
+bl
+480 624 m
+480 640 l
+496 640 l
+496 624 l
+480 624 l
+cs
+bl
+hf 8.0 sf
+483.2 625.6 m (16) show
+bl
+496 624 m
+496 640 l
+512 640 l
+512 624 l
+496 624 l
+cs
+bl
+hf 8.0 sf
+499.2 625.6 m (16) show
+bl
+480 608 m
+480 624 l
+496 624 l
+496 608 l
+480 608 l
+cs
+bl
+hf 8.0 sf
+483.2 609.6 m (16) show
+bl
+496 608 m
+496 624 l
+512 624 l
+512 608 l
+496 608 l
+cs
+bl
+hf 8.0 sf
+499.2 609.6 m (16) show
+bl
+448 592 m
+448 608 l
+464 608 l
+464 592 l
+448 592 l
+cs
+bl
+hf 8.0 sf
+451.2 593.6 m (16) show
+bl
+464 592 m
+464 608 l
+480 608 l
+480 592 l
+464 592 l
+cs
+bl
+hf 8.0 sf
+467.2 593.6 m (16) show
+bl
+448 576 m
+448 592 l
+464 592 l
+464 576 l
+448 576 l
+cs
+bl
+hf 8.0 sf
+451.2 577.6 m (16) show
+bl
+464 576 m
+464 592 l
+480 592 l
+480 576 l
+464 576 l
+cs
+bl
+hf 8.0 sf
+467.2 577.6 m (16) show
+bl
+480 592 m
+480 608 l
+496 608 l
+496 592 l
+480 592 l
+cs
+bl
+hf 8.0 sf
+483.2 593.6 m (16) show
+bl
+496 592 m
+496 608 l
+512 608 l
+512 592 l
+496 592 l
+cs
+bl
+hf 8.0 sf
+499.2 593.6 m (16) show
+bl
+480 576 m
+480 592 l
+496 592 l
+496 576 l
+480 576 l
+cs
+bl
+hf 8.0 sf
+483.2 577.6 m (16) show
+bl
+496 576 m
+496 592 l
+512 592 l
+512 576 l
+496 576 l
+cs
+bl
+hf 8.0 sf
+499.2 577.6 m (16) show
+bl
+384 560 m
+384 576 l
+400 576 l
+400 560 l
+384 560 l
+cs
+bl
+hf 8.0 sf
+387.2 561.6 m (16) show
+bl
+400 560 m
+400 576 l
+416 576 l
+416 560 l
+400 560 l
+cs
+bl
+hf 8.0 sf
+403.2 561.6 m (16) show
+bl
+384 544 m
+384 560 l
+400 560 l
+400 544 l
+384 544 l
+cs
+bl
+hf 8.0 sf
+387.2 545.6 m (16) show
+bl
+400 544 m
+400 560 l
+416 560 l
+416 544 l
+400 544 l
+cs
+bl
+hf 8.0 sf
+403.2 545.6 m (16) show
+bl
+416 560 m
+416 576 l
+432 576 l
+432 560 l
+416 560 l
+cs
+bl
+hf 8.0 sf
+419.2 561.6 m (16) show
+bl
+432 560 m
+432 576 l
+448 576 l
+448 560 l
+432 560 l
+cs
+bl
+hf 8.0 sf
+435.2 561.6 m (16) show
+bl
+416 544 m
+416 560 l
+432 560 l
+432 544 l
+416 544 l
+cs
+bl
+hf 8.0 sf
+419.2 545.6 m (16) show
+bl
+432 544 m
+432 560 l
+448 560 l
+448 544 l
+432 544 l
+cs
+bl
+hf 8.0 sf
+435.2 545.6 m (16) show
+bl
+384 528 m
+384 544 l
+400 544 l
+400 528 l
+384 528 l
+cs
+bl
+hf 8.0 sf
+387.2 529.6 m (16) show
+bl
+400 528 m
+400 544 l
+416 544 l
+416 528 l
+400 528 l
+cs
+bl
+hf 8.0 sf
+403.2 529.6 m (16) show
+bl
+384 512 m
+384 528 l
+400 528 l
+400 512 l
+384 512 l
+cs
+bl
+hf 8.0 sf
+387.2 513.6 m (16) show
+bl
+400 512 m
+400 528 l
+416 528 l
+416 512 l
+400 512 l
+cs
+bl
+hf 8.0 sf
+403.2 513.6 m (16) show
+bl
+416 528 m
+416 544 l
+432 544 l
+432 528 l
+416 528 l
+cs
+bl
+hf 8.0 sf
+419.2 529.6 m (16) show
+bl
+432 528 m
+432 544 l
+448 544 l
+448 528 l
+432 528 l
+cs
+bl
+hf 8.0 sf
+435.2 529.6 m (16) show
+bl
+416 512 m
+416 528 l
+432 528 l
+432 512 l
+416 512 l
+cs
+bl
+hf 8.0 sf
+419.2 513.6 m (16) show
+bl
+432 512 m
+432 528 l
+448 528 l
+448 512 l
+432 512 l
+cs
+bl
+hf 8.0 sf
+435.2 513.6 m (16) show
+bl
+448 560 m
+448 576 l
+464 576 l
+464 560 l
+448 560 l
+cs
+bl
+hf 8.0 sf
+451.2 561.6 m (16) show
+bl
+464 560 m
+464 576 l
+480 576 l
+480 560 l
+464 560 l
+cs
+bl
+hf 8.0 sf
+467.2 561.6 m (16) show
+bl
+448 544 m
+448 560 l
+464 560 l
+464 544 l
+448 544 l
+cs
+bl
+hf 8.0 sf
+451.2 545.6 m (16) show
+bl
+464 544 m
+464 560 l
+480 560 l
+480 544 l
+464 544 l
+cs
+bl
+hf 8.0 sf
+467.2 545.6 m (16) show
+bl
+480 560 m
+480 576 l
+496 576 l
+496 560 l
+480 560 l
+cs
+bl
+hf 8.0 sf
+483.2 561.6 m (16) show
+bl
+496 560 m
+496 576 l
+512 576 l
+512 560 l
+496 560 l
+cs
+bl
+hf 8.0 sf
+499.2 561.6 m (16) show
+bl
+480 544 m
+480 560 l
+496 560 l
+496 544 l
+480 544 l
+cs
+bl
+hf 8.0 sf
+483.2 545.6 m (16) show
+bl
+496 544 m
+496 560 l
+512 560 l
+512 544 l
+496 544 l
+cs
+bl
+hf 8.0 sf
+499.2 545.6 m (16) show
+bl
+448 528 m
+448 544 l
+464 544 l
+464 528 l
+448 528 l
+cs
+bl
+hf 8.0 sf
+451.2 529.6 m (16) show
+bl
+464 528 m
+464 544 l
+480 544 l
+480 528 l
+464 528 l
+cs
+bl
+hf 8.0 sf
+467.2 529.6 m (16) show
+bl
+448 512 m
+448 528 l
+464 528 l
+464 512 l
+448 512 l
+cs
+bl
+hf 8.0 sf
+451.2 513.6 m (16) show
+bl
+464 512 m
+464 528 l
+480 528 l
+480 512 l
+464 512 l
+cs
+bl
+hf 8.0 sf
+467.2 513.6 m (16) show
+bl
+480 528 m
+480 544 l
+496 544 l
+496 528 l
+480 528 l
+cs
+bl
+hf 8.0 sf
+483.2 529.6 m (16) show
+bl
+496 528 m
+496 544 l
+512 544 l
+512 528 l
+496 528 l
+cs
+bl
+hf 8.0 sf
+499.2 529.6 m (16) show
+bl
+480 512 m
+480 528 l
+496 528 l
+496 512 l
+480 512 l
+cs
+bl
+hf 8.0 sf
+483.2 513.6 m (16) show
+bl
+496 512 m
+496 528 l
+512 528 l
+512 512 l
+496 512 l
+cs
+bl
+hf 8.0 sf
+499.2 513.6 m (16) show
+512 992 m
+512 1024 l
+544 1024 l
+544 992 l
+512 992 l
+fl
+bl
+512 992 m
+512 1024 l
+544 1024 l
+544 992 l
+512 992 l
+cs
+544 992 m
+544 1024 l
+576 1024 l
+576 992 l
+544 992 l
+fl
+bl
+544 992 m
+544 1024 l
+576 1024 l
+576 992 l
+544 992 l
+cs
+512 960 m
+512 992 l
+544 992 l
+544 960 l
+512 960 l
+fl
+bl
+512 960 m
+512 992 l
+544 992 l
+544 960 l
+512 960 l
+cs
+544 960 m
+544 992 l
+576 992 l
+576 960 l
+544 960 l
+fl
+bl
+544 960 m
+544 992 l
+576 992 l
+576 960 l
+544 960 l
+cs
+576 992 m
+576 1024 l
+608 1024 l
+608 992 l
+576 992 l
+fl
+bl
+576 992 m
+576 1024 l
+608 1024 l
+608 992 l
+576 992 l
+cs
+608 992 m
+608 1024 l
+640 1024 l
+640 992 l
+608 992 l
+fl
+bl
+608 992 m
+608 1024 l
+640 1024 l
+640 992 l
+608 992 l
+cs
+576 960 m
+576 992 l
+608 992 l
+608 960 l
+576 960 l
+fl
+bl
+576 960 m
+576 992 l
+608 992 l
+608 960 l
+576 960 l
+cs
+608 960 m
+608 992 l
+640 992 l
+640 960 l
+608 960 l
+fl
+bl
+608 960 m
+608 992 l
+640 992 l
+640 960 l
+608 960 l
+cs
+512 928 m
+512 960 l
+544 960 l
+544 928 l
+512 928 l
+fl
+bl
+512 928 m
+512 960 l
+544 960 l
+544 928 l
+512 928 l
+cs
+544 928 m
+544 960 l
+576 960 l
+576 928 l
+544 928 l
+fl
+bl
+544 928 m
+544 960 l
+576 960 l
+576 928 l
+544 928 l
+cs
+512 896 m
+512 928 l
+544 928 l
+544 896 l
+512 896 l
+fl
+bl
+512 896 m
+512 928 l
+544 928 l
+544 896 l
+512 896 l
+cs
+544 896 m
+544 928 l
+576 928 l
+576 896 l
+544 896 l
+fl
+bl
+544 896 m
+544 928 l
+576 928 l
+576 896 l
+544 896 l
+cs
+576 928 m
+576 960 l
+608 960 l
+608 928 l
+576 928 l
+fl
+bl
+576 928 m
+576 960 l
+608 960 l
+608 928 l
+576 928 l
+cs
+608 928 m
+608 960 l
+640 960 l
+640 928 l
+608 928 l
+fl
+bl
+608 928 m
+608 960 l
+640 960 l
+640 928 l
+608 928 l
+cs
+576 896 m
+576 928 l
+608 928 l
+608 896 l
+576 896 l
+fl
+bl
+576 896 m
+576 928 l
+608 928 l
+608 896 l
+576 896 l
+cs
+608 896 m
+608 928 l
+640 928 l
+640 896 l
+608 896 l
+fl
+bl
+608 896 m
+608 928 l
+640 928 l
+640 896 l
+608 896 l
+cs
+640 896 m
+640 1024 l
+704 1024 l
+704 896 l
+640 896 l
+fl
+bl
+640 896 m
+640 1024 l
+704 1024 l
+704 896 l
+640 896 l
+cs
+bl
+512 880 m
+512 896 l
+528 896 l
+528 880 l
+512 880 l
+cs
+bl
+hf 8.0 sf
+515.2 881.6 m (16) show
+bl
+528 880 m
+528 896 l
+544 896 l
+544 880 l
+528 880 l
+cs
+bl
+hf 8.0 sf
+531.2 881.6 m (16) show
+bl
+512 864 m
+512 880 l
+528 880 l
+528 864 l
+512 864 l
+cs
+bl
+hf 8.0 sf
+515.2 865.6 m (16) show
+bl
+528 864 m
+528 880 l
+544 880 l
+544 864 l
+528 864 l
+cs
+bl
+hf 8.0 sf
+531.2 865.6 m (16) show
+544 864 m
+544 896 l
+576 896 l
+576 864 l
+544 864 l
+fl
+bl
+544 864 m
+544 896 l
+576 896 l
+576 864 l
+544 864 l
+cs
+bl
+512 848 m
+512 864 l
+528 864 l
+528 848 l
+512 848 l
+cs
+bl
+hf 8.0 sf
+515.2 849.6 m (16) show
+bl
+528 848 m
+528 864 l
+544 864 l
+544 848 l
+528 848 l
+cs
+bl
+hf 8.0 sf
+531.2 849.6 m (16) show
+bl
+512 832 m
+512 848 l
+528 848 l
+528 832 l
+512 832 l
+cs
+bl
+hf 8.0 sf
+515.2 833.6 m (16) show
+bl
+528 832 m
+528 848 l
+544 848 l
+544 832 l
+528 832 l
+cs
+bl
+hf 8.0 sf
+531.2 833.6 m (16) show
+bl
+544 848 m
+544 864 l
+560 864 l
+560 848 l
+544 848 l
+cs
+bl
+hf 8.0 sf
+547.2 849.6 m (16) show
+bl
+560 848 m
+560 864 l
+576 864 l
+576 848 l
+560 848 l
+cs
+bl
+hf 8.0 sf
+563.2 849.6 m (16) show
+bl
+544 832 m
+544 848 l
+560 848 l
+560 832 l
+544 832 l
+cs
+bl
+hf 8.0 sf
+547.2 833.6 m (16) show
+bl
+560 832 m
+560 848 l
+576 848 l
+576 832 l
+560 832 l
+cs
+bl
+hf 8.0 sf
+563.2 833.6 m (16) show
+bl
+576 880 m
+576 896 l
+592 896 l
+592 880 l
+576 880 l
+cs
+bl
+hf 8.0 sf
+579.2 881.6 m (16) show
+592 880 m
+592 896 l
+608 896 l
+608 880 l
+592 880 l
+fl
+bl
+592 880 m
+592 896 l
+608 896 l
+608 880 l
+592 880 l
+cs
+bl
+576 864 m
+576 880 l
+592 880 l
+592 864 l
+576 864 l
+cs
+bl
+hf 8.0 sf
+579.2 865.6 m (16) show
+bl
+592 864 m
+592 880 l
+608 880 l
+608 864 l
+592 864 l
+cs
+bl
+hf 8.0 sf
+595.2 865.6 m (16) show
+608 864 m
+608 896 l
+640 896 l
+640 864 l
+608 864 l
+fl
+bl
+608 864 m
+608 896 l
+640 896 l
+640 864 l
+608 864 l
+cs
+bl
+576 848 m
+576 864 l
+592 864 l
+592 848 l
+576 848 l
+cs
+bl
+hf 8.0 sf
+579.2 849.6 m (16) show
+bl
+592 848 m
+592 864 l
+608 864 l
+608 848 l
+592 848 l
+cs
+bl
+hf 8.0 sf
+595.2 849.6 m (16) show
+bl
+576 832 m
+576 848 l
+592 848 l
+592 832 l
+576 832 l
+cs
+bl
+hf 8.0 sf
+579.2 833.6 m (16) show
+bl
+592 832 m
+592 848 l
+608 848 l
+608 832 l
+592 832 l
+cs
+bl
+hf 8.0 sf
+595.2 833.6 m (16) show
+bl
+608 848 m
+608 864 l
+624 864 l
+624 848 l
+608 848 l
+cs
+bl
+hf 8.0 sf
+611.2 849.6 m (16) show
+624 848 m
+624 864 l
+640 864 l
+640 848 l
+624 848 l
+fl
+bl
+624 848 m
+624 864 l
+640 864 l
+640 848 l
+624 848 l
+cs
+bl
+608 832 m
+608 848 l
+624 848 l
+624 832 l
+608 832 l
+cs
+bl
+hf 8.0 sf
+611.2 833.6 m (16) show
+bl
+624 832 m
+624 848 l
+640 848 l
+640 832 l
+624 832 l
+cs
+bl
+hf 8.0 sf
+627.2 833.6 m (16) show
+bl
+512 816 m
+512 832 l
+528 832 l
+528 816 l
+512 816 l
+cs
+bl
+hf 8.0 sf
+515.2 817.6 m (16) show
+bl
+528 816 m
+528 832 l
+544 832 l
+544 816 l
+528 816 l
+cs
+bl
+hf 8.0 sf
+531.2 817.6 m (16) show
+512 800 m
+512 816 l
+528 816 l
+528 800 l
+512 800 l
+fl
+bl
+512 800 m
+512 816 l
+528 816 l
+528 800 l
+512 800 l
+cs
+bl
+528 800 m
+528 816 l
+544 816 l
+544 800 l
+528 800 l
+cs
+bl
+hf 8.0 sf
+531.2 801.6 m (16) show
+544 800 m
+544 832 l
+576 832 l
+576 800 l
+544 800 l
+fl
+bl
+544 800 m
+544 832 l
+576 832 l
+576 800 l
+544 800 l
+cs
+bl
+512 784 m
+512 800 l
+528 800 l
+528 784 l
+512 784 l
+cs
+bl
+hf 8.0 sf
+515.2 785.6 m (16) show
+bl
+528 784 m
+528 800 l
+544 800 l
+544 784 l
+528 784 l
+cs
+bl
+hf 8.0 sf
+531.2 785.6 m (16) show
+bl
+512 768 m
+512 784 l
+528 784 l
+528 768 l
+512 768 l
+cs
+bl
+hf 8.0 sf
+515.2 769.6 m (16) show
+bl
+528 768 m
+528 784 l
+544 784 l
+544 768 l
+528 768 l
+cs
+bl
+hf 8.0 sf
+531.2 769.6 m (16) show
+bl
+544 784 m
+544 800 l
+560 800 l
+560 784 l
+544 784 l
+cs
+bl
+hf 8.0 sf
+547.2 785.6 m (16) show
+bl
+560 784 m
+560 800 l
+576 800 l
+576 784 l
+560 784 l
+cs
+bl
+hf 8.0 sf
+563.2 785.6 m (16) show
+544 768 m
+544 784 l
+560 784 l
+560 768 l
+544 768 l
+fl
+bl
+544 768 m
+544 784 l
+560 784 l
+560 768 l
+544 768 l
+cs
+bl
+560 768 m
+560 784 l
+576 784 l
+576 768 l
+560 768 l
+cs
+bl
+hf 8.0 sf
+563.2 769.6 m (16) show
+bl
+576 816 m
+576 832 l
+592 832 l
+592 816 l
+576 816 l
+cs
+bl
+hf 8.0 sf
+579.2 817.6 m (16) show
+bl
+592 816 m
+592 832 l
+608 832 l
+608 816 l
+592 816 l
+cs
+bl
+hf 8.0 sf
+595.2 817.6 m (16) show
+bl
+576 800 m
+576 816 l
+592 816 l
+592 800 l
+576 800 l
+cs
+bl
+hf 8.0 sf
+579.2 801.6 m (16) show
+bl
+592 800 m
+592 816 l
+608 816 l
+608 800 l
+592 800 l
+cs
+bl
+hf 8.0 sf
+595.2 801.6 m (16) show
+608 800 m
+608 832 l
+640 832 l
+640 800 l
+608 800 l
+fl
+bl
+608 800 m
+608 832 l
+640 832 l
+640 800 l
+608 800 l
+cs
+bl
+576 784 m
+576 800 l
+592 800 l
+592 784 l
+576 784 l
+cs
+bl
+hf 8.0 sf
+579.2 785.6 m (16) show
+bl
+592 784 m
+592 800 l
+608 800 l
+608 784 l
+592 784 l
+cs
+bl
+hf 8.0 sf
+595.2 785.6 m (16) show
+bl
+576 768 m
+576 784 l
+592 784 l
+592 768 l
+576 768 l
+cs
+bl
+hf 8.0 sf
+579.2 769.6 m (16) show
+bl
+592 768 m
+592 784 l
+608 784 l
+608 768 l
+592 768 l
+cs
+bl
+hf 8.0 sf
+595.2 769.6 m (16) show
+bl
+608 784 m
+608 800 l
+624 800 l
+624 784 l
+608 784 l
+cs
+bl
+hf 8.0 sf
+611.2 785.6 m (16) show
+bl
+624 784 m
+624 800 l
+640 800 l
+640 784 l
+624 784 l
+cs
+bl
+hf 8.0 sf
+627.2 785.6 m (16) show
+bl
+608 768 m
+608 784 l
+624 784 l
+624 768 l
+608 768 l
+cs
+bl
+hf 8.0 sf
+611.2 769.6 m (16) show
+bl
+624 768 m
+624 784 l
+640 784 l
+640 768 l
+624 768 l
+cs
+bl
+hf 8.0 sf
+627.2 769.6 m (16) show
+640 864 m
+640 896 l
+672 896 l
+672 864 l
+640 864 l
+fl
+bl
+640 864 m
+640 896 l
+672 896 l
+672 864 l
+640 864 l
+cs
+672 864 m
+672 896 l
+688 896 l
+688 864 l
+672 864 l
+fl
+bl
+672 864 m
+672 896 l
+688 896 l
+688 864 l
+672 864 l
+cs
+640 832 m
+640 864 l
+672 864 l
+672 832 l
+640 832 l
+fl
+bl
+640 832 m
+640 864 l
+672 864 l
+672 832 l
+640 832 l
+cs
+672 832 m
+672 864 l
+688 864 l
+688 832 l
+672 832 l
+fl
+bl
+672 832 m
+672 864 l
+688 864 l
+688 832 l
+672 832 l
+cs
+688 832 m
+688 896 l
+704 896 l
+704 832 l
+688 832 l
+fl
+bl
+688 832 m
+688 896 l
+704 896 l
+704 832 l
+688 832 l
+cs
+640 800 m
+640 832 l
+672 832 l
+672 800 l
+640 800 l
+fl
+bl
+640 800 m
+640 832 l
+672 832 l
+672 800 l
+640 800 l
+cs
+672 800 m
+672 832 l
+688 832 l
+688 800 l
+672 800 l
+fl
+bl
+672 800 m
+672 832 l
+688 832 l
+688 800 l
+672 800 l
+cs
+640 768 m
+640 800 l
+672 800 l
+672 768 l
+640 768 l
+fl
+bl
+640 768 m
+640 800 l
+672 800 l
+672 768 l
+640 768 l
+cs
+672 768 m
+672 800 l
+688 800 l
+688 768 l
+672 768 l
+fl
+bl
+672 768 m
+672 800 l
+688 800 l
+688 768 l
+672 768 l
+cs
+688 768 m
+688 832 l
+704 832 l
+704 768 l
+688 768 l
+fl
+bl
+688 768 m
+688 832 l
+704 832 l
+704 768 l
+688 768 l
+cs
+704 960 m
+704 1024 l
+736 1024 l
+736 960 l
+704 960 l
+fl
+bl
+704 960 m
+704 1024 l
+736 1024 l
+736 960 l
+704 960 l
+cs
+736 960 m
+736 1024 l
+752 1024 l
+752 960 l
+736 960 l
+fl
+bl
+736 960 m
+736 1024 l
+752 1024 l
+752 960 l
+736 960 l
+cs
+704 896 m
+704 960 l
+736 960 l
+736 896 l
+704 896 l
+fl
+bl
+704 896 m
+704 960 l
+736 960 l
+736 896 l
+704 896 l
+cs
+736 896 m
+736 960 l
+752 960 l
+752 896 l
+736 896 l
+fl
+bl
+736 896 m
+736 960 l
+752 960 l
+752 896 l
+736 896 l
+cs
+752 896 m
+752 1024 l
+768 1024 l
+768 896 l
+752 896 l
+fl
+bl
+752 896 m
+752 1024 l
+768 1024 l
+768 896 l
+752 896 l
+cs
+704 864 m
+704 896 l
+720 896 l
+720 864 l
+704 864 l
+fl
+bl
+704 864 m
+704 896 l
+720 896 l
+720 864 l
+704 864 l
+cs
+720 864 m
+720 896 l
+736 896 l
+736 864 l
+720 864 l
+fl
+bl
+720 864 m
+720 896 l
+736 896 l
+736 864 l
+720 864 l
+cs
+bl
+704 832 m
+704 864 l
+720 864 l
+720 832 l
+704 832 l
+cs
+bl
+hf 8.0 sf
+707.2 835.2 m (16) show
+720 832 m
+720 864 l
+736 864 l
+736 832 l
+720 832 l
+fl
+bl
+720 832 m
+720 864 l
+736 864 l
+736 832 l
+720 832 l
+cs
+bl
+736 832 m
+736 896 l
+752 896 l
+752 832 l
+736 832 l
+cs
+bl
+hf 8.0 sf
+739.2 838.4 m (16) show
+bl
+704 800 m
+704 832 l
+720 832 l
+720 800 l
+704 800 l
+cs
+bl
+hf 8.0 sf
+707.2 803.2 m (16) show
+bl
+720 800 m
+720 832 l
+736 832 l
+736 800 l
+720 800 l
+cs
+bl
+hf 8.0 sf
+723.2 803.2 m (16) show
+bl
+704 768 m
+704 800 l
+720 800 l
+720 768 l
+704 768 l
+cs
+bl
+hf 8.0 sf
+707.2 771.2 m (16) show
+bl
+720 768 m
+720 800 l
+736 800 l
+736 768 l
+720 768 l
+cs
+bl
+hf 8.0 sf
+723.2 771.2 m (16) show
+bl
+736 768 m
+736 832 l
+752 832 l
+752 768 l
+736 768 l
+cs
+bl
+hf 8.0 sf
+739.2 774.4 m (16) show
+bl
+752 768 m
+752 896 l
+768 896 l
+768 768 l
+752 768 l
+cs
+bl
+hf 8.0 sf
+755.2 780.8 m (16) show
+512 736 m
+512 768 l
+544 768 l
+544 736 l
+512 736 l
+fl
+bl
+512 736 m
+512 768 l
+544 768 l
+544 736 l
+512 736 l
+cs
+544 736 m
+544 768 l
+576 768 l
+576 736 l
+544 736 l
+fl
+bl
+544 736 m
+544 768 l
+576 768 l
+576 736 l
+544 736 l
+cs
+512 704 m
+512 736 l
+544 736 l
+544 704 l
+512 704 l
+fl
+bl
+512 704 m
+512 736 l
+544 736 l
+544 704 l
+512 704 l
+cs
+544 704 m
+544 736 l
+576 736 l
+576 704 l
+544 704 l
+fl
+bl
+544 704 m
+544 736 l
+576 736 l
+576 704 l
+544 704 l
+cs
+576 736 m
+576 768 l
+608 768 l
+608 736 l
+576 736 l
+fl
+bl
+576 736 m
+576 768 l
+608 768 l
+608 736 l
+576 736 l
+cs
+608 736 m
+608 768 l
+640 768 l
+640 736 l
+608 736 l
+fl
+bl
+608 736 m
+608 768 l
+640 768 l
+640 736 l
+608 736 l
+cs
+576 704 m
+576 736 l
+608 736 l
+608 704 l
+576 704 l
+fl
+bl
+576 704 m
+576 736 l
+608 736 l
+608 704 l
+576 704 l
+cs
+608 704 m
+608 736 l
+640 736 l
+640 704 l
+608 704 l
+fl
+bl
+608 704 m
+608 736 l
+640 736 l
+640 704 l
+608 704 l
+cs
+512 640 m
+512 704 l
+576 704 l
+576 640 l
+512 640 l
+fl
+bl
+512 640 m
+512 704 l
+576 704 l
+576 640 l
+512 640 l
+cs
+576 672 m
+576 704 l
+608 704 l
+608 672 l
+576 672 l
+fl
+bl
+576 672 m
+576 704 l
+608 704 l
+608 672 l
+576 672 l
+cs
+608 672 m
+608 704 l
+640 704 l
+640 672 l
+608 672 l
+fl
+bl
+608 672 m
+608 704 l
+640 704 l
+640 672 l
+608 672 l
+cs
+576 640 m
+576 672 l
+608 672 l
+608 640 l
+576 640 l
+fl
+bl
+576 640 m
+576 672 l
+608 672 l
+608 640 l
+576 640 l
+cs
+608 640 m
+608 672 l
+640 672 l
+640 640 l
+608 640 l
+fl
+bl
+608 640 m
+608 672 l
+640 672 l
+640 640 l
+608 640 l
+cs
+640 640 m
+640 768 l
+704 768 l
+704 640 l
+640 640 l
+fl
+bl
+640 640 m
+640 768 l
+704 768 l
+704 640 l
+640 640 l
+cs
+512 624 m
+512 640 l
+528 640 l
+528 624 l
+512 624 l
+fl
+bl
+512 624 m
+512 640 l
+528 640 l
+528 624 l
+512 624 l
+cs
+528 624 m
+528 640 l
+544 640 l
+544 624 l
+528 624 l
+fl
+bl
+528 624 m
+528 640 l
+544 640 l
+544 624 l
+528 624 l
+cs
+512 608 m
+512 624 l
+528 624 l
+528 608 l
+512 608 l
+fl
+bl
+512 608 m
+512 624 l
+528 624 l
+528 608 l
+512 608 l
+cs
+528 608 m
+528 624 l
+544 624 l
+544 608 l
+528 608 l
+fl
+bl
+528 608 m
+528 624 l
+544 624 l
+544 608 l
+528 608 l
+cs
+544 608 m
+544 640 l
+576 640 l
+576 608 l
+544 608 l
+fl
+bl
+544 608 m
+544 640 l
+576 640 l
+576 608 l
+544 608 l
+cs
+512 592 m
+512 608 l
+528 608 l
+528 592 l
+512 592 l
+fl
+bl
+512 592 m
+512 608 l
+528 608 l
+528 592 l
+512 592 l
+cs
+bl
+528 592 m
+528 608 l
+544 608 l
+544 592 l
+528 592 l
+cs
+bl
+hf 8.0 sf
+531.2 593.6 m (16) show
+512 576 m
+512 592 l
+528 592 l
+528 576 l
+512 576 l
+fl
+bl
+512 576 m
+512 592 l
+528 592 l
+528 576 l
+512 576 l
+cs
+528 576 m
+528 592 l
+544 592 l
+544 576 l
+528 576 l
+fl
+bl
+528 576 m
+528 592 l
+544 592 l
+544 576 l
+528 576 l
+cs
+544 592 m
+544 608 l
+560 608 l
+560 592 l
+544 592 l
+fl
+bl
+544 592 m
+544 608 l
+560 608 l
+560 592 l
+544 592 l
+cs
+560 592 m
+560 608 l
+576 608 l
+576 592 l
+560 592 l
+fl
+bl
+560 592 m
+560 608 l
+576 608 l
+576 592 l
+560 592 l
+cs
+544 576 m
+544 592 l
+560 592 l
+560 576 l
+544 576 l
+fl
+bl
+544 576 m
+544 592 l
+560 592 l
+560 576 l
+544 576 l
+cs
+560 576 m
+560 592 l
+576 592 l
+576 576 l
+560 576 l
+fl
+bl
+560 576 m
+560 592 l
+576 592 l
+576 576 l
+560 576 l
+cs
+bl
+576 624 m
+576 640 l
+592 640 l
+592 624 l
+576 624 l
+cs
+bl
+hf 8.0 sf
+579.2 625.6 m (16) show
+bl
+592 624 m
+592 640 l
+608 640 l
+608 624 l
+592 624 l
+cs
+bl
+hf 8.0 sf
+595.2 625.6 m (16) show
+576 608 m
+576 624 l
+592 624 l
+592 608 l
+576 608 l
+fl
+bl
+576 608 m
+576 624 l
+592 624 l
+592 608 l
+576 608 l
+cs
+bl
+592 608 m
+592 624 l
+608 624 l
+608 608 l
+592 608 l
+cs
+bl
+hf 8.0 sf
+595.2 609.6 m (16) show
+608 608 m
+608 640 l
+640 640 l
+640 608 l
+608 608 l
+fl
+bl
+608 608 m
+608 640 l
+640 640 l
+640 608 l
+608 608 l
+cs
+bl
+576 592 m
+576 608 l
+592 608 l
+592 592 l
+576 592 l
+cs
+bl
+hf 8.0 sf
+579.2 593.6 m (16) show
+bl
+592 592 m
+592 608 l
+608 608 l
+608 592 l
+592 592 l
+cs
+bl
+hf 8.0 sf
+595.2 593.6 m (16) show
+bl
+576 576 m
+576 592 l
+592 592 l
+592 576 l
+576 576 l
+cs
+bl
+hf 8.0 sf
+579.2 577.6 m (16) show
+bl
+592 576 m
+592 592 l
+608 592 l
+608 576 l
+592 576 l
+cs
+bl
+hf 8.0 sf
+595.2 577.6 m (16) show
+bl
+608 592 m
+608 608 l
+624 608 l
+624 592 l
+608 592 l
+cs
+bl
+hf 8.0 sf
+611.2 593.6 m (16) show
+bl
+624 592 m
+624 608 l
+640 608 l
+640 592 l
+624 592 l
+cs
+bl
+hf 8.0 sf
+627.2 593.6 m (16) show
+608 576 m
+608 592 l
+624 592 l
+624 576 l
+608 576 l
+fl
+bl
+608 576 m
+608 592 l
+624 592 l
+624 576 l
+608 576 l
+cs
+bl
+624 576 m
+624 592 l
+640 592 l
+640 576 l
+624 576 l
+cs
+bl
+hf 8.0 sf
+627.2 577.6 m (16) show
+512 544 m
+512 576 l
+544 576 l
+544 544 l
+512 544 l
+fl
+bl
+512 544 m
+512 576 l
+544 576 l
+544 544 l
+512 544 l
+cs
+544 544 m
+544 576 l
+576 576 l
+576 544 l
+544 544 l
+fl
+bl
+544 544 m
+544 576 l
+576 576 l
+576 544 l
+544 544 l
+cs
+512 512 m
+512 544 l
+544 544 l
+544 512 l
+512 512 l
+fl
+bl
+512 512 m
+512 544 l
+544 544 l
+544 512 l
+512 512 l
+cs
+544 512 m
+544 544 l
+576 544 l
+576 512 l
+544 512 l
+fl
+bl
+544 512 m
+544 544 l
+576 544 l
+576 512 l
+544 512 l
+cs
+576 560 m
+576 576 l
+592 576 l
+592 560 l
+576 560 l
+fl
+bl
+576 560 m
+576 576 l
+592 576 l
+592 560 l
+576 560 l
+cs
+592 560 m
+592 576 l
+608 576 l
+608 560 l
+592 560 l
+fl
+bl
+592 560 m
+592 576 l
+608 576 l
+608 560 l
+592 560 l
+cs
+576 544 m
+576 560 l
+592 560 l
+592 544 l
+576 544 l
+fl
+bl
+576 544 m
+576 560 l
+592 560 l
+592 544 l
+576 544 l
+cs
+592 544 m
+592 560 l
+608 560 l
+608 544 l
+592 544 l
+fl
+bl
+592 544 m
+592 560 l
+608 560 l
+608 544 l
+592 544 l
+cs
+608 544 m
+608 576 l
+640 576 l
+640 544 l
+608 544 l
+fl
+bl
+608 544 m
+608 576 l
+640 576 l
+640 544 l
+608 544 l
+cs
+576 528 m
+576 544 l
+592 544 l
+592 528 l
+576 528 l
+fl
+bl
+576 528 m
+576 544 l
+592 544 l
+592 528 l
+576 528 l
+cs
+bl
+592 528 m
+592 544 l
+608 544 l
+608 528 l
+592 528 l
+cs
+bl
+hf 8.0 sf
+595.2 529.6 m (16) show
+576 512 m
+576 528 l
+592 528 l
+592 512 l
+576 512 l
+fl
+bl
+576 512 m
+576 528 l
+592 528 l
+592 512 l
+576 512 l
+cs
+592 512 m
+592 528 l
+608 528 l
+608 512 l
+592 512 l
+fl
+bl
+592 512 m
+592 528 l
+608 528 l
+608 512 l
+592 512 l
+cs
+608 528 m
+608 544 l
+624 544 l
+624 528 l
+608 528 l
+fl
+bl
+608 528 m
+608 544 l
+624 544 l
+624 528 l
+608 528 l
+cs
+624 528 m
+624 544 l
+640 544 l
+640 528 l
+624 528 l
+fl
+bl
+624 528 m
+624 544 l
+640 544 l
+640 528 l
+624 528 l
+cs
+608 512 m
+608 528 l
+624 528 l
+624 512 l
+608 512 l
+fl
+bl
+608 512 m
+608 528 l
+624 528 l
+624 512 l
+608 512 l
+cs
+624 512 m
+624 528 l
+640 528 l
+640 512 l
+624 512 l
+fl
+bl
+624 512 m
+624 528 l
+640 528 l
+640 512 l
+624 512 l
+cs
+640 608 m
+640 640 l
+672 640 l
+672 608 l
+640 608 l
+fl
+bl
+640 608 m
+640 640 l
+672 640 l
+672 608 l
+640 608 l
+cs
+672 608 m
+672 640 l
+688 640 l
+688 608 l
+672 608 l
+fl
+bl
+672 608 m
+672 640 l
+688 640 l
+688 608 l
+672 608 l
+cs
+640 576 m
+640 608 l
+672 608 l
+672 576 l
+640 576 l
+fl
+bl
+640 576 m
+640 608 l
+672 608 l
+672 576 l
+640 576 l
+cs
+672 576 m
+672 608 l
+688 608 l
+688 576 l
+672 576 l
+fl
+bl
+672 576 m
+672 608 l
+688 608 l
+688 576 l
+672 576 l
+cs
+688 576 m
+688 640 l
+704 640 l
+704 576 l
+688 576 l
+fl
+bl
+688 576 m
+688 640 l
+704 640 l
+704 576 l
+688 576 l
+cs
+640 512 m
+640 576 l
+688 576 l
+688 512 l
+640 512 l
+fl
+bl
+640 512 m
+640 576 l
+688 576 l
+688 512 l
+640 512 l
+cs
+688 512 m
+688 576 l
+704 576 l
+704 512 l
+688 512 l
+fl
+bl
+688 512 m
+688 576 l
+704 576 l
+704 512 l
+688 512 l
+cs
+704 704 m
+704 768 l
+736 768 l
+736 704 l
+704 704 l
+fl
+bl
+704 704 m
+704 768 l
+736 768 l
+736 704 l
+704 704 l
+cs
+736 704 m
+736 768 l
+752 768 l
+752 704 l
+736 704 l
+fl
+bl
+736 704 m
+736 768 l
+752 768 l
+752 704 l
+736 704 l
+cs
+704 640 m
+704 704 l
+736 704 l
+736 640 l
+704 640 l
+fl
+bl
+704 640 m
+704 704 l
+736 704 l
+736 640 l
+704 640 l
+cs
+736 640 m
+736 704 l
+752 704 l
+752 640 l
+736 640 l
+fl
+bl
+736 640 m
+736 704 l
+752 704 l
+752 640 l
+736 640 l
+cs
+752 640 m
+752 768 l
+768 768 l
+768 640 l
+752 640 l
+fl
+bl
+752 640 m
+752 768 l
+768 768 l
+768 640 l
+752 640 l
+cs
+bl
+704 608 m
+704 640 l
+720 640 l
+720 608 l
+704 608 l
+cs
+bl
+hf 8.0 sf
+707.2 611.2 m (16) show
+bl
+720 608 m
+720 640 l
+736 640 l
+736 608 l
+720 608 l
+cs
+bl
+hf 8.0 sf
+723.2 611.2 m (16) show
+bl
+704 576 m
+704 608 l
+720 608 l
+720 576 l
+704 576 l
+cs
+bl
+hf 8.0 sf
+707.2 579.2 m (16) show
+bl
+720 576 m
+720 608 l
+736 608 l
+736 576 l
+720 576 l
+cs
+bl
+hf 8.0 sf
+723.2 579.2 m (16) show
+bl
+736 576 m
+736 640 l
+752 640 l
+752 576 l
+736 576 l
+cs
+bl
+hf 8.0 sf
+739.2 582.4 m (16) show
+bl
+704 544 m
+704 576 l
+720 576 l
+720 544 l
+704 544 l
+cs
+bl
+hf 8.0 sf
+707.2 547.2 m (16) show
+bl
+720 544 m
+720 576 l
+736 576 l
+736 544 l
+720 544 l
+cs
+bl
+hf 8.0 sf
+723.2 547.2 m (16) show
+bl
+704 512 m
+704 544 l
+720 544 l
+720 512 l
+704 512 l
+cs
+bl
+hf 8.0 sf
+707.2 515.2 m (16) show
+bl
+720 512 m
+720 544 l
+736 544 l
+736 512 l
+720 512 l
+cs
+bl
+hf 8.0 sf
+723.2 515.2 m (16) show
+bl
+736 512 m
+736 576 l
+752 576 l
+752 512 l
+736 512 l
+cs
+bl
+hf 8.0 sf
+739.2 518.4 m (16) show
+bl
+752 512 m
+752 640 l
+768 640 l
+768 512 l
+752 512 l
+cs
+bl
+hf 8.0 sf
+755.2 524.8 m (16) show
+0 480 m
+0 512 l
+32 512 l
+32 480 l
+0 480 l
+fl
+bl
+0 480 m
+0 512 l
+32 512 l
+32 480 l
+0 480 l
+cs
+32 480 m
+32 512 l
+64 512 l
+64 480 l
+32 480 l
+fl
+bl
+32 480 m
+32 512 l
+64 512 l
+64 480 l
+32 480 l
+cs
+0 448 m
+0 480 l
+32 480 l
+32 448 l
+0 448 l
+fl
+bl
+0 448 m
+0 480 l
+32 480 l
+32 448 l
+0 448 l
+cs
+32 448 m
+32 480 l
+64 480 l
+64 448 l
+32 448 l
+fl
+bl
+32 448 m
+32 480 l
+64 480 l
+64 448 l
+32 448 l
+cs
+64 480 m
+64 512 l
+96 512 l
+96 480 l
+64 480 l
+fl
+bl
+64 480 m
+64 512 l
+96 512 l
+96 480 l
+64 480 l
+cs
+96 480 m
+96 512 l
+128 512 l
+128 480 l
+96 480 l
+fl
+bl
+96 480 m
+96 512 l
+128 512 l
+128 480 l
+96 480 l
+cs
+64 448 m
+64 480 l
+96 480 l
+96 448 l
+64 448 l
+fl
+bl
+64 448 m
+64 480 l
+96 480 l
+96 448 l
+64 448 l
+cs
+96 448 m
+96 480 l
+128 480 l
+128 448 l
+96 448 l
+fl
+bl
+96 448 m
+96 480 l
+128 480 l
+128 448 l
+96 448 l
+cs
+0 416 m
+0 448 l
+32 448 l
+32 416 l
+0 416 l
+fl
+bl
+0 416 m
+0 448 l
+32 448 l
+32 416 l
+0 416 l
+cs
+32 416 m
+32 448 l
+64 448 l
+64 416 l
+32 416 l
+fl
+bl
+32 416 m
+32 448 l
+64 448 l
+64 416 l
+32 416 l
+cs
+0 384 m
+0 416 l
+32 416 l
+32 384 l
+0 384 l
+fl
+bl
+0 384 m
+0 416 l
+32 416 l
+32 384 l
+0 384 l
+cs
+32 384 m
+32 416 l
+64 416 l
+64 384 l
+32 384 l
+fl
+bl
+32 384 m
+32 416 l
+64 416 l
+64 384 l
+32 384 l
+cs
+64 416 m
+64 448 l
+96 448 l
+96 416 l
+64 416 l
+fl
+bl
+64 416 m
+64 448 l
+96 448 l
+96 416 l
+64 416 l
+cs
+96 416 m
+96 448 l
+128 448 l
+128 416 l
+96 416 l
+fl
+bl
+96 416 m
+96 448 l
+128 448 l
+128 416 l
+96 416 l
+cs
+64 384 m
+64 416 l
+96 416 l
+96 384 l
+64 384 l
+fl
+bl
+64 384 m
+64 416 l
+96 416 l
+96 384 l
+64 384 l
+cs
+96 384 m
+96 416 l
+128 416 l
+128 384 l
+96 384 l
+fl
+bl
+96 384 m
+96 416 l
+128 416 l
+128 384 l
+96 384 l
+cs
+bl
+128 496 m
+128 512 l
+144 512 l
+144 496 l
+128 496 l
+cs
+bl
+hf 8.0 sf
+131.2 497.6 m (16) show
+bl
+144 496 m
+144 512 l
+160 512 l
+160 496 l
+144 496 l
+cs
+bl
+hf 8.0 sf
+147.2 497.6 m (16) show
+bl
+128 480 m
+128 496 l
+144 496 l
+144 480 l
+128 480 l
+cs
+bl
+hf 8.0 sf
+131.2 481.6 m (16) show
+bl
+144 480 m
+144 496 l
+160 496 l
+160 480 l
+144 480 l
+cs
+bl
+hf 8.0 sf
+147.2 481.6 m (16) show
+bl
+160 496 m
+160 512 l
+176 512 l
+176 496 l
+160 496 l
+cs
+bl
+hf 8.0 sf
+163.2 497.6 m (16) show
+bl
+176 496 m
+176 512 l
+192 512 l
+192 496 l
+176 496 l
+cs
+bl
+hf 8.0 sf
+179.2 497.6 m (16) show
+bl
+160 480 m
+160 496 l
+176 496 l
+176 480 l
+160 480 l
+cs
+bl
+hf 8.0 sf
+163.2 481.6 m (16) show
+bl
+176 480 m
+176 496 l
+192 496 l
+192 480 l
+176 480 l
+cs
+bl
+hf 8.0 sf
+179.2 481.6 m (16) show
+128 448 m
+128 480 l
+160 480 l
+160 448 l
+128 448 l
+fl
+bl
+128 448 m
+128 480 l
+160 480 l
+160 448 l
+128 448 l
+cs
+bl
+160 464 m
+160 480 l
+176 480 l
+176 464 l
+160 464 l
+cs
+bl
+hf 8.0 sf
+163.2 465.6 m (16) show
+bl
+176 464 m
+176 480 l
+192 480 l
+192 464 l
+176 464 l
+cs
+bl
+hf 8.0 sf
+179.2 465.6 m (16) show
+bl
+160 448 m
+160 464 l
+176 464 l
+176 448 l
+160 448 l
+cs
+bl
+hf 8.0 sf
+163.2 449.6 m (16) show
+bl
+176 448 m
+176 464 l
+192 464 l
+192 448 l
+176 448 l
+cs
+bl
+hf 8.0 sf
+179.2 449.6 m (16) show
+bl
+192 496 m
+192 512 l
+208 512 l
+208 496 l
+192 496 l
+cs
+bl
+hf 8.0 sf
+195.2 497.6 m (16) show
+208 496 m
+208 512 l
+224 512 l
+224 496 l
+208 496 l
+fl
+bl
+208 496 m
+208 512 l
+224 512 l
+224 496 l
+208 496 l
+cs
+bl
+192 480 m
+192 496 l
+208 496 l
+208 480 l
+192 480 l
+cs
+bl
+hf 8.0 sf
+195.2 481.6 m (16) show
+bl
+208 480 m
+208 496 l
+224 496 l
+224 480 l
+208 480 l
+cs
+bl
+hf 8.0 sf
+211.2 481.6 m (16) show
+bl
+224 496 m
+224 512 l
+240 512 l
+240 496 l
+224 496 l
+cs
+bl
+hf 8.0 sf
+227.2 497.6 m (16) show
+bl
+240 496 m
+240 512 l
+256 512 l
+256 496 l
+240 496 l
+cs
+bl
+hf 8.0 sf
+243.2 497.6 m (16) show
+bl
+224 480 m
+224 496 l
+240 496 l
+240 480 l
+224 480 l
+cs
+bl
+hf 8.0 sf
+227.2 481.6 m (16) show
+bl
+240 480 m
+240 496 l
+256 496 l
+256 480 l
+240 480 l
+cs
+bl
+hf 8.0 sf
+243.2 481.6 m (16) show
+192 448 m
+192 480 l
+224 480 l
+224 448 l
+192 448 l
+fl
+bl
+192 448 m
+192 480 l
+224 480 l
+224 448 l
+192 448 l
+cs
+bl
+224 464 m
+224 480 l
+240 480 l
+240 464 l
+224 464 l
+cs
+bl
+hf 8.0 sf
+227.2 465.6 m (16) show
+240 464 m
+240 480 l
+256 480 l
+256 464 l
+240 464 l
+fl
+bl
+240 464 m
+240 480 l
+256 480 l
+256 464 l
+240 464 l
+cs
+bl
+224 448 m
+224 464 l
+240 464 l
+240 448 l
+224 448 l
+cs
+bl
+hf 8.0 sf
+227.2 449.6 m (16) show
+bl
+240 448 m
+240 464 l
+256 464 l
+256 448 l
+240 448 l
+cs
+bl
+hf 8.0 sf
+243.2 449.6 m (16) show
+bl
+128 432 m
+128 448 l
+144 448 l
+144 432 l
+128 432 l
+cs
+bl
+hf 8.0 sf
+131.2 433.6 m (16) show
+bl
+144 432 m
+144 448 l
+160 448 l
+160 432 l
+144 432 l
+cs
+bl
+hf 8.0 sf
+147.2 433.6 m (16) show
+128 416 m
+128 432 l
+144 432 l
+144 416 l
+128 416 l
+fl
+bl
+128 416 m
+128 432 l
+144 432 l
+144 416 l
+128 416 l
+cs
+bl
+144 416 m
+144 432 l
+160 432 l
+160 416 l
+144 416 l
+cs
+bl
+hf 8.0 sf
+147.2 417.6 m (16) show
+bl
+160 432 m
+160 448 l
+176 448 l
+176 432 l
+160 432 l
+cs
+bl
+hf 8.0 sf
+163.2 433.6 m (16) show
+bl
+176 432 m
+176 448 l
+192 448 l
+192 432 l
+176 432 l
+cs
+bl
+hf 8.0 sf
+179.2 433.6 m (16) show
+bl
+160 416 m
+160 432 l
+176 432 l
+176 416 l
+160 416 l
+cs
+bl
+hf 8.0 sf
+163.2 417.6 m (16) show
+bl
+176 416 m
+176 432 l
+192 432 l
+192 416 l
+176 416 l
+cs
+bl
+hf 8.0 sf
+179.2 417.6 m (16) show
+128 384 m
+128 416 l
+160 416 l
+160 384 l
+128 384 l
+fl
+bl
+128 384 m
+128 416 l
+160 416 l
+160 384 l
+128 384 l
+cs
+bl
+160 400 m
+160 416 l
+176 416 l
+176 400 l
+160 400 l
+cs
+bl
+hf 8.0 sf
+163.2 401.6 m (16) show
+bl
+176 400 m
+176 416 l
+192 416 l
+192 400 l
+176 400 l
+cs
+bl
+hf 8.0 sf
+179.2 401.6 m (16) show
+160 384 m
+160 400 l
+176 400 l
+176 384 l
+160 384 l
+fl
+bl
+160 384 m
+160 400 l
+176 400 l
+176 384 l
+160 384 l
+cs
+bl
+176 384 m
+176 400 l
+192 400 l
+192 384 l
+176 384 l
+cs
+bl
+hf 8.0 sf
+179.2 385.6 m (16) show
+bl
+192 432 m
+192 448 l
+208 448 l
+208 432 l
+192 432 l
+cs
+bl
+hf 8.0 sf
+195.2 433.6 m (16) show
+bl
+208 432 m
+208 448 l
+224 448 l
+224 432 l
+208 432 l
+cs
+bl
+hf 8.0 sf
+211.2 433.6 m (16) show
+bl
+192 416 m
+192 432 l
+208 432 l
+208 416 l
+192 416 l
+cs
+bl
+hf 8.0 sf
+195.2 417.6 m (16) show
+bl
+208 416 m
+208 432 l
+224 432 l
+224 416 l
+208 416 l
+cs
+bl
+hf 8.0 sf
+211.2 417.6 m (16) show
+bl
+224 432 m
+224 448 l
+240 448 l
+240 432 l
+224 432 l
+cs
+bl
+hf 8.0 sf
+227.2 433.6 m (16) show
+bl
+240 432 m
+240 448 l
+256 448 l
+256 432 l
+240 432 l
+cs
+bl
+hf 8.0 sf
+243.2 433.6 m (16) show
+bl
+224 416 m
+224 432 l
+240 432 l
+240 416 l
+224 416 l
+cs
+bl
+hf 8.0 sf
+227.2 417.6 m (16) show
+bl
+240 416 m
+240 432 l
+256 432 l
+256 416 l
+240 416 l
+cs
+bl
+hf 8.0 sf
+243.2 417.6 m (16) show
+192 384 m
+192 416 l
+224 416 l
+224 384 l
+192 384 l
+fl
+bl
+192 384 m
+192 416 l
+224 416 l
+224 384 l
+192 384 l
+cs
+bl
+224 400 m
+224 416 l
+240 416 l
+240 400 l
+224 400 l
+cs
+bl
+hf 8.0 sf
+227.2 401.6 m (16) show
+bl
+240 400 m
+240 416 l
+256 416 l
+256 400 l
+240 400 l
+cs
+bl
+hf 8.0 sf
+243.2 401.6 m (16) show
+bl
+224 384 m
+224 400 l
+240 400 l
+240 384 l
+224 384 l
+cs
+bl
+hf 8.0 sf
+227.2 385.6 m (16) show
+bl
+240 384 m
+240 400 l
+256 400 l
+256 384 l
+240 384 l
+cs
+bl
+hf 8.0 sf
+243.2 385.6 m (16) show
+0 320 m
+0 384 l
+128 384 l
+128 320 l
+0 320 l
+fl
+bl
+0 320 m
+0 384 l
+128 384 l
+128 320 l
+0 320 l
+cs
+128 352 m
+128 384 l
+160 384 l
+160 352 l
+128 352 l
+fl
+bl
+128 352 m
+128 384 l
+160 384 l
+160 352 l
+128 352 l
+cs
+160 352 m
+160 384 l
+192 384 l
+192 352 l
+160 352 l
+fl
+bl
+160 352 m
+160 384 l
+192 384 l
+192 352 l
+160 352 l
+cs
+128 336 m
+128 352 l
+160 352 l
+160 336 l
+128 336 l
+fl
+bl
+128 336 m
+128 352 l
+160 352 l
+160 336 l
+128 336 l
+cs
+160 336 m
+160 352 l
+192 352 l
+192 336 l
+160 336 l
+fl
+bl
+160 336 m
+160 352 l
+192 352 l
+192 336 l
+160 336 l
+cs
+192 352 m
+192 384 l
+224 384 l
+224 352 l
+192 352 l
+fl
+bl
+192 352 m
+192 384 l
+224 384 l
+224 352 l
+192 352 l
+cs
+224 352 m
+224 384 l
+256 384 l
+256 352 l
+224 352 l
+fl
+bl
+224 352 m
+224 384 l
+256 384 l
+256 352 l
+224 352 l
+cs
+192 336 m
+192 352 l
+224 352 l
+224 336 l
+192 336 l
+fl
+bl
+192 336 m
+192 352 l
+224 352 l
+224 336 l
+192 336 l
+cs
+224 336 m
+224 352 l
+256 352 l
+256 336 l
+224 336 l
+fl
+bl
+224 336 m
+224 352 l
+256 352 l
+256 336 l
+224 336 l
+cs
+128 320 m
+128 336 l
+192 336 l
+192 320 l
+128 320 l
+fl
+bl
+128 320 m
+128 336 l
+192 336 l
+192 320 l
+128 320 l
+cs
+192 320 m
+192 336 l
+256 336 l
+256 320 l
+192 320 l
+fl
+bl
+192 320 m
+192 336 l
+256 336 l
+256 320 l
+192 320 l
+cs
+256 480 m
+256 512 l
+288 512 l
+288 480 l
+256 480 l
+fl
+bl
+256 480 m
+256 512 l
+288 512 l
+288 480 l
+256 480 l
+cs
+288 480 m
+288 512 l
+320 512 l
+320 480 l
+288 480 l
+fl
+bl
+288 480 m
+288 512 l
+320 512 l
+320 480 l
+288 480 l
+cs
+256 448 m
+256 480 l
+288 480 l
+288 448 l
+256 448 l
+fl
+bl
+256 448 m
+256 480 l
+288 480 l
+288 448 l
+256 448 l
+cs
+288 448 m
+288 480 l
+320 480 l
+320 448 l
+288 448 l
+fl
+bl
+288 448 m
+288 480 l
+320 480 l
+320 448 l
+288 448 l
+cs
+320 448 m
+320 512 l
+384 512 l
+384 448 l
+320 448 l
+fl
+bl
+320 448 m
+320 512 l
+384 512 l
+384 448 l
+320 448 l
+cs
+256 416 m
+256 448 l
+288 448 l
+288 416 l
+256 416 l
+fl
+bl
+256 416 m
+256 448 l
+288 448 l
+288 416 l
+256 416 l
+cs
+288 416 m
+288 448 l
+320 448 l
+320 416 l
+288 416 l
+fl
+bl
+288 416 m
+288 448 l
+320 448 l
+320 416 l
+288 416 l
+cs
+256 384 m
+256 416 l
+288 416 l
+288 384 l
+256 384 l
+fl
+bl
+256 384 m
+256 416 l
+288 416 l
+288 384 l
+256 384 l
+cs
+288 384 m
+288 416 l
+320 416 l
+320 384 l
+288 384 l
+fl
+bl
+288 384 m
+288 416 l
+320 416 l
+320 384 l
+288 384 l
+cs
+320 416 m
+320 448 l
+352 448 l
+352 416 l
+320 416 l
+fl
+bl
+320 416 m
+320 448 l
+352 448 l
+352 416 l
+320 416 l
+cs
+352 416 m
+352 448 l
+384 448 l
+384 416 l
+352 416 l
+fl
+bl
+352 416 m
+352 448 l
+384 448 l
+384 416 l
+352 416 l
+cs
+320 384 m
+320 416 l
+352 416 l
+352 384 l
+320 384 l
+fl
+bl
+320 384 m
+320 416 l
+352 416 l
+352 384 l
+320 384 l
+cs
+352 384 m
+352 416 l
+384 416 l
+384 384 l
+352 384 l
+fl
+bl
+352 384 m
+352 416 l
+384 416 l
+384 384 l
+352 384 l
+cs
+384 496 m
+384 512 l
+400 512 l
+400 496 l
+384 496 l
+fl
+bl
+384 496 m
+384 512 l
+400 512 l
+400 496 l
+384 496 l
+cs
+400 496 m
+400 512 l
+416 512 l
+416 496 l
+400 496 l
+fl
+bl
+400 496 m
+400 512 l
+416 512 l
+416 496 l
+400 496 l
+cs
+384 480 m
+384 496 l
+400 496 l
+400 480 l
+384 480 l
+fl
+bl
+384 480 m
+384 496 l
+400 496 l
+400 480 l
+384 480 l
+cs
+400 480 m
+400 496 l
+416 496 l
+416 480 l
+400 480 l
+fl
+bl
+400 480 m
+400 496 l
+416 496 l
+416 480 l
+400 480 l
+cs
+416 496 m
+416 512 l
+432 512 l
+432 496 l
+416 496 l
+fl
+bl
+416 496 m
+416 512 l
+432 512 l
+432 496 l
+416 496 l
+cs
+432 496 m
+432 512 l
+448 512 l
+448 496 l
+432 496 l
+fl
+bl
+432 496 m
+432 512 l
+448 512 l
+448 496 l
+432 496 l
+cs
+bl
+416 480 m
+416 496 l
+432 496 l
+432 480 l
+416 480 l
+cs
+bl
+hf 8.0 sf
+419.2 481.6 m (16) show
+432 480 m
+432 496 l
+448 496 l
+448 480 l
+432 480 l
+fl
+bl
+432 480 m
+432 496 l
+448 496 l
+448 480 l
+432 480 l
+cs
+384 448 m
+384 480 l
+416 480 l
+416 448 l
+384 448 l
+fl
+bl
+384 448 m
+384 480 l
+416 480 l
+416 448 l
+384 448 l
+cs
+416 464 m
+416 480 l
+432 480 l
+432 464 l
+416 464 l
+fl
+bl
+416 464 m
+416 480 l
+432 480 l
+432 464 l
+416 464 l
+cs
+432 464 m
+432 480 l
+448 480 l
+448 464 l
+432 464 l
+fl
+bl
+432 464 m
+432 480 l
+448 480 l
+448 464 l
+432 464 l
+cs
+416 448 m
+416 464 l
+432 464 l
+432 448 l
+416 448 l
+fl
+bl
+416 448 m
+416 464 l
+432 464 l
+432 448 l
+416 448 l
+cs
+432 448 m
+432 464 l
+448 464 l
+448 448 l
+432 448 l
+fl
+bl
+432 448 m
+432 464 l
+448 464 l
+448 448 l
+432 448 l
+cs
+448 480 m
+448 512 l
+480 512 l
+480 480 l
+448 480 l
+fl
+bl
+448 480 m
+448 512 l
+480 512 l
+480 480 l
+448 480 l
+cs
+480 480 m
+480 512 l
+512 512 l
+512 480 l
+480 480 l
+fl
+bl
+480 480 m
+480 512 l
+512 512 l
+512 480 l
+480 480 l
+cs
+448 448 m
+448 480 l
+480 480 l
+480 448 l
+448 448 l
+fl
+bl
+448 448 m
+448 480 l
+480 480 l
+480 448 l
+448 448 l
+cs
+480 448 m
+480 480 l
+512 480 l
+512 448 l
+480 448 l
+fl
+bl
+480 448 m
+480 480 l
+512 480 l
+512 448 l
+480 448 l
+cs
+bl
+384 432 m
+384 448 l
+400 448 l
+400 432 l
+384 432 l
+cs
+bl
+hf 8.0 sf
+387.2 433.6 m (16) show
+400 432 m
+400 448 l
+416 448 l
+416 432 l
+400 432 l
+fl
+bl
+400 432 m
+400 448 l
+416 448 l
+416 432 l
+400 432 l
+cs
+bl
+384 416 m
+384 432 l
+400 432 l
+400 416 l
+384 416 l
+cs
+bl
+hf 8.0 sf
+387.2 417.6 m (16) show
+bl
+400 416 m
+400 432 l
+416 432 l
+416 416 l
+400 416 l
+cs
+bl
+hf 8.0 sf
+403.2 417.6 m (16) show
+bl
+416 432 m
+416 448 l
+432 448 l
+432 432 l
+416 432 l
+cs
+bl
+hf 8.0 sf
+419.2 433.6 m (16) show
+bl
+432 432 m
+432 448 l
+448 448 l
+448 432 l
+432 432 l
+cs
+bl
+hf 8.0 sf
+435.2 433.6 m (16) show
+bl
+416 416 m
+416 432 l
+432 432 l
+432 416 l
+416 416 l
+cs
+bl
+hf 8.0 sf
+419.2 417.6 m (16) show
+bl
+432 416 m
+432 432 l
+448 432 l
+448 416 l
+432 416 l
+cs
+bl
+hf 8.0 sf
+435.2 417.6 m (16) show
+384 384 m
+384 416 l
+416 416 l
+416 384 l
+384 384 l
+fl
+bl
+384 384 m
+384 416 l
+416 416 l
+416 384 l
+384 384 l
+cs
+bl
+416 400 m
+416 416 l
+432 416 l
+432 400 l
+416 400 l
+cs
+bl
+hf 8.0 sf
+419.2 401.6 m (16) show
+432 400 m
+432 416 l
+448 416 l
+448 400 l
+432 400 l
+fl
+bl
+432 400 m
+432 416 l
+448 416 l
+448 400 l
+432 400 l
+cs
+bl
+416 384 m
+416 400 l
+432 400 l
+432 384 l
+416 384 l
+cs
+bl
+hf 8.0 sf
+419.2 385.6 m (16) show
+bl
+432 384 m
+432 400 l
+448 400 l
+448 384 l
+432 384 l
+cs
+bl
+hf 8.0 sf
+435.2 385.6 m (16) show
+448 432 m
+448 448 l
+464 448 l
+464 432 l
+448 432 l
+fl
+bl
+448 432 m
+448 448 l
+464 448 l
+464 432 l
+448 432 l
+cs
+464 432 m
+464 448 l
+480 448 l
+480 432 l
+464 432 l
+fl
+bl
+464 432 m
+464 448 l
+480 448 l
+480 432 l
+464 432 l
+cs
+448 416 m
+448 432 l
+464 432 l
+464 416 l
+448 416 l
+fl
+bl
+448 416 m
+448 432 l
+464 432 l
+464 416 l
+448 416 l
+cs
+464 416 m
+464 432 l
+480 432 l
+480 416 l
+464 416 l
+fl
+bl
+464 416 m
+464 432 l
+480 432 l
+480 416 l
+464 416 l
+cs
+480 432 m
+480 448 l
+496 448 l
+496 432 l
+480 432 l
+fl
+bl
+480 432 m
+480 448 l
+496 448 l
+496 432 l
+480 432 l
+cs
+496 432 m
+496 448 l
+512 448 l
+512 432 l
+496 432 l
+fl
+bl
+496 432 m
+496 448 l
+512 448 l
+512 432 l
+496 432 l
+cs
+bl
+480 416 m
+480 432 l
+496 432 l
+496 416 l
+480 416 l
+cs
+bl
+hf 8.0 sf
+483.2 417.6 m (16) show
+496 416 m
+496 432 l
+512 432 l
+512 416 l
+496 416 l
+fl
+bl
+496 416 m
+496 432 l
+512 432 l
+512 416 l
+496 416 l
+cs
+448 384 m
+448 416 l
+480 416 l
+480 384 l
+448 384 l
+fl
+bl
+448 384 m
+448 416 l
+480 416 l
+480 384 l
+448 384 l
+cs
+480 400 m
+480 416 l
+496 416 l
+496 400 l
+480 400 l
+fl
+bl
+480 400 m
+480 416 l
+496 416 l
+496 400 l
+480 400 l
+cs
+496 400 m
+496 416 l
+512 416 l
+512 400 l
+496 400 l
+fl
+bl
+496 400 m
+496 416 l
+512 416 l
+512 400 l
+496 400 l
+cs
+480 384 m
+480 400 l
+496 400 l
+496 384 l
+480 384 l
+fl
+bl
+480 384 m
+480 400 l
+496 400 l
+496 384 l
+480 384 l
+cs
+496 384 m
+496 400 l
+512 400 l
+512 384 l
+496 384 l
+fl
+bl
+496 384 m
+496 400 l
+512 400 l
+512 384 l
+496 384 l
+cs
+256 320 m
+256 384 l
+384 384 l
+384 320 l
+256 320 l
+fl
+bl
+256 320 m
+256 384 l
+384 384 l
+384 320 l
+256 320 l
+cs
+384 352 m
+384 384 l
+416 384 l
+416 352 l
+384 352 l
+fl
+bl
+384 352 m
+384 384 l
+416 384 l
+416 352 l
+384 352 l
+cs
+416 352 m
+416 384 l
+448 384 l
+448 352 l
+416 352 l
+fl
+bl
+416 352 m
+416 384 l
+448 384 l
+448 352 l
+416 352 l
+cs
+384 336 m
+384 352 l
+416 352 l
+416 336 l
+384 336 l
+fl
+bl
+384 336 m
+384 352 l
+416 352 l
+416 336 l
+384 336 l
+cs
+416 336 m
+416 352 l
+448 352 l
+448 336 l
+416 336 l
+fl
+bl
+416 336 m
+416 352 l
+448 352 l
+448 336 l
+416 336 l
+cs
+448 336 m
+448 384 l
+512 384 l
+512 336 l
+448 336 l
+fl
+bl
+448 336 m
+448 384 l
+512 384 l
+512 336 l
+448 336 l
+cs
+384 320 m
+384 336 l
+448 336 l
+448 320 l
+384 320 l
+fl
+bl
+384 320 m
+384 336 l
+448 336 l
+448 320 l
+384 320 l
+cs
+448 320 m
+448 336 l
+512 336 l
+512 320 l
+448 320 l
+fl
+bl
+448 320 m
+448 336 l
+512 336 l
+512 320 l
+448 320 l
+cs
+0 288 m
+0 320 l
+64 320 l
+64 288 l
+0 288 l
+fl
+bl
+0 288 m
+0 320 l
+64 320 l
+64 288 l
+0 288 l
+cs
+64 288 m
+64 320 l
+128 320 l
+128 288 l
+64 288 l
+fl
+bl
+64 288 m
+64 320 l
+128 320 l
+128 288 l
+64 288 l
+cs
+0 272 m
+0 288 l
+64 288 l
+64 272 l
+0 272 l
+fl
+bl
+0 272 m
+0 288 l
+64 288 l
+64 272 l
+0 272 l
+cs
+64 272 m
+64 288 l
+128 288 l
+128 272 l
+64 272 l
+fl
+bl
+64 272 m
+64 288 l
+128 288 l
+128 272 l
+64 272 l
+cs
+128 304 m
+128 320 l
+160 320 l
+160 304 l
+128 304 l
+fl
+bl
+128 304 m
+128 320 l
+160 320 l
+160 304 l
+128 304 l
+cs
+bl
+160 304 m
+160 320 l
+192 320 l
+192 304 l
+160 304 l
+cs
+bl
+hf 8.0 sf
+166.4 305.6 m (16) show
+128 288 m
+128 304 l
+160 304 l
+160 288 l
+128 288 l
+fl
+bl
+128 288 m
+128 304 l
+160 304 l
+160 288 l
+128 288 l
+cs
+160 288 m
+160 304 l
+192 304 l
+192 288 l
+160 288 l
+fl
+bl
+160 288 m
+160 304 l
+192 304 l
+192 288 l
+160 288 l
+cs
+bl
+192 304 m
+192 320 l
+224 320 l
+224 304 l
+192 304 l
+cs
+bl
+hf 8.0 sf
+198.4 305.6 m (16) show
+bl
+224 304 m
+224 320 l
+256 320 l
+256 304 l
+224 304 l
+cs
+bl
+hf 8.0 sf
+230.4 305.6 m (16) show
+bl
+192 288 m
+192 304 l
+224 304 l
+224 288 l
+192 288 l
+cs
+bl
+hf 8.0 sf
+198.4 289.6 m (16) show
+bl
+224 288 m
+224 304 l
+256 304 l
+256 288 l
+224 288 l
+cs
+bl
+hf 8.0 sf
+230.4 289.6 m (16) show
+bl
+128 272 m
+128 288 l
+192 288 l
+192 272 l
+128 272 l
+cs
+bl
+hf 8.0 sf
+140.8 273.6 m (16) show
+bl
+192 272 m
+192 288 l
+256 288 l
+256 272 l
+192 272 l
+cs
+bl
+hf 8.0 sf
+204.8 273.6 m (16) show
+0 256 m
+0 272 l
+128 272 l
+128 256 l
+0 256 l
+fl
+bl
+0 256 m
+0 272 l
+128 272 l
+128 256 l
+0 256 l
+cs
+bl
+128 256 m
+128 272 l
+256 272 l
+256 256 l
+128 256 l
+cs
+bl
+hf 8.0 sf
+153.6 257.6 m (16) show
+256 288 m
+256 320 l
+320 320 l
+320 288 l
+256 288 l
+fl
+bl
+256 288 m
+256 320 l
+320 320 l
+320 288 l
+256 288 l
+cs
+320 288 m
+320 320 l
+384 320 l
+384 288 l
+320 288 l
+fl
+bl
+320 288 m
+320 320 l
+384 320 l
+384 288 l
+320 288 l
+cs
+256 272 m
+256 288 l
+320 288 l
+320 272 l
+256 272 l
+fl
+bl
+256 272 m
+256 288 l
+320 288 l
+320 272 l
+256 272 l
+cs
+320 272 m
+320 288 l
+384 288 l
+384 272 l
+320 272 l
+fl
+bl
+320 272 m
+320 288 l
+384 288 l
+384 272 l
+320 272 l
+cs
+bl
+384 304 m
+384 320 l
+416 320 l
+416 304 l
+384 304 l
+cs
+bl
+hf 8.0 sf
+390.4 305.6 m (16) show
+bl
+416 304 m
+416 320 l
+448 320 l
+448 304 l
+416 304 l
+cs
+bl
+hf 8.0 sf
+422.4 305.6 m (16) show
+bl
+384 288 m
+384 304 l
+416 304 l
+416 288 l
+384 288 l
+cs
+bl
+hf 8.0 sf
+390.4 289.6 m (16) show
+bl
+416 288 m
+416 304 l
+448 304 l
+448 288 l
+416 288 l
+cs
+bl
+hf 8.0 sf
+422.4 289.6 m (16) show
+bl
+448 304 m
+448 320 l
+480 320 l
+480 304 l
+448 304 l
+cs
+bl
+hf 8.0 sf
+454.4 305.6 m (16) show
+bl
+480 304 m
+480 320 l
+512 320 l
+512 304 l
+480 304 l
+cs
+bl
+hf 8.0 sf
+486.4 305.6 m (16) show
+bl
+448 288 m
+448 304 l
+480 304 l
+480 288 l
+448 288 l
+cs
+bl
+hf 8.0 sf
+454.4 289.6 m (16) show
+bl
+480 288 m
+480 304 l
+512 304 l
+512 288 l
+480 288 l
+cs
+bl
+hf 8.0 sf
+486.4 289.6 m (16) show
+bl
+384 272 m
+384 288 l
+448 288 l
+448 272 l
+384 272 l
+cs
+bl
+hf 8.0 sf
+396.8 273.6 m (16) show
+bl
+448 272 m
+448 288 l
+512 288 l
+512 272 l
+448 272 l
+cs
+bl
+hf 8.0 sf
+460.8 273.6 m (16) show
+256 256 m
+256 272 l
+384 272 l
+384 256 l
+256 256 l
+fl
+bl
+256 256 m
+256 272 l
+384 272 l
+384 256 l
+256 256 l
+cs
+bl
+384 256 m
+384 272 l
+512 272 l
+512 256 l
+384 256 l
+cs
+bl
+hf 8.0 sf
+409.6 257.6 m (16) show
+bl
+512 496 m
+512 512 l
+528 512 l
+528 496 l
+512 496 l
+cs
+bl
+hf 8.0 sf
+515.2 497.6 m (16) show
+bl
+528 496 m
+528 512 l
+544 512 l
+544 496 l
+528 496 l
+cs
+bl
+hf 8.0 sf
+531.2 497.6 m (16) show
+bl
+512 480 m
+512 496 l
+528 496 l
+528 480 l
+512 480 l
+cs
+bl
+hf 8.0 sf
+515.2 481.6 m (16) show
+bl
+528 480 m
+528 496 l
+544 496 l
+544 480 l
+528 480 l
+cs
+bl
+hf 8.0 sf
+531.2 481.6 m (16) show
+bl
+544 496 m
+544 512 l
+560 512 l
+560 496 l
+544 496 l
+cs
+bl
+hf 8.0 sf
+547.2 497.6 m (16) show
+bl
+560 496 m
+560 512 l
+576 512 l
+576 496 l
+560 496 l
+cs
+bl
+hf 8.0 sf
+563.2 497.6 m (16) show
+bl
+544 480 m
+544 496 l
+560 496 l
+560 480 l
+544 480 l
+cs
+bl
+hf 8.0 sf
+547.2 481.6 m (16) show
+bl
+560 480 m
+560 496 l
+576 496 l
+576 480 l
+560 480 l
+cs
+bl
+hf 8.0 sf
+563.2 481.6 m (16) show
+bl
+512 464 m
+512 480 l
+528 480 l
+528 464 l
+512 464 l
+cs
+bl
+hf 8.0 sf
+515.2 465.6 m (16) show
+bl
+528 464 m
+528 480 l
+544 480 l
+544 464 l
+528 464 l
+cs
+bl
+hf 8.0 sf
+531.2 465.6 m (16) show
+bl
+512 448 m
+512 464 l
+528 464 l
+528 448 l
+512 448 l
+cs
+bl
+hf 8.0 sf
+515.2 449.6 m (16) show
+bl
+528 448 m
+528 464 l
+544 464 l
+544 448 l
+528 448 l
+cs
+bl
+hf 8.0 sf
+531.2 449.6 m (16) show
+bl
+544 464 m
+544 480 l
+560 480 l
+560 464 l
+544 464 l
+cs
+bl
+hf 8.0 sf
+547.2 465.6 m (16) show
+bl
+560 464 m
+560 480 l
+576 480 l
+576 464 l
+560 464 l
+cs
+bl
+hf 8.0 sf
+563.2 465.6 m (16) show
+bl
+544 448 m
+544 464 l
+560 464 l
+560 448 l
+544 448 l
+cs
+bl
+hf 8.0 sf
+547.2 449.6 m (16) show
+bl
+560 448 m
+560 464 l
+576 464 l
+576 448 l
+560 448 l
+cs
+bl
+hf 8.0 sf
+563.2 449.6 m (16) show
+bl
+576 496 m
+576 512 l
+592 512 l
+592 496 l
+576 496 l
+cs
+bl
+hf 8.0 sf
+579.2 497.6 m (16) show
+bl
+592 496 m
+592 512 l
+608 512 l
+608 496 l
+592 496 l
+cs
+bl
+hf 8.0 sf
+595.2 497.6 m (16) show
+bl
+576 480 m
+576 496 l
+592 496 l
+592 480 l
+576 480 l
+cs
+bl
+hf 8.0 sf
+579.2 481.6 m (16) show
+bl
+592 480 m
+592 496 l
+608 496 l
+608 480 l
+592 480 l
+cs
+bl
+hf 8.0 sf
+595.2 481.6 m (16) show
+bl
+608 496 m
+608 512 l
+624 512 l
+624 496 l
+608 496 l
+cs
+bl
+hf 8.0 sf
+611.2 497.6 m (16) show
+bl
+624 496 m
+624 512 l
+640 512 l
+640 496 l
+624 496 l
+cs
+bl
+hf 8.0 sf
+627.2 497.6 m (16) show
+bl
+608 480 m
+608 496 l
+624 496 l
+624 480 l
+608 480 l
+cs
+bl
+hf 8.0 sf
+611.2 481.6 m (16) show
+bl
+624 480 m
+624 496 l
+640 496 l
+640 480 l
+624 480 l
+cs
+bl
+hf 8.0 sf
+627.2 481.6 m (16) show
+bl
+576 464 m
+576 480 l
+592 480 l
+592 464 l
+576 464 l
+cs
+bl
+hf 8.0 sf
+579.2 465.6 m (16) show
+bl
+592 464 m
+592 480 l
+608 480 l
+608 464 l
+592 464 l
+cs
+bl
+hf 8.0 sf
+595.2 465.6 m (16) show
+bl
+576 448 m
+576 464 l
+592 464 l
+592 448 l
+576 448 l
+cs
+bl
+hf 8.0 sf
+579.2 449.6 m (16) show
+bl
+592 448 m
+592 464 l
+608 464 l
+608 448 l
+592 448 l
+cs
+bl
+hf 8.0 sf
+595.2 449.6 m (16) show
+bl
+608 464 m
+608 480 l
+624 480 l
+624 464 l
+608 464 l
+cs
+bl
+hf 8.0 sf
+611.2 465.6 m (16) show
+bl
+624 464 m
+624 480 l
+640 480 l
+640 464 l
+624 464 l
+cs
+bl
+hf 8.0 sf
+627.2 465.6 m (16) show
+bl
+608 448 m
+608 464 l
+624 464 l
+624 448 l
+608 448 l
+cs
+bl
+hf 8.0 sf
+611.2 449.6 m (16) show
+bl
+624 448 m
+624 464 l
+640 464 l
+640 448 l
+624 448 l
+cs
+bl
+hf 8.0 sf
+627.2 449.6 m (16) show
+bl
+512 432 m
+512 448 l
+528 448 l
+528 432 l
+512 432 l
+cs
+bl
+hf 8.0 sf
+515.2 433.6 m (16) show
+bl
+528 432 m
+528 448 l
+544 448 l
+544 432 l
+528 432 l
+cs
+bl
+hf 8.0 sf
+531.2 433.6 m (16) show
+bl
+512 416 m
+512 432 l
+528 432 l
+528 416 l
+512 416 l
+cs
+bl
+hf 8.0 sf
+515.2 417.6 m (16) show
+bl
+528 416 m
+528 432 l
+544 432 l
+544 416 l
+528 416 l
+cs
+bl
+hf 8.0 sf
+531.2 417.6 m (16) show
+bl
+544 432 m
+544 448 l
+560 448 l
+560 432 l
+544 432 l
+cs
+bl
+hf 8.0 sf
+547.2 433.6 m (16) show
+bl
+560 432 m
+560 448 l
+576 448 l
+576 432 l
+560 432 l
+cs
+bl
+hf 8.0 sf
+563.2 433.6 m (16) show
+bl
+544 416 m
+544 432 l
+560 432 l
+560 416 l
+544 416 l
+cs
+bl
+hf 8.0 sf
+547.2 417.6 m (16) show
+bl
+560 416 m
+560 432 l
+576 432 l
+576 416 l
+560 416 l
+cs
+bl
+hf 8.0 sf
+563.2 417.6 m (16) show
+bl
+512 400 m
+512 416 l
+528 416 l
+528 400 l
+512 400 l
+cs
+bl
+hf 8.0 sf
+515.2 401.6 m (16) show
+bl
+528 400 m
+528 416 l
+544 416 l
+544 400 l
+528 400 l
+cs
+bl
+hf 8.0 sf
+531.2 401.6 m (16) show
+bl
+512 384 m
+512 400 l
+528 400 l
+528 384 l
+512 384 l
+cs
+bl
+hf 8.0 sf
+515.2 385.6 m (16) show
+bl
+528 384 m
+528 400 l
+544 400 l
+544 384 l
+528 384 l
+cs
+bl
+hf 8.0 sf
+531.2 385.6 m (16) show
+bl
+544 400 m
+544 416 l
+560 416 l
+560 400 l
+544 400 l
+cs
+bl
+hf 8.0 sf
+547.2 401.6 m (16) show
+bl
+560 400 m
+560 416 l
+576 416 l
+576 400 l
+560 400 l
+cs
+bl
+hf 8.0 sf
+563.2 401.6 m (16) show
+bl
+544 384 m
+544 400 l
+560 400 l
+560 384 l
+544 384 l
+cs
+bl
+hf 8.0 sf
+547.2 385.6 m (16) show
+bl
+560 384 m
+560 400 l
+576 400 l
+576 384 l
+560 384 l
+cs
+bl
+hf 8.0 sf
+563.2 385.6 m (16) show
+bl
+576 432 m
+576 448 l
+592 448 l
+592 432 l
+576 432 l
+cs
+bl
+hf 8.0 sf
+579.2 433.6 m (16) show
+bl
+592 432 m
+592 448 l
+608 448 l
+608 432 l
+592 432 l
+cs
+bl
+hf 8.0 sf
+595.2 433.6 m (16) show
+bl
+576 416 m
+576 432 l
+592 432 l
+592 416 l
+576 416 l
+cs
+bl
+hf 8.0 sf
+579.2 417.6 m (16) show
+bl
+592 416 m
+592 432 l
+608 432 l
+608 416 l
+592 416 l
+cs
+bl
+hf 8.0 sf
+595.2 417.6 m (16) show
+bl
+608 432 m
+608 448 l
+624 448 l
+624 432 l
+608 432 l
+cs
+bl
+hf 8.0 sf
+611.2 433.6 m (16) show
+bl
+624 432 m
+624 448 l
+640 448 l
+640 432 l
+624 432 l
+cs
+bl
+hf 8.0 sf
+627.2 433.6 m (16) show
+bl
+608 416 m
+608 432 l
+624 432 l
+624 416 l
+608 416 l
+cs
+bl
+hf 8.0 sf
+611.2 417.6 m (16) show
+bl
+624 416 m
+624 432 l
+640 432 l
+640 416 l
+624 416 l
+cs
+bl
+hf 8.0 sf
+627.2 417.6 m (16) show
+bl
+576 400 m
+576 416 l
+592 416 l
+592 400 l
+576 400 l
+cs
+bl
+hf 8.0 sf
+579.2 401.6 m (16) show
+bl
+592 400 m
+592 416 l
+608 416 l
+608 400 l
+592 400 l
+cs
+bl
+hf 8.0 sf
+595.2 401.6 m (16) show
+bl
+576 384 m
+576 400 l
+592 400 l
+592 384 l
+576 384 l
+cs
+bl
+hf 8.0 sf
+579.2 385.6 m (16) show
+bl
+592 384 m
+592 400 l
+608 400 l
+608 384 l
+592 384 l
+cs
+bl
+hf 8.0 sf
+595.2 385.6 m (16) show
+bl
+608 400 m
+608 416 l
+624 416 l
+624 400 l
+608 400 l
+cs
+bl
+hf 8.0 sf
+611.2 401.6 m (16) show
+bl
+624 400 m
+624 416 l
+640 416 l
+640 400 l
+624 400 l
+cs
+bl
+hf 8.0 sf
+627.2 401.6 m (16) show
+bl
+608 384 m
+608 400 l
+624 400 l
+624 384 l
+608 384 l
+cs
+bl
+hf 8.0 sf
+611.2 385.6 m (16) show
+bl
+624 384 m
+624 400 l
+640 400 l
+640 384 l
+624 384 l
+cs
+bl
+hf 8.0 sf
+627.2 385.6 m (16) show
+bl
+640 496 m
+640 512 l
+656 512 l
+656 496 l
+640 496 l
+cs
+bl
+hf 8.0 sf
+643.2 497.6 m (16) show
+bl
+656 496 m
+656 512 l
+672 512 l
+672 496 l
+656 496 l
+cs
+bl
+hf 8.0 sf
+659.2 497.6 m (16) show
+bl
+640 480 m
+640 496 l
+656 496 l
+656 480 l
+640 480 l
+cs
+bl
+hf 8.0 sf
+643.2 481.6 m (16) show
+bl
+656 480 m
+656 496 l
+672 496 l
+672 480 l
+656 480 l
+cs
+bl
+hf 8.0 sf
+659.2 481.6 m (16) show
+672 480 m
+672 512 l
+688 512 l
+688 480 l
+672 480 l
+fl
+bl
+672 480 m
+672 512 l
+688 512 l
+688 480 l
+672 480 l
+cs
+bl
+640 464 m
+640 480 l
+656 480 l
+656 464 l
+640 464 l
+cs
+bl
+hf 8.0 sf
+643.2 465.6 m (16) show
+bl
+656 464 m
+656 480 l
+672 480 l
+672 464 l
+656 464 l
+cs
+bl
+hf 8.0 sf
+659.2 465.6 m (16) show
+bl
+640 448 m
+640 464 l
+656 464 l
+656 448 l
+640 448 l
+cs
+bl
+hf 8.0 sf
+643.2 449.6 m (16) show
+bl
+656 448 m
+656 464 l
+672 464 l
+672 448 l
+656 448 l
+cs
+bl
+hf 8.0 sf
+659.2 449.6 m (16) show
+bl
+672 448 m
+672 480 l
+688 480 l
+688 448 l
+672 448 l
+cs
+bl
+hf 8.0 sf
+675.2 451.2 m (16) show
+bl
+688 448 m
+688 512 l
+704 512 l
+704 448 l
+688 448 l
+cs
+bl
+hf 8.0 sf
+691.2 454.4 m (16) show
+bl
+640 432 m
+640 448 l
+656 448 l
+656 432 l
+640 432 l
+cs
+bl
+hf 8.0 sf
+643.2 433.6 m (16) show
+bl
+656 432 m
+656 448 l
+672 448 l
+672 432 l
+656 432 l
+cs
+bl
+hf 8.0 sf
+659.2 433.6 m (16) show
+640 416 m
+640 432 l
+656 432 l
+656 416 l
+640 416 l
+fl
+bl
+640 416 m
+640 432 l
+656 432 l
+656 416 l
+640 416 l
+cs
+bl
+656 416 m
+656 432 l
+672 432 l
+672 416 l
+656 416 l
+cs
+bl
+hf 8.0 sf
+659.2 417.6 m (16) show
+672 416 m
+672 448 l
+688 448 l
+688 416 l
+672 416 l
+fl
+bl
+672 416 m
+672 448 l
+688 448 l
+688 416 l
+672 416 l
+cs
+bl
+640 400 m
+640 416 l
+656 416 l
+656 400 l
+640 400 l
+cs
+bl
+hf 8.0 sf
+643.2 401.6 m (16) show
+bl
+656 400 m
+656 416 l
+672 416 l
+672 400 l
+656 400 l
+cs
+bl
+hf 8.0 sf
+659.2 401.6 m (16) show
+bl
+640 384 m
+640 400 l
+656 400 l
+656 384 l
+640 384 l
+cs
+bl
+hf 8.0 sf
+643.2 385.6 m (16) show
+bl
+656 384 m
+656 400 l
+672 400 l
+672 384 l
+656 384 l
+cs
+bl
+hf 8.0 sf
+659.2 385.6 m (16) show
+bl
+672 384 m
+672 416 l
+688 416 l
+688 384 l
+672 384 l
+cs
+bl
+hf 8.0 sf
+675.2 387.2 m (16) show
+bl
+688 384 m
+688 448 l
+704 448 l
+704 384 l
+688 384 l
+cs
+bl
+hf 8.0 sf
+691.2 390.4 m (16) show
+bl
+512 368 m
+512 384 l
+528 384 l
+528 368 l
+512 368 l
+cs
+bl
+hf 8.0 sf
+515.2 369.6 m (16) show
+bl
+528 368 m
+528 384 l
+544 384 l
+544 368 l
+528 368 l
+cs
+bl
+hf 8.0 sf
+531.2 369.6 m (16) show
+bl
+512 352 m
+512 368 l
+528 368 l
+528 352 l
+512 352 l
+cs
+bl
+hf 8.0 sf
+515.2 353.6 m (16) show
+bl
+528 352 m
+528 368 l
+544 368 l
+544 352 l
+528 352 l
+cs
+bl
+hf 8.0 sf
+531.2 353.6 m (16) show
+bl
+544 368 m
+544 384 l
+560 384 l
+560 368 l
+544 368 l
+cs
+bl
+hf 8.0 sf
+547.2 369.6 m (16) show
+bl
+560 368 m
+560 384 l
+576 384 l
+576 368 l
+560 368 l
+cs
+bl
+hf 8.0 sf
+563.2 369.6 m (16) show
+bl
+544 352 m
+544 368 l
+560 368 l
+560 352 l
+544 352 l
+cs
+bl
+hf 8.0 sf
+547.2 353.6 m (16) show
+bl
+560 352 m
+560 368 l
+576 368 l
+576 352 l
+560 352 l
+cs
+bl
+hf 8.0 sf
+563.2 353.6 m (16) show
+512 336 m
+512 352 l
+544 352 l
+544 336 l
+512 336 l
+fl
+bl
+512 336 m
+512 352 l
+544 352 l
+544 336 l
+512 336 l
+cs
+bl
+544 336 m
+544 352 l
+576 352 l
+576 336 l
+544 336 l
+cs
+bl
+hf 8.0 sf
+550.4 337.6 m (16) show
+bl
+576 368 m
+576 384 l
+592 384 l
+592 368 l
+576 368 l
+cs
+bl
+hf 8.0 sf
+579.2 369.6 m (16) show
+592 368 m
+592 384 l
+608 384 l
+608 368 l
+592 368 l
+fl
+bl
+592 368 m
+592 384 l
+608 384 l
+608 368 l
+592 368 l
+cs
+bl
+576 352 m
+576 368 l
+592 368 l
+592 352 l
+576 352 l
+cs
+bl
+hf 8.0 sf
+579.2 353.6 m (16) show
+bl
+592 352 m
+592 368 l
+608 368 l
+608 352 l
+592 352 l
+cs
+bl
+hf 8.0 sf
+595.2 353.6 m (16) show
+bl
+608 368 m
+608 384 l
+624 384 l
+624 368 l
+608 368 l
+cs
+bl
+hf 8.0 sf
+611.2 369.6 m (16) show
+bl
+624 368 m
+624 384 l
+640 384 l
+640 368 l
+624 368 l
+cs
+bl
+hf 8.0 sf
+627.2 369.6 m (16) show
+bl
+608 352 m
+608 368 l
+624 368 l
+624 352 l
+608 352 l
+cs
+bl
+hf 8.0 sf
+611.2 353.6 m (16) show
+bl
+624 352 m
+624 368 l
+640 368 l
+640 352 l
+624 352 l
+cs
+bl
+hf 8.0 sf
+627.2 353.6 m (16) show
+576 336 m
+576 352 l
+608 352 l
+608 336 l
+576 336 l
+fl
+bl
+576 336 m
+576 352 l
+608 352 l
+608 336 l
+576 336 l
+cs
+bl
+608 336 m
+608 352 l
+640 352 l
+640 336 l
+608 336 l
+cs
+bl
+hf 8.0 sf
+614.4 337.6 m (16) show
+bl
+512 320 m
+512 336 l
+576 336 l
+576 320 l
+512 320 l
+cs
+bl
+hf 8.0 sf
+524.8 321.6 m (16) show
+bl
+576 320 m
+576 336 l
+640 336 l
+640 320 l
+576 320 l
+cs
+bl
+hf 8.0 sf
+588.8 321.6 m (16) show
+bl
+640 368 m
+640 384 l
+656 384 l
+656 368 l
+640 368 l
+cs
+bl
+hf 8.0 sf
+643.2 369.6 m (16) show
+bl
+656 368 m
+656 384 l
+672 384 l
+672 368 l
+656 368 l
+cs
+bl
+hf 8.0 sf
+659.2 369.6 m (16) show
+bl
+640 352 m
+640 368 l
+656 368 l
+656 352 l
+640 352 l
+cs
+bl
+hf 8.0 sf
+643.2 353.6 m (16) show
+bl
+656 352 m
+656 368 l
+672 368 l
+672 352 l
+656 352 l
+cs
+bl
+hf 8.0 sf
+659.2 353.6 m (16) show
+bl
+672 352 m
+672 384 l
+688 384 l
+688 352 l
+672 352 l
+cs
+bl
+hf 8.0 sf
+675.2 355.2 m (16) show
+bl
+640 336 m
+640 352 l
+672 352 l
+672 336 l
+640 336 l
+cs
+bl
+hf 8.0 sf
+646.4 337.6 m (16) show
+bl
+672 336 m
+672 352 l
+688 352 l
+688 336 l
+672 336 l
+cs
+bl
+hf 8.0 sf
+675.2 337.6 m (16) show
+bl
+688 336 m
+688 384 l
+704 384 l
+704 336 l
+688 336 l
+cs
+bl
+hf 8.0 sf
+691.2 340.8 m (16) show
+bl
+640 320 m
+640 336 l
+688 336 l
+688 320 l
+640 320 l
+cs
+bl
+hf 8.0 sf
+649.6 321.6 m (16) show
+bl
+688 320 m
+688 336 l
+704 336 l
+704 320 l
+688 320 l
+cs
+bl
+hf 8.0 sf
+691.2 321.6 m (16) show
+bl
+704 480 m
+704 512 l
+720 512 l
+720 480 l
+704 480 l
+cs
+bl
+hf 8.0 sf
+707.2 483.2 m (16) show
+720 480 m
+720 512 l
+736 512 l
+736 480 l
+720 480 l
+fl
+bl
+720 480 m
+720 512 l
+736 512 l
+736 480 l
+720 480 l
+cs
+bl
+704 448 m
+704 480 l
+720 480 l
+720 448 l
+704 448 l
+cs
+bl
+hf 8.0 sf
+707.2 451.2 m (16) show
+720 448 m
+720 480 l
+736 480 l
+736 448 l
+720 448 l
+fl
+bl
+720 448 m
+720 480 l
+736 480 l
+736 448 l
+720 448 l
+cs
+bl
+736 448 m
+736 512 l
+752 512 l
+752 448 l
+736 448 l
+cs
+bl
+hf 8.0 sf
+739.2 454.4 m (16) show
+bl
+704 416 m
+704 448 l
+720 448 l
+720 416 l
+704 416 l
+cs
+bl
+hf 8.0 sf
+707.2 419.2 m (16) show
+bl
+720 416 m
+720 448 l
+736 448 l
+736 416 l
+720 416 l
+cs
+bl
+hf 8.0 sf
+723.2 419.2 m (16) show
+bl
+704 384 m
+704 416 l
+720 416 l
+720 384 l
+704 384 l
+cs
+bl
+hf 8.0 sf
+707.2 387.2 m (16) show
+bl
+720 384 m
+720 416 l
+736 416 l
+736 384 l
+720 384 l
+cs
+bl
+hf 8.0 sf
+723.2 387.2 m (16) show
+bl
+736 384 m
+736 448 l
+752 448 l
+752 384 l
+736 384 l
+cs
+bl
+hf 8.0 sf
+739.2 390.4 m (16) show
+bl
+752 384 m
+752 512 l
+768 512 l
+768 384 l
+752 384 l
+cs
+bl
+hf 8.0 sf
+755.2 396.8 m (16) show
+704 352 m
+704 384 l
+720 384 l
+720 352 l
+704 352 l
+fl
+bl
+704 352 m
+704 384 l
+720 384 l
+720 352 l
+704 352 l
+cs
+720 352 m
+720 384 l
+736 384 l
+736 352 l
+720 352 l
+fl
+bl
+720 352 m
+720 384 l
+736 384 l
+736 352 l
+720 352 l
+cs
+704 336 m
+704 352 l
+720 352 l
+720 336 l
+704 336 l
+fl
+bl
+704 336 m
+704 352 l
+720 352 l
+720 336 l
+704 336 l
+cs
+720 336 m
+720 352 l
+736 352 l
+736 336 l
+720 336 l
+fl
+bl
+720 336 m
+720 352 l
+736 352 l
+736 336 l
+720 336 l
+cs
+bl
+736 336 m
+736 384 l
+752 384 l
+752 336 l
+736 336 l
+cs
+bl
+hf 8.0 sf
+739.2 340.8 m (16) show
+bl
+704 320 m
+704 336 l
+736 336 l
+736 320 l
+704 320 l
+cs
+bl
+hf 8.0 sf
+710.4 321.6 m (16) show
+bl
+736 320 m
+736 336 l
+752 336 l
+752 320 l
+736 320 l
+cs
+bl
+hf 8.0 sf
+739.2 321.6 m (16) show
+bl
+752 320 m
+752 384 l
+768 384 l
+768 320 l
+752 320 l
+cs
+bl
+hf 8.0 sf
+755.2 326.4 m (16) show
+bl
+512 304 m
+512 320 l
+544 320 l
+544 304 l
+512 304 l
+cs
+bl
+hf 8.0 sf
+518.4 305.6 m (16) show
+bl
+544 304 m
+544 320 l
+576 320 l
+576 304 l
+544 304 l
+cs
+bl
+hf 8.0 sf
+550.4 305.6 m (16) show
+512 288 m
+512 304 l
+544 304 l
+544 288 l
+512 288 l
+fl
+bl
+512 288 m
+512 304 l
+544 304 l
+544 288 l
+512 288 l
+cs
+544 288 m
+544 304 l
+576 304 l
+576 288 l
+544 288 l
+fl
+bl
+544 288 m
+544 304 l
+576 304 l
+576 288 l
+544 288 l
+cs
+bl
+576 304 m
+576 320 l
+608 320 l
+608 304 l
+576 304 l
+cs
+bl
+hf 8.0 sf
+582.4 305.6 m (16) show
+bl
+608 304 m
+608 320 l
+640 320 l
+640 304 l
+608 304 l
+cs
+bl
+hf 8.0 sf
+614.4 305.6 m (16) show
+bl
+576 288 m
+576 304 l
+608 304 l
+608 288 l
+576 288 l
+cs
+bl
+hf 8.0 sf
+582.4 289.6 m (16) show
+bl
+608 288 m
+608 304 l
+640 304 l
+640 288 l
+608 288 l
+cs
+bl
+hf 8.0 sf
+614.4 289.6 m (16) show
+bl
+512 272 m
+512 288 l
+576 288 l
+576 272 l
+512 272 l
+cs
+bl
+hf 8.0 sf
+524.8 273.6 m (16) show
+bl
+576 272 m
+576 288 l
+640 288 l
+640 272 l
+576 272 l
+cs
+bl
+hf 8.0 sf
+588.8 273.6 m (16) show
+640 304 m
+640 320 l
+672 320 l
+672 304 l
+640 304 l
+fl
+bl
+640 304 m
+640 320 l
+672 320 l
+672 304 l
+640 304 l
+cs
+672 304 m
+672 320 l
+688 320 l
+688 304 l
+672 304 l
+fl
+bl
+672 304 m
+672 320 l
+688 320 l
+688 304 l
+672 304 l
+cs
+640 288 m
+640 304 l
+672 304 l
+672 288 l
+640 288 l
+fl
+bl
+640 288 m
+640 304 l
+672 304 l
+672 288 l
+640 288 l
+cs
+672 288 m
+672 304 l
+688 304 l
+688 288 l
+672 288 l
+fl
+bl
+672 288 m
+672 304 l
+688 304 l
+688 288 l
+672 288 l
+cs
+bl
+688 288 m
+688 320 l
+704 320 l
+704 288 l
+688 288 l
+cs
+bl
+hf 8.0 sf
+691.2 291.2 m (16) show
+bl
+640 272 m
+640 288 l
+688 288 l
+688 272 l
+640 272 l
+cs
+bl
+hf 8.0 sf
+649.6 273.6 m (16) show
+bl
+688 272 m
+688 288 l
+704 288 l
+704 272 l
+688 272 l
+cs
+bl
+hf 8.0 sf
+691.2 273.6 m (16) show
+bl
+512 256 m
+512 272 l
+640 272 l
+640 256 l
+512 256 l
+cs
+bl
+hf 8.0 sf
+537.6 257.6 m (16) show
+bl
+640 256 m
+640 272 l
+704 272 l
+704 256 l
+640 256 l
+cs
+bl
+hf 8.0 sf
+652.8 257.6 m (16) show
+bl
+704 304 m
+704 320 l
+720 320 l
+720 304 l
+704 304 l
+cs
+bl
+hf 8.0 sf
+707.2 305.6 m (16) show
+bl
+720 304 m
+720 320 l
+736 320 l
+736 304 l
+720 304 l
+cs
+bl
+hf 8.0 sf
+723.2 305.6 m (16) show
+bl
+704 288 m
+704 304 l
+720 304 l
+720 288 l
+704 288 l
+cs
+bl
+hf 8.0 sf
+707.2 289.6 m (16) show
+bl
+720 288 m
+720 304 l
+736 304 l
+736 288 l
+720 288 l
+cs
+bl
+hf 8.0 sf
+723.2 289.6 m (16) show
+bl
+736 288 m
+736 320 l
+752 320 l
+752 288 l
+736 288 l
+cs
+bl
+hf 8.0 sf
+739.2 291.2 m (16) show
+bl
+704 272 m
+704 288 l
+736 288 l
+736 272 l
+704 272 l
+cs
+bl
+hf 8.0 sf
+710.4 273.6 m (16) show
+bl
+736 272 m
+736 288 l
+752 288 l
+752 272 l
+736 272 l
+cs
+bl
+hf 8.0 sf
+739.2 273.6 m (16) show
+bl
+752 272 m
+752 320 l
+768 320 l
+768 272 l
+752 272 l
+cs
+bl
+hf 8.0 sf
+755.2 276.8 m (16) show
+bl
+704 256 m
+704 272 l
+752 272 l
+752 256 l
+704 256 l
+cs
+bl
+hf 8.0 sf
+713.6 257.6 m (16) show
+bl
+752 256 m
+752 272 l
+768 272 l
+768 256 l
+752 256 l
+cs
+bl
+hf 8.0 sf
+755.2 257.6 m (16) show
+768 960 m
+768 1024 l
+800 1024 l
+800 960 l
+768 960 l
+fl
+bl
+768 960 m
+768 1024 l
+800 1024 l
+800 960 l
+768 960 l
+cs
+800 960 m
+800 1024 l
+832 1024 l
+832 960 l
+800 960 l
+fl
+bl
+800 960 m
+800 1024 l
+832 1024 l
+832 960 l
+800 960 l
+cs
+768 896 m
+768 960 l
+800 960 l
+800 896 l
+768 896 l
+fl
+bl
+768 896 m
+768 960 l
+800 960 l
+800 896 l
+768 896 l
+cs
+800 896 m
+800 960 l
+832 960 l
+832 896 l
+800 896 l
+fl
+bl
+800 896 m
+800 960 l
+832 960 l
+832 896 l
+800 896 l
+cs
+832 896 m
+832 1024 l
+896 1024 l
+896 896 l
+832 896 l
+fl
+bl
+832 896 m
+832 1024 l
+896 1024 l
+896 896 l
+832 896 l
+cs
+768 832 m
+768 896 l
+800 896 l
+800 832 l
+768 832 l
+fl
+bl
+768 832 m
+768 896 l
+800 896 l
+800 832 l
+768 832 l
+cs
+800 832 m
+800 896 l
+832 896 l
+832 832 l
+800 832 l
+fl
+bl
+800 832 m
+800 896 l
+832 896 l
+832 832 l
+800 832 l
+cs
+768 768 m
+768 832 l
+800 832 l
+800 768 l
+768 768 l
+fl
+bl
+768 768 m
+768 832 l
+800 832 l
+800 768 l
+768 768 l
+cs
+800 768 m
+800 832 l
+832 832 l
+832 768 l
+800 768 l
+fl
+bl
+800 768 m
+800 832 l
+832 832 l
+832 768 l
+800 768 l
+cs
+832 768 m
+832 896 l
+896 896 l
+896 768 l
+832 768 l
+fl
+bl
+832 768 m
+832 896 l
+896 896 l
+896 768 l
+832 768 l
+cs
+896 960 m
+896 1024 l
+928 1024 l
+928 960 l
+896 960 l
+fl
+bl
+896 960 m
+896 1024 l
+928 1024 l
+928 960 l
+896 960 l
+cs
+928 960 m
+928 1024 l
+944 1024 l
+944 960 l
+928 960 l
+fl
+bl
+928 960 m
+928 1024 l
+944 1024 l
+944 960 l
+928 960 l
+cs
+896 896 m
+896 960 l
+928 960 l
+928 896 l
+896 896 l
+fl
+bl
+896 896 m
+896 960 l
+928 960 l
+928 896 l
+896 896 l
+cs
+928 896 m
+928 960 l
+944 960 l
+944 896 l
+928 896 l
+fl
+bl
+928 896 m
+928 960 l
+944 960 l
+944 896 l
+928 896 l
+cs
+944 896 m
+944 1024 l
+960 1024 l
+960 896 l
+944 896 l
+fl
+bl
+944 896 m
+944 1024 l
+960 1024 l
+960 896 l
+944 896 l
+cs
+896 832 m
+896 896 l
+928 896 l
+928 832 l
+896 832 l
+fl
+bl
+896 832 m
+896 896 l
+928 896 l
+928 832 l
+896 832 l
+cs
+928 832 m
+928 896 l
+944 896 l
+944 832 l
+928 832 l
+fl
+bl
+928 832 m
+928 896 l
+944 896 l
+944 832 l
+928 832 l
+cs
+896 768 m
+896 832 l
+928 832 l
+928 768 l
+896 768 l
+fl
+bl
+896 768 m
+896 832 l
+928 832 l
+928 768 l
+896 768 l
+cs
+928 768 m
+928 832 l
+944 832 l
+944 768 l
+928 768 l
+fl
+bl
+928 768 m
+928 832 l
+944 832 l
+944 768 l
+928 768 l
+cs
+944 768 m
+944 896 l
+960 896 l
+960 768 l
+944 768 l
+fl
+bl
+944 768 m
+944 896 l
+960 896 l
+960 768 l
+944 768 l
+cs
+bl
+768 736 m
+768 768 l
+784 768 l
+784 736 l
+768 736 l
+cs
+bl
+hf 8.0 sf
+771.2 739.2 m (16) show
+784 736 m
+784 768 l
+800 768 l
+800 736 l
+784 736 l
+fl
+bl
+784 736 m
+784 768 l
+800 768 l
+800 736 l
+784 736 l
+cs
+bl
+768 704 m
+768 736 l
+784 736 l
+784 704 l
+768 704 l
+cs
+bl
+hf 8.0 sf
+771.2 707.2 m (16) show
+784 704 m
+784 736 l
+800 736 l
+800 704 l
+784 704 l
+fl
+bl
+784 704 m
+784 736 l
+800 736 l
+800 704 l
+784 704 l
+cs
+bl
+800 736 m
+800 768 l
+816 768 l
+816 736 l
+800 736 l
+cs
+bl
+hf 8.0 sf
+803.2 739.2 m (16) show
+816 736 m
+816 768 l
+832 768 l
+832 736 l
+816 736 l
+fl
+bl
+816 736 m
+816 768 l
+832 768 l
+832 736 l
+816 736 l
+cs
+bl
+800 704 m
+800 736 l
+816 736 l
+816 704 l
+800 704 l
+cs
+bl
+hf 8.0 sf
+803.2 707.2 m (16) show
+816 704 m
+816 736 l
+832 736 l
+832 704 l
+816 704 l
+fl
+bl
+816 704 m
+816 736 l
+832 736 l
+832 704 l
+816 704 l
+cs
+bl
+768 672 m
+768 704 l
+784 704 l
+784 672 l
+768 672 l
+cs
+bl
+hf 8.0 sf
+771.2 675.2 m (16) show
+bl
+784 672 m
+784 704 l
+800 704 l
+800 672 l
+784 672 l
+cs
+bl
+hf 8.0 sf
+787.2 675.2 m (16) show
+bl
+768 640 m
+768 672 l
+784 672 l
+784 640 l
+768 640 l
+cs
+bl
+hf 8.0 sf
+771.2 643.2 m (16) show
+bl
+784 640 m
+784 672 l
+800 672 l
+800 640 l
+784 640 l
+cs
+bl
+hf 8.0 sf
+787.2 643.2 m (16) show
+bl
+800 672 m
+800 704 l
+816 704 l
+816 672 l
+800 672 l
+cs
+bl
+hf 8.0 sf
+803.2 675.2 m (16) show
+bl
+816 672 m
+816 704 l
+832 704 l
+832 672 l
+816 672 l
+cs
+bl
+hf 8.0 sf
+819.2 675.2 m (16) show
+bl
+800 640 m
+800 672 l
+816 672 l
+816 640 l
+800 640 l
+cs
+bl
+hf 8.0 sf
+803.2 643.2 m (16) show
+bl
+816 640 m
+816 672 l
+832 672 l
+832 640 l
+816 640 l
+cs
+bl
+hf 8.0 sf
+819.2 643.2 m (16) show
+832 704 m
+832 768 l
+864 768 l
+864 704 l
+832 704 l
+fl
+bl
+832 704 m
+832 768 l
+864 768 l
+864 704 l
+832 704 l
+cs
+864 704 m
+864 768 l
+896 768 l
+896 704 l
+864 704 l
+fl
+bl
+864 704 m
+864 768 l
+896 768 l
+896 704 l
+864 704 l
+cs
+bl
+832 672 m
+832 704 l
+848 704 l
+848 672 l
+832 672 l
+cs
+bl
+hf 8.0 sf
+835.2 675.2 m (16) show
+848 672 m
+848 704 l
+864 704 l
+864 672 l
+848 672 l
+fl
+bl
+848 672 m
+848 704 l
+864 704 l
+864 672 l
+848 672 l
+cs
+bl
+832 640 m
+832 672 l
+848 672 l
+848 640 l
+832 640 l
+cs
+bl
+hf 8.0 sf
+835.2 643.2 m (16) show
+848 640 m
+848 672 l
+864 672 l
+864 640 l
+848 640 l
+fl
+bl
+848 640 m
+848 672 l
+864 672 l
+864 640 l
+848 640 l
+cs
+bl
+864 672 m
+864 704 l
+880 704 l
+880 672 l
+864 672 l
+cs
+bl
+hf 8.0 sf
+867.2 675.2 m (16) show
+880 672 m
+880 704 l
+896 704 l
+896 672 l
+880 672 l
+fl
+bl
+880 672 m
+880 704 l
+896 704 l
+896 672 l
+880 672 l
+cs
+bl
+864 640 m
+864 672 l
+880 672 l
+880 640 l
+864 640 l
+cs
+bl
+hf 8.0 sf
+867.2 643.2 m (16) show
+880 640 m
+880 672 l
+896 672 l
+896 640 l
+880 640 l
+fl
+bl
+880 640 m
+880 672 l
+896 672 l
+896 640 l
+880 640 l
+cs
+768 608 m
+768 640 l
+784 640 l
+784 608 l
+768 608 l
+fl
+bl
+768 608 m
+768 640 l
+784 640 l
+784 608 l
+768 608 l
+cs
+784 608 m
+784 640 l
+800 640 l
+800 608 l
+784 608 l
+fl
+bl
+784 608 m
+784 640 l
+800 640 l
+800 608 l
+784 608 l
+cs
+768 576 m
+768 608 l
+784 608 l
+784 576 l
+768 576 l
+fl
+bl
+768 576 m
+768 608 l
+784 608 l
+784 576 l
+768 576 l
+cs
+784 576 m
+784 608 l
+800 608 l
+800 576 l
+784 576 l
+fl
+bl
+784 576 m
+784 608 l
+800 608 l
+800 576 l
+784 576 l
+cs
+bl
+800 608 m
+800 640 l
+816 640 l
+816 608 l
+800 608 l
+cs
+bl
+hf 8.0 sf
+803.2 611.2 m (16) show
+816 608 m
+816 640 l
+832 640 l
+832 608 l
+816 608 l
+fl
+bl
+816 608 m
+816 640 l
+832 640 l
+832 608 l
+816 608 l
+cs
+800 576 m
+800 608 l
+816 608 l
+816 576 l
+800 576 l
+fl
+bl
+800 576 m
+800 608 l
+816 608 l
+816 576 l
+800 576 l
+cs
+816 576 m
+816 608 l
+832 608 l
+832 576 l
+816 576 l
+fl
+bl
+816 576 m
+816 608 l
+832 608 l
+832 576 l
+816 576 l
+cs
+bl
+768 544 m
+768 576 l
+784 576 l
+784 544 l
+768 544 l
+cs
+bl
+hf 8.0 sf
+771.2 547.2 m (16) show
+bl
+784 544 m
+784 576 l
+800 576 l
+800 544 l
+784 544 l
+cs
+bl
+hf 8.0 sf
+787.2 547.2 m (16) show
+768 512 m
+768 544 l
+784 544 l
+784 512 l
+768 512 l
+fl
+bl
+768 512 m
+768 544 l
+784 544 l
+784 512 l
+768 512 l
+cs
+784 512 m
+784 544 l
+800 544 l
+800 512 l
+784 512 l
+fl
+bl
+784 512 m
+784 544 l
+800 544 l
+800 512 l
+784 512 l
+cs
+bl
+800 544 m
+800 576 l
+816 576 l
+816 544 l
+800 544 l
+cs
+bl
+hf 8.0 sf
+803.2 547.2 m (16) show
+bl
+816 544 m
+816 576 l
+832 576 l
+832 544 l
+816 544 l
+cs
+bl
+hf 8.0 sf
+819.2 547.2 m (16) show
+bl
+800 512 m
+800 544 l
+816 544 l
+816 512 l
+800 512 l
+cs
+bl
+hf 8.0 sf
+803.2 515.2 m (16) show
+bl
+816 512 m
+816 544 l
+832 544 l
+832 512 l
+816 512 l
+cs
+bl
+hf 8.0 sf
+819.2 515.2 m (16) show
+832 576 m
+832 640 l
+864 640 l
+864 576 l
+832 576 l
+fl
+bl
+832 576 m
+832 640 l
+864 640 l
+864 576 l
+832 576 l
+cs
+864 576 m
+864 640 l
+896 640 l
+896 576 l
+864 576 l
+fl
+bl
+864 576 m
+864 640 l
+896 640 l
+896 576 l
+864 576 l
+cs
+832 544 m
+832 576 l
+848 576 l
+848 544 l
+832 544 l
+fl
+bl
+832 544 m
+832 576 l
+848 576 l
+848 544 l
+832 544 l
+cs
+848 544 m
+848 576 l
+864 576 l
+864 544 l
+848 544 l
+fl
+bl
+848 544 m
+848 576 l
+864 576 l
+864 544 l
+848 544 l
+cs
+832 512 m
+832 544 l
+848 544 l
+848 512 l
+832 512 l
+fl
+bl
+832 512 m
+832 544 l
+848 544 l
+848 512 l
+832 512 l
+cs
+848 512 m
+848 544 l
+864 544 l
+864 512 l
+848 512 l
+fl
+bl
+848 512 m
+848 544 l
+864 544 l
+864 512 l
+848 512 l
+cs
+bl
+864 544 m
+864 576 l
+880 576 l
+880 544 l
+864 544 l
+cs
+bl
+hf 8.0 sf
+867.2 547.2 m (16) show
+880 544 m
+880 576 l
+896 576 l
+896 544 l
+880 544 l
+fl
+bl
+880 544 m
+880 576 l
+896 576 l
+896 544 l
+880 544 l
+cs
+864 512 m
+864 544 l
+880 544 l
+880 512 l
+864 512 l
+fl
+bl
+864 512 m
+864 544 l
+880 544 l
+880 512 l
+864 512 l
+cs
+880 512 m
+880 544 l
+896 544 l
+896 512 l
+880 512 l
+fl
+bl
+880 512 m
+880 544 l
+896 544 l
+896 512 l
+880 512 l
+cs
+896 736 m
+896 768 l
+912 768 l
+912 736 l
+896 736 l
+fl
+bl
+896 736 m
+896 768 l
+912 768 l
+912 736 l
+896 736 l
+cs
+912 736 m
+912 768 l
+928 768 l
+928 736 l
+912 736 l
+fl
+bl
+912 736 m
+912 768 l
+928 768 l
+928 736 l
+912 736 l
+cs
+bl
+896 704 m
+896 736 l
+912 736 l
+912 704 l
+896 704 l
+cs
+bl
+hf 8.0 sf
+899.2 707.2 m (16) show
+912 704 m
+912 736 l
+928 736 l
+928 704 l
+912 704 l
+fl
+bl
+912 704 m
+912 736 l
+928 736 l
+928 704 l
+912 704 l
+cs
+bl
+928 704 m
+928 768 l
+944 768 l
+944 704 l
+928 704 l
+cs
+bl
+hf 8.0 sf
+931.2 710.4 m (16) show
+bl
+896 672 m
+896 704 l
+912 704 l
+912 672 l
+896 672 l
+cs
+bl
+hf 8.0 sf
+899.2 675.2 m (16) show
+bl
+912 672 m
+912 704 l
+928 704 l
+928 672 l
+912 672 l
+cs
+bl
+hf 8.0 sf
+915.2 675.2 m (16) show
+bl
+896 640 m
+896 672 l
+912 672 l
+912 640 l
+896 640 l
+cs
+bl
+hf 8.0 sf
+899.2 643.2 m (16) show
+bl
+912 640 m
+912 672 l
+928 672 l
+928 640 l
+912 640 l
+cs
+bl
+hf 8.0 sf
+915.2 643.2 m (16) show
+bl
+928 640 m
+928 704 l
+944 704 l
+944 640 l
+928 640 l
+cs
+bl
+hf 8.0 sf
+931.2 646.4 m (16) show
+bl
+944 640 m
+944 768 l
+960 768 l
+960 640 l
+944 640 l
+cs
+bl
+hf 8.0 sf
+947.2 652.8 m (16) show
+bl
+896 608 m
+896 640 l
+912 640 l
+912 608 l
+896 608 l
+cs
+bl
+hf 8.0 sf
+899.2 611.2 m (16) show
+912 608 m
+912 640 l
+928 640 l
+928 608 l
+912 608 l
+fl
+bl
+912 608 m
+912 640 l
+928 640 l
+928 608 l
+912 608 l
+cs
+bl
+896 576 m
+896 608 l
+912 608 l
+912 576 l
+896 576 l
+cs
+bl
+hf 8.0 sf
+899.2 579.2 m (16) show
+912 576 m
+912 608 l
+928 608 l
+928 576 l
+912 576 l
+fl
+bl
+912 576 m
+912 608 l
+928 608 l
+928 576 l
+912 576 l
+cs
+bl
+928 576 m
+928 640 l
+944 640 l
+944 576 l
+928 576 l
+cs
+bl
+hf 8.0 sf
+931.2 582.4 m (16) show
+bl
+896 544 m
+896 576 l
+912 576 l
+912 544 l
+896 544 l
+cs
+bl
+hf 8.0 sf
+899.2 547.2 m (16) show
+bl
+912 544 m
+912 576 l
+928 576 l
+928 544 l
+912 544 l
+cs
+bl
+hf 8.0 sf
+915.2 547.2 m (16) show
+bl
+896 512 m
+896 544 l
+912 544 l
+912 512 l
+896 512 l
+cs
+bl
+hf 8.0 sf
+899.2 515.2 m (16) show
+bl
+912 512 m
+912 544 l
+928 544 l
+928 512 l
+912 512 l
+cs
+bl
+hf 8.0 sf
+915.2 515.2 m (16) show
+bl
+928 512 m
+928 576 l
+944 576 l
+944 512 l
+928 512 l
+cs
+bl
+hf 8.0 sf
+931.2 518.4 m (16) show
+bl
+944 512 m
+944 640 l
+960 640 l
+960 512 l
+944 512 l
+cs
+bl
+hf 8.0 sf
+947.2 524.8 m (16) show
+960 768 m
+960 1024 l
+1008 1024 l
+1008 768 l
+960 768 l
+fl
+bl
+960 768 m
+960 1024 l
+1008 1024 l
+1008 768 l
+960 768 l
+cs
+1008 768 m
+1008 1024 l
+1024 1024 l
+1024 768 l
+1008 768 l
+fl
+bl
+1008 768 m
+1008 1024 l
+1024 1024 l
+1024 768 l
+1008 768 l
+cs
+960 640 m
+960 768 l
+992 768 l
+992 640 l
+960 640 l
+fl
+bl
+960 640 m
+960 768 l
+992 768 l
+992 640 l
+960 640 l
+cs
+992 640 m
+992 768 l
+1008 768 l
+1008 640 l
+992 640 l
+fl
+bl
+992 640 m
+992 768 l
+1008 768 l
+1008 640 l
+992 640 l
+cs
+960 512 m
+960 640 l
+992 640 l
+992 512 l
+960 512 l
+fl
+bl
+960 512 m
+960 640 l
+992 640 l
+992 512 l
+960 512 l
+cs
+992 512 m
+992 640 l
+1008 640 l
+1008 512 l
+992 512 l
+fl
+bl
+992 512 m
+992 640 l
+1008 640 l
+1008 512 l
+992 512 l
+cs
+1008 512 m
+1008 768 l
+1024 768 l
+1024 512 l
+1008 512 l
+fl
+bl
+1008 512 m
+1008 768 l
+1024 768 l
+1024 512 l
+1008 512 l
+cs
+768 384 m
+768 512 l
+832 512 l
+832 384 l
+768 384 l
+fl
+bl
+768 384 m
+768 512 l
+832 512 l
+832 384 l
+768 384 l
+cs
+832 384 m
+832 512 l
+896 512 l
+896 384 l
+832 384 l
+fl
+bl
+832 384 m
+832 512 l
+896 512 l
+896 384 l
+832 384 l
+cs
+768 320 m
+768 384 l
+832 384 l
+832 320 l
+768 320 l
+fl
+bl
+768 320 m
+768 384 l
+832 384 l
+832 320 l
+768 320 l
+cs
+832 320 m
+832 384 l
+896 384 l
+896 320 l
+832 320 l
+fl
+bl
+832 320 m
+832 384 l
+896 384 l
+896 320 l
+832 320 l
+cs
+896 448 m
+896 512 l
+928 512 l
+928 448 l
+896 448 l
+fl
+bl
+896 448 m
+896 512 l
+928 512 l
+928 448 l
+896 448 l
+cs
+928 448 m
+928 512 l
+944 512 l
+944 448 l
+928 448 l
+fl
+bl
+928 448 m
+928 512 l
+944 512 l
+944 448 l
+928 448 l
+cs
+896 384 m
+896 448 l
+928 448 l
+928 384 l
+896 384 l
+fl
+bl
+896 384 m
+896 448 l
+928 448 l
+928 384 l
+896 384 l
+cs
+928 384 m
+928 448 l
+944 448 l
+944 384 l
+928 384 l
+fl
+bl
+928 384 m
+928 448 l
+944 448 l
+944 384 l
+928 384 l
+cs
+944 384 m
+944 512 l
+960 512 l
+960 384 l
+944 384 l
+fl
+bl
+944 384 m
+944 512 l
+960 512 l
+960 384 l
+944 384 l
+cs
+896 320 m
+896 384 l
+944 384 l
+944 320 l
+896 320 l
+fl
+bl
+896 320 m
+896 384 l
+944 384 l
+944 320 l
+896 320 l
+cs
+944 320 m
+944 384 l
+960 384 l
+960 320 l
+944 320 l
+fl
+bl
+944 320 m
+944 384 l
+960 384 l
+960 320 l
+944 320 l
+cs
+768 288 m
+768 320 l
+800 320 l
+800 288 l
+768 288 l
+fl
+bl
+768 288 m
+768 320 l
+800 320 l
+800 288 l
+768 288 l
+cs
+800 288 m
+800 320 l
+832 320 l
+832 288 l
+800 288 l
+fl
+bl
+800 288 m
+800 320 l
+832 320 l
+832 288 l
+800 288 l
+cs
+768 272 m
+768 288 l
+800 288 l
+800 272 l
+768 272 l
+fl
+bl
+768 272 m
+768 288 l
+800 288 l
+800 272 l
+768 272 l
+cs
+800 272 m
+800 288 l
+832 288 l
+832 272 l
+800 272 l
+fl
+bl
+800 272 m
+800 288 l
+832 288 l
+832 272 l
+800 272 l
+cs
+832 272 m
+832 320 l
+896 320 l
+896 272 l
+832 272 l
+fl
+bl
+832 272 m
+832 320 l
+896 320 l
+896 272 l
+832 272 l
+cs
+768 256 m
+768 272 l
+832 272 l
+832 256 l
+768 256 l
+fl
+bl
+768 256 m
+768 272 l
+832 272 l
+832 256 l
+768 256 l
+cs
+832 256 m
+832 272 l
+896 272 l
+896 256 l
+832 256 l
+fl
+bl
+832 256 m
+832 272 l
+896 272 l
+896 256 l
+832 256 l
+cs
+896 304 m
+896 320 l
+912 320 l
+912 304 l
+896 304 l
+fl
+bl
+896 304 m
+896 320 l
+912 320 l
+912 304 l
+896 304 l
+cs
+912 304 m
+912 320 l
+928 320 l
+928 304 l
+912 304 l
+fl
+bl
+912 304 m
+912 320 l
+928 320 l
+928 304 l
+912 304 l
+cs
+896 288 m
+896 304 l
+912 304 l
+912 288 l
+896 288 l
+fl
+bl
+896 288 m
+896 304 l
+912 304 l
+912 288 l
+896 288 l
+cs
+912 288 m
+912 304 l
+928 304 l
+928 288 l
+912 288 l
+fl
+bl
+912 288 m
+912 304 l
+928 304 l
+928 288 l
+912 288 l
+cs
+bl
+928 288 m
+928 320 l
+944 320 l
+944 288 l
+928 288 l
+cs
+bl
+hf 8.0 sf
+931.2 291.2 m (16) show
+896 272 m
+896 288 l
+928 288 l
+928 272 l
+896 272 l
+fl
+bl
+896 272 m
+896 288 l
+928 288 l
+928 272 l
+896 272 l
+cs
+bl
+928 272 m
+928 288 l
+944 288 l
+944 272 l
+928 272 l
+cs
+bl
+hf 8.0 sf
+931.2 273.6 m (16) show
+944 272 m
+944 320 l
+960 320 l
+960 272 l
+944 272 l
+fl
+bl
+944 272 m
+944 320 l
+960 320 l
+960 272 l
+944 272 l
+cs
+bl
+896 256 m
+896 272 l
+944 272 l
+944 256 l
+896 256 l
+cs
+bl
+hf 8.0 sf
+905.6 257.6 m (16) show
+bl
+944 256 m
+944 272 l
+960 272 l
+960 256 l
+944 256 l
+cs
+bl
+hf 8.0 sf
+947.2 257.6 m (16) show
+960 320 m
+960 512 l
+1008 512 l
+1008 320 l
+960 320 l
+fl
+bl
+960 320 m
+960 512 l
+1008 512 l
+1008 320 l
+960 320 l
+cs
+1008 320 m
+1008 512 l
+1024 512 l
+1024 320 l
+1008 320 l
+fl
+bl
+1008 320 m
+1008 512 l
+1024 512 l
+1024 320 l
+1008 320 l
+cs
+960 256 m
+960 320 l
+1008 320 l
+1008 256 l
+960 256 l
+fl
+bl
+960 256 m
+960 320 l
+1008 320 l
+1008 256 l
+960 256 l
+cs
+1008 256 m
+1008 320 l
+1024 320 l
+1024 256 l
+1008 256 l
+fl
+bl
+1008 256 m
+1008 320 l
+1024 320 l
+1024 256 l
+1008 256 l
+cs
+0 224 m
+0 256 l
+64 256 l
+64 224 l
+0 224 l
+fl
+bl
+0 224 m
+0 256 l
+64 256 l
+64 224 l
+0 224 l
+cs
+64 224 m
+64 256 l
+128 256 l
+128 224 l
+64 224 l
+fl
+bl
+64 224 m
+64 256 l
+128 256 l
+128 224 l
+64 224 l
+cs
+0 192 m
+0 224 l
+64 224 l
+64 192 l
+0 192 l
+fl
+bl
+0 192 m
+0 224 l
+64 224 l
+64 192 l
+0 192 l
+cs
+64 192 m
+64 224 l
+128 224 l
+128 192 l
+64 192 l
+fl
+bl
+64 192 m
+64 224 l
+128 224 l
+128 192 l
+64 192 l
+cs
+128 224 m
+128 256 l
+192 256 l
+192 224 l
+128 224 l
+fl
+bl
+128 224 m
+128 256 l
+192 256 l
+192 224 l
+128 224 l
+cs
+192 224 m
+192 256 l
+256 256 l
+256 224 l
+192 224 l
+fl
+bl
+192 224 m
+192 256 l
+256 256 l
+256 224 l
+192 224 l
+cs
+128 192 m
+128 224 l
+192 224 l
+192 192 l
+128 192 l
+fl
+bl
+128 192 m
+128 224 l
+192 224 l
+192 192 l
+128 192 l
+cs
+192 192 m
+192 224 l
+256 224 l
+256 192 l
+192 192 l
+fl
+bl
+192 192 m
+192 224 l
+256 224 l
+256 192 l
+192 192 l
+cs
+0 128 m
+0 192 l
+128 192 l
+128 128 l
+0 128 l
+fl
+bl
+0 128 m
+0 192 l
+128 192 l
+128 128 l
+0 128 l
+cs
+128 128 m
+128 192 l
+256 192 l
+256 128 l
+128 128 l
+fl
+bl
+128 128 m
+128 192 l
+256 192 l
+256 128 l
+128 128 l
+cs
+bl
+256 240 m
+256 256 l
+288 256 l
+288 240 l
+256 240 l
+cs
+bl
+hf 8.0 sf
+262.4 241.6 m (16) show
+bl
+288 240 m
+288 256 l
+320 256 l
+320 240 l
+288 240 l
+cs
+bl
+hf 8.0 sf
+294.4 241.6 m (16) show
+256 224 m
+256 240 l
+288 240 l
+288 224 l
+256 224 l
+fl
+bl
+256 224 m
+256 240 l
+288 240 l
+288 224 l
+256 224 l
+cs
+288 224 m
+288 240 l
+320 240 l
+320 224 l
+288 224 l
+fl
+bl
+288 224 m
+288 240 l
+320 240 l
+320 224 l
+288 224 l
+cs
+bl
+320 240 m
+320 256 l
+352 256 l
+352 240 l
+320 240 l
+cs
+bl
+hf 8.0 sf
+326.4 241.6 m (16) show
+bl
+352 240 m
+352 256 l
+384 256 l
+384 240 l
+352 240 l
+cs
+bl
+hf 8.0 sf
+358.4 241.6 m (16) show
+bl
+320 224 m
+320 240 l
+352 240 l
+352 224 l
+320 224 l
+cs
+bl
+hf 8.0 sf
+326.4 225.6 m (16) show
+bl
+352 224 m
+352 240 l
+384 240 l
+384 224 l
+352 224 l
+cs
+bl
+hf 8.0 sf
+358.4 225.6 m (16) show
+bl
+256 208 m
+256 224 l
+288 224 l
+288 208 l
+256 208 l
+cs
+bl
+hf 8.0 sf
+262.4 209.6 m (16) show
+bl
+288 208 m
+288 224 l
+320 224 l
+320 208 l
+288 208 l
+cs
+bl
+hf 8.0 sf
+294.4 209.6 m (16) show
+256 192 m
+256 208 l
+288 208 l
+288 192 l
+256 192 l
+fl
+bl
+256 192 m
+256 208 l
+288 208 l
+288 192 l
+256 192 l
+cs
+288 192 m
+288 208 l
+320 208 l
+320 192 l
+288 192 l
+fl
+bl
+288 192 m
+288 208 l
+320 208 l
+320 192 l
+288 192 l
+cs
+bl
+320 208 m
+320 224 l
+352 224 l
+352 208 l
+320 208 l
+cs
+bl
+hf 8.0 sf
+326.4 209.6 m (16) show
+bl
+352 208 m
+352 224 l
+384 224 l
+384 208 l
+352 208 l
+cs
+bl
+hf 8.0 sf
+358.4 209.6 m (16) show
+bl
+320 192 m
+320 208 l
+352 208 l
+352 192 l
+320 192 l
+cs
+bl
+hf 8.0 sf
+326.4 193.6 m (16) show
+bl
+352 192 m
+352 208 l
+384 208 l
+384 192 l
+352 192 l
+cs
+bl
+hf 8.0 sf
+358.4 193.6 m (16) show
+384 240 m
+384 256 l
+416 256 l
+416 240 l
+384 240 l
+fl
+bl
+384 240 m
+384 256 l
+416 256 l
+416 240 l
+384 240 l
+cs
+416 240 m
+416 256 l
+448 256 l
+448 240 l
+416 240 l
+fl
+bl
+416 240 m
+416 256 l
+448 256 l
+448 240 l
+416 240 l
+cs
+384 224 m
+384 240 l
+416 240 l
+416 224 l
+384 224 l
+fl
+bl
+384 224 m
+384 240 l
+416 240 l
+416 224 l
+384 224 l
+cs
+416 224 m
+416 240 l
+448 240 l
+448 224 l
+416 224 l
+fl
+bl
+416 224 m
+416 240 l
+448 240 l
+448 224 l
+416 224 l
+cs
+bl
+448 240 m
+448 256 l
+480 256 l
+480 240 l
+448 240 l
+cs
+bl
+hf 8.0 sf
+454.4 241.6 m (16) show
+480 240 m
+480 256 l
+512 256 l
+512 240 l
+480 240 l
+fl
+bl
+480 240 m
+480 256 l
+512 256 l
+512 240 l
+480 240 l
+cs
+bl
+448 224 m
+448 240 l
+480 240 l
+480 224 l
+448 224 l
+cs
+bl
+hf 8.0 sf
+454.4 225.6 m (16) show
+480 224 m
+480 240 l
+512 240 l
+512 224 l
+480 224 l
+fl
+bl
+480 224 m
+480 240 l
+512 240 l
+512 224 l
+480 224 l
+cs
+bl
+384 208 m
+384 224 l
+416 224 l
+416 208 l
+384 208 l
+cs
+bl
+hf 8.0 sf
+390.4 209.6 m (16) show
+416 208 m
+416 224 l
+448 224 l
+448 208 l
+416 208 l
+fl
+bl
+416 208 m
+416 224 l
+448 224 l
+448 208 l
+416 208 l
+cs
+384 192 m
+384 208 l
+416 208 l
+416 192 l
+384 192 l
+fl
+bl
+384 192 m
+384 208 l
+416 208 l
+416 192 l
+384 192 l
+cs
+416 192 m
+416 208 l
+448 208 l
+448 192 l
+416 192 l
+fl
+bl
+416 192 m
+416 208 l
+448 208 l
+448 192 l
+416 192 l
+cs
+bl
+448 208 m
+448 224 l
+480 224 l
+480 208 l
+448 208 l
+cs
+bl
+hf 8.0 sf
+454.4 209.6 m (16) show
+bl
+480 208 m
+480 224 l
+512 224 l
+512 208 l
+480 208 l
+cs
+bl
+hf 8.0 sf
+486.4 209.6 m (16) show
+bl
+448 192 m
+448 208 l
+480 208 l
+480 192 l
+448 192 l
+cs
+bl
+hf 8.0 sf
+454.4 193.6 m (16) show
+bl
+480 192 m
+480 208 l
+512 208 l
+512 192 l
+480 192 l
+cs
+bl
+hf 8.0 sf
+486.4 193.6 m (16) show
+256 160 m
+256 192 l
+320 192 l
+320 160 l
+256 160 l
+fl
+bl
+256 160 m
+256 192 l
+320 192 l
+320 160 l
+256 160 l
+cs
+bl
+320 176 m
+320 192 l
+352 192 l
+352 176 l
+320 176 l
+cs
+bl
+hf 8.0 sf
+326.4 177.6 m (16) show
+bl
+352 176 m
+352 192 l
+384 192 l
+384 176 l
+352 176 l
+cs
+bl
+hf 8.0 sf
+358.4 177.6 m (16) show
+320 160 m
+320 176 l
+352 176 l
+352 160 l
+320 160 l
+fl
+bl
+320 160 m
+320 176 l
+352 176 l
+352 160 l
+320 160 l
+cs
+352 160 m
+352 176 l
+384 176 l
+384 160 l
+352 160 l
+fl
+bl
+352 160 m
+352 176 l
+384 176 l
+384 160 l
+352 160 l
+cs
+256 128 m
+256 160 l
+320 160 l
+320 128 l
+256 128 l
+fl
+bl
+256 128 m
+256 160 l
+320 160 l
+320 128 l
+256 128 l
+cs
+bl
+320 144 m
+320 160 l
+352 160 l
+352 144 l
+320 144 l
+cs
+bl
+hf 8.0 sf
+326.4 145.6 m (16) show
+bl
+352 144 m
+352 160 l
+384 160 l
+384 144 l
+352 144 l
+cs
+bl
+hf 8.0 sf
+358.4 145.6 m (16) show
+320 128 m
+320 144 l
+352 144 l
+352 128 l
+320 128 l
+fl
+bl
+320 128 m
+320 144 l
+352 144 l
+352 128 l
+320 128 l
+cs
+352 128 m
+352 144 l
+384 144 l
+384 128 l
+352 128 l
+fl
+bl
+352 128 m
+352 144 l
+384 144 l
+384 128 l
+352 128 l
+cs
+384 160 m
+384 192 l
+448 192 l
+448 160 l
+384 160 l
+fl
+bl
+384 160 m
+384 192 l
+448 192 l
+448 160 l
+384 160 l
+cs
+448 176 m
+448 192 l
+480 192 l
+480 176 l
+448 176 l
+fl
+bl
+448 176 m
+448 192 l
+480 192 l
+480 176 l
+448 176 l
+cs
+480 176 m
+480 192 l
+512 192 l
+512 176 l
+480 176 l
+fl
+bl
+480 176 m
+480 192 l
+512 192 l
+512 176 l
+480 176 l
+cs
+448 160 m
+448 176 l
+480 176 l
+480 160 l
+448 160 l
+fl
+bl
+448 160 m
+448 176 l
+480 176 l
+480 160 l
+448 160 l
+cs
+480 160 m
+480 176 l
+512 176 l
+512 160 l
+480 160 l
+fl
+bl
+480 160 m
+480 176 l
+512 176 l
+512 160 l
+480 160 l
+cs
+384 128 m
+384 160 l
+448 160 l
+448 128 l
+384 128 l
+fl
+bl
+384 128 m
+384 160 l
+448 160 l
+448 128 l
+384 128 l
+cs
+bl
+448 144 m
+448 160 l
+480 160 l
+480 144 l
+448 144 l
+cs
+bl
+hf 8.0 sf
+454.4 145.6 m (16) show
+480 144 m
+480 160 l
+512 160 l
+512 144 l
+480 144 l
+fl
+bl
+480 144 m
+480 160 l
+512 160 l
+512 144 l
+480 144 l
+cs
+448 128 m
+448 144 l
+480 144 l
+480 128 l
+448 128 l
+fl
+bl
+448 128 m
+448 144 l
+480 144 l
+480 128 l
+448 128 l
+cs
+480 128 m
+480 144 l
+512 144 l
+512 128 l
+480 128 l
+fl
+bl
+480 128 m
+480 144 l
+512 144 l
+512 128 l
+480 128 l
+cs
+0 96 m
+0 128 l
+64 128 l
+64 96 l
+0 96 l
+fl
+bl
+0 96 m
+0 128 l
+64 128 l
+64 96 l
+0 96 l
+cs
+64 96 m
+64 128 l
+128 128 l
+128 96 l
+64 96 l
+fl
+bl
+64 96 m
+64 128 l
+128 128 l
+128 96 l
+64 96 l
+cs
+0 80 m
+0 96 l
+64 96 l
+64 80 l
+0 80 l
+fl
+bl
+0 80 m
+0 96 l
+64 96 l
+64 80 l
+0 80 l
+cs
+64 80 m
+64 96 l
+128 96 l
+128 80 l
+64 80 l
+fl
+bl
+64 80 m
+64 96 l
+128 96 l
+128 80 l
+64 80 l
+cs
+128 96 m
+128 128 l
+192 128 l
+192 96 l
+128 96 l
+fl
+bl
+128 96 m
+128 128 l
+192 128 l
+192 96 l
+128 96 l
+cs
+192 96 m
+192 128 l
+256 128 l
+256 96 l
+192 96 l
+fl
+bl
+192 96 m
+192 128 l
+256 128 l
+256 96 l
+192 96 l
+cs
+128 80 m
+128 96 l
+192 96 l
+192 80 l
+128 80 l
+fl
+bl
+128 80 m
+128 96 l
+192 96 l
+192 80 l
+128 80 l
+cs
+192 80 m
+192 96 l
+256 96 l
+256 80 l
+192 80 l
+fl
+bl
+192 80 m
+192 96 l
+256 96 l
+256 80 l
+192 80 l
+cs
+0 64 m
+0 80 l
+128 80 l
+128 64 l
+0 64 l
+fl
+bl
+0 64 m
+0 80 l
+128 80 l
+128 64 l
+0 64 l
+cs
+128 64 m
+128 80 l
+256 80 l
+256 64 l
+128 64 l
+fl
+bl
+128 64 m
+128 80 l
+256 80 l
+256 64 l
+128 64 l
+cs
+256 112 m
+256 128 l
+288 128 l
+288 112 l
+256 112 l
+fl
+bl
+256 112 m
+256 128 l
+288 128 l
+288 112 l
+256 112 l
+cs
+bl
+288 112 m
+288 128 l
+320 128 l
+320 112 l
+288 112 l
+cs
+bl
+hf 8.0 sf
+294.4 113.6 m (16) show
+256 96 m
+256 112 l
+288 112 l
+288 96 l
+256 96 l
+fl
+bl
+256 96 m
+256 112 l
+288 112 l
+288 96 l
+256 96 l
+cs
+288 96 m
+288 112 l
+320 112 l
+320 96 l
+288 96 l
+fl
+bl
+288 96 m
+288 112 l
+320 112 l
+320 96 l
+288 96 l
+cs
+bl
+320 112 m
+320 128 l
+352 128 l
+352 112 l
+320 112 l
+cs
+bl
+hf 8.0 sf
+326.4 113.6 m (16) show
+bl
+352 112 m
+352 128 l
+384 128 l
+384 112 l
+352 112 l
+cs
+bl
+hf 8.0 sf
+358.4 113.6 m (16) show
+bl
+320 96 m
+320 112 l
+352 112 l
+352 96 l
+320 96 l
+cs
+bl
+hf 8.0 sf
+326.4 97.6 m (16) show
+bl
+352 96 m
+352 112 l
+384 112 l
+384 96 l
+352 96 l
+cs
+bl
+hf 8.0 sf
+358.4 97.6 m (16) show
+bl
+256 80 m
+256 96 l
+320 96 l
+320 80 l
+256 80 l
+cs
+bl
+hf 8.0 sf
+268.8 81.6 m (16) show
+bl
+320 80 m
+320 96 l
+384 96 l
+384 80 l
+320 80 l
+cs
+bl
+hf 8.0 sf
+332.8 81.6 m (16) show
+bl
+384 112 m
+384 128 l
+416 128 l
+416 112 l
+384 112 l
+cs
+bl
+hf 8.0 sf
+390.4 113.6 m (16) show
+bl
+416 112 m
+416 128 l
+448 128 l
+448 112 l
+416 112 l
+cs
+bl
+hf 8.0 sf
+422.4 113.6 m (16) show
+384 96 m
+384 112 l
+416 112 l
+416 96 l
+384 96 l
+fl
+bl
+384 96 m
+384 112 l
+416 112 l
+416 96 l
+384 96 l
+cs
+416 96 m
+416 112 l
+448 112 l
+448 96 l
+416 96 l
+fl
+bl
+416 96 m
+416 112 l
+448 112 l
+448 96 l
+416 96 l
+cs
+bl
+448 112 m
+448 128 l
+480 128 l
+480 112 l
+448 112 l
+cs
+bl
+hf 8.0 sf
+454.4 113.6 m (16) show
+bl
+480 112 m
+480 128 l
+512 128 l
+512 112 l
+480 112 l
+cs
+bl
+hf 8.0 sf
+486.4 113.6 m (16) show
+bl
+448 96 m
+448 112 l
+480 112 l
+480 96 l
+448 96 l
+cs
+bl
+hf 8.0 sf
+454.4 97.6 m (16) show
+bl
+480 96 m
+480 112 l
+512 112 l
+512 96 l
+480 96 l
+cs
+bl
+hf 8.0 sf
+486.4 97.6 m (16) show
+bl
+384 80 m
+384 96 l
+448 96 l
+448 80 l
+384 80 l
+cs
+bl
+hf 8.0 sf
+396.8 81.6 m (16) show
+bl
+448 80 m
+448 96 l
+512 96 l
+512 80 l
+448 80 l
+cs
+bl
+hf 8.0 sf
+460.8 81.6 m (16) show
+bl
+256 64 m
+256 80 l
+384 80 l
+384 64 l
+256 64 l
+cs
+bl
+hf 8.0 sf
+281.6 65.6 m (16) show
+bl
+384 64 m
+384 80 l
+512 80 l
+512 64 l
+384 64 l
+cs
+bl
+hf 8.0 sf
+409.6 65.6 m (16) show
+512 192 m
+512 256 l
+640 256 l
+640 192 l
+512 192 l
+fl
+bl
+512 192 m
+512 256 l
+640 256 l
+640 192 l
+512 192 l
+cs
+640 192 m
+640 256 l
+704 256 l
+704 192 l
+640 192 l
+fl
+bl
+640 192 m
+640 256 l
+704 256 l
+704 192 l
+640 192 l
+cs
+512 128 m
+512 192 l
+640 192 l
+640 128 l
+512 128 l
+fl
+bl
+512 128 m
+512 192 l
+640 192 l
+640 128 l
+512 128 l
+cs
+640 128 m
+640 192 l
+704 192 l
+704 128 l
+640 128 l
+fl
+bl
+640 128 m
+640 192 l
+704 192 l
+704 128 l
+640 128 l
+cs
+704 224 m
+704 256 l
+736 256 l
+736 224 l
+704 224 l
+fl
+bl
+704 224 m
+704 256 l
+736 256 l
+736 224 l
+704 224 l
+cs
+736 224 m
+736 256 l
+752 256 l
+752 224 l
+736 224 l
+fl
+bl
+736 224 m
+736 256 l
+752 256 l
+752 224 l
+736 224 l
+cs
+704 192 m
+704 224 l
+736 224 l
+736 192 l
+704 192 l
+fl
+bl
+704 192 m
+704 224 l
+736 224 l
+736 192 l
+704 192 l
+cs
+736 192 m
+736 224 l
+752 224 l
+752 192 l
+736 192 l
+fl
+bl
+736 192 m
+736 224 l
+752 224 l
+752 192 l
+736 192 l
+cs
+752 192 m
+752 256 l
+768 256 l
+768 192 l
+752 192 l
+fl
+bl
+752 192 m
+752 256 l
+768 256 l
+768 192 l
+752 192 l
+cs
+704 128 m
+704 192 l
+752 192 l
+752 128 l
+704 128 l
+fl
+bl
+704 128 m
+704 192 l
+752 192 l
+752 128 l
+704 128 l
+cs
+752 128 m
+752 192 l
+768 192 l
+768 128 l
+752 128 l
+fl
+bl
+752 128 m
+752 192 l
+768 192 l
+768 128 l
+752 128 l
+cs
+512 96 m
+512 128 l
+576 128 l
+576 96 l
+512 96 l
+fl
+bl
+512 96 m
+512 128 l
+576 128 l
+576 96 l
+512 96 l
+cs
+576 96 m
+576 128 l
+640 128 l
+640 96 l
+576 96 l
+fl
+bl
+576 96 m
+576 128 l
+640 128 l
+640 96 l
+576 96 l
+cs
+512 80 m
+512 96 l
+576 96 l
+576 80 l
+512 80 l
+fl
+bl
+512 80 m
+512 96 l
+576 96 l
+576 80 l
+512 80 l
+cs
+576 80 m
+576 96 l
+640 96 l
+640 80 l
+576 80 l
+fl
+bl
+576 80 m
+576 96 l
+640 96 l
+640 80 l
+576 80 l
+cs
+640 80 m
+640 128 l
+704 128 l
+704 80 l
+640 80 l
+fl
+bl
+640 80 m
+640 128 l
+704 128 l
+704 80 l
+640 80 l
+cs
+512 64 m
+512 80 l
+640 80 l
+640 64 l
+512 64 l
+fl
+bl
+512 64 m
+512 80 l
+640 80 l
+640 64 l
+512 64 l
+cs
+640 64 m
+640 80 l
+704 80 l
+704 64 l
+640 64 l
+fl
+bl
+640 64 m
+640 80 l
+704 80 l
+704 64 l
+640 64 l
+cs
+704 112 m
+704 128 l
+720 128 l
+720 112 l
+704 112 l
+fl
+bl
+704 112 m
+704 128 l
+720 128 l
+720 112 l
+704 112 l
+cs
+720 112 m
+720 128 l
+736 128 l
+736 112 l
+720 112 l
+fl
+bl
+720 112 m
+720 128 l
+736 128 l
+736 112 l
+720 112 l
+cs
+704 96 m
+704 112 l
+720 112 l
+720 96 l
+704 96 l
+fl
+bl
+704 96 m
+704 112 l
+720 112 l
+720 96 l
+704 96 l
+cs
+720 96 m
+720 112 l
+736 112 l
+736 96 l
+720 96 l
+fl
+bl
+720 96 m
+720 112 l
+736 112 l
+736 96 l
+720 96 l
+cs
+736 96 m
+736 128 l
+752 128 l
+752 96 l
+736 96 l
+fl
+bl
+736 96 m
+736 128 l
+752 128 l
+752 96 l
+736 96 l
+cs
+bl
+704 80 m
+704 96 l
+736 96 l
+736 80 l
+704 80 l
+cs
+bl
+hf 8.0 sf
+710.4 81.6 m (16) show
+bl
+736 80 m
+736 96 l
+752 96 l
+752 80 l
+736 80 l
+cs
+bl
+hf 8.0 sf
+739.2 81.6 m (16) show
+bl
+752 80 m
+752 128 l
+768 128 l
+768 80 l
+752 80 l
+cs
+bl
+hf 8.0 sf
+755.2 84.8 m (16) show
+704 64 m
+704 80 l
+752 80 l
+752 64 l
+704 64 l
+fl
+bl
+704 64 m
+704 80 l
+752 80 l
+752 64 l
+704 64 l
+cs
+bl
+752 64 m
+752 80 l
+768 80 l
+768 64 l
+752 64 l
+cs
+bl
+hf 8.0 sf
+755.2 65.6 m (16) show
+0 16 m
+0 64 l
+256 64 l
+256 16 l
+0 16 l
+fl
+bl
+0 16 m
+0 64 l
+256 64 l
+256 16 l
+0 16 l
+cs
+256 32 m
+256 64 l
+384 64 l
+384 32 l
+256 32 l
+fl
+bl
+256 32 m
+256 64 l
+384 64 l
+384 32 l
+256 32 l
+cs
+384 32 m
+384 64 l
+512 64 l
+512 32 l
+384 32 l
+fl
+bl
+384 32 m
+384 64 l
+512 64 l
+512 32 l
+384 32 l
+cs
+256 16 m
+256 32 l
+384 32 l
+384 16 l
+256 16 l
+fl
+bl
+256 16 m
+256 32 l
+384 32 l
+384 16 l
+256 16 l
+cs
+384 16 m
+384 32 l
+512 32 l
+512 16 l
+384 16 l
+fl
+bl
+384 16 m
+384 32 l
+512 32 l
+512 16 l
+384 16 l
+cs
+0 0 m
+0 16 l
+256 16 l
+256 0 l
+0 0 l
+fl
+bl
+0 0 m
+0 16 l
+256 16 l
+256 0 l
+0 0 l
+cs
+256 0 m
+256 16 l
+512 16 l
+512 0 l
+256 0 l
+fl
+bl
+256 0 m
+256 16 l
+512 16 l
+512 0 l
+256 0 l
+cs
+512 16 m
+512 64 l
+704 64 l
+704 16 l
+512 16 l
+fl
+bl
+512 16 m
+512 64 l
+704 64 l
+704 16 l
+512 16 l
+cs
+704 16 m
+704 64 l
+768 64 l
+768 16 l
+704 16 l
+fl
+bl
+704 16 m
+704 64 l
+768 64 l
+768 16 l
+704 16 l
+cs
+512 0 m
+512 16 l
+704 16 l
+704 0 l
+512 0 l
+fl
+bl
+512 0 m
+512 16 l
+704 16 l
+704 0 l
+512 0 l
+cs
+704 0 m
+704 16 l
+768 16 l
+768 0 l
+704 0 l
+fl
+bl
+704 0 m
+704 16 l
+768 16 l
+768 0 l
+704 0 l
+cs
+bl
+768 240 m
+768 256 l
+784 256 l
+784 240 l
+768 240 l
+cs
+bl
+hf 8.0 sf
+771.2 241.6 m (16) show
+bl
+784 240 m
+784 256 l
+800 256 l
+800 240 l
+784 240 l
+cs
+bl
+hf 8.0 sf
+787.2 241.6 m (16) show
+bl
+768 224 m
+768 240 l
+784 240 l
+784 224 l
+768 224 l
+cs
+bl
+hf 8.0 sf
+771.2 225.6 m (16) show
+bl
+784 224 m
+784 240 l
+800 240 l
+800 224 l
+784 224 l
+cs
+bl
+hf 8.0 sf
+787.2 225.6 m (16) show
+bl
+800 240 m
+800 256 l
+816 256 l
+816 240 l
+800 240 l
+cs
+bl
+hf 8.0 sf
+803.2 241.6 m (16) show
+bl
+816 240 m
+816 256 l
+832 256 l
+832 240 l
+816 240 l
+cs
+bl
+hf 8.0 sf
+819.2 241.6 m (16) show
+bl
+800 224 m
+800 240 l
+816 240 l
+816 224 l
+800 224 l
+cs
+bl
+hf 8.0 sf
+803.2 225.6 m (16) show
+bl
+816 224 m
+816 240 l
+832 240 l
+832 224 l
+816 224 l
+cs
+bl
+hf 8.0 sf
+819.2 225.6 m (16) show
+bl
+768 208 m
+768 224 l
+784 224 l
+784 208 l
+768 208 l
+cs
+bl
+hf 8.0 sf
+771.2 209.6 m (16) show
+bl
+784 208 m
+784 224 l
+800 224 l
+800 208 l
+784 208 l
+cs
+bl
+hf 8.0 sf
+787.2 209.6 m (16) show
+bl
+768 192 m
+768 208 l
+784 208 l
+784 192 l
+768 192 l
+cs
+bl
+hf 8.0 sf
+771.2 193.6 m (16) show
+bl
+784 192 m
+784 208 l
+800 208 l
+800 192 l
+784 192 l
+cs
+bl
+hf 8.0 sf
+787.2 193.6 m (16) show
+bl
+800 208 m
+800 224 l
+816 224 l
+816 208 l
+800 208 l
+cs
+bl
+hf 8.0 sf
+803.2 209.6 m (16) show
+bl
+816 208 m
+816 224 l
+832 224 l
+832 208 l
+816 208 l
+cs
+bl
+hf 8.0 sf
+819.2 209.6 m (16) show
+bl
+800 192 m
+800 208 l
+816 208 l
+816 192 l
+800 192 l
+cs
+bl
+hf 8.0 sf
+803.2 193.6 m (16) show
+bl
+816 192 m
+816 208 l
+832 208 l
+832 192 l
+816 192 l
+cs
+bl
+hf 8.0 sf
+819.2 193.6 m (16) show
+bl
+832 240 m
+832 256 l
+848 256 l
+848 240 l
+832 240 l
+cs
+bl
+hf 8.0 sf
+835.2 241.6 m (16) show
+bl
+848 240 m
+848 256 l
+864 256 l
+864 240 l
+848 240 l
+cs
+bl
+hf 8.0 sf
+851.2 241.6 m (16) show
+bl
+832 224 m
+832 240 l
+848 240 l
+848 224 l
+832 224 l
+cs
+bl
+hf 8.0 sf
+835.2 225.6 m (16) show
+bl
+848 224 m
+848 240 l
+864 240 l
+864 224 l
+848 224 l
+cs
+bl
+hf 8.0 sf
+851.2 225.6 m (16) show
+bl
+864 240 m
+864 256 l
+880 256 l
+880 240 l
+864 240 l
+cs
+bl
+hf 8.0 sf
+867.2 241.6 m (16) show
+bl
+880 240 m
+880 256 l
+896 256 l
+896 240 l
+880 240 l
+cs
+bl
+hf 8.0 sf
+883.2 241.6 m (16) show
+bl
+864 224 m
+864 240 l
+880 240 l
+880 224 l
+864 224 l
+cs
+bl
+hf 8.0 sf
+867.2 225.6 m (16) show
+bl
+880 224 m
+880 240 l
+896 240 l
+896 224 l
+880 224 l
+cs
+bl
+hf 8.0 sf
+883.2 225.6 m (16) show
+bl
+832 208 m
+832 224 l
+848 224 l
+848 208 l
+832 208 l
+cs
+bl
+hf 8.0 sf
+835.2 209.6 m (16) show
+bl
+848 208 m
+848 224 l
+864 224 l
+864 208 l
+848 208 l
+cs
+bl
+hf 8.0 sf
+851.2 209.6 m (16) show
+bl
+832 192 m
+832 208 l
+848 208 l
+848 192 l
+832 192 l
+cs
+bl
+hf 8.0 sf
+835.2 193.6 m (16) show
+bl
+848 192 m
+848 208 l
+864 208 l
+864 192 l
+848 192 l
+cs
+bl
+hf 8.0 sf
+851.2 193.6 m (16) show
+bl
+864 208 m
+864 224 l
+880 224 l
+880 208 l
+864 208 l
+cs
+bl
+hf 8.0 sf
+867.2 209.6 m (16) show
+bl
+880 208 m
+880 224 l
+896 224 l
+896 208 l
+880 208 l
+cs
+bl
+hf 8.0 sf
+883.2 209.6 m (16) show
+bl
+864 192 m
+864 208 l
+880 208 l
+880 192 l
+864 192 l
+cs
+bl
+hf 8.0 sf
+867.2 193.6 m (16) show
+bl
+880 192 m
+880 208 l
+896 208 l
+896 192 l
+880 192 l
+cs
+bl
+hf 8.0 sf
+883.2 193.6 m (16) show
+bl
+768 176 m
+768 192 l
+784 192 l
+784 176 l
+768 176 l
+cs
+bl
+hf 8.0 sf
+771.2 177.6 m (16) show
+bl
+784 176 m
+784 192 l
+800 192 l
+800 176 l
+784 176 l
+cs
+bl
+hf 8.0 sf
+787.2 177.6 m (16) show
+bl
+768 160 m
+768 176 l
+784 176 l
+784 160 l
+768 160 l
+cs
+bl
+hf 8.0 sf
+771.2 161.6 m (16) show
+bl
+784 160 m
+784 176 l
+800 176 l
+800 160 l
+784 160 l
+cs
+bl
+hf 8.0 sf
+787.2 161.6 m (16) show
+bl
+800 176 m
+800 192 l
+816 192 l
+816 176 l
+800 176 l
+cs
+bl
+hf 8.0 sf
+803.2 177.6 m (16) show
+bl
+816 176 m
+816 192 l
+832 192 l
+832 176 l
+816 176 l
+cs
+bl
+hf 8.0 sf
+819.2 177.6 m (16) show
+bl
+800 160 m
+800 176 l
+816 176 l
+816 160 l
+800 160 l
+cs
+bl
+hf 8.0 sf
+803.2 161.6 m (16) show
+bl
+816 160 m
+816 176 l
+832 176 l
+832 160 l
+816 160 l
+cs
+bl
+hf 8.0 sf
+819.2 161.6 m (16) show
+bl
+768 144 m
+768 160 l
+784 160 l
+784 144 l
+768 144 l
+cs
+bl
+hf 8.0 sf
+771.2 145.6 m (16) show
+bl
+784 144 m
+784 160 l
+800 160 l
+800 144 l
+784 144 l
+cs
+bl
+hf 8.0 sf
+787.2 145.6 m (16) show
+bl
+768 128 m
+768 144 l
+784 144 l
+784 128 l
+768 128 l
+cs
+bl
+hf 8.0 sf
+771.2 129.6 m (16) show
+bl
+784 128 m
+784 144 l
+800 144 l
+800 128 l
+784 128 l
+cs
+bl
+hf 8.0 sf
+787.2 129.6 m (16) show
+bl
+800 144 m
+800 160 l
+816 160 l
+816 144 l
+800 144 l
+cs
+bl
+hf 8.0 sf
+803.2 145.6 m (16) show
+bl
+816 144 m
+816 160 l
+832 160 l
+832 144 l
+816 144 l
+cs
+bl
+hf 8.0 sf
+819.2 145.6 m (16) show
+bl
+800 128 m
+800 144 l
+816 144 l
+816 128 l
+800 128 l
+cs
+bl
+hf 8.0 sf
+803.2 129.6 m (16) show
+bl
+816 128 m
+816 144 l
+832 144 l
+832 128 l
+816 128 l
+cs
+bl
+hf 8.0 sf
+819.2 129.6 m (16) show
+bl
+832 176 m
+832 192 l
+848 192 l
+848 176 l
+832 176 l
+cs
+bl
+hf 8.0 sf
+835.2 177.6 m (16) show
+bl
+848 176 m
+848 192 l
+864 192 l
+864 176 l
+848 176 l
+cs
+bl
+hf 8.0 sf
+851.2 177.6 m (16) show
+bl
+832 160 m
+832 176 l
+848 176 l
+848 160 l
+832 160 l
+cs
+bl
+hf 8.0 sf
+835.2 161.6 m (16) show
+bl
+848 160 m
+848 176 l
+864 176 l
+864 160 l
+848 160 l
+cs
+bl
+hf 8.0 sf
+851.2 161.6 m (16) show
+bl
+864 176 m
+864 192 l
+880 192 l
+880 176 l
+864 176 l
+cs
+bl
+hf 8.0 sf
+867.2 177.6 m (16) show
+bl
+880 176 m
+880 192 l
+896 192 l
+896 176 l
+880 176 l
+cs
+bl
+hf 8.0 sf
+883.2 177.6 m (16) show
+bl
+864 160 m
+864 176 l
+880 176 l
+880 160 l
+864 160 l
+cs
+bl
+hf 8.0 sf
+867.2 161.6 m (16) show
+bl
+880 160 m
+880 176 l
+896 176 l
+896 160 l
+880 160 l
+cs
+bl
+hf 8.0 sf
+883.2 161.6 m (16) show
+bl
+832 144 m
+832 160 l
+848 160 l
+848 144 l
+832 144 l
+cs
+bl
+hf 8.0 sf
+835.2 145.6 m (16) show
+bl
+848 144 m
+848 160 l
+864 160 l
+864 144 l
+848 144 l
+cs
+bl
+hf 8.0 sf
+851.2 145.6 m (16) show
+bl
+832 128 m
+832 144 l
+848 144 l
+848 128 l
+832 128 l
+cs
+bl
+hf 8.0 sf
+835.2 129.6 m (16) show
+bl
+848 128 m
+848 144 l
+864 144 l
+864 128 l
+848 128 l
+cs
+bl
+hf 8.0 sf
+851.2 129.6 m (16) show
+bl
+864 144 m
+864 160 l
+880 160 l
+880 144 l
+864 144 l
+cs
+bl
+hf 8.0 sf
+867.2 145.6 m (16) show
+bl
+880 144 m
+880 160 l
+896 160 l
+896 144 l
+880 144 l
+cs
+bl
+hf 8.0 sf
+883.2 145.6 m (16) show
+bl
+864 128 m
+864 144 l
+880 144 l
+880 128 l
+864 128 l
+cs
+bl
+hf 8.0 sf
+867.2 129.6 m (16) show
+bl
+880 128 m
+880 144 l
+896 144 l
+896 128 l
+880 128 l
+cs
+bl
+hf 8.0 sf
+883.2 129.6 m (16) show
+bl
+896 240 m
+896 256 l
+912 256 l
+912 240 l
+896 240 l
+cs
+bl
+hf 8.0 sf
+899.2 241.6 m (16) show
+bl
+912 240 m
+912 256 l
+928 256 l
+928 240 l
+912 240 l
+cs
+bl
+hf 8.0 sf
+915.2 241.6 m (16) show
+bl
+896 224 m
+896 240 l
+912 240 l
+912 224 l
+896 224 l
+cs
+bl
+hf 8.0 sf
+899.2 225.6 m (16) show
+bl
+912 224 m
+912 240 l
+928 240 l
+928 224 l
+912 224 l
+cs
+bl
+hf 8.0 sf
+915.2 225.6 m (16) show
+928 224 m
+928 256 l
+944 256 l
+944 224 l
+928 224 l
+fl
+bl
+928 224 m
+928 256 l
+944 256 l
+944 224 l
+928 224 l
+cs
+bl
+896 208 m
+896 224 l
+912 224 l
+912 208 l
+896 208 l
+cs
+bl
+hf 8.0 sf
+899.2 209.6 m (16) show
+bl
+912 208 m
+912 224 l
+928 224 l
+928 208 l
+912 208 l
+cs
+bl
+hf 8.0 sf
+915.2 209.6 m (16) show
+bl
+896 192 m
+896 208 l
+912 208 l
+912 192 l
+896 192 l
+cs
+bl
+hf 8.0 sf
+899.2 193.6 m (16) show
+bl
+912 192 m
+912 208 l
+928 208 l
+928 192 l
+912 192 l
+cs
+bl
+hf 8.0 sf
+915.2 193.6 m (16) show
+bl
+928 192 m
+928 224 l
+944 224 l
+944 192 l
+928 192 l
+cs
+bl
+hf 8.0 sf
+931.2 195.2 m (16) show
+bl
+944 192 m
+944 256 l
+960 256 l
+960 192 l
+944 192 l
+cs
+bl
+hf 8.0 sf
+947.2 198.4 m (16) show
+bl
+896 176 m
+896 192 l
+912 192 l
+912 176 l
+896 176 l
+cs
+bl
+hf 8.0 sf
+899.2 177.6 m (16) show
+bl
+912 176 m
+912 192 l
+928 192 l
+928 176 l
+912 176 l
+cs
+bl
+hf 8.0 sf
+915.2 177.6 m (16) show
+896 160 m
+896 176 l
+912 176 l
+912 160 l
+896 160 l
+fl
+bl
+896 160 m
+896 176 l
+912 176 l
+912 160 l
+896 160 l
+cs
+bl
+912 160 m
+912 176 l
+928 176 l
+928 160 l
+912 160 l
+cs
+bl
+hf 8.0 sf
+915.2 161.6 m (16) show
+928 160 m
+928 192 l
+944 192 l
+944 160 l
+928 160 l
+fl
+bl
+928 160 m
+928 192 l
+944 192 l
+944 160 l
+928 160 l
+cs
+bl
+896 144 m
+896 160 l
+912 160 l
+912 144 l
+896 144 l
+cs
+bl
+hf 8.0 sf
+899.2 145.6 m (16) show
+bl
+912 144 m
+912 160 l
+928 160 l
+928 144 l
+912 144 l
+cs
+bl
+hf 8.0 sf
+915.2 145.6 m (16) show
+bl
+896 128 m
+896 144 l
+912 144 l
+912 128 l
+896 128 l
+cs
+bl
+hf 8.0 sf
+899.2 129.6 m (16) show
+bl
+912 128 m
+912 144 l
+928 144 l
+928 128 l
+912 128 l
+cs
+bl
+hf 8.0 sf
+915.2 129.6 m (16) show
+bl
+928 128 m
+928 160 l
+944 160 l
+944 128 l
+928 128 l
+cs
+bl
+hf 8.0 sf
+931.2 131.2 m (16) show
+bl
+944 128 m
+944 192 l
+960 192 l
+960 128 l
+944 128 l
+cs
+bl
+hf 8.0 sf
+947.2 134.4 m (16) show
+bl
+768 112 m
+768 128 l
+784 128 l
+784 112 l
+768 112 l
+cs
+bl
+hf 8.0 sf
+771.2 113.6 m (16) show
+bl
+784 112 m
+784 128 l
+800 128 l
+800 112 l
+784 112 l
+cs
+bl
+hf 8.0 sf
+787.2 113.6 m (16) show
+bl
+768 96 m
+768 112 l
+784 112 l
+784 96 l
+768 96 l
+cs
+bl
+hf 8.0 sf
+771.2 97.6 m (16) show
+bl
+784 96 m
+784 112 l
+800 112 l
+800 96 l
+784 96 l
+cs
+bl
+hf 8.0 sf
+787.2 97.6 m (16) show
+bl
+800 112 m
+800 128 l
+816 128 l
+816 112 l
+800 112 l
+cs
+bl
+hf 8.0 sf
+803.2 113.6 m (16) show
+bl
+816 112 m
+816 128 l
+832 128 l
+832 112 l
+816 112 l
+cs
+bl
+hf 8.0 sf
+819.2 113.6 m (16) show
+bl
+800 96 m
+800 112 l
+816 112 l
+816 96 l
+800 96 l
+cs
+bl
+hf 8.0 sf
+803.2 97.6 m (16) show
+bl
+816 96 m
+816 112 l
+832 112 l
+832 96 l
+816 96 l
+cs
+bl
+hf 8.0 sf
+819.2 97.6 m (16) show
+768 80 m
+768 96 l
+800 96 l
+800 80 l
+768 80 l
+fl
+bl
+768 80 m
+768 96 l
+800 96 l
+800 80 l
+768 80 l
+cs
+bl
+800 80 m
+800 96 l
+832 96 l
+832 80 l
+800 80 l
+cs
+bl
+hf 8.0 sf
+806.4 81.6 m (16) show
+bl
+832 112 m
+832 128 l
+848 128 l
+848 112 l
+832 112 l
+cs
+bl
+hf 8.0 sf
+835.2 113.6 m (16) show
+848 112 m
+848 128 l
+864 128 l
+864 112 l
+848 112 l
+fl
+bl
+848 112 m
+848 128 l
+864 128 l
+864 112 l
+848 112 l
+cs
+bl
+832 96 m
+832 112 l
+848 112 l
+848 96 l
+832 96 l
+cs
+bl
+hf 8.0 sf
+835.2 97.6 m (16) show
+bl
+848 96 m
+848 112 l
+864 112 l
+864 96 l
+848 96 l
+cs
+bl
+hf 8.0 sf
+851.2 97.6 m (16) show
+bl
+864 112 m
+864 128 l
+880 128 l
+880 112 l
+864 112 l
+cs
+bl
+hf 8.0 sf
+867.2 113.6 m (16) show
+bl
+880 112 m
+880 128 l
+896 128 l
+896 112 l
+880 112 l
+cs
+bl
+hf 8.0 sf
+883.2 113.6 m (16) show
+bl
+864 96 m
+864 112 l
+880 112 l
+880 96 l
+864 96 l
+cs
+bl
+hf 8.0 sf
+867.2 97.6 m (16) show
+bl
+880 96 m
+880 112 l
+896 112 l
+896 96 l
+880 96 l
+cs
+bl
+hf 8.0 sf
+883.2 97.6 m (16) show
+832 80 m
+832 96 l
+864 96 l
+864 80 l
+832 80 l
+fl
+bl
+832 80 m
+832 96 l
+864 96 l
+864 80 l
+832 80 l
+cs
+bl
+864 80 m
+864 96 l
+896 96 l
+896 80 l
+864 80 l
+cs
+bl
+hf 8.0 sf
+870.4 81.6 m (16) show
+bl
+768 64 m
+768 80 l
+832 80 l
+832 64 l
+768 64 l
+cs
+bl
+hf 8.0 sf
+780.8 65.6 m (16) show
+bl
+832 64 m
+832 80 l
+896 80 l
+896 64 l
+832 64 l
+cs
+bl
+hf 8.0 sf
+844.8 65.6 m (16) show
+bl
+896 112 m
+896 128 l
+912 128 l
+912 112 l
+896 112 l
+cs
+bl
+hf 8.0 sf
+899.2 113.6 m (16) show
+bl
+912 112 m
+912 128 l
+928 128 l
+928 112 l
+912 112 l
+cs
+bl
+hf 8.0 sf
+915.2 113.6 m (16) show
+bl
+896 96 m
+896 112 l
+912 112 l
+912 96 l
+896 96 l
+cs
+bl
+hf 8.0 sf
+899.2 97.6 m (16) show
+bl
+912 96 m
+912 112 l
+928 112 l
+928 96 l
+912 96 l
+cs
+bl
+hf 8.0 sf
+915.2 97.6 m (16) show
+bl
+928 96 m
+928 128 l
+944 128 l
+944 96 l
+928 96 l
+cs
+bl
+hf 8.0 sf
+931.2 99.2 m (16) show
+bl
+896 80 m
+896 96 l
+928 96 l
+928 80 l
+896 80 l
+cs
+bl
+hf 8.0 sf
+902.4 81.6 m (16) show
+bl
+928 80 m
+928 96 l
+944 96 l
+944 80 l
+928 80 l
+cs
+bl
+hf 8.0 sf
+931.2 81.6 m (16) show
+bl
+944 80 m
+944 128 l
+960 128 l
+960 80 l
+944 80 l
+cs
+bl
+hf 8.0 sf
+947.2 84.8 m (16) show
+bl
+896 64 m
+896 80 l
+944 80 l
+944 64 l
+896 64 l
+cs
+bl
+hf 8.0 sf
+905.6 65.6 m (16) show
+bl
+944 64 m
+944 80 l
+960 80 l
+960 64 l
+944 64 l
+cs
+bl
+hf 8.0 sf
+947.2 65.6 m (16) show
+bl
+960 224 m
+960 256 l
+976 256 l
+976 224 l
+960 224 l
+cs
+bl
+hf 8.0 sf
+963.2 227.2 m (16) show
+976 224 m
+976 256 l
+992 256 l
+992 224 l
+976 224 l
+fl
+bl
+976 224 m
+976 256 l
+992 256 l
+992 224 l
+976 224 l
+cs
+bl
+960 192 m
+960 224 l
+976 224 l
+976 192 l
+960 192 l
+cs
+bl
+hf 8.0 sf
+963.2 195.2 m (16) show
+976 192 m
+976 224 l
+992 224 l
+992 192 l
+976 192 l
+fl
+bl
+976 192 m
+976 224 l
+992 224 l
+992 192 l
+976 192 l
+cs
+bl
+992 192 m
+992 256 l
+1008 256 l
+1008 192 l
+992 192 l
+cs
+bl
+hf 8.0 sf
+995.2 198.4 m (16) show
+bl
+960 160 m
+960 192 l
+976 192 l
+976 160 l
+960 160 l
+cs
+bl
+hf 8.0 sf
+963.2 163.2 m (16) show
+bl
+976 160 m
+976 192 l
+992 192 l
+992 160 l
+976 160 l
+cs
+bl
+hf 8.0 sf
+979.2 163.2 m (16) show
+bl
+960 128 m
+960 160 l
+976 160 l
+976 128 l
+960 128 l
+cs
+bl
+hf 8.0 sf
+963.2 131.2 m (16) show
+bl
+976 128 m
+976 160 l
+992 160 l
+992 128 l
+976 128 l
+cs
+bl
+hf 8.0 sf
+979.2 131.2 m (16) show
+bl
+992 128 m
+992 192 l
+1008 192 l
+1008 128 l
+992 128 l
+cs
+bl
+hf 8.0 sf
+995.2 134.4 m (16) show
+bl
+1008 128 m
+1008 256 l
+1024 256 l
+1024 128 l
+1008 128 l
+cs
+bl
+hf 8.0 sf
+1011.2 140.8 m (16) show
+960 96 m
+960 128 l
+976 128 l
+976 96 l
+960 96 l
+fl
+bl
+960 96 m
+960 128 l
+976 128 l
+976 96 l
+960 96 l
+cs
+976 96 m
+976 128 l
+992 128 l
+992 96 l
+976 96 l
+fl
+bl
+976 96 m
+976 128 l
+992 128 l
+992 96 l
+976 96 l
+cs
+960 80 m
+960 96 l
+976 96 l
+976 80 l
+960 80 l
+fl
+bl
+960 80 m
+960 96 l
+976 96 l
+976 80 l
+960 80 l
+cs
+976 80 m
+976 96 l
+992 96 l
+992 80 l
+976 80 l
+fl
+bl
+976 80 m
+976 96 l
+992 96 l
+992 80 l
+976 80 l
+cs
+bl
+992 80 m
+992 128 l
+1008 128 l
+1008 80 l
+992 80 l
+cs
+bl
+hf 8.0 sf
+995.2 84.8 m (16) show
+bl
+960 64 m
+960 80 l
+992 80 l
+992 64 l
+960 64 l
+cs
+bl
+hf 8.0 sf
+966.4 65.6 m (16) show
+bl
+992 64 m
+992 80 l
+1008 80 l
+1008 64 l
+992 64 l
+cs
+bl
+hf 8.0 sf
+995.2 65.6 m (16) show
+bl
+1008 64 m
+1008 128 l
+1024 128 l
+1024 64 l
+1008 64 l
+cs
+bl
+hf 8.0 sf
+1011.2 70.4 m (16) show
+bl
+768 48 m
+768 64 l
+800 64 l
+800 48 l
+768 48 l
+cs
+bl
+hf 8.0 sf
+774.4 49.6 m (16) show
+bl
+800 48 m
+800 64 l
+832 64 l
+832 48 l
+800 48 l
+cs
+bl
+hf 8.0 sf
+806.4 49.6 m (16) show
+768 32 m
+768 48 l
+800 48 l
+800 32 l
+768 32 l
+fl
+bl
+768 32 m
+768 48 l
+800 48 l
+800 32 l
+768 32 l
+cs
+800 32 m
+800 48 l
+832 48 l
+832 32 l
+800 32 l
+fl
+bl
+800 32 m
+800 48 l
+832 48 l
+832 32 l
+800 32 l
+cs
+bl
+832 48 m
+832 64 l
+864 64 l
+864 48 l
+832 48 l
+cs
+bl
+hf 8.0 sf
+838.4 49.6 m (16) show
+bl
+864 48 m
+864 64 l
+896 64 l
+896 48 l
+864 48 l
+cs
+bl
+hf 8.0 sf
+870.4 49.6 m (16) show
+bl
+832 32 m
+832 48 l
+864 48 l
+864 32 l
+832 32 l
+cs
+bl
+hf 8.0 sf
+838.4 33.6 m (16) show
+bl
+864 32 m
+864 48 l
+896 48 l
+896 32 l
+864 32 l
+cs
+bl
+hf 8.0 sf
+870.4 33.6 m (16) show
+bl
+768 16 m
+768 32 l
+832 32 l
+832 16 l
+768 16 l
+cs
+bl
+hf 8.0 sf
+780.8 17.6 m (16) show
+bl
+832 16 m
+832 32 l
+896 32 l
+896 16 l
+832 16 l
+cs
+bl
+hf 8.0 sf
+844.8 17.6 m (16) show
+896 48 m
+896 64 l
+928 64 l
+928 48 l
+896 48 l
+fl
+bl
+896 48 m
+896 64 l
+928 64 l
+928 48 l
+896 48 l
+cs
+928 48 m
+928 64 l
+944 64 l
+944 48 l
+928 48 l
+fl
+bl
+928 48 m
+928 64 l
+944 64 l
+944 48 l
+928 48 l
+cs
+896 32 m
+896 48 l
+928 48 l
+928 32 l
+896 32 l
+fl
+bl
+896 32 m
+896 48 l
+928 48 l
+928 32 l
+896 32 l
+cs
+928 32 m
+928 48 l
+944 48 l
+944 32 l
+928 32 l
+fl
+bl
+928 32 m
+928 48 l
+944 48 l
+944 32 l
+928 32 l
+cs
+bl
+944 32 m
+944 64 l
+960 64 l
+960 32 l
+944 32 l
+cs
+bl
+hf 8.0 sf
+947.2 35.2 m (16) show
+bl
+896 16 m
+896 32 l
+944 32 l
+944 16 l
+896 16 l
+cs
+bl
+hf 8.0 sf
+905.6 17.6 m (16) show
+bl
+944 16 m
+944 32 l
+960 32 l
+960 16 l
+944 16 l
+cs
+bl
+hf 8.0 sf
+947.2 17.6 m (16) show
+bl
+768 0 m
+768 16 l
+896 16 l
+896 0 l
+768 0 l
+cs
+bl
+hf 8.0 sf
+793.6 1.6 m (16) show
+bl
+896 0 m
+896 16 l
+960 16 l
+960 0 l
+896 0 l
+cs
+bl
+hf 8.0 sf
+908.8 1.6 m (16) show
+bl
+960 48 m
+960 64 l
+976 64 l
+976 48 l
+960 48 l
+cs
+bl
+hf 8.0 sf
+963.2 49.6 m (16) show
+bl
+976 48 m
+976 64 l
+992 64 l
+992 48 l
+976 48 l
+cs
+bl
+hf 8.0 sf
+979.2 49.6 m (16) show
+bl
+960 32 m
+960 48 l
+976 48 l
+976 32 l
+960 32 l
+cs
+bl
+hf 8.0 sf
+963.2 33.6 m (16) show
+bl
+976 32 m
+976 48 l
+992 48 l
+992 32 l
+976 32 l
+cs
+bl
+hf 8.0 sf
+979.2 33.6 m (16) show
+bl
+992 32 m
+992 64 l
+1008 64 l
+1008 32 l
+992 32 l
+cs
+bl
+hf 8.0 sf
+995.2 35.2 m (16) show
+bl
+960 16 m
+960 32 l
+992 32 l
+992 16 l
+960 16 l
+cs
+bl
+hf 8.0 sf
+966.4 17.6 m (16) show
+bl
+992 16 m
+992 32 l
+1008 32 l
+1008 16 l
+992 16 l
+cs
+bl
+hf 8.0 sf
+995.2 17.6 m (16) show
+bl
+1008 16 m
+1008 64 l
+1024 64 l
+1024 16 l
+1008 16 l
+cs
+bl
+hf 8.0 sf
+1011.2 20.8 m (16) show
+bl
+960 0 m
+960 16 l
+1008 16 l
+1008 0 l
+960 0 l
+cs
+bl
+hf 8.0 sf
+969.6 1.6 m (16) show
+bl
+1008 0 m
+1008 16 l
+1024 16 l
+1024 0 l
+1008 0 l
+cs
+bl
+hf 8.0 sf
+1011.2 1.6 m (16) show
+showpage
diff --git a/src/bem3d/src/laplace/clustertree.ps b/src/bem3d/src/laplace/clustertree.ps
new file mode 100644 (file)
index 0000000..a11445b
--- /dev/null
@@ -0,0 +1,521 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 500 146
+0 dup translate
+0.488281 dup scale
+0.009766 setlinewidth
+/Helvetica findfont 24.576000 scalefont setfont
+0 setgray
+/cs{closepath stroke} def
+/m{moveto} def
+/l{lineto} def
+/hf{/Helvetica findfont} def
+/sf{scalefont setfont} def
+0 -5 m 0 5 l
+  0 0 m 1024 0 l
+  1024 -5 m 1024 5 l stroke
+  hf 15.000000 sf 1 3 m (0) show
+0 25 m 0 35 l
+  0 30 m 768 30 l
+  768 25 m 768 35 l stroke
+  hf 15.000000 sf 1 33 m (1) show
+0 55 m 0 65 l
+  0 60 m 512 60 l
+  512 55 m 512 65 l stroke
+  hf 15.000000 sf 1 63 m (2) show
+0 85 m 0 95 l
+  0 90 m 256 90 l
+  256 85 m 256 95 l stroke
+  hf 15.000000 sf 1 93 m (3) show
+0 115 m 0 125 l
+  0 120 m 128 120 l
+  128 115 m 128 125 l stroke
+  hf 15.000000 sf 1 123 m (4) show
+0 145 m 0 155 l
+  0 150 m 64 150 l
+  64 145 m 64 155 l stroke
+  hf 15.000000 sf 1 153 m (5) show
+0 175 m 0 185 l
+  0 180 m 32 180 l
+  32 175 m 32 185 l stroke
+  hf 15.000000 sf 1 183 m (6) show
+0 205 m 0 215 l
+  0 210 m 16 210 l
+  16 205 m 16 215 l stroke
+  hf 8.000000 sf 1 213 m (7) show
+16 205 m 16 215 l
+  16 210 m 32 210 l
+  32 205 m 32 215 l stroke
+  hf 8.000000 sf 17 213 m (8) show
+32 175 m 32 185 l
+  32 180 m 64 180 l
+  64 175 m 64 185 l stroke
+  hf 15.000000 sf 33 183 m (9) show
+32 205 m 32 215 l
+  32 210 m 48 210 l
+  48 205 m 48 215 l stroke
+  hf 8.000000 sf 33 213 m (10) show
+48 205 m 48 215 l
+  48 210 m 64 210 l
+  64 205 m 64 215 l stroke
+  hf 8.000000 sf 49 213 m (11) show
+64 145 m 64 155 l
+  64 150 m 128 150 l
+  128 145 m 128 155 l stroke
+  hf 15.000000 sf 65 153 m (12) show
+64 175 m 64 185 l
+  64 180 m 96 180 l
+  96 175 m 96 185 l stroke
+  hf 15.000000 sf 65 183 m (13) show
+64 205 m 64 215 l
+  64 210 m 80 210 l
+  80 205 m 80 215 l stroke
+  hf 8.000000 sf 65 213 m (14) show
+80 205 m 80 215 l
+  80 210 m 96 210 l
+  96 205 m 96 215 l stroke
+  hf 8.000000 sf 81 213 m (15) show
+96 175 m 96 185 l
+  96 180 m 128 180 l
+  128 175 m 128 185 l stroke
+  hf 15.000000 sf 97 183 m (16) show
+96 205 m 96 215 l
+  96 210 m 112 210 l
+  112 205 m 112 215 l stroke
+  hf 8.000000 sf 97 213 m (17) show
+112 205 m 112 215 l
+  112 210 m 128 210 l
+  128 205 m 128 215 l stroke
+  hf 8.000000 sf 113 213 m (18) show
+128 115 m 128 125 l
+  128 120 m 256 120 l
+  256 115 m 256 125 l stroke
+  hf 15.000000 sf 129 123 m (19) show
+128 145 m 128 155 l
+  128 150 m 192 150 l
+  192 145 m 192 155 l stroke
+  hf 15.000000 sf 129 153 m (20) show
+128 175 m 128 185 l
+  128 180 m 160 180 l
+  160 175 m 160 185 l stroke
+  hf 15.000000 sf 129 183 m (21) show
+128 205 m 128 215 l
+  128 210 m 144 210 l
+  144 205 m 144 215 l stroke
+  hf 8.000000 sf 129 213 m (22) show
+144 205 m 144 215 l
+  144 210 m 160 210 l
+  160 205 m 160 215 l stroke
+  hf 8.000000 sf 145 213 m (23) show
+160 175 m 160 185 l
+  160 180 m 192 180 l
+  192 175 m 192 185 l stroke
+  hf 15.000000 sf 161 183 m (24) show
+160 205 m 160 215 l
+  160 210 m 176 210 l
+  176 205 m 176 215 l stroke
+  hf 8.000000 sf 161 213 m (25) show
+176 205 m 176 215 l
+  176 210 m 192 210 l
+  192 205 m 192 215 l stroke
+  hf 8.000000 sf 177 213 m (26) show
+192 145 m 192 155 l
+  192 150 m 256 150 l
+  256 145 m 256 155 l stroke
+  hf 15.000000 sf 193 153 m (27) show
+192 175 m 192 185 l
+  192 180 m 224 180 l
+  224 175 m 224 185 l stroke
+  hf 15.000000 sf 193 183 m (28) show
+192 205 m 192 215 l
+  192 210 m 208 210 l
+  208 205 m 208 215 l stroke
+  hf 8.000000 sf 193 213 m (29) show
+208 205 m 208 215 l
+  208 210 m 224 210 l
+  224 205 m 224 215 l stroke
+  hf 8.000000 sf 209 213 m (30) show
+224 175 m 224 185 l
+  224 180 m 256 180 l
+  256 175 m 256 185 l stroke
+  hf 15.000000 sf 225 183 m (31) show
+224 205 m 224 215 l
+  224 210 m 240 210 l
+  240 205 m 240 215 l stroke
+  hf 8.000000 sf 225 213 m (32) show
+240 205 m 240 215 l
+  240 210 m 256 210 l
+  256 205 m 256 215 l stroke
+  hf 8.000000 sf 241 213 m (33) show
+256 85 m 256 95 l
+  256 90 m 512 90 l
+  512 85 m 512 95 l stroke
+  hf 15.000000 sf 257 93 m (34) show
+256 115 m 256 125 l
+  256 120 m 384 120 l
+  384 115 m 384 125 l stroke
+  hf 15.000000 sf 257 123 m (35) show
+256 145 m 256 155 l
+  256 150 m 320 150 l
+  320 145 m 320 155 l stroke
+  hf 15.000000 sf 257 153 m (36) show
+256 175 m 256 185 l
+  256 180 m 288 180 l
+  288 175 m 288 185 l stroke
+  hf 15.000000 sf 257 183 m (37) show
+256 205 m 256 215 l
+  256 210 m 272 210 l
+  272 205 m 272 215 l stroke
+  hf 8.000000 sf 257 213 m (38) show
+272 205 m 272 215 l
+  272 210 m 288 210 l
+  288 205 m 288 215 l stroke
+  hf 8.000000 sf 273 213 m (39) show
+288 175 m 288 185 l
+  288 180 m 320 180 l
+  320 175 m 320 185 l stroke
+  hf 15.000000 sf 289 183 m (40) show
+288 205 m 288 215 l
+  288 210 m 304 210 l
+  304 205 m 304 215 l stroke
+  hf 8.000000 sf 289 213 m (41) show
+304 205 m 304 215 l
+  304 210 m 320 210 l
+  320 205 m 320 215 l stroke
+  hf 8.000000 sf 305 213 m (42) show
+320 145 m 320 155 l
+  320 150 m 384 150 l
+  384 145 m 384 155 l stroke
+  hf 15.000000 sf 321 153 m (43) show
+320 175 m 320 185 l
+  320 180 m 352 180 l
+  352 175 m 352 185 l stroke
+  hf 15.000000 sf 321 183 m (44) show
+320 205 m 320 215 l
+  320 210 m 336 210 l
+  336 205 m 336 215 l stroke
+  hf 8.000000 sf 321 213 m (45) show
+336 205 m 336 215 l
+  336 210 m 352 210 l
+  352 205 m 352 215 l stroke
+  hf 8.000000 sf 337 213 m (46) show
+352 175 m 352 185 l
+  352 180 m 384 180 l
+  384 175 m 384 185 l stroke
+  hf 15.000000 sf 353 183 m (47) show
+352 205 m 352 215 l
+  352 210 m 368 210 l
+  368 205 m 368 215 l stroke
+  hf 8.000000 sf 353 213 m (48) show
+368 205 m 368 215 l
+  368 210 m 384 210 l
+  384 205 m 384 215 l stroke
+  hf 8.000000 sf 369 213 m (49) show
+384 115 m 384 125 l
+  384 120 m 512 120 l
+  512 115 m 512 125 l stroke
+  hf 15.000000 sf 385 123 m (50) show
+384 145 m 384 155 l
+  384 150 m 448 150 l
+  448 145 m 448 155 l stroke
+  hf 15.000000 sf 385 153 m (51) show
+384 175 m 384 185 l
+  384 180 m 416 180 l
+  416 175 m 416 185 l stroke
+  hf 15.000000 sf 385 183 m (52) show
+384 205 m 384 215 l
+  384 210 m 400 210 l
+  400 205 m 400 215 l stroke
+  hf 8.000000 sf 385 213 m (53) show
+400 205 m 400 215 l
+  400 210 m 416 210 l
+  416 205 m 416 215 l stroke
+  hf 8.000000 sf 401 213 m (54) show
+416 175 m 416 185 l
+  416 180 m 448 180 l
+  448 175 m 448 185 l stroke
+  hf 15.000000 sf 417 183 m (55) show
+416 205 m 416 215 l
+  416 210 m 432 210 l
+  432 205 m 432 215 l stroke
+  hf 8.000000 sf 417 213 m (56) show
+432 205 m 432 215 l
+  432 210 m 448 210 l
+  448 205 m 448 215 l stroke
+  hf 8.000000 sf 433 213 m (57) show
+448 145 m 448 155 l
+  448 150 m 512 150 l
+  512 145 m 512 155 l stroke
+  hf 15.000000 sf 449 153 m (58) show
+448 175 m 448 185 l
+  448 180 m 480 180 l
+  480 175 m 480 185 l stroke
+  hf 15.000000 sf 449 183 m (59) show
+448 205 m 448 215 l
+  448 210 m 464 210 l
+  464 205 m 464 215 l stroke
+  hf 8.000000 sf 449 213 m (60) show
+464 205 m 464 215 l
+  464 210 m 480 210 l
+  480 205 m 480 215 l stroke
+  hf 8.000000 sf 465 213 m (61) show
+480 175 m 480 185 l
+  480 180 m 512 180 l
+  512 175 m 512 185 l stroke
+  hf 15.000000 sf 481 183 m (62) show
+480 205 m 480 215 l
+  480 210 m 496 210 l
+  496 205 m 496 215 l stroke
+  hf 8.000000 sf 481 213 m (63) show
+496 205 m 496 215 l
+  496 210 m 512 210 l
+  512 205 m 512 215 l stroke
+  hf 8.000000 sf 497 213 m (64) show
+512 55 m 512 65 l
+  512 60 m 768 60 l
+  768 55 m 768 65 l stroke
+  hf 15.000000 sf 513 63 m (65) show
+512 85 m 512 95 l
+  512 90 m 704 90 l
+  704 85 m 704 95 l stroke
+  hf 15.000000 sf 513 93 m (66) show
+512 115 m 512 125 l
+  512 120 m 640 120 l
+  640 115 m 640 125 l stroke
+  hf 15.000000 sf 513 123 m (67) show
+512 145 m 512 155 l
+  512 150 m 576 150 l
+  576 145 m 576 155 l stroke
+  hf 15.000000 sf 513 153 m (68) show
+512 175 m 512 185 l
+  512 180 m 544 180 l
+  544 175 m 544 185 l stroke
+  hf 15.000000 sf 513 183 m (69) show
+512 205 m 512 215 l
+  512 210 m 528 210 l
+  528 205 m 528 215 l stroke
+  hf 8.000000 sf 513 213 m (70) show
+528 205 m 528 215 l
+  528 210 m 544 210 l
+  544 205 m 544 215 l stroke
+  hf 8.000000 sf 529 213 m (71) show
+544 175 m 544 185 l
+  544 180 m 576 180 l
+  576 175 m 576 185 l stroke
+  hf 15.000000 sf 545 183 m (72) show
+544 205 m 544 215 l
+  544 210 m 560 210 l
+  560 205 m 560 215 l stroke
+  hf 8.000000 sf 545 213 m (73) show
+560 205 m 560 215 l
+  560 210 m 576 210 l
+  576 205 m 576 215 l stroke
+  hf 8.000000 sf 561 213 m (74) show
+576 145 m 576 155 l
+  576 150 m 640 150 l
+  640 145 m 640 155 l stroke
+  hf 15.000000 sf 577 153 m (75) show
+576 175 m 576 185 l
+  576 180 m 608 180 l
+  608 175 m 608 185 l stroke
+  hf 15.000000 sf 577 183 m (76) show
+576 205 m 576 215 l
+  576 210 m 592 210 l
+  592 205 m 592 215 l stroke
+  hf 8.000000 sf 577 213 m (77) show
+592 205 m 592 215 l
+  592 210 m 608 210 l
+  608 205 m 608 215 l stroke
+  hf 8.000000 sf 593 213 m (78) show
+608 175 m 608 185 l
+  608 180 m 640 180 l
+  640 175 m 640 185 l stroke
+  hf 15.000000 sf 609 183 m (79) show
+608 205 m 608 215 l
+  608 210 m 624 210 l
+  624 205 m 624 215 l stroke
+  hf 8.000000 sf 609 213 m (80) show
+624 205 m 624 215 l
+  624 210 m 640 210 l
+  640 205 m 640 215 l stroke
+  hf 8.000000 sf 625 213 m (81) show
+640 115 m 640 125 l
+  640 120 m 704 120 l
+  704 115 m 704 125 l stroke
+  hf 15.000000 sf 641 123 m (82) show
+640 145 m 640 155 l
+  640 150 m 688 150 l
+  688 145 m 688 155 l stroke
+  hf 15.000000 sf 641 153 m (83) show
+640 175 m 640 185 l
+  640 180 m 672 180 l
+  672 175 m 672 185 l stroke
+  hf 15.000000 sf 641 183 m (84) show
+640 205 m 640 215 l
+  640 210 m 656 210 l
+  656 205 m 656 215 l stroke
+  hf 8.000000 sf 641 213 m (85) show
+656 205 m 656 215 l
+  656 210 m 672 210 l
+  672 205 m 672 215 l stroke
+  hf 8.000000 sf 657 213 m (86) show
+672 175 m 672 185 l
+  672 180 m 688 180 l
+  688 175 m 688 185 l stroke
+  hf 8.000000 sf 673 183 m (87) show
+688 145 m 688 155 l
+  688 150 m 704 150 l
+  704 145 m 704 155 l stroke
+  hf 8.000000 sf 689 153 m (88) show
+704 85 m 704 95 l
+  704 90 m 768 90 l
+  768 85 m 768 95 l stroke
+  hf 15.000000 sf 705 93 m (89) show
+704 115 m 704 125 l
+  704 120 m 752 120 l
+  752 115 m 752 125 l stroke
+  hf 15.000000 sf 705 123 m (90) show
+704 145 m 704 155 l
+  704 150 m 736 150 l
+  736 145 m 736 155 l stroke
+  hf 15.000000 sf 705 153 m (91) show
+704 175 m 704 185 l
+  704 180 m 720 180 l
+  720 175 m 720 185 l stroke
+  hf 8.000000 sf 705 183 m (92) show
+720 175 m 720 185 l
+  720 180 m 736 180 l
+  736 175 m 736 185 l stroke
+  hf 8.000000 sf 721 183 m (93) show
+736 145 m 736 155 l
+  736 150 m 752 150 l
+  752 145 m 752 155 l stroke
+  hf 8.000000 sf 737 153 m (94) show
+752 115 m 752 125 l
+  752 120 m 768 120 l
+  768 115 m 768 125 l stroke
+  hf 8.000000 sf 753 123 m (95) show
+768 25 m 768 35 l
+  768 30 m 1024 30 l
+  1024 25 m 1024 35 l stroke
+  hf 15.000000 sf 769 33 m (96) show
+768 55 m 768 65 l
+  768 60 m 960 60 l
+  960 55 m 960 65 l stroke
+  hf 15.000000 sf 769 63 m (97) show
+768 85 m 768 95 l
+  768 90 m 896 90 l
+  896 85 m 896 95 l stroke
+  hf 15.000000 sf 769 93 m (98) show
+768 115 m 768 125 l
+  768 120 m 832 120 l
+  832 115 m 832 125 l stroke
+  hf 15.000000 sf 769 123 m (99) show
+768 145 m 768 155 l
+  768 150 m 800 150 l
+  800 145 m 800 155 l stroke
+  hf 15.000000 sf 769 153 m (100) show
+768 175 m 768 185 l
+  768 180 m 784 180 l
+  784 175 m 784 185 l stroke
+  hf 8.000000 sf 769 183 m (101) show
+784 175 m 784 185 l
+  784 180 m 800 180 l
+  800 175 m 800 185 l stroke
+  hf 8.000000 sf 785 183 m (102) show
+800 145 m 800 155 l
+  800 150 m 832 150 l
+  832 145 m 832 155 l stroke
+  hf 15.000000 sf 801 153 m (103) show
+800 175 m 800 185 l
+  800 180 m 816 180 l
+  816 175 m 816 185 l stroke
+  hf 8.000000 sf 801 183 m (104) show
+816 175 m 816 185 l
+  816 180 m 832 180 l
+  832 175 m 832 185 l stroke
+  hf 8.000000 sf 817 183 m (105) show
+832 115 m 832 125 l
+  832 120 m 896 120 l
+  896 115 m 896 125 l stroke
+  hf 15.000000 sf 833 123 m (106) show
+832 145 m 832 155 l
+  832 150 m 864 150 l
+  864 145 m 864 155 l stroke
+  hf 15.000000 sf 833 153 m (107) show
+832 175 m 832 185 l
+  832 180 m 848 180 l
+  848 175 m 848 185 l stroke
+  hf 8.000000 sf 833 183 m (108) show
+848 175 m 848 185 l
+  848 180 m 864 180 l
+  864 175 m 864 185 l stroke
+  hf 8.000000 sf 849 183 m (109) show
+864 145 m 864 155 l
+  864 150 m 896 150 l
+  896 145 m 896 155 l stroke
+  hf 15.000000 sf 865 153 m (110) show
+864 175 m 864 185 l
+  864 180 m 880 180 l
+  880 175 m 880 185 l stroke
+  hf 8.000000 sf 865 183 m (111) show
+880 175 m 880 185 l
+  880 180 m 896 180 l
+  896 175 m 896 185 l stroke
+  hf 8.000000 sf 881 183 m (112) show
+896 85 m 896 95 l
+  896 90 m 960 90 l
+  960 85 m 960 95 l stroke
+  hf 15.000000 sf 897 93 m (113) show
+896 115 m 896 125 l
+  896 120 m 944 120 l
+  944 115 m 944 125 l stroke
+  hf 15.000000 sf 897 123 m (114) show
+896 145 m 896 155 l
+  896 150 m 928 150 l
+  928 145 m 928 155 l stroke
+  hf 15.000000 sf 897 153 m (115) show
+896 175 m 896 185 l
+  896 180 m 912 180 l
+  912 175 m 912 185 l stroke
+  hf 8.000000 sf 897 183 m (116) show
+912 175 m 912 185 l
+  912 180 m 928 180 l
+  928 175 m 928 185 l stroke
+  hf 8.000000 sf 913 183 m (117) show
+928 145 m 928 155 l
+  928 150 m 944 150 l
+  944 145 m 944 155 l stroke
+  hf 8.000000 sf 929 153 m (118) show
+944 115 m 944 125 l
+  944 120 m 960 120 l
+  960 115 m 960 125 l stroke
+  hf 8.000000 sf 945 123 m (119) show
+960 55 m 960 65 l
+  960 60 m 1024 60 l
+  1024 55 m 1024 65 l stroke
+  hf 15.000000 sf 961 63 m (120) show
+960 85 m 960 95 l
+  960 90 m 1008 90 l
+  1008 85 m 1008 95 l stroke
+  hf 15.000000 sf 961 93 m (121) show
+960 115 m 960 125 l
+  960 120 m 992 120 l
+  992 115 m 992 125 l stroke
+  hf 15.000000 sf 961 123 m (122) show
+960 145 m 960 155 l
+  960 150 m 976 150 l
+  976 145 m 976 155 l stroke
+  hf 8.000000 sf 961 153 m (123) show
+976 145 m 976 155 l
+  976 150 m 992 150 l
+  992 145 m 992 155 l stroke
+  hf 8.000000 sf 977 153 m (124) show
+992 115 m 992 125 l
+  992 120 m 1008 120 l
+  1008 115 m 1008 125 l stroke
+  hf 8.000000 sf 993 123 m (125) show
+1008 85 m 1008 95 l
+  1008 90 m 1024 90 l
+  1024 85 m 1024 95 l stroke
+  hf 8.000000 sf 1009 93 m (126) show
+showpage
diff --git a/src/bem3d/src/laplace/clustertree.txt b/src/bem3d/src/laplace/clustertree.txt
new file mode 100644 (file)
index 0000000..402b83b
--- /dev/null
@@ -0,0 +1,1279 @@
+1024 1024 127
+0
+2 0 1024
+4 0 768
+6 0 512
+8 0 256
+10 0 128
+12 0 64
+14 0 32
+14 0 16
+14 16 16
+16 32 32
+16 32 16
+16 48 16
+18 64 64
+20 64 32
+20 64 16
+20 80 16
+22 96 32
+22 96 16
+22 112 16
+24 128 128
+26 128 64
+28 128 32
+28 128 16
+28 144 16
+30 160 32
+30 160 16
+30 176 16
+32 192 64
+34 192 32
+34 192 16
+34 208 16
+36 224 32
+36 224 16
+36 240 16
+38 256 256
+40 256 128
+42 256 64
+44 256 32
+44 256 16
+44 272 16
+46 288 32
+46 288 16
+46 304 16
+48 320 64
+50 320 32
+50 320 16
+50 336 16
+52 352 32
+52 352 16
+52 368 16
+54 384 128
+56 384 64
+58 384 32
+58 384 16
+58 400 16
+60 416 32
+60 416 16
+60 432 16
+62 448 64
+64 448 32
+64 448 16
+64 464 16
+66 480 32
+66 480 16
+66 496 16
+68 512 256
+70 512 192
+72 512 128
+74 512 64
+76 512 32
+76 512 16
+76 528 16
+78 544 32
+78 544 16
+78 560 16
+80 576 64
+82 576 32
+82 576 16
+82 592 16
+84 608 32
+84 608 16
+84 624 16
+86 640 64
+88 640 48
+90 640 32
+90 640 16
+90 656 16
+90 672 16
+90 688 16
+92 704 64
+94 704 48
+96 704 32
+96 704 16
+96 720 16
+96 736 16
+96 752 16
+98 768 256
+100 768 192
+102 768 128
+104 768 64
+106 768 32
+106 768 16
+106 784 16
+108 800 32
+108 800 16
+108 816 16
+110 832 64
+112 832 32
+112 832 16
+112 848 16
+114 864 32
+114 864 16
+114 880 16
+116 896 64
+118 896 48
+120 896 32
+120 896 16
+120 912 16
+120 928 16
+120 944 16
+122 960 64
+124 960 48
+126 960 32
+126 960 16
+126 976 16
+126 992 16
+126 1008 16
+1
+96
+2
+65
+3
+34
+4
+19
+5
+12
+6
+9
+7
+8
+10
+11
+13
+16
+14
+15
+17
+18
+20
+27
+21
+24
+22
+23
+25
+26
+28
+31
+29
+30
+32
+33
+35
+50
+36
+43
+37
+40
+38
+39
+41
+42
+44
+47
+45
+46
+48
+49
+51
+58
+52
+55
+53
+54
+56
+57
+59
+62
+60
+61
+63
+64
+66
+89
+67
+82
+68
+75
+69
+72
+70
+71
+73
+74
+76
+79
+77
+78
+80
+81
+83
+88
+84
+87
+85
+86
+90
+95
+91
+94
+92
+93
+97
+120
+98
+113
+99
+106
+100
+103
+101
+102
+104
+105
+107
+110
+108
+109
+111
+112
+114
+119
+115
+118
+116
+117
+121
+126
+122
+125
+123
+124
+1023
+1022
+1021
+1020
+1019
+1018
+1017
+1016
+1015
+1014
+1013
+1012
+992
+993
+994
+995
+1007
+1006
+1005
+1004
+1003
+1002
+1001
+1000
+999
+998
+997
+996
+1008
+1009
+1010
+1011
+991
+990
+989
+988
+987
+986
+985
+984
+983
+982
+981
+980
+899
+898
+897
+896
+976
+977
+978
+979
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+975
+974
+973
+972
+971
+970
+969
+968
+967
+966
+965
+964
+915
+914
+913
+912
+960
+961
+962
+963
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+947
+946
+945
+944
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+931
+930
+929
+928
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+895
+894
+893
+892
+891
+890
+889
+888
+887
+886
+885
+884
+864
+865
+866
+867
+879
+878
+877
+876
+875
+874
+873
+872
+871
+870
+869
+868
+880
+881
+882
+883
+863
+862
+861
+860
+859
+858
+857
+856
+855
+854
+853
+852
+512
+513
+514
+515
+527
+526
+525
+524
+523
+522
+521
+520
+519
+518
+517
+516
+848
+849
+850
+851
+531
+530
+529
+528
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+835
+834
+833
+832
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+563
+562
+561
+560
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+547
+546
+545
+544
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+831
+830
+829
+828
+827
+826
+825
+824
+823
+822
+821
+820
+800
+801
+802
+803
+815
+814
+813
+812
+811
+810
+809
+808
+807
+806
+805
+804
+816
+817
+818
+819
+799
+798
+797
+796
+795
+794
+793
+792
+791
+790
+789
+788
+576
+577
+578
+579
+591
+590
+589
+588
+587
+586
+585
+584
+583
+582
+581
+580
+784
+785
+786
+787
+595
+594
+593
+592
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+771
+770
+769
+768
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+627
+626
+625
+624
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+611
+610
+609
+608
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+703
+702
+701
+700
+699
+698
+697
+696
+695
+694
+693
+692
+672
+673
+674
+675
+687
+686
+685
+684
+683
+682
+681
+680
+679
+678
+677
+676
+688
+689
+690
+691
+671
+670
+669
+668
+667
+666
+665
+664
+663
+662
+661
+660
+707
+706
+705
+704
+656
+657
+658
+659
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+655
+654
+653
+652
+651
+650
+649
+648
+647
+646
+645
+644
+723
+722
+721
+720
+640
+641
+642
+643
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+755
+754
+753
+752
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+739
+738
+737
+736
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+511
+510
+509
+508
+507
+506
+505
+504
+503
+502
+501
+500
+480
+481
+482
+483
+495
+494
+493
+492
+491
+490
+489
+488
+487
+486
+485
+484
+496
+497
+498
+499
+479
+478
+477
+476
+475
+474
+473
+472
+471
+470
+469
+468
+387
+386
+385
+384
+464
+465
+466
+467
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+463
+462
+461
+460
+459
+458
+457
+456
+455
+454
+453
+452
+403
+402
+401
+400
+448
+449
+450
+451
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+435
+434
+433
+432
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+419
+418
+417
+416
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+383
+382
+381
+380
+379
+378
+377
+376
+375
+374
+373
+372
+352
+353
+354
+355
+367
+366
+365
+364
+363
+362
+361
+360
+359
+358
+357
+356
+368
+369
+370
+371
+351
+350
+349
+348
+347
+346
+345
+344
+343
+342
+341
+340
+339
+338
+337
+336
+335
+334
+333
+332
+331
+330
+329
+328
+327
+326
+325
+324
+323
+322
+321
+320
+319
+318
+317
+316
+315
+314
+313
+312
+311
+310
+309
+308
+288
+289
+290
+291
+303
+302
+301
+300
+299
+298
+297
+296
+295
+294
+293
+292
+304
+305
+306
+307
+287
+286
+285
+284
+283
+282
+281
+280
+279
+278
+277
+276
+275
+274
+273
+272
+271
+270
+269
+268
+267
+266
+265
+264
+263
+262
+261
+260
+259
+258
+257
+256
+255
+254
+253
+252
+251
+250
+249
+248
+247
+246
+245
+244
+224
+225
+226
+227
+239
+238
+237
+236
+235
+234
+233
+232
+231
+230
+229
+228
+240
+241
+242
+243
+223
+222
+221
+220
+219
+218
+217
+216
+215
+214
+213
+212
+131
+130
+129
+128
+208
+209
+210
+211
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+207
+206
+205
+204
+203
+202
+201
+200
+199
+198
+197
+196
+147
+146
+145
+144
+192
+193
+194
+195
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+179
+178
+177
+176
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+163
+162
+161
+160
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+127
+126
+125
+124
+123
+122
+121
+120
+119
+118
+117
+116
+96
+97
+98
+99
+111
+110
+109
+108
+107
+106
+105
+104
+103
+102
+101
+100
+112
+113
+114
+115
+95
+94
+93
+92
+91
+90
+89
+88
+87
+86
+85
+84
+83
+82
+81
+80
+79
+78
+77
+76
+75
+74
+73
+72
+71
+70
+69
+68
+67
+66
+65
+64
+63
+62
+61
+60
+59
+58
+57
+56
+55
+54
+53
+52
+32
+33
+34
+35
+47
+46
+45
+44
+43
+42
+41
+40
+39
+38
+37
+36
+48
+49
+50
+51
+31
+30
+29
+28
+27
+26
+25
+24
+23
+22
+21
+20
+19
+18
+17
+16
+15
+14
+13
+12
+11
+10
+9
+8
+7
+6
+5
+4
+3
+2
+1
+0
index 77ecc079750cc3aca13b99ffd5c57f22b84d491a..83510f200b4e3573091362fd23e5060435073a9f 100644 (file)
@@ -1,30 +1,25 @@
-#include "../boundary_mesh/Mesh.hpp"
-#include "../boundary_mesh/mixin/LoadingObj.hpp"
-#include "../boundary_mesh/mixin/ExportingObj.hpp"
-#include "../boundary_mesh/mixin/RefiningAdaptivly.hpp"
-#include "../boundary_mesh/mixin/RefiningUniformly.hpp"
-#include "../boundary_mesh/layer/Marker.hpp"
+#include "../hilbert.hpp"
+#include "../boundary_mesh/FlexibleMesh.hpp"
 #include "../spaces/P0Space.hpp"
 #include "SimpleLayerPotential.hpp"
 
 using namespace boundary_mesh;
 using namespace space;
 using namespace laplace;
-typedef mixin::LoadingObj<
-        mixin::ExportingObj<
-       mixin::RefiningAdaptivly <
-       mixin::RefiningUniformly <
-        Mesh<> > > > >
-        ObjMesh;
 
 int main()
 {
-  const ObjMesh::LoadingObj m("test_small.obj");
+  const BoundaryMesh m = BoundaryMesh::Alg::loadFromObj("test_small.obj");
   std::cerr << "coarse mesh has " << m.getNumberOfFaces() << " faces" << std::endl;
   clock_t commence, complete;
 
   commence = clock();
-  ObjMesh refined = m.refineUniform().refineUniform().refineUniform().refineUniform();
+  const BoundaryMesh refined =
+      BoundaryMesh::Alg::refineUniformly(
+      BoundaryMesh::Alg::refineUniformly(
+        BoundaryMesh::Alg::refineUniformly(
+          BoundaryMesh::Alg::refineUniformly(
+            BoundaryMesh::Alg::refineUniformly( m ) ) ) ));
   complete = clock();
   long lTime = (complete-commence);
   std::cerr << "fine mesh has " << refined.getNumberOfFaces() << " faces" << std::endl;
@@ -38,13 +33,6 @@ int main()
   std::cerr << "Time for setting up space: "
             << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
 
-//  commence = clock();
-//  s.createClusterFactory();
-//  complete = clock();
-//  lTime = (complete-commence);
-//  std::cerr << "Time for setting up cluster factory: "
-//            << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
-
   commence = clock();
   SimpleLayerPotential V(s);
   complete = clock();
@@ -52,14 +40,19 @@ int main()
   std::cerr << "Time for setting up Simple Layer Potential: "
             << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
 
-  double rhs[s.getNumberOfElements()];
+  std::vector< double >rhs( s.getNumberOfElements(), 0. );
   for ( int i=0; i<s.getNumberOfElements(); ++i ){
-    const BoundaryMesh::traits::Face &f1 = s[i].getSupport();
-    rhs[i] = f1.area();
+    const BoundaryMesh::Face &f1 = s[i].getSupport();
+    rhs[i] = f1.computeArea();
   }
 
-//  V.show();
-  double sol = V.solve(rhs);
+  commence = clock();
+  std::vector< double > solution = V.solveGMRes(rhs);
+  complete = clock();
+  lTime = (complete-commence);
+  std::cerr << "Time for solving: "
+    << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
 
   return 0;
 }
+
diff --git a/src/bem3d/src/laplace/testLaplace b/src/bem3d/src/laplace/testLaplace
new file mode 100755 (executable)
index 0000000..c421623
Binary files /dev/null and b/src/bem3d/src/laplace/testLaplace differ
diff --git a/src/bem3d/src/mesh_explorer/Makefile b/src/bem3d/src/mesh_explorer/Makefile
new file mode 100644 (file)
index 0000000..e75669d
--- /dev/null
@@ -0,0 +1,329 @@
+#############################################################################
+# Makefile for building: mesh_explorer
+# Generated by qmake (2.01a) (Qt 4.6.3) on: Do. Apr 21 22:00:06 2011
+# Project:  mesh_explorer.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile mesh_explorer.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+DEFINES       = -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
+CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
+INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I. -I/usr/X11R6/include -I.
+LINK          = g++
+LFLAGS        = -Wl,-O1
+LIBS          = $(SUBLIBS)  -L/usr/lib -L/usr/X11R6/lib -lboost_regex -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread 
+AR            = ar cqs
+RANLIB        = 
+QMAKE         = /usr/bin/qmake
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+COPY          = cp -f
+SED           = sed
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+STRIP         = strip
+INSTALL_FILE  = install -m 644 -p
+INSTALL_DIR   = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR   = ./
+
+####### Files
+
+SOURCES       = mesh_explorer.cpp \
+               MeshWidget.cpp \
+               ../boundary_mesh/exception/DispatchIdNotSet.cpp \
+               ../boundary_mesh/Face.cpp \
+               ../boundary_mesh/exception/NoMatchingFaceType.cpp \
+               ../generic/GenericVector.cpp moc_MeshWidget.cpp
+OBJECTS       = mesh_explorer.o \
+               MeshWidget.o \
+               DispatchIdNotSet.o \
+               Face.o \
+               NoMatchingFaceType.o \
+               GenericVector.o \
+               moc_MeshWidget.o
+DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
+               /usr/share/qt4/mkspecs/common/unix.conf \
+               /usr/share/qt4/mkspecs/common/linux.conf \
+               /usr/share/qt4/mkspecs/qconfig.pri \
+               /usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /usr/share/qt4/mkspecs/features/qt_config.prf \
+               /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /usr/share/qt4/mkspecs/features/default_pre.prf \
+               /usr/share/qt4/mkspecs/features/release.prf \
+               /usr/share/qt4/mkspecs/features/default_post.prf \
+               /usr/share/qt4/mkspecs/features/warn_on.prf \
+               /usr/share/qt4/mkspecs/features/qt.prf \
+               /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+               /usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /usr/share/qt4/mkspecs/features/moc.prf \
+               /usr/share/qt4/mkspecs/features/resources.prf \
+               /usr/share/qt4/mkspecs/features/uic.prf \
+               /usr/share/qt4/mkspecs/features/yacc.prf \
+               /usr/share/qt4/mkspecs/features/lex.prf \
+               /usr/share/qt4/mkspecs/features/include_source_dir.prf \
+               mesh_explorer.pro
+QMAKE_TARGET  = mesh_explorer
+DESTDIR       = 
+TARGET        = mesh_explorer
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET):  $(OBJECTS)  
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: mesh_explorer.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+               /usr/share/qt4/mkspecs/common/unix.conf \
+               /usr/share/qt4/mkspecs/common/linux.conf \
+               /usr/share/qt4/mkspecs/qconfig.pri \
+               /usr/share/qt4/mkspecs/features/qt_functions.prf \
+               /usr/share/qt4/mkspecs/features/qt_config.prf \
+               /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+               /usr/share/qt4/mkspecs/features/default_pre.prf \
+               /usr/share/qt4/mkspecs/features/release.prf \
+               /usr/share/qt4/mkspecs/features/default_post.prf \
+               /usr/share/qt4/mkspecs/features/warn_on.prf \
+               /usr/share/qt4/mkspecs/features/qt.prf \
+               /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+               /usr/share/qt4/mkspecs/features/unix/thread.prf \
+               /usr/share/qt4/mkspecs/features/moc.prf \
+               /usr/share/qt4/mkspecs/features/resources.prf \
+               /usr/share/qt4/mkspecs/features/uic.prf \
+               /usr/share/qt4/mkspecs/features/yacc.prf \
+               /usr/share/qt4/mkspecs/features/lex.prf \
+               /usr/share/qt4/mkspecs/features/include_source_dir.prf \
+               /usr/lib/libQtOpenGL.prl \
+               /usr/lib/libQtGui.prl \
+               /usr/lib/libQtCore.prl
+       $(QMAKE) -unix -o Makefile mesh_explorer.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/opengl.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/share/qt4/mkspecs/features/include_source_dir.prf:
+/usr/lib/libQtOpenGL.prl:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake:  FORCE
+       @$(QMAKE) -unix -o Makefile mesh_explorer.pro
+
+dist: 
+       @$(CHK_DIR_EXISTS) .tmp/mesh_explorer1.0.0 || $(MKDIR) .tmp/mesh_explorer1.0.0 
+       $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/mesh_explorer1.0.0/ && $(COPY_FILE) --parents Mesh.hpp MeshWidget.hpp ../boundary_mesh/FlexibleMesh.hpp ../boundary_mesh/FaceDispatch.hpp ../generic/Singleton.hpp ../generic/Singleton_tmpl.cpp ../boundary_mesh/exception/DispatchIdNotSet.hpp ../boundary_mesh/FaceDispatch_tmpl.cpp ../boundary_mesh/Face.hpp ../boundary_mesh/types.hpp ../boundary_mesh/exception.hpp ../boundary_mesh/exception/NoMatchingFaceType.hpp ../boundary_mesh/Face_tmpl.cpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/algorithm/HandleObj.hpp ../boundary_mesh/algorithm/HandleObj_tmpl.cpp ../boundary_mesh/algorithm/RefineUniformly.hpp ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp ../boundary_mesh/FlexibleMesh_tmpl.cpp .tmp/mesh_explorer1.0.0/ && $(COPY_FILE) --parents mesh_explorer.cpp MeshWidget.cpp ../boundary_mesh/exception/DispatchIdNotSet.cpp ../boundary_mesh/Face.cpp ../boundary_mesh/exception/NoMatchingFaceType.cpp ../generic/GenericVector.cpp .tmp/mesh_explorer1.0.0/ && (cd `dirname .tmp/mesh_explorer1.0.0` && $(TAR) mesh_explorer1.0.0.tar mesh_explorer1.0.0 && $(COMPRESS) mesh_explorer1.0.0.tar) && $(MOVE) `dirname .tmp/mesh_explorer1.0.0`/mesh_explorer1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/mesh_explorer1.0.0
+
+
+clean:compiler_clean 
+       -$(DEL_FILE) $(OBJECTS)
+       -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+       -$(DEL_FILE) $(TARGET) 
+       -$(DEL_FILE) Makefile
+
+
+check: first
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: moc_MeshWidget.cpp
+compiler_moc_header_clean:
+       -$(DEL_FILE) moc_MeshWidget.cpp
+moc_MeshWidget.cpp: ../boundary_mesh/FlexibleMesh.hpp \
+               ../boundary_mesh/FaceDispatch.hpp \
+               ../generic/Singleton.hpp \
+               ../generic/Singleton_tmpl.cpp \
+               ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+               ../boundary_mesh/FaceDispatch_tmpl.cpp \
+               ../boundary_mesh/Face.hpp \
+               ../boundary_mesh/types.hpp \
+               ../boundary_mesh/exception.hpp \
+               ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+               ../boundary_mesh/Face_tmpl.cpp \
+               ../boundary_mesh/HalfEdge.hpp \
+               ../boundary_mesh/HalfEdge_tmpl.cpp \
+               ../boundary_mesh/Vertex.hpp \
+               ../generic/GenericVector.hpp \
+               ../generic/GenericVector_tmpl.cpp \
+               ../boundary_mesh/Vertex_tmpl.cpp \
+               ../boundary_mesh/Mesh.hpp \
+               ../boundary_mesh/MeshBuilder.hpp \
+               ../boundary_mesh/MeshBuilder_tmpl.cpp \
+               ../boundary_mesh/Mesh.cpp \
+               ../boundary_mesh/algorithm/HandleObj.hpp \
+               ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+               ../boundary_mesh/algorithm/RefineUniformly.hpp \
+               ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+               ../boundary_mesh/FlexibleMesh_tmpl.cpp \
+               MeshWidget.hpp
+       /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) MeshWidget.hpp -o moc_MeshWidget.cpp
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+       -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all:
+compiler_uic_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean 
+
+####### Compile
+
+mesh_explorer.o: mesh_explorer.cpp MeshWidget.hpp \
+               ../boundary_mesh/FlexibleMesh.hpp \
+               ../boundary_mesh/FaceDispatch.hpp \
+               ../generic/Singleton.hpp \
+               ../generic/Singleton_tmpl.cpp \
+               ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+               ../boundary_mesh/FaceDispatch_tmpl.cpp \
+               ../boundary_mesh/Face.hpp \
+               ../boundary_mesh/types.hpp \
+               ../boundary_mesh/exception.hpp \
+               ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+               ../boundary_mesh/Face_tmpl.cpp \
+               ../boundary_mesh/HalfEdge.hpp \
+               ../boundary_mesh/HalfEdge_tmpl.cpp \
+               ../boundary_mesh/Vertex.hpp \
+               ../generic/GenericVector.hpp \
+               ../generic/GenericVector_tmpl.cpp \
+               ../boundary_mesh/Vertex_tmpl.cpp \
+               ../boundary_mesh/Mesh.hpp \
+               ../boundary_mesh/MeshBuilder.hpp \
+               ../boundary_mesh/MeshBuilder_tmpl.cpp \
+               ../boundary_mesh/Mesh.cpp \
+               ../boundary_mesh/algorithm/HandleObj.hpp \
+               ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+               ../boundary_mesh/algorithm/RefineUniformly.hpp \
+               ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+               ../boundary_mesh/FlexibleMesh_tmpl.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mesh_explorer.o mesh_explorer.cpp
+
+MeshWidget.o: MeshWidget.cpp MeshWidget.hpp \
+               ../boundary_mesh/FlexibleMesh.hpp \
+               ../boundary_mesh/FaceDispatch.hpp \
+               ../generic/Singleton.hpp \
+               ../generic/Singleton_tmpl.cpp \
+               ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+               ../boundary_mesh/FaceDispatch_tmpl.cpp \
+               ../boundary_mesh/Face.hpp \
+               ../boundary_mesh/types.hpp \
+               ../boundary_mesh/exception.hpp \
+               ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+               ../boundary_mesh/Face_tmpl.cpp \
+               ../boundary_mesh/HalfEdge.hpp \
+               ../boundary_mesh/HalfEdge_tmpl.cpp \
+               ../boundary_mesh/Vertex.hpp \
+               ../generic/GenericVector.hpp \
+               ../generic/GenericVector_tmpl.cpp \
+               ../boundary_mesh/Vertex_tmpl.cpp \
+               ../boundary_mesh/Mesh.hpp \
+               ../boundary_mesh/MeshBuilder.hpp \
+               ../boundary_mesh/MeshBuilder_tmpl.cpp \
+               ../boundary_mesh/Mesh.cpp \
+               ../boundary_mesh/algorithm/HandleObj.hpp \
+               ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+               ../boundary_mesh/algorithm/RefineUniformly.hpp \
+               ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+               ../boundary_mesh/FlexibleMesh_tmpl.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o MeshWidget.o MeshWidget.cpp
+
+DispatchIdNotSet.o: ../boundary_mesh/exception/DispatchIdNotSet.cpp ../boundary_mesh/exception/DispatchIdNotSet.hpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o DispatchIdNotSet.o ../boundary_mesh/exception/DispatchIdNotSet.cpp
+
+Face.o: ../boundary_mesh/Face.cpp ../boundary_mesh/Face.hpp \
+               ../boundary_mesh/types.hpp \
+               ../boundary_mesh/exception.hpp \
+               ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+               ../boundary_mesh/FaceDispatch.hpp \
+               ../generic/Singleton.hpp \
+               ../generic/Singleton_tmpl.cpp \
+               ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+               ../boundary_mesh/FaceDispatch_tmpl.cpp \
+               ../boundary_mesh/Face_tmpl.cpp \
+               ../boundary_mesh/Vertex.hpp \
+               ../generic/GenericVector.hpp \
+               ../generic/GenericVector_tmpl.cpp \
+               ../boundary_mesh/Vertex_tmpl.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Face.o ../boundary_mesh/Face.cpp
+
+NoMatchingFaceType.o: ../boundary_mesh/exception/NoMatchingFaceType.cpp ../boundary_mesh/exception/NoMatchingFaceType.hpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o NoMatchingFaceType.o ../boundary_mesh/exception/NoMatchingFaceType.cpp
+
+GenericVector.o: ../generic/GenericVector.cpp ../generic/GenericVector.hpp \
+               ../generic/GenericVector_tmpl.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o GenericVector.o ../generic/GenericVector.cpp
+
+moc_MeshWidget.o: moc_MeshWidget.cpp 
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_MeshWidget.o moc_MeshWidget.cpp
+
+####### Install
+
+install:   FORCE
+
+uninstall:   FORCE
+
+FORCE:
+
diff --git a/src/bem3d/src/mesh_explorer/Mesh.hpp b/src/bem3d/src/mesh_explorer/Mesh.hpp
new file mode 100644 (file)
index 0000000..03936fc
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef HILBERT3D_MESH_EXPLORER_MESH_HPP_GUARD_
+#define HILBERT3D_MESH_EXPLORER_MESH_HPP_GUARD_
+
+#include "../boundary_mesh/FlexibleMesh.hpp"
+
+namespace mesh_explorer
+{
+}
+
+#endif
+
diff --git a/src/bem3d/src/mesh_explorer/MeshWidget.cpp b/src/bem3d/src/mesh_explorer/MeshWidget.cpp
new file mode 100644 (file)
index 0000000..9772396
--- /dev/null
@@ -0,0 +1,198 @@
+#include "MeshWidget.hpp"
+
+#include <algorithm>
+#include <iostream>
+#include <limits>
+
+using namespace mesh_explorer;
+using namespace boundary_mesh;
+
+MeshWidget::MeshWidget( QWidget* parent, const FlexibleMesh& mesh )
+  : QGLWidget( QGLFormat( QGL::SampleBuffers), parent ), mesh_(mesh)
+{
+  minX_ = minY_ = minZ_ =  std::numeric_limits< double >::infinity();
+  maxX_ = maxY_ = maxZ_ = -std::numeric_limits< double >::infinity();
+  for ( FlexibleMesh::ConstVertexIterator vertexIt = mesh.begin_v();
+        vertexIt != mesh.end_v(); ++vertexIt )
+  {
+    const FlexibleMesh::Vertex& vertex = *vertexIt;
+
+    if (minX_ > vertex[0])
+      minX_ = vertex[0];
+    if (maxX_ < vertex[0])
+      maxX_ = vertex[0];
+
+    if (minY_ > vertex[1])
+      minY_ = vertex[1];
+    if (maxY_ < vertex[1])
+      maxY_ = vertex[1];
+
+    if (minZ_ > vertex[2])
+      minZ_ = vertex[2];
+    if (maxZ_ < vertex[2])
+      maxZ_ = vertex[2];
+  }
+}
+
+MeshWidget::~MeshWidget()
+{
+}
+
+void
+MeshWidget::initializeGL()
+{
+  glEnable(GL_DEPTH_TEST);
+  glDepthFunc( GL_LEQUAL );
+  glDisable(GL_CULL_FACE);
+  glFrontFace(GL_CW);
+  glClearColor( 0, 0, 0, 0 );
+}
+
+void MeshWidget::resizeGL( int w, int h )
+{
+  glViewport( 0, 0, w, h );
+
+  glMatrixMode( GL_PROJECTION );
+  glLoadIdentity();
+  float centerX = (maxX_ + minX_) / 2.f;
+  float lengthX = maxX_ - minX_;
+  float centerY = (maxY_ + minY_) / 2.f;
+  float lengthY = maxY_ - minY_;
+  float centerZ = (maxZ_ + minZ_) / 2.f;
+  float lengthZ = maxZ_ - minZ_;
+  float maxLength = lengthX;
+  float aspectRat = (float) w / (float) h;
+  if ( maxLength < lengthY ) maxLength = lengthY;
+  if ( maxLength < lengthZ ) maxLength = lengthZ;
+
+  glOrtho( aspectRat * (centerX - 1.*maxLength),
+           aspectRat * (centerX + 1.*maxLength),
+           (centerY - 1.*maxLength),
+           (centerY + 1.*maxLength),
+           centerZ - 1.*maxLength,
+           centerZ + 1.*maxLength );
+//  gluPerspective( 45, (float) w / (float) h, 0, 1000);
+//                  centerZ - lengthZ, centerZ + lengthZ );
+}
+
+void
+MeshWidget::setXRotation( int angle )
+{
+  int normalizedAngle = normalizeAngle( angle );
+  if ( normalizedAngle != xRot )
+  {
+    xRot = normalizedAngle;
+    emit xRotationChanged( normalizedAngle );
+    updateGL();
+  }
+}
+
+void
+MeshWidget::setYRotation( int angle )
+{
+  int normalizedAngle = normalizeAngle( angle );
+  if ( normalizedAngle != yRot )
+  {
+    yRot = normalizedAngle;
+    emit yRotationChanged( normalizedAngle );
+    updateGL();
+  }
+}
+
+void
+MeshWidget::setZRotation( int angle )
+{
+  int normalizedAngle = normalizeAngle( angle );
+  if ( normalizedAngle != zRot )
+  {
+    zRot = normalizedAngle;
+    emit zRotationChanged( normalizedAngle );
+    updateGL();
+  }
+}
+
+void
+MeshWidget::mousePressEvent( QMouseEvent* event )
+{
+  lastPos = event->pos();
+}
+
+void
+MeshWidget::mouseMoveEvent( QMouseEvent * event )
+{
+  int dx = event->x() - lastPos.x();
+  int dy = event->y() - lastPos.y();
+
+  if (event->buttons() & Qt::LeftButton)
+  {
+    setXRotation( xRot + 8 * dy );
+    setYRotation( yRot + 8 * dx );
+  }
+  else if (event->buttons() & Qt::RightButton)
+  {
+    setXRotation( xRot + 8 * dy );
+    setZRotation( zRot + 8 * dx );
+  }
+  lastPos = event->pos();
+}
+
+int
+MeshWidget::normalizeAngle( int angle )
+{
+  while ( angle < 0 )
+    angle += 360 * 16;
+  while ( angle > 360 * 16 )
+    angle -= 360 * 16;
+  return angle;
+}
+
+void
+MeshWidget::paintGL()
+{
+  glClearColor( 0.f, 0.f, 0.f, 0.f );
+  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+
+  float centerX = (maxX_ + minX_) / 2.f;
+  float centerY = (maxY_ + minY_) / 2.f;
+  float centerZ = (maxZ_ + minZ_) / 2.f;
+
+  glMatrixMode( GL_MODELVIEW );
+  glLoadIdentity();
+  glTranslatef( centerX, centerY, -centerZ );
+  glRotatef( (float)xRot / 16.f, 1.f, 0.f, 0.f );
+  glRotatef( (float)yRot / 16.f, 0.f, 1.f, 0.f );
+  glRotatef( (float)zRot / 16.f, 0.f, 0.f, 1.f );
+  glTranslatef( -centerX, -centerY, -centerZ );
+
+  glColor3f(1,0,0);
+  glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+  paintMesh();
+
+  glColor3f(1,1,1);
+  glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+  glDisable(GL_DEPTH_TEST);
+  glCullFace(GL_BACK);
+  paintMesh();
+  glEnable(GL_DEPTH_TEST);
+
+  glFlush();
+}
+
+void
+MeshWidget::paintMesh()
+{
+  glBegin( GL_TRIANGLES );
+  for (FlexibleMesh::ConstFaceIterator faceIt = mesh_.begin_f();
+        faceIt != mesh_.end_f(); ++faceIt)
+  {
+    for (FlexibleMesh::Face::ConstVertexIterator
+          vertexIt = faceIt->begin_v(); vertexIt != faceIt->end_v();
+          ++vertexIt)
+    {
+      const FlexibleMesh::Vertex& v = *vertexIt;
+      glVertex3f( v[0], v[1], v[2] );
+    }
+  }
+  glEnd();
+}
+
diff --git a/src/bem3d/src/mesh_explorer/MeshWidget.hpp b/src/bem3d/src/mesh_explorer/MeshWidget.hpp
new file mode 100644 (file)
index 0000000..16da85a
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef HILBERT3D_MESH_EXPLORER_MESHWIDGET_HPP_GUARD_
+#define HILBERT3D_MESH_EXPLORER_MESHWIDGET_HPP_GUARD_
+
+#include <QtGui>
+#include <QtOpenGL>
+#include "../boundary_mesh/FlexibleMesh.hpp"
+
+namespace mesh_explorer
+{
+  class MeshWidget : public QGLWidget
+  {
+    Q_OBJECT
+
+    public:
+      MeshWidget(QWidget* parent, const boundary_mesh::FlexibleMesh& mesh);
+      ~MeshWidget();
+
+    public slots:
+      void setXRotation( int angle );
+      void setYRotation( int angle );
+      void setZRotation( int angle );
+
+    protected:
+      void initializeGL();
+      void resizeGL( int w, int h );
+      void paintGL();
+      void paintMesh();
+      void mousePressEvent( QMouseEvent* event );
+      void mouseMoveEvent( QMouseEvent* event );
+
+    signals:
+      void xRotationChanged( int angle );
+      void yRotationChanged( int angle );
+      void zRotationChanged( int angle );
+
+    private:
+      static int normalizeAngle( int angle );
+
+      const boundary_mesh::FlexibleMesh& mesh_;
+      int xRot;
+      int yRot;
+      int zRot;
+      QPoint lastPos;
+      double minX_;
+      double maxX_;
+      double minY_;
+      double maxY_;
+      double minZ_;
+      double maxZ_;
+  };
+}
+
+#endif
+
diff --git a/src/bem3d/src/mesh_explorer/mesh_explorer.cpp b/src/bem3d/src/mesh_explorer/mesh_explorer.cpp
new file mode 100644 (file)
index 0000000..7c52db6
--- /dev/null
@@ -0,0 +1,51 @@
+#include <QApplication>
+#include <getopt.h>
+#include "MeshWidget.hpp"
+
+using namespace mesh_explorer;
+using namespace boundary_mesh;
+
+int main( int argc, char** argv )
+{
+  int optionChar;
+  const char* fileName = NULL;
+
+  while ( ( optionChar = getopt( argc, argv, "o:h?" ) ) != EOF )
+  {
+    switch ( optionChar )
+    {
+      case 'o':
+        fileName = optarg;
+        break;
+      case 'h':
+      case '?':
+        std::cerr << "Usage: " << argv[0] << " [ -h | -? | -o file_name ]"
+                  << std::endl << std::endl
+                  << "-h or -? display this message, -o sets the name of the "
+                  << "file, this tool opens." << std::endl
+                  << "If no file is given, the program fails." << std::endl;
+        return EXIT_SUCCESS;
+        break;
+      default:
+        assert(0);
+    }
+  }
+
+  if ( fileName == NULL )
+  {
+    std::cerr << argv[0] << ": Error: No file specified." << std::endl
+              << "    Use -h to see how to use this program." << std::endl;
+    return EXIT_FAILURE;
+  }
+
+  QApplication app( argc, argv );
+
+  FlexibleMesh mesh = FlexibleMesh::Alg::loadFromObj( fileName );
+  MeshWidget widget( 0, mesh );
+  widget.show();
+
+  app.exec();
+
+  return EXIT_SUCCESS;
+}
+
diff --git a/src/bem3d/src/mesh_explorer/mesh_explorer.pro b/src/bem3d/src/mesh_explorer/mesh_explorer.pro
new file mode 100644 (file)
index 0000000..cf46ee3
--- /dev/null
@@ -0,0 +1,48 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Mo. Apr 18 00:17:07 2011
+######################################################################
+
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT += opengl
+LIBS += -lboost_regex
+
+# Input
+HEADERS += Mesh.hpp \
+           MeshWidget.hpp \
+           ../boundary_mesh/FlexibleMesh.hpp \
+           ../boundary_mesh/FaceDispatch.hpp \
+           ../generic/Singleton.hpp \
+           ../generic/Singleton_tmpl.cpp \
+           ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+           ../boundary_mesh/FaceDispatch_tmpl.cpp \
+           ../boundary_mesh/Face.hpp \
+           ../boundary_mesh/types.hpp \
+           ../boundary_mesh/exception.hpp \
+           ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+           ../boundary_mesh/Face_tmpl.cpp \
+           ../boundary_mesh/HalfEdge.hpp \
+           ../boundary_mesh/HalfEdge_tmpl.cpp \
+           ../boundary_mesh/Vertex.hpp \
+           ../generic/GenericVector.hpp \
+           ../generic/GenericVector_tmpl.cpp \
+           ../boundary_mesh/Vertex_tmpl.cpp \
+           ../boundary_mesh/Mesh.hpp \
+           ../boundary_mesh/MeshBuilder.hpp \
+           ../boundary_mesh/MeshBuilder_tmpl.cpp \
+           ../boundary_mesh/Mesh.cpp \
+           ../boundary_mesh/algorithm/HandleObj.hpp \
+           ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+           ../boundary_mesh/algorithm/RefineUniformly.hpp \
+           ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+           ../boundary_mesh/FlexibleMesh_tmpl.cpp
+SOURCES += mesh_explorer.cpp \
+           MeshWidget.cpp \
+           ../boundary_mesh/exception/DispatchIdNotSet.cpp \
+           ../boundary_mesh/Face.cpp \
+           ../boundary_mesh/exception/NoMatchingFaceType.cpp \
+           ../generic/GenericVector.cpp \
+           ../boundary_mesh/Mesh.cpp
diff --git a/src/bem3d/src/mesh_explorer/moc_MeshWidget.cpp b/src/bem3d/src/mesh_explorer/moc_MeshWidget.cpp
new file mode 100644 (file)
index 0000000..71d687b
--- /dev/null
@@ -0,0 +1,115 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'MeshWidget.hpp'
+**
+** Created: Tue Apr 19 21:04:57 2011
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.3)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "MeshWidget.hpp"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'MeshWidget.hpp' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.3. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_mesh_explorer__MeshWidget[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       6,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       3,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      33,   27,   26,   26, 0x05,
+      55,   27,   26,   26, 0x05,
+      77,   27,   26,   26, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      99,   27,   26,   26, 0x0a,
+     117,   27,   26,   26, 0x0a,
+     135,   27,   26,   26, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_mesh_explorer__MeshWidget[] = {
+    "mesh_explorer::MeshWidget\0\0angle\0"
+    "xRotationChanged(int)\0yRotationChanged(int)\0"
+    "zRotationChanged(int)\0setXRotation(int)\0"
+    "setYRotation(int)\0setZRotation(int)\0"
+};
+
+const QMetaObject mesh_explorer::MeshWidget::staticMetaObject = {
+    { &QGLWidget::staticMetaObject, qt_meta_stringdata_mesh_explorer__MeshWidget,
+      qt_meta_data_mesh_explorer__MeshWidget, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &mesh_explorer::MeshWidget::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *mesh_explorer::MeshWidget::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *mesh_explorer::MeshWidget::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_mesh_explorer__MeshWidget))
+        return static_cast<void*>(const_cast< MeshWidget*>(this));
+    return QGLWidget::qt_metacast(_clname);
+}
+
+int mesh_explorer::MeshWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QGLWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: xRotationChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: yRotationChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 2: zRotationChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: setXRotation((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 4: setYRotation((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 5: setZRotation((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 6;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void mesh_explorer::MeshWidget::xRotationChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void mesh_explorer::MeshWidget::yRotationChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void mesh_explorer::MeshWidget::zRotationChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/src/bem3d/src/spaces/.deps/libhilbert_spaces_a-P0Space.Po b/src/bem3d/src/spaces/.deps/libhilbert_spaces_a-P0Space.Po
new file mode 100644 (file)
index 0000000..6ea2317
--- /dev/null
@@ -0,0 +1,1384 @@
+libhilbert_spaces_a-P0Space.o: P0Space.cpp P0Space.hpp ../hilbert.hpp \
+ ../boundary_mesh/FlexibleMesh.hpp ../boundary_mesh/FaceDispatch.hpp \
+ /usr/include/c++/4.5/vector /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/Singleton_tmpl.cpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/TypeList.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ ../boundary_mesh/FaceDispatch_tmpl.cpp \
+ ../boundary_mesh/exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ ../boundary_mesh/Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h ../boundary_mesh/types.hpp \
+ /usr/include/c++/4.5/limits ../boundary_mesh/exception.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/Face_tmpl.cpp /usr/include/c++/4.5/sstream \
+ /usr/include/c++/4.5/bits/sstream.tcc ../boundary_mesh/HalfEdge.hpp \
+ ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/../generic/GenericVector_tmpl.cpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp \
+ ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp ../boundary_mesh/Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp \
+ /usr/include/c++/4.5/cstring /usr/include/string.h \
+ /usr/include/bits/string3.h ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/Triangle.hpp \
+ ../boundary_mesh/face/../../generic/BaseTypes.hpp \
+ ../boundary_mesh/face/Triangle_tmpl.cpp \
+ ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/../Face.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/face/Parallelogram.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral.hpp \
+ ../boundary_mesh/face/Quadrilateral.hpp \
+ ../boundary_mesh/face/../types.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/algorithm/HandleObj.hpp \
+ ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+ /usr/include/c++/4.5/fstream /usr/include/c++/4.5/bits/codecvt.h \
+ /usr/include/c++/4.5/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp \
+ ../boundary_mesh/algorithm/../MeshBuilder.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/algorithm/../types.hpp \
+ ../boundary_mesh/algorithm/../FaceDispatch.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/FlexibleMesh_tmpl.cpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../spaces/P0Space.hpp /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/basic.h ../../src/config.h \
+ /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/local/include/HLib/blockcluster.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/clusterbasis.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/uniformmatrix.h
+
+P0Space.hpp:
+
+../hilbert.hpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/Singleton_tmpl.cpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/TypeList.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+../boundary_mesh/FaceDispatch_tmpl.cpp:
+
+../boundary_mesh/exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+../boundary_mesh/Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+../boundary_mesh/types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+../boundary_mesh/exception.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+../boundary_mesh/HalfEdge.hpp:
+
+../boundary_mesh/HalfEdge_tmpl.cpp:
+
+../boundary_mesh/Vertex.hpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/../generic/GenericVector_tmpl.cpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/Vertex_tmpl.cpp:
+
+../boundary_mesh/Mesh.hpp:
+
+../boundary_mesh/MeshBuilder.hpp:
+
+../boundary_mesh/MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+../boundary_mesh/Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/Triangle.hpp:
+
+../boundary_mesh/face/../../generic/BaseTypes.hpp:
+
+../boundary_mesh/face/Triangle_tmpl.cpp:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/../Face.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/face/Parallelogram.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral.hpp:
+
+../boundary_mesh/face/Quadrilateral.hpp:
+
+../boundary_mesh/face/../types.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/algorithm/HandleObj.hpp:
+
+../boundary_mesh/algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+../boundary_mesh/algorithm/../MeshBuilder.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/algorithm/../types.hpp:
+
+../boundary_mesh/algorithm/../FaceDispatch.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/FlexibleMesh_tmpl.cpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
diff --git a/src/bem3d/src/spaces/.deps/testP0Space-t.Po b/src/bem3d/src/spaces/.deps/testP0Space-t.Po
new file mode 100644 (file)
index 0000000..bf56395
--- /dev/null
@@ -0,0 +1,1384 @@
+testP0Space-t.o: t.cpp P0Space.hpp ../hilbert.hpp \
+ ../boundary_mesh/FlexibleMesh.hpp ../boundary_mesh/FaceDispatch.hpp \
+ /usr/include/c++/4.5/vector /usr/include/c++/4.5/bits/stl_algobase.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.5/cstddef \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h \
+ /usr/include/c++/4.5/bits/functexcept.h \
+ /usr/include/c++/4.5/exception_defines.h \
+ /usr/include/c++/4.5/bits/cpp_type_traits.h \
+ /usr/include/c++/4.5/ext/type_traits.h \
+ /usr/include/c++/4.5/ext/numeric_traits.h \
+ /usr/include/c++/4.5/bits/stl_pair.h /usr/include/c++/4.5/bits/move.h \
+ /usr/include/c++/4.5/bits/concept_check.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.5/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.5/bits/stl_iterator.h \
+ /usr/include/c++/4.5/debug/debug.h /usr/include/c++/4.5/bits/allocator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.5/ext/new_allocator.h /usr/include/c++/4.5/new \
+ /usr/include/c++/4.5/exception /usr/include/c++/4.5/bits/stl_construct.h \
+ /usr/include/c++/4.5/bits/stl_uninitialized.h \
+ /usr/include/c++/4.5/bits/stl_vector.h \
+ /usr/include/c++/4.5/initializer_list \
+ /usr/include/c++/4.5/bits/stl_bvector.h \
+ /usr/include/c++/4.5/bits/vector.tcc \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/Singleton_tmpl.cpp \
+ ../boundary_mesh/../generic/Singleton.hpp \
+ ../boundary_mesh/../generic/TypeList.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/../generic/BaseTypes.hpp \
+ ../boundary_mesh/exception/DispatchIdNotSet.hpp \
+ /usr/include/c++/4.5/stdexcept /usr/include/c++/4.5/string \
+ /usr/include/c++/4.5/bits/stringfwd.h \
+ /usr/include/c++/4.5/bits/char_traits.h \
+ /usr/include/c++/4.5/bits/postypes.h /usr/include/c++/4.5/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.5/bits/localefwd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.5/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.5/iosfwd \
+ /usr/include/c++/4.5/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.5/bits/ostream_insert.h \
+ /usr/include/c++/4.5/cxxabi-forced.h \
+ /usr/include/c++/4.5/bits/stl_function.h \
+ /usr/include/c++/4.5/backward/binders.h \
+ /usr/include/c++/4.5/bits/basic_string.h \
+ /usr/include/c++/4.5/ext/atomicity.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/bits/unistd.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.5/bits/basic_string.tcc \
+ ../boundary_mesh/FaceDispatch_tmpl.cpp \
+ ../boundary_mesh/exception/CouldNotDispatchCall.hpp \
+ /usr/include/c++/4.5/cassert /usr/include/assert.h \
+ ../boundary_mesh/Face.hpp /usr/include/c++/4.5/iterator \
+ /usr/include/c++/4.5/ostream /usr/include/c++/4.5/ios \
+ /usr/include/c++/4.5/bits/ios_base.h \
+ /usr/include/c++/4.5/bits/locale_classes.h \
+ /usr/include/c++/4.5/bits/locale_classes.tcc \
+ /usr/include/c++/4.5/streambuf /usr/include/c++/4.5/bits/streambuf.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.h \
+ /usr/include/c++/4.5/bits/locale_facets.h /usr/include/c++/4.5/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.5/bits/streambuf_iterator.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.5/bits/locale_facets.tcc \
+ /usr/include/c++/4.5/bits/basic_ios.tcc \
+ /usr/include/c++/4.5/bits/ostream.tcc /usr/include/c++/4.5/istream \
+ /usr/include/c++/4.5/bits/istream.tcc \
+ /usr/include/c++/4.5/bits/stream_iterator.h ../boundary_mesh/types.hpp \
+ /usr/include/c++/4.5/limits ../boundary_mesh/exception.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/Face_tmpl.cpp /usr/include/c++/4.5/sstream \
+ /usr/include/c++/4.5/bits/sstream.tcc ../boundary_mesh/HalfEdge.hpp \
+ ../boundary_mesh/HalfEdge_tmpl.cpp ../boundary_mesh/Vertex.hpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/../generic/GenericVector_tmpl.cpp \
+ ../boundary_mesh/../generic/GenericVector.hpp \
+ ../boundary_mesh/Vertex_tmpl.cpp ../boundary_mesh/Mesh.hpp \
+ ../boundary_mesh/MeshBuilder.hpp ../boundary_mesh/MeshBuilder_tmpl.cpp \
+ /usr/include/boost/type_traits/is_pointer.hpp \
+ /usr/include/boost/type_traits/is_member_pointer.hpp \
+ /usr/include/boost/type_traits/config.hpp /usr/include/boost/config.hpp \
+ /usr/include/boost/config/user.hpp \
+ /usr/include/boost/config/select_compiler_config.hpp \
+ /usr/include/boost/config/compiler/gcc.hpp \
+ /usr/include/boost/config/select_stdlib_config.hpp \
+ /usr/include/boost/config/no_tr1/utility.hpp \
+ /usr/include/c++/4.5/utility /usr/include/c++/4.5/bits/stl_relops.h \
+ /usr/include/boost/config/stdlib/libstdcpp3.hpp \
+ /usr/include/boost/config/select_platform_config.hpp \
+ /usr/include/boost/config/platform/linux.hpp \
+ /usr/include/c++/4.5/cstdlib /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+ /usr/include/bits/stdlib.h /usr/include/boost/config/posix_features.hpp \
+ /usr/include/boost/config/suffix.hpp \
+ /usr/include/boost/detail/workaround.hpp \
+ /usr/include/boost/type_traits/is_member_function_pointer.hpp \
+ /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
+ /usr/include/boost/type_traits/remove_cv.hpp \
+ /usr/include/boost/type_traits/broken_compiler_spec.hpp \
+ /usr/include/boost/mpl/aux_/lambda_support.hpp \
+ /usr/include/boost/mpl/aux_/config/lambda.hpp \
+ /usr/include/boost/mpl/aux_/config/ttp.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc.hpp \
+ /usr/include/boost/mpl/aux_/config/gcc.hpp \
+ /usr/include/boost/mpl/aux_/config/workaround.hpp \
+ /usr/include/boost/mpl/aux_/config/ctps.hpp \
+ /usr/include/boost/type_traits/detail/cv_traits_impl.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_def.hpp \
+ /usr/include/boost/type_traits/detail/template_arity_spec.hpp \
+ /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp \
+ /usr/include/boost/mpl/aux_/adl_barrier.hpp \
+ /usr/include/boost/mpl/aux_/config/adl.hpp \
+ /usr/include/boost/mpl/aux_/config/intel.hpp \
+ /usr/include/boost/mpl/aux_/nttp_decl.hpp \
+ /usr/include/boost/mpl/aux_/config/nttp.hpp \
+ /usr/include/boost/mpl/aux_/integral_wrapper.hpp \
+ /usr/include/boost/mpl/integral_c_tag.hpp \
+ /usr/include/boost/mpl/aux_/config/static_constant.hpp \
+ /usr/include/boost/mpl/aux_/static_cast.hpp \
+ /usr/include/boost/preprocessor/cat.hpp \
+ /usr/include/boost/preprocessor/config/config.hpp \
+ /usr/include/boost/mpl/aux_/template_arity_fwd.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/params.hpp \
+ /usr/include/boost/mpl/aux_/config/preprocessor.hpp \
+ /usr/include/boost/preprocessor/comma_if.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma_if.hpp \
+ /usr/include/boost/preprocessor/control/if.hpp \
+ /usr/include/boost/preprocessor/control/iif.hpp \
+ /usr/include/boost/preprocessor/logical/bool.hpp \
+ /usr/include/boost/preprocessor/facilities/empty.hpp \
+ /usr/include/boost/preprocessor/punctuation/comma.hpp \
+ /usr/include/boost/preprocessor/repeat.hpp \
+ /usr/include/boost/preprocessor/repetition/repeat.hpp \
+ /usr/include/boost/preprocessor/debug/error.hpp \
+ /usr/include/boost/preprocessor/detail/auto_rec.hpp \
+ /usr/include/boost/preprocessor/tuple/eat.hpp \
+ /usr/include/boost/preprocessor/inc.hpp \
+ /usr/include/boost/preprocessor/arithmetic/inc.hpp \
+ /usr/include/boost/mpl/aux_/config/overload_resolution.hpp \
+ /usr/include/boost/type_traits/detail/type_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_def.hpp \
+ /usr/include/boost/type_traits/integral_constant.hpp \
+ /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp \
+ /usr/include/boost/mpl/integral_c.hpp \
+ /usr/include/boost/mpl/integral_c_fwd.hpp \
+ /usr/include/boost/type_traits/detail/bool_trait_undef.hpp \
+ /usr/include/boost/type_traits/detail/ice_and.hpp \
+ /usr/include/boost/type_traits/detail/ice_not.hpp \
+ /usr/include/boost/utility/enable_if.hpp ../boundary_mesh/Mesh.cpp \
+ /usr/include/c++/4.5/iostream /usr/include/c++/4.5/set \
+ /usr/include/c++/4.5/bits/stl_tree.h /usr/include/c++/4.5/bits/stl_set.h \
+ /usr/include/c++/4.5/bits/stl_multiset.h /usr/include/c++/4.5/list \
+ /usr/include/c++/4.5/bits/stl_list.h /usr/include/c++/4.5/bits/list.tcc \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType.hpp \
+ ../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp \
+ /usr/include/c++/4.5/cstring /usr/include/string.h \
+ /usr/include/bits/string3.h ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/Triangle.hpp \
+ ../boundary_mesh/face/../../generic/BaseTypes.hpp \
+ ../boundary_mesh/face/Triangle_tmpl.cpp \
+ ../boundary_mesh/face/Triangle_tmpl.hpp \
+ ../boundary_mesh/face/../Face.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/face/Parallelogram.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral.hpp \
+ ../boundary_mesh/face/Quadrilateral.hpp \
+ ../boundary_mesh/face/../types.hpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.cpp /usr/include/c++/4.5/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.5/bits/cmath.tcc \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.hpp \
+ ../boundary_mesh/face/Quadrilateral_tmpl.cpp \
+ ../boundary_mesh/face/Parallelogram_tmpl.hpp \
+ ../boundary_mesh/algorithm/HandleObj.hpp \
+ ../boundary_mesh/algorithm/HandleObj_tmpl.cpp \
+ /usr/include/c++/4.5/fstream /usr/include/c++/4.5/bits/codecvt.h \
+ /usr/include/c++/4.5/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.5/bits/fstream.tcc /usr/include/boost/regex.hpp \
+ /usr/include/boost/regex/config.hpp /usr/include/boost/regex/user.hpp \
+ /usr/include/boost/regex/config/cwchar.hpp \
+ /usr/include/boost/config/auto_link.hpp \
+ /usr/include/boost/regex/v4/regex.hpp \
+ /usr/include/boost/regex/v4/regex_workaround.hpp \
+ /usr/include/c++/4.5/climits \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/c++/4.5/algorithm /usr/include/c++/4.5/bits/stl_algo.h \
+ /usr/include/c++/4.5/bits/algorithmfwd.h \
+ /usr/include/c++/4.5/bits/stl_heap.h \
+ /usr/include/c++/4.5/bits/stl_tempbuf.h /usr/include/c++/4.5/map \
+ /usr/include/c++/4.5/bits/stl_map.h \
+ /usr/include/c++/4.5/bits/stl_multimap.h /usr/include/boost/limits.hpp \
+ /usr/include/boost/assert.hpp /usr/include/boost/cstdint.hpp \
+ /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/boost/throw_exception.hpp \
+ /usr/include/boost/exception/detail/attribute_noreturn.hpp \
+ /usr/include/boost/exception/exception.hpp \
+ /usr/include/boost/current_function.hpp \
+ /usr/include/boost/scoped_ptr.hpp \
+ /usr/include/boost/smart_ptr/scoped_ptr.hpp \
+ /usr/include/boost/checked_delete.hpp /usr/include/c++/4.5/memory \
+ /usr/include/c++/4.5/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/4.5/backward/auto_ptr.h \
+ /usr/include/boost/smart_ptr/detail/operator_bool.hpp \
+ /usr/include/boost/scoped_array.hpp \
+ /usr/include/boost/smart_ptr/scoped_array.hpp \
+ /usr/include/boost/shared_ptr.hpp \
+ /usr/include/boost/smart_ptr/shared_ptr.hpp \
+ /usr/include/boost/config/no_tr1/memory.hpp \
+ /usr/include/boost/smart_ptr/detail/shared_count.hpp \
+ /usr/include/boost/smart_ptr/bad_weak_ptr.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_has_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp \
+ /usr/include/boost/detail/sp_typeinfo.hpp /usr/include/c++/4.5/typeinfo \
+ /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp \
+ /usr/include/c++/4.5/functional \
+ /usr/include/boost/smart_ptr/detail/sp_convertible.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock.hpp \
+ /usr/include/boost/smart_ptr/detail/spinlock_sync.hpp \
+ /usr/include/boost/smart_ptr/detail/yield_k.hpp \
+ /usr/include/boost/memory_order.hpp /usr/include/c++/4.5/locale \
+ /usr/include/c++/4.5/bits/locale_facets_nonio.h \
+ /usr/include/c++/4.5/ctime \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h \
+ /usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/4.5/bits/locale_facets_nonio.tcc \
+ /usr/include/boost/regex_fwd.hpp \
+ /usr/include/boost/regex/v4/regex_fwd.hpp \
+ /usr/include/boost/regex/regex_traits.hpp \
+ /usr/include/boost/regex/v4/regex_traits.hpp \
+ /usr/include/boost/regex/v4/syntax_type.hpp \
+ /usr/include/boost/regex/v4/error_type.hpp \
+ /usr/include/boost/regex/v4/regex_traits_defaults.hpp \
+ /usr/include/boost/regex/v4/cpp_regex_traits.hpp \
+ /usr/include/boost/regex/pattern_except.hpp \
+ /usr/include/boost/regex/pending/static_mutex.hpp \
+ /usr/include/boost/regex/v4/primary_transform.hpp \
+ /usr/include/boost/regex/pending/object_cache.hpp \
+ /usr/include/boost/regex/v4/c_regex_traits.hpp \
+ /usr/include/boost/mpl/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/type_wrapper.hpp \
+ /usr/include/boost/mpl/aux_/yes_no.hpp \
+ /usr/include/boost/mpl/aux_/config/arrays.hpp \
+ /usr/include/boost/mpl/aux_/config/has_xxx.hpp \
+ /usr/include/boost/mpl/aux_/config/msvc_typename.hpp \
+ /usr/include/boost/static_assert.hpp \
+ /usr/include/boost/regex/v4/match_flags.hpp \
+ /usr/include/boost/regex/v4/regex_raw_buffer.hpp \
+ /usr/include/boost/regex/v4/char_regex_traits.hpp \
+ /usr/include/boost/regex/v4/states.hpp \
+ /usr/include/boost/regex/v4/regbase.hpp \
+ /usr/include/boost/regex/v4/iterator_traits.hpp \
+ /usr/include/boost/regex/v4/basic_regex.hpp \
+ /usr/include/boost/type_traits/is_same.hpp \
+ /usr/include/boost/functional/hash.hpp \
+ /usr/include/boost/functional/hash/hash.hpp \
+ /usr/include/boost/functional/hash/hash_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float.hpp \
+ /usr/include/boost/functional/hash/detail/float_functions.hpp \
+ /usr/include/boost/config/no_tr1/cmath.hpp \
+ /usr/include/boost/functional/hash/detail/limits.hpp \
+ /usr/include/boost/integer/static_log2.hpp \
+ /usr/include/boost/integer_fwd.hpp \
+ /usr/include/boost/functional/hash/detail/hash_float_generic.hpp \
+ /usr/include/boost/functional/hash/extensions.hpp \
+ /usr/include/boost/detail/container_fwd.hpp \
+ /usr/include/boost/regex/v4/basic_regex_creator.hpp \
+ /usr/include/boost/regex/v4/basic_regex_parser.hpp \
+ /usr/include/boost/regex/v4/sub_match.hpp \
+ /usr/include/boost/regex/v4/regex_format.hpp \
+ /usr/include/boost/type_traits/is_function.hpp \
+ /usr/include/boost/type_traits/is_reference.hpp \
+ /usr/include/boost/type_traits/detail/false_result.hpp \
+ /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp \
+ /usr/include/boost/type_traits/is_class.hpp \
+ /usr/include/boost/type_traits/intrinsics.hpp \
+ /usr/include/boost/type_traits/is_volatile.hpp \
+ /usr/include/boost/type_traits/is_convertible.hpp \
+ /usr/include/boost/type_traits/detail/yes_no_type.hpp \
+ /usr/include/boost/type_traits/is_array.hpp \
+ /usr/include/boost/type_traits/add_reference.hpp \
+ /usr/include/boost/type_traits/ice.hpp \
+ /usr/include/boost/type_traits/detail/ice_or.hpp \
+ /usr/include/boost/type_traits/detail/ice_eq.hpp \
+ /usr/include/boost/type_traits/is_arithmetic.hpp \
+ /usr/include/boost/type_traits/is_integral.hpp \
+ /usr/include/boost/type_traits/is_float.hpp \
+ /usr/include/boost/type_traits/is_void.hpp \
+ /usr/include/boost/type_traits/is_abstract.hpp \
+ /usr/include/boost/type_traits/remove_pointer.hpp \
+ /usr/include/boost/mpl/if.hpp /usr/include/boost/mpl/aux_/value_wknd.hpp \
+ /usr/include/boost/mpl/aux_/config/integral.hpp \
+ /usr/include/boost/mpl/aux_/config/eti.hpp \
+ /usr/include/boost/mpl/aux_/na_spec.hpp \
+ /usr/include/boost/mpl/lambda_fwd.hpp \
+ /usr/include/boost/mpl/void_fwd.hpp /usr/include/boost/mpl/aux_/na.hpp \
+ /usr/include/boost/mpl/aux_/na_fwd.hpp \
+ /usr/include/boost/mpl/aux_/lambda_arity_param.hpp \
+ /usr/include/boost/mpl/aux_/arity.hpp \
+ /usr/include/boost/mpl/aux_/config/dtp.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/enum.hpp \
+ /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
+ /usr/include/boost/mpl/limits/arity.hpp \
+ /usr/include/boost/preprocessor/logical/and.hpp \
+ /usr/include/boost/preprocessor/logical/bitand.hpp \
+ /usr/include/boost/preprocessor/identity.hpp \
+ /usr/include/boost/preprocessor/facilities/identity.hpp \
+ /usr/include/boost/preprocessor/empty.hpp \
+ /usr/include/boost/preprocessor/arithmetic/add.hpp \
+ /usr/include/boost/preprocessor/arithmetic/dec.hpp \
+ /usr/include/boost/preprocessor/control/while.hpp \
+ /usr/include/boost/preprocessor/list/fold_left.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_left.hpp \
+ /usr/include/boost/preprocessor/control/expr_iif.hpp \
+ /usr/include/boost/preprocessor/list/adt.hpp \
+ /usr/include/boost/preprocessor/detail/is_binary.hpp \
+ /usr/include/boost/preprocessor/detail/check.hpp \
+ /usr/include/boost/preprocessor/logical/compl.hpp \
+ /usr/include/boost/preprocessor/list/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/detail/fold_right.hpp \
+ /usr/include/boost/preprocessor/list/reverse.hpp \
+ /usr/include/boost/preprocessor/control/detail/while.hpp \
+ /usr/include/boost/preprocessor/tuple/elem.hpp \
+ /usr/include/boost/preprocessor/arithmetic/sub.hpp \
+ /usr/include/boost/mpl/and.hpp \
+ /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/nested_type_wknd.hpp \
+ /usr/include/boost/mpl/aux_/include_preprocessed.hpp \
+ /usr/include/boost/mpl/aux_/config/compiler.hpp \
+ /usr/include/boost/preprocessor/stringize.hpp \
+ /usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
+ /usr/include/boost/mpl/not.hpp \
+ /usr/include/boost/regex/v4/match_results.hpp \
+ /usr/include/boost/regex/v4/protected_call.hpp \
+ /usr/include/boost/regex/v4/perl_matcher.hpp \
+ /usr/include/boost/regex/v4/iterator_category.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp \
+ /usr/include/boost/regex/v4/perl_matcher_common.hpp \
+ /usr/include/boost/regex/v4/instances.hpp \
+ /usr/include/boost/regex/v4/regex_match.hpp \
+ /usr/include/boost/regex/v4/regex_search.hpp \
+ /usr/include/boost/regex/v4/regex_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_token_iterator.hpp \
+ /usr/include/boost/regex/v4/regex_grep.hpp \
+ /usr/include/boost/regex/v4/regex_replace.hpp \
+ /usr/include/boost/regex/v4/regex_merge.hpp \
+ /usr/include/boost/regex/v4/regex_split.hpp \
+ ../boundary_mesh/algorithm/../MeshBuilder.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/algorithm/../types.hpp \
+ ../boundary_mesh/algorithm/../FaceDispatch.hpp \
+ ../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp \
+ ../boundary_mesh/algorithm/RefineUniformly.hpp \
+ ../boundary_mesh/FlexibleMesh_tmpl.cpp ../boundary_mesh/FlexibleMesh.hpp \
+ ../spaces/P0Space.hpp /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/basic.h ../../src/config.h \
+ /usr/local/include/HLib/supermatrix.h \
+ /usr/local/include/HLib/fullmatrix.h /usr/local/include/HLib/lapack.h \
+ /usr/local/include/HLib/blockcluster.h /usr/local/include/HLib/cluster.h \
+ /usr/local/include/HLib/clusterbasis.h \
+ /usr/local/include/HLib/h2conversion.h \
+ /usr/local/include/HLib/rkmatrix.h \
+ /usr/local/include/HLib/sparsematrix.h \
+ /usr/local/include/HLib/uniformmatrix.h
+
+P0Space.hpp:
+
+../hilbert.hpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../boundary_mesh/FaceDispatch.hpp:
+
+/usr/include/c++/4.5/vector:
+
+/usr/include/c++/4.5/bits/stl_algobase.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.5/cstddef:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h:
+
+/usr/include/c++/4.5/bits/functexcept.h:
+
+/usr/include/c++/4.5/exception_defines.h:
+
+/usr/include/c++/4.5/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.5/ext/type_traits.h:
+
+/usr/include/c++/4.5/ext/numeric_traits.h:
+
+/usr/include/c++/4.5/bits/stl_pair.h:
+
+/usr/include/c++/4.5/bits/move.h:
+
+/usr/include/c++/4.5/bits/concept_check.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.5/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.5/bits/stl_iterator.h:
+
+/usr/include/c++/4.5/debug/debug.h:
+
+/usr/include/c++/4.5/bits/allocator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.5/ext/new_allocator.h:
+
+/usr/include/c++/4.5/new:
+
+/usr/include/c++/4.5/exception:
+
+/usr/include/c++/4.5/bits/stl_construct.h:
+
+/usr/include/c++/4.5/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.5/bits/stl_vector.h:
+
+/usr/include/c++/4.5/initializer_list:
+
+/usr/include/c++/4.5/bits/stl_bvector.h:
+
+/usr/include/c++/4.5/bits/vector.tcc:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/Singleton_tmpl.cpp:
+
+../boundary_mesh/../generic/Singleton.hpp:
+
+../boundary_mesh/../generic/TypeList.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/../generic/BaseTypes.hpp:
+
+../boundary_mesh/exception/DispatchIdNotSet.hpp:
+
+/usr/include/c++/4.5/stdexcept:
+
+/usr/include/c++/4.5/string:
+
+/usr/include/c++/4.5/bits/stringfwd.h:
+
+/usr/include/c++/4.5/bits/char_traits.h:
+
+/usr/include/c++/4.5/bits/postypes.h:
+
+/usr/include/c++/4.5/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.5/bits/localefwd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.5/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.5/iosfwd:
+
+/usr/include/c++/4.5/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.5/bits/ostream_insert.h:
+
+/usr/include/c++/4.5/cxxabi-forced.h:
+
+/usr/include/c++/4.5/bits/stl_function.h:
+
+/usr/include/c++/4.5/backward/binders.h:
+
+/usr/include/c++/4.5/bits/basic_string.h:
+
+/usr/include/c++/4.5/ext/atomicity.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.5/bits/basic_string.tcc:
+
+../boundary_mesh/FaceDispatch_tmpl.cpp:
+
+../boundary_mesh/exception/CouldNotDispatchCall.hpp:
+
+/usr/include/c++/4.5/cassert:
+
+/usr/include/assert.h:
+
+../boundary_mesh/Face.hpp:
+
+/usr/include/c++/4.5/iterator:
+
+/usr/include/c++/4.5/ostream:
+
+/usr/include/c++/4.5/ios:
+
+/usr/include/c++/4.5/bits/ios_base.h:
+
+/usr/include/c++/4.5/bits/locale_classes.h:
+
+/usr/include/c++/4.5/bits/locale_classes.tcc:
+
+/usr/include/c++/4.5/streambuf:
+
+/usr/include/c++/4.5/bits/streambuf.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.h:
+
+/usr/include/c++/4.5/bits/locale_facets.h:
+
+/usr/include/c++/4.5/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.5/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.5/bits/locale_facets.tcc:
+
+/usr/include/c++/4.5/bits/basic_ios.tcc:
+
+/usr/include/c++/4.5/bits/ostream.tcc:
+
+/usr/include/c++/4.5/istream:
+
+/usr/include/c++/4.5/bits/istream.tcc:
+
+/usr/include/c++/4.5/bits/stream_iterator.h:
+
+../boundary_mesh/types.hpp:
+
+/usr/include/c++/4.5/limits:
+
+../boundary_mesh/exception.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/Face_tmpl.cpp:
+
+/usr/include/c++/4.5/sstream:
+
+/usr/include/c++/4.5/bits/sstream.tcc:
+
+../boundary_mesh/HalfEdge.hpp:
+
+../boundary_mesh/HalfEdge_tmpl.cpp:
+
+../boundary_mesh/Vertex.hpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/../generic/GenericVector_tmpl.cpp:
+
+../boundary_mesh/../generic/GenericVector.hpp:
+
+../boundary_mesh/Vertex_tmpl.cpp:
+
+../boundary_mesh/Mesh.hpp:
+
+../boundary_mesh/MeshBuilder.hpp:
+
+../boundary_mesh/MeshBuilder_tmpl.cpp:
+
+/usr/include/boost/type_traits/is_pointer.hpp:
+
+/usr/include/boost/type_traits/is_member_pointer.hpp:
+
+/usr/include/boost/type_traits/config.hpp:
+
+/usr/include/boost/config.hpp:
+
+/usr/include/boost/config/user.hpp:
+
+/usr/include/boost/config/select_compiler_config.hpp:
+
+/usr/include/boost/config/compiler/gcc.hpp:
+
+/usr/include/boost/config/select_stdlib_config.hpp:
+
+/usr/include/boost/config/no_tr1/utility.hpp:
+
+/usr/include/c++/4.5/utility:
+
+/usr/include/c++/4.5/bits/stl_relops.h:
+
+/usr/include/boost/config/stdlib/libstdcpp3.hpp:
+
+/usr/include/boost/config/select_platform_config.hpp:
+
+/usr/include/boost/config/platform/linux.hpp:
+
+/usr/include/c++/4.5/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/include/boost/config/posix_features.hpp:
+
+/usr/include/boost/config/suffix.hpp:
+
+/usr/include/boost/detail/workaround.hpp:
+
+/usr/include/boost/type_traits/is_member_function_pointer.hpp:
+
+/usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp:
+
+/usr/include/boost/type_traits/remove_cv.hpp:
+
+/usr/include/boost/type_traits/broken_compiler_spec.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_support.hpp:
+
+/usr/include/boost/mpl/aux_/config/lambda.hpp:
+
+/usr/include/boost/mpl/aux_/config/ttp.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc.hpp:
+
+/usr/include/boost/mpl/aux_/config/gcc.hpp:
+
+/usr/include/boost/mpl/aux_/config/workaround.hpp:
+
+/usr/include/boost/mpl/aux_/config/ctps.hpp:
+
+/usr/include/boost/type_traits/detail/cv_traits_impl.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_def.hpp:
+
+/usr/include/boost/type_traits/detail/template_arity_spec.hpp:
+
+/usr/include/boost/mpl/int.hpp:
+
+/usr/include/boost/mpl/int_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/adl_barrier.hpp:
+
+/usr/include/boost/mpl/aux_/config/adl.hpp:
+
+/usr/include/boost/mpl/aux_/config/intel.hpp:
+
+/usr/include/boost/mpl/aux_/nttp_decl.hpp:
+
+/usr/include/boost/mpl/aux_/config/nttp.hpp:
+
+/usr/include/boost/mpl/aux_/integral_wrapper.hpp:
+
+/usr/include/boost/mpl/integral_c_tag.hpp:
+
+/usr/include/boost/mpl/aux_/config/static_constant.hpp:
+
+/usr/include/boost/mpl/aux_/static_cast.hpp:
+
+/usr/include/boost/preprocessor/cat.hpp:
+
+/usr/include/boost/preprocessor/config/config.hpp:
+
+/usr/include/boost/mpl/aux_/template_arity_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/params.hpp:
+
+/usr/include/boost/mpl/aux_/config/preprocessor.hpp:
+
+/usr/include/boost/preprocessor/comma_if.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma_if.hpp:
+
+/usr/include/boost/preprocessor/control/if.hpp:
+
+/usr/include/boost/preprocessor/control/iif.hpp:
+
+/usr/include/boost/preprocessor/logical/bool.hpp:
+
+/usr/include/boost/preprocessor/facilities/empty.hpp:
+
+/usr/include/boost/preprocessor/punctuation/comma.hpp:
+
+/usr/include/boost/preprocessor/repeat.hpp:
+
+/usr/include/boost/preprocessor/repetition/repeat.hpp:
+
+/usr/include/boost/preprocessor/debug/error.hpp:
+
+/usr/include/boost/preprocessor/detail/auto_rec.hpp:
+
+/usr/include/boost/preprocessor/tuple/eat.hpp:
+
+/usr/include/boost/preprocessor/inc.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/inc.hpp:
+
+/usr/include/boost/mpl/aux_/config/overload_resolution.hpp:
+
+/usr/include/boost/type_traits/detail/type_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_def.hpp:
+
+/usr/include/boost/type_traits/integral_constant.hpp:
+
+/usr/include/boost/mpl/bool.hpp:
+
+/usr/include/boost/mpl/bool_fwd.hpp:
+
+/usr/include/boost/mpl/integral_c.hpp:
+
+/usr/include/boost/mpl/integral_c_fwd.hpp:
+
+/usr/include/boost/type_traits/detail/bool_trait_undef.hpp:
+
+/usr/include/boost/type_traits/detail/ice_and.hpp:
+
+/usr/include/boost/type_traits/detail/ice_not.hpp:
+
+/usr/include/boost/utility/enable_if.hpp:
+
+../boundary_mesh/Mesh.cpp:
+
+/usr/include/c++/4.5/iostream:
+
+/usr/include/c++/4.5/set:
+
+/usr/include/c++/4.5/bits/stl_tree.h:
+
+/usr/include/c++/4.5/bits/stl_set.h:
+
+/usr/include/c++/4.5/bits/stl_multiset.h:
+
+/usr/include/c++/4.5/list:
+
+/usr/include/c++/4.5/bits/stl_list.h:
+
+/usr/include/c++/4.5/bits/list.tcc:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType.hpp:
+
+../boundary_mesh/exception/NoMatchingFaceType_tmpl.cpp:
+
+/usr/include/c++/4.5/cstring:
+
+/usr/include/string.h:
+
+/usr/include/bits/string3.h:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/Triangle.hpp:
+
+../boundary_mesh/face/../../generic/BaseTypes.hpp:
+
+../boundary_mesh/face/Triangle_tmpl.cpp:
+
+../boundary_mesh/face/Triangle_tmpl.hpp:
+
+../boundary_mesh/face/../Face.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/face/Parallelogram.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral.hpp:
+
+../boundary_mesh/face/Quadrilateral.hpp:
+
+../boundary_mesh/face/../types.hpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.cpp:
+
+/usr/include/c++/4.5/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.5/bits/cmath.tcc:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/ConvexQuadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.hpp:
+
+../boundary_mesh/face/Quadrilateral_tmpl.cpp:
+
+../boundary_mesh/face/Parallelogram_tmpl.hpp:
+
+../boundary_mesh/algorithm/HandleObj.hpp:
+
+../boundary_mesh/algorithm/HandleObj_tmpl.cpp:
+
+/usr/include/c++/4.5/fstream:
+
+/usr/include/c++/4.5/bits/codecvt.h:
+
+/usr/include/c++/4.5/cstdio:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.5/bits/fstream.tcc:
+
+/usr/include/boost/regex.hpp:
+
+/usr/include/boost/regex/config.hpp:
+
+/usr/include/boost/regex/user.hpp:
+
+/usr/include/boost/regex/config/cwchar.hpp:
+
+/usr/include/boost/config/auto_link.hpp:
+
+/usr/include/boost/regex/v4/regex.hpp:
+
+/usr/include/boost/regex/v4/regex_workaround.hpp:
+
+/usr/include/c++/4.5/climits:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/limits.h:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/c++/4.5/algorithm:
+
+/usr/include/c++/4.5/bits/stl_algo.h:
+
+/usr/include/c++/4.5/bits/algorithmfwd.h:
+
+/usr/include/c++/4.5/bits/stl_heap.h:
+
+/usr/include/c++/4.5/bits/stl_tempbuf.h:
+
+/usr/include/c++/4.5/map:
+
+/usr/include/c++/4.5/bits/stl_map.h:
+
+/usr/include/c++/4.5/bits/stl_multimap.h:
+
+/usr/include/boost/limits.hpp:
+
+/usr/include/boost/assert.hpp:
+
+/usr/include/boost/cstdint.hpp:
+
+/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/boost/throw_exception.hpp:
+
+/usr/include/boost/exception/detail/attribute_noreturn.hpp:
+
+/usr/include/boost/exception/exception.hpp:
+
+/usr/include/boost/current_function.hpp:
+
+/usr/include/boost/scoped_ptr.hpp:
+
+/usr/include/boost/smart_ptr/scoped_ptr.hpp:
+
+/usr/include/boost/checked_delete.hpp:
+
+/usr/include/c++/4.5/memory:
+
+/usr/include/c++/4.5/bits/stl_raw_storage_iter.h:
+
+/usr/include/c++/4.5/backward/auto_ptr.h:
+
+/usr/include/boost/smart_ptr/detail/operator_bool.hpp:
+
+/usr/include/boost/scoped_array.hpp:
+
+/usr/include/boost/smart_ptr/scoped_array.hpp:
+
+/usr/include/boost/shared_ptr.hpp:
+
+/usr/include/boost/smart_ptr/shared_ptr.hpp:
+
+/usr/include/boost/config/no_tr1/memory.hpp:
+
+/usr/include/boost/smart_ptr/detail/shared_count.hpp:
+
+/usr/include/boost/smart_ptr/bad_weak_ptr.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_has_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:
+
+/usr/include/boost/detail/sp_typeinfo.hpp:
+
+/usr/include/c++/4.5/typeinfo:
+
+/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
+
+/usr/include/c++/4.5/functional:
+
+/usr/include/boost/smart_ptr/detail/sp_convertible.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock.hpp:
+
+/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp:
+
+/usr/include/boost/smart_ptr/detail/yield_k.hpp:
+
+/usr/include/boost/memory_order.hpp:
+
+/usr/include/c++/4.5/locale:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.h:
+
+/usr/include/c++/4.5/ctime:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/time_members.h:
+
+/usr/include/c++/4.5/x86_64-linux-gnu/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/4.5/bits/locale_facets_nonio.tcc:
+
+/usr/include/boost/regex_fwd.hpp:
+
+/usr/include/boost/regex/v4/regex_fwd.hpp:
+
+/usr/include/boost/regex/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/regex_traits.hpp:
+
+/usr/include/boost/regex/v4/syntax_type.hpp:
+
+/usr/include/boost/regex/v4/error_type.hpp:
+
+/usr/include/boost/regex/v4/regex_traits_defaults.hpp:
+
+/usr/include/boost/regex/v4/cpp_regex_traits.hpp:
+
+/usr/include/boost/regex/pattern_except.hpp:
+
+/usr/include/boost/regex/pending/static_mutex.hpp:
+
+/usr/include/boost/regex/v4/primary_transform.hpp:
+
+/usr/include/boost/regex/pending/object_cache.hpp:
+
+/usr/include/boost/regex/v4/c_regex_traits.hpp:
+
+/usr/include/boost/mpl/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/type_wrapper.hpp:
+
+/usr/include/boost/mpl/aux_/yes_no.hpp:
+
+/usr/include/boost/mpl/aux_/config/arrays.hpp:
+
+/usr/include/boost/mpl/aux_/config/has_xxx.hpp:
+
+/usr/include/boost/mpl/aux_/config/msvc_typename.hpp:
+
+/usr/include/boost/static_assert.hpp:
+
+/usr/include/boost/regex/v4/match_flags.hpp:
+
+/usr/include/boost/regex/v4/regex_raw_buffer.hpp:
+
+/usr/include/boost/regex/v4/char_regex_traits.hpp:
+
+/usr/include/boost/regex/v4/states.hpp:
+
+/usr/include/boost/regex/v4/regbase.hpp:
+
+/usr/include/boost/regex/v4/iterator_traits.hpp:
+
+/usr/include/boost/regex/v4/basic_regex.hpp:
+
+/usr/include/boost/type_traits/is_same.hpp:
+
+/usr/include/boost/functional/hash.hpp:
+
+/usr/include/boost/functional/hash/hash.hpp:
+
+/usr/include/boost/functional/hash/hash_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float.hpp:
+
+/usr/include/boost/functional/hash/detail/float_functions.hpp:
+
+/usr/include/boost/config/no_tr1/cmath.hpp:
+
+/usr/include/boost/functional/hash/detail/limits.hpp:
+
+/usr/include/boost/integer/static_log2.hpp:
+
+/usr/include/boost/integer_fwd.hpp:
+
+/usr/include/boost/functional/hash/detail/hash_float_generic.hpp:
+
+/usr/include/boost/functional/hash/extensions.hpp:
+
+/usr/include/boost/detail/container_fwd.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_creator.hpp:
+
+/usr/include/boost/regex/v4/basic_regex_parser.hpp:
+
+/usr/include/boost/regex/v4/sub_match.hpp:
+
+/usr/include/boost/regex/v4/regex_format.hpp:
+
+/usr/include/boost/type_traits/is_function.hpp:
+
+/usr/include/boost/type_traits/is_reference.hpp:
+
+/usr/include/boost/type_traits/detail/false_result.hpp:
+
+/usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp:
+
+/usr/include/boost/type_traits/is_class.hpp:
+
+/usr/include/boost/type_traits/intrinsics.hpp:
+
+/usr/include/boost/type_traits/is_volatile.hpp:
+
+/usr/include/boost/type_traits/is_convertible.hpp:
+
+/usr/include/boost/type_traits/detail/yes_no_type.hpp:
+
+/usr/include/boost/type_traits/is_array.hpp:
+
+/usr/include/boost/type_traits/add_reference.hpp:
+
+/usr/include/boost/type_traits/ice.hpp:
+
+/usr/include/boost/type_traits/detail/ice_or.hpp:
+
+/usr/include/boost/type_traits/detail/ice_eq.hpp:
+
+/usr/include/boost/type_traits/is_arithmetic.hpp:
+
+/usr/include/boost/type_traits/is_integral.hpp:
+
+/usr/include/boost/type_traits/is_float.hpp:
+
+/usr/include/boost/type_traits/is_void.hpp:
+
+/usr/include/boost/type_traits/is_abstract.hpp:
+
+/usr/include/boost/type_traits/remove_pointer.hpp:
+
+/usr/include/boost/mpl/if.hpp:
+
+/usr/include/boost/mpl/aux_/value_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/config/integral.hpp:
+
+/usr/include/boost/mpl/aux_/config/eti.hpp:
+
+/usr/include/boost/mpl/aux_/na_spec.hpp:
+
+/usr/include/boost/mpl/lambda_fwd.hpp:
+
+/usr/include/boost/mpl/void_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/na.hpp:
+
+/usr/include/boost/mpl/aux_/na_fwd.hpp:
+
+/usr/include/boost/mpl/aux_/lambda_arity_param.hpp:
+
+/usr/include/boost/mpl/aux_/arity.hpp:
+
+/usr/include/boost/mpl/aux_/config/dtp.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/enum.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp:
+
+/usr/include/boost/mpl/limits/arity.hpp:
+
+/usr/include/boost/preprocessor/logical/and.hpp:
+
+/usr/include/boost/preprocessor/logical/bitand.hpp:
+
+/usr/include/boost/preprocessor/identity.hpp:
+
+/usr/include/boost/preprocessor/facilities/identity.hpp:
+
+/usr/include/boost/preprocessor/empty.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/add.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/dec.hpp:
+
+/usr/include/boost/preprocessor/control/while.hpp:
+
+/usr/include/boost/preprocessor/list/fold_left.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_left.hpp:
+
+/usr/include/boost/preprocessor/control/expr_iif.hpp:
+
+/usr/include/boost/preprocessor/list/adt.hpp:
+
+/usr/include/boost/preprocessor/detail/is_binary.hpp:
+
+/usr/include/boost/preprocessor/detail/check.hpp:
+
+/usr/include/boost/preprocessor/logical/compl.hpp:
+
+/usr/include/boost/preprocessor/list/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/detail/fold_right.hpp:
+
+/usr/include/boost/preprocessor/list/reverse.hpp:
+
+/usr/include/boost/preprocessor/control/detail/while.hpp:
+
+/usr/include/boost/preprocessor/tuple/elem.hpp:
+
+/usr/include/boost/preprocessor/arithmetic/sub.hpp:
+
+/usr/include/boost/mpl/and.hpp:
+
+/usr/include/boost/mpl/aux_/config/use_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:
+
+/usr/include/boost/mpl/aux_/include_preprocessed.hpp:
+
+/usr/include/boost/mpl/aux_/config/compiler.hpp:
+
+/usr/include/boost/preprocessor/stringize.hpp:
+
+/usr/include/boost/mpl/aux_/preprocessed/gcc/and.hpp:
+
+/usr/include/boost/mpl/not.hpp:
+
+/usr/include/boost/regex/v4/match_results.hpp:
+
+/usr/include/boost/regex/v4/protected_call.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher.hpp:
+
+/usr/include/boost/regex/v4/iterator_category.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:
+
+/usr/include/boost/regex/v4/perl_matcher_common.hpp:
+
+/usr/include/boost/regex/v4/instances.hpp:
+
+/usr/include/boost/regex/v4/regex_match.hpp:
+
+/usr/include/boost/regex/v4/regex_search.hpp:
+
+/usr/include/boost/regex/v4/regex_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_token_iterator.hpp:
+
+/usr/include/boost/regex/v4/regex_grep.hpp:
+
+/usr/include/boost/regex/v4/regex_replace.hpp:
+
+/usr/include/boost/regex/v4/regex_merge.hpp:
+
+/usr/include/boost/regex/v4/regex_split.hpp:
+
+../boundary_mesh/algorithm/../MeshBuilder.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/algorithm/../types.hpp:
+
+../boundary_mesh/algorithm/../FaceDispatch.hpp:
+
+../boundary_mesh/algorithm/RefineUniformly_tmpl.cpp:
+
+../boundary_mesh/algorithm/RefineUniformly.hpp:
+
+../boundary_mesh/FlexibleMesh_tmpl.cpp:
+
+../boundary_mesh/FlexibleMesh.hpp:
+
+../spaces/P0Space.hpp:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/basic.h:
+
+../../src/config.h:
+
+/usr/local/include/HLib/supermatrix.h:
+
+/usr/local/include/HLib/fullmatrix.h:
+
+/usr/local/include/HLib/lapack.h:
+
+/usr/local/include/HLib/blockcluster.h:
+
+/usr/local/include/HLib/cluster.h:
+
+/usr/local/include/HLib/clusterbasis.h:
+
+/usr/local/include/HLib/h2conversion.h:
+
+/usr/local/include/HLib/rkmatrix.h:
+
+/usr/local/include/HLib/sparsematrix.h:
+
+/usr/local/include/HLib/uniformmatrix.h:
diff --git a/src/bem3d/src/spaces/HLibSpace.hpp b/src/bem3d/src/spaces/HLibSpace.hpp
new file mode 100644 (file)
index 0000000..f9ba5fe
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef HILBERT3D_FE_SPACE_HLIBSPACE_HPP_GUARD_
+#define HILBERT3D_FE_SPACE_HLIBSPACE_HPP_GUARD_
+
+#include "HLib/sparsematrix.h"
+
+namespace fe_space
+{
+  class HLibSpace
+  {
+    public:
+      virtual clusterfactory* createClusterFactory() const =0;
+  };
+}
+
+#endif
+
diff --git a/src/bem3d/src/spaces/Makefile b/src/bem3d/src/spaces/Makefile
new file mode 100644 (file)
index 0000000..f8423e6
--- /dev/null
@@ -0,0 +1,665 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# src/spaces/Makefile.  Generated from Makefile.in by configure.
+
+# 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.
+
+
+
+
+
+
+pkgdatadir = $(datadir)/hilbert3d
+pkgincludedir = $(includedir)/hilbert3d
+pkglibdir = $(libdir)/hilbert3d
+pkglibexecdir = $(libexecdir)/hilbert3d
+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 = :
+bin_PROGRAMS = testP0Space$(EXEEXT)
+subdir = src/spaces
+DIST_COMMON = $(libhilbert_spaces_a_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(testP0Space_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
+       $(top_srcdir)/m4/ax_boost_base.m4 \
+       $(top_srcdir)/m4/ax_boost_regex.m4 $(top_srcdir)/m4/ax_hlib.m4 \
+       $(top_srcdir)/m4/ax_lapack.m4 \
+       $(top_srcdir)/m4/ax_prog_doxygen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+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)$(libdir)" "$(DESTDIR)$(bindir)" \
+       "$(DESTDIR)$(libhilbert_spaces_adir)" \
+       "$(DESTDIR)$(testP0Spacedir)"
+LIBRARIES = $(lib_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libhilbert_spaces_a_AR = $(AR) $(ARFLAGS)
+libhilbert_spaces_a_LIBADD =
+am_libhilbert_spaces_a_OBJECTS =  \
+       libhilbert_spaces_a-P0Space.$(OBJEXT)
+libhilbert_spaces_a_OBJECTS = $(am_libhilbert_spaces_a_OBJECTS)
+PROGRAMS = $(bin_PROGRAMS)
+am_testP0Space_OBJECTS = testP0Space-t.$(OBJEXT)
+testP0Space_OBJECTS = $(am_testP0Space_OBJECTS)
+am__DEPENDENCIES_1 =
+testP0Space_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       ../boundary_mesh/libhilbert-mesh.a libhilbert-spaces.a \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/src
+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)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
+SOURCES = $(libhilbert_spaces_a_SOURCES) $(testP0Space_SOURCES)
+DIST_SOURCES = $(libhilbert_spaces_a_SOURCES) $(testP0Space_SOURCES)
+HEADERS = $(libhilbert_spaces_a_HEADERS) $(testP0Space_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run tar
+AUTOCONF = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run automake-1.11
+AWK = mawk
+BLAS_LIBS = -lblas
+BOOST_CPPFLAGS = -I/usr/include
+BOOST_LDFLAGS = -L/usr/lib
+BOOST_REGEX_LIB = -lboost_regex-mt
+BOOST_ROOT_PATH = /usr
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN_PAPER_SIZE = 
+DX_CONFIG = Doxyfile
+DX_DOCDIR = docs/doxygen
+DX_DOT = 
+DX_DOXYGEN = 
+DX_DVIPS = 
+DX_EGREP = 
+DX_ENV =  SRCDIR='.' PROJECT='Hilbert 3D' DOCDIR='docs/doxygen' VERSION='0.1.0' HAVE_DOT='NO' GENERATE_MAN='NO' GENERATE_RTF='NO' GENERATE_XML='NO' GENERATE_HTMLHELP='NO' GENERATE_CHI='NO' GENERATE_HTML='NO' GENERATE_LATEX='NO'
+DX_FLAG_chi = 0
+DX_FLAG_chm = 0
+DX_FLAG_doc = 0
+DX_FLAG_dot = 0
+DX_FLAG_html = 0
+DX_FLAG_man = 0
+DX_FLAG_pdf = 0
+DX_FLAG_ps = 0
+DX_FLAG_rtf = 0
+DX_FLAG_xml = 0
+DX_HHC = 
+DX_LATEX = 
+DX_MAKEINDEX = 
+DX_PDFLATEX = 
+DX_PERL = /usr/bin/perl
+DX_PROJECT = Hilbert 3D
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FFLAGS = -g -O2
+FLIBS =  -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2 -L/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../.. -L/usr/lib/x86_64-linux-gnu -lgfortran -lm
+GREP = /bin/grep
+HLIB_CPPFLAGS = -I/usr/local/include
+HLIB_LDFLAGS = -L/usr/local/lib
+HLIB_LIB = -lhmatrix
+HLIB_ROOT_PATH = /usr/local
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LAPACK_LIBS = -llapack
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = hilbert3d
+PACKAGE_BUGREPORT = markus.mayr@tuwien.ac.at
+PACKAGE_NAME = Hilbert 3D
+PACKAGE_STRING = Hilbert 3D 0.1.0
+PACKAGE_TARNAME = hilbert3d
+PACKAGE_URL = http://83.169.35.184/cgi-bin/gitweb?p=bem3d.git
+PACKAGE_VERSION = 0.1.0
+PATH_SEPARATOR = :
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = 
+VERSION = 0.1.0
+abs_builddir = /home/treecity/workspace/bacc/src/bem3d/src/spaces
+abs_srcdir = /home/treecity/workspace/bacc/src/bem3d/src/spaces
+abs_top_builddir = /home/treecity/workspace/bacc/src/bem3d
+abs_top_srcdir = /home/treecity/workspace/bacc/src/bem3d
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/treecity/workspace/bacc/src/bem3d/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+lib_LIBRARIES = libhilbert-spaces.a
+libhilbert_spaces_adir = .
+libhilbert_spaces_a_HEADERS = \
+  P0Space.hpp
+
+libhilbert_spaces_a_SOURCES = \
+  P0Space.cpp
+
+libhilbert_spaces_a_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
+testP0Spacedir = .
+testP0Space_HEADERS = \
+  P0Space.hpp
+
+testP0Space_SOURCES = t.cpp
+testP0Space_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
+testP0Space_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .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 src/spaces/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/spaces/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):
+install-libLIBRARIES: $(lib_LIBRARIES)
+       @$(NORMAL_INSTALL)
+       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
+         $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
+       @$(POST_INSTALL)
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       for p in $$list; do \
+         if test -f $$p; then \
+           $(am__strip_dir) \
+           echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
+           ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
+         else :; fi; \
+       done
+
+uninstall-libLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libdir)' && rm -f "$$files" )"; \
+       cd "$(DESTDIR)$(libdir)" && rm -f $$files
+
+clean-libLIBRARIES:
+       -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libhilbert-spaces.a: $(libhilbert_spaces_a_OBJECTS) $(libhilbert_spaces_a_DEPENDENCIES) 
+       -rm -f libhilbert-spaces.a
+       $(libhilbert_spaces_a_AR) libhilbert-spaces.a $(libhilbert_spaces_a_OBJECTS) $(libhilbert_spaces_a_LIBADD)
+       $(RANLIB) libhilbert-spaces.a
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+testP0Space$(EXEEXT): $(testP0Space_OBJECTS) $(testP0Space_DEPENDENCIES) 
+       @rm -f testP0Space$(EXEEXT)
+       $(CXXLINK) $(testP0Space_OBJECTS) $(testP0Space_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+include ./$(DEPDIR)/libhilbert_spaces_a-P0Space.Po
+include ./$(DEPDIR)/testP0Space-t.Po
+
+.cpp.o:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+       $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#      source='$<' object='$@' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+libhilbert_spaces_a-P0Space.o: P0Space.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_spaces_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_spaces_a-P0Space.o -MD -MP -MF $(DEPDIR)/libhilbert_spaces_a-P0Space.Tpo -c -o libhilbert_spaces_a-P0Space.o `test -f 'P0Space.cpp' || echo '$(srcdir)/'`P0Space.cpp
+       $(am__mv) $(DEPDIR)/libhilbert_spaces_a-P0Space.Tpo $(DEPDIR)/libhilbert_spaces_a-P0Space.Po
+#      source='P0Space.cpp' object='libhilbert_spaces_a-P0Space.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_spaces_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_spaces_a-P0Space.o `test -f 'P0Space.cpp' || echo '$(srcdir)/'`P0Space.cpp
+
+libhilbert_spaces_a-P0Space.obj: P0Space.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_spaces_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhilbert_spaces_a-P0Space.obj -MD -MP -MF $(DEPDIR)/libhilbert_spaces_a-P0Space.Tpo -c -o libhilbert_spaces_a-P0Space.obj `if test -f 'P0Space.cpp'; then $(CYGPATH_W) 'P0Space.cpp'; else $(CYGPATH_W) '$(srcdir)/P0Space.cpp'; fi`
+       $(am__mv) $(DEPDIR)/libhilbert_spaces_a-P0Space.Tpo $(DEPDIR)/libhilbert_spaces_a-P0Space.Po
+#      source='P0Space.cpp' object='libhilbert_spaces_a-P0Space.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhilbert_spaces_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhilbert_spaces_a-P0Space.obj `if test -f 'P0Space.cpp'; then $(CYGPATH_W) 'P0Space.cpp'; else $(CYGPATH_W) '$(srcdir)/P0Space.cpp'; fi`
+
+testP0Space-t.o: t.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testP0Space_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testP0Space-t.o -MD -MP -MF $(DEPDIR)/testP0Space-t.Tpo -c -o testP0Space-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+       $(am__mv) $(DEPDIR)/testP0Space-t.Tpo $(DEPDIR)/testP0Space-t.Po
+#      source='t.cpp' object='testP0Space-t.o' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testP0Space_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testP0Space-t.o `test -f 't.cpp' || echo '$(srcdir)/'`t.cpp
+
+testP0Space-t.obj: t.cpp
+       $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testP0Space_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testP0Space-t.obj -MD -MP -MF $(DEPDIR)/testP0Space-t.Tpo -c -o testP0Space-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+       $(am__mv) $(DEPDIR)/testP0Space-t.Tpo $(DEPDIR)/testP0Space-t.Po
+#      source='t.cpp' object='testP0Space-t.obj' libtool=no \
+#      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#      $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testP0Space_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testP0Space-t.obj `if test -f 't.cpp'; then $(CYGPATH_W) 't.cpp'; else $(CYGPATH_W) '$(srcdir)/t.cpp'; fi`
+install-libhilbert_spaces_aHEADERS: $(libhilbert_spaces_a_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libhilbert_spaces_adir)" || $(MKDIR_P) "$(DESTDIR)$(libhilbert_spaces_adir)"
+       @list='$(libhilbert_spaces_a_HEADERS)'; test -n "$(libhilbert_spaces_adir)" || 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)$(libhilbert_spaces_adir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libhilbert_spaces_adir)" || exit $$?; \
+       done
+
+uninstall-libhilbert_spaces_aHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libhilbert_spaces_a_HEADERS)'; test -n "$(libhilbert_spaces_adir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libhilbert_spaces_adir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libhilbert_spaces_adir)" && rm -f $$files
+install-testP0SpaceHEADERS: $(testP0Space_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(testP0Spacedir)" || $(MKDIR_P) "$(DESTDIR)$(testP0Spacedir)"
+       @list='$(testP0Space_HEADERS)'; test -n "$(testP0Spacedir)" || 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)$(testP0Spacedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(testP0Spacedir)" || exit $$?; \
+       done
+
+uninstall-testP0SpaceHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(testP0Space_HEADERS)'; test -n "$(testP0Spacedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(testP0Spacedir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(testP0Spacedir)" && 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 $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libhilbert_spaces_adir)" "$(DESTDIR)$(testP0Spacedir)"; 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-binPROGRAMS clean-generic clean-libLIBRARIES \
+       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-libhilbert_spaces_aHEADERS \
+       install-testP0SpaceHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-libLIBRARIES
+
+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
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-libLIBRARIES \
+       uninstall-libhilbert_spaces_aHEADERS \
+       uninstall-testP0SpaceHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic clean-libLIBRARIES ctags distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-binPROGRAMS 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-libLIBRARIES install-libhilbert_spaces_aHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip install-testP0SpaceHEADERS \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS uninstall-libLIBRARIES \
+       uninstall-libhilbert_spaces_aHEADERS \
+       uninstall-testP0SpaceHEADERS
+
+
+# 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:
index ae6eb459fd3b18c6293faaebe43584ecf69dec93..27508893f899902b73b84da64597531bf59333b0 100644 (file)
@@ -1,5 +1,5 @@
-bin_PROGRAMS = testP0Space
 lib_LIBRARIES = libhilbert-spaces.a
+bin_PROGRAMS = testP0Space
 
 libhilbert_spaces_adir = .
 libhilbert_spaces_a_HEADERS = \
@@ -9,16 +9,9 @@ libhilbert_spaces_a_SOURCES = \
 libhilbert_spaces_a_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
 
 testP0Spacedir = .
-testP0Space_SOURCES = t.cpp
 testP0Space_HEADERS = \
-  ../boundary_mesh/Face.hpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  ../boundary_mesh/mixin/ExportingObj.hpp ../boundary_mesh/mixin/ExportingObj.cpp \
-  ../boundary_mesh/mixin/LoadingObj.hpp ../boundary_mesh/mixin/LoadingObj.cpp \
-  ../boundary_mesh/layer/Marker.hpp ../boundary_mesh/layer/Marker.cpp ../boundary_mesh/mixin/MeshMixin.hpp \
-  ../boundary_mesh/mixin/RefiningAdaptivly.hpp ../boundary_mesh/mixin/RefiningAdaptivly.cpp \
-  ../boundary_mesh/mixin/RefiningUniformly.hpp ../boundary_mesh/mixin/RefiningUniformly.cpp \
-  P0Space.hpp P0Space.cpp
+  P0Space.hpp
+testP0Space_SOURCES = t.cpp
 testP0Space_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
 testP0Space_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
 
index a8e44290f8c7719593ffd14d6ba121f0edfba3f6..8def7f2928b48014c0e240ade15ce909d55b08ed 100644 (file)
@@ -245,17 +245,10 @@ libhilbert_spaces_a_SOURCES = \
 
 libhilbert_spaces_a_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
 testP0Spacedir = .
-testP0Space_SOURCES = t.cpp
 testP0Space_HEADERS = \
-  ../boundary_mesh/Face.hpp ../boundary_mesh/HalfEdge.hpp ../boundary_mesh/Mesh.hpp ../boundary_mesh/Mesh.cpp ../boundary_mesh/Vertex.hpp \
-  ../generic/GenericVector.hpp ../generic/GenericVector_tmpl.cpp \
-  ../boundary_mesh/mixin/ExportingObj.hpp ../boundary_mesh/mixin/ExportingObj.cpp \
-  ../boundary_mesh/mixin/LoadingObj.hpp ../boundary_mesh/mixin/LoadingObj.cpp \
-  ../boundary_mesh/layer/Marker.hpp ../boundary_mesh/layer/Marker.cpp ../boundary_mesh/mixin/MeshMixin.hpp \
-  ../boundary_mesh/mixin/RefiningAdaptivly.hpp ../boundary_mesh/mixin/RefiningAdaptivly.cpp \
-  ../boundary_mesh/mixin/RefiningUniformly.hpp ../boundary_mesh/mixin/RefiningUniformly.cpp \
-  P0Space.hpp P0Space.cpp
+  P0Space.hpp
 
+testP0Space_SOURCES = t.cpp
 testP0Space_LDADD = $(BOOST_REGEX_LIB) ../boundary_mesh/libhilbert-mesh.a libhilbert-spaces.a $(HLIB_LDFLAGS) $(HLIB_LIB) $(BLAS_LIBS) $(LAPACK_LIBS) $(LIBS) $(FLIBS)
 testP0Space_CPPFLAGS = $(CPPFLAGS) $(HLIB_CPPFLAGS)
 all: all-am
index e70eeedb95cc7760562589531bb8ecca01451c08..0010733ab36e0fdb635078c15288e47f2fe2c412 100644 (file)
 
 using namespace space;
 
-P0Element::P0Element(const BoundaryMesh::traits::Face& face)
-  : face_(&face)
-{}
 
-const BoundaryMesh::traits::Face& P0Element::getSupport() const
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // MK: TMesh = BoundaryMesh is not allowed
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh>::Space(
+    const TMesh& mesh, unsigned int numberOfElements)
+  : mesh_(mesh), elements_(std::vector< TElement >()),
+       face2elements_(std::vector< const TElement* >(mesh.getNumberOfFaces()))
 {
-  return *face_;
+  elements_.reserve( numberOfElements );
 }
 
-double P0Element::operator()(
-    const BoundaryMesh::traits::UnlinkedVertex& point) const
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // MK: TMesh = BoundaryMesh is not allowed
+const TElement&
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh >::operator[](
+    unsigned int id) const
 {
-  assert(0);
+  return getElement(id);
 }
 
-P0Space::P0Space(const BoundaryMesh& mesh)
-  : mesh_(mesh), elements_(std::vector< P0Element >())
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // s.o.
+const TElement&
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh >::getElement(
+    unsigned int id) const
 {
-  elements_.reserve( mesh.getNumberOfFaces() );
-  for (BoundaryMesh::ConstFaceIterator faceIt = mesh.begin_f();
-        faceIt != mesh.end_f(); ++faceIt)
+  return elements_.at(id);
+}
+
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // s.o.
+unsigned int
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh >::
+    getNumberOfElements() const
+{
+  return elements_.size();
+}
+
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // s.o.
+std::vector< const TElement* >
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh >::
+    getDegreesOfFreedomForFace( const typename TMesh::Face& face ) const
+{
+  unsigned int i = 0; // MK: i has to be declared here, otherwise problems with scope
+  std::vector< const TElement* > degreesOfFreedom(
+      maximumNumberOfDegreesOfFreedomPerFace);
+
+  unsigned int offset = mesh_.getFaceId( face ) *
+      maximumNumberOfDegreesOfFreedomPerFace;
+
+  for ( i = 0; i < maximumNumberOfDegreesOfFreedomPerFace; ++i )
   {
-    elements_.push_back( P0Element( *faceIt ) );
+    if ( face2elements_[ offset + i ] == 0 )
+      break;
+    degreesOfFreedom[ i ] = face2elements_[ offset + i ];
   }
-}
 
-const P0Element& P0Space::operator[](unsigned int id) const
+  degreesOfFreedom.resize(i);
+  return degreesOfFreedom;
+}
+//
+template < class TElement,
+              unsigned int maximumNumberOfDegreesOfFreedomPerFace,
+              class TMesh > // s.o.
+void
+Space< TElement, maximumNumberOfDegreesOfFreedomPerFace, TMesh >::addElement(
+    std::vector< const typename TMesh::Face* > faces)
 {
-  return getElement(id);
+  unsigned int i=0;
+  const TElement* front = &(elements_.front());
+  elements_.push_back( TElement(faces) );
+  assert( front - &(elements_.front()) == 0 );
+  const TElement* element = &(elements_.back());
+
+  for ( typename std::vector< const typename TMesh::Face* >::const_iterator
+        faceIt = faces.begin(); faceIt != faces.end(); ++faceIt)
+  {
+    unsigned int offset = mesh_.getFaceId( *(*faceIt) ) // MK: here i added another *
+      * maximumNumberOfDegreesOfFreedomPerFace;
+    for ( i = 0; i < maximumNumberOfDegreesOfFreedomPerFace; ++i )
+    {
+      if ( face2elements_[ offset + i ] == 0 )
+        break;
+    }
+    assert( i < maximumNumberOfDegreesOfFreedomPerFace );
+    face2elements_[ offset + i ] = element;
+  }
 }
+P0Element::P0Element(const std::vector< const BoundaryMesh::Face* > faces)
+  : face_(faces[0])
+{}
 
-const P0Element& P0Space::getElement(unsigned int id) const
+P0Element::P0Element(const BoundaryMesh::Face& face)
+  : face_(&face)
+{}
+
+const BoundaryMesh::Face& P0Element::getSupport() const
 {
-  return elements_.at(id);
+  return *face_;
 }
 
-unsigned int P0Space::getNumberOfElements() const
+//double P0Element::operator()(
+//    const BoundaryMesh::UVertex& point) const
+//{
+//  assert(0);
+//}
+
+template class Space< P0Element, 1 >;
+
+P0Space::P0Space(const BoundaryMesh& mesh)
+  : Space< P0Element, 1 >(mesh, mesh.getNumberOfFaces())
 {
-  return elements_.size();
+  for (BoundaryMesh::ConstFaceIterator faceIt = mesh.begin_f();
+        faceIt != mesh.end_f(); ++faceIt)
+  {
+    std::vector< const BoundaryMesh::Face* > support(1);
+    support[0] = &(*faceIt);
+    addElement( support );
+  }
 }
 
 clusterfactory* P0Space::createClusterFactory() const
 {
+
+  std::cerr << "Creating Cluster Factory for Ansatz-Space" << std::endl;
   clusterfactory* factory;
   unsigned int numberOfElements = mesh_.getNumberOfFaces();
   factory = new_clusterfactory(numberOfElements, numberOfElements, 3);
 
+
   for (unsigned int i = 0; i < numberOfElements; ++i)
   {
-    const BoundaryMesh::traits::Face& support = getElement(i).getSupport();
-    bool (*comparator[3])(const BoundaryMesh::traits::UnlinkedVertex&,
-                            const BoundaryMesh::traits::UnlinkedVertex&) = {
+    const BoundaryMesh::Face& support = getElement(i).getSupport();
+    bool (*comparator[3])(const BoundaryMesh::UVertex&,
+                            const BoundaryMesh::UVertex&) = {
       &vertexLtComparison<0>, &vertexLtComparison<1>, &vertexLtComparison<2> };
 
     for (unsigned int j = 0; j < 3; ++j)
index 9d07d237db179383b3f9145d71b1c2c810630cdb..f38ebc8dd497e5c1f01895beca77b0fb79eb73ee 100644 (file)
@@ -4,41 +4,71 @@
 #include "../hilbert.hpp"
 #include <vector>
 extern "C" {
-#include "HLib/sparsematrix.h"
+#include <HLib/sparsematrix.h>
 }
 
 namespace space
 {
+  template < class TElement,
+                unsigned int maximumNumberOfDegreesOfFreedomPerFace = 0,
+                class TMesh = BoundaryMesh >
+  class Space
+  {
+    public:
+      typedef TElement Element;
+
+      Space( const TMesh& mesh, unsigned int numberOfElements );
+      const TElement& operator[](unsigned int id) const;
+      const TElement& getElement(unsigned int id) const;
+      unsigned int getNumberOfElements() const;
+
+      std::vector< const TElement* > getDegreesOfFreedomForFace(
+          const typename TMesh::Face& face) const;
+
+    protected:
+      void addElement( std::vector< const typename TMesh::Face* > faces );
+      const TMesh& mesh_; // MK: changed from private to protected
+
+    private:
+      Space();
+      std::vector< TElement > elements_;
+      std::vector< const TElement* > face2elements_;
+  };
+/*
+  template < class TElement, class TMesh >
+  class Space< TElement, -1, TMesh >
+  {
+
+
+  };
+*/
+
   class P0Element
   {
     public:
-      P0Element(const BoundaryMesh::traits::Face& face);
-      const BoundaryMesh::traits::Face& getSupport() const;
-      double operator()(
-          const BoundaryMesh::traits::UnlinkedVertex& point) const;
+      P0Element(const std::vector< const BoundaryMesh::Face* > faces);
+      P0Element(const BoundaryMesh::Face& face);
+      const BoundaryMesh::Face& getSupport() const;
+//      double operator()(
+//          const BoundaryMesh::UVertex& point) const;
 
     private:
       P0Element();
-      const BoundaryMesh::traits::Face* face_;
+      const BoundaryMesh::Face* face_;
   };
 
   class P0Space
+    : public Space< P0Element, 1 >
   {
     public:
       P0Space(const BoundaryMesh& mesh);
-      const P0Element& operator[](unsigned int id) const;
-      const P0Element& getElement(unsigned int id) const;
-      unsigned int getNumberOfElements() const;
       clusterfactory* createClusterFactory() const;
 
     private:
-      const BoundaryMesh& mesh_;
-      std::vector< P0Element > elements_;
-
       template < unsigned int DIM >
       static bool vertexLtComparison(
-          const BoundaryMesh::traits::UnlinkedVertex& v1,
-          const BoundaryMesh::traits::UnlinkedVertex& v2)
+          const BoundaryMesh::UVertex& v1,
+          const BoundaryMesh::UVertex& v2)
       {
         return v1[DIM] < v2[DIM];
       }
index 22cc75d8f05a65a4f5021186c3dc634d4404f7a4..b05e71405aa34de28433ea602a87f07d892cce03 100644 (file)
@@ -1,27 +1,32 @@
-#include "../boundary_mesh/Mesh.hpp"
-#include "../boundary_mesh/mixin/LoadingObj.hpp"
-#include "../boundary_mesh/mixin/ExportingObj.hpp"
-#include "../boundary_mesh/mixin/RefiningAdaptivly.hpp"
-#include "../boundary_mesh/mixin/RefiningUniformly.hpp"
-#include "../boundary_mesh/layer/Marker.hpp"
+//#include "../boundary_mesh/Mesh.hpp"
+//#include "../boundary_mesh/LoadingObj.hpp"
+//#include "../boundary_mesh/ExportingObj.hpp"
+//#include "../boundary_mesh/mixin/RefiningAdaptivly.hpp"
+//#include "../boundary_mesh/RefiningUniformly.hpp"
+//#include "../boundary_mesh/Marker.hpp"
 #include "P0Space.hpp"
 
 using namespace boundary_mesh;
 using namespace space;
-typedef mixin::LoadingObj<
-        mixin::ExportingObj<
-       mixin::RefiningAdaptivly <
-       mixin::RefiningUniformly <
-        Mesh<> > > > >
-        ObjMesh;
+//typedef mixin::LoadingObj<
+//        mixin::ExportingObj<
+//     mixin::RefiningAdaptivly <
+//     mixin::RefiningUniformly <
+//        Mesh<> > > > >
+//        ObjMesh;
 
+
+//typedef layer::LoadingObj<
+//    BoundaryMesh >
+//      ObjMesh;
+//
 int main()
 {
-  const ObjMesh::LoadingObj m("test.obj");
+  BoundaryMesh m = BoundaryMesh::Alg::loadFromObj("test.obj");
   clock_t commence, complete;
 
   commence = clock();
-  ObjMesh refined = m.refineUniform();
+  BoundaryMesh refined = BoundaryMesh::Alg::refineUniformly(m);
   complete = clock();
   long lTime = (complete-commence);
   std::cerr << "Time for refinement: "
@@ -33,13 +38,13 @@ int main()
   lTime = (complete-commence);
   std::cerr << "Time for setting up space: "
             << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
-
-  commence = clock();
-  s.createClusterFactory();
-  complete = clock();
-  lTime = (complete-commence);
-  std::cerr << "Time for setting up cluster factory: "
-            << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
+//
+//  commence = clock();
+//  s.createClusterFactory();
+//  complete = clock();
+//  lTime = (complete-commence);
+//  std::cerr << "Time for setting up cluster factory: "
+//            << lTime * 1000.0 / CLOCKS_PER_SEC << std::endl;
 
   return 0;
 }
diff --git a/src/bem3d/src/spaces/testP0Space b/src/bem3d/src/spaces/testP0Space
new file mode 100755 (executable)
index 0000000..fc3fe2f
Binary files /dev/null and b/src/bem3d/src/spaces/testP0Space differ
diff --git a/src/bem3d/src/stamp-h1 b/src/bem3d/src/stamp-h1
new file mode 100644 (file)
index 0000000..57ea58e
--- /dev/null
@@ -0,0 +1 @@
+timestamp for src/config.h
index ada1f31336c74662b2c190c42ee2d1d7448d4fa0..f78998570fb93de2cea1cb053ad342c630694c77 100644 (file)
@@ -1,10 +1,11 @@
-\r
 #include <iostream>\r
 #include <cmath>\r
+#include <cassert>\r
 #include "mex.h"\r
 #include <stdlib.h>\r
 \r
 #define my_PI 3.141592653589793\r
+#define EPS 0.02\r
 \r
 using namespace std;\r
 \r
@@ -20,148 +21,149 @@ double F_par(double, double, double, double, double, double, double);
 // sol = F_ort(x1,x2,y1,y2,d1,d2,d3);\r
 //double F_ort(double, double, double, double, double, double, double);\r
 \r
+\r
+double slpADLO(double, double, double, double, double);\r
+double compute_g0(double, double, double, double);\r
+double FLO_plane(double, double, double, double, double, double, double);\r
+\r
+\r
 // sol = quadInt((F_par/F_ort),s1,s2,k1,k2,t1,t2,l1,l2,d1,d2,d3);\r
-double quadInt(double (*)(double,double,double,double,double,double,double),\r
-       double ,double, double ,double ,double ,double ,double ,double ,\r
-       double , double , double );\r
-\r
-void mexFunction(\r
-                int          nlhs,\r
-                mxArray      *plhs[],\r
-                int          nrhs,\r
-                const mxArray *prhs[]\r
-                )\r
-{    \r
-    //sicherheitsabfragen zu Datengroessen\r
-    if (nrhs !=2)\r
-        mexErrMsgTxt("expected (coordinates(Nx3),elements(Mx3))");\r
-    if (nlhs >1)\r
-        mexErrMsgTxt("has only one output argument");\r
-    \r
-    int cm = mxGetM(prhs[0]);\r
-    int cn = mxGetN(prhs[0]);\r
-    \r
-    if(cn!=3)\r
-        mexErrMsgTxt("expected coordinates (Nx3)");\r
-    int em = mxGetM(prhs[1]);\r
-    int en = mxGetN(prhs[1]);\r
-    if(en!=3)\r
-        mexErrMsgTxt("expected elements (Mx3)");\r
-    //Vorbereitung der Daten\r
-    \r
-    plhs[0] = mxCreateDoubleMatrix(em,em,mxREAL);\r
-    double * A = mxGetPr(plhs[0]);\r
-    double * C = mxGetPr(prhs[0]);\r
-    double * E = mxGetPr(prhs[1]);\r
-    \r
-    double * x1 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * x2 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * x3 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * xn = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    \r
-    double * y1 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * y2 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * y3 = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    double * yn = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
-    \r
-    double * d = mxGetPr(mxCreateDoubleMatrix(3,1,mxREAL));\r
+double quadInt(\r
+               double(*)(double, double, double, double, double, double, double),\r
+               double, double, double, double, double, double, double, double, double,\r
+               double, double);\r
+\r
+void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {\r
+       //sicherheitsabfragen zu Datengroessen\r
+       if (nrhs != 2)\r
+               mexErrMsgTxt("expected (coordinates(Nx3),elements(Mx3))");\r
+       if (nlhs > 1)\r
+               mexErrMsgTxt("has only one output argument");\r
+\r
+       int cm = mxGetM(prhs[0]);\r
+       int cn = mxGetN(prhs[0]);\r
+\r
+       if (cn != 3)\r
+               mexErrMsgTxt("expected coordinates (Nx3)");\r
+       int em = mxGetM(prhs[1]);\r
+       int en = mxGetN(prhs[1]);\r
+       if (en != 3)\r
+               mexErrMsgTxt("expected elements (Mx3)");\r
+       //Vorbereitung der Daten\r
+\r
+       plhs[0] = mxCreateDoubleMatrix(em, em, mxREAL);\r
+       double * A = mxGetPr(plhs[0]);\r
+       double * C = mxGetPr(prhs[0]);\r
+       double * E = mxGetPr(prhs[1]);\r
+\r
+       double * x1 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * x2 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * x3 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * xn = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+\r
+       double * y1 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * y2 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * y3 = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+       double * yn = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
+\r
+       double * d = mxGetPr(mxCreateDoubleMatrix(3, 1, mxREAL));\r
 \r
        double tmp;\r
 \r
+       int rx, ry;\r
+\r
+       //Ausrechnen\r
+       for (int j = 0; j < em; ++j) {\r
+               x1[0] = C[(int) E[j] - 1];\r
+               x1[1] = C[cm + (int) E[j] - 1];\r
+               x1[2] = C[2 * cm + (int) E[j] - 1];\r
+\r
+               x2[0] = C[(int) E[em + j] - 1];\r
+               x2[1] = C[cm + (int) E[em + j] - 1];\r
+               x2[2] = C[2 * cm + (int) E[em + j] - 1];\r
+\r
+               x3[0] = C[(int) E[2 * em + j] - 1];\r
+               x3[1] = C[cm + (int) E[2 * em + j] - 1];\r
+               x3[2] = C[2 * cm + (int) E[2 * em + j] - 1];\r
+\r
+               xn[0] = (x2[1] - x1[1]) * (x3[2] - x1[2]) - (x2[2] - x1[2]) * (x3[1]\r
+                               - x1[1]);\r
+               xn[1] = (x2[2] - x1[2]) * (x3[0] - x1[0]) - (x2[0] - x1[0]) * (x3[2]\r
+                               - x1[2]);\r
+               xn[2] = (x2[0] - x1[0]) * (x3[1] - x1[1]) - (x2[1] - x1[1]) * (x3[0]\r
+                               - x1[0]);\r
+\r
+               //if(xn[0]*xn[0]+xn[1]*xn[1]<xn[2]*xn[2])\r
+               if (xn[2] != 0)\r
+                       rx = 2;\r
+               else if (xn[1] != 0)\r
+                       rx = 1;\r
+               else\r
+                       rx = 0;\r
+\r
+               // printf("(%d n- %f | %f | %f)\n",j,xn[0],xn[1],xn[2]);\r
+\r
+               for (int k = 0; k < em; ++k) {\r
+                       y1[0] = C[(int) E[k] - 1];\r
+                       y1[1] = C[cm + (int) E[k] - 1];\r
+                       y1[2] = C[2 * cm + (int) E[k] - 1];\r
+\r
+                       y2[0] = C[(int) E[em + k] - 1];\r
+                       y2[1] = C[cm + (int) E[em + k] - 1];\r
+                       y2[2] = C[2 * cm + (int) E[em + k] - 1];\r
+\r
+                       y3[0] = C[(int) E[2 * em + k] - 1];\r
+                       y3[1] = C[cm + (int) E[2 * em + k] - 1];\r
+                       y3[2] = C[2 * cm + (int) E[2 * em + k] - 1];\r
+\r
+                       yn[0] = (y2[1] - y1[1]) * (y3[2] - y1[2]) - (y2[2] - y1[2])\r
+                                       * (y3[1] - y1[1]);\r
+                       yn[1] = (y2[2] - y1[2]) * (y3[0] - y1[0]) - (y2[0] - y1[0])\r
+                                       * (y3[2] - y1[2]);\r
+                       yn[2] = (y2[0] - y1[0]) * (y3[1] - y1[1]) - (y2[1] - y1[1])\r
+                                       * (y3[0] - y1[0]);\r
+\r
+                       if (yn[2] != 0)\r
+                               ry = 2;\r
+                       else if (yn[1] != 0)\r
+                               ry = 1;\r
+                       else\r
+                               ry = 0;\r
+\r
+                       d[0] = y1[0] - x1[0];\r
+                       d[1] = y1[1] - x1[1];\r
+                       d[2] = y1[2] - x1[2];\r
+\r
+                       if (rx = ry) {\r
+                               if (rx = 2) {\r
+                                       //printf("%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n",j,k,x1[0],x1[1],x2[0],x3[1],y1[0],y1[1],y2[0],y3[1],d[0],d[1],d[2]);\r
+                                       //printf("%d%d %.1f %.1f %.1f\n",j,k,d[0],d[1],d[2]);\r
+                                       tmp = quadInt(FLO_plane, x1[0], x1[1], x2[0], x3[1], y1[0],\r
+                                                       y1[1], y2[0], y3[1], d[0], d[1], d[2]);\r
+                                       //       printf("%d%d|%.2f\n",j,k,tmp);\r
+                                       A[(k * em) + j] = 1. / (4 * my_PI) * tmp;\r
+\r
+                               } else\r
+                                       A[(k * em) + j] = 0;\r
+                       } else {\r
+                               A[(k * em) + j] = 0;\r
+                       }\r
+\r
+                       // Vorbereiten der DATEN\r
+                       //   ej = coordinates(elements(j,:)',:);\r
+                       //   ek = coordinates(elements(k,:)',:);\r
+                       //   d = ek(1,:) - ej(1,:);\r
+\r
+                       // AUSRECHNEN\r
+                       //     A[(k*em)+j] = 1./(4*my_PI);// *\r
+                       // quadInt(F_par,\r
+                       //   ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));\r
+\r
+               }\r
 \r
-       int rx,ry;\r
-    \r
-    \r
-    \r
-    //Ausrechnen\r
-for (int j=0;j<em;++j){\r
-        x1[0] = C[(int)E[j]-1];\r
-        x1[1] = C[cm+(int)E[j]-1];\r
-        x1[2] = C[2*cm+(int)E[j]-1];\r
-\r
-        x2[0] = C[(int)E[em+j]-1];\r
-        x2[1] = C[cm+(int)E[em+j]-1];\r
-        x2[2] = C[2*cm+(int)E[em+j]-1];\r
-\r
-        x3[0] = C[(int)E[2*em+j]-1];\r
-        x3[1] = C[cm+(int)E[2*em+j]-1];\r
-        x3[2] = C[2*cm+(int)E[2*em+j]-1];\r
-\r
-        xn[0] = (x2[1]-x1[1])*(x3[2]-x1[2])-(x2[2]-x1[2])*(x3[1]-x1[1]);\r
-        xn[1] = (x2[2]-x1[2])*(x3[0]-x1[0])-(x2[0]-x1[0])*(x3[2]-x1[2]);\r
-        xn[2] = (x2[0]-x1[0])*(x3[1]-x1[1])-(x2[1]-x1[1])*(x3[0]-x1[0]);\r
-\r
-        //if(xn[0]*xn[0]+xn[1]*xn[1]<xn[2]*xn[2])\r
-        if(xn[2]!=0)\r
-                rx = 2;\r
-        else if(xn[1]!=0)\r
-                rx = 1;\r
-        else\r
-                rx = 0;\r
-\r
-       // printf("(%d n- %f | %f | %f)\n",j,xn[0],xn[1],xn[2]);\r
-\r
-    for (int k=0;k<em;++k){\r
-        y1[0] = C[(int)E[k]-1];\r
-        y1[1] = C[cm+(int)E[k]-1];\r
-        y1[2] = C[2*cm+(int)E[k]-1];\r
-\r
-        y2[0] = C[(int)E[em+k]-1];\r
-        y2[1] = C[cm+(int)E[em+k]-1];\r
-        y2[2] = C[2*cm+(int)E[em+k]-1];\r
-\r
-        y3[0] = C[(int)E[2*em+k]-1];\r
-        y3[1] = C[cm+(int)E[2*em+k]-1];\r
-        y3[2] = C[2*cm+(int)E[2*em+k]-1];\r
-\r
-        yn[0] = (y2[1]-y1[1])*(y3[2]-y1[2])-(y2[2]-y1[2])*(y3[1]-y1[1]);\r
-        yn[1] = (y2[2]-y1[2])*(y3[0]-y1[0])-(y2[0]-y1[0])*(y3[2]-y1[2]);\r
-        yn[2] = (y2[0]-y1[0])*(y3[1]-y1[1])-(y2[1]-y1[1])*(y3[0]-y1[0]);\r
-\r
-        if(yn[2]!=0)\r
-                ry = 2;\r
-        else if(yn[1]!=0)\r
-                ry = 1;\r
-        else\r
-                ry = 0;\r
-\r
-        d[0] = y1[0]-x1[0];\r
-        d[1] = y1[1]-x1[1];\r
-        d[2] = y1[2]-x1[2];\r
-\r
-        if(rx=ry){\r
-                if(rx=2){\r
-                        //printf("%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n",j,k,x1[0],x1[1],x2[0],x3[1],y1[0],y1[1],y2[0],y3[1],d[0],d[1],d[2]);\r
-                        //printf("%d%d %.1f %.1f %.1f\n",j,k,d[0],d[1],d[2]);\r
-             tmp = quadInt(F_par,x1[0],x1[1],x2[0],x3[1],y1[0],y1[1],y2[0],y3[1],d[0],d[1],d[2]);\r
-               //       printf("%d%d|%.2f\n",j,k,tmp);\r
-                        A[(k*em)+j] = 1./(4*my_PI)*tmp;\r
-\r
-                }else\r
-                        A[(k*em)+j] = 0;\r
-        }else{\r
-                A[(k*em)+j] = 0;\r
-        }\r
-\r
-\r
-\r
\r
-     // Vorbereiten der DATEN\r
-     //   ej = coordinates(elements(j,:)',:);\r
-     //   ek = coordinates(elements(k,:)',:);\r
-     //   d = ek(1,:) - ej(1,:);\r
-\r
-     // AUSRECHNEN\r
-  //     A[(k*em)+j] = 1./(4*my_PI);// *\r
-         // quadInt(F_par,\r
-         //   ,ej(1,1),ej(1,2),ej(2,1), ej(3,2),ek(1,1), ek(1,2),ek(2,1), ek(3,2));\r
-\r
-    }\r
\r
-   \r
-}    \r
-     //Rueckgabe (eventuell zurueck schreiben)     \r
- //   mxFree(x1);\r
+       }\r
+       //Rueckgabe (eventuell zurueck schreiben)\r
+       //   mxFree(x1);\r
        //mxFree(x2);\r
        //mxFree(x3);\r
        //mxFree(y1);\r
@@ -170,110 +172,201 @@ for (int j=0;j<em;++j){
        //mxFree(xn);\r
        //mxFree(yn);\r
        //mxFree(d);\r
-    \r
- return;   \r
+\r
+       return;\r
 }\r
 \r
+int inline sign(double x) {\r
+       return x > 0 ? 1 : (x < 0 ? -1 : 0);\r
+}\r
+\r
+double inline arsinh(double x) {\r
+       return log(x + sqrt(x * x + 1));\r
+}\r
 \r
-       int inline sign(double x)\r
-       {\r
-               return x > 0 ? 1 : (x < 0 ? -1 : 0);\r
+//y-x muss != 0 sein\r
+double g0(double p, double y, double x, double l) {\r
+       //printf("%.1f | %.1f | %.1f | %.1f +",p,x,y,l);\r
+\r
+       double sol = 0;\r
+\r
+       if (l != 0) {\r
+               if (p == 0.5) {\r
+                       sol = (y - x) / 2 * sqrt((y - x) * (y - x) + l * l) + l * l / 2\r
+                                       * arsinh((y - x) / fabs(l));\r
+                       //          printf("%.2f |",sol);\r
+               } else if (p == 0)\r
+                       sol = y - x;\r
+               else if (p == -0.5)\r
+                       sol = asinh((y - x) / fabs(l));\r
+               else if (p == -1)\r
+                       sol = atan((y - x) / fabs(l));\r
+               else if (p == -1.5)\r
+                       sol = (y - x) / ((l * l) * sqrt((y - x) * (y - x) + l * l));\r
+               else\r
+                       sol = (y - x) * pow((y - x) * (y - x) + l * l, p) + 2 * p * l * l\r
+                                       * g0(p - 1, y, x, l) / (2 * p + 1);\r
+       } else {\r
+               if (p == -0.5)\r
+                       sol = sign(y - x) * log(fabs(y - x));\r
+               else\r
+                       sol = (y - x) * pow(fabs(y - x), 2 * p) / (2 * p + 1);\r
        }\r
-    \r
-    double inline arsinh(double x)\r
-    {\r
-        return log(x+sqrt(x*x+1));\r
-    }\r
-    \r
-    //y-x muss != 0 sein\r
-    double g0(double p, double y, double x, double l){\r
-    //printf("%.1f | %.1f | %.1f | %.1f +",p,x,y,l);\r
-    \r
-               double sol = 0;\r
-\r
-               if(l!=0){\r
-            if(p==0.5){\r
-                sol = (y-x)/2*sqrt((y-x)*(y-x)+l*l)+\r
-                        l*l/2*arsinh((y-x)/abs(l));\r
-      //          printf("%.2f |",sol);\r
-            }else if(p==0)\r
-                sol = y-x;\r
-            else if(p==-0.5)\r
-                sol = arsinh((y-x)/abs(l));\r
-            else if(p==-1)\r
-                sol = atan((y-x)/abs(l));\r
-            else if(p==-1.5)\r
-                sol = (y-x)/((l*l)*sqrt((y-x)*(y-x)+l*l));\r
-            else\r
-                sol = (y-x)*pow((y-x)*(y-x)+l*l,p)+2*p*l*l*\r
-                        g0(p-1,y,x,l)/(2*p+1);\r
-               }else{\r
-            if(p==-0.5)\r
-                               sol = sign(y-x)*log(abs(y-x));\r
-                       else\r
-                               sol = (y-x)*pow(abs(y-x),2*p)/(2*p+1);\r
+\r
+       return sol;\r
+}\r
+\r
+double G00(double p, double y1, double y2, double x1, double x2, double l) {\r
+       //      printf("%.1f | %.1f %.1f | %.1f %.1f | %.1f +",p,x1,x2,y1,y2,l);\r
+\r
+       double sol = 0;\r
+       if (p == -1.5) {\r
+               if (l == 0) {\r
+                       sol = -sqrt((y1 - x1) * (y1 - x1) + (y2 - x2) * (y2 - x2)) / ((y1\r
+                                       - x1) * (y2 - x2));\r
+               } else {\r
+                       sol = sign((y1 - x1) * (y2 - x2)) / (2 * fabs(l)) * acos(\r
+                                       -2 * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2) / (((y1\r
+                                                       - x1) * (y1 - x1) + l * l) * ((y2 - x2) * (y2 - x2)\r
+                                                       + l * l)) + 1);\r
                }\r
-        \r
-        return sol;\r
-       }\r
-    \r
-    double G00(double p, double y1,double y2, double x1,double x2, double l) {\r
-//     printf("%.1f | %.1f %.1f | %.1f %.1f | %.1f +",p,x1,x2,y1,y2,l);\r
-        \r
-        double sol =0;\r
-               if(p==-1.5){\r
-                       if(l==0){\r
-                sol = -sqrt((y1-x1)*(y1-x1)+(y2-x2)*(y2-x2))\r
-                    /((y1-x1)*(y2-x2));\r
-                       }else{\r
-                sol = sign((y1-x1)*(y2-x2))/(2*abs(l))\r
-                    * acos(-2*(y1-x1)*(y1-x1)*(y2-x2)*(y2-x2)\r
-                    /(((y1-x1)*(y1-x1)+l*l)*((y2-x2)*(y2-x2)+l*l))+1);\r
-                       }\r
 \r
-               }else if(p==-0.5){\r
-            if(l!=0)\r
-               sol = 2*p*l*l*G00(p-1,y1,y2,x1,x2,l);  \r
-            if((y1-x1)!=0)\r
-               sol += (y1-x1)*g0(p,y2,x2,sqrt((y1-x1)*(y1-x1)+l*l));\r
-            if((y2-x2)!=0)\r
-               sol += (y2-x2)*g0(p,y1,x1,sqrt((y2-x2)*(y2-x2)+l*l));\r
-            sol /= 2*p+2;\r
-               }else{\r
-            mexErrMsgTxt("no case for p defined");\r
-        }\r
-        \r
-               return sol;\r
+       } else if (p == -0.5) {\r
+               if (l != 0)\r
+                       sol = 2 * p * l * l * G00(p - 1, y1, y2, x1, x2, l);\r
+               if ((y1 - x1) != 0)\r
+                       sol += (y1 - x1) * g0(p, y2, x2,\r
+                                       sqrt((y1 - x1) * (y1 - x1) + l * l));\r
+               if ((y2 - x2) != 0)\r
+                       sol += (y2 - x2) * g0(p, y1, x1,\r
+                                       sqrt((y2 - x2) * (y2 - x2) + l * l));\r
+               sol /= 2 * p + 2;\r
+       } else {\r
+               mexErrMsgTxt("no case for p defined");\r
        }\r
-    \r
-    \r
-    double F_par(double x1,double x2,double y1,double y2,double d1,double d2,double d3)\r
-    {\r
+\r
+       return sol;\r
+}\r
+\r
+double F_par(double x1, double x2, double y1, double y2, double d1, double d2,\r
+               double d3) {\r
 \r
        //       printf("%.1f %.1f | %.1f %.1f | %.1f %.1f %.1f",x1,x2,y1,y2,d1,d2,d3);\r
-        double sol = (x1-y1-d1)*(x2-y2-d2);\r
-    \r
-        if(sol!=0)\r
-            sol *= G00(-0.5,x1,x2,y1+d1,y2+d2,d3);\r
-\r
-        if((x1-y1-d1)!=0)\r
-            sol -= (x1-y1-d1)*g0(0.5,x1,y1+d1,sqrt((x2-y2-d2)*(x2-y2-d2)+d3*d3));\r
-\r
-        if((x2-y2-d2)!=0)\r
-            sol -= (x2-y2-d2)*g0(0.5,x2,y2+d2,sqrt((x1-y1-d1)*(x1-y1-d1)+d3*d3));\r
-\r
-        double hlp = ((x1-y1-d1)*(x1-y1-d1)+(x2-y2-d2)*(x2-y2-d2)+d3*d3);\r
-        sol +=  1./3*hlp*sqrt(hlp);\r
-        return sol;\r
-    }\r
-    \r
-    double inline quadInt(double (*f)(double,double,double,double,double,double,double),\r
-            double s1,double s2,double k1,double k2,double t1,double t2,double l1,double l2,\r
-            double d1, double d2, double d3)\r
-    {\r
-              \r
-                  return  f(k1,k2,l1,l2,d1,d2,d3)-f(k1,k2,l1,t2,d1,d2,d3)-f(k1,k2,t1,l2,d1,d2,d3)+f(k1,k2,t1,t2,d1,d2,d3)\r
-    -f(k1,s2,l1,l2,d1,d2,d3)+f(k1,s2,l1,t2,d1,d2,d3)+f(k1,s2,t1,l2,d1,d2,d3)-f(k1,s2,t1,t2,d1,d2,d3)\r
-    -f(s1,k2,l1,l2,d1,d2,d3)+f(s1,k2,l1,t2,d1,d2,d3)+f(s1,k2,t1,l2,d1,d2,d3)-f(s1,l2,t1,t2,d1,d2,d3)\r
-    +f(s1,s2,l1,l2,d1,d2,d3)-f(s1,0,l1,t2,d1,d2,d3)-f(s1,s2,t1,l2,d1,d2,d3)+f(s1,s2,t1,t2,d1,d2,d3);                \r
-     }
\ No newline at end of file
+       double sol = (x1 - y1 - d1) * (x2 - y2 - d2);\r
+\r
+       if (sol != 0)\r
+               sol *= slpADLO( x1, x2, y1 + d1, y2 + d2, d3);\r
+\r
+       if ((x1 - y1 - d1) != 0)\r
+               sol -= (x1 - y1 - d1) * compute_g0(0.5, x1, y1 + d1,\r
+                               sqrt((x2 - y2 - d2) * (x2 - y2 - d2) + d3 * d3));\r
+\r
+       if ((x2 - y2 - d2) != 0)\r
+               sol -= (x2 - y2 - d2) * compute_g0(0.5, x2, y2 + d2,\r
+                               sqrt((x1 - y1 - d1) * (x1 - y1 - d1) + d3 * d3));\r
+\r
+       double hlp = ((x1 - y1 - d1) * (x1 - y1 - d1) + (x2 - y2 - d2) * (x2 - y2\r
+                       - d2) + d3 * d3);\r
+       sol += 1. / 3 * hlp * sqrt(hlp);\r
+       return sol;\r
+}\r
+\r
+double inline quadInt(\r
+               double(*f)(double, double, double, double, double, double, double),\r
+               double s1, double s2, double k1, double k2, double t1, double t2,\r
+               double l1, double l2, double d1, double d2, double d3) {\r
+\r
+       return f(k1, k2, l1, l2, d1, d2, d3) - f(k1, k2, l1, t2, d1, d2, d3) - f(\r
+                       k1, k2, t1, l2, d1, d2, d3) + f(k1, k2, t1, t2, d1, d2, d3) - f(k1,\r
+                       s2, l1, l2, d1, d2, d3) + f(k1, s2, l1, t2, d1, d2, d3) + f(k1, s2,\r
+                       t1, l2, d1, d2, d3) - f(k1, s2, t1, t2, d1, d2, d3) - f(s1, k2, l1,\r
+                       l2, d1, d2, d3) + f(s1, k2, l1, t2, d1, d2, d3) + f(s1, k2, t1, l2,\r
+                       d1, d2, d3) - f(s1, l2, t1, t2, d1, d2, d3) + f(s1, s2, l1, l2, d1,\r
+                       d2, d3) - f(s1, 0, l1, t2, d1, d2, d3) - f(s1, s2, t1, l2, d1, d2,\r
+                       d3) + f(s1, s2, t1, t2, d1, d2, d3);\r
+}\r
+\r
+double slpADLO(double y1, double y2, double x1, double x2, double a) {\r
+       double G3 = 0;\r
+       double gL = 0;\r
+       double gK = 0;\r
+       double tmp;\r
+\r
+       tmp = y1 - x1;\r
+       if (fabs(tmp) >= EPS * y1) {\r
+               tmp = sqrt(y1 * y1 + x1 * x1 + a * a - 2 * y1 * x1);\r
+               gL = compute_g0(-0.5, y2, x2, tmp);\r
+       }\r
+       tmp = y2 - x2;\r
+       if (fabs(tmp) >= EPS * y2) {\r
+               tmp = sqrt(y2 * y2 + x2 * x2 + a * a - 2 * y2 * x2);\r
+               gK = compute_g0(-0.5, y1, x1, tmp);\r
+       }\r
+       if (fabs(a * a) > EPS) {\r
+               if ((y1 - x1) * (y2 - x2) * a >= 0)\r
+                       tmp = 1.;\r
+               else\r
+                       tmp = -1.;\r
+\r
+               G3 = tmp * acos(\r
+                               (-2. * (y1 - x1) * (y1 - x1) * (y2 - x2) * (y2 - x2)) / (((y1\r
+                                               - x1) * (y1 - x1) + a * a) * ((y2 - x2) * (y2 - x2) + a\r
+                                               * a)) + 1.) / (2. * a);\r
+       }\r
+\r
+       return (y1 - x1) * gL + (y2 - x2) * gK - a * a * G3;\r
+}\r
+\r
+double compute_g0(double p, double y, double x, double a) {\r
+       int sp = (int) 2 * (p - EPS); // MK (p-EPS) instead of (p+EPS)\r
+       //printf("\n compute_g0, p = %lf, sp = %d\n",p,sp);\r
+       assert(\r
+                       p == 0 || (p == -0.5) || (p == -1) || (p == -1.5) || (fabs(a)\r
+                                       <= EPS));\r
+       if (fabs(a) <= EPS) {\r
+               // printf("\n a < eps\n");\r
+               switch (sp) {\r
+               case 0:\r
+                       return y - x;\r
+               case -1:\r
+                       return log(fabs(x - y)) * (y - x) / fabs(y - x);\r
+               case -2:\r
+                       return -(y - x) / fabs(y - x) / fabs(y - x);\r
+               case -3:\r
+                       return -0.5 * (y - x) / fabs(y - x) / fabs(y - x) / fabs(y - x);\r
+               }\r
+       } else {\r
+               //  printf("\n a > eps\n");\r
+               switch (sp) {\r
+               case 0:\r
+                       return y - x;\r
+               case -1:\r
+                       return asinh((y - x) / fabs(a));\r
+               case -2:\r
+                       return atan((y - x) / fabs(a));\r
+               case -3:\r
+                       return (y - x) * pow((x * x + y * y + a * a - 2 * x * y), -0.5)\r
+                                       / (a * a);\r
+               default:\r
+                       printf("p must be either 0, -1/2, -1 or -3/2.");\r
+                       return NAN;\r
+               }\r
+       }\r
+}\r
+\r
+double FLO_plane(double x1, double x2, double y1, double y2, double delta1, double delta2, double a){\r
+  double yd1  = y1+delta1;\r
+  double yd2  = y2+delta2;\r
+  double tmp1 = x1-y1-delta1;\r
+  double tmp2 = x2-y2-delta2;\r
+  double tmp3 = sqrt( tmp2*tmp2 + a*a );\r
+  double tmp4 = sqrt( tmp1*tmp1 + a*a );\r
+  double tmp5 = pow(tmp1*tmp1 + tmp2*tmp2 + a*a,3./2.);\r
+  double rval = 0;\r
+\r
+  rval = tmp1*tmp2*slpADLO(x1,x2,yd1,yd2,a)\r
+    - tmp1*compute_g0(-0.5,x1,yd1,tmp3)\r
+    - tmp2*compute_g0(-0.5,x2,yd2,tmp4)\r
+    + tmp5/3.;\r
+  return rval;\r
+}\r
diff --git a/src/build_A.mexa64 b/src/build_A.mexa64
new file mode 100755 (executable)
index 0000000..89a6868
Binary files /dev/null and b/src/build_A.mexa64 differ
diff --git a/src/exportCOEL.m b/src/exportCOEL.m
new file mode 100644 (file)
index 0000000..92a1212
--- /dev/null
@@ -0,0 +1,18 @@
+function exportCOEL(coo, ele, file)
+%EXPORTCOEL Summary of this function goes here
+%   Detailed explanation goes here
+
+dat = fopen(file,'w');
+
+    for i=1:size(coo,1);
+        fprintf(dat,'v %.4f %.4f %.4f\n',coo(i,:));
+    end
+        fprintf(dat,'\n');
+    for i=1:size(ele,1);
+        fprintf(dat,'f %.0f %.0f %.0f\n',ele(i,:));
+    end
+
+fclose(dat);
+
+end
+
index e0c2551038afb4395232038b4b8fadc8772e29c2..7424977efacf073f996f465dcdea256490f6dae8 100644 (file)
@@ -2,13 +2,13 @@
 \r
 load exmpl_2DLShape\r
 \r
-A = build_A2(coordinates,elements);\r
+A = build_A(coordinates,elements);\r
 b = sqrt(sum(quad_norm(coordinates,elements,'w').^2,2));\r
 x = A\b\r
 xe = x'*A*x;\r
 \r
 [coordinates_fine,elements_fine, f2s]=refineQuad(coordinates,elements,ones(1,size(elements,1)));\r
-A_fine = build_A2(coordinates_fine,elements_fine);\r
+A_fine = build_A(coordinates_fine,elements_fine);\r
 b = sqrt(sum(quad_norm(coordinates_fine,elements_fine,'w').^2,2));\r
 x_fine = A_fine\b;\r
 xe_fine = x_fine'*A_fine*x_fine;\r