Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial import, switched from svn to git.

  • Loading branch information...
commit 1ecfed5e4a48404bd8d9ca7a50a5ae539b075364 0 parents
@jwf authored
Showing with 126,929 additions and 0 deletions.
  1. +414 −0 .cproject
  2. +82 −0 .project
  3. +169 −0 BuildTree.cpp
  4. +11 −0 BuildTree.h
  5. BIN  BuildTree.o
  6. +116 −0 Classifier.cpp
  7. +27 −0 Classifier.h
  8. BIN  Classifier.o
  9. +166 −0 ClassifyTrajectory.cpp
  10. +24 −0 ClassifyTrajectory.h
  11. BIN  ClassifyTrajectory.o
  12. +19 −0 Makefile
  13. BIN  ManifoldExperiment.o
  14. +227 −0 TDEModel.cpp
  15. +49 −0 TDEModel.h
  16. BIN  TDEModel.o
  17. +92 −0 Utils.cpp
  18. +44 −0 Utils.h
  19. BIN  Utils.o
  20. BIN  buildtree
  21. BIN  classifytrajectory
  22. +6 −0 data/.svn/dir-prop-base
  23. +342 −0 data/.svn/entries
  24. +11,845 −0 data/.svn/text-base/bike-2009-03-18.csv.svn-base
  25. +1,770 −0 data/.svn/text-base/bike.dat.svn-base
  26. +4,675 −0 data/.svn/text-base/mixed.dat.svn-base
  27. +7,496 −0 data/.svn/text-base/run-2009-03-02.csv.svn-base
  28. +1,701 −0 data/.svn/text-base/run.dat.svn-base
  29. +501 −0 data/.svn/text-base/stand.dat.svn-base
  30. +867 −0 data/.svn/text-base/standing-2009-02-27.csv.svn-base
  31. +2,870 −0 data/.svn/text-base/walk-2009-02-27-1.csv.svn-base
  32. +1,701 −0 data/.svn/text-base/walk.dat.svn-base
  33. +1,351 −0 data/amin-train.dat
  34. +4,007 −0 data/amin-train.dat.dmp
  35. +11,845 −0 data/bike-2009-03-18.csv
  36. +1,770 −0 data/bike.dat
  37. +5,246 −0 data/bike.dat.dmp
  38. +1,351 −0 data/cosmin-train.dat
  39. +4,007 −0 data/cosmin-train.dat.dmp
  40. +4,675 −0 data/mixed.dat
  41. +14,011 −0 data/mixed.dat.dmp
  42. +1,251 −0 data/robert-train.dat
  43. +3,707 −0 data/robert-train.dat.dmp
  44. +7,496 −0 data/run-2009-03-02.csv
  45. +1,701 −0 data/run.dat
  46. +5,063 −0 data/run.dat.dmp
  47. 0  data/short.dat.dmp
  48. +1,351 −0 data/sophia-train.dat
  49. +4,007 −0 data/sophia-train.dat.dmp
  50. +4,007 −0 data/sophia-train.dat.dmp2
  51. +501 −0 data/stand.dat
  52. +1,466 −0 data/stand.dat.dmp
  53. +867 −0 data/standing-2009-02-27.csv
  54. +2,870 −0 data/walk-2009-02-27-1.csv
  55. +1,701 −0 data/walk.dat
  56. +5,039 −0 data/walk.dat.dmp
  57. +1,204 −0 data/walks-test.dat
  58. 0  data/walks-test.dat.dmp
  59. +1,171 −0 data/walks-test.out
  60. +4 −0 models-activities.ini
  61. +4 −0 models.ini
  62. +31 −0 plottrajectory.r
  63. +11 −0 run-walks-test.sh
  64. 0  stdin.dmp
