├── .gitignore ├── .travis.yml ├── Dockerfile ├── README.rst ├── algos.yaml ├── ann_benchmarks ├── __init__.py ├── algorithms │ ├── __init__.py │ ├── annoy.py │ ├── balltree.py │ ├── base.py │ ├── bruteforce.py │ ├── constructors.py │ ├── datasketch.py │ ├── definitions.py │ ├── dolphinnpy.py │ ├── faiss.py │ ├── faiss_gpu.py │ ├── falconn.py │ ├── flann.py │ ├── itu.py │ ├── kdtree.py │ ├── kgraph.py │ ├── lshf.py │ ├── nearpy.py │ ├── nmslib.py │ ├── panns.py │ ├── rpforest.py │ └── subprocess.py ├── constants.py ├── data.py ├── datasets.py ├── distance.py ├── main.py ├── plotting │ ├── __init__.py │ ├── metrics.py │ ├── plot_variants.py │ └── utils.py └── results.py ├── createwebsite.py ├── frontend └── website │ ├── css │ ├── bootstrap-theme.min.css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ └── style.css │ ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 │ └── js │ ├── Chart.js │ ├── Chart.min.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ └── npm.js ├── install.sh ├── install ├── _ins_utilities.sh ├── convert_idx.py ├── convert_texmex_fvec.py ├── convert_word2vec_format.py ├── data-fashion-mnist.sh ├── data-gist.sh ├── data-glove.sh ├── data-hamming.sh ├── data-mnist.sh ├── data-nytimes.sh ├── data-random.sh ├── data-setsimilarity.sh ├── data-sift.sh ├── data-webspam.sh ├── lib-annoy-hamming.cpp ├── lib-annoy-hamming.sh ├── lib-annoy.cpp ├── lib-annoy.sh ├── lib-datasketch.sh ├── lib-dolphinn.cpp ├── lib-dolphinn.sh ├── lib-dolphinnpy.sh ├── lib-faiss.sh ├── lib-faiss_0001.patch ├── lib-faiss_0002.patch ├── lib-falconn.sh ├── lib-fcMIH.cpp ├── lib-flann.sh ├── lib-flann_0001.patch ├── lib-kgraph.sh ├── lib-mih-wrapper.cpp ├── lib-mih.sh ├── lib-mih_0001.patch ├── lib-mih_0002.patch ├── lib-mih_0003.patch ├── lib-nearpy.sh ├── lib-nmslib.sh ├── lib-panns.sh ├── lib-rpforest.sh └── lib-sklearn.sh ├── plot.py ├── protocol ├── README ├── c │ ├── Makefile │ ├── dummy.c │ ├── frontend.c │ └── tester.c ├── java │ ├── .classpath │ ├── .project │ ├── .settings │ │ └── org.eclipse.jdt.core.prefs │ ├── runner │ └── src │ │ └── dk │ │ └── itu │ │ └── epbprtv0 │ │ ├── Runner.java │ │ ├── Tokeniser.java │ │ ├── algorithm │ │ ├── DummyFactory.java │ │ ├── LinearFactory.java │ │ ├── PreparedQueryAlgorithm.java │ │ ├── QueryAlgorithm.java │ │ └── QueryAlgorithmFactory.java │ │ ├── distance │ │ ├── CosineDistance.java │ │ ├── DistanceMetric.java │ │ ├── EuclideanDistance.java │ │ └── HammingDistance.java │ │ └── types │ │ ├── BitInfo.java │ │ ├── DoubleInfo.java │ │ ├── IntInfo.java │ │ └── TypeInfo.java └── spec.txt ├── results ├── glove.kmeans.txt ├── glove.png └── sift.png ├── setup.py ├── summarise-results.py ├── test └── test.py ├── tools ├── random-input-generation │ ├── CMakeLists.txt │ ├── src │ │ ├── CMakeLists.txt │ │ └── generate-random-inputs-euclidean.cpp │ └── tclap-1.2.1 │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── ChangeLog │ │ ├── INSTALL │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── NEWS │ │ ├── README │ │ ├── aclocal.m4 │ │ ├── config │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── ac_cxx_have_long_long.m4 │ │ ├── ac_cxx_have_sstream.m4 │ │ ├── ac_cxx_have_strstream.m4 │ │ ├── ac_cxx_namespaces.m4 │ │ ├── ac_cxx_warn_effective_cxx.m4 │ │ ├── bb_enable_doxygen.m4 │ │ ├── config.h.in │ │ ├── depcomp │ │ ├── install-sh │ │ ├── missing │ │ └── mkinstalldirs │ │ ├── configure │ │ ├── configure.in │ │ ├── docs │ │ ├── Doxyfile.in │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── README │ │ ├── html │ │ │ ├── ArgException_8h.html │ │ │ ├── ArgException_8h_source.html │ │ │ ├── ArgTraits_8h.html │ │ │ ├── ArgTraits_8h_source.html │ │ │ ├── Arg_8h.html │ │ │ ├── Arg_8h_source.html │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Repository │ │ │ │ └── Root │ │ │ ├── CmdLineInterface_8h.html │ │ │ ├── CmdLineInterface_8h_source.html │ │ │ ├── CmdLineOutput_8h.html │ │ │ ├── CmdLineOutput_8h_source.html │ │ │ ├── CmdLine_8h.html │ │ │ ├── CmdLine_8h_source.html │ │ │ ├── Constraint_8h.html │ │ │ ├── Constraint_8h_source.html │ │ │ ├── DocBookOutput_8h.html │ │ │ ├── DocBookOutput_8h_source.html │ │ │ ├── HelpVisitor_8h.html │ │ │ ├── HelpVisitor_8h_source.html │ │ │ ├── IgnoreRestVisitor_8h.html │ │ │ ├── IgnoreRestVisitor_8h_source.html │ │ │ ├── MultiArg_8h.html │ │ │ ├── MultiArg_8h_source.html │ │ │ ├── MultiSwitchArg_8h.html │ │ │ ├── MultiSwitchArg_8h_source.html │ │ │ ├── OptionalUnlabeledTracker_8h.html │ │ │ ├── OptionalUnlabeledTracker_8h_source.html │ │ │ ├── StandardTraits_8h.html │ │ │ ├── StandardTraits_8h_source.html │ │ │ ├── StdOutput_8h.html │ │ │ ├── StdOutput_8h_source.html │ │ │ ├── SwitchArg_8h.html │ │ │ ├── SwitchArg_8h_source.html │ │ │ ├── UnlabeledMultiArg_8h.html │ │ │ ├── UnlabeledMultiArg_8h_source.html │ │ │ ├── UnlabeledValueArg_8h.html │ │ │ ├── UnlabeledValueArg_8h_source.html │ │ │ ├── ValueArg_8h.html │ │ │ ├── ValueArg_8h_source.html │ │ │ ├── ValuesConstraint_8h.html │ │ │ ├── ValuesConstraint_8h_source.html │ │ │ ├── VersionVisitor_8h.html │ │ │ ├── VersionVisitor_8h_source.html │ │ │ ├── Visitor_8h.html │ │ │ ├── Visitor_8h_source.html │ │ │ ├── XorHandler_8h.html │ │ │ ├── XorHandler_8h_source.html │ │ │ ├── ZshCompletionOutput_8h.html │ │ │ ├── ZshCompletionOutput_8h_source.html │ │ │ ├── annotated.html │ │ │ ├── classTCLAP_1_1Arg-members.html │ │ │ ├── classTCLAP_1_1Arg.gif │ │ │ ├── classTCLAP_1_1Arg.html │ │ │ ├── classTCLAP_1_1ArgException-members.html │ │ │ ├── classTCLAP_1_1ArgException.gif │ │ │ ├── classTCLAP_1_1ArgException.html │ │ │ ├── classTCLAP_1_1ArgParseException-members.html │ │ │ ├── classTCLAP_1_1ArgParseException.gif │ │ │ ├── classTCLAP_1_1ArgParseException.html │ │ │ ├── classTCLAP_1_1CmdLine-members.html │ │ │ ├── classTCLAP_1_1CmdLine.gif │ │ │ ├── classTCLAP_1_1CmdLine.html │ │ │ ├── classTCLAP_1_1CmdLineInterface-members.html │ │ │ ├── classTCLAP_1_1CmdLineInterface.gif │ │ │ ├── classTCLAP_1_1CmdLineInterface.html │ │ │ ├── classTCLAP_1_1CmdLineOutput-members.html │ │ │ ├── classTCLAP_1_1CmdLineOutput.gif │ │ │ ├── classTCLAP_1_1CmdLineOutput.html │ │ │ ├── classTCLAP_1_1CmdLineParseException-members.html │ │ │ ├── classTCLAP_1_1CmdLineParseException.gif │ │ │ ├── classTCLAP_1_1CmdLineParseException.html │ │ │ ├── classTCLAP_1_1Constraint-members.html │ │ │ ├── classTCLAP_1_1Constraint.gif │ │ │ ├── classTCLAP_1_1Constraint.html │ │ │ ├── classTCLAP_1_1DocBookOutput-members.html │ │ │ ├── classTCLAP_1_1DocBookOutput.gif │ │ │ ├── classTCLAP_1_1DocBookOutput.html │ │ │ ├── classTCLAP_1_1ExitException-members.html │ │ │ ├── classTCLAP_1_1ExitException.html │ │ │ ├── classTCLAP_1_1HelpVisitor-members.html │ │ │ ├── classTCLAP_1_1HelpVisitor.gif │ │ │ ├── classTCLAP_1_1HelpVisitor.html │ │ │ ├── classTCLAP_1_1IgnoreRestVisitor-members.html │ │ │ ├── classTCLAP_1_1IgnoreRestVisitor.gif │ │ │ ├── classTCLAP_1_1IgnoreRestVisitor.html │ │ │ ├── classTCLAP_1_1MultiArg-members.html │ │ │ ├── classTCLAP_1_1MultiArg.gif │ │ │ ├── classTCLAP_1_1MultiArg.html │ │ │ ├── classTCLAP_1_1MultiSwitchArg-members.html │ │ │ ├── classTCLAP_1_1MultiSwitchArg.gif │ │ │ ├── classTCLAP_1_1MultiSwitchArg.html │ │ │ ├── classTCLAP_1_1OptionalUnlabeledTracker-members.html │ │ │ ├── classTCLAP_1_1OptionalUnlabeledTracker.html │ │ │ ├── classTCLAP_1_1SpecificationException-members.html │ │ │ ├── classTCLAP_1_1SpecificationException.gif │ │ │ ├── classTCLAP_1_1SpecificationException.html │ │ │ ├── classTCLAP_1_1StdOutput-members.html │ │ │ ├── classTCLAP_1_1StdOutput.gif │ │ │ ├── classTCLAP_1_1StdOutput.html │ │ │ ├── classTCLAP_1_1SwitchArg-members.html │ │ │ ├── classTCLAP_1_1SwitchArg.gif │ │ │ ├── classTCLAP_1_1SwitchArg.html │ │ │ ├── classTCLAP_1_1UnlabeledMultiArg-members.html │ │ │ ├── classTCLAP_1_1UnlabeledMultiArg.gif │ │ │ ├── classTCLAP_1_1UnlabeledMultiArg.html │ │ │ ├── classTCLAP_1_1UnlabeledValueArg-members.html │ │ │ ├── classTCLAP_1_1UnlabeledValueArg.gif │ │ │ ├── classTCLAP_1_1UnlabeledValueArg.html │ │ │ ├── classTCLAP_1_1ValueArg-members.html │ │ │ ├── classTCLAP_1_1ValueArg.gif │ │ │ ├── classTCLAP_1_1ValueArg.html │ │ │ ├── classTCLAP_1_1ValuesConstraint-members.html │ │ │ ├── classTCLAP_1_1ValuesConstraint.gif │ │ │ ├── classTCLAP_1_1ValuesConstraint.html │ │ │ ├── classTCLAP_1_1VersionVisitor-members.html │ │ │ ├── classTCLAP_1_1VersionVisitor.gif │ │ │ ├── classTCLAP_1_1VersionVisitor.html │ │ │ ├── classTCLAP_1_1Visitor-members.html │ │ │ ├── classTCLAP_1_1Visitor.gif │ │ │ ├── classTCLAP_1_1Visitor.html │ │ │ ├── classTCLAP_1_1XorHandler-members.html │ │ │ ├── classTCLAP_1_1XorHandler.html │ │ │ ├── classTCLAP_1_1ZshCompletionOutput-members.html │ │ │ ├── classTCLAP_1_1ZshCompletionOutput.gif │ │ │ ├── classTCLAP_1_1ZshCompletionOutput.html │ │ │ ├── classes.html │ │ │ ├── doxygen.css │ │ │ ├── doxygen.png │ │ │ ├── files.html │ │ │ ├── functions.html │ │ │ ├── functions_0x61.html │ │ │ ├── functions_0x62.html │ │ │ ├── functions_0x63.html │ │ │ ├── functions_0x64.html │ │ │ ├── functions_0x65.html │ │ │ ├── functions_0x66.html │ │ │ ├── functions_0x67.html │ │ │ ├── functions_0x68.html │ │ │ ├── functions_0x69.html │ │ │ ├── functions_0x6c.html │ │ │ ├── functions_0x6d.html │ │ │ ├── functions_0x6e.html │ │ │ ├── functions_0x6f.html │ │ │ ├── functions_0x70.html │ │ │ ├── functions_0x71.html │ │ │ ├── functions_0x72.html │ │ │ ├── functions_0x73.html │ │ │ ├── functions_0x74.html │ │ │ ├── functions_0x75.html │ │ │ ├── functions_0x76.html │ │ │ ├── functions_0x77.html │ │ │ ├── functions_0x78.html │ │ │ ├── functions_0x7a.html │ │ │ ├── functions_0x7e.html │ │ │ ├── functions_func.html │ │ │ ├── functions_func_0x61.html │ │ │ ├── functions_func_0x62.html │ │ │ ├── functions_func_0x63.html │ │ │ ├── functions_func_0x64.html │ │ │ ├── functions_func_0x65.html │ │ │ ├── functions_func_0x66.html │ │ │ ├── functions_func_0x67.html │ │ │ ├── functions_func_0x68.html │ │ │ ├── functions_func_0x69.html │ │ │ ├── functions_func_0x6c.html │ │ │ ├── functions_func_0x6d.html │ │ │ ├── functions_func_0x6e.html │ │ │ ├── functions_func_0x6f.html │ │ │ ├── functions_func_0x70.html │ │ │ ├── functions_func_0x71.html │ │ │ ├── functions_func_0x72.html │ │ │ ├── functions_func_0x73.html │ │ │ ├── functions_func_0x74.html │ │ │ ├── functions_func_0x75.html │ │ │ ├── functions_func_0x76.html │ │ │ ├── functions_func_0x77.html │ │ │ ├── functions_func_0x78.html │ │ │ ├── functions_func_0x7a.html │ │ │ ├── functions_func_0x7e.html │ │ │ ├── functions_type.html │ │ │ ├── functions_vars.html │ │ │ ├── globals.html │ │ │ ├── globals_defs.html │ │ │ ├── globals_type.html │ │ │ ├── hierarchy.html │ │ │ ├── index.html │ │ │ ├── namespaceTCLAP.html │ │ │ ├── namespacemembers.html │ │ │ ├── namespacemembers_func.html │ │ │ ├── namespacemembers_type.html │ │ │ ├── namespaces.html │ │ │ ├── structTCLAP_1_1ArgTraits-members.html │ │ │ ├── structTCLAP_1_1ArgTraits.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01bool_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01bool_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01char_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01char_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01double_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01double_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01float_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01float_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01int_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01int_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01long_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01long_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01short_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01short_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01std_1_1string_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01std_1_1string_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01char_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01char_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01int_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01int_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01long_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01long_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01short_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01unsigned_01short_01_4.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01wchar__t_01_4-members.html │ │ │ ├── structTCLAP_1_1ArgTraits_3_01wchar__t_01_4.html │ │ │ ├── structTCLAP_1_1StringLike-members.html │ │ │ ├── structTCLAP_1_1StringLike.html │ │ │ ├── structTCLAP_1_1StringLikeTrait-members.html │ │ │ ├── structTCLAP_1_1StringLikeTrait.html │ │ │ ├── structTCLAP_1_1ValueLike-members.html │ │ │ ├── structTCLAP_1_1ValueLike.html │ │ │ ├── structTCLAP_1_1ValueLikeTrait-members.html │ │ │ ├── structTCLAP_1_1ValueLikeTrait.html │ │ │ ├── tab_b.gif │ │ │ ├── tab_l.gif │ │ │ ├── tab_r.gif │ │ │ └── tabs.css │ │ ├── index.html │ │ ├── manual.html │ │ ├── manual.xml │ │ └── style.css │ │ ├── examples │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── test1.cpp │ │ ├── test10.cpp │ │ ├── test11.cpp │ │ ├── test12.cpp │ │ ├── test13.cpp │ │ ├── test14.cpp │ │ ├── test15.cpp │ │ ├── test16.cpp │ │ ├── test17-a.cpp │ │ ├── test17.cpp │ │ ├── test18.cpp │ │ ├── test19.cpp │ │ ├── test2.cpp │ │ ├── test20.cpp │ │ ├── test21.cpp │ │ ├── test3.cpp │ │ ├── test4.cpp │ │ ├── test5.cpp │ │ ├── test6.cpp │ │ ├── test7.cpp │ │ ├── test8.cpp │ │ └── test9.cpp │ │ ├── include │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ └── tclap │ │ │ ├── Arg.h │ │ │ ├── ArgException.h │ │ │ ├── ArgTraits.h │ │ │ ├── CmdLine.h │ │ │ ├── CmdLineInterface.h │ │ │ ├── CmdLineOutput.h │ │ │ ├── Constraint.h │ │ │ ├── DocBookOutput.h │ │ │ ├── HelpVisitor.h │ │ │ ├── IgnoreRestVisitor.h │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── MultiArg.h │ │ │ ├── MultiSwitchArg.h │ │ │ ├── OptionalUnlabeledTracker.h │ │ │ ├── StandardTraits.h │ │ │ ├── StdOutput.h │ │ │ ├── SwitchArg.h │ │ │ ├── UnlabeledMultiArg.h │ │ │ ├── UnlabeledValueArg.h │ │ │ ├── ValueArg.h │ │ │ ├── ValuesConstraint.h │ │ │ ├── VersionVisitor.h │ │ │ ├── Visitor.h │ │ │ ├── XorHandler.h │ │ │ └── ZshCompletionOutput.h │ │ ├── msc │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── README │ │ ├── examples │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── test1.vcproj │ │ │ ├── test2.vcproj │ │ │ ├── test3.vcproj │ │ │ ├── test4.vcproj │ │ │ ├── test5.vcproj │ │ │ ├── test6.vcproj │ │ │ ├── test7.vcproj │ │ │ └── test8.vcproj │ │ ├── tclap-beta.ncb │ │ ├── tclap-beta.sln │ │ ├── tclap-beta.suo │ │ └── tclap-beta.vcproj │ │ ├── tclap.pc.in │ │ └── tests │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── test1.sh │ │ ├── test10.sh │ │ ├── test11.sh │ │ ├── test12.sh │ │ ├── test13.sh │ │ ├── test14.sh │ │ ├── test15.sh │ │ ├── test16.sh │ │ ├── test17.sh │ │ ├── test18.sh │ │ ├── test19.sh │ │ ├── test2.sh │ │ ├── test20.sh │ │ ├── test21.sh │ │ ├── test22.sh │ │ ├── test23.sh │ │ ├── test24.sh │ │ ├── test25.sh │ │ ├── test26.sh │ │ ├── test27.sh │ │ ├── test28.sh │ │ ├── test29.sh │ │ ├── test3.sh │ │ ├── test30.sh │ │ ├── test31.sh │ │ ├── test32.sh │ │ ├── test33.sh │ │ ├── test34.sh │ │ ├── test35.sh │ │ ├── test36.sh │ │ ├── test37.sh │ │ ├── test38.sh │ │ ├── test39.sh │ │ ├── test4.sh │ │ ├── test40.sh │ │ ├── test41.sh │ │ ├── test42.sh │ │ ├── test43.sh │ │ ├── test44.sh │ │ ├── test45.sh │ │ ├── test46.sh │ │ ├── test47.sh │ │ ├── test48.sh │ │ ├── test49.sh │ │ ├── test5.sh │ │ ├── test50.sh │ │ ├── test51.sh │ │ ├── test52.sh │ │ ├── test53.sh │ │ ├── test54.sh │ │ ├── test55.sh │ │ ├── test56.sh │ │ ├── test57.sh │ │ ├── test58.sh │ │ ├── test59.sh │ │ ├── test6.sh │ │ ├── test60.sh │ │ ├── test61.sh │ │ ├── test62.sh │ │ ├── test63.sh │ │ ├── test64.sh │ │ ├── test65.sh │ │ ├── test66.sh │ │ ├── test67.sh │ │ ├── test68.sh │ │ ├── test69.sh │ │ ├── test7.sh │ │ ├── test70.sh │ │ ├── test71.sh │ │ ├── test72.sh │ │ ├── test73.sh │ │ ├── test74.sh │ │ ├── test75.sh │ │ ├── test76.sh │ │ ├── test77.sh │ │ ├── test78.sh │ │ ├── test8.sh │ │ └── test9.sh └── split-dataset.rb └── website ├── BallTree(nmslib).html ├── BallTree(nmslib).png ├── MP-lsh(lshkit).html ├── MP-lsh(lshkit).png ├── SW-graph(nmslib).html ├── SW-graph(nmslib).png ├── annoy.html ├── annoy.png ├── ball.html ├── ball.png ├── bitsampling.html ├── bitsampling.png ├── bruteforce-blas.html ├── bruteforce-blas.png ├── bruteforce.html ├── bruteforce.png ├── bruteforce0(nmslib).html ├── bruteforce0(nmslib).png ├── css ├── bootstrap-theme.min.css ├── bootstrap.min.css ├── bootstrap.min.css.map └── style.css ├── faiss-lsh.html ├── faiss-lsh.png ├── falconn.html ├── falconn.png ├── flann.html ├── flann.png ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── glove.html ├── glove.png ├── hnsw(nmslib).html ├── hnsw(nmslib).png ├── index.html ├── js ├── Chart.js ├── Chart.min.js ├── bootstrap.js ├── bootstrap.min.js └── npm.js ├── kd.html ├── kd.png ├── kgraph.html ├── kgraph.png ├── lshf.html ├── lshf.png ├── mih.html ├── mih.png ├── mnist-data.html ├── mnist-data.png ├── nearpy.html ├── nearpy.png ├── nytimes-hamming-data.html ├── nytimes-hamming-data.png ├── nytimes.tfidf.256.data.html ├── nytimes.tfidf.256.data.png ├── panns.html ├── panns.png ├── rand-unit-data.html ├── rand-unit-data.png ├── rand7-data.html ├── rand7-data.png ├── rpforest.html ├── rpforest.png ├── sift-data.html ├── sift-data.png ├── sift-hamming-data.html ├── sift-hamming-data.png ├── sift.html ├── sift.png ├── webspam-data.html └── webspam-data.png /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.o 3 | protocol/c/fr-* 4 | 5 | install/*.txt 6 | install/*.yaml 7 | install/lib-*/ 8 | 9 | *.class 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.7_with_system_site_packages" 4 | # - "3.4" 5 | 6 | install: 7 | - sudo bash install.sh 8 | 9 | script: nosetests 10 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | RUN apt-get update -y && apt-get install -y ruby git python-pip python-dev build-essential wget python-tk 3 | RUN pip install matplotlib 4 | ADD . ann-benchmarks 5 | WORKDIR ann-benchmarks 6 | RUN git config --global user.email "ann-benchmarks@ann-benchmarks.com" 7 | RUN git config --global user.name "ANN Benchmarks" 8 | RUN mkdir queries/ 9 | RUN bash install.sh 10 | -------------------------------------------------------------------------------- /ann_benchmarks/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | # from ann_benchmarks.main import * 3 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/ann_benchmarks/algorithms/__init__.py -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/annoy.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import annoy 3 | from ann_benchmarks.algorithms.base import BaseANN 4 | 5 | class Annoy(BaseANN): 6 | def __init__(self, metric, n_trees, search_k): 7 | self._n_trees = n_trees 8 | self._search_k = search_k 9 | self._metric = metric 10 | self.name = 'Annoy(n_trees=%d, search_k=%d)' % (n_trees, search_k) 11 | 12 | def fit(self, X): 13 | self._annoy = annoy.AnnoyIndex(f=X.shape[1], metric=self._metric) 14 | for i, x in enumerate(X): 15 | self._annoy.add_item(i, x.tolist()) 16 | self._annoy.build(self._n_trees) 17 | 18 | def query(self, v, n): 19 | return self._annoy.get_nns_by_vector(v.tolist(), n, self._search_k) 20 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/balltree.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sklearn.neighbors 3 | import sklearn.preprocessing 4 | from ann_benchmarks.algorithms.base import BaseANN 5 | 6 | class BallTree(BaseANN): 7 | def __init__(self, metric, leaf_size=20): 8 | self.name = 'BallTree(leaf_size=%d)' % leaf_size 9 | self._leaf_size = leaf_size 10 | self._metric = metric 11 | 12 | def fit(self, X): 13 | if self._metric == 'angular': 14 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 15 | self._tree = sklearn.neighbors.BallTree(X, leaf_size=self._leaf_size) 16 | 17 | def query(self, v, n): 18 | if self._metric == 'angular': 19 | v = sklearn.preprocessing.normalize([v], axis=1, norm='l2')[0] 20 | dist, ind = self._tree.query([v], k=n) 21 | return ind[0] 22 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/base.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | class BaseANN(object): 4 | def use_threads(self): 5 | return True 6 | def done(self): 7 | pass 8 | def get_index_size(self, process): 9 | """Returns the size of the index in kB or -1 if not implemented.""" 10 | try: 11 | statusfile = open("/proc/%(pid)s/status" % {"pid" : str(process)}, "r") 12 | for line in statusfile.readlines(): 13 | if "VmRSS" in line: 14 | mem_usage = line.split(":")[1].strip() 15 | usage, unit = mem_usage.split(" ") 16 | val = int(usage) 17 | # Assume output to be in kB 18 | if unit == "B": 19 | val /= 1000.0 20 | if unit == "mB": 21 | val *= 1e3 22 | if unit == "gB": 23 | val *= 1e6 24 | return val 25 | except: 26 | print("Couldn't open status file, no index size available.") 27 | return -1 28 | 29 | def fit(self, X): 30 | pass 31 | def query(self, q, k): 32 | return [] # array of candidate indices 33 | 34 | # def query_verbose(self, q, k): 35 | # return (self.query(q, k), {}) # results with a dict of extra data 36 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/constructors.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sys 3 | import importlib 4 | import traceback 5 | 6 | __constructors = [ 7 | ("ann_benchmarks.algorithms.itu", 8 | ["ITUHashing", "ITUFilteringDouble"]), 9 | ("ann_benchmarks.algorithms.lshf", 10 | ["LSHF"]), 11 | ("ann_benchmarks.algorithms.annoy", 12 | ["Annoy"]), 13 | ("ann_benchmarks.algorithms.flann", 14 | ["FLANN"]), 15 | ("ann_benchmarks.algorithms.panns", 16 | ["PANNS"]), 17 | ("ann_benchmarks.algorithms.kdtree", 18 | ["KDTree"]), 19 | ("ann_benchmarks.algorithms.kgraph", 20 | ["KGraph"]), 21 | ("ann_benchmarks.algorithms.nearpy", 22 | ["NearPy"]), 23 | ("ann_benchmarks.algorithms.nmslib", 24 | ["NmslibNewIndex", "NmslibReuseIndex"]), 25 | ("ann_benchmarks.algorithms.falconn", 26 | ["FALCONN"]), 27 | ("ann_benchmarks.algorithms.balltree", 28 | ["BallTree"]), 29 | ("ann_benchmarks.algorithms.rpforest", 30 | ["RPForest"]), 31 | ("ann_benchmarks.algorithms.bruteforce", 32 | ["BruteForce", "BruteForceBLAS"]), 33 | ("ann_benchmarks.algorithms.subprocess", 34 | ["BitSubprocess", "BitSubprocessPrepared", "IntSubprocess", "FloatSubprocess"]), 35 | ("ann_benchmarks.algorithms.faiss", 36 | ["FaissLSH", "FaissIVF"]), 37 | ("ann_benchmarks.algorithms.faiss_gpu", 38 | ["FaissGPU"]), 39 | ("ann_benchmarks.algorithms.dolphinnpy", 40 | ["DolphinnPy"]), 41 | ("ann_benchmarks.algorithms.datasketch", 42 | ["DataSketch"]) 43 | ] 44 | 45 | available_constructors = {} 46 | for name, symbols in __constructors: 47 | try: 48 | module = importlib.import_module(name) 49 | for symbol in symbols: 50 | assert hasattr(module, symbol), """\ 51 | import error: module %s does not define symbol %s""" % (name, symbol) 52 | available_constructors[symbol] = getattr(module, symbol) 53 | except ImportError: 54 | try: 55 | t, v, tb = sys.exc_info() 56 | traceback.print_exception(t, v, tb) 57 | finally: 58 | del tb 59 | print """\ 60 | warning: module %s could not be loaded, some algorithm constructors will not \ 61 | be available""" % name 62 | for symbol in symbols: 63 | available_constructors[symbol] = None 64 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/datasketch.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from datasketch import MinHashLSHForest, MinHash 3 | from ann_benchmarks.algorithms.base import BaseANN 4 | 5 | class DataSketch(BaseANN): 6 | def __init__(self, metric, n_perm, n_rep): 7 | if metric not in ('jaccard'): 8 | raise NotImplementedError("Datasketch doesn't support metric %s" % metric) 9 | self._n_perm = n_perm 10 | self._n_rep = n_rep 11 | self._metric = metric 12 | self.name = 'Datasketch(n_perm=%d, n_rep=%d)' % (n_perm, n_rep) 13 | 14 | def fit(self, X): 15 | self._index = MinHashLSHForest(num_perm = self._n_perm, l = self._n_rep) 16 | for i, x in enumerate(X): 17 | m = MinHash(num_perm = self._n_perm) 18 | for e in x: 19 | m.update(str(e)) 20 | self._index.add(str(i), m) 21 | self._index.index() 22 | 23 | def query(self, v, n): 24 | m = MinHash(num_perm = self._n_perm) 25 | for e in v: 26 | m.update(str(e)) 27 | return map(int, self._index.query(m, n)) 28 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/dolphinnpy.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sys 3 | sys.path.append("install/lib-dolphinnpy") 4 | import numpy 5 | import ctypes 6 | from dolphinn import Dolphinn 7 | from utils import findmean, isotropize 8 | from ann_benchmarks.algorithms.base import BaseANN 9 | 10 | class DolphinnPy(BaseANN): 11 | def __init__(self, num_probes): 12 | self.name = 'Dolphinn(num_probes={} )'.format(num_probes) 13 | self.num_probes = num_probes 14 | self.m = 1 15 | self._index = None 16 | 17 | def fit(self, X): 18 | X = X.astype(numpy.float32) 19 | d = len(X[0]) 20 | self.m = findmean(X, d, 10) 21 | X = isotropize(X, d, self.m) 22 | hypercube_dim = int(numpy.log2(len(X))) - 2 23 | self._index = Dolphinn(X, d, hypercube_dim) 24 | 25 | def query(self, v, n): 26 | q = numpy.array([v]) 27 | q = isotropize(q, len(v), self.m) 28 | res = self._index.queries(q, n, self.num_probes) 29 | return res[0] 30 | 31 | def use_threads(self): 32 | return False 33 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/faiss.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sys 3 | sys.path.append("install/lib-faiss") 4 | import numpy 5 | import ctypes 6 | import faiss 7 | from ann_benchmarks.algorithms.base import BaseANN 8 | 9 | class FaissLSH(BaseANN): 10 | def __init__(self, n_bits): 11 | self.name = 'FaissLSH(n_bits={})'.format(n_bits) 12 | self._n_bits = n_bits 13 | self._index = None 14 | 15 | def fit(self, X): 16 | X = X.astype(numpy.float32) 17 | self._index = faiss.IndexLSH(len(X[0]), self._n_bits) 18 | self._index.train(X) 19 | self._index.add(X) 20 | 21 | def query(self, v, n): 22 | return [label for label, _ in self.query_with_distances(v, n)] 23 | 24 | def query_with_distances(self, v, n): 25 | v = v.astype(numpy.float32).reshape(1, -1) 26 | distances, labels = self._index.search(v, n) 27 | r = [] 28 | for l, d in zip(labels[0], distances[0]): 29 | if l != -1: 30 | r.append((l, d)) 31 | return r 32 | 33 | def use_threads(self): 34 | return False 35 | 36 | import sklearn 37 | 38 | class FaissIVF(BaseANN): 39 | def __init__(self, metric, n_list, n_probe): 40 | self.name = 'FaissIVF(n_list=%d, n_probe=%d)' % (n_list, n_probe) 41 | self._n_list = n_list 42 | self._n_probe = n_probe 43 | self._metric = metric 44 | 45 | def fit(self, X): 46 | if self._metric == 'angular': 47 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 48 | 49 | if X.dtype != numpy.float32: 50 | X = X.astype(numpy.float32) 51 | 52 | self.quantizer = faiss.IndexFlatL2(X.shape[1]) 53 | index = faiss.IndexIVFFlat(self.quantizer, X.shape[1], self._n_list, faiss.METRIC_L2) 54 | index.train(X) 55 | index.add(X) 56 | index.nprobe = self._n_probe 57 | self._index = index 58 | 59 | def query(self, v, n): 60 | if self._metric == 'angular': 61 | v /= numpy.linalg.norm(v) 62 | (dist,), (ids,) = self._index.search(v.reshape(1, -1).astype('float32'), n) 63 | return ids 64 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/faiss_gpu.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sys 3 | sys.path.append("install/lib-faiss") 4 | import numpy 5 | import ctypes 6 | import faiss 7 | from ann_benchmarks.algorithms.base import BaseANN 8 | 9 | # Implementation based on 10 | # https://github.com/facebookresearch/faiss/blob/master/benchs/bench_gpu_sift1m.py 11 | class FaissGPU(BaseANN): 12 | def __init__(self, n_bits, n_probes): 13 | self.name = 'FaissGPU(n_bits={}, n_probes={})'.format(n_bits, n_probes) 14 | self._n_bits = n_bits 15 | self._n_probes = n_probes 16 | self._index = None 17 | 18 | def fit(self, X): 19 | X = X.astype(numpy.float32) 20 | self._index = faiss.index_factory(len(X[0]), "IVF%d,PQ64" % self._n_bits) 21 | res = faiss.StandardGpuResources() 22 | co = faiss.GpuClonerOptions() 23 | co.useFloat16 = True 24 | self._index = faiss.index_cpu_to_gpu(res, 0, self._index, co) 25 | self._index.train(X) 26 | self._index.add(X) 27 | self._index.setNumProbes(self._n_probes) 28 | 29 | def query(self, v, n): 30 | return [label for label, _ in self.query_with_distances(v, n)] 31 | 32 | def query_with_distances(self, v, n): 33 | v = v.astype(numpy.float32).reshape(1, -1) 34 | distances, labels = self._index.search(v, n) 35 | r = [] 36 | for l, d in zip(labels[0], distances[0]): 37 | if l != -1: 38 | r.append((l, d)) 39 | return r 40 | 41 | def use_threads(self): 42 | return False 43 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/flann.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import pyflann 3 | import sklearn.preprocessing 4 | from ann_benchmarks.algorithms.base import BaseANN 5 | 6 | class FLANN(BaseANN): 7 | def __init__(self, metric, target_precision): 8 | self._target_precision = target_precision 9 | self.name = 'FLANN(target_precision=%f)' % target_precision 10 | self._metric = metric 11 | 12 | def fit(self, X): 13 | self._flann = pyflann.FLANN(target_precision=self._target_precision, algorithm='autotuned', log_level='info') 14 | if self._metric == 'angular': 15 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 16 | self._flann.build_index(X) 17 | 18 | def query(self, v, n): 19 | if self._metric == 'angular': 20 | v = sklearn.preprocessing.normalize([v], axis=1, norm='l2')[0] 21 | return self._flann.nn_index(v, n)[0][0] 22 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/kdtree.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sklearn.neighbors 3 | import sklearn.preprocessing 4 | from ann_benchmarks.algorithms.base import BaseANN 5 | 6 | class KDTree(BaseANN): 7 | def __init__(self, metric, leaf_size=20): 8 | self.name = 'KDTree(leaf_size=%d)' % leaf_size 9 | self._leaf_size = leaf_size 10 | self._metric = metric 11 | 12 | def fit(self, X): 13 | if self._metric == 'angular': 14 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 15 | self._tree = sklearn.neighbors.KDTree(X, leaf_size=self._leaf_size) 16 | 17 | def query(self, v, n): 18 | if self._metric == 'angular': 19 | v = sklearn.preprocessing.normalize([v], axis=1, norm='l2')[0] 20 | dist, ind = self._tree.query([v], k=n) 21 | return ind[0] 22 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/kgraph.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import os 3 | import numpy 4 | import pykgraph 5 | from ann_benchmarks.constants import INDEX_DIR 6 | from ann_benchmarks.algorithms.base import BaseANN 7 | 8 | class KGraph(BaseANN): 9 | def __init__(self, metric, P, index_params, save_index): 10 | self.name = 'KGraph(%s,P=%d)' % (metric, P) 11 | self._P = P 12 | self._metric = metric 13 | self._index_params = index_params 14 | self._save_index = save_index 15 | 16 | def fit(self, X): 17 | if X.dtype != numpy.float32: 18 | X = X.astype(numpy.float32) 19 | #if self._metric == 'angular': 20 | # X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 21 | self._kgraph = pykgraph.KGraph(X, self._metric) 22 | path = os.path.join(INDEX_DIR, 'kgraph-index-%s' % self._metric) 23 | if os.path.exists(path): 24 | self._kgraph.load(path) 25 | else: 26 | self._kgraph.build(**self._index_params) #iterations=30, L=100, delta=0.002, recall=0.99, K=25) 27 | if not os.path.exists(INDEX_DIR): 28 | os.makedirs(INDEX_DIR) 29 | self._kgraph.save(path) 30 | 31 | def query(self, v, n): 32 | if v.dtype != numpy.float32: 33 | v = v.astype(numpy.float32) 34 | result = self._kgraph.search(numpy.array([v]), K=n, threads=1, P=self._P) 35 | return result[0] 36 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/lshf.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sklearn.neighbors 3 | import sklearn.preprocessing 4 | from ann_benchmarks.algorithms.base import BaseANN 5 | 6 | class LSHF(BaseANN): 7 | def __init__(self, metric, n_estimators=10, n_candidates=50): 8 | self.name = 'LSHF(n_est=%d, n_cand=%d)' % (n_estimators, n_candidates) 9 | self._metric = metric 10 | self._n_estimators = n_estimators 11 | self._n_candidates = n_candidates 12 | 13 | def fit(self, X): 14 | self._lshf = sklearn.neighbors.LSHForest(n_estimators=self._n_estimators, n_candidates=self._n_candidates) 15 | if self._metric == 'angular': 16 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 17 | self._lshf.fit(X) 18 | 19 | def query(self, v, n): 20 | if self._metric == 'angular': 21 | v = sklearn.preprocessing.normalize([v], axis=1, norm='l2')[0] 22 | return self._lshf.kneighbors([v], return_distance=False, n_neighbors=n)[0] 23 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/nearpy.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import nearpy 3 | from nearpy.filters import NearestFilter 4 | import sklearn.preprocessing 5 | from ann_benchmarks.algorithms.base import BaseANN 6 | 7 | class NearPy(BaseANN): 8 | def __init__(self, metric, n_bits, hash_counts): 9 | self._n_bits = n_bits 10 | self._hash_counts = hash_counts 11 | self._metric = metric 12 | self._filter = NearestFilter(10) 13 | self.name = 'NearPy(n_bits=%d, hash_counts=%d)' % (n_bits, hash_counts) 14 | 15 | def fit(self, X): 16 | hashes = [] 17 | 18 | for k in xrange(self._hash_counts): 19 | nearpy_rbp = nearpy.hashes.RandomBinaryProjections('rbp_%d' % k, self._n_bits) 20 | hashes.append(nearpy_rbp) 21 | 22 | if self._metric == 'euclidean': 23 | dist = nearpy.distances.EuclideanDistance() 24 | self._nearpy_engine = nearpy.Engine( 25 | X.shape[1], 26 | lshashes=hashes, 27 | distance=dist) 28 | else: # Default (angular) = Cosine distance 29 | self._nearpy_engine = nearpy.Engine( 30 | X.shape[1], 31 | lshashes=hashes, 32 | vector_filters=[self._filter]) 33 | 34 | if self._metric == 'angular': 35 | X = sklearn.preprocessing.normalize(X, axis=1, norm='l2') 36 | for i, x in enumerate(X): 37 | self._nearpy_engine.store_vector(x, i) 38 | 39 | def query(self, v, n): 40 | # XXX: This feels like an unpleasant hack, but it's not clear how to do 41 | # better without making changes to NearPy 42 | self._filter.N = n 43 | if self._metric == 'angular': 44 | v = sklearn.preprocessing.normalize([v], axis=1, norm='l2')[0] 45 | return [y for x, y, z in self._nearpy_engine.neighbours(v)] 46 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/panns.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import panns 3 | from ann_benchmarks.algorithms.base import BaseANN 4 | 5 | class PANNS(BaseANN): 6 | def __init__(self, metric, n_trees, n_candidates): 7 | self._n_trees = n_trees 8 | self._n_candidates = n_candidates 9 | self._metric = metric 10 | self.name = 'PANNS(n_trees=%d, n_cand=%d)' % (n_trees, n_candidates) 11 | 12 | def fit(self, X): 13 | self._panns = panns.PannsIndex(X.shape[1], metric=self._metric) 14 | for x in X: 15 | self._panns.add_vector(x) 16 | self._panns.build(self._n_trees) 17 | 18 | def query(self, v, n): 19 | return [x for x, y in self._panns.query(v, n)] 20 | -------------------------------------------------------------------------------- /ann_benchmarks/algorithms/rpforest.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import rpforest 3 | from ann_benchmarks.algorithms.base import BaseANN 4 | 5 | class RPForest(BaseANN): 6 | def __init__(self, leaf_size, n_trees): 7 | self.name = 'RPForest(leaf_size=%d, n_trees=%d)' % (leaf_size, n_trees) 8 | self._model = rpforest.RPForest(leaf_size=leaf_size, no_trees=n_trees) 9 | 10 | def fit(self, X): 11 | self._model.fit(X) 12 | 13 | def query(self, v, n): 14 | return self._model.query(v, n) 15 | -------------------------------------------------------------------------------- /ann_benchmarks/constants.py: -------------------------------------------------------------------------------- 1 | INDEX_DIR = 'indices' 2 | -------------------------------------------------------------------------------- /ann_benchmarks/data.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import numpy 3 | 4 | def float_parse_entry(line): 5 | return [float(x) for x in line.strip().split()] 6 | def float_unparse_entry(entry): 7 | return " ".join(map(str, entry)) 8 | def int_parse_entry(line): 9 | return frozenset([int(x) for x in line.strip().split()]) 10 | def int_unparse_entry(entry): 11 | return " ".join(map(str, map(int, entry))) 12 | 13 | def bit_parse_entry(line): 14 | return [bool(int(x)) for x in list(line.strip().replace(" ", "").replace("\t", ""))] 15 | def bit_unparse_entry(entry): 16 | return " ".join(map(lambda el: "1" if el else "0", entry)) 17 | 18 | type_info = { 19 | "float": { 20 | "type": numpy.float, 21 | "parse_entry": float_parse_entry, 22 | "unparse_entry": float_unparse_entry, 23 | "finish_entries": numpy.vstack 24 | }, 25 | "bit": { 26 | "type": numpy.bool_, 27 | "parse_entry": bit_parse_entry, 28 | "unparse_entry": bit_unparse_entry 29 | }, 30 | "int" : { 31 | "type": numpy.object, 32 | "parse_entry": int_parse_entry, 33 | "unparse_entry": int_unparse_entry, 34 | }, 35 | } 36 | 37 | -------------------------------------------------------------------------------- /ann_benchmarks/distance.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from scipy.spatial.distance import pdist as scipy_pdist 3 | 4 | def pdist(a, b, metric): 5 | return scipy_pdist([a, b], metric=metric)[0] 6 | 7 | # Need own implementation of jaccard because numpy's implementation is different 8 | def jaccard(a, b): 9 | if len(a) == 0 or len(b) == 0: 10 | return 0 11 | intersect = len(a & b) 12 | return intersect / (float)(len(a) + len(b) - intersect) 13 | 14 | 15 | metrics = { 16 | 'hamming': { 17 | 'distance' : lambda a, b: pdist(a, b, "hamming"), 18 | 'distance_valid' : lambda a: True 19 | }, 20 | # return 1 - jaccard similarity, because smaller distances are better. 21 | 'jaccard': { 22 | 'distance' : lambda a, b: 1 - jaccard(a, b), 23 | 'distance_valid' : lambda a: a < 1 - 1e-5 24 | }, 25 | 'euclidean': { 26 | 'distance' : lambda a, b: pdist(a, b, "euclidean"), 27 | 'distance_valid' : lambda a: True 28 | }, 29 | 'angular': { 30 | 'distance' : lambda a, b: pdist(a, b, "cosine"), 31 | 'distance_valid' : lambda a: True 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ann_benchmarks/plotting/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from ann_benchmarks.plotting import * 3 | -------------------------------------------------------------------------------- /ann_benchmarks/plotting/plot_variants.py: -------------------------------------------------------------------------------- 1 | from ann_benchmarks.plotting.metrics import all_metrics as metrics 2 | 3 | all_plot_variants = { 4 | "recall/time" : ("k-nn", "qps"), 5 | "recall/buildtime" : ("k-nn", "build"), 6 | "recall/indexsize" : ("k-nn", "indexsize"), 7 | "rel/time" : ("rel", "qps"), 8 | "recall/candidates" : ("k-nn", "candidates"), 9 | "recall/qpssize" : ("k-nn", "queriessize"), 10 | "eps/time" : ("epsilon", "qps"), 11 | "largeeps/time" : ("largeepsilon", "qps") 12 | } 13 | -------------------------------------------------------------------------------- /frontend/website/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/website/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/frontend/website/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /frontend/website/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/frontend/website/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /frontend/website/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/frontend/website/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /frontend/website/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/frontend/website/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /frontend/website/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | apt-get update 2 | apt-get install -y python-numpy python-scipy python-pip python-nose build-essential software-properties-common unzip 3 | 4 | apt-get install -y libboost1.58-all-dev 5 | apt-get autoremove -y 6 | 7 | pip install scikit-learn pyyaml 8 | 9 | cd install 10 | for fn in lib-*.sh 11 | do 12 | sh $fn 13 | done 14 | 15 | #sh data-sift.sh 16 | -------------------------------------------------------------------------------- /install/_ins_utilities.sh: -------------------------------------------------------------------------------- 1 | # ($0: target directory) 2 | # $1: URL 3 | # (changes directory to target directory) 4 | ins_git_get() { 5 | dir="${0##*/}" 6 | dir="${dir%%.sh}" 7 | if [ ! -d "$dir" ]; then 8 | git clone "$1" "$dir" 9 | else ( 10 | cd "$dir" && 11 | git clean -dfx && 12 | git reset --hard origin/master && 13 | git pull 14 | ) fi 15 | cd "$dir" && 16 | git am ../${dir}_*.patch || true 17 | } 18 | 19 | # $@: package names 20 | ins_deb_require() { 21 | dpkg-query --show "$@" || apt-get install -y "$@" 22 | } 23 | 24 | ins_pip_get() { 25 | ins_deb_require python-pip && pip install "$@" 26 | } 27 | 28 | # $1: URL of file containing gzipped dataset 29 | # $2: expected MD5 checksum of that file 30 | ins_data_get() { 31 | url="$1" 32 | md5sum="$2" 33 | filename="${url##*/}" 34 | unzipped="${filename%.gz}" 35 | if [ ! -f "$unzipped" ]; then 36 | if [ ! -f "$filename" ]; then 37 | wget "$url" 38 | fi 39 | md5sum --check - < 0: out = out + ' ' 52 | out = out + str(vec[j]) 53 | print out 54 | 55 | -------------------------------------------------------------------------------- /install/convert_word2vec_format.py: -------------------------------------------------------------------------------- 1 | import struct 2 | import sys 3 | import gzip 4 | 5 | f = gzip.open(sys.argv[1]) 6 | g = gzip.open(sys.argv[2], 'w') 7 | words, size = (int(x) for x in f.readline().strip().split()) 8 | 9 | t = 'f' * size 10 | 11 | while True: 12 | while True: 13 | ch = f.read(1) 14 | if ch in ['', '\n', ' ']: break 15 | if ch in ['', '\n']: break 16 | vec = struct.unpack(t, f.read(4 * size)) 17 | 18 | print >> g, ' '.join(['%.6f' % x for x in vec]) 19 | g.close() 20 | -------------------------------------------------------------------------------- /install/data-fashion-mnist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "fashion-mnist-data.txt" ]; then 6 | ins_data_get \ 7 | "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz" \ 8 | "8d4fb7e6c68d591d4c3dfef9ec88bf0d" && 9 | python convert_idx.py train-images-idx3-ubyte > fashion-mnist-data.txt && 10 | rm -f train-images-idx3-ubyte 11 | fi 12 | 13 | if [ ! -f "fashion-mnist-query.txt" ]; then 14 | ins_data_get \ 15 | "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz" \ 16 | "bef4ecab320f06d8554ea6380940ec79" && 17 | python convert_idx.py t10k-images-idx3-ubyte > fashion-mnist-query.txt && 18 | rm -f t10k-images-idx3-ubyte 19 | fi 20 | -------------------------------------------------------------------------------- /install/data-gist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "gist-data.txt" ]; then 6 | ins_data_get \ 7 | "ftp://ftp.irisa.fr/local/texmex/corpus/gist.tar.gz" \ 8 | "31185e0f00854f74d27e8ad8d52628a9" && 9 | tar -xf gist.tar && 10 | rm -f gist.tar && 11 | python convert_texmex_fvec.py gist/gist_base.fvecs > gist-data.txt && 12 | python convert_texmex_fvec.py gist/gist_query.fvecs > gist-query.txt && 13 | rm -rf gist 14 | fi 15 | -------------------------------------------------------------------------------- /install/data-glove.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "glove.txt" ]; then 6 | ins_data_get \ 7 | "https://s3-us-west-1.amazonaws.com/annoy-vectors/glove.twitter.27B.100d.txt.gz" \ 8 | "054f2ea9f9b168ce1c205ca1b9b5b0a2" && 9 | cut -d " " -f 2- glove.twitter.27B.100d.txt > glove.txt && # strip first column 10 | ruby ../tools/split-dataset.rb glove.txt glove-data.txt glove-query.txt 10000 312322936 11 | rm -f glove.twitter.27B.100d.txt 12 | rm -f glove.txt 13 | fi 14 | -------------------------------------------------------------------------------- /install/data-hamming.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "nytimes-hamming-data.txt" ]; then 6 | if [ ! -f "hamming-space.tar.bz2" ]; then 7 | wget http://sss.projects.itu.dk/ann-benchmarks/datasets/hamming-space.tar.bz2 8 | fi 9 | 10 | tar xf hamming-space.tar.bz2 11 | 12 | cp hamming-space/nytimes.hamming.128.data nytimes-hamming-data.txt 13 | cat > nytimes-hamming-data.yaml < pubmed-hamming-data.yaml < sift-hamming-data.yaml < mnist-data.txt && 10 | rm -f train-images-idx3-ubyte 11 | fi 12 | 13 | if [ ! -f "mnist-query.txt" ]; then 14 | ins_data_get \ 15 | "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz" \ 16 | "9fb629c4189551a2d022fa330f9573f3" && 17 | python convert_idx.py t10k-images-idx3-ubyte > mnist-query.txt && 18 | rm -f t10k-images-idx3-ubyte 19 | fi 20 | -------------------------------------------------------------------------------- /install/data-nytimes.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "nytimes.tfidf.256.data.txt" ]; then 6 | if [ ! -f "nytimes.tifidf.256.data.tar.bz2" ]; then 7 | wget http://sss.projects.itu.dk/ann-benchmarks/datasets/nytimes.tfidf.256.tar.bz2 8 | fi 9 | 10 | tar xf nytimes.tfidf.256.tar.bz2 && rm nytimes.tfidf.256.tar.bz2 11 | fi 12 | 13 | 14 | -------------------------------------------------------------------------------- /install/data-random.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ ! -f "random-euclidean-data.txt" ]; then 3 | cd ../tools/random-input-generation 4 | mkdir -p build && 5 | cd build && 6 | cmake -DCMAKE_BUILD_TYPE=Release .. && 7 | make -j4 8 | src/rand-euclidean -s 388527680 -o ../../../install/rand-euclidean-data.txt -q ../../../install/rand-euclidean-query.txt -n 1000000 -d 128 -p 500 -c 500 -g 9 | src/rand-euclidean -s 210728676 -o ../../../install/rand-angular-data.txt -q ../../../install/rand-angular-query.txt -n 1000000 -d 128 -p 500 -c 500 -g -N 10 | fi 11 | -------------------------------------------------------------------------------- /install/data-setsimilarity.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | if [ ! -f "aol-data.txt" ]; then 6 | if [ ! -f "ssjoin-data.tar.xz" ]; then 7 | wget http://ssjoin.dbresearch.uni-salzburg.at/downloads/projects/ssjoin/ssjoin-data.tar.xz 8 | fi 9 | 10 | tar xf ssjoin-data.tar.xz 11 | 12 | cp ssjoin-data/aol-data/aol-data-white-dedup-lenshuf-raw.txt aol-data.txt 13 | cat > aol-data.yaml < flickr-data.yaml < kosarek-data.yaml < sift-data.txt && 12 | python convert_texmex_fvec.py sift/sift_query.fvecs > sift-query.txt && 13 | head -n 50000 sift-data.txt > siffette.txt && 14 | rm -rf sift 15 | fi 16 | -------------------------------------------------------------------------------- /install/data-webspam.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | sh lib-annitu.sh --just-get > /dev/null 2>&1 || exit 1 6 | if [ ! -f "webspam-data.txt" ]; then 7 | cp lib-annitu/datasets/webspam/data_256.txt webspam-data.txt && 8 | cat > webspam-data.yaml < webspam-query.yaml < 3 | Date: Tue, 14 Mar 2017 11:54:27 +0000 4 | Subject: [PATCH] Removed a strange definition from the Linux Makefile 5 | 6 | --- 7 | example_makefiles/makefile.inc.Linux | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/example_makefiles/makefile.inc.Linux b/example_makefiles/makefile.inc.Linux 11 | index 5634f58..01cbc6e 100644 12 | --- a/example_makefiles/makefile.inc.Linux 13 | +++ b/example_makefiles/makefile.inc.Linux 14 | @@ -11,7 +11,7 @@ 15 | 16 | CC=g++ 17 | 18 | -CFLAGS=-fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare -Dnullptr=NULL -Doverride= -fopenmp 19 | +CFLAGS=-fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare -Doverride= -fopenmp 20 | LDFLAGS=-g -fPIC -fopenmp 21 | 22 | # common linux flags 23 | -- 24 | 2.11.0 25 | 26 | -------------------------------------------------------------------------------- /install/lib-faiss_0002.patch: -------------------------------------------------------------------------------- 1 | From 3a92b10d3da6ef5d1ad26315b20db302c0f89756 Mon Sep 17 00:00:00 2001 2 | From: Martin Aumueller 3 | Date: Tue, 11 Apr 2017 11:46:37 +0000 4 | Subject: [PATCH] Make Ubuntu16 and c++14 default. 5 | 6 | --- 7 | example_makefiles/makefile.inc.Linux | 8 ++++---- 8 | 1 file changed, 4 insertions(+), 4 deletions(-) 9 | 10 | diff --git a/example_makefiles/makefile.inc.Linux b/example_makefiles/makefile.inc.Linux 11 | index 01cbc6e..216b592 100644 12 | --- a/example_makefiles/makefile.inc.Linux 13 | +++ b/example_makefiles/makefile.inc.Linux 14 | @@ -11,7 +11,7 @@ 15 | 16 | CC=g++ 17 | 18 | -CFLAGS=-fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare -Doverride= -fopenmp 19 | +CFLAGS=-fPIC -m64 -Wall -g -O3 -msse4 -mpopcnt -fopenmp -Wno-sign-compare -Doverride= -fopenmp -std=c++14 20 | LDFLAGS=-g -fPIC -fopenmp 21 | 22 | # common linux flags 23 | @@ -60,11 +60,11 @@ FAISSSHAREDFLAGS=-shared 24 | BLASCFLAGS=-DFINTEGER=int 25 | 26 | # This is for Centos: 27 | -BLASLDFLAGS=/usr/lib64/libopenblas.so.0 28 | +#BLASLDFLAGS=/usr/lib64/libopenblas.so.0 29 | 30 | # for Ubuntu 16: 31 | # sudo apt-get install libopenblas-dev python-numpy python-dev 32 | -# BLASLDFLAGS=/usr/lib/libopenblas.so.0 33 | +BLASLDFLAGS=/usr/lib/libopenblas.so.0 34 | 35 | # for Ubuntu 14: 36 | # sudo apt-get install libopenblas-dev liblapack3 python-numpy python-dev 37 | -- 38 | 2.7.4 39 | 40 | -------------------------------------------------------------------------------- /install/lib-falconn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_pip_get falconn 6 | -------------------------------------------------------------------------------- /install/lib-flann.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require cmake && 6 | ins_git_get https://github.com/mariusmuja/flann && 7 | mkdir build && 8 | cd build && 9 | cmake .. && 10 | make -j4 && 11 | make install 12 | -------------------------------------------------------------------------------- /install/lib-flann_0001.patch: -------------------------------------------------------------------------------- 1 | From fe770f78985143aa9ccae9af807cf0f9ed023f1c Mon Sep 17 00:00:00 2001 2 | From: Alec Faithfull 3 | Date: Tue, 14 Mar 2017 11:55:51 +0000 4 | Subject: [PATCH] Fixed the name of the variable containing the libhdf5 include 5 | directories 6 | 7 | --- 8 | CMakeLists.txt | 2 +- 9 | 1 file changed, 1 insertion(+), 1 deletion(-) 10 | 11 | diff --git a/CMakeLists.txt b/CMakeLists.txt 12 | index acc6808..a01fb7a 100644 13 | --- a/CMakeLists.txt 14 | +++ b/CMakeLists.txt 15 | @@ -77,7 +77,7 @@ find_hdf5() 16 | if (NOT HDF5_FOUND) 17 | message(WARNING "hdf5 library not found, some tests will not be run") 18 | else() 19 | - include_directories(${HDF5_INCLUDE_DIR}) 20 | + include_directories(${HDF5_INCLUDE_DIRS}) 21 | endif() 22 | 23 | if (USE_MPI OR HDF5_IS_PARALLEL) 24 | -- 25 | 2.11.0 26 | 27 | -------------------------------------------------------------------------------- /install/lib-kgraph.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require libboost-timer-dev libboost-chrono-dev libboost-program-options-dev libboost-system-dev libboost-python-dev && 6 | ins_git_get https://github.com/aaalgo/kgraph && 7 | if [ -z "$CC" ] 8 | then 9 | CC=g++ 10 | fi && 11 | python setup.py build && 12 | python setup.py install 13 | -------------------------------------------------------------------------------- /install/lib-mih.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require cmake libhdf5-dev && 6 | ins_git_get https://github.com/norouzi/mih && 7 | mkdir build && 8 | mkdir wrapper && 9 | cp ../../protocol/c/frontend.c wrapper/ && 10 | cp ../lib-mih-wrapper.cpp wrapper/ && 11 | cd build && 12 | cmake ../ && 13 | make -j4 14 | 15 | 16 | -------------------------------------------------------------------------------- /install/lib-mih_0001.patch: -------------------------------------------------------------------------------- 1 | From b76963a30cfb8d45e2ecc4df3862c410fa120d09 Mon Sep 17 00:00:00 2001 2 | From: Alec Faithfull 3 | Date: Tue, 14 Mar 2017 11:45:15 +0000 4 | Subject: [PATCH 1/2] Use the find_package command to find libhdf5, not 5 | find_library 6 | 7 | This commit also takes advantage of this change by adding the include 8 | directories for the library to the include path 9 | --- 10 | CMakeLists.txt | 8 ++++---- 11 | 1 file changed, 4 insertions(+), 4 deletions(-) 12 | 13 | diff --git a/CMakeLists.txt b/CMakeLists.txt 14 | index f9d173c..33d1754 100644 15 | --- a/CMakeLists.txt 16 | +++ b/CMakeLists.txt 17 | @@ -1,16 +1,16 @@ 18 | cmake_minimum_required(VERSION 2.6) 19 | project (mih) 20 | 21 | -find_library (HDF5_LIB hdf5) 22 | +find_package(HDF5 REQUIRED) 23 | 24 | set (CMAKE_CXX_FLAGS "-DSINGLE_CORE -O2 -fopenmp -DNDEBUG") 25 | # -Wall -march=native -mtune=native") 26 | 27 | -include_directories ("${PROJECT_SOURCE_DIR}/include") 28 | +include_directories ("${PROJECT_SOURCE_DIR}/include" "${HDF5_INCLUDE_DIRS}") 29 | 30 | add_executable (mih src/array32.cpp src/mihasher.cpp src/sparse_hashtable.cpp src/bucket_group.cpp interface/mih_interface.cpp src/reorder.cpp interface/loadVar.cpp interface/saveRes.cpp) 31 | -target_link_libraries (mih ${HDF5_LIB}) 32 | +target_link_libraries (mih ${HDF5_LIBRARIES}) 33 | 34 | project (linscan) 35 | add_executable (linscan interface/linscan_interface.cpp src/linscan.cpp interface/loadVar.cpp interface/saveRes.cpp) 36 | -target_link_libraries (linscan ${HDF5_LIB}) 37 | +target_link_libraries (linscan ${HDF5_LIBRARIES}) 38 | -- 39 | 2.11.0 40 | 41 | -------------------------------------------------------------------------------- /install/lib-mih_0002.patch: -------------------------------------------------------------------------------- 1 | From 1f07d772d9396167868e410ca1484de4081879ad Mon Sep 17 00:00:00 2001 2 | From: Alec Faithfull 3 | Date: Tue, 14 Mar 2017 11:47:50 +0000 4 | Subject: [PATCH 2/2] Produce a static library for some of the parts of the mih 5 | program 6 | 7 | This should hopefully be enough to write a benchmarkable wrapper around the 8 | mihasher class 9 | --- 10 | CMakeLists.txt | 6 ++++-- 11 | 1 file changed, 4 insertions(+), 2 deletions(-) 12 | 13 | diff --git a/CMakeLists.txt b/CMakeLists.txt 14 | index 33d1754..420dc63 100644 15 | --- a/CMakeLists.txt 16 | +++ b/CMakeLists.txt 17 | @@ -8,8 +8,10 @@ set (CMAKE_CXX_FLAGS "-DSINGLE_CORE -O2 -fopenmp -DNDEBUG") 18 | 19 | include_directories ("${PROJECT_SOURCE_DIR}/include" "${HDF5_INCLUDE_DIRS}") 20 | 21 | -add_executable (mih src/array32.cpp src/mihasher.cpp src/sparse_hashtable.cpp src/bucket_group.cpp interface/mih_interface.cpp src/reorder.cpp interface/loadVar.cpp interface/saveRes.cpp) 22 | -target_link_libraries (mih ${HDF5_LIBRARIES}) 23 | +add_library(mihlib src/array32.cpp src/mihasher.cpp src/sparse_hashtable.cpp src/bucket_group.cpp src/reorder.cpp) 24 | + 25 | +add_executable (mih interface/mih_interface.cpp interface/loadVar.cpp interface/saveRes.cpp) 26 | +target_link_libraries (mih ${HDF5_LIBRARIES} mihlib) 27 | 28 | project (linscan) 29 | add_executable (linscan interface/linscan_interface.cpp src/linscan.cpp interface/loadVar.cpp interface/saveRes.cpp) 30 | -- 31 | 2.11.0 32 | 33 | -------------------------------------------------------------------------------- /install/lib-nearpy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require libhdf5-openmpi-dev python-h5py cython && 6 | ins_pip_get nearpy bitarray redis 7 | -------------------------------------------------------------------------------- /install/lib-nmslib.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require cmake libboost-all-dev libeigen3-dev libgsl0-dev && 6 | ins_git_get https://github.com/searchivarius/nmslib.git && 7 | cd similarity_search && 8 | echo "CC: $CC, CXX: $CXX" && 9 | export CMAKE_C_COMPILER=$CC CMAKE_CXX_COMPILER=$CXX && 10 | export CMAKE_C_COMPILER_ENV_VAR=CC CMAKE_CXX_COMPILER_ENV_VAR=CXX && 11 | cmake . -DWITH_EXTRAS=1 && 12 | make -j4 && 13 | cd ../python_bindings && 14 | python setup.py build && 15 | python setup.py install 16 | -------------------------------------------------------------------------------- /install/lib-panns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_pip_get panns 6 | -------------------------------------------------------------------------------- /install/lib-rpforest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_deb_require python-dev python-setuptools && 6 | ins_git_get https://github.com/lyst/rpforest && 7 | python setup.py install 8 | -------------------------------------------------------------------------------- /install/lib-sklearn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd "$(dirname "$0")" 3 | . ./_ins_utilities.sh 4 | 5 | ins_pip_get scikit-learn 6 | ins_pip_get scipy 7 | -------------------------------------------------------------------------------- /protocol/README: -------------------------------------------------------------------------------- 1 | This directory contains example implementations of the text-based protocol 2 | used to generate wrappers for some of the libraries. (See the "spec.txt" file, 3 | also in this directory, for more information about the protocol.) 4 | 5 | The authors of these implementations give unlimited permission to copy and/or 6 | distribute them, with or without modifications. 7 | -- 8 | Path: c/ 9 | Lang.: C 10 | Author: Alec Faithfull 11 | -- 12 | Path: java/ 13 | Lang.: Java 14 | Author: Alec Faithfull 15 | -------------------------------------------------------------------------------- /protocol/c/Makefile: -------------------------------------------------------------------------------- 1 | all: fr-tester fr-dummy 2 | 3 | fr-%: frontend.o %.o 4 | $(CC) -o $@ $^ 5 | -------------------------------------------------------------------------------- /protocol/c/dummy.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | bool configure(const char* var, const char* val) { 6 | return true; 7 | } 8 | 9 | bool end_configure(void) { 10 | return true; 11 | } 12 | 13 | bool train(const char* entry) { 14 | return true; 15 | } 16 | 17 | void end_train(void) { 18 | } 19 | 20 | size_t query(const char* entry, size_t k) { 21 | return 0; 22 | } 23 | 24 | size_t query_result(void) { 25 | return SIZE_MAX; 26 | } 27 | 28 | void end_query(void) { 29 | } 30 | -------------------------------------------------------------------------------- /protocol/java/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /protocol/java/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | epbprtv04j 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /protocol/java/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.6 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.6 12 | -------------------------------------------------------------------------------- /protocol/java/runner: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd "$(dirname "$0")" 4 | CLASSPATH=bin/ java dk.itu.epbprtv0.Runner "$@" 5 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/algorithm/DummyFactory.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.algorithm; 2 | 3 | import java.util.List; 4 | import java.util.Collections; 5 | 6 | public class DummyFactory implements QueryAlgorithmFactory { 7 | private static final class DummyAlgorithm implements QueryAlgorithm { 8 | @Override 9 | public boolean train(String item) { 10 | return true; 11 | } 12 | 13 | @Override 14 | public void endTrain() { 15 | } 16 | 17 | @Override 18 | public List query(String item, int k) { 19 | return Collections.emptyList(); 20 | } 21 | 22 | public static final DummyAlgorithm INSTANCE = new DummyAlgorithm(); 23 | } 24 | 25 | @Override 26 | public boolean configure(String var, String val) { 27 | return true; 28 | } 29 | 30 | @Override 31 | public QueryAlgorithm endConfigure() { 32 | return DummyAlgorithm.INSTANCE; 33 | } 34 | } -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/algorithm/PreparedQueryAlgorithm.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.algorithm; 2 | 3 | public interface PreparedQueryAlgorithm extends QueryAlgorithm { 4 | void prepareQuery(String entry); 5 | } 6 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/algorithm/QueryAlgorithm.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.algorithm; 2 | 3 | import java.util.List; 4 | 5 | public interface QueryAlgorithm { 6 | boolean train(String entry); 7 | void endTrain(); 8 | 9 | List query(String entry, int count); 10 | } 11 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/algorithm/QueryAlgorithmFactory.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.algorithm; 2 | 3 | public interface QueryAlgorithmFactory { 4 | boolean configure(String var, String val); 5 | QueryAlgorithm endConfigure(); 6 | } 7 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/distance/CosineDistance.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.distance; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.IOException; 5 | import java.io.InputStreamReader; 6 | import java.util.List; 7 | 8 | import dk.itu.epbprtv0.Tokeniser; 9 | import dk.itu.epbprtv0.types.DoubleInfo; 10 | 11 | public class CosineDistance implements DistanceMetric> { 12 | public static final CosineDistance INSTANCE = new CosineDistance(); 13 | 14 | @Override 15 | public double getDistance(List a, List b) { 16 | assert a.size() == b.size(); 17 | int count = a.size(); 18 | 19 | double dotProduct = 0.0; 20 | double as = 0.0, bs = 0.0; 21 | for (int i = 0; i < count; i++) { 22 | double ai = a.get(i), bi = b.get(i); 23 | dotProduct += ai * bi; 24 | as += Math.pow(ai, 2); 25 | bs += Math.pow(bi, 2); 26 | } 27 | 28 | return 1.0 - (dotProduct / (Math.sqrt(as) * Math.sqrt(bs))); 29 | } 30 | 31 | private static class Holder1 { 32 | public static final BufferedReader IN = 33 | new BufferedReader(new InputStreamReader(System.in)); 34 | } 35 | protected static List getTokens() { 36 | try { 37 | return Tokeniser.tokenise(Holder1.IN.readLine()); 38 | } catch (IOException e) { 39 | return null; 40 | } 41 | } 42 | 43 | public static void main(String[] args) { 44 | List tokens; 45 | while ((tokens = getTokens()) != null && !tokens.isEmpty()) { 46 | List p = DoubleInfo.INSTANCE.parse(tokens.get(0)); 47 | List q = DoubleInfo.INSTANCE.parse(tokens.get(1)); 48 | System.out.println(INSTANCE.getDistance(q, p)); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/distance/DistanceMetric.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.distance; 2 | 3 | public interface DistanceMetric { 4 | class DistancePair { 5 | public final int index; 6 | public final double distance; 7 | 8 | public DistancePair(int index, double distance) { 9 | this.index = index; 10 | this.distance = distance; 11 | } 12 | 13 | @Override 14 | public int hashCode() { 15 | return index * (1 + (int)distance); 16 | } 17 | 18 | @Override 19 | public boolean equals(Object o) { 20 | if (o instanceof DistancePair) { 21 | DistancePair dp = (DistancePair)o; 22 | return (index == dp.index && distance == dp.distance); 23 | } else return false; 24 | } 25 | } 26 | 27 | double getDistance(T a, T b); 28 | } -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/distance/EuclideanDistance.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.distance; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.IOException; 5 | import java.io.InputStreamReader; 6 | import java.util.List; 7 | import dk.itu.epbprtv0.Tokeniser; 8 | 9 | public class EuclideanDistance implements DistanceMetric> { 10 | public static final EuclideanDistance INSTANCE = new EuclideanDistance(); 11 | 12 | @Override 13 | public double getDistance(List q, List p) { 14 | assert q.size() == p.size(); 15 | int count = q.size(); 16 | 17 | double t = 0.0; 18 | for (int i = 0; i < count; i++) 19 | t += Math.pow(q.get(i) - p.get(i), 2); 20 | return Math.sqrt(t); 21 | } 22 | 23 | private static class Holder1 { 24 | public static final BufferedReader IN = 25 | new BufferedReader(new InputStreamReader(System.in)); 26 | } 27 | protected static List getTokens() { 28 | try { 29 | return Tokeniser.tokenise(Holder1.IN.readLine()); 30 | } catch (IOException e) { 31 | return null; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/distance/HammingDistance.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.distance; 2 | 3 | import java.util.List; 4 | 5 | public class HammingDistance implements DistanceMetric> { 6 | public static final HammingDistance INSTANCE = new HammingDistance(); 7 | 8 | @Override 9 | public double getDistance(List a, List b) { 10 | assert a.size() == b.size(); 11 | int distance = 0; 12 | for (int i = 0; i < a.size(); i++) { 13 | if (a.get(i) != b.get(i)) 14 | distance++; 15 | } 16 | return distance; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/types/BitInfo.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.types; 2 | 3 | import java.util.List; 4 | import java.util.Iterator; 5 | import java.util.ArrayList; 6 | 7 | public class BitInfo implements TypeInfo> { 8 | public static final BitInfo INSTANCE = new BitInfo(); 9 | 10 | @Override 11 | public List parse(String item) { 12 | ArrayList results = new ArrayList(); 13 | for (int i = 0; i < item.length(); i++) { 14 | char c = item.charAt(i); 15 | if (c == '0') { 16 | results.add(false); 17 | } else if (c == '1') { 18 | results.add(true); 19 | } 20 | } 21 | return results; 22 | } 23 | 24 | @Override 25 | public String unparse(List item) { 26 | StringBuilder sb = new StringBuilder(); 27 | Iterator it = item.iterator(); 28 | while (it.hasNext()) { 29 | sb.append(it.next() ? '1' : '0'); 30 | if (it.hasNext()) 31 | sb.append(' '); 32 | } 33 | return sb.toString(); 34 | } 35 | 36 | public static void main(String[] args) { 37 | List h = BitInfo.INSTANCE.parse("1101100100100100"); 38 | System.out.println(BitInfo.INSTANCE.unparse(h)); 39 | } 40 | } -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/types/DoubleInfo.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.types; 2 | 3 | import dk.itu.epbprtv0.Tokeniser; 4 | import java.util.List; 5 | import java.util.Iterator; 6 | import java.util.ArrayList; 7 | 8 | public class DoubleInfo implements TypeInfo> { 9 | public static final DoubleInfo INSTANCE = new DoubleInfo(); 10 | 11 | @Override 12 | public List parse(String item) { 13 | ArrayList results = new ArrayList(); 14 | for (String s : Tokeniser.tokenise(item)) 15 | results.add(Double.parseDouble(s)); 16 | return results; 17 | } 18 | 19 | @Override 20 | public String unparse(List item) { 21 | StringBuilder sb = new StringBuilder(); 22 | Iterator it = item.iterator(); 23 | while (it.hasNext()) { 24 | sb.append(it.next().toString()); 25 | if (it.hasNext()) 26 | sb.append(' '); 27 | } 28 | return sb.toString(); 29 | } 30 | 31 | public static void main(String[] args) { 32 | List h = DoubleInfo.INSTANCE.parse(" 0.0120 1.0e-4 40059 723897 43.4378 342489237 4"); 33 | System.out.println(DoubleInfo.INSTANCE.unparse(h)); 34 | } 35 | } -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/types/IntInfo.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.types; 2 | 3 | import dk.itu.epbprtv0.Tokeniser; 4 | import java.util.List; 5 | import java.util.Iterator; 6 | import java.util.ArrayList; 7 | 8 | public class IntInfo implements TypeInfo> { 9 | public static final IntInfo INSTANCE = new IntInfo(); 10 | 11 | @Override 12 | public List parse(String item) { 13 | ArrayList results = new ArrayList(); 14 | for (String s : Tokeniser.tokenise(item)) 15 | results.add(Integer.parseInt(s)); 16 | return results; 17 | } 18 | 19 | @Override 20 | public String unparse(List item) { 21 | StringBuilder sb = new StringBuilder(); 22 | Iterator it = item.iterator(); 23 | while (it.hasNext()) { 24 | sb.append(it.next().toString()); 25 | if (it.hasNext()) 26 | sb.append(' '); 27 | } 28 | return sb.toString(); 29 | } 30 | 31 | public static void main(String[] args) { 32 | List h = IntInfo.INSTANCE.parse(" 0 1 2 3 4 5 "); 33 | System.out.println(IntInfo.INSTANCE.unparse(h)); 34 | } 35 | } -------------------------------------------------------------------------------- /protocol/java/src/dk/itu/epbprtv0/types/TypeInfo.java: -------------------------------------------------------------------------------- 1 | package dk.itu.epbprtv0.types; 2 | 3 | public interface TypeInfo { 4 | T parse(String item); 5 | String unparse(T item); 6 | } -------------------------------------------------------------------------------- /results/glove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/results/glove.png -------------------------------------------------------------------------------- /results/sift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/results/sift.png -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup(packages=['ann_benchmarks']) 4 | -------------------------------------------------------------------------------- /summarise-results.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from ann_benchmarks.results import enumerate_result_files 4 | 5 | counts = {} 6 | 7 | for descriptor, _ in enumerate_result_files(): 8 | ds = descriptor["dataset"] 9 | counts[ds] = counts[ds] + 1 if ds in counts else 1 10 | 11 | if counts: 12 | print "Experiments run for each dataset:" 13 | total = 0 14 | for ds in counts: 15 | print "%s: %d" % (ds, counts[ds]) 16 | total += counts[ds] 17 | print "--" 18 | print "total %d" % total 19 | else: 20 | print "No experiments run yet" 21 | -------------------------------------------------------------------------------- /test/test.py: -------------------------------------------------------------------------------- 1 | import random 2 | import inspect 3 | from ann_benchmarks.algorithms.definitions \ 4 | import get_algorithms, get_definitions 5 | from ann_benchmarks.algorithms.constructors \ 6 | import available_constructors as constructors 7 | from sklearn.datasets.samples_generator import make_blobs 8 | import unittest 9 | import warnings 10 | import multiprocessing 11 | 12 | # Generate dataset 13 | X, labels_true = make_blobs(n_samples=10000, n_features=12, 14 | centers=10, cluster_std=5, 15 | random_state=0) 16 | 17 | def fit_and_query(algo, result_queue): 18 | # Run algorithm in subprocess in case it segfaults 19 | algo.fit(X) 20 | result = algo.query(X[42], 10) 21 | result_queue.put(result) 22 | 23 | 24 | def check_algo(algo_name, algo): 25 | queue = multiprocessing.Queue() 26 | p = multiprocessing.Process(target=fit_and_query, args=(algo, queue)) 27 | p.start() 28 | p.join() 29 | result = queue.get(timeout=10.0) 30 | 31 | if len(result) != 10: 32 | warnings.warn('%s: Expected results to have length 10: Result: %s' % (algo_name, result)) 33 | if len(set(result)) != 10: 34 | warnings.warn('%s: Expected results to be unique: Result: %s' % (algo_name, result)) 35 | if result[0] != 42: 36 | warnings.warn('%s: Expected first item to be 42: Result: %s' % (algo_name, result)) 37 | 38 | 39 | def test_all_algos(): 40 | definitions = get_definitions("algos.yaml") 41 | for metric in ['angular', 'euclidean']: 42 | algos = get_algorithms(definitions, constructors, 43 | len(X[0]), "float", metric, 10) 44 | for algo_key in algos.keys(): 45 | algo = random.choice(algos[algo_key]) # Just pick one of each 46 | yield check_algo, algo.name, algo # pass name just so unittest can capture it 47 | 48 | if __name__ == "__main__": 49 | print list(test_all_algos()) 50 | -------------------------------------------------------------------------------- /tools/random-input-generation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # CMake file for random input generator project 2 | 3 | project(randominput) 4 | 5 | cmake_minimum_required(VERSION 2.8) 6 | 7 | # disallow in-source builds 8 | 9 | if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") 10 | message(SEND_ERROR "In-source builds are not allowed.") 11 | endif("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") 12 | 13 | # Enable warnings 14 | 15 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W -Wall") 16 | 17 | 18 | # Use TCLAP 19 | 20 | include_directories( BEFORE tclap-1.2.1/include ) 21 | include_directories (src/) 22 | 23 | # C++14 24 | 25 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y") 26 | 27 | # PThread 28 | 29 | if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") 30 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpthread") 31 | endif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") 32 | 33 | # Debug symbols 34 | 35 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") 36 | 37 | # Save Assembler Code 38 | 39 | # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -S") 40 | 41 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native -funroll-loops") 42 | #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native") 43 | #string(REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") 44 | 45 | 46 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 47 | 48 | # descend into source 49 | add_subdirectory(src) 50 | -------------------------------------------------------------------------------- /tools/random-input-generation/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(rand-euclidean generate-random-inputs-euclidean.cpp) 2 | 3 | 4 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/AUTHORS: -------------------------------------------------------------------------------- 1 | 2 | original author: Michael E. Smoot 3 | invaluable contributions: Daniel Aarno 4 | more contributions: Erik Zeek 5 | more contributions: Fabien Carmagnac (Tinbergen-AM) 6 | outstanding editing: Carol Smoot 7 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/COPYING: -------------------------------------------------------------------------------- 1 | 2 | 3 | Copyright (c) 2003 Michael E. Smoot 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without restriction, 8 | including without limitation the rights to use, copy, modify, merge, 9 | publish, distribute, sublicense, and/or sell copies of the Software, 10 | and to permit persons to whom the Software is furnished to do so, 11 | subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 20 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 22 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | 26 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | ACLOCAL_AMFLAGS = -I config 3 | 4 | SUBDIRS = include examples docs tests msc config 5 | 6 | pkgconfigdir = $(libdir)/pkgconfig 7 | pkgconfig_DATA = $(PACKAGE).pc 8 | EXTRA_DIST = $(PACKAGE).pc.in 9 | 10 | DISTCLEANFILES = $(PACKAGE).pc 11 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/README: -------------------------------------------------------------------------------- 1 | 2 | TCLAP - Templatized Command Line Argument Parser 3 | 4 | This is a simple C++ library that facilitates parsing command line 5 | arguments in a type independent manner. It doesn't conform exactly 6 | to either the GNU or POSIX standards, although it is close. See 7 | docs/manual.html for descriptions of how things work or look at the 8 | simple examples in the examples dir. 9 | 10 | To find out what the latest changes are read the NEWS file in this directory. 11 | 12 | 13 | Any and all feedback is welcome to: Mike Smoot 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | EXTRA_DIST = ac_cxx_have_sstream.m4\ 3 | ac_cxx_have_strstream.m4\ 4 | ac_cxx_namespaces.m4\ 5 | bb_enable_doxygen.m4 6 | 7 | 8 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/ac_cxx_have_long_long.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AC_CXX_HAVE_LONG_LONG 2 | dnl 3 | dnl If the C++ implementation have a long long type 4 | dnl 5 | AC_DEFUN([AC_CXX_HAVE_LONG_LONG], 6 | [AC_LANG_SAVE 7 | AC_LANG_CPLUSPLUS 8 | AC_TRY_COMPILE([],[long long x = 1; return 0;], 9 | ac_cv_cxx_have_long_long=yes, ac_cv_cxx_have_long_long=no) 10 | 11 | if test "$ac_cv_cxx_have_long_long" = yes; then 12 | AC_DEFINE(HAVE_LONG_LONG, 1, 13 | [define if the C++ implementation have long long]) 14 | else 15 | AC_DEFINE(HAVE_LONG_LONG, 0, 16 | [define if the C++ implementation have long long]) 17 | fi 18 | AC_LANG_RESTORE 19 | ]) 20 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/ac_cxx_have_sstream.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AC_CXX_HAVE_SSTREAM 2 | dnl 3 | dnl If the C++ library has a working stringstream, define HAVE_SSTREAM. 4 | dnl 5 | dnl @author Ben Stanley 6 | dnl @version $Id: ac_cxx_have_sstream.m4,v 1.2 2006/02/22 02:10:28 zeekec Exp $ 7 | dnl 8 | AC_DEFUN([AC_CXX_HAVE_SSTREAM], 9 | [AC_REQUIRE([AC_CXX_NAMESPACES]) 10 | AC_LANG_SAVE 11 | AC_LANG_CPLUSPLUS 12 | AC_CHECK_HEADERS(sstream) 13 | AC_CACHE_CHECK([whether the STL defines stringstream], 14 | [ac_cv_cxx_have_sstream], 15 | [AC_TRY_COMPILE([#include 16 | #ifdef HAVE_NAMESPACES 17 | using namespace std; 18 | #endif],[stringstream message; message << "Hello"; return 0;], 19 | ac_cv_cxx_have_sstream=yes, ac_cv_cxx_have_sstream=no) 20 | ]) 21 | if test "$ac_cv_cxx_have_sstream" = yes; then 22 | AC_DEFINE(HAVE_SSTREAM,1,[define if the compiler has stringstream]) 23 | fi 24 | AC_LANG_RESTORE 25 | ]) 26 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/ac_cxx_have_strstream.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AC_CXX_HAVE_STRSTREAM 2 | dnl 3 | dnl If the C++ library has a working strstream, define HAVE_CLASS_STRSTREAM. 4 | dnl 5 | dnl Adapted from ac_cxx_have_sstream.m4 by Steve Robbins 6 | dnl 7 | AC_DEFUN([AC_CXX_HAVE_STRSTREAM], 8 | [AC_REQUIRE([AC_CXX_NAMESPACES]) 9 | AC_LANG_SAVE 10 | AC_LANG_CPLUSPLUS 11 | AC_CHECK_HEADERS(strstream) 12 | AC_CACHE_CHECK([whether the STL defines strstream], 13 | [ac_cv_cxx_have_class_strstream], 14 | [AC_TRY_COMPILE([#if HAVE_STRSTREAM 15 | # include 16 | #else 17 | # include 18 | #endif 19 | #ifdef HAVE_NAMESPACES 20 | using namespace std; 21 | #endif],[ostrstream message; message << "Hello"; return 0;], 22 | ac_cv_cxx_have_class_strstream=yes, ac_cv_cxx_have_class_strstream=no) 23 | ]) 24 | if test "$ac_cv_cxx_have_class_strstream" = yes; then 25 | AC_DEFINE(HAVE_CLASS_STRSTREAM,1,[define if the library defines strstream]) 26 | fi 27 | AC_LANG_RESTORE 28 | ]) 29 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/ac_cxx_namespaces.m4: -------------------------------------------------------------------------------- 1 | dnl @synopsis AC_CXX_NAMESPACES 2 | dnl 3 | dnl If the compiler can prevent names clashes using namespaces, define 4 | dnl HAVE_NAMESPACES. 5 | dnl 6 | dnl @version $Id: ac_cxx_namespaces.m4,v 1.1.1.1 2003/03/19 02:40:00 mes5k Exp $ 7 | dnl @author Luc Maisonobe 8 | dnl 9 | AC_DEFUN([AC_CXX_NAMESPACES], 10 | [AC_CACHE_CHECK(whether the compiler implements namespaces, 11 | ac_cv_cxx_namespaces, 12 | [AC_LANG_SAVE 13 | AC_LANG_CPLUSPLUS 14 | AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], 15 | [using namespace Outer::Inner; return i;], 16 | ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) 17 | AC_LANG_RESTORE 18 | ]) 19 | if test "$ac_cv_cxx_namespaces" = yes; then 20 | AC_DEFINE(HAVE_NAMESPACES,1,[define to 1 if the compiler implements namespaces]) 21 | fi 22 | ]) 23 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/ac_cxx_warn_effective_cxx.m4: -------------------------------------------------------------------------------- 1 | dnl HAVE_WARN_EFFECTIVE_CXX 2 | dnl ---------------------- 3 | dnl 4 | dnl If the C++ compiler accepts the `-Weffc++' flag, 5 | dnl set output variable `WARN_EFFECTIVE_CXX' to `-Weffc++' and 6 | dnl `WARN_NO_EFFECTIVE_CXX' to `-Wno-effc++'. Otherwise, 7 | dnl leave both empty. 8 | dnl 9 | AC_DEFUN([HAVE_WARN_EFFECTIVE_CXX], 10 | [ 11 | AC_REQUIRE([AC_PROG_CXX]) 12 | AC_MSG_CHECKING([whether the C++ compiler (${CXX}) accepts -Weffc++]) 13 | AC_CACHE_VAL([cv_warn_effective_cxx], 14 | [ 15 | AC_LANG_SAVE 16 | AC_LANG_CPLUSPLUS 17 | save_cxxflags="$CXXFLAGS" 18 | CXXFLAGS="$CXXFLAGS -Weffc++" 19 | AC_TRY_COMPILE([],[main();], 20 | [cv_warn_effective_cxx=yes], [cv_warn_effective_cxx=no]) 21 | CXXFLAGS="$save_cxxflags" 22 | AC_LANG_RESTORE 23 | ]) 24 | AC_MSG_RESULT([$cv_warn_effective_cxx]) 25 | if test "$cv_warn_effective_cxx" = yes; then 26 | WARN_EFFECTIVE_CXX=-Weffc++ 27 | WARN_NO_EFFECTIVE_CXX=-Wno-effc++ 28 | fi 29 | AC_SUBST([WARN_EFFECTIVE_CXX]) 30 | AC_SUBST([WARN_NO_EFFECTIVE_CXX]) 31 | ]) 32 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/bb_enable_doxygen.m4: -------------------------------------------------------------------------------- 1 | AC_DEFUN([BB_ENABLE_DOXYGEN], 2 | [ 3 | AC_ARG_ENABLE(doxygen, [--enable-doxygen enable documentation generation with doxygen (auto)]) 4 | if test "x$enable_doxygen" = xno; then 5 | enable_doc=no 6 | else 7 | AC_PATH_PROG(DOXYGEN, doxygen, , $PATH) 8 | if test x$DOXYGEN = x; then 9 | if test "x$enable_doxygen" = xyes; then 10 | AC_MSG_ERROR([could not find doxygen]) 11 | fi 12 | enable_doc=no 13 | else 14 | enable_doc=yes 15 | fi 16 | fi 17 | AM_CONDITIONAL(DOC, test x$enable_doc = xyes) 18 | ]) 19 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/config.h.in: -------------------------------------------------------------------------------- 1 | /* config/config.h.in. Generated from configure.in by autoheader. */ 2 | 3 | /* define if the library defines strstream */ 4 | #undef HAVE_CLASS_STRSTREAM 5 | 6 | /* Define to 1 if you have the header file. */ 7 | #undef HAVE_INTTYPES_H 8 | 9 | /* define if the C++ implementation have long long */ 10 | #undef HAVE_LONG_LONG 11 | 12 | /* Define to 1 if you have the header file. */ 13 | #undef HAVE_MEMORY_H 14 | 15 | /* define to 1 if the compiler implements namespaces */ 16 | #undef HAVE_NAMESPACES 17 | 18 | /* define if the compiler has stringstream */ 19 | #undef HAVE_SSTREAM 20 | 21 | /* Define to 1 if you have the header file. */ 22 | #undef HAVE_STDINT_H 23 | 24 | /* Define to 1 if you have the header file. */ 25 | #undef HAVE_STDLIB_H 26 | 27 | /* Define to 1 if you have the header file. */ 28 | #undef HAVE_STRINGS_H 29 | 30 | /* Define to 1 if you have the header file. */ 31 | #undef HAVE_STRING_H 32 | 33 | /* Define to 1 if you have the header file. */ 34 | #undef HAVE_STRSTREAM 35 | 36 | /* Define to 1 if you have the header file. */ 37 | #undef HAVE_SYS_STAT_H 38 | 39 | /* Define to 1 if you have the header file. */ 40 | #undef HAVE_SYS_TYPES_H 41 | 42 | /* Define to 1 if you have the header file. */ 43 | #undef HAVE_UNISTD_H 44 | 45 | /* Name of package */ 46 | #undef PACKAGE 47 | 48 | /* Define to the address where bug reports for this package should be sent. */ 49 | #undef PACKAGE_BUGREPORT 50 | 51 | /* Define to the full name of this package. */ 52 | #undef PACKAGE_NAME 53 | 54 | /* Define to the full name and version of this package. */ 55 | #undef PACKAGE_STRING 56 | 57 | /* Define to the one symbol short name of this package. */ 58 | #undef PACKAGE_TARNAME 59 | 60 | /* Define to the version of this package. */ 61 | #undef PACKAGE_VERSION 62 | 63 | /* Define to 1 if you have the ANSI C header files. */ 64 | #undef STDC_HEADERS 65 | 66 | /* Version number of package */ 67 | #undef VERSION 68 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/config/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs,v 1.1 2003/04/03 18:13:41 mes5k Exp $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/configure.in: -------------------------------------------------------------------------------- 1 | AC_INIT(Makefile.am) 2 | #AC_PREREQ(2.50) 3 | AC_CONFIG_AUX_DIR(config) 4 | AM_CONFIG_HEADER(config/config.h) 5 | AM_INIT_AUTOMAKE(tclap,1.2.1) 6 | AC_PROG_CXX 7 | AC_CXX_HAVE_SSTREAM 8 | AC_CXX_HAVE_STRSTREAM 9 | AC_CXX_HAVE_LONG_LONG 10 | AC_CHECK_PROG(DOT,dot,YES,NO) 11 | AC_PROG_RANLIB 12 | AC_PROG_INSTALL 13 | BB_ENABLE_DOXYGEN 14 | 15 | HAVE_WARN_EFFECTIVE_CXX 16 | CXXFLAGS="$CXXFLAGS $WARN_EFFECTIVE_CXX" 17 | 18 | AM_CONDITIONAL([HAVE_GNU_COMPILERS], [test x$ac_cv_cxx_compiler_gnu = xyes]) 19 | 20 | AC_OUTPUT([ Makefile \ 21 | tclap.pc \ 22 | examples/Makefile \ 23 | include/Makefile \ 24 | include/tclap/Makefile \ 25 | config/Makefile \ 26 | docs/Makefile \ 27 | docs/Doxyfile \ 28 | msc/Makefile \ 29 | msc/examples/Makefile \ 30 | tests/Makefile], \ 31 | [chmod a+x $ac_top_srcdir/tests/*.sh]) 32 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | if DOC 3 | 4 | all: 5 | @DOXYGEN@ Doxyfile 6 | 7 | else 8 | 9 | all: 10 | 11 | endif 12 | 13 | EXTRA_DIST = manual.xml 14 | dist_doc_DATA = index.html manual.html style.css 15 | docdir = ${datadir}/doc/${PACKAGE} 16 | 17 | install-data-local : 18 | $(mkdir_p) $(DESTDIR)$(docdir) 19 | cp -R $(abs_srcdir)/html $(DESTDIR)$(docdir) 20 | 21 | uninstall-local : 22 | chmod -R +w $(DESTDIR)$(docdir) 23 | rm -rf $(DESTDIR)$(docdir) 24 | 25 | dist-hook : 26 | $(mkdir_p) $(distdir) 27 | cp -R $(abs_srcdir)/html $(distdir) 28 | 29 | clean-local: 30 | $(RM) -rf $(abs_srcdir)/html/* 31 | 32 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/README: -------------------------------------------------------------------------------- 1 | 2 | To generate the manual from the docbook xml you need and xslt processor 3 | and an xsl file that defines the output. For example: 4 | 5 | xsltproc --stringparam html.stylesheet style.css /Users/mes/software/docbook-xsl-1.71.1/xhtml/docbook.xsl manual.xml > manual.html 6 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/CVS/Entries: -------------------------------------------------------------------------------- 1 | D 2 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/CVS/Repository: -------------------------------------------------------------------------------- 1 | tclap/docs/html 2 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/CVS/Root: -------------------------------------------------------------------------------- 1 | :ext:mes5k@tclap.cvs.sourceforge.net:/cvsroot/tclap 2 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/OptionalUnlabeledTracker_8h.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: OptionalUnlabeledTracker.h File Reference 6 | 7 | 8 | 9 | 10 | 11 | 27 |
28 |

OptionalUnlabeledTracker.h File Reference

#include <string>
29 | 30 |

Go to the source code of this file.

31 | 32 | 33 | 34 | 35 | 36 |

Classes

class  TCLAP::OptionalUnlabeledTracker

Namespaces

namespace  TCLAP
37 |
38 |
Generated on Sat Apr 16 15:34:24 2011 for tclap by  39 | 40 | doxygen 1.6.0
41 | 42 | 43 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Arg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Arg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ArgException.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ArgException.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ArgParseException.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ArgParseException.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLine.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLine.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineInterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineInterface.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineOutput.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineOutput.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineParseException.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1CmdLineParseException.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Constraint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Constraint.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1DocBookOutput.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1DocBookOutput.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1HelpVisitor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1HelpVisitor.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1IgnoreRestVisitor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1IgnoreRestVisitor.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1MultiArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1MultiArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1MultiSwitchArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1MultiSwitchArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1SpecificationException.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1SpecificationException.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1StdOutput.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1StdOutput.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1SwitchArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1SwitchArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1UnlabeledMultiArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1UnlabeledMultiArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1UnlabeledValueArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1UnlabeledValueArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ValueArg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ValueArg.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ValuesConstraint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ValuesConstraint.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1VersionVisitor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1VersionVisitor.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Visitor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1Visitor.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ZshCompletionOutput.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/classTCLAP_1_1ZshCompletionOutput.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/doxygen.png -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/globals_type.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Class Members 6 | 7 | 8 | 9 | 10 | 11 | 34 |
35 |  
    36 |
  • istringstream 37 | : Arg.h 38 |
  • 39 |
40 |
41 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  42 | 43 | doxygen 1.6.0
44 | 45 | 46 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Main Page 6 | 7 | 8 | 9 | 10 | 11 | 21 |
22 |

tclap Documentation

1.2.1

23 |
Generated on Sat Apr 16 15:34:24 2011 for tclap by  24 | 25 | doxygen 1.6.0
26 | 27 | 28 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/namespacemembers_type.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Class Members 6 | 7 | 8 | 9 | 10 | 11 | 34 |
35 |  
    36 |
  • ArgListIterator 37 | : TCLAP 38 |
  • 39 |
  • ArgVectorIterator 40 | : TCLAP 41 |
  • 42 |
  • VisitorListIterator 43 | : TCLAP 44 |
  • 45 |
46 |
47 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  48 | 49 | doxygen 1.6.0
50 | 51 | 52 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/namespaces.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Namespace Index 6 | 7 | 8 | 9 | 10 | 11 | 27 |
28 |

Namespace List

Here is a list of all namespaces with brief descriptions: 29 | 30 |
TCLAP
31 |
32 |
Generated on Sat Apr 16 15:34:24 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< T > Member List

This is the complete list of members for TCLAP::ArgTraits< T >, including all inherited members. 30 | 31 | 32 |
ValueCategory typedefTCLAP::ArgTraits< T >
~ArgTraits()TCLAP::ArgTraits< T > [inline, virtual]
33 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  34 | 35 | doxygen 1.6.0
36 | 37 | 38 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01bool_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< bool > Member List

This is the complete list of members for TCLAP::ArgTraits< bool >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< bool >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01char_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< char > Member List

This is the complete list of members for TCLAP::ArgTraits< char >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< char >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01double_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< double > Member List

This is the complete list of members for TCLAP::ArgTraits< double >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< double >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01float_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< float > Member List

This is the complete list of members for TCLAP::ArgTraits< float >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< float >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01int_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< int > Member List

This is the complete list of members for TCLAP::ArgTraits< int >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< int >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01long_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< long > Member List

This is the complete list of members for TCLAP::ArgTraits< long >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< long >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01short_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< short > Member List

This is the complete list of members for TCLAP::ArgTraits< short >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< short >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01std_1_1string_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< std::string > Member List

This is the complete list of members for TCLAP::ArgTraits< std::string >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< std::string >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01unsigned_01char_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< unsigned char > Member List

This is the complete list of members for TCLAP::ArgTraits< unsigned char >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< unsigned char >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01unsigned_01int_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< unsigned int > Member List

This is the complete list of members for TCLAP::ArgTraits< unsigned int >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< unsigned int >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01unsigned_01long_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< unsigned long > Member List

This is the complete list of members for TCLAP::ArgTraits< unsigned long >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< unsigned long >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01unsigned_01short_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< unsigned short > Member List

This is the complete list of members for TCLAP::ArgTraits< unsigned short >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< unsigned short >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ArgTraits_3_01wchar__t_01_4-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ArgTraits< wchar_t > Member List

This is the complete list of members for TCLAP::ArgTraits< wchar_t >, including all inherited members. 30 | 31 |
ValueCategory typedefTCLAP::ArgTraits< wchar_t >
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1StringLike-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::StringLike Member List

This is the complete list of members for TCLAP::StringLike, including all inherited members. 30 | 31 |
~StringLike()TCLAP::StringLike [inline, virtual]
32 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  33 | 34 | doxygen 1.6.0
35 | 36 | 37 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ValueLike-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ValueLike Member List

This is the complete list of members for TCLAP::ValueLike, including all inherited members. 30 | 31 | 32 |
ValueCategory typedefTCLAP::ValueLike
~ValueLike()TCLAP::ValueLike [inline, virtual]
33 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  34 | 35 | doxygen 1.6.0
36 | 37 | 38 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/structTCLAP_1_1ValueLikeTrait-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tclap: Member List 6 | 7 | 8 | 9 | 10 | 11 | 28 |
29 |

TCLAP::ValueLikeTrait Member List

This is the complete list of members for TCLAP::ValueLikeTrait, including all inherited members. 30 | 31 | 32 |
ValueCategory typedefTCLAP::ValueLikeTrait
~ValueLikeTrait()TCLAP::ValueLikeTrait [inline, virtual]
33 |
Generated on Sat Apr 16 15:34:25 2011 for tclap by  34 | 35 | doxygen 1.6.0
36 | 37 | 38 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/tab_b.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/tab_b.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/tab_l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/tab_l.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/docs/html/tab_r.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/docs/html/tab_r.gif -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | noinst_PROGRAMS = test1 test2 test3 test4 test5 test6 test7 test8 test9 \ 3 | test10 test11 test12 test13 test14 test15 test16 \ 4 | test17 test18 test19 test20 test21 5 | 6 | test1_SOURCES = test1.cpp 7 | test2_SOURCES = test2.cpp 8 | test3_SOURCES = test3.cpp 9 | test4_SOURCES = test4.cpp 10 | test5_SOURCES = test5.cpp 11 | test6_SOURCES = test6.cpp 12 | test7_SOURCES = test7.cpp 13 | test8_SOURCES = test8.cpp 14 | test9_SOURCES = test9.cpp 15 | test10_SOURCES = test10.cpp 16 | test11_SOURCES = test11.cpp 17 | test12_SOURCES = test12.cpp 18 | test13_SOURCES = test13.cpp 19 | test14_SOURCES = test14.cpp 20 | test15_SOURCES = test15.cpp 21 | test16_SOURCES = test16.cpp 22 | test17_SOURCES = test17.cpp test17-a.cpp 23 | test18_SOURCES = test18.cpp 24 | test19_SOURCES = test19.cpp 25 | test20_SOURCES = test20.cpp 26 | test21_SOURCES = test21.cpp 27 | 28 | AM_CPPFLAGS = -I$(top_srcdir)/include 29 | 30 | if HAVE_GNU_COMPILERS 31 | AM_CXXFLAGS = -Wall -Wextra 32 | endif 33 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "tclap/CmdLine.h" 5 | 6 | using namespace TCLAP; 7 | using namespace std; 8 | 9 | int main(int argc, char** argv) 10 | { 11 | // Wrap everything in a try block. Do this every time, 12 | // because exceptions will be thrown for problems. 13 | try { 14 | 15 | // Define the command line object. 16 | CmdLine cmd("Command description message", ' ', "0.9"); 17 | 18 | // Define a value argument and add it to the command line. 19 | ValueArg nameArg("n","name","Name to print",true,"homer","string"); 20 | cmd.add( nameArg ); 21 | 22 | // Define a switch and add it to the command line. 23 | SwitchArg reverseSwitch("r","reverse","Print name backwards", false); 24 | cmd.add( reverseSwitch ); 25 | 26 | // Parse the args. 27 | cmd.parse( argc, argv ); 28 | 29 | // Get the value parsed by each arg. 30 | string name = nameArg.getValue(); 31 | bool reverseName = reverseSwitch.getValue(); 32 | 33 | // Do what you intend too... 34 | if ( reverseName ) 35 | { 36 | reverse(name.begin(),name.end()); 37 | cout << "My name (spelled backwards) is: " << name << endl; 38 | } 39 | else 40 | cout << "My name is: " << name << endl; 41 | 42 | 43 | } catch (ArgException &e) // catch any exceptions 44 | { cerr << "error: " << e.error() << " for arg " << e.argId() << endl; } 45 | } 46 | 47 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test10.cpp: -------------------------------------------------------------------------------- 1 | // Test only makes sure we can use different argv types for the 2 | // parser. Don't run, just compile. 3 | 4 | #include "tclap/CmdLine.h" 5 | 6 | using namespace TCLAP; 7 | int main() 8 | { 9 | char *argv5[] = {(char*)"Foo", 0}; 10 | const char *argv6[] = {"Foo", 0}; 11 | const char * const argv7[] = {"Foo", 0}; 12 | char **argv1 = argv5; 13 | const char **argv2 = argv6; 14 | const char * const * argv3 = argv7; 15 | const char * const * const argv4 = argv7; 16 | 17 | CmdLine cmd("Command description message", ' ', "0.9"); 18 | cmd.parse(0, argv1); 19 | cmd.parse(0, argv2); 20 | cmd.parse(0, argv3); 21 | cmd.parse(0, argv4); 22 | cmd.parse(0, argv5); 23 | cmd.parse(0, argv6); 24 | cmd.parse(0, argv7); 25 | } 26 | 27 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test11.cpp: -------------------------------------------------------------------------------- 1 | #include "tclap/CmdLine.h" 2 | #include 3 | 4 | using namespace TCLAP; 5 | 6 | // Define a simple 3D vector type 7 | struct Vect3D { 8 | double v[3]; 9 | 10 | // operator= will be used to assign to the vector 11 | Vect3D& operator=(const std::string &str) 12 | { 13 | std::istringstream iss(str); 14 | if (!(iss >> v[0] >> v[1] >> v[2])) 15 | throw TCLAP::ArgParseException(str + " is not a 3D vector"); 16 | 17 | return *this; 18 | } 19 | 20 | std::ostream& print(std::ostream &os) const 21 | { 22 | std::copy(v, v + 3, std::ostream_iterator(os, " ")); 23 | return os; 24 | } 25 | }; 26 | 27 | // Create an ArgTraits for the 3D vector type that declares it to be 28 | // of string like type 29 | namespace TCLAP { 30 | template<> 31 | struct ArgTraits { 32 | typedef StringLike ValueCategory; 33 | }; 34 | } 35 | 36 | int main(int argc, char *argv[]) 37 | { 38 | CmdLine cmd("Command description message", ' ', "0.9"); 39 | ValueArg vec("v", "vect", "vector", 40 | true, Vect3D(), "3D vector", cmd); 41 | 42 | try { 43 | cmd.parse(argc, argv); 44 | } catch(std::exception &e) { 45 | std::cout << e.what() << std::endl; 46 | return EXIT_FAILURE; 47 | } 48 | 49 | vec.getValue().print(std::cout); 50 | std::cout << std::endl; 51 | } 52 | 53 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test12.cpp: -------------------------------------------------------------------------------- 1 | #include "tclap/CmdLine.h" 2 | #include 3 | #include 4 | 5 | using namespace TCLAP; 6 | 7 | // Define a simple 3D vector type 8 | struct Vect3D { 9 | double v[3]; 10 | 11 | // operator= will be used to assign to the vector 12 | Vect3D& operator=(const std::string &str) 13 | { 14 | std::istringstream iss(str); 15 | if (!(iss >> v[0] >> v[1] >> v[2])) 16 | throw TCLAP::ArgParseException(str + " is not a 3D vector"); 17 | 18 | return *this; 19 | } 20 | 21 | std::ostream& print(std::ostream &os) const 22 | { 23 | std::copy(v, v + 3, std::ostream_iterator(os, " ")); 24 | return os; 25 | } 26 | 27 | }; 28 | 29 | std::ostream& operator<<(std::ostream &os, const Vect3D &v) 30 | { 31 | return v.print(os); 32 | } 33 | 34 | // Create an ArgTraits for the 3D vector type that declares it to be 35 | // of string like type 36 | namespace TCLAP { 37 | template<> 38 | struct ArgTraits { 39 | typedef StringLike ValueCategory; 40 | }; 41 | } 42 | 43 | int main(int argc, char *argv[]) 44 | { 45 | CmdLine cmd("Command description message", ' ', "0.9"); 46 | MultiArg vec("v", "vect", "vector", 47 | true, "3D vector", cmd); 48 | 49 | try { 50 | cmd.parse(argc, argv); 51 | } catch(std::exception &e) { 52 | std::cout << e.what() << std::endl; 53 | return EXIT_FAILURE; 54 | } 55 | 56 | std::copy(vec.begin(), vec.end(), 57 | std::ostream_iterator(std::cout, "\n")); 58 | 59 | std::cout << "REVERSED" << std::endl; 60 | 61 | // use alt. form getValue() 62 | std::vector v(vec.getValue()); 63 | std::reverse(v.begin(), v.end()); 64 | 65 | std::copy(v.begin(), v.end(), 66 | std::ostream_iterator(std::cout, "\n")); 67 | } 68 | 69 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test13.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | using namespace TCLAP; 7 | 8 | // 9 | // This file tests that we can parse args from a vector 10 | // of strings rather than argv. This also tests a bug 11 | // where a single element in the vector contains both 12 | // the flag and value AND the value contains the flag 13 | // from another switch arg. This would fool the parser 14 | // into thinking that the string was a combined switches 15 | // string rather than a flag value combo. 16 | // 17 | // This should not print an error 18 | // 19 | // Contributed by Nico Lugil. 20 | // 21 | int main() 22 | { 23 | 24 | try 25 | { 26 | CmdLine cmd("Test", ' ', "not versioned",true); 27 | 28 | MultiArg Arg("X","fli","fli module",false,"string"); 29 | cmd.add(Arg); 30 | MultiSwitchArg ArgMultiSwitch("d","long_d","example"); 31 | cmd.add(ArgMultiSwitch); 32 | 33 | std::vector in; 34 | in.push_back("prog name"); 35 | in.push_back("-X module"); 36 | cmd.parse(in); 37 | 38 | std::vector s = Arg.getValue(); 39 | for(unsigned int i = 0 ; i < s.size() ; i++) 40 | { 41 | std::cout << s[i] << "\n"; 42 | } 43 | std::cout << "MultiSwtichArg was found " << ArgMultiSwitch.getValue() << " times.\n"; 44 | 45 | } 46 | catch (ArgException &e) // catch any exceptions 47 | { 48 | std::cerr << "error: " << e.error() << " for arg " << e.argId() << std::endl; 49 | } 50 | 51 | std::cout << "done...\n"; 52 | 53 | return 0; 54 | } 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test14.cpp: -------------------------------------------------------------------------------- 1 | #include "tclap/CmdLine.h" 2 | #include 3 | #include 4 | 5 | // Define a simple 3D vector type 6 | template 7 | struct Vect : public TCLAP::StringLikeTrait { 8 | //typedef TCLAP::StringLike ValueCategory; 9 | T v[LEN]; 10 | 11 | // operator= will be used to assign to the vector 12 | Vect& operator=(const std::string &str) 13 | { 14 | std::istringstream iss(str); 15 | for (size_t n = 0; n < LEN; n++) { 16 | if (!(iss >> v[n])) { 17 | std::ostringstream oss; 18 | oss << " is not a vector of size " << LEN; 19 | throw TCLAP::ArgParseException(str + oss.str()); 20 | } 21 | } 22 | 23 | if (!iss.eof()) { 24 | std::ostringstream oss; 25 | oss << " is not a vector of size " << LEN; 26 | throw TCLAP::ArgParseException(str + oss.str()); 27 | } 28 | 29 | return *this; 30 | } 31 | 32 | std::ostream& print(std::ostream &os) const 33 | { 34 | std::copy(v, v + LEN, std::ostream_iterator(os, " ")); 35 | return os; 36 | } 37 | 38 | }; 39 | 40 | int main(int argc, char *argv[]) 41 | { 42 | TCLAP::CmdLine cmd("Command description message", ' ', "0.9"); 43 | TCLAP::ValueArg< Vect > vec("v", "vect", "vector", 44 | true, Vect(), 45 | "3D vector", cmd); 46 | 47 | try { 48 | cmd.parse(argc, argv); 49 | } catch(std::exception &e) { 50 | std::cout << e.what() << std::endl; 51 | return EXIT_FAILURE; 52 | } 53 | 54 | vec.getValue().print(std::cout); 55 | std::cout << std::endl; 56 | } 57 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test15.cpp: -------------------------------------------------------------------------------- 1 | #include "tclap/CmdLine.h" 2 | #include 3 | #include 4 | 5 | // Define a simple 3D vector type 6 | template 7 | struct Vect { 8 | typedef TCLAP::StringLike ValueCategory; 9 | T v[LEN]; 10 | 11 | // operator= will be used to assign to the vector 12 | Vect& operator=(const std::string &str) 13 | { 14 | std::istringstream iss(str); 15 | for (size_t n = 0; n < LEN; n++) { 16 | if (!(iss >> v[n])) { 17 | std::ostringstream oss; 18 | oss << " is not a vector of size " << LEN; 19 | throw TCLAP::ArgParseException(str + oss.str()); 20 | } 21 | } 22 | 23 | if (!iss.eof()) { 24 | std::ostringstream oss; 25 | oss << " is not a vector of size " << LEN; 26 | throw TCLAP::ArgParseException(str + oss.str()); 27 | } 28 | 29 | return *this; 30 | } 31 | 32 | std::ostream& print(std::ostream &os) const 33 | { 34 | std::copy(v, v + LEN, std::ostream_iterator(os, " ")); 35 | return os; 36 | } 37 | 38 | }; 39 | 40 | int main(int argc, char *argv[]) 41 | { 42 | TCLAP::CmdLine cmd("Command description message", ' ', "0.9"); 43 | TCLAP::ValueArg< Vect > vec("v", "vect", "vector", 44 | true, Vect(), 45 | "3D vector", cmd); 46 | 47 | try { 48 | cmd.parse(argc, argv); 49 | } catch(std::exception &e) { 50 | std::cout << e.what() << std::endl; 51 | return EXIT_FAILURE; 52 | } 53 | 54 | vec.getValue().print(std::cout); 55 | std::cout << std::endl; 56 | } 57 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test16.cpp: -------------------------------------------------------------------------------- 1 | #include "tclap/CmdLine.h" 2 | #include 3 | #include 4 | 5 | namespace TCLAP { 6 | template<> 7 | struct ArgTraits< std::vector > { 8 | typedef StringLike ValueCategory; 9 | }; 10 | 11 | template<> 12 | void SetString< std::vector >(std::vector &v, 13 | const std::string &s) 14 | { 15 | std::istringstream iss(s); 16 | while (iss) { 17 | double tmp; 18 | iss >> tmp; 19 | v.push_back(tmp); 20 | } 21 | } 22 | } 23 | 24 | int main(int argc, char *argv[]) 25 | { 26 | TCLAP::CmdLine cmd("Command description message", ' ', "0.9"); 27 | TCLAP::ValueArg< std::vector > vec("v", "vect", "vector", 28 | true, std::vector(), 29 | "3D vector", cmd); 30 | try { 31 | cmd.parse(argc, argv); 32 | } catch(std::exception &e) { 33 | std::cout << e.what() << std::endl; 34 | return EXIT_FAILURE; 35 | } 36 | 37 | const std::vector &v = vec.getValue(); 38 | std::copy(v.begin(), v.end(), 39 | std::ostream_iterator(std::cout, "\n")); 40 | std::cout << std::endl; 41 | } 42 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test17-a.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test17.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() { } 4 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test18.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "tclap/CmdLine.h" 5 | 6 | using namespace TCLAP; 7 | using namespace std; 8 | 9 | int main(int argc, char** argv) 10 | { 11 | try { 12 | 13 | CmdLine cmd("Command description message", ' ', "0.9", true); 14 | 15 | cmd.setExceptionHandling(false); 16 | 17 | cmd.parse(argc, argv); 18 | 19 | } catch (ArgException &e) { // catch any exceptions 20 | cerr << "error: " << e.error() << " for arg " << e.argId() << endl; 21 | return 1; 22 | } catch (ExitException &e) { // catch any exceptions 23 | cerr << "Exiting on ExitException." << endl; 24 | return e.getExitStatus(); 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test19.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #define TCLAP_SETBASE_ZERO 1 4 | 5 | #include "tclap/CmdLine.h" 6 | #include 7 | #include 8 | 9 | 10 | using namespace TCLAP; 11 | using namespace std; 12 | 13 | int main(int argc, char** argv) 14 | { 15 | 16 | try { 17 | 18 | CmdLine cmd("this is a message", ' ', "0.99" ); 19 | 20 | ValueArg itest("i", "intTest", "integer test", true, 5, "int"); 21 | cmd.add( itest ); 22 | 23 | // 24 | // Parse the command line. 25 | // 26 | cmd.parse(argc,argv); 27 | 28 | // 29 | // Set variables 30 | // 31 | int _intTest = itest.getValue(); 32 | cout << "found int: " << _intTest << endl; 33 | 34 | } catch ( ArgException& e ) 35 | { cout << "ERROR: " << e.error() << " " << e.argId() << endl; } 36 | } 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test20.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace TCLAP; 7 | using namespace std; 8 | 9 | int main(int argc, char** argv) 10 | { 11 | // Wrap everything in a try block. Do this every time, 12 | // because exceptions will be thrown for problems. 13 | try { 14 | 15 | // Define the command line object. 16 | CmdLine cmd("Command description message", '=', "0.9"); 17 | 18 | SwitchArg atmcSwitch("a", "atmc", "aContinuous time semantics", false); 19 | SwitchArg btmcSwitch("b", "btmc", "bDiscrete time semantics", false); 20 | cmd.xorAdd(atmcSwitch, btmcSwitch); 21 | 22 | // Parse the args. 23 | cmd.parse( argc, argv ); 24 | 25 | } catch (ArgException &e) // catch any exceptions 26 | { cerr << "error: " << e.error() << " for arg " << e.argId() << endl; } 27 | } 28 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test21.cpp: -------------------------------------------------------------------------------- 1 | 2 | // This illustrates how to change the flag and name start strings. 3 | // Note that these defines need to happen *before* tclap is included! 4 | #define TCLAP_NAMESTARTSTRING "~~" 5 | #define TCLAP_FLAGSTARTSTRING "/" 6 | 7 | #include 8 | #include 9 | #include 10 | #include "tclap/CmdLine.h" 11 | 12 | using namespace TCLAP; 13 | using namespace std; 14 | 15 | int main(int argc, char** argv) 16 | { 17 | // Wrap everything in a try block. Do this every time, 18 | // because exceptions will be thrown for problems. 19 | try { 20 | 21 | // Define the command line object. 22 | CmdLine cmd("Command description message", ' ', "0.9"); 23 | 24 | // Define a value argument and add it to the command line. 25 | ValueArg nameArg("n","name","Name to print",true,"homer","string"); 26 | cmd.add( nameArg ); 27 | 28 | // Define a switch and add it to the command line. 29 | SwitchArg reverseSwitch("r","reverse","Print name backwards", false); 30 | cmd.add( reverseSwitch ); 31 | 32 | // Parse the args. 33 | cmd.parse( argc, argv ); 34 | 35 | // Get the value parsed by each arg. 36 | string name = nameArg.getValue(); 37 | bool reverseName = reverseSwitch.getValue(); 38 | 39 | // Do what you intend too... 40 | if ( reverseName ) 41 | { 42 | reverse(name.begin(),name.end()); 43 | cout << "My name (spelled backwards) is: " << name << endl; 44 | } 45 | else 46 | cout << "My name is: " << name << endl; 47 | 48 | 49 | } catch (ArgException &e) // catch any exceptions 50 | { cerr << "error: " << e.error() << " for arg " << e.argId() << endl; } 51 | } 52 | 53 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "tclap/CmdLine.h" 3 | 4 | using namespace TCLAP; 5 | using namespace std; 6 | 7 | int main(int argc, char** argv) 8 | { 9 | // Wrap everything in a try block. Do this every time, 10 | // because exceptions will be thrown for problems. 11 | try { 12 | 13 | // Define the command line object. 14 | CmdLine cmd("Command description message", ' ', "0.9"); 15 | 16 | vector allowed; 17 | allowed.push_back("homer"); 18 | allowed.push_back("marge"); 19 | allowed.push_back("bart"); 20 | allowed.push_back("lisa"); 21 | allowed.push_back("maggie"); 22 | ValuesConstraint allowedVals( allowed ); 23 | 24 | ValueArg nameArg("n","name","Name to print",true,"homer", 25 | &allowedVals); 26 | cmd.add( nameArg ); 27 | 28 | vector iallowed; 29 | iallowed.push_back(1); 30 | iallowed.push_back(2); 31 | iallowed.push_back(3); 32 | ValuesConstraint iallowedVals( iallowed ); 33 | 34 | UnlabeledValueArg intArg("times","Number of times to print",true,1, 35 | &iallowedVals,false); 36 | cmd.add( intArg ); 37 | 38 | // Parse the args. 39 | cmd.parse( argc, argv ); 40 | 41 | // Get the value parsed by each arg. 42 | int num = intArg.getValue(); 43 | string name = nameArg.getValue(); 44 | 45 | for ( int i = 0; i < num; i++ ) 46 | cout << "My name is " << name << endl; 47 | 48 | } catch ( ArgException& e) // catch any exceptions 49 | { cerr << "error: " << e.error() << " for arg " << e.argId() << endl; } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/examples/test9.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "tclap/CmdLine.h" 5 | 6 | using namespace TCLAP; 7 | using namespace std; 8 | 9 | int main(int argc, char** argv) 10 | { 11 | try { 12 | 13 | CmdLine cmd("Command description message", ' ', "0.9",false); 14 | 15 | SwitchArg reverseSwitch("r","reverse","REVERSE instead of FORWARDS", false); 16 | cmd.add( reverseSwitch ); 17 | 18 | MultiSwitchArg verbose("V","verbose","Level of verbosity"); 19 | cmd.add( verbose ); 20 | 21 | MultiSwitchArg noise("N","noise","Level of noise",5); 22 | cmd.add( noise ); 23 | 24 | UnlabeledValueArg word("word","a random word", false, "string", 25 | "won't see this",false); 26 | cmd.add( word ); 27 | 28 | // Uncommenting the next arg will (correctly) cause an exception 29 | // to be thrown. 30 | 31 | // UnlabeledMultiArg badword("badword","a bad word", false,"string"); 32 | // 33 | // cmd.add( badword ); 34 | 35 | cmd.parse( argc, argv ); 36 | 37 | bool reverseName = reverseSwitch.getValue(); 38 | 39 | if ( reverseName ) 40 | cout << "REVERSE" << endl; 41 | else 42 | cout << "FORWARD" << endl; 43 | 44 | if ( verbose.isSet() ) 45 | cout << "Verbose level: " << verbose.getValue() << endl; 46 | 47 | if ( noise.isSet() ) 48 | cout << "Noise level: " << noise.getValue() << endl; 49 | 50 | if ( word.isSet() ) 51 | cout << "Word: " << word.getValue() << endl; 52 | 53 | } catch (ArgException &e) // catch any exceptions 54 | { cerr << "error: " << e.error() << " for arg " << e.argId() << endl; } 55 | } 56 | 57 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = tclap 2 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/CmdLineOutput.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /****************************************************************************** 4 | * 5 | * file: CmdLineOutput.h 6 | * 7 | * Copyright (c) 2004, Michael E. Smoot 8 | * All rights reverved. 9 | * 10 | * See the file COPYING in the top directory of this distribution for 11 | * more information. 12 | * 13 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | * DEALINGS IN THE SOFTWARE. 20 | * 21 | *****************************************************************************/ 22 | 23 | #ifndef TCLAP_CMDLINEOUTPUT_H 24 | #define TCLAP_CMDLINEOUTPUT_H 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | 33 | namespace TCLAP { 34 | 35 | class CmdLineInterface; 36 | class ArgException; 37 | 38 | /** 39 | * The interface that any output object must implement. 40 | */ 41 | class CmdLineOutput 42 | { 43 | 44 | public: 45 | 46 | /** 47 | * Virtual destructor. 48 | */ 49 | virtual ~CmdLineOutput() {} 50 | 51 | /** 52 | * Generates some sort of output for the USAGE. 53 | * \param c - The CmdLine object the output is generated for. 54 | */ 55 | virtual void usage(CmdLineInterface& c)=0; 56 | 57 | /** 58 | * Generates some sort of output for the version. 59 | * \param c - The CmdLine object the output is generated for. 60 | */ 61 | virtual void version(CmdLineInterface& c)=0; 62 | 63 | /** 64 | * Generates some sort of output for a failure. 65 | * \param c - The CmdLine object the output is generated for. 66 | * \param e - The ArgException that caused the failure. 67 | */ 68 | virtual void failure( CmdLineInterface& c, 69 | ArgException& e )=0; 70 | 71 | }; 72 | 73 | } //namespace TCLAP 74 | #endif 75 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/Constraint.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************************** 3 | * 4 | * file: Constraint.h 5 | * 6 | * Copyright (c) 2005, Michael E. Smoot 7 | * All rights reverved. 8 | * 9 | * See the file COPYING in the top directory of this distribution for 10 | * more information. 11 | * 12 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 13 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 15 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 17 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 18 | * DEALINGS IN THE SOFTWARE. 19 | * 20 | *****************************************************************************/ 21 | 22 | #ifndef TCLAP_CONSTRAINT_H 23 | #define TCLAP_CONSTRAINT_H 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | namespace TCLAP { 33 | 34 | /** 35 | * The interface that defines the interaction between the Arg and Constraint. 36 | */ 37 | template 38 | class Constraint 39 | { 40 | 41 | public: 42 | /** 43 | * Returns a description of the Constraint. 44 | */ 45 | virtual std::string description() const =0; 46 | 47 | /** 48 | * Returns the short ID for the Constraint. 49 | */ 50 | virtual std::string shortID() const =0; 51 | 52 | /** 53 | * The method used to verify that the value parsed from the command 54 | * line meets the constraint. 55 | * \param value - The value that will be checked. 56 | */ 57 | virtual bool check(const T& value) const =0; 58 | 59 | /** 60 | * Destructor. 61 | * Silences warnings about Constraint being a base class with virtual 62 | * functions but without a virtual destructor. 63 | */ 64 | virtual ~Constraint() { ; } 65 | }; 66 | 67 | } //namespace TCLAP 68 | #endif 69 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/HelpVisitor.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************************** 3 | * 4 | * file: HelpVisitor.h 5 | * 6 | * Copyright (c) 2003, Michael E. Smoot . 7 | * All rights reverved. 8 | * 9 | * See the file COPYING in the top directory of this distribution for 10 | * more information. 11 | * 12 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 13 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 15 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 17 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 18 | * DEALINGS IN THE SOFTWARE. 19 | * 20 | *****************************************************************************/ 21 | 22 | #ifndef TCLAP_HELP_VISITOR_H 23 | #define TCLAP_HELP_VISITOR_H 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | namespace TCLAP { 30 | 31 | /** 32 | * A Visitor object that calls the usage method of the given CmdLineOutput 33 | * object for the specified CmdLine object. 34 | */ 35 | class HelpVisitor: public Visitor 36 | { 37 | private: 38 | /** 39 | * Prevent accidental copying. 40 | */ 41 | HelpVisitor(const HelpVisitor& rhs); 42 | HelpVisitor& operator=(const HelpVisitor& rhs); 43 | 44 | protected: 45 | 46 | /** 47 | * The CmdLine the output will be generated for. 48 | */ 49 | CmdLineInterface* _cmd; 50 | 51 | /** 52 | * The output object. 53 | */ 54 | CmdLineOutput** _out; 55 | 56 | public: 57 | 58 | /** 59 | * Constructor. 60 | * \param cmd - The CmdLine the output will be generated for. 61 | * \param out - The type of output. 62 | */ 63 | HelpVisitor(CmdLineInterface* cmd, CmdLineOutput** out) 64 | : Visitor(), _cmd( cmd ), _out( out ) { } 65 | 66 | /** 67 | * Calls the usage method of the CmdLineOutput for the 68 | * specified CmdLine. 69 | */ 70 | void visit() { (*_out)->usage(*_cmd); throw ExitException(0); } 71 | 72 | }; 73 | 74 | } 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/IgnoreRestVisitor.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************************** 3 | * 4 | * file: IgnoreRestVisitor.h 5 | * 6 | * Copyright (c) 2003, Michael E. Smoot . 7 | * All rights reverved. 8 | * 9 | * See the file COPYING in the top directory of this distribution for 10 | * more information. 11 | * 12 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 13 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 15 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 17 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 18 | * DEALINGS IN THE SOFTWARE. 19 | * 20 | *****************************************************************************/ 21 | 22 | 23 | #ifndef TCLAP_IGNORE_REST_VISITOR_H 24 | #define TCLAP_IGNORE_REST_VISITOR_H 25 | 26 | #include 27 | #include 28 | 29 | namespace TCLAP { 30 | 31 | /** 32 | * A Vistor that tells the CmdLine to begin ignoring arguments after 33 | * this one is parsed. 34 | */ 35 | class IgnoreRestVisitor: public Visitor 36 | { 37 | public: 38 | 39 | /** 40 | * Constructor. 41 | */ 42 | IgnoreRestVisitor() : Visitor() {} 43 | 44 | /** 45 | * Sets Arg::_ignoreRest. 46 | */ 47 | void visit() { Arg::beginIgnoring(); } 48 | }; 49 | 50 | } 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | libtclapincludedir = $(includedir)/tclap 3 | 4 | libtclapinclude_HEADERS = \ 5 | CmdLineInterface.h \ 6 | ArgException.h \ 7 | CmdLine.h \ 8 | XorHandler.h \ 9 | MultiArg.h \ 10 | UnlabeledMultiArg.h \ 11 | ValueArg.h \ 12 | UnlabeledValueArg.h \ 13 | Visitor.h Arg.h \ 14 | HelpVisitor.h \ 15 | SwitchArg.h \ 16 | MultiSwitchArg.h \ 17 | VersionVisitor.h \ 18 | IgnoreRestVisitor.h \ 19 | CmdLineOutput.h \ 20 | StdOutput.h \ 21 | DocBookOutput.h \ 22 | ZshCompletionOutput.h \ 23 | OptionalUnlabeledTracker.h \ 24 | Constraint.h \ 25 | ValuesConstraint.h \ 26 | ArgTraits.h \ 27 | StandardTraits.h 28 | 29 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/OptionalUnlabeledTracker.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /****************************************************************************** 4 | * 5 | * file: OptionalUnlabeledTracker.h 6 | * 7 | * Copyright (c) 2005, Michael E. Smoot . 8 | * All rights reverved. 9 | * 10 | * See the file COPYING in the top directory of this distribution for 11 | * more information. 12 | * 13 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | * DEALINGS IN THE SOFTWARE. 20 | * 21 | *****************************************************************************/ 22 | 23 | 24 | #ifndef TCLAP_OPTIONAL_UNLABELED_TRACKER_H 25 | #define TCLAP_OPTIONAL_UNLABELED_TRACKER_H 26 | 27 | #include 28 | 29 | namespace TCLAP { 30 | 31 | class OptionalUnlabeledTracker 32 | { 33 | 34 | public: 35 | 36 | static void check( bool req, const std::string& argName ); 37 | 38 | static void gotOptional() { alreadyOptionalRef() = true; } 39 | 40 | static bool& alreadyOptional() { return alreadyOptionalRef(); } 41 | 42 | private: 43 | 44 | static bool& alreadyOptionalRef() { static bool ct = false; return ct; } 45 | }; 46 | 47 | 48 | inline void OptionalUnlabeledTracker::check( bool req, const std::string& argName ) 49 | { 50 | if ( OptionalUnlabeledTracker::alreadyOptional() ) 51 | throw( SpecificationException( 52 | "You can't specify ANY Unlabeled Arg following an optional Unlabeled Arg", 53 | argName ) ); 54 | 55 | if ( !req ) 56 | OptionalUnlabeledTracker::gotOptional(); 57 | } 58 | 59 | 60 | } // namespace TCLAP 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/include/tclap/Visitor.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************************** 3 | * 4 | * file: Visitor.h 5 | * 6 | * Copyright (c) 2003, Michael E. Smoot . 7 | * All rights reverved. 8 | * 9 | * See the file COPYING in the top directory of this distribution for 10 | * more information. 11 | * 12 | * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 13 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 15 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 17 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 18 | * DEALINGS IN THE SOFTWARE. 19 | * 20 | *****************************************************************************/ 21 | 22 | 23 | #ifndef TCLAP_VISITOR_H 24 | #define TCLAP_VISITOR_H 25 | 26 | namespace TCLAP { 27 | 28 | /** 29 | * A base class that defines the interface for visitors. 30 | */ 31 | class Visitor 32 | { 33 | public: 34 | 35 | /** 36 | * Constructor. Does nothing. 37 | */ 38 | Visitor() { } 39 | 40 | /** 41 | * Destructor. Does nothing. 42 | */ 43 | virtual ~Visitor() { } 44 | 45 | /** 46 | * Does nothing. Should be overridden by child. 47 | */ 48 | virtual void visit() { } 49 | }; 50 | 51 | } 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/msc/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = examples 2 | 3 | EXTRA_DIST = README\ 4 | tclap-beta.ncb\ 5 | tclap-beta.sln\ 6 | tclap-beta.suo\ 7 | tclap-beta.vcproj 8 | 9 | 10 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/msc/README: -------------------------------------------------------------------------------- 1 | 2 | Disclaimer! 3 | =========== 4 | 5 | The various files included in the subdirectory for provided as a courtesy 6 | to Microsoft Visual Studio users. The files were contributed by a thoughtful 7 | user and were not created by the authors of this project. Moreover, the 8 | (current) authors have no way of maintaining, improving or even using the 9 | files. 10 | 11 | ** This means we can't answer any questions about the files! ** 12 | 13 | That said, we have several reports of people successfully using the TCLAP 14 | library on various Windows platforms. As long as you use a reasonably modern 15 | compiler (and Visual C++ apparently is), you shouldn't have any trouble. 16 | 17 | Good luck! 18 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/msc/examples/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | EXTRA_DIST = test1.vcproj\ 3 | test2.vcproj\ 4 | test3.vcproj\ 5 | test4.vcproj\ 6 | test5.vcproj\ 7 | test6.vcproj\ 8 | test7.vcproj\ 9 | test8.vcproj 10 | 11 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/msc/tclap-beta.ncb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/msc/tclap-beta.ncb -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/msc/tclap-beta.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/tools/random-input-generation/tclap-1.2.1/msc/tclap-beta.suo -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tclap.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | includedir=@includedir@ 3 | 4 | Name: tclap 5 | Description: Templatized C++ Command Line Parser 6 | Version: @VERSION@ 7 | Cflags: -I${includedir} 8 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test1 -r -n mike > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test1.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test10.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 10 -s hello > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test10.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test11.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 10 -s hello -i 9 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test11.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test12.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 10 -s hello -f nine > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test12.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test13.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test3 --stringTest=bill -i=9 -i=8 -B homer marge bart > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test13.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test14.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test3 --stringTest=aaa homer marge bart -- one two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test14.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test15.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test3 --stringTest bbb homer marge bart -- -hv two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test15.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test16.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test3 --stringTest one homer -B -Bh > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test16.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test17.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test3 --stringTest=one homer -B > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test17.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test18.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test4 -Bs --Bs asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test18.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test19.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test4 -BA --Bs asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test19.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test1 -n mike > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test2.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test20.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test5 -a asdf -c fdas --eee blah -i sss -i fdsf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test20.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test21.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test5 -b asdf -c fdas -g asdf -j homer > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test21.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test22.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test5 -a fdsa -b asdf -c fdas > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test22.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test23.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test5 -d junk -c fdas > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test23.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test24.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test5 --aaa dilbert -b asdf -c fdas > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test24.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test25.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test5 --aaa asdf -c fdas --fff blah -i one -i two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test25.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test26.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 2 -f 4..2 -s asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test26.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test27.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 2 -f 4.0.2 -s asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test27.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test28.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 2a -f 4.2 -s asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test28.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test29.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure... no hex here, but see test19.cpp for how to use hex 4 | ../examples/test2 -i 0xA -f 4.2 -s asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test29.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test1 -n mike -r > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test3.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test30.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test2 -i 2.1 -f 4.2 -s asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test30.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test31.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test3 -i=9a -i=1 -s=asdf asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test31.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test32.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test3 -f=9 -f=1.0.0 -s=asdf asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test32.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test33.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test5 -a asdf -c fdas --eee blah --ddd -j o --jjj t > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test33.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test34.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test6 -n homer 2 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test34.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test35.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test6 -n mike 2 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test35.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test36.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test6 -n homer 6 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test36.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test37.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test7 -n homer 2 -n marge 1 3 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test37.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test38.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test7 -n mike 2 1 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test38.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test39.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test7 2 -n homer -n bart 6 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test39.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test1 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test4.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test40.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test1 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test40.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test41.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test41.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test42.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test3 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test42.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test43.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test4 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test43.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test44.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test5 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test44.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test45.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test6 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test45.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test46.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test7 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test46.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test47.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test8 -s=bill -i=9 -i=8 -B homer marge bart > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test47.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test48.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test8 -s=aaa homer marge bart -- one two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test48.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test49.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test8 -s bbb homer marge bart -- -hv two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test49.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test5.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 -i 10 -s homer marge bart lisa > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test5.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test50.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test8 -s one homer -B -Bh > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test50.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test51.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test8 -s=one homer -B > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test51.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test52.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test8 -i=9a -i=1 -s=asdf asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test52.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test53.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test8 -f=9 -f=1.0.0 -s=asdf asdf asdf > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test53.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test54.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test8 --help > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test54.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test55.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test3 --stringTest=asdf - asdf zero one > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test55.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test56.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 -i 1 - -s fdsa one two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test56.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test57.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | # This used to fail on the "Too many arguments!" but now fails sooner, 5 | # and on a more approriate error. 6 | ../examples/test5 --aaa asdf -c fdas --fff blah -i one -i two -j huh > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test57.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test58.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test9 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test58.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test59.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test9 -VVV -N --noise -r blah > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test59.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test6.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 -i 10 -s hello goodbye -ABC > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test6.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test60.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure 4 | ../examples/test9 -VVV -N --noise -rr > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test60.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test61.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests a bug in handling of - chars in Unlabeled args 4 | # success 5 | ../examples/test2 -i 10 -s hello "-1 -1" > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test61.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test62.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test2 > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test62.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test63.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test11 > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test63.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test11 -v "1 2 3" > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test64.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test65.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test12 -v "1 2 3" -v "4 5 6" -v "7 8 9" -v "-1 0.2 0.4" \ 7 | > tmp.out 2>&1 8 | 9 | if cmp -s tmp.out $srcdir/test65.out; then 10 | exit 0 11 | else 12 | exit 1 13 | fi 14 | 15 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test66.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test12 > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test66.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test67.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether all required args are listed as 4 | # missing when no arguments are specified 5 | # failure 6 | ../examples/test12 -v "a 1 0.3" > tmp.out 2>&1 7 | 8 | if cmp -s tmp.out $srcdir/test67.out; then 9 | exit 0 10 | else 11 | exit 1 12 | fi 13 | 14 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test68.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this tests whether we can parse args from 4 | # a vector of strings and that combined switch 5 | # handling doesn't get fooled if the delimiter 6 | # is in the string 7 | # success 8 | ../examples/test13 > tmp.out 2>&1 9 | 10 | if cmp -s tmp.out $srcdir/test68.out; then 11 | exit 0 12 | else 13 | exit 1 14 | fi 15 | 16 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test69.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Checks that parsing exceptions are properly 4 | # propagated to the caller. 5 | ../examples/test18 --bob > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test69.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test7.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 -i 10 -s hello goodbye -hABC > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test7.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test70.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Checks that parsing exceptions are properly 4 | # propagated to the caller. 5 | ../examples/test18 --help > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test70.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test71.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success test hex 4 | ../examples/test19 -i 0xA > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test71.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test72.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success test octal 4 | ../examples/test19 -i 012 > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test72.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test73.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success tests whether * in UnlabeledValueArg passes 4 | ../examples/test2 -i 1 -s asdf fff*fff > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test73.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test74.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure validates that the correct error message 4 | # is displayed for XOR'd args 5 | ../examples/test20 -a -b > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test74.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test75.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure validates that the correct error message 4 | # is displayed for XOR'd args 5 | ../examples/test20 -b -a > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test75.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test76.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure validates that the correct error message 4 | # is displayed for XOR'd args 5 | ../examples/test20 -ba > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test76.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test77.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # failure validates that the correct error message 4 | # is displayed for XOR'd args 5 | ../examples/test20 -ab > tmp.out 2>&1 6 | 7 | if cmp -s tmp.out $srcdir/test77.out; then 8 | exit 0 9 | else 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test78.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test21 ~~reverse /n mike > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test78.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test8.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 --version > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test8.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/random-input-generation/tclap-1.2.1/tests/test9.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # success 4 | ../examples/test2 -i 10 -s hello goodbye -- -hv one two > tmp.out 2>&1 5 | 6 | if cmp -s tmp.out $srcdir/test9.out; then 7 | exit 0 8 | else 9 | exit 1 10 | fi 11 | 12 | -------------------------------------------------------------------------------- /tools/split-dataset.rb: -------------------------------------------------------------------------------- 1 | require 'set' 2 | 3 | if ARGV.length != 5 4 | puts "Parameters: " 5 | exit(-1) 6 | end 7 | 8 | inputfile = ARGV[0] 9 | outputdatafile = ARGV[1] 10 | outputqueryfile = ARGV[2] 11 | k = ARGV[3].to_i 12 | seed = ARGV[4].to_i 13 | 14 | numOfPoints = File.foreach(inputfile).inject(0) {|c, line| c + 1} 15 | 16 | puts "Found #{numOfPoints} points." 17 | puts "Selecting #{k} of them at random." 18 | 19 | a =* (0..(numOfPoints-1)) 20 | a.shuffle(random: Random.new(seed)) 21 | queryindices = a[0..(k - 1)].to_set 22 | 23 | datafile = File.open(outputdatafile, "w") 24 | queryfile = File.open(outputqueryfile, "w") 25 | 26 | i = 0 27 | File.open(inputfile).each_line do |line| 28 | if queryindices.include? i 29 | queryfile.puts line 30 | else 31 | datafile.puts line 32 | end 33 | i += 1 34 | end 35 | 36 | queryfile.close 37 | datafile.close 38 | -------------------------------------------------------------------------------- /website/BallTree(nmslib).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/BallTree(nmslib).png -------------------------------------------------------------------------------- /website/MP-lsh(lshkit).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/MP-lsh(lshkit).png -------------------------------------------------------------------------------- /website/SW-graph(nmslib).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/SW-graph(nmslib).png -------------------------------------------------------------------------------- /website/annoy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/annoy.png -------------------------------------------------------------------------------- /website/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/ball.png -------------------------------------------------------------------------------- /website/bitsampling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/bitsampling.png -------------------------------------------------------------------------------- /website/bruteforce-blas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/bruteforce-blas.png -------------------------------------------------------------------------------- /website/bruteforce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/bruteforce.png -------------------------------------------------------------------------------- /website/bruteforce0(nmslib).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/bruteforce0(nmslib).png -------------------------------------------------------------------------------- /website/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | } 4 | -------------------------------------------------------------------------------- /website/faiss-lsh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/faiss-lsh.png -------------------------------------------------------------------------------- /website/falconn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/falconn.png -------------------------------------------------------------------------------- /website/flann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/flann.png -------------------------------------------------------------------------------- /website/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /website/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /website/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /website/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /website/glove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/glove.png -------------------------------------------------------------------------------- /website/hnsw(nmslib).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/hnsw(nmslib).png -------------------------------------------------------------------------------- /website/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /website/kd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/kd.png -------------------------------------------------------------------------------- /website/kgraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/kgraph.png -------------------------------------------------------------------------------- /website/lshf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/lshf.png -------------------------------------------------------------------------------- /website/mih.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/mih.png -------------------------------------------------------------------------------- /website/mnist-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/mnist-data.png -------------------------------------------------------------------------------- /website/nearpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/nearpy.png -------------------------------------------------------------------------------- /website/nytimes-hamming-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/nytimes-hamming-data.png -------------------------------------------------------------------------------- /website/nytimes.tfidf.256.data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/nytimes.tfidf.256.data.png -------------------------------------------------------------------------------- /website/panns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/panns.png -------------------------------------------------------------------------------- /website/rand-unit-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/rand-unit-data.png -------------------------------------------------------------------------------- /website/rand7-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/rand7-data.png -------------------------------------------------------------------------------- /website/rpforest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/rpforest.png -------------------------------------------------------------------------------- /website/sift-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/sift-data.png -------------------------------------------------------------------------------- /website/sift-hamming-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/sift-hamming-data.png -------------------------------------------------------------------------------- /website/sift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/sift.png -------------------------------------------------------------------------------- /website/webspam-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maumueller/ann-benchmarks/1a359592f1c6d3cccf5473d6e23e79eb9996ec2a/website/webspam-data.png --------------------------------------------------------------------------------