414 .cproject
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359">
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359" moduleId="org.eclipse.cdt.core.settings" name="GCC">
+<macros>
+<stringListMacro name="PATH" type="VALUE_TEXT_LIST">
+<value name="/usr/local/bin"/>
+<value name="/usr/bin"/>
+<value name="/bin"/>
+<value name="/usr/sbin"/>
+<value name="/sbin"/>
+<value name="/usr/X11/bin"/>
+<value name="/opt/local/bin"/>
+<value name="/usr/local/git/bin"/>
+</stringListMacro>
+</macros>
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.MachO" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="ManifoldExperiment" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" description="" id="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359" name="GCC" parent="org.eclipse.cdt.build.core.emptycfg">
+<folderInfo id="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359.610500122" name="/" resourcePath="">
+<toolChain id="cdt.managedbuild.toolchain.gnu.macosx.base.2056097910" name="cdt.managedbuild.toolchain.gnu.macosx.base" resourceTypeBasedDiscovery="true" superClass="cdt.managedbuild.toolchain.gnu.macosx.base">
+<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.MachO" id="cdt.managedbuild.target.gnu.platform.macosx.base.42650726" name="Debug Platform" osList="macosx" superClass="cdt.managedbuild.target.gnu.platform.macosx.base"/>
+<builder arguments="" buildPath="${workspace_loc:/ManifoldExperiment}" command="make" id="cdt.managedbuild.target.gnu.builder.macosx.base.787790395" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.macosx.base"/>
+<tool id="cdt.managedbuild.tool.macosx.c.linker.macosx.base.1437896812" name="MacOS X C Linker" superClass="cdt.managedbuild.tool.macosx.c.linker.macosx.base"/>
+<tool commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.macosx.cpp.linker.macosx.base.504427869" name="MacOS X C++ Linker" superClass="cdt.managedbuild.tool.macosx.cpp.linker.macosx.base">
+<option id="macosx.cpp.link.option.paths.1399362901" name="Library search path (-L)" superClass="macosx.cpp.link.option.paths" valueType="libPaths">
+<listOptionValue builtIn="false" value="/Users/jordan/lib"/>
+</option>
+<option id="macosx.cpp.link.option.libs.259611449" name="Libraries (-l)" superClass="macosx.cpp.link.option.libs"/>
+<option id="macosx.cpp.link.option.flags.403775077" name="Linker flags" superClass="macosx.cpp.link.option.flags" value="-lANN -lddtsa" valueType="string"/>
+<inputType id="cdt.managedbuild.tool.macosx.cpp.linker.input.101178343" superClass="cdt.managedbuild.tool.macosx.cpp.linker.input">
+<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+</inputType>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.assembler.macosx.base.580399617" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.macosx.base">
+<inputType id="cdt.managedbuild.tool.gnu.assembler.input.142509451" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.archiver.macosx.base.1766045763" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.macosx.base"/>
+<tool commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.base.671372140" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.base">
+<option id="gnu.cpp.compiler.option.include.paths.1779535457" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+<listOptionValue builtIn="false" value="/Users/jordan/include"/>
+</option>
+<option id="gnu.cpp.compiler.option.optimization.level.1330876201" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level"/>
+<option id="gnu.cpp.compiler.option.optimization.flags.996230744" name="Other optimization flags" superClass="gnu.cpp.compiler.option.optimization.flags" value="" valueType="string"/>
+<option id="gnu.cpp.compiler.option.other.other.1418542121" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-pipe" valueType="string"/>
+<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1561636492" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+</tool>
+<tool commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.c.compiler.macosx.base.1729631561" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.macosx.base">
+<option id="gnu.c.compiler.option.include.paths.480034509" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+<listOptionValue builtIn="false" value="/Users/jordan/include"/>
+</option>
+<option id="gnu.c.compiler.option.optimization.level.2143240292" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" value="gnu.c.optimization.level.most" valueType="enumerated"/>
+<option id="gnu.c.compiler.option.optimization.flags.417172809" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="" valueType="string"/>
+<option id="gnu.c.compiler.option.misc.other.1759289466" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-pipe" valueType="string"/>
+<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.174535838" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+</tool>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359;cdt.managedbuild.toolchain.gnu.macosx.base.1439633359.610500122;cdt.managedbuild.tool.gnu.c.compiler.macosx.base.1729631561;cdt.managedbuild.tool.gnu.c.compiler.input.174535838">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.macosx.base.1439633359;cdt.managedbuild.toolchain.gnu.macosx.base.1439633359.610500122;cdt.managedbuild.tool.gnu.cpp.compiler.macosx.base.671372140;cdt.managedbuild.tool.gnu.cpp.compiler.input.1561636492">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+</cconfiguration>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<project id="ManifoldExperiment.null.370945434" name="ManifoldExperiment"/>
+</storageModule>
+</cproject>
82 .project
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>ManifoldExperiment</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/ManifoldExperiment}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>false</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+</projectDescription>
169 BuildTree.cpp
@@ -0,0 +1,169 @@
+//============================================================================
+// Name : ManifoldExperiment.cpp
+// Author :
+// Version :
+// Copyright : BSD
+// Description : Constructs a time-delay embedding of the data, equipped with
+// a model of the dynamics using an approximation of the
+// one step transition matrix based on averaging the sample
+// dynamics of the k-nearest neighbours.
+//============================================================================
+/*
+ * main.cpp
+ *
+ * Created on: Jun 28, 2009
+ * Author: jordan
+ */
+
+#include <stdlib.h>
+#include <cstring>
+#include <ctype.h>
+#include <iostream>
+#include <fstream>
+#include <ANN/ANN.h>
+#include <Tisean/tsa.h>
+
+#include "Utils.h"
+#include "BuildTree.h"
+#include "TDEModel.h"
+
+using namespace std;
+
+using namespace std;
+
+#define WID_STR "Build a model"
+
+void show_options(char *progname) {
+ what_i_do(progname, (char*)WID_STR);
+ fprintf(stderr,"\nUsage: %s [options]\n",progname);
+ fprintf(stderr,"Options:\n");
+ fprintf(stderr,"Everything not being a valid option will be interpreted as a"
+ " possible datafile.\nIf no datafile is given stdin is read."
+ " Just - also means stdin\n");
+ fprintf(stderr,"\t-l # of data [default: whole file]\n");
+ fprintf(stderr,"\t-x # of rows to ignore [default: 0]\n");
+ fprintf(stderr,"\t-M num. of columns to read [default: 1]\n");
+ fprintf(stderr,"\t-c columns to read [default: 1,...,M]\n");
+ fprintf(stderr,"\t-m dimension [default: 2]\n");
+ fprintf(stderr,"\t-p # dimension to reduce to using PCA [default: same as m, ie. no reduction]\n");
+ fprintf(stderr,"\t-d delay [default: 1]\n");
+ fprintf(stderr,"\t-V verbosity level [default: 1]\n\t\t"
+ "0='only panic messages'\n\t\t"
+ "1='+ input/output messages'\n");
+ fprintf(stderr,"\t-o output file [default: 'datafile'.del, "
+ "without -o: stdout]\n");
+ fprintf(stderr,"\t-h show these options\n");
+ exit(0);
+}
+void scan_options(int n,char **str, Settings *settings) {
+ char *out;
+ if ((out=check_option(str,n,'l','u')) != NULL)
+ sscanf(out,"%lu",&settings->length);
+ if ((out=check_option(str,n,'x','u')) != NULL)
+ sscanf(out,"%lu",&settings->exclude);
+ if ((out=check_option(str,n,'c','s')) != NULL)
+ settings->column=out;
+ if ((out=check_option(str,n,'M','u')) != NULL) {
+ sscanf(out,"%u",&settings->indim);
+ settings->dimset=1;
+ }
+ if ((out=check_option(str,n,'m','u')) != NULL) {
+ sscanf(out,"%u",&settings->embdim);
+ settings->embset=1;
+ }
+ if ((out=check_option(str,n,'p','u')) != NULL) {
+ sscanf(out,"%u",&settings->pcaembdim);
+ settings->pcaembset=1;
+ }
+ if ((out=check_option(str,n,'d','u')) != NULL) {
+ sscanf(out,"%u",&settings->delay);
+ settings->delayset=1;
+ }
+ if ((out=check_option(str,n,'V','u')) != NULL)
+ sscanf(out,"%u",&settings->verbosity);
+ if ((out=check_option(str,n,'o','o')) != NULL) {
+ settings->stdo=0;
+ if (strlen(out) > 0)
+ settings->outfile=out;
+ }
+}
+
+int main (int argc, char *argv[]) {
+ srand((unsigned)time(NULL));
+ TDEModel *tdeModel;
+ Settings settings = { ULONG_MAX, 0, 0xff, 1, 1, 2, 2, NULL, NULL, NULL, 0, 0, 0, 0, 1 };
+ char stin=0;
+ uint i, j;
+
+ if (scan_help(argc,argv))
+ show_options(argv[0]);
+ scan_options(argc,argv, &settings);
+
+ settings.infile=search_datafile(argc,argv,NULL,settings.verbosity);
+ if (settings.infile == NULL)
+ stin=1;
+ if (settings.outfile == NULL) {
+ if (!stin) {
+ check_alloc(settings.outfile=(char*)calloc(strlen(settings.infile)+5,sizeof(char)));
+ strcpy(settings.outfile,settings.infile);
+ strcat(settings.outfile,".dmp");
+ } else {
+ check_alloc(settings.outfile=(char*)calloc(10,sizeof(char)));
+ strcpy(settings.outfile,"stdin.dmp");
+ }
+ }
+ if (!settings.stdo) {
+ test_outfile(settings.outfile);
+ }
+
+ if (settings.delay < 1) {
+ fprintf(stderr,"Delay has to be larger than 0. Exiting!\n");
+ exit(DELAY_SMALL_ZERO);
+ }
+
+ if (!settings.pcaembset) {
+ settings.pcaembdim = settings.embdim;
+ }
+
+ tdeModel = new TDEModel(&settings);
+ tdeModel->DumpTree(settings.outfile);
+
+ ANNpoint ap = tdeModel->getDataPoint(0);
+ uint N = 1000;
+ ANNpointArray pts = annAllocPts(N, settings.embdim);;
+ tdeModel->simulateTrajectory(ap, pts, settings.embdim, N);
+
+/*
+ uint k = 8;
+ ANNidxArray nn_idx;
+ ANNdistArray dists;
+ nn_idx = new ANNidx[k];
+ dists = new ANNdist[k];
+
+ tdeModel->getKNN(ap, k, nn_idx, dists);
+
+
+ delete [] nn_idx;
+ delete [] dists;
+*/
+ // DUMP Manifold and Trajectory
+ ofstream fout("/tmp/trajectory.csv");
+ for (i = 0; i < N; i++) {
+ fout << pts[i][0];
+ for (j = 1; j < settings.embdim; j++) {
+ fout << "\t";
+ fout << pts[i][j];
+ }
+ fout << endl;
+ }
+ fout.close();
+ annDeallocPt(ap);
+ delete [] pts;
+
+ delete tdeModel;
+ annClose();
+ if (settings.column != NULL) free(settings.column);
+ if (settings.infile != NULL) free(settings.infile);
+ if (settings.outfile != NULL) free(settings.outfile);
+ return 0;
+}
11 BuildTree.h
@@ -0,0 +1,11 @@
+/*
+ * ManifoldExperiment.h
+ *
+ * Created on: 2009-06-29
+ * Author: jfrank8
+ */
+
+#ifndef MANIFOLDEXPERIMENT_H_
+#define MANIFOLDEXPERIMENT_H_
+
+#endif /* MANIFOLDEXPERIMENT_H_ */
BIN  BuildTree.o
Binary file not shown
116 Classifier.cpp
@@ -0,0 +1,116 @@
+/*
+ * Classifier.cpp
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include <vector>
+#include <omp.h>
+#include <ANN/ANN.h>
+
+#include "ClassifyTrajectory.h"
+#include "Classifier.h"
+
+#define MATCH_STEPS 32
+#define NEIGHBOURS 4
+
+using namespace std;
+
+Classifier::Classifier(vector<NamedModel*> models) {
+ this->models = models;
+}
+
+Classifier::~Classifier() {
+ // TODO Auto-generated destructor stub
+}
+
+void Classifier::go(double** data, ulong length) {
+ // For each set of MATCH_STEPS points, compute the likelihood under each model.
+ TDEModel* model;
+ uint M = models.size();
+ char* model_name;
+ double *projected_data;
+ ANNpointArray ap;
+ ANNidx nn_idx[NEIGHBOURS+1];
+ ANNdist dists[NEIGHBOURS+1];
+ CvMat *navg[M], *navg_next[M], *proj_next[M];
+ CvMat p, *mdists, *nn[M], *nnn[M];
+ ulong i,j,k,l,a,N,pcaembdim;
+ double dist, dist_next, *dst, *p1, *p2, *p3, *p4;
+ mdists = cvCreateMat(length-MATCH_STEPS-1,models.size(),CV_64FC1);
+ cvZero(mdists);
+
+ for (i = 0; i < M; i++) {
+ pcaembdim = models[i]->model->getPCAEmbDim();
+ navg[i] = cvCreateMat(1,pcaembdim,CV_64FC1);
+ navg_next[i] = cvCreateMat(1,pcaembdim,CV_64FC1);
+ proj_next[i] = cvCreateMat(1,pcaembdim, CV_64FC1);
+ nn[i] = cvCreateMat(NEIGHBOURS,pcaembdim, CV_64FC1);
+ nnn[i] = cvCreateMat(NEIGHBOURS,pcaembdim, CV_64FC1);
+ }
+
+ for (i = 0; i < length-MATCH_STEPS-1; i++) { //=MATCH_STEPS) {
+ // Get the MATCH_STEPS points
+ // cout << "Step " << i << endl;
+ for (k = 0; k < M; k++) {
+ model = models[k]->model;
+ model_name = models[k]->name;
+ N = model->getLength();
+ pcaembdim = model->getPCAEmbDim();
+ //projected_data = model->projectData(data+i*embdim,MATCH_STEPS+1,embdim);
+ get_ann_points(ap, data[k]+i*pcaembdim, MATCH_STEPS+1, pcaembdim);
+
+ for (j = 0; j < MATCH_STEPS; j++) {
+ p = cvMat(1,pcaembdim,CV_64FC1, ap[j]);// &projected_data[j*pcaembdim]);
+ // cout << "Checking point: ";
+ // print_matrix(&p);
+
+ model->getKNN(ap[j], NEIGHBOURS+1, nn_idx, dists);
+ for (l = 0; l < NEIGHBOURS; l++) {
+ // Make sure none of the first NEIGHBOURS neighbours is N
+ if (nn_idx[l] == ANN_NULL_IDX) break;
+ else if ((ulong)nn_idx[l] == N-1) nn_idx[l] = nn_idx[NEIGHBOURS];
+ p1 = (double*)(nn[k]->data.ptr+l*nn[k]->step);
+ p2 = (double*)(nnn[k]->data.ptr+l*nnn[k]->step);
+ p3 = model->getDataPoint(nn_idx[l]);
+ p4 = model->getDataPoint(nn_idx[l]+1);
+ for (a = 0; a < pcaembdim; a++) {
+ *p1++ = *p3++;
+ *p2++ = *p4++;
+ }
+ }
+ if (l < NEIGHBOURS) cout << "Warning: Couldn't find enough neighbours." << endl;
+
+ cvReduce(nn[k], navg[k], 0, CV_REDUCE_AVG );
+ dist = -sqrt(annDist(pcaembdim,(double*)p.data.ptr,(double*)navg[k]->data.ptr));
+
+ cvReduce(nnn[k], navg_next[k], 0, CV_REDUCE_AVG );
+ p1 = (double*)navg_next[k]->data.ptr;
+ p2 = (double*)navg[k]->data.ptr;
+ dst = (double*)proj_next[k]->data.ptr;
+ for (l = 0; l < pcaembdim; l++) {
+ *dst++ = ap[j][l] + (*p1++ - *p2++);
+ }
+ p = cvMat(1,pcaembdim,CV_64FC1, ap[j+1]);
+ dist_next = -sqrt(annDist(pcaembdim,(double*)p.data.ptr,(double*)proj_next[k]->data.ptr));
+ /*
+ cout << "Expected next point: "; print_matrix(proj_next);
+ cout << "Real next point: "; print_matrix(&p);
+ cout << model_name << ". Dist1: " << dist << ", Dist2: " << dist_next << endl;
+ */
+ cvmSet(mdists,i,k,cvmGet(mdists,i,k)+(dist+dist_next));
+ }
+ //cout << model_name << ": " << cvmGet(mdists,i,k) << endl;
+ }
+ }
+ print_matrix(mdists);
+ for (i = 0; i < M; i++) {
+ cvReleaseMat(&navg[i]);
+ cvReleaseMat(&navg_next[i]);
+ cvReleaseMat(&nn[i]);
+ cvReleaseMat(&nnn[i]);
+ }
+ cvReleaseMat(&mdists);
+}
27 Classifier.h
@@ -0,0 +1,27 @@
+/*
+ * Classifier.h
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include "ClassifyTrajectory.h"
+#include <vector>
+#include <ANN/ANN.h>
+
+#ifndef CLASSIFIER_H_
+#define CLASSIFIER_H_
+
+class Classifier {
+
+private:
+ std::vector<NamedModel*> models;
+
+public:
+ Classifier(std::vector<NamedModel*> models);
+ void go(double** data, ulong length);
+ virtual ~Classifier();
+};
+
+#endif /* CLASSIFIER_H_ */
BIN  Classifier.o
Binary file not shown
166 ClassifyTrajectory.cpp
@@ -0,0 +1,166 @@
+/*
+ * ClassifyTrajectory.cpp
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include <cstring>
+#include <ctype.h>
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <ANN/ANN.h>
+#include <Tisean/tsa.h>
+
+#include "Utils.h"
+#include "BuildTree.h"
+#include "TDEModel.h"
+#include "ClassifyTrajectory.h"
+#include "Classifier.h"
+
+using namespace std;
+
+using namespace std;
+
+#define WID_STR "Classify a set of trajectories"
+
+void show_options(char *progname) {
+ what_i_do(progname, (char*)WID_STR);
+ fprintf(stderr,"\nUsage: %s [options]\n",progname);
+ fprintf(stderr,"Options:\n");
+ fprintf(stderr,"Everything not being a valid option will be interpreted as a"
+ " possible datafile.\nIf no datafile is given stdin is read."
+ " Just - also means stdin\n");
+ fprintf(stderr,"\t-l # of data [default: whole file]\n");
+ fprintf(stderr,"\t-x # of rows to ignore [default: 0]\n");
+ fprintf(stderr,"\t-M num. of columns to read [default: 1]\n");
+ fprintf(stderr,"\t-c columns to read [default: 1,...,M]\n");
+ fprintf(stderr,"\t-V verbosity level [default: 1]\n\t\t"
+ "0='only panic messages'\n\t\t"
+ "1='+ input/output messages'\n");
+ fprintf(stderr,"\t-o output file [default: 'datafile'.del, "
+ "without -o: stdout]\n");
+ fprintf(stderr,"\t-h show these options\n");
+ exit(0);
+}
+void scan_options(int n,char **str, Settings *settings) {
+ char *out;
+ if ((out=check_option(str,n,'l','u')) != NULL)
+ sscanf(out,"%lu",&settings->length);
+ if ((out=check_option(str,n,'x','u')) != NULL)
+ sscanf(out,"%lu",&settings->exclude);
+ if ((out=check_option(str,n,'c','s')) != NULL)
+ settings->column=out;
+ if ((out=check_option(str,n,'M','u')) != NULL) {
+ sscanf(out,"%u",&settings->indim);
+ settings->dimset=1;
+ }
+ if ((out=check_option(str,n,'V','u')) != NULL)
+ sscanf(out,"%u",&settings->verbosity);
+ if ((out=check_option(str,n,'o','o')) != NULL) {
+ settings->stdo=0;
+ if (strlen(out) > 0)
+ settings->outfile=out;
+ }
+}
+
+int main (int argc, char *argv[]) {
+ vector<NamedModel*> models;
+ NamedModel *model;
+ Classifier *classifier;
+ Settings settings = { ULONG_MAX, 0, 0xff, 1, 1, 2, NULL, NULL, NULL, 0, 0, 0, 1 };
+ double** data; // one double* for each model.
+ double *proj;
+ ulong *tlengths, tlength;
+ char stin=0;
+ char *model_ini = (char*)"models.ini";
+ ifstream models_file;
+ char buf[50];
+ int n = 50;
+ uint i;
+
+ if (scan_help(argc,argv))
+ show_options(argv[0]);
+ scan_options(argc,argv, &settings);
+
+ settings.infile=search_datafile(argc,argv,NULL,settings.verbosity);
+ if (settings.infile == NULL)
+ stin=1;
+ if (settings.outfile == NULL) {
+ if (!stin) {
+ check_alloc(settings.outfile=(char*)calloc(strlen(settings.infile)+5,sizeof(char)));
+ strcpy(settings.outfile,settings.infile);
+ strcat(settings.outfile,".dmp");
+ } else {
+ check_alloc(settings.outfile=(char*)calloc(10,sizeof(char)));
+ strcpy(settings.outfile,"stdin.dmp");
+ }
+ }
+ if (!settings.stdo) {
+ test_outfile(settings.outfile);
+ }
+
+ if (settings.delay < 1) {
+ fprintf(stderr,"Delay has to be larger than 0. Exiting!\n");
+ exit(DELAY_SMALL_ZERO);
+ }
+
+ // Read the models.ini file.
+ models_file.open(model_ini);
+ while(!models_file.eof()) {
+ models_file.getline(buf, n);
+ if (strlen(buf) > 0) {
+ check_alloc(model=(NamedModel*)calloc(1,sizeof(NamedModel)));
+ check_alloc(model->name=(char*)calloc(strlen(buf)+1,sizeof(char)));
+ strcpy(model->name,buf);
+ model->model = new TDEModel(new ifstream(model->name));
+ models.push_back(model);
+ }
+ }
+ data = new double*[models.size()];
+ tlengths = new ulong[models.size()];
+ for (i = 0; i < models.size(); i++) {
+ settings.embset = 1;
+ settings.embdim = models[i]->model->getEmbDim();
+ settings.delayset = 1;
+ settings.delay = models[i]->model->getDelay();
+
+ get_embedding(&settings, data[i], tlengths[i]);
+
+ settings.pcaembset = models[i]->model->getUsePCA();
+ if (settings.pcaembset) {
+ settings.pcaembdim = models[i]->model->getPCAEmbDim();
+ proj = models[i]->model->projectData(data[i],tlengths[i],settings.embdim);
+ delete [] data[i];
+ data[i] = proj;
+ }
+ else {
+ settings.pcaembdim = settings.embdim;
+ }
+ }
+ // Since the projected data might have different lengths under different models,
+ // we just use the minimum so that all points are compared under all models.
+ tlength = tlengths[0];
+ for (i = 1; i < models.size(); i++) {
+ if (tlengths[i] < tlength) tlength = tlengths[i];
+ }
+
+ classifier = new Classifier(models);
+ classifier->go(data, tlength);
+
+ for (i = 0; i < models.size(); i++) {
+ free(models[i]->name);
+ delete models[i]->model;
+ free(models[i]);
+ delete [] data[i];
+ }
+ delete [] data;
+ delete [] tlengths;
+
+ annClose();
+ if (settings.column != NULL) free(settings.column);
+ if (settings.infile != NULL) free(settings.infile);
+ if (settings.outfile != NULL) free(settings.outfile);
+}
24 ClassifyTrajectory.h
@@ -0,0 +1,24 @@
+/*
+ * ClassifyTrajectory.h
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include "TDEModel.h"
+
+#ifndef CLASSIFYTRAJECTORY_H_
+#define CLASSIFYTRAJECTORY_H_
+
+typedef struct {
+ TDEModel* model;
+ char* name;
+} NamedModel;
+
+class ClassifyTrajectory {
+public:
+ ClassifyTrajectory();
+ virtual ~ClassifyTrajectory();
+};
+
+#endif /* CLASSIFYTRAJECTORY_H_ */
BIN  ClassifyTrajectory.o
Binary file not shown
19 Makefile
@@ -0,0 +1,19 @@
+CXXFLAGS = -O3 -ggdb -Wall -march=native -ftree-vectorize -I${HOME}/include `pkg-config --cflags opencv`
+LIBS = -L${HOME}/lib -lANN -lddtsa `pkg-config --libs opencv`
+TARGETS = $(buildtree_TARGET) $(classifytrajectory_TARGET)
+OBJS = $(buildtree_OBJS) $(classifytrajectory_OBJS)
+
+buildtree_TARGET = buildtree
+buildtree_OBJS = BuildTree.o TDEModel.o Utils.o
+$(buildtree_TARGET): $(buildtree_OBJS)
+ $(CXX) -o $(buildtree_TARGET) $(buildtree_OBJS) $(LIBS)
+
+classifytrajectory_TARGET = classifytrajectory
+classifytrajectory_OBJS = ClassifyTrajectory.o Classifier.o TDEModel.o Utils.o
+$(classifytrajectory_TARGET): $(classifytrajectory_OBJS)
+ $(CXX) $(CXXFLAGS) -o $(classifytrajectory_TARGET) $(classifytrajectory_OBJS) $(LIBS)
+
+all: $(TARGETS)
+
+clean:
+ rm -f $(OBJS) $(TARGETS)
BIN  ManifoldExperiment.o
Binary file not shown
227 TDEModel.cpp
@@ -0,0 +1,227 @@
+/*
+ * TDEModel.cpp
+ *
+ * Created on: 2009-06-29
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <iostream>
+#include <fstream>
+#include <Tisean/tsa.h>
+#include <ANN/ANN.h>
+#include <opencv/cxcore.h>
+#include <boost/random.hpp>
+#include <opencv/cvaux.h>
+
+#include "Utils.h"
+#include "BuildTree.h"
+#include "TDEModel.h"
+
+#define NEIGHBOURS 4
+
+using namespace std;
+using namespace boost;
+
+TDEModel::TDEModel(Settings* settings) {
+ double *data, *projecteddata;
+
+ length = settings->length;
+ embdim = settings->embdim;
+ delay = settings->delay;
+ use_pca = settings->pcaembset;
+
+ get_embedding(settings, data, length);
+
+ if (use_pca) {
+ computePCABases(data, length, embdim, settings->pcaembdim);
+ projecteddata = projectData(data, length, embdim);
+ delete [] data;
+ data = projecteddata;
+ }
+ else {
+ avg = NULL;
+ bases = NULL;
+ }
+ /*
+ for (uint i = 0; i < (unsigned)bases->cols; i++) {
+ cout << data[i] << " " ;
+ }
+ cout << endl;
+ */
+ get_ann_points(dataPts, data, length, settings->pcaembdim);
+ kdTree = new ANNkd_tree(dataPts,length,settings->pcaembdim);
+ settings->length = length;
+ delete [] data;
+}
+
+TDEModel::TDEModel(ifstream* model_file) {
+ int avgsize, basesrows, basescols, i, j;
+ *model_file >> delay;
+ *model_file >> embdim;
+ *model_file >> avgsize;
+ if (avgsize > 0) {
+ use_pca = 1;
+ avg = cvCreateMat(1,avgsize,CV_64FC1);
+ double* ptr = (double*)avg->data.ptr;
+ for (i = 0; i < avgsize; i++) {
+ *model_file >> *ptr++;
+ }
+ }
+ else {
+ avg = NULL;
+ }
+ *model_file >> basesrows >> basescols;
+ if (basesrows > 0 && basescols > 0) {
+ use_pca = 1;
+ bases = cvCreateMat(basesrows,basescols,CV_64FC1);
+ double* ptr = (double*)bases->data.ptr;
+ for (i = 0; i < basesrows; i++) {
+ for (j = 0; j < basescols; j++) {
+ *model_file >> *ptr++;
+ }
+ }
+ }
+
+ kdTree = new ANNkd_tree(*model_file);
+ dataPts = kdTree->thePoints();
+ length = kdTree->nPoints();
+}
+
+TDEModel::~TDEModel() {
+ if (avg != NULL) cvReleaseMat(&avg);
+ if (bases != NULL) cvReleaseMat(&bases);
+ delete kdTree;
+ delete [] dataPts;
+}
+
+void TDEModel::DumpTree(char* outfile) {
+ ofstream fout(outfile);
+ fout << delay << endl;
+ fout << embdim << endl;
+ if (avg == NULL) {
+ fout << 0 << endl;
+ }
+ else {
+ fout << avg->cols << endl;
+ for (int i = 0; i < avg->cols; i++) {
+ fout << " " << CV_MAT_ELEM(*avg, double, 0, i);
+ }
+ }
+ fout << endl;
+ if (bases == NULL) {
+ fout << "0 0";
+ }
+ else {
+ fout << bases->rows << " " << bases->cols << endl;
+ for (int i = 0; i < bases->rows; i++) {
+ fout << CV_MAT_ELEM(*bases, double, i, 0);
+ for (int j = 1; j < bases->cols; j++) {
+ fout << " " << CV_MAT_ELEM(*bases, double, i, j);
+ }
+ fout << endl;
+ }
+ }
+ kdTree->Dump(ANNtrue, fout);
+ fout.close();
+}
+
+void TDEModel::getKNN(ANNpoint ap, uint k, ANNidxArray nn_idx, ANNdistArray dists) {
+ kdTree->annkSearch(ap, k, nn_idx, dists);
+// for (uint i = 0; i < k; i++) {
+// cout << "Point " << i+1 << ": [" << dataPts[nn_idx[i]][0] << "," << dataPts[nn_idx[i]][1] << "," << dataPts[nn_idx[i]][2] << "], Dist: " << sqrt(dists[i]) << endl;
+// }
+}
+
+void TDEModel::simulateTrajectory(ANNpoint s0, ANNpointArray trajectory, uint dim, ulong N) {
+ ANNidxArray nn_idx;
+ ANNdistArray dists;
+ uint i,j,k;
+ variate_generator<mt19937, normal_distribution<> > generator(mt19937(time(0)), normal_distribution<>(0.0,0.1));
+
+ // +1 in case one of the neighbours is the last point in the model.
+ nn_idx = new ANNidx[NEIGHBOURS+1];
+ dists = new ANNdist[NEIGHBOURS+1];
+
+ for (i = 0; i < dim; i++) {
+ trajectory[0][i] = s0[i];
+ }
+
+ for (i = 1; i < N; i++) {
+ getKNN(trajectory[i-1], NEIGHBOURS+1, nn_idx, dists);
+ for (j = 0; j < dim; j++) {
+ trajectory[i][j] = 0.0;
+ for (k = 0; k < NEIGHBOURS; k++) {
+ if (nn_idx[k] == ANN_NULL_IDX) break;
+ else if (nn_idx[k] == (int)length-1) nn_idx[k] = nn_idx[NEIGHBOURS];
+ trajectory[i][j] += dataPts[nn_idx[k]+1][j];
+ }
+ trajectory[i][j] = trajectory[i][j] / (double)k + generator();
+ }
+ }
+}
+
+ANNpoint TDEModel::getDataPoint(uint idx) {
+ return dataPts[idx];
+}
+
+void TDEModel::computePCABases(double *data, uint rows, uint cols, uint numbases) {
+ CvMat **embedding, *cov, *eigenvectors, *eigenvalues, *vector;
+ double *basesdata;
+ uint i, j, offset;
+
+ cov = cvCreateMat(cols, cols, CV_64FC1);
+ eigenvectors = cvCreateMat(cols,cols,CV_64FC1);
+ eigenvalues = cvCreateMat(cols,cols,CV_64FC1);
+ embedding = new CvMat*[rows];
+ for (i = 0; i < rows; i++) {
+ vector = cvCreateMatHeader(1, cols, CV_64FC1);
+ cvInitMatHeader(vector, 1, cols, CV_64FC1, data + i * cols);
+ embedding[i] = vector;
+ }
+ avg = cvCreateMat(1,cols,CV_64FC1);
+ cvCalcCovarMatrix((const CvArr **)embedding, rows, cov, avg, CV_COVAR_NORMAL);
+ cvSVD(cov, eigenvalues, eigenvectors, 0, CV_SVD_MODIFY_A);
+
+ basesdata = new double[cols*numbases];
+ for (i = 0, offset = 0; i < cols; i++) {
+ for (j = 0; j < numbases; j++) {
+ basesdata[offset++] = ((double*)eigenvectors->data.ptr)[i*cols+j];
+ }
+ }
+ bases = cvCreateMatHeader(cols, numbases, CV_64FC1);
+ cvInitMatHeader(bases, cols, numbases, CV_64FC1, basesdata);
+
+ for (i = 0; i < rows; i++) {
+ cvReleaseMat(&embedding[i]);
+ }
+ delete [] embedding;
+ cvReleaseMat(&cov);
+ cvReleaseMat(&eigenvectors);
+ cvReleaseMat(&eigenvalues);
+}
+
+double* TDEModel::projectData(double* data, uint rows, uint cols) {
+ if (!use_pca) return data;
+ double* shifteddata = new double[rows*cols];
+ double* projecteddata = new double[rows*bases->cols];
+ uint i, j, offset;
+
+ for (i = 0, offset = 0; i < rows; i++) {
+ for (j = 0; j < cols; j++) {
+ shifteddata[offset] = data[offset] - ((double*)avg->data.ptr)[j];
+ offset++;
+ }
+ }
+ CvMat projected = cvMat(rows, bases->cols, CV_64FC1, projecteddata);
+ CvMat dataMat = cvMat(rows, cols, CV_64FC1, shifteddata);
+ cvGEMM(&dataMat, bases, 1.0, NULL, 0.0, &projected, 0);
+ /*
+ for (i = 0; i < (unsigned)bases->cols; i++) {
+ cout << projecteddata[i] << " " ;
+ }
+ cout << endl;
+ */
+ return projecteddata;
+}
49 TDEModel.h
@@ -0,0 +1,49 @@
+/*
+ * TDEModel.h
+ *
+ * Created on: 2009-06-29
+ * Author: jfrank8
+ */
+
+#include <opencv/cxcore.h>
+#include "Utils.h"
+
+#ifndef TDEMODEL_H_
+#define TDEMODEL_H_
+
+class TDEModel {
+public:
+ TDEModel(Settings* settings);
+ TDEModel(std::ifstream* model_file);
+ virtual ~TDEModel();
+
+ void DumpTree(char* outfile);
+ void getKNN(ANNpoint ap, unsigned int k, ANNidxArray nn_idx, ANNdistArray dists);
+ void simulateTrajectory(ANNpoint s0, ANNpointArray trajectory, unsigned int dim, unsigned long N);
+ ANNpoint getDataPoint(unsigned int idx);
+ double *projectData(double *data, unsigned int rows, unsigned int cols);
+
+ unsigned long getLength() const { return length; }
+ unsigned long getEmbDim() const { return embdim; }
+ unsigned long getDelay() const { return delay; }
+ char getUsePCA() const { return use_pca; }
+ unsigned long getPCAEmbDim() const {
+ if (use_pca) {
+ return bases->cols;
+ }
+ else {
+ return embdim;
+ }
+ }
+private:
+ unsigned long length, embdim, delay;
+ ANNpointArray dataPts;
+ ANNkd_tree *kdTree;
+ // Related to the PCA
+ void computePCABases(double *data, unsigned int rows, unsigned int cols, unsigned int numbases);
+ char use_pca;
+ CvMat* avg;
+ CvMat* bases;
+};
+
+#endif /* TDEMODEL_H_ */
BIN  TDEModel.o
Binary file not shown
92 Utils.cpp
@@ -0,0 +1,92 @@
+/*
+ * Utils.cpp
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include <cstring>
+#include <ctype.h>
+#include <iostream>
+
+#include <ANN/ANN.h>
+#include <Tisean/tsa.h>
+#include <opencv/cxcore.h>
+#include "Utils.h"
+
+using namespace std;
+
+void get_embedding(Settings* settings, double* &data, ulong &length) {
+ ulong i;
+ uint j,k;
+ uint alldim, maxemb, emb, rundel, delsum;
+ uint *inddelay;
+ uint *formatlist;
+ double** series;
+
+ check_alloc(formatlist=(uint*)malloc(sizeof(int)*settings->indim));
+ for (i=0;i<settings->indim;i++) {
+ formatlist[i]=settings->embdim/settings->indim;
+ }
+ alldim=0;
+ for (i=0;i<settings->indim;i++)
+ alldim += formatlist[i];
+ check_alloc(inddelay=(uint*)malloc(sizeof(int)*alldim));
+
+ rundel=0;
+ for (i=0;i<settings->indim;i++) {
+ delsum=0;
+ inddelay[rundel++]=delsum;
+ for (j=1;j<formatlist[i];j++) {
+ delsum += settings->delay;
+ inddelay[rundel++]=delsum;
+ }
+ }
+ maxemb=0;
+ for (i=0;i<alldim;i++)
+ maxemb=(maxemb<inddelay[i])?inddelay[i]:maxemb;
+
+ if (settings->column == NULL) {
+ series=get_multi_series(settings->infile,&settings->length,settings->exclude,&settings->indim,(char*)"",settings->dimset,settings->verbosity);
+ } else {
+ series=get_multi_series(settings->infile,&settings->length,settings->exclude,&settings->indim,settings->column,settings->dimset,settings->verbosity);
+ }
+ cerr << "Length: " << settings->length << endl << "Embed Dim: " << settings->embdim << endl;
+
+ check_alloc(data = (double*)calloc((settings->length-maxemb)*settings->embdim,sizeof(double)));
+ uint step = settings->embdim;
+ for (i=maxemb;i<settings->length;i++) {
+ rundel=0;
+ for (j=0;j<settings->indim;j++) {
+ emb=formatlist[j];
+ for (k=0;k<emb;k++)
+ data[(i-maxemb)*step+(emb-k-1)] = series[j][i-inddelay[rundel++]];
+ }
+ }
+ length = settings->length - maxemb;
+}
+
+void get_ann_points(ANNpointArray &dataPts, double* series, unsigned long rows, unsigned long cols)
+{
+ ulong k = 0;
+ dataPts = annAllocPts(rows, cols);
+ for (ulong i = 0; i < rows; i++) {
+ for (ulong j = 0; j < cols; j++) {
+ dataPts[i][j] = series[k++];
+ }
+ }
+}
+
+void print_matrix(CvMat* matrix) {
+ int i,j;
+ for (i = 0; i < matrix->rows; i++) {
+ cout << CV_MAT_ELEM(*matrix, double, i, 0);
+ for (j = 1; j < matrix->cols; j++) {
+ cout << " " << CV_MAT_ELEM(*matrix, double, i, j);
+ }
+ cout << endl;
+ }
+}
+
+
44 Utils.h
@@ -0,0 +1,44 @@
+/*
+ * Utils.h
+ *
+ * Created on: 2009-06-30
+ * Author: jfrank8
+ */
+
+#include <stdlib.h>
+#include <ANN/ANN.h>
+#include <opencv/cxcore.h>
+
+#ifndef ulong
+#define ulong unsigned long
+#endif
+#ifndef uint
+#define uint unsigned int
+#endif
+
+#ifndef UTILS_H_
+#define UTILS_H_
+
+typedef struct {
+ ulong length;
+ ulong exclude;
+ uint verbosity;
+ int delay;
+ uint indim;
+ uint embdim;
+ uint pcaembdim;
+ char *column;
+ char *infile;
+ char *outfile;
+ char dimset;
+ char embset;
+ char pcaembset;
+ char delayset;
+ char stdo;
+} Settings;
+
+void get_embedding(Settings* settings, double*& data, ulong &length);
+void get_ann_points(ANNpointArray &dataPts, double* series, ulong rows, ulong cols);
+void print_matrix(CvMat* matrix);
+
+#endif /* UTILS_H_ */
BIN  Utils.o
Binary file not shown
BIN  buildtree
Binary file not shown
BIN  classifytrajectory
Binary file not shown
6 data/.svn/dir-prop-base
@@ -0,0 +1,6 @@
+K 10
+svn:ignore
+V 6
+*.dmp
+
+END
342 data/.svn/entries
@@ -0,0 +1,342 @@
+10
+
+dir
+538
+svn+ssh://jfrank8@svn.cs.mcgill.ca/xtra/2006/jfrank8/repos/research/branches/models-with-diff-params/data
+svn+ssh://jfrank8@svn.cs.mcgill.ca/xtra/2006/jfrank8/repos
+
+
+
+2009-07-06T12:53:21.205359Z
+535
+jfrank8
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+e12ecb49-d81d-0410-b11c-7fdd71a52a3a
+
+
+
+
+
+
+
+empty
+
+bike-2009-03-18.csv
+file
+
+
+
+
+2009-07-01T20:29:48.000000Z
+8c985a0ea3da8cb477771a11bf19ed8f
+2009-07-01T20:08:49.682693Z
+530
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+653965
+
+bike.dat
+file
+
+
+
+
+2009-06-30T18:36:49.000000Z
+398d91e94d4e3bf2655f2befee8133f2
+2009-06-30T19:09:31.340485Z
+526
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18028
+
+mixed.dat
+file
+
+
+
+
+2009-06-30T18:37:10.000000Z
+af719af3b615a932bf7ce29045ac3786
+2009-06-30T19:09:31.340485Z
+526
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49725
+
+run-2009-03-02.csv
+file
+
+
+
+
+2009-07-01T20:29:16.000000Z
+500894b4a88de8ed2478050b36290341
+2009-07-01T20:08:49.682693Z
+530
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+423268
+
+run.dat
+file
+
+
+
+
+2009-06-30T18:36:06.000000Z
+e798d21f915a3948e8fbee16b6b9c0cc
+2009-06-30T19:09:31.340485Z
+526
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17222
+
+stand.dat
+file
+
+
+
+
+2009-06-30T18:36:58.000000Z
+1334f86981029a7423f74ed657ffedee
+2009-06-30T19:09:31.340485Z
+526
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6076
+
+standing-2009-02-27.csv
+file
+
+
+
+
+2009-07-01T20:29:38.000000Z
+6e8903b972fc40c4055d27340b086442
+2009-07-01T20:08:49.682693Z
+530
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+47674
+
+walk-2009-02-27-1.csv
+file
+
+
+
+
+2009-07-01T20:29:29.000000Z
+f141d3cc940b74273a42ad078283e3d1
+2009-07-01T20:08:49.682693Z
+530
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+160590
+
+walk.dat
+file
+
+
+
+
+2009-06-30T18:36:17.000000Z
+0a77ccb222f43b5d4ded9b70604db34e
+2009-06-30T19:09:31.340485Z
+526
+jfrank8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17429
+
11,845 data/.svn/text-base/bike-2009-03-18.csv.svn-base
11,845 additions, 0 deletions not shown
1,770 data/.svn/text-base/bike.dat.svn-base
@@ -0,0 +1,1770 @@
+0.39769936
+0.79972744
+0.9737148
+1.1567822
+0.89815426
+0.4941597
+0.38989735
+0.433424
+0.45829487
+-0.054347992
+-0.93357086
+-2.278232
+-3.034474
+-3.10209
+-2.7163858
+-2.2760139
+-2.2227583
+-1.659667
+0.12076092
+1.8725348
+2.8434935
+2.9161396
+2.2327585
+1.3230495
+1.1952696
+1.4547176
+1.0298834
+1.6684179
+1.925396
+1.5395489
+1.1014118
+-0.39475346
+-2.1654773
+-3.934116
+-4.854048
+-5.238775
+-4.62601
+-3.200992
+-1.0172615
+2.2750435
+3.6156416
+4.243535
+3.8130436
+2.2246437
+1.8315039
+1.6815948
+1.5219584
+2.2362795
+2.3093433
+1.6790428
+0.517519
+-2.4027414
+-4.7394414
+-5.6859827
+-5.825872
+-4.714498
+-2.1758385
+1.2210217
+3.3177834
+4.172366
+3.983984
+2.3083563
+2.0365372
+2.1686335
+1.6278982
+2.215064
+2.5383224
+1.8209476
+0.72770023
+-1.5491915
+-4.372473
+-5.639425
+-5.7068577
+-5.0869884
+-3.0158858
+-0.2401905
+2.391305
+3.822956
+3.87393
+2.9339743
+1.9156199
+1.4411602
+1.569088
+2.164031
+2.5596504
+2.1140175
+0.75070953
+-1.7066193
+-4.5550566
+-5.900649
+-5.6987886
+-4.530616
+-2.2740436
+0.022693634
+2.202465
+3.0359583
+3.2109327
+2.7779102
+2.0808153
+1.9175186
+1.7134991
+1.8443613
+2.1594048
+1.778471
+0.7656002
+-0.61060524
+-3.222314
+-5.011494
+-5.579951
+-5.4697294
+-4.0144625
+-1.4543886
+1.7762041
+3.4364958
+3.855998
+3.420847
+2.1140795
+1.711052
+1.8512535
+1.6416149
+2.2275257
+2.4043083
+1.6694765
+0.3859663
+-2.3728719
+-4.7309365
+-5.405486
+-5.175632
+-4.4418755
+-2.7510996
+-0.16478062
+2.1086712
+3.5967197
+3.654334
+2.711872
+1.9825296
+1.6018696
+1.8168306
+1.8553114
+1.9370432
+1.705864
+0.8618736
+-0.4150381
+-2.5771832
+-4.2330647
+-4.744075
+-4.7983055
+-3.9885292
+-2.4699974
+0.03426552
+2.24197
+3.3453455
+3.1964455
+2.165287
+1.5310116
+1.4435673
+1.7174273
+1.3607225
+1.8018904
+1.8825369
+1.2305298
+0.7203455
+-1.0179367
+-3.1355019
+-4.2245502
+-4.630452
+-3.7902632
+-2.4296885
+0.016160965
+2.3235226
+3.0542107
+3.1046133
+2.318183
+1.2934742
+1.3552065
+1.7467852
+1.4238281
+1.8286829
+2.0904102
+1.5615015
+1.2092228
+-0.3503418
+-2.261887
+-3.7095704
+-4.338577
+-4.5018086
+-3.9834776
+-2.7218304
+-0.6760378
+1.6539316
+2.6261759
+2.809431
+2.3394318
+1.6057701
+1.56917
+1.6307602
+1.4860067
+1.2950029
+1.7448263
+1.766655
+1.488101
+0.45742702
+-1.4580326
+-3.6906285
+-5.0561743
+-5.1858783
+-4.896614
+-3.3665013
+-1.0884895
+1.9636154
+3.0880938
+3.59836
+3.7194252
+2.1789618
+2.1184368
+2.0496416
+1.2773428
+1.8513012
+2.2256374
+1.8849726
+0.9934006
+-1.6553411
+-3.9629812
+-5.368945
+-5.4834824
+-4.9094768
+-3.7870421
+-1.276125
+2.0051603
+3.4736357
+4.176407
+3.7032032
+2.370184
+2.079318
+1.8944569
+2.0067854
+2.147973
+1.9904108
+1.6662273
+0.5612707
+-1.7678862
+-3.8852758
+-5.1428
+-5.5529566
+-5.0225916
+-3.4874692
+-1.2664747
+1.7294149
+3.4319496
+3.8253584
+3.34684
+1.9803734
+1.5748272
+1.724638
+1.3349028
+1.7827606
+2.2756739
+1.7504454
+1.1081438
+-0.54825974
+-3.1570601
+-4.5827365
+-4.6091533
+-4.623146
+-3.905376
+-2.3675213
+-0.14443684
+2.6134567
+3.9541416
+3.6664085
+2.8914442
+1.6260557
+1.1924362
+1.2985029
+0.9634714
+1.6921587
+2.2548733
+1.7488642
+0.95012283
+-0.764575
+-3.0546794
+-4.252971
+-4.7583313
+-4.8059235
+-3.403566
+-1.6120329
+0.9275751
+2.4465914
+2.7890205
+2.9417772
+1.9585791
+1.6265507
+1.616746
+1.5857677
+1.4690399
+1.805645
+1.8506651
+1.3363018
+0.70891094
+-1.0439272
+-2.6789775
+-3.5411572
+-4.1604614
+-4.139636
+-3.7668128
+-2.8194118
+-0.8520193
+1.5274029
+2.769143
+3.1311388
+2.889326
+1.7605057
+1.3806477
+1.4763422
+1.1787577
+1.1557751
+1.9252853
+1.9529562
+1.5759287
+0.5028372
+-1.7076492
+-3.237843
+-4.1854877
+-4.4703755
+-4.323805
+-3.6201482
+-1.945951
+0.55633163
+2.46105
+3.3366117
+3.6118526
+2.4563684
+1.7876015
+1.6457376
+1.3525467
+1.2662401
+1.8681564
+2.1398315
+1.6749802
+0.99475765
+-0.9121456
+-2.5098038
+-3.7532673
+-4.184597
+-4.2805815
+-4.1208115
+-2.8012085
+-0.91897964
+1.4423466
+2.971922
+3.235798
+3.0271006
+1.910182
+1.2923374
+1.2858496
+1.073493
+1.2134323
+1.9574919
+1.9343262
+1.4029541
+0.58735275
+-0.9742565
+-2.4110146
+-3.7679033
+-4.4848404
+-4.5767026
+-4.05296
+-2.4168992
+-0.5773697
+1.7345514
+2.9484034
+3.0870142
+3.1389942
+1.9633322
+1.4293613
+1.5523767
+1.3560619
+1.4687767
+2.3200264
+2.08772
+1.4216814
+0.20872402
+-2.1851554
+-3.6170597
+-4.3462324
+-4.6567535
+-4.3649673
+-3.477745
+-1.8354411
+0.47769547
+2.3184967
+3.336957
+3.5960903
+2.6956491
+1.83321
+1.441885
+1.0826883
+1.2111425
+1.5784779
+2.0403986
+1.8268337
+0.833622
+-0.9345331
+-2.872943
+-4.245594
+-4.546973
+-4.3443303
+-3.7630057
+-2.5239153
+-0.77789974
+2.0385427
+3.019827
+3.4345284
+3.6043024
+2.0536232
+1.8791475
+1.6768541
+1.160716
+1.0636673
+2.0217266
+2.0756254
+1.5385771
+0.6709833
+-2.0975575
+-3.9579043
+-4.6618176
+-4.92758
+-4.3449078
+-3.2466178
+-1.4237051
+1.7493868
+3.1647053
+3.5615454
+3.6132975
+1.9504957
+1.3710089
+1.563942
+1.2950191
+1.2785559
+1.7004242
+1.8821955
+1.5674658
+1.0181761
+-0.8777456
+-2.6223588
+-3.9516745
+-4.930433
+-5.3946033
+-4.8868947
+-2.3423767
+0.78331757
+2.992137
+3.7713337
+3.039504
+1.9115124
+1.4720011
+1.430871
+1.3173056
+1.2073612
+1.206831
+1.6218119
+1.767993
+1.3882561
+0.5214634
+-1.3560286
+-2.964394
+-4.005901
+-4.509035
+-4.4954658
+-3.7504792
+-2.3476348
+-0.20580292
+2.0545464
+3.0793505
+3.2515354
+2.6325235
+1.8264503
+1.6112795
+1.4091835
+1.3207817
+1.3170557
+1.7927856
+1.9069357
+1.3341036
+0.23454952
+-1.6683578
+-3.2043772
+-4.1469903
+-4.6007366
+-4.349087
+-3.7896929
+-2.349824
+0.24255466
+2.1714678
+3.34165
+3.551218
+2.5388107
+1.6736307
+1.4158707
+1.3612461
+1.3739958
+1.3758049
+1.5773134
+1.2202215
+0.7631874
+-0.45919132
+-2.1755834
+-3.38336
+-4.441115
+-4.5612597
+-4.329289
+-3.1334858
+-0.876915
+1.5677185
+3.0302296
+3.634735
+3.27913
+2.1826992
+1.4789066
+1.3551321
+1.5558958
+1.4758825
+2.067809
+1.8604555
+1.0115938
+0.18825436
+-1.6846848
+-3.385324
+-4.2247
+-4.603428
+-4.338848
+-3.4036088
+-1.4310551
+1.4959898
+2.8929205
+3.4169893
+3.2883139
+1.8279495
+1.4694433
+1.5907335
+1.5248404
+1.2426758
+1.8806009
+1.9715576
+1.4092484