Repository: appliedtopology/javaplex
Branch: master
Commit: 05a288a4a99f
Files: 591
Total size: 5.9 MB
Directory structure:
gitextract_rvwgklfn/
├── .classpath
├── .gitignore
├── .project
├── .settings/
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
├── .travis.yml
├── LICENSE.md
├── README.md
├── build/
│ └── processing/
│ └── javaplex/
│ └── library.properties
├── build.number
├── build.xml
├── data/
│ ├── natural_images/
│ │ ├── n50000Dct.mat
│ │ ├── nk15c30Dct.mat
│ │ ├── nk300c30Dct.mat
│ │ └── readme_natural_images.txt
│ ├── point_clouds/
│ │ ├── circle.txt
│ │ ├── cube.txt
│ │ ├── cylinder.txt
│ │ ├── octahedron.txt
│ │ ├── sphere_rnd.txt
│ │ └── torus.txt
│ └── range_images/
│ ├── pointsRange.mat
│ └── r3_50000.mat
├── doc_includes/
│ ├── overview.htm
│ ├── overview_plex3.htm
│ └── update_mime_types.sh
├── reports/
│ └── javaplex_tutorial/
│ ├── cleanup.sh
│ ├── javaplex_tutorial.aux
│ ├── javaplex_tutorial.bbl
│ ├── javaplex_tutorial.bib
│ ├── javaplex_tutorial.blg
│ ├── javaplex_tutorial.log
│ ├── javaplex_tutorial.out
│ ├── javaplex_tutorial.tex
│ └── javaplex_tutorial.toc
├── src/
│ ├── bsh/
│ │ ├── desktop.bsh
│ │ ├── getBshPrompt.bsh
│ │ ├── makeListener.bsh
│ │ ├── makeWorkspace.bsh
│ │ └── printBanner.bsh
│ ├── cpp/
│ │ ├── Makefile
│ │ └── PLEX3/
│ │ ├── DESCRIPTION
│ │ ├── R/
│ │ │ ├── .plex.R.swp
│ │ │ ├── plex.R
│ │ │ └── zzz.R
│ │ ├── autom4te.cache/
│ │ │ ├── output.0
│ │ │ ├── requests
│ │ │ └── traces.0
│ │ ├── config.guess
│ │ ├── config.status
│ │ ├── config.sub
│ │ ├── configure
│ │ ├── configure.ac
│ │ ├── install-sh
│ │ ├── man/
│ │ │ └── rips.stream.Rd
│ │ └── src/
│ │ ├── Makevars.in
│ │ └── rbind_jni.cpp
│ ├── java/
│ │ ├── bsh/
│ │ │ ├── JPlex.java
│ │ │ ├── JTerm.java
│ │ │ ├── PlexInterpreter.java
│ │ │ ├── PlexReader.java
│ │ │ └── commands/
│ │ │ ├── log.java
│ │ │ └── setLogging.java
│ │ └── edu/
│ │ └── stanford/
│ │ └── math/
│ │ ├── clustering/
│ │ │ ├── DisjointSetSystem.java
│ │ │ ├── HierarchicalClustering.java
│ │ │ ├── LinkageTree.java
│ │ │ └── SingleLinkageClustering.java
│ │ ├── mapper/
│ │ │ ├── BoundedIntervalCover.java
│ │ │ ├── FilterFunctionUtility.java
│ │ │ ├── FiniteMetricSpaceCover.java
│ │ │ ├── HistogramCreator.java
│ │ │ ├── MapperPipeline.java
│ │ │ ├── MapperSpecifier.java
│ │ │ ├── MetricUtility.java
│ │ │ ├── RangeCoverUtility.java
│ │ │ └── SetCover1D.java
│ │ ├── plex/
│ │ │ ├── BCPlot.java
│ │ │ ├── CRC.java
│ │ │ ├── Chain.java
│ │ │ ├── Cone.java
│ │ │ ├── DiscreteSpace.java
│ │ │ ├── DistanceData.java
│ │ │ ├── EuclideanArrayData.java
│ │ │ ├── ExplicitStream.java
│ │ │ ├── LazyWitnessStream.java
│ │ │ ├── MappedBufferData.java
│ │ │ ├── Packed2Simplex.java
│ │ │ ├── Packed4Simplex.java
│ │ │ ├── Packed6Simplex.java
│ │ │ ├── Packed8Simplex.java
│ │ │ ├── Persistence.java
│ │ │ ├── PersistenceBasis.java
│ │ │ ├── PersistenceBasisInterval.java
│ │ │ ├── PersistenceInterval.java
│ │ │ ├── Plex.java
│ │ │ ├── PlexMessageWindow.java
│ │ │ ├── PlexSort.java
│ │ │ ├── PointData.java
│ │ │ ├── RDirectBufferData.java
│ │ │ ├── RipsStream.java
│ │ │ ├── Simplex.java
│ │ │ ├── SimplexFaceIterator.java
│ │ │ ├── SimplexStream.java
│ │ │ ├── SimplexTable.java
│ │ │ ├── TmpStream.java
│ │ │ ├── Torus.java
│ │ │ └── WitnessStream.java
│ │ └── plex4/
│ │ ├── api/
│ │ │ ├── FilteredStreamInterface.java
│ │ │ ├── PersistenceAlgorithmInterface.java
│ │ │ └── Plex4.java
│ │ ├── autogen/
│ │ │ └── homology/
│ │ │ ├── BooleanAbsoluteHomology.java
│ │ │ ├── BooleanClassicalHomology.java
│ │ │ ├── BooleanPersistenceAlgorithm.java
│ │ │ ├── BooleanPersistentHomology.java
│ │ │ ├── BooleanRelativeHomology.java
│ │ │ ├── IntAbsoluteHomology.java
│ │ │ ├── IntClassicalHomology.java
│ │ │ ├── IntPersistenceAlgorithm.java
│ │ │ ├── IntPersistentHomology.java
│ │ │ ├── IntRelativeHomology.java
│ │ │ ├── ObjectAbsoluteHomology.java
│ │ │ ├── ObjectClassicalHomology.java
│ │ │ ├── ObjectPersistenceAlgorithm.java
│ │ │ ├── ObjectPersistentHomology.java
│ │ │ └── ObjectRelativeHomology.java
│ │ ├── bottleneck/
│ │ │ ├── BottleneckDistance.java
│ │ │ ├── FlowEdge.java
│ │ │ ├── FlowNetwork.java
│ │ │ ├── FordFulkerson.java
│ │ │ ├── FordFulkersonEdge.java
│ │ │ ├── FordFulkersonNode.java
│ │ │ └── WeightedBipartiteGraph.java
│ │ ├── examples/
│ │ │ ├── CellComplexOperations.java
│ │ │ ├── CellStreamExamples.java
│ │ │ ├── DeSilvaMorozovJohanssonExample.java
│ │ │ ├── PointCloudExamples.java
│ │ │ ├── SimplexStreamExamples.java
│ │ │ └── SimplicialComplexOperations.java
│ │ ├── generation/
│ │ │ └── GeneratorDriver.java
│ │ ├── graph/
│ │ │ ├── AbstractUndirectedGraph.java
│ │ │ ├── AbstractWeightedUndirectedGraph.java
│ │ │ ├── UndirectedListEdgeIterator.java
│ │ │ ├── UndirectedListGraph.java
│ │ │ ├── UndirectedWeightedListGraph.java
│ │ │ ├── io/
│ │ │ │ └── GraphDotWriter.java
│ │ │ ├── metric/
│ │ │ │ ├── GraphMetricFactory.java
│ │ │ │ └── ShortestPathMetric.java
│ │ │ ├── random/
│ │ │ │ ├── BAGraph.java
│ │ │ │ ├── BinaryHierarchicalGraph.java
│ │ │ │ ├── BinaryTree.java
│ │ │ │ ├── BinaryTreeGraph.java
│ │ │ │ ├── CircleGraph.java
│ │ │ │ ├── ClusteredERGraph.java
│ │ │ │ ├── ErdosRenyiGraph.java
│ │ │ │ ├── ForestFireGraph.java
│ │ │ │ ├── GraphInstanceGenerator.java
│ │ │ │ ├── HierarchicalERGraph.java
│ │ │ │ ├── KNearestNeighborsGraph.java
│ │ │ │ ├── ManifoldGraph.java
│ │ │ │ ├── PrescribedDegrees.java
│ │ │ │ ├── RandomGeometricGraph.java
│ │ │ │ ├── SphereGraph.java
│ │ │ │ ├── StochasticBlockmodel.java
│ │ │ │ └── TorusGraph.java
│ │ │ └── utility/
│ │ │ └── GraphUtility.java
│ │ ├── homology/
│ │ │ ├── barcodes/
│ │ │ │ ├── AnnotatedBarcodeCollection.java
│ │ │ │ ├── BarcodeCollection.java
│ │ │ │ ├── BarcodeUtility.java
│ │ │ │ ├── Interval.java
│ │ │ │ ├── IntervalLengthComparator.java
│ │ │ │ └── PersistenceInvariantDescriptor.java
│ │ │ ├── chain_basis/
│ │ │ │ ├── Cell.java
│ │ │ │ ├── CellComparator.java
│ │ │ │ ├── PrimitiveBasisElement.java
│ │ │ │ ├── Simplex.java
│ │ │ │ ├── SimplexComparator.java
│ │ │ │ ├── SimplexPair.java
│ │ │ │ └── SimplexPairComparator.java
│ │ │ ├── filtration/
│ │ │ │ ├── ExternalConverter.java
│ │ │ │ ├── FiltrationConverter.java
│ │ │ │ ├── FiltrationUtility.java
│ │ │ │ ├── IdentityConverter.java
│ │ │ │ ├── IncreasingLinearConverter.java
│ │ │ │ └── StaticConverter.java
│ │ │ ├── interfaces/
│ │ │ │ ├── AbstractPersistenceAlgorithm.java
│ │ │ │ └── AbstractPersistenceBasisAlgorithm.java
│ │ │ ├── nonautogen/
│ │ │ │ ├── DisjointSetSystem.java
│ │ │ │ └── PersistentCohomologyPrototype.java
│ │ │ ├── utility/
│ │ │ │ └── HomologyUtility.java
│ │ │ └── zigzag/
│ │ │ ├── AbstractHomologyTracker.java
│ │ │ ├── AbstractPersistenceTracker.java
│ │ │ ├── BasisTrackingUtility.java
│ │ │ ├── HomologyBasisTracker.java
│ │ │ ├── IntervalDescriptor.java
│ │ │ ├── IntervalTracker.java
│ │ │ ├── SimpleHomologyBasisTracker.java
│ │ │ ├── ZigZagHomology.java
│ │ │ └── bootstrap/
│ │ │ ├── InducedHomologyMappingUtility.java
│ │ │ ├── SimplexStreamUtility.java
│ │ │ ├── VietorisRipsBootstrapper.java
│ │ │ └── WitnessBootstrapper.java
│ │ ├── interop/
│ │ │ ├── Plex3PersistenceAlgorithm.java
│ │ │ ├── Plex3Stream.java
│ │ │ ├── Plex3ToPlex4BarcodeAdapter.java
│ │ │ └── Plex3ToPlex4SimplexAdapter.java
│ │ ├── io/
│ │ │ ├── BarcodeWriter.java
│ │ │ ├── BufferedImageWriter.java
│ │ │ ├── DoubleArrayReaderWriter.java
│ │ │ ├── FileIOUtility.java
│ │ │ ├── FileManager.java
│ │ │ ├── MatlabInterface.java
│ │ │ ├── MatlabWriter.java
│ │ │ ├── ObjReader.java
│ │ │ ├── ObjectReader.java
│ │ │ ├── ObjectWriter.java
│ │ │ ├── SimplexStreamReaderWriter.java
│ │ │ └── Table.java
│ │ ├── kd/
│ │ │ ├── KDEuclideanMetricSpace.java
│ │ │ ├── KDNode.java
│ │ │ └── KDTree.java
│ │ ├── metric/
│ │ │ ├── impl/
│ │ │ │ ├── EuclideanMetricSpace.java
│ │ │ │ ├── ExplicitMetricSpace.java
│ │ │ │ ├── ObjectSearchableFiniteMetricSpace.java
│ │ │ │ └── TruncatedPriorityQueue.java
│ │ │ ├── interfaces/
│ │ │ │ ├── AbstractIntMetricSpace.java
│ │ │ │ ├── AbstractObjectMetric.java
│ │ │ │ ├── AbstractObjectMetricSpace.java
│ │ │ │ └── AbstractSearchableMetricSpace.java
│ │ │ ├── landmark/
│ │ │ │ ├── ExplicitLandmarkSelector.java
│ │ │ │ ├── LandmarkSelector.java
│ │ │ │ ├── MaxMinLandmarkSelector.java
│ │ │ │ └── RandomLandmarkSelector.java
│ │ │ └── utility/
│ │ │ ├── DensityEstimation.java
│ │ │ └── MetricUtility.java
│ │ ├── streams/
│ │ │ ├── derived/
│ │ │ │ ├── DualStream.java
│ │ │ │ ├── HomStream.java
│ │ │ │ ├── TensorStream.java
│ │ │ │ └── TruncatedStream.java
│ │ │ ├── filter/
│ │ │ │ ├── EccentricityFilterFunction.java
│ │ │ │ ├── ExplicitIntFilterFunction.java
│ │ │ │ ├── FilterFunction.java
│ │ │ │ ├── IntFilterFunction.java
│ │ │ │ ├── KernelDensityFilterFunction.java
│ │ │ │ ├── MaxSimplicialFilterFunction.java
│ │ │ │ ├── MinSimplicialFilterFunction.java
│ │ │ │ └── RandomProjectionFilterFunction.java
│ │ │ ├── impl/
│ │ │ │ ├── ExplicitCellStream.java
│ │ │ │ ├── ExplicitSimplexStream.java
│ │ │ │ ├── ExplicitStream.java
│ │ │ │ ├── FlagComplexStream.java
│ │ │ │ ├── FlexibleVietorisRipsStream.java
│ │ │ │ ├── GeometricSimplexStream.java
│ │ │ │ ├── LazyWitnessStream.java
│ │ │ │ ├── VietorisRipsStream.java
│ │ │ │ ├── WitnessBicomplex.java
│ │ │ │ └── WitnessStream.java
│ │ │ ├── interfaces/
│ │ │ │ ├── AbstractFilteredStream.java
│ │ │ │ └── PrimitiveStream.java
│ │ │ ├── multi/
│ │ │ │ ├── AbstractMultifilteredStream.java
│ │ │ │ ├── AbstractStreamFlattener.java
│ │ │ │ ├── BifilteredMetricStream.java
│ │ │ │ ├── HalfplaneFlattener.java
│ │ │ │ ├── IncreasingOrthantFlattener.java
│ │ │ │ └── PrimitiveMultifilteredStream.java
│ │ │ ├── storage_structures/
│ │ │ │ ├── HashedStorageStructure.java
│ │ │ │ ├── HashedStorageStructureIterator.java
│ │ │ │ ├── IntOrderedIterator.java
│ │ │ │ ├── SortedStorageStructure.java
│ │ │ │ ├── StreamStorageStructure.java
│ │ │ │ └── StreamStorageStructureFactory.java
│ │ │ └── utility/
│ │ │ ├── FilteredComparator.java
│ │ │ ├── SkeletalMetric.java
│ │ │ └── StreamUtility.java
│ │ ├── utility/
│ │ │ ├── ArrayUtility.java
│ │ │ ├── CollectionUtility.java
│ │ │ ├── ComparisonUtility.java
│ │ │ ├── ExceptionUtility.java
│ │ │ ├── FormalSumUtility.java
│ │ │ ├── MathUtility.java
│ │ │ ├── MemoryUtility.java
│ │ │ ├── Quicksort.java
│ │ │ └── RandomUtility.java
│ │ └── visualization/
│ │ ├── AbstractVisualizer.java
│ │ ├── BarcodeVisualizer.java
│ │ ├── HomologyGeneratorVisualizer.java
│ │ ├── HomologyVisualizer.java
│ │ ├── ImageRegion.java
│ │ ├── PAppletSplitscreen.java
│ │ ├── Point2D.java
│ │ └── PointCloudScaling.java
│ ├── matlab/
│ │ ├── experimental/
│ │ │ ├── graph_classification/
│ │ │ │ ├── ad_health_example.m
│ │ │ │ ├── ad_health_plot.m
│ │ │ │ ├── average_block_matrix.m
│ │ │ │ ├── blockmodel_er_test.m
│ │ │ │ ├── blockmodel_test.m
│ │ │ │ ├── blockmodel_test2.m
│ │ │ │ ├── comparative_barcode_analysis.m
│ │ │ │ ├── comparative_graph_analysis.m
│ │ │ │ ├── comprehensive_test.m
│ │ │ │ ├── compute_adjacency_matrix.m
│ │ │ │ ├── compute_normalized_laplacian.m
│ │ │ │ ├── create_graph_from_edgelist.m
│ │ │ │ ├── er_test.m
│ │ │ │ ├── er_test_increasing_sizes.m
│ │ │ │ ├── filter_distance_matrix.m
│ │ │ │ ├── get_adhealth_edges16.m
│ │ │ │ ├── get_adhealth_edges44.m
│ │ │ │ ├── get_adhealth_edges47.m
│ │ │ │ ├── heatmap.m
│ │ │ │ ├── heatmap_examples.m
│ │ │ │ ├── hetergeneous_test.m
│ │ │ │ ├── pairwise_barcode_analysis.m
│ │ │ │ ├── pairwise_graph_analysis.m
│ │ │ │ ├── pairwise_row_distances.m
│ │ │ │ ├── plot_example.m
│ │ │ │ ├── plot_graph.m
│ │ │ │ ├── random_geometric_graph.m
│ │ │ │ ├── random_geometric_test.m
│ │ │ │ ├── rg_plot_example.m
│ │ │ │ ├── sandbox.m
│ │ │ │ ├── spectral_embedding.m
│ │ │ │ ├── torus_geometric.m
│ │ │ │ ├── visualize_comparison_distances.m
│ │ │ │ └── visualize_dissimilarity_matrix.m
│ │ │ ├── hom/
│ │ │ │ ├── combinatorial/
│ │ │ │ │ ├── brute_force_test.m
│ │ │ │ │ ├── flip_random_entry.m
│ │ │ │ │ ├── get_binary_subsets.m
│ │ │ │ │ ├── greedy_search.m
│ │ │ │ │ ├── greedy_search_test.m
│ │ │ │ │ ├── hom_parameterization_example.m
│ │ │ │ │ ├── simmulated_annealing_test.m
│ │ │ │ │ └── simulated_annealing.m
│ │ │ │ ├── continuous/
│ │ │ │ │ ├── circle_example.m
│ │ │ │ │ ├── create_max_lp.m
│ │ │ │ │ ├── create_positive_lp.m
│ │ │ │ │ ├── create_positive_lp2.m
│ │ │ │ │ └── tetra_octa_example.m
│ │ │ │ ├── hom_utility/
│ │ │ │ │ ├── compute_mapping.m
│ │ │ │ │ ├── default_objective.m
│ │ │ │ │ └── hom_parameterization.m
│ │ │ │ └── load_hom.m
│ │ │ ├── hom_messy/
│ │ │ │ ├── L2_distance.m
│ │ │ │ ├── alexander_whitney_difference.m
│ │ │ │ ├── alexander_whitney_loss_function.m
│ │ │ │ ├── circle_distance.m
│ │ │ │ ├── codomain_points.txt
│ │ │ │ ├── codomain_stream.txt
│ │ │ │ ├── colorGraph.m
│ │ │ │ ├── compute_interpolated_points.m
│ │ │ │ ├── compute_mapping.m
│ │ │ │ ├── convert_sparse_matrix.m
│ │ │ │ ├── create_max_lp.m
│ │ │ │ ├── create_positive_lp.m
│ │ │ │ ├── create_quotient_complex.m
│ │ │ │ ├── create_quotient_mapper_complex.m
│ │ │ │ ├── density_at_point.m
│ │ │ │ ├── density_function.m
│ │ │ │ ├── density_maximization_test.m
│ │ │ │ ├── density_objective.m
│ │ │ │ ├── domain_points.txt
│ │ │ │ ├── domain_stream.txt
│ │ │ │ ├── embedding_optimization_test.asv
│ │ │ │ ├── embedding_optimization_test.m
│ │ │ │ ├── embedding_optimization_test2.m
│ │ │ │ ├── fast_kron_mult.m
│ │ │ │ ├── flatten.m
│ │ │ │ ├── floyd_warshall.m
│ │ │ │ ├── gaussian_kernel_densities.m
│ │ │ │ ├── gaussian_kernel_density.m
│ │ │ │ ├── get_edges.m
│ │ │ │ ├── gradient.m
│ │ │ │ ├── graph_embedding.m
│ │ │ │ ├── hom_example_test.m
│ │ │ │ ├── hom_optimization_example.m
│ │ │ │ ├── hom_parameterization.m
│ │ │ │ ├── hom_visualization_example.m
│ │ │ │ ├── kron_test.m
│ │ │ │ ├── load_javaplex.m
│ │ │ │ ├── mapper.m
│ │ │ │ ├── mapperTutorial.m
│ │ │ │ ├── mapper_mapping_test.m
│ │ │ │ ├── mapping.txt
│ │ │ │ ├── matrix.txt
│ │ │ │ ├── normalize_rows.m
│ │ │ │ ├── objectivize.m
│ │ │ │ ├── pdist2.m
│ │ │ │ ├── returnBarCode_linkage_noplex.m
│ │ │ │ ├── show_graph.m
│ │ │ │ ├── smoothness_objective.m
│ │ │ │ ├── test_aw_optimization.m
│ │ │ │ ├── to_graph.m
│ │ │ │ ├── to_sparse_matlab_matrix.m
│ │ │ │ ├── unflatten.m
│ │ │ │ └── writeDotFile.m
│ │ │ ├── multifiltration_flattening/
│ │ │ │ ├── Syn2d_5g1k3c.mat
│ │ │ │ ├── Syn2d_5g1k3c_c1.txt
│ │ │ │ ├── clustering_example.m
│ │ │ │ └── flattened_clusters.eps
│ │ │ ├── vietoris_rips_bootstrap/
│ │ │ │ ├── basic_circle_example.m
│ │ │ │ ├── basic_sphere_example.m
│ │ │ │ ├── circle_incremental.m
│ │ │ │ ├── circle_long.m
│ │ │ │ ├── coreSubset.m
│ │ │ │ ├── core_subset_test.m
│ │ │ │ ├── core_verification_test.m
│ │ │ │ ├── ensure_density_indices.m
│ │ │ │ ├── figure_8_incremental.m
│ │ │ │ ├── filtered_barcodes.m
│ │ │ │ ├── filtered_bootstrap.m
│ │ │ │ ├── gaussian_kernel_densities.m
│ │ │ │ ├── gaussian_kernel_density.m
│ │ │ │ ├── get_cache_file_path.m
│ │ │ │ ├── get_core_subset_cached.m
│ │ │ │ ├── get_data_file_path.m
│ │ │ │ ├── kDensitySlow.m
│ │ │ │ ├── load_density_indices.m
│ │ │ │ ├── natural_samples_bootstrap_example.m
│ │ │ │ ├── natural_samples_example.m
│ │ │ │ ├── nk15c30Dct_LW0.m
│ │ │ │ ├── nk15c30Dct_LW1.m
│ │ │ │ ├── nk15c30Dct_VR.m
│ │ │ │ ├── nk300c30Dct_LW0.m
│ │ │ │ ├── nk300c30Dct_LW1.m
│ │ │ │ ├── nk300c30Dct_VR.m
│ │ │ │ ├── outputs/
│ │ │ │ │ ├── n50000Dct-15-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-300-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-10-20-1-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-13-17-1-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-15-45-5-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-15-450-15-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-2-400-1-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-25-350-25-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-300-350-25-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-400-800-25-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-5-100-5-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-5-25-1-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-5-400-5-15000-1.100.eps
│ │ │ │ │ ├── n50000Dct-samples-5-50-5-15000-1.100.eps
│ │ │ │ │ └── nk300c30Dct_LW0.eps
│ │ │ │ └── parfor_test.m
│ │ │ └── witness_bootstrap/
│ │ │ ├── circle_example.m
│ │ │ ├── circle_incremental.m
│ │ │ ├── circle_pairwise.m
│ │ │ ├── figure8_example.m
│ │ │ ├── figure8_incremental.m
│ │ │ ├── figure8_pairwise.m
│ │ │ ├── figure8_samples.m
│ │ │ ├── image_patch_examples.m
│ │ │ └── torus_example.m
│ │ └── for_distribution/
│ │ ├── README
│ │ ├── basic_examples/
│ │ │ ├── barcode_plot_example.m
│ │ │ ├── boundary_extraction_example.m
│ │ │ ├── cellular_test.m
│ │ │ ├── dump_example.m
│ │ │ ├── endpoint_extraction_example.m
│ │ │ ├── ensure_faces_test.m
│ │ │ ├── explicit_metric_space_test.m
│ │ │ ├── explicit_simplex_test.m
│ │ │ ├── explicit_simplex_test2.m
│ │ │ ├── filter_long_intervals.m
│ │ │ ├── house_example_test.m
│ │ │ ├── landmark_test.m
│ │ │ ├── representatives_example.m
│ │ │ ├── simplicial_sphere_test.m
│ │ │ ├── sphere_test.m
│ │ │ └── vietoris_rips_example.m
│ │ ├── benchmarks/
│ │ │ └── rips_persistence.m
│ │ ├── jython/
│ │ │ ├── basic_vr_example.jy
│ │ │ ├── cellular_example.jy
│ │ │ ├── explicit_simplex_example.jy
│ │ │ ├── image_patch_example.jy
│ │ │ ├── pointsRange.csv
│ │ │ ├── quick_povray.sh
│ │ │ ├── representatives_example.jy
│ │ │ ├── sphere_witness_example.jy
│ │ │ ├── torus_witness_example.jy
│ │ │ └── visualization_example.jy
│ │ ├── load_javaplex.m
│ │ ├── tutorial_examples/
│ │ │ ├── bottleneck_distance_example.m
│ │ │ ├── coreSubset.m
│ │ │ ├── core_subsets_example.m
│ │ │ ├── cyclo_octane_example.m
│ │ │ ├── dct.m
│ │ │ ├── eulerCharacteristic.m
│ │ │ ├── euler_characteristic_example.m
│ │ │ ├── explicit_metric_space_example.m
│ │ │ ├── explicit_simplex_example.m
│ │ │ ├── house_example.m
│ │ │ ├── kDensitySlow.m
│ │ │ ├── landmark_example.m
│ │ │ ├── lazy_witness_example.m
│ │ │ ├── optical_image_example.m
│ │ │ ├── pointcloud_example.m
│ │ │ ├── pointsCycloOctane.mat
│ │ │ ├── pointsOpticalDct_k15.mat
│ │ │ ├── pointsOpticalDct_k300.mat
│ │ │ ├── pointsRange.mat
│ │ │ ├── pointsTorusGrid.mat
│ │ │ ├── range_image_example.m
│ │ │ ├── rips_example.m
│ │ │ ├── sublevelset_example.m
│ │ │ ├── sublevelset_persistence.m
│ │ │ └── witness_example.m
│ │ ├── tutorial_solutions/
│ │ │ ├── exercise_1.m
│ │ │ ├── exercise_11.m
│ │ │ ├── exercise_12.m
│ │ │ ├── exercise_13.m
│ │ │ ├── exercise_14.m
│ │ │ ├── exercise_2.m
│ │ │ ├── exercise_21.m
│ │ │ ├── exercise_22.m
│ │ │ ├── exercise_23.m
│ │ │ ├── exercise_24.m
│ │ │ ├── exercise_3.m
│ │ │ ├── exercise_4.m
│ │ │ ├── exercise_5.m
│ │ │ ├── exercise_6.m
│ │ │ ├── exercise_7.m
│ │ │ ├── exercise_8.m
│ │ │ ├── exercise_9.m
│ │ │ ├── flatKleinDistanceMatrix.m
│ │ │ ├── flatTorusDistanceMatrix.m
│ │ │ ├── getDoubleTorusPoints.m
│ │ │ └── projPlaneDistanceMatrix.m
│ │ ├── utility/
│ │ │ ├── convert_sparse_matrix.m
│ │ │ ├── create_landmark_pov_file.m
│ │ │ ├── create_pov_file.m
│ │ │ ├── flatten.m
│ │ │ ├── persistence_diagram.m
│ │ │ ├── plot_barcodes.m
│ │ │ ├── render_onscreen.m
│ │ │ ├── render_pov_file.m
│ │ │ └── to_sparse_matlab_matrix.m
│ │ └── visualization_examples/
│ │ ├── landmark_set_pov.m
│ │ ├── witness_sphere_opengl.m
│ │ └── witness_sphere_pov.m
│ └── processing/
│ ├── javaplex/
│ │ └── library.properties
│ ├── javaplexDemo/
│ │ ├── State.java
│ │ └── javaplexDemo.pde
│ └── readme.txt
├── src_test/
│ └── java/
│ └── edu/
│ └── stanford/
│ └── math/
│ ├── mapper/
│ │ ├── ClusteringTest.java
│ │ ├── HistogramTest.java
│ │ └── MapperTest.java
│ ├── plex/
│ │ ├── CRCTest.java
│ │ ├── ChainTest.java
│ │ ├── CubeHashTest.java
│ │ ├── ExplicitStreamTest.java
│ │ ├── LazyWitnessStreamTest.java
│ │ ├── MappedBufferDataTest.java
│ │ ├── Packed2SimplexTest.java
│ │ ├── Packed4SimplexTest.java
│ │ ├── Packed6SimplexTest.java
│ │ ├── PersistenceBasisTest.java
│ │ ├── PersistenceIntervalTest.java
│ │ ├── PersistenceTest.java
│ │ ├── PlexSortTest.java
│ │ ├── PlexTest.java
│ │ ├── RipsStreamTest.java
│ │ ├── SimplexFaceIteratorTest.java
│ │ ├── SimplexTableTest.java
│ │ ├── SimplexTest.java
│ │ ├── TorusTest.java
│ │ └── WitnessStreamTest.java
│ └── plex4/
│ ├── bottleneck/
│ │ ├── BottleneckDistanceTest.java
│ │ └── FordFulkersonTest.java
│ ├── example_tests/
│ │ ├── CustomFiltrationTest.java
│ │ ├── FiltrationTimeTest.java
│ │ ├── FormalSumTest.java
│ │ ├── GraphTest.java
│ │ ├── HomVerificationTest.java
│ │ ├── MultifilteredFlatteningTest.java
│ │ ├── VdsWitnessExample.java
│ │ ├── VietorisRipsBootstrapTest.java
│ │ ├── WitnessBootstrapTest.java
│ │ └── ZigZagTest.java
│ ├── homology/
│ │ ├── HomTester.java
│ │ ├── PersistenceAlgorithmTester.java
│ │ └── StreamTester.java
│ ├── metric/
│ │ └── SearchableMetricSpaceTester.java
│ ├── test_utility/
│ │ └── Timing.java
│ └── unit_tests/
│ ├── DeSilvaMorozovJohanssonTest.java
│ ├── ExperimentalEqualityTest.java
│ ├── PersistenceAlgorithmEqualityTest.java
│ ├── SearchableMetricSpaceTest.java
│ ├── SimplicialSphereTest.java
│ └── StreamsTest.java
└── templates/
└── homology/
├── AbsoluteHomology.vm
├── ClassicalHomology.vm
├── PersistenceAlgorithm.vm
├── PersistentHomology.vm
└── RelativeHomology.vm
================================================
FILE CONTENTS
================================================
================================================
FILE: .classpath
================================================
================================================
FILE: .gitignore
================================================
*.class
# Package Files #
*.jar
*.war
*.ear
/bin/
# Mac system files
*.DS_Store
================================================
FILE: .project
================================================
javaplex
org.eclipse.jdt.core.javabuilder
net.sourceforge.metrics.builder
org.eclipse.jdt.core.javanature
net.sourceforge.metrics.nature
================================================
FILE: .settings/org.eclipse.jdt.core.prefs
================================================
#Tue Jul 06 16:52:58 PDT 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.lineSplit=160
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
================================================
FILE: .settings/org.eclipse.jdt.ui.prefs
================================================
#Tue Jul 06 16:52:58 PDT 2010
eclipse.preferences.version=1
formatter_profile=_Andrew
formatter_settings_version=11
================================================
FILE: .travis.yml
================================================
language: java
================================================
FILE: LICENSE.md
================================================
Copyright (c) 2014, Henry Adams, Mikael Vejdemo-Johansson, Andrew Tausz
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the {organization} nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: README.md
================================================
# JavaPlex
## Persistent Homology and Topological Data Analysis Library
The `JavaPlex` library implements persistent homology and related techniques from computational and applied topology, in a library designed for ease of use, ease of access from Matlab and java-based systems, and ease of extensions for further research projects and approaches.
`JavaPlex` is mainly developed by the [Computational Topology workgroup](http://comptop.stanford.edu) at Stanford University, and is based on previous similar packages from the same group.
For persistent homology and its capabilities, we recommend the survey article [Topology and Data](http://www.ams.org/journals/bull/2009-46-02/S0273-0979-09-01249-X/S0273-0979-09-01249-X.pdf) by Gunnar Carlsson.
## How to get started?
* Take a look at the [documentation overview](https://github.com/appliedtopology/javaplex/wiki/Overview)
* Take a look at the [latest release](https://github.com/appliedtopology/javaplex/releases/). The tutorial PDF is available for download there (and also [here](http://www.math.colostate.edu/~adams/research/javaplex_tutorial.pdf)). There is also a [tutorial wiki page](https://github.com/appliedtopology/javaplex/wiki/Tutorial).
* From the [latest release](https://github.com/appliedtopology/javaplex/releases/), you can download and start playing with the latest matlab examples.
## For more information
* Read the [wiki page documentation](https://github.com/appliedtopology/javaplex/wiki/Overview)
* Look at the [javadoc documentation](http://appliedtopology.github.io/javaplex/doc/)
## Wiki links
* [Architecture Notes](https://github.com/appliedtopology/javaplex/wiki/Architecture-Notes)
* [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information)
* [Cohomology](https://github.com/appliedtopology/javaplex/wiki/)
* [Home](https://github.com/appliedtopology/javaplex/wiki/Home)
* [Interoperability](https://github.com/appliedtopology/javaplex/wiki/Interoperability)
* [Overview](https://github.com/appliedtopology/javaplex/wiki/Overview)
* [Troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting)
* [Tutorial](https://github.com/appliedtopology/javaplex/wiki/Tutorial)
## Citing JavaPlex
To cite `JavaPlex`, please consult the [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information) page.
## Old Site
`JavaPlex` was formerly hosted at [https://code.google.com/p/javaplex/](https://code.google.com/p/javaplex/). As of spring 2014, we have moved to this present page at GitHub.
## Updates
* July, 2018: [Version 4.3.4](https://github.com/appliedtopology/javaplex/releases/) is released.
* July, 2018: Version 4.3.3 is released.
* June, 2017: Version 4.3.1 is released.
* May, 2017: Version 4.3.0 is released. Installation in Matlab 2016 should now work again!
* March, 2016: Version 4.2.5 is released
* Jan, 2016: Version 4.2.4 released
* July, 2015: Version 4.2.3 released
* March, 2015: Version 4.2.2 released
* July, 2014: Version 4.2.1 released
* April, 2014: Google Code hosting abandoned
* May, 2012: Version 4.1.0 released
* For frequently asked questions regarding `JavaPlex` and troubleshooting information, consult the [troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting) page.
================================================
FILE: build/processing/javaplex/library.properties
================================================
name=javaPlex
authorList=Andrew Tausz and Mikael Vejdemo-Johansson and Henry Adams
url=http://code.google.com/p/javaplex
category=Geometry, Math
sentence=Framework for computational topology
paragraph=
version=101
prettyVersion=4.3.4
================================================
FILE: build.number
================================================
#Build Number for ANT. Do not edit!
#Sun Jul 15 19:57:53 MDT 2018
build.number=102
================================================
FILE: build.xml
================================================
================================================
FILE: data/natural_images/readme_natural_images.txt
================================================
A natural image is a photograph. Consider natural images which contain a greyscale value at each pixel. In the paper "On the local behavior of spaces of natural images", authors Gunnar Carlsson, Tigran Ishkhanov, Vin de Silva, and Afra Zomorodian study several dense core subsets of a space of high-contrast 3x3 natural image patches. In particular, the authors find that their dense core subset X(300,30) has the topology of a circle and that their dense core subset X(15,30) has the topology of an interesting space containing three circles. A more complicated subset has the topology of a Klein bottle.
The paper "On the local behavior of spaces of natural images" is available at the following website:
http://www.springerlink.com/content/pm1718435n685294/
These dense core subsets are also discussed in the paper "Topological estimation using witness complexes" by Vin de Silva and Gunnar Carlsson, which is available at
http://pages.pomona.edu/~vds04747/public/papers/witness.pdf
The dataset of natural image patches is from "The nonlinear statistics of high-contrast patches in natural images" by Ann Lee, Kim Pdersen, and David Mumford, which is available at
http://www.informatik.uni-trier.de/~ley/db/journals/ijcv/ijcv54.html
The patches are taken from van Hateren's natural image database, which is available at
http://www.kyb.mpg.de/bethge/vanhateren/index.php
See the paper "Independent component filters of natural images compared with simple cells in primary visual cortex" by J H van Hateren and A van der Schaaf at
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1688904/
The Matlab file n50000Dct.mat is a collection of 50000 random points from the space M of patches in "On the local behavior of spaces of natural images".
The Matlab file nk300c30Dct.mat contains a version of the core subset X(300,30).
The Matlab file nk15c30Dct.mat contains a version of the core subset X(15,30).
================================================
FILE: data/point_clouds/circle.txt
================================================
0,1,1
0.125333233564304,0.992114701314478,1
0.248689887164855,0.968583161128631,1
0.368124552684678,0.929776485888251,1
0.481753674101715,0.876306680043864,1
0.587785252292473,0.809016994374947,1
0.684547105928689,0.728968627421412,1
0.770513242775789,0.63742398974869,1
0.844327925502015,0.535826794978997,1
0.90482705246602,0.425779291565073,1
0.951056516295154,0.309016994374947,1
0.982287250728689,0.187381314585725,1
0.998026728428272,0.0627905195293133,1
0.998026728428272,-0.0627905195293134,1
0.982287250728689,-0.187381314585725,1
0.951056516295154,-0.309016994374948,1
0.904827052466019,-0.425779291565073,1
0.844327925502015,-0.535826794978997,1
0.770513242775789,-0.63742398974869,1
0.684547105928689,-0.728968627421412,1
0.587785252292473,-0.809016994374947,1
0.481753674101715,-0.876306680043864,1
0.368124552684678,-0.929776485888251,1
0.248689887164855,-0.968583161128631,1
0.125333233564304,-0.992114701314478,1
-3.21624529935327e-16,-1,1
-0.125333233564304,-0.992114701314478,1
-0.248689887164855,-0.968583161128631,1
-0.368124552684678,-0.929776485888251,1
-0.481753674101715,-0.876306680043863,1
-0.587785252292473,-0.809016994374947,1
-0.684547105928689,-0.728968627421412,1
-0.770513242775789,-0.63742398974869,1
-0.844327925502015,-0.535826794978996,1
-0.90482705246602,-0.425779291565072,1
-0.951056516295154,-0.309016994374948,1
-0.982287250728689,-0.187381314585725,1
-0.998026728428272,-0.0627905195293132,1
-0.998026728428272,0.0627905195293137,1
-0.982287250728689,0.187381314585725,1
-0.951056516295154,0.309016994374947,1
-0.90482705246602,0.425779291565073,1
-0.844327925502015,0.535826794978997,1
-0.770513242775789,0.63742398974869,1
-0.684547105928688,0.728968627421412,1
-0.587785252292473,0.809016994374948,1
-0.481753674101715,0.876306680043864,1
-0.368124552684678,0.929776485888251,1
-0.248689887164854,0.968583161128631,1
-0.125333233564304,0.992114701314478,1
-2.44929359829471e-16,1,1
================================================
FILE: data/point_clouds/cube.txt
================================================
0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
1,1,1
================================================
FILE: data/point_clouds/cylinder.txt
================================================
1.98155906437293,1.01389735228371,9.91560618858784
9.08504984057864,7.88311772218694,7.3735861806199
9.18819705140907,7.73111798693655,9.24848021706566
0.297367590525015,6.69860190196393,4.00469116866589
8.37947995174046,1.31501489069708,0.380953245330602
3.8633849243986,9.86909705899519,6.67675641831011
0.342358399089671,3.18165605083376,1.17942726472393
4.30273571776188,9.95114355686794,2.67158857081085
6.74175707022841,0.313179936427116,4.56938061863184
7.55717192220169,0.703388339597898,1.44128279294819
0.298787263452959,6.70252718208194,9.62811290519312
2.81609087584908,9.49783736227205,1.20725980959833
9.89843268972806,3.99732498574888,1.66349642444402
4.57169509699127,0.0183782851305656,3.90655303606763
8.32049682214699,8.73822161650587,7.36547205829993
2.11196347038048,9.08157383904582,2.40806992864236
0.723575182144563,7.59078960497183,8.76940758666024
3.64775712796965,0.186327886629262,4.48188315611333
0.295002987566648,6.69204110854117,1.70002741506323
3.72061581509227,0.166453051080605,0.779146109707654
2.94226994104994,0.443055079936409,5.65943384310231
2.9928126057908,9.57943214433053,0.416400467511266
8.00157963108108,8.99881478919432,1.78701147902757
0.0492417001941963,5.69999446919525,5.71796077070758
0.0381298317631824,4.38368479366356,4.94143709540367
0.0395865408689104,4.37206822466837,9.67417690902948
4.6533743259249,0.0120294064547668,1.32679875940084
1.20949259809144,8.26068300147015,4.1339967190288
9.90782881098922,5.95562354618549,8.07800238952041
2.36826753557501,9.25135087186315,8.4695887262933
9.54637444113232,7.08098040380461,1.49970934260637
9.67481897887884,3.22628426327268,2.78491820208728
2.96700892507886,0.431964613831131,5.33804455772042
4.34009512180831,0.0437387526746731,8.58999602030963
6.00137583948972,0.101301557751666,2.3132145148702
9.90972770278314,4.05418083941814,2.06402251496911
5.44400291400843,9.98024712362268,1.98890739586204
9.59057436323983,6.98157185475702,6.89322384539992
7.84754576701277,9.10992495123301,8.41165363555774
7.164404508691,0.492744391233387,7.64313261024654
3.88506360668586,0.125893226563081,8.46851739101112
0.128510562079963,3.87368270179601,6.30169098032638
7.36716245099221,0.595849465491384,7.36188026145101
9.82149805532027,3.67593183614177,3.59787971712649
9.54058412077095,2.90641555169067,3.14378441078588
8.51243925866423,8.55847867131367,3.29378595110029
0.504254282057865,2.81178830100811,4.53104746062309
4.31058221154647,0.0477577691550826,7.6893353369087
4.44022622877714,0.0314334738225615,6.42619221936911
5.51202487101679,0.026286042456781,1.98695020982996
6.91850634597638,9.61728636760255,9.52424436109141
8.57367153285729,1.50301962040886,1.11773680662736
7.06377463761604,9.55421060614601,5.61686536064371
1.45763662549831,8.52869121955846,4.57374772056937
5.34549062116696e-05,5.02312025529035,3.46125789452344
9.18165524978191,7.74112374255002,3.52681379998103
1.50237930022121,8.57304484165521,2.64214387862012
8.74651811324678,1.68886695720124,7.53608060535043
0.304140179967696,3.28276368818785,3.77550700912252
6.61454727189493,9.73214931155143,4.6098384144716
6.62134412142694,0.270175136443813,7.24471779307351
6.66905677488787,0.286800504731323,7.6736927847378
0.131508947982554,6.13920800402124,3.47244966076687
8.88076174473684,1.84727288199771,6.02516253245994
0.361630584248668,6.86695719367709,4.94784859241918
5.96265594037259,0.0935457262433017,5.71045571472496
9.9560162768063,4.33825785684225,5.45636160532013
9.9573609904291,5.65159190493117,2.77153667761013
2.96900480902746,0.431076873677297,8.53253790875897
4.896563871275,0.00107001776636384,6.02567227790132
1.04601851227502,1.93960290244417,3.44587875995785
7.64943704318637,9.24034000455056,4.57919821608812
9.82579430831009,3.69167691532942,6.64985702373087
4.65956717673615,0.0116029134756515,3.58294414822012
8.20532708024432,8.83743121223722,1.39708176488057
0.679309311050914,7.51627342918624,0.758123067207634
1.20983834758344,1.73891511172264,3.32052253186703
0.0174048897430064,5.41682846261153,2.3171843169257
9.35953292930975,7.44836121482595,0.220230356790125
0.678031617011214,2.4859217799668,3.94748639315367
0.40947673679646,6.98169023058275,4.95670055504888
9.90936123484882,5.94771950795773,2.017673375085
2.80443119025604,0.507842656175155,8.49194075679407
6.76944458349702,0.323562695177765,7.71667758235708
0.417938416671372,2.99882243501884,7.97898060409352
8.85557120973321,8.18348404215828,7.41256185341626
9.02507837855998,7.96626769635664,7.03079507453367
9.01146507363252,2.01534793266846,9.31785981170833
9.71203141911599,3.32764839065951,6.89677640330046
6.23440415042444,0.15477075945679,2.1531616942957
9.81450986991083,3.65074290347198,5.20865012425929
3.15839515312481,0.351506524908762,2.47535083908588
1.02210657444931,8.02925137533362,0.0028396095149219
2.8655124614774,9.5215000771748,1.97060911217704
9.73985120015462,6.59179477332752,5.76980191282928
8.60365380572443,8.46607548222594,9.40057422267273
4.72120415416559,0.00777876328127114,0.89916825061664
0.899924479196999,7.86170940588174,5.53220674628392
1.78718510583734,8.83116437337875,8.13203247031197
8.23375757596786,8.81350389273048,4.17472541332245
0.223151649264339,3.52293539949195,3.16485654795542
0.20603480730742,3.57947272773382,9.34758721385151
1.95315192042294,8.96443145734387,3.81980929058045
7.6799847349971,9.2210995984675,1.22901774710044
6.70593803006527,0.300023889680181,6.8852007901296
9.71234118671397,6.67147854906942,2.17834393959492
4.5033794367826,0.0247243276186557,2.84860792104155
4.29557929266267,9.95013044950074,0.973909748718143
9.08474926888194,7.88354355097482,4.5472671976313
0.0756294101361199,4.133643091051,2.16106416191906
0.66029823910638,2.51665777096736,5.86965558119118
2.56379732914619,0.633660967523851,6.13497688435018
1.29355873995238,1.64406597415614,2.76353855151683
0.100264969631659,4.00370856062026,1.6551045444794
0.0905365454550813,4.05281016238144,1.9357799529098
9.41458412196148,2.6523528735933,3.23120343266055
9.46029119992751,7.25960226850859,6.20557196438313
1.61506228912421,1.32002762327066,6.18751841131598
0.0615541899069596,5.78214639344211,5.3097306843847
4.36602958205772,0.0403546992578088,9.47704016463831
9.28853641872373,2.42930838386238,6.77681132918224
7.29096071266088,0.555734142398282,4.42116612801328
2.8995296617017,9.53740282076972,6.03302712086588
5.18252738328036,9.99666726472284,0.272806147113442
0.0812942143642257,4.10203931358152,4.87914178986102
9.59263037869132,6.97680201454815,3.04588038474321
9.53213977320231,2.88819767114493,9.17776150628924
1.11359480684662,8.14576774009628,2.92854892322794
0.57266752870386,7.32351612617748,3.42329949373379
0.123492621766849,3.89561067098706,2.08388806320727
7.5532231969333,0.701040671669285,7.07083959365264
1.8301583673687,8.86679505844793,9.08233890077099
2.65272526031104,0.585217865350758,7.49294742010534
0.480061584317667,2.8622075127742,9.37890768051147
9.98746371020676,4.64615576962362,2.79900332447141
5.39592662006372,9.9842995607733,2.07014475949109
6.8791634102023,9.63343769546509,2.42754332954064
6.70233834549015,0.298718881254401,1.0642899828963
1.38480943690339,1.54595929489862,4.33233608491719
8.93245725811804,8.08800581493539,1.35092819808051
5.11438308285688,0.00130852018689254,8.17405810346827
3.47924777426578,9.76312005600577,3.06138352956623
4.70833518708136,0.00851408527429243,2.78952522436157
4.08397549056137,0.0846262504151607,4.85826239455491
3.60879424338526,0.197443749130884,9.06072210287675
0.0322454008361284,4.43306592756635,2.71818210370839
1.09090611985281,8.11752867447852,6.32752685574815
5.09333742675109,0.000871263433248615,6.50233844295144
6.33350995633833,0.181104774292499,9.4024747540243
2.08190559071877,0.939861453284923,1.3198665715754
2.05594904172314,0.958643302668137,3.38051763828844
6.0414075995122,9.89034459027973,9.85981727950275
5.22285688177885,9.99503101194015,6.03791355388239
0.0176749515967556,4.57995582130732,3.37604096159339
9.1891974905524,2.27041681109561,4.76685512810946
7.33089157305953,9.42345390782362,3.62371941795573
0.401100363810035,3.03782719001312,3.62792111700401
9.90928481240586,4.05188469547149,2.63047105167061
7.63908110475117,0.7532069837882,4.10442095715553
0.00584500624436934,4.7583061888552,0.556122455745935
9.3893139232069,2.60543881190268,1.18974984623492
0.308771317844974,6.72984781172391,7.39169531268999
1.50041095538624,1.42888301524308,6.16055381018668
1.44985822326693,1.4791345715727,8.42528459150344
1.9663435101077,8.97453497925661,5.69394054589793
9.70801663358923,6.6836209127494,7.34111036639661
9.86819284805888,6.14048165005334,2.07985062152147
6.70213184423397,0.298644112083764,5.26059908326715
9.99899326361258,5.10033120330202,7.0604231627658
9.83218963145211,3.71549878719919,3.94992934772745
5.29275990707442,0.00857819486173117,3.65242982748896
7.8135694518341,0.866741365495507,3.01494718529284
7.28754939818023,0.553977311024462,3.82129128323868
9.11516695982113,7.83996494569854,3.63564348546788
9.95623323506021,4.33988476787413,9.04378048609942
6.79233689211751,0.332288733741714,9.17223730357364
3.02409338956007,9.59301568327605,7.14646412059665
0.00373529836814956,4.80676689924448,2.17261475976557
1.5237361105334,1.40617343618385,4.23061681212857
9.91172574526283,4.0646122711291,1.04487017029896
7.10552712589608,9.53505849158705,9.13629327202216
9.07447258569787,2.10195356345063,0.326851403806359
6.61734159922323,0.268804997527362,8.26476547168568
9.75448745899293,6.54752996813599,2.11933527840301
7.10915631422652,9.53337177409469,5.79990849364549
3.60294321736878,0.199142540534648,1.79527902510017
0.461883856380353,2.90107125727939,5.06749103777111
9.48133891958354,2.78243343102719,1.5495343809016
0.128599499224101,6.12670189537442,9.20397030189633
9.55952274803403,7.05201177144776,7.23849420901388
7.60100964154843,9.27021648685077,3.47964082611725
9.48121046769353,7.21782613029831,5.48018676694483
0.801384067738752,7.71507352632705,6.97265869006515
6.98594465253593,9.5886843252793,8.42755313031375
1.27182210138196,1.66823026662166,7.97182436101139
8.83270528300063,8.2109765202597,6.33284526178613
9.77700250818251,6.47656596087613,4.75078266346827
4.10015709451374,9.91836179489127,1.75769717432559
1.73909612204247,8.79031738759718,3.37743477663025
4.46582905896621,9.97138425448638,2.02819433761761
9.02185523813349,2.02936362987689,7.62582640862092
3.84255841252106,9.864188418593,2.29280170984566
9.23162335209545,2.33666303183385,5.36567959934473
7.59081743812425,9.27640795555233,5.30307809123769
1.70507399221928,8.76077952069119,3.94775351276621
0.301857866059078,6.71098231705913,9.08147040521726
2.31102089399296,9.21537559031904,3.97971724392846
0.0512976542006864,5.71438441519981,8.4747231239453
3.67911899677535,9.82237217304101,6.04592529824004
0.986884083053025,7.98243200042295,9.35327148996294
5.91524045728745,9.9155198001172,3.78175632795319
2.79461010012671,0.512656087445839,5.60211172094569
9.06185300867545,7.91570748462774,4.54928757390007
6.52946102764516,0.239669237866488,0.387833029963076
2.29406247021851,9.20450973181417,7.54382866900414
8.81527055549965,1.76832696760062,9.16855052346364
1.05230312243559,1.93150047044681,6.20655971812084
6.21751928698223,0.150500357168147,9.49014480458573
3.78610936012266,9.85040921102727,1.79473456460983
9.60649794414076,6.94426764891743,6.41646301373839
2.87827870141682,9.52750469145406,9.15629823459312
9.76028474404372,6.52960424804086,6.7956636310555
9.87534546053863,3.89049261363191,5.04896315280348
0.0694697057005307,5.83058474401785,6.69082100503147
8.82926641744952,1.78492321954929,3.08234069263563
0.845023136006945,7.78139663832443,8.43683670507744
0.016456919826922,5.4053373509301,8.67310285801068
4.86529529675359,0.00181486508119644,5.1640859246254
4.09412095513166,9.91725361925419,5.92254223302007
0.00838414782403252,5.28943252116096,5.42263799812645
0.0178606136099395,4.57775938781203,0.55065440479666
6.17884663172438,9.85904523737659,8.80351451458409
0.0150361264960361,5.38747281176923,1.02662118384615
6.82236424778894,0.343929924455535,0.623037782497704
1.71470574012454,1.23080358351686,2.38549605244771
9.58305239491907,6.99890738790635,5.27510567335412
9.71599232914936,6.66114910571097,7.29834318859503
6.54838749825494,0.245791742545577,9.16486918693408
5.11003450606912,9.99878909411811,0.18240817822516
6.7025172234739,0.29878365699102,2.72441705921665
8.38409744164324,8.68074510194114,1.83652173727751
8.44119969625645,8.6274156986048,2.89334535598755
5.41130006656171,0.0169454894365915,4.95241242926568
9.99839806690896,5.12655735743424,1.58623022958636
9.31303881281368,2.47063324146877,1.83140772860497
9.97362091466604,5.51292786743997,1.7711855773814
8.2988153185487,8.75736842671948,9.44953825557604
4.06546126785453,0.0881126480628724,3.17615486681461
9.96114535524651,5.62212278861649,7.87899327464402
0.0011078722302047,4.89475032104005,4.31469856528565
4.60345975649391,9.98425077973411,1.28046716097742
9.99961687967116,4.93810447102393,8.68892352329567
9.03554294886662,2.04798490724507,9.95024823583663
8.7429491272178,8.31516693864118,6.81781406514347
9.83169419770674,6.28636354886439,7.83420689869672
0.200214641514924,3.59926429599575,8.23520988924429
1.43669505035426,1.49245700869823,7.75759101845324
0.915350840145051,2.11631464252837,7.58571529295295
0.186175256047624,3.64830057538229,5.35677018808201
4.76929718950738,9.99467478553217,3.9169091056101
9.96643658926347,4.42163367592413,0.540897287428379
8.93635051970137,8.08304145058848,7.34755479265004
9.44053860769713,2.70182314136809,0.313386302441359
9.95779008930344,5.64831892645869,7.83697160426527
3.51569422375172,0.225396732439859,7.96462544705719
1.47869602251653,1.45029320955109,5.66345289582387
0.380551690833607,3.0867051144845,7.90581358363852
9.99819643827878,5.13428463939453,2.23552356939763
2.76449059214744,0.527584803777416,2.68832035595551
5.73145541633151,0.0537920611928069,0.257770600728691
9.50163487782857,2.82392936081631,8.87621809961274
6.59493400676524,0.261204212665017,8.63767869537696
9.12041618367591,2.16765636383901,6.41633699648082
6.78748092938431,9.66957299194342,2.52336235018447
9.98390097273247,5.40091282593151,4.60909839021042
7.10976163342921,0.466909900508252,7.93389781145379
8.59416406063008,8.47591494505764,7.51317153917626
3.48861600992168,0.233899032276495,4.83257923740894
3.43398434355497,0.25156921038444,5.60504770837724
3.95893266265484,0.109582962659211,6.8331754556857
0.0339784843754085,5.58191950160966,3.78945562290028
3.65964270106071,0.183004846257351,7.75675956625491
5.86253446261432,0.0749584467943194,9.36295783845708
0.153413258814298,6.22906344838782,5.56927622994408
8.51490261616401,1.44395449988567,9.91321716923267
8.22225126834924,1.17676880588922,5.80611820332706
0.00051130347827133,4.92849634029316,2.10909283952788
6.97201981746402,9.59468582598737,4.06207467662171
6.01042399850371e-07,4.99754838346427,2.39015682134777
8.47744759981314,8.59268119801268,0.857308986596763
4.00714277196487,9.90043207531115,4.51878539286554
6.79260203907294,9.66760944483486,2.86496453918517
4.81973277722636,0.00325068385520488,5.91482213931158
1.87876791099432,1.09386249005987,4.42236144095659
2.33936984805355,9.23332578412687,0.881540116388351
7.00149302532964,0.41807620430492,1.51210515294224
5.70519236019427,9.95002057926264,2.99622032558545
4.1361107617674,0.0751959039911148,8.80903256591409
8.67861417431949,8.38641370132117,3.63712762948126
2.90312859333565,0.460932881757151,5.92682712711394
================================================
FILE: data/point_clouds/octahedron.txt
================================================
0,0,1
0,0,-1
0,1,0
0,-1,0
1,0,0
-1,0,0
================================================
FILE: data/point_clouds/sphere_rnd.txt
================================================
0.0773054454995878,0.836334266051908,0.542741986143994
-0.374781006964731,-0.880579478663034,0.29003271983699
0.50978558146903,0.424200162233223,-0.748446980946273
-0.0528428774695098,-0.615719249834132,-0.786191729595546
-0.367308929628173,0.000389375987204433,0.930098918718728
0.652516428941516,-0.668637302231417,0.356576034004116
0.0149030302359853,0.0112939871690741,0.999825157486853
0.823022164605666,0.0710393566695145,-0.563549400116604
0.684126185054392,0.068103436067191,-0.72617717185186
-0.324481141146087,0.231780181172957,-0.917055034693101
-0.338509732916114,-0.214630629991015,-0.91615765749718
-0.00118381141382112,0.00937485776903048,-0.999955354319555
0.729104853184126,0.158523576536518,0.665790048547907
0.0211118341898496,0.718788101134769,0.694908595517579
-0.30806472626895,0.560002818706148,-0.769085799810402
-0.644943375782511,0.164810327877268,-0.74624767862905
-0.623589297300199,0.541391018195545,0.563943395838479
0.525375237353793,-0.100072884209631,0.84496525243433
0.60862244684568,-0.422637064685626,-0.671533043676554
-0.244930120010996,0.476438302197522,0.844402617541266
-0.72106356958232,-0.627730047134878,-0.293295612898058
-0.650652226042903,-0.294085077275247,0.700118310051542
-0.0248561877734911,0.26785334061156,-0.963139012735232
0.000718413489679035,-0.0289201833466252,-0.999581465853212
0.327261372609863,-0.930358921992411,-0.16532474184655
0.180570006689022,0.161564083033019,0.97020179331829
-0.762804638158049,0.188161799664615,-0.618647089342172
-0.0575350601444459,0.983868191621906,-0.169390372715851
0.599956158420826,-0.740027845873894,0.303992426392777
0.929425944398791,-0.368029182124441,-0.0268688478210385
-0.877107159051745,0.184651699664105,-0.443381079153513
0.854404307607442,-0.481021094629829,0.196499327385539
-0.56695042330303,-0.33707461551726,0.751630175744964
-0.126349401535378,0.0465854522909329,0.990891328232567
-0.183201230257471,0.548734530428078,0.815676237454559
-0.85144959293011,-0.110768878194278,-0.512604961274013
0.604081636514428,-0.403803804660679,-0.687042839834322
0.741799527896245,-0.649536789300367,-0.166839502990987
-0.839102405226826,0.369063236864269,-0.399624174366146
-0.329801539160309,-0.125969756216375,0.935608125919329
0.960358583097858,0.273000370356808,0.0564109001463399
0.24588518939368,0.385730790257908,0.889242504092019
0.0422772999912147,-0.382918179658079,0.922814335385399
-0.456825376110263,-0.0973021756562058,-0.884218786474414
-0.0917685997699636,-0.172338746935993,0.980753730760578
0.72403813246436,-0.0978825971963726,0.682779451875651
0.0269048253674394,0.92218857263681,-0.385803534029991
0.0787372103661066,0.111486104098655,-0.99064186278224
-0.845451465373086,0.520019711402262,0.121619568538988
0.728711360020418,-0.322857421891818,-0.60393943314422
-0.423290015741426,0.857785834188432,0.291597368368232
-0.261237798855839,0.0765516436102646,0.962234201382139
-0.907077266383511,0.409815115020244,-0.0962413856465126
0.374857363549564,-0.751777127553699,0.542506320221046
0.165385020869652,-0.838324906268616,0.519479688151193
0.758834971668538,-0.348479265852135,-0.550210584271119
-0.44497758480629,0.286706273607222,-0.848407014170806
0.913475119800637,0.0655559625862071,-0.401578910395712
0.259046495244195,0.424829785070677,0.867418334495243
0.997523240628835,0.0701016772023688,0.0057566708054242
-0.0093922330874305,0.742840239365826,-0.669402841894591
0.104895318893012,-0.413440110401736,0.904469041584804
0.637869559781783,0.359218103525119,0.681237681579352
-0.178064968133249,0.0405526164071191,-0.98318276654254
0.25249809948801,0.0611888988587843,0.965660721170429
0.0645721288707562,0.0178824894761964,-0.997752803425394
-0.875510432589323,0.237776222180498,-0.420647061790318
0.209535100840485,0.156719049083866,0.96516018420261
-0.0923660199487699,0.546070586682739,0.832631630866131
0.740281617880264,-0.637935872072206,-0.212181406706742
-0.51335002404794,-0.839944420803601,-0.175969096067698
-0.0167661356795372,-0.101565436372541,-0.994687568449928
-0.899709919293064,-0.382048812135736,0.211094211837612
0.00809383456803171,-0.296167923331757,-0.955101591994977
0.323823198840434,0.131913959808919,0.936876322200684
0.0859534183395871,-0.034309211997662,0.995708234297497
0.904457784893985,-0.0024685259488967,0.426556000689599
0.912338424948354,-0.296801985506795,0.282041095874307
0.556959569941936,0.0482825152569048,0.829134992730713
0.960806432034758,-0.27634353230344,0.0220284433107471
0.268776098747987,-0.665876601711771,0.695965343989624
-0.123750210078179,0.985388100135887,-0.117030669553731
-0.375935062819358,0.853344800562228,-0.361213897706631
0.76408305665407,0.461093653193351,0.451187018340491
-0.489899172384632,-0.712327795439265,-0.502581249890492
0.304130846139273,-0.927911729538335,-0.215602065416325
0.189324928446894,0.670239682863866,0.717589603452505
-0.429665430548303,0.808688284073863,0.401759725449693
-0.928046177378992,0.0755724835749542,0.364717825693446
0.0812822685108709,-0.333925075062947,-0.93908851396976
0.568557363276401,-0.464700859979105,-0.67881929509912
0.0258286084462135,0.0744231655904743,-0.996892208520673
-0.560530115801812,-0.768600450596889,-0.308316941833346
0.0268255219719648,0.0308043978051151,-0.999165391938089
0.456685496464383,-0.129315597500649,0.88017943259436
-0.299456560151077,0.872506442136801,0.386080661277234
-0.616090413457421,0.556277618127233,-0.557662813908688
-0.734542245897416,-0.27950972021229,-0.618321926910915
0.0261293431973975,0.0506935037862847,-0.998372388489356
0.360093378080232,0.213290900907335,0.908206887582837
-0.489724227916716,-0.43590880870435,-0.755085221074635
-0.0411238511746045,0.760872833793025,0.647596602570104
0.672180804506389,0.720489767871045,0.170491819294272
0.705145063448448,0.0649966525983608,-0.706077810616714
0.114842362167261,0.0272273430580039,-0.993010525443636
-0.794917418826794,0.606609639705738,0.0114473692096881
-0.729469920569626,-0.364092553151464,0.579059796328317
-0.133377571158276,0.053057692284941,-0.989644029336466
0.588039595939279,0.252658035466094,-0.768357566971253
0.410370449689182,0.831699934440869,-0.373993734002259
0.858227562854035,-0.326346690125003,-0.396160684826344
0.0637498626295064,-0.558954260472549,0.826744271050187
0.337428103793781,0.00545446142346483,0.941335500032116
0.121127049501086,-0.816445181320226,-0.564575507596764
0.276733401469516,0.309348999768436,0.909792185531059
0.211981526146488,0.0450425590189518,0.976235115353689
0.824176750775385,-0.505049071827148,-0.256238401743112
0.594505003726877,0.790985015573261,-0.144590821569954
-0.722340155372445,0.686039535464281,-0.0870313490442687
0.0947244160312465,0.387562881941893,-0.916963629348751
-0.0115357160144928,0.0242785918222118,0.999638673339104
0.984677062708126,-0.173208112180659,-0.0202492481664996
-0.833031477012519,0.547147640160647,-0.0817803043096287
-0.187527155304188,0.980938689082309,0.0509200774253142
0.455901909993559,-0.209976195940247,-0.864906610913969
-0.36157730019341,0.909067168606555,-0.207023522688865
0.719868757480189,0.671224838073219,-0.1767659151463
-0.347736389057685,0.129493849146236,0.928606884940239
-0.0187493710151655,-0.0350775051281273,0.999208701783827
0.493705931956134,0.0722788097753222,-0.866620001158979
0.66269554206557,0.399607400509584,-0.633362884912269
0.726722523527084,0.442345070489977,-0.525552292747014
-0.204758276914423,0.57927712222022,0.788994336929801
0.00689261327542409,0.126579963082989,0.991932459811728
-0.356726368706308,-0.827180438448998,0.434187540259892
-0.47359266295775,-0.28482709074729,0.833416773270746
-0.521214825022451,0.685391036010302,0.508501950766701
-0.275855843401269,-0.0631930114627542,0.959119490451342
0.09398986677579,0.119564015843863,0.988367518213118
0.466346836168125,0.370962215725855,0.803061431585246
0.0623189234324981,-0.641370973136701,0.764695773886515
0.0172692025366454,-0.0225997322201761,-0.999595431535841
-0.386933061653629,0.623545150392436,0.67931896132923
-0.163137075059956,0.566970664668863,0.807422169714103
0.0993292176042032,-0.644534864831166,-0.758095320225107
0.286665593978943,0.120044482544749,-0.950479962671104
0.0707596335626779,0.13411262820202,0.988436582292876
-0.463827375613848,0.885831714476767,-0.012897257783015
0.852829222228861,0.311921866898828,-0.41879239088463
-0.859500133373641,-0.251585593716346,0.444931691122454
-0.965394515080914,0.24812164325619,-0.0803061666345376
0.151857805775526,0.630726138963868,0.761001803186283
0.73582574350235,-0.258595602508218,0.62585045303381
-0.0198348660853234,0.0545180036677111,0.998315764356882
0.28461083581548,-0.153264079557224,0.946312207494911
-0.581675520525213,-0.73439685910559,-0.349735388769232
-0.991445037847008,0.0299177290721477,-0.127049857991695
-0.0492695614178428,-0.679885526000934,-0.731661248018594
0.444640211649834,-0.0784567456025451,-0.892266564011814
0.0127324000254656,-0.0173965272959882,-0.999767596408101
-0.0171984195057919,-0.384731945410837,0.922868107882646
-0.156676767551138,-0.814928782479156,-0.557981603636506
-0.399694839057765,0.888201338748911,-0.226588652573842
0.0406560169703534,0.247690687788596,0.967985749619755
-0.108993364569416,0.122635126853424,-0.986448717441248
0.565993057030192,0.101426480232535,-0.818147009101211
-0.489285054208162,-0.835365744407816,-0.250527860323942
0.133417312387217,0.000166388475130276,0.99105993414639
0.0137288164076101,0.2270000275996,0.973797980625256
0.0963708742778746,0.403648151820948,0.909824611737037
0.165049694853754,-0.0736080456290133,0.983534673434221
0.267448700115878,0.769884765003406,-0.579438211910448
0.284337195687501,-0.839133932395426,0.46368804454197
-0.428582501162862,0.168981757375846,-0.887559691159505
0.909817978299262,-0.256972045206276,0.325878220115963
-0.492082441172851,0.314163347681507,-0.811884389591841
0.422939528190122,-0.0717565420247207,-0.903312323712552
0.196288814413039,0.973547107241556,-0.116947557981867
0.705618932943305,-0.0345885370958603,-0.7077468153044
0.697653813407257,-0.102701598651704,-0.709035639635059
0.16149199568471,0.300177934157391,-0.940113579933175
0.000653363814039677,-0.00437947432374878,-0.999990196612134
-0.0553386082981052,0.349974439503299,-0.935123270016301
0.316035545319811,0.268485093417435,0.909965542593257
0.0357714998129129,0.0165234330034925,-0.999223386417128
0.0297740276570812,0.0455151261820939,-0.998519844853222
0.224210497763138,0.585639747188857,0.778945273562513
0.553555317897683,-0.554569900826654,-0.621312107659516
0.347883758003143,0.0137055723317884,0.937437490291843
0.0580957172665848,0.107042235956098,0.992555714988736
-0.215173190949024,-0.808064260224208,-0.548390963861658
0.154407026347864,0.68717174951883,0.709896793116887
-0.13255934473603,-0.989894844149766,0.0503608741868646
-0.480709384674798,-0.503120848312002,0.71818375049801
-0.322505544411402,0.42520902950717,-0.845687563494625
0.643078379214888,-0.157058729690832,0.749521683218208
-0.164434109235155,0.259522634237396,0.951635132831131
-0.142049555354451,0.826970572200564,-0.544005143852403
0.262737193627013,-0.171903692465716,-0.949430506989139
-0.454668385266488,-0.792797548798993,-0.40589248090778
================================================
FILE: data/point_clouds/torus.txt
================================================
-0.714320398612351,-1.90692591611384,-0.267078203651368
0.880281797557814,3.78434362937461,-0.464874124438126
1.04102781021494,1.86999004591599,0.510688226707155
-3.24849890512506,-1.29990313390197,0.866643756410793
1.20992268630091,-1.954033976581,-0.712467990069739
3.85471276354862,-0.858165157455817,0.31502559578928
-2.67730603769453,1.10180477038619,-0.994488919152426
2.67286217475414,2.93308084520864,0.249911934206736
-2.01475714569943,0.394298758383513,0.321168120775367
-1.08819618488046,-2.61058272892002,0.985150276181151
-3.33083144897963,0.00459587748771458,0.943688748702064
-3.15990590148776,0.754342600836267,-0.968581102947494
2.92673516232045,0.0152003315773583,0.997315419428396
1.27616426228537,1.65219842213103,-0.409449735620048
3.45502673855084,1.7700666717259,0.47114771228712
1.86236975240961,0.867113512748675,0.325152963864206
-1.97122483344051,1.32473119871762,-0.780627293773532
1.18824629054217,1.61374920710909,0.0896302160825027
-0.264002411550957,2.30415430226382,0.732496544879508
3.42808039501758,-0.187293979213987,-0.9013011804742
1.96153469538247,2.66867799232569,0.950076321565843
-0.680797403710056,-3.60113300125575,-0.746913927757322
-3.62703428193388,-1.1491813820858,0.59363650991433
-3.94012908379452,0.383180113413902,0.284360276666664
-2.46614583531858,1.61141049408438,0.998537289999598
-0.792090973889088,-2.99832297158664,-0.994867621545582
-3.26366255097835,-1.64421088315301,-0.756115007819308
-1.99935002274715,3.44366126967676,0.188959592802154
-2.3962546726188,0.363604578397617,0.817227027241778
-3.45305318598172,-1.21952747352425,0.749433935645939
-2.36494872141656,0.412230046099487,-0.800455217507419
1.87165737305526,-1.32032323914616,-0.704697638834131
3.25531101005859,0.18860434515836,0.965400940979923
-2.53991912233213,3.08465429722359,0.0917406231940381
-1.38625133386808,-1.45917902118853,0.158766398101815
2.86361966032945,-0.208849156649635,-0.991673894374812
0.358034695792271,3.04143737536772,-0.998048807314788
-1.50896152735125,-1.36567139912116,0.262970492698508
-1.87247964584181,1.26186486518363,-0.670380018907
3.39007730529755,-2.0715802862839,0.231154983343338
-1.91159762453643,1.45295955543435,0.800826270447936
3.49599228865333,-1.40833934677047,0.639245458740745
1.39565396553202,-3.1002518260968,-0.916552913467507
0.0407307687801072,-2.07693908085762,-0.385610713125368
2.06514644404813,2.39210100571433,-0.987081673688259
-2.42108335739267,-0.844729060326557,0.900052045343072
2.89533739724166,2.7483572966331,-0.125860854439473
1.34495023606444,-2.85844551970074,0.987270400928544
-1.54295806449251,-1.48501221868802,-0.512797391312907
3.51106593510202,-0.811834738080467,-0.797210958785934
1.74862922359101,1.54515559110973,-0.745502676291502
-3.80048462218566,-1.16476608090907,-0.222349203914141
-2.73035117221928,-0.376914406922954,-0.969836636477701
-1.60503665801494,-1.54737186357483,0.637394481994473
2.78859471401276,0.31843579386906,0.981143101841957
-1.24219387776124,-3.15464688253358,0.920643436280065
-1.58460888857816,1.50006761073291,-0.575239128363173
1.39404548258418,2.7093363442083,-0.998897534314805
-2.24467362137241,-1.98850123835174,0.999999258919497
0.881128171823169,-3.49560189594454,-0.796268205063082
1.22114919384482,-2.27973558030131,-0.910365111710077
-0.172734833492129,-2.84148637291075,0.988184633074685
-0.674693389446431,-2.79690278184223,-0.992422759399541
3.61306244787288,1.020354967382,-0.656441751536718
2.54267998344273,1.43675190698195,-0.99683701321487
-3.0732696571858,2.51846814911985,0.229240215837385
0.704956003592614,-2.59748523688157,-0.951207487687372
2.90257970882872,-0.825283090354516,-0.999844666149284
1.61457282423149,-2.72311540890554,0.986161701121139
-0.783180108092612,1.84288427675276,-0.0691964707506992
2.37235608137066,-1.10773579645894,-0.924259224397928
1.53495324755595,-2.47366866015383,0.996049976944091
3.07643280241098,2.0500786112494,-0.717143145962894
2.76076016588706,-1.60199953998713,0.981415292623509
0.344978867858927,3.42946941385406,0.894645414112342
-0.604362662079682,2.184188849032,0.679430541731333
2.09177633913309,-1.52508794465896,0.911504721915111
-2.02927909771946,1.33963193673831,-0.822739403632273
-1.98567527200199,1.27545021592236,0.768388944203625
1.87343061856586,1.77566488380986,-0.908090525043219
-1.92861390568702,0.722788606043347,0.340085655584743
0.845911258179781,-3.90650540470946,-0.0768495760629745
-1.85066140524136,2.11269687601331,0.98151912288529
1.91101044451922,1.91882647050695,0.956451679481434
-2.02431231266686,-0.989625614258562,-0.665120685211147
0.510012371186223,3.95242674540308,0.171429838134267
1.8114187550926,0.89339560989046,-0.197766693542283
-1.9903122826019,-0.329778818747259,-0.185988894025097
-0.976365214738251,-2.74562180892795,-0.996300054855345
-0.238561516135115,2.53182856194817,0.889488762034343
-1.60815952744041,1.24536032918154,0.258490088989698
1.72130442385166,-1.5109894843131,-0.704614849085318
-0.678960686465728,-3.43048125798604,0.867735776833309
1.77223868898645,2.73506955582841,0.965862738005154
-0.898693150047734,-3.62395764806304,0.679444238213082
-1.97562680300527,-0.375053417846205,0.147324688728172
-3.80272108859137,-0.932323709155714,0.402673777440839
1.49586134650516,1.33089960863945,-0.066633766729041
-2.20194852434455,0.5207535003085,0.675553469148375
2.12913285906629,-1.65777681886152,-0.953438544032544
-2.95372541937467,-1.78536538861461,0.892331865640778
-1.36993262703229,-3.04461525213824,-0.940922463630955
2.6119067431494,-3.02693591114326,-0.0624314398026808
1.27536768308289,1.5618365787268,-0.180400499284649
-3.21422483499413,1.40840843620268,0.860616946048814
-1.57586782065372,1.25869517837285,-0.182786005983407
3.92765587106748,-0.74716576131132,-0.0617490058091814
3.1386913387238,1.55735573782153,0.86380986050381
2.17317917185308,-2.85978694062725,-0.806078516287854
1.60868111568867,-3.62371726599287,0.263196188528958
-2.26173830408535,1.12557694011027,0.880706701256264
2.70974355237617,-1.88326253488702,-0.95396836325622
3.77159848686435,1.33181491950522,0.0181231422761683
2.15217194080115,2.94781944210051,0.760053287593567
0.907886028757331,1.80097339748782,-0.182905014451699
-2.98596497631699,2.48098938616024,-0.470918720977207
3.3653456048496,-1.21623621703938,0.815769640912101
2.92027296311028,-1.43882152392057,-0.966812249566666
-1.80455339673991,-1.81342659069716,-0.897165704829048
3.81184732768971,-0.234803000248755,-0.57369044336767
-0.574516005623622,-3.51114713033319,-0.829948763798555
0.882669297981541,3.67292748275419,0.628883734651986
1.97057037626744,0.492326008475811,0.247611872237042
1.94041241687864,0.490681673049848,-0.0545993439733837
3.62815895805101,0.521520124423926,0.746442796827643
1.19141490156013,-3.64642918107281,-0.548526989053247
-2.27486722684705,0.0582627299010015,-0.689393767739755
-0.870975864260891,2.45711565553284,0.919502998113626
3.22048509527688,2.30660440520993,0.275481522609446
3.2480483989014,0.290545234873657,0.96533407725901
3.2077919780123,1.75565041782766,-0.754058688522266
-0.880654639478437,-1.79676204768549,-0.0441791246983483
3.98343925985975,-0.347798067631448,-0.0530147017109721
2.28738776588423,-0.416904291575919,0.737882052400129
2.21307914464716,1.34559469817523,-0.912106728949382
-3.22018854221282,-0.663834917791889,0.957660265491301
1.61654960255117,2.69819258778267,0.989374478420674
1.11691159407222,3.42625601198929,0.797204431267907
0.138982236996826,-2.71750967153386,-0.960308924364697
-0.15281203903204,-2.05034787381869,0.330044180870546
-2.5880488784223,2.7396968831178,-0.639476126769505
-0.994773995117528,1.94499075218273,-0.578926052809871
1.00091490386897,2.11833450719408,-0.753801801091053
-1.979942235672,-0.416815669394681,0.214793190821556
-1.51995641074011,-1.93921204579373,-0.844155466799302
-1.56643929258676,1.90806727465411,0.847180334382917
3.94524842347091,-0.641029659771889,-0.0775703161356899
-2.05045765971493,0.296409467723431,-0.372009372222866
1.91973163138648,0.713565160509433,0.306280782318074
3.34342688871568,-2.14009448410198,0.244303976844247
-2.8116837003415,0.114480657247195,0.982552268625157
2.03498377192774,1.44809881445098,-0.864651998213382
3.65744234206195,1.57484953246211,-0.188415823174873
3.34794527696835,1.2036157129037,0.83002379671184
1.51877358954659,-2.33374517023824,0.976487965904838
0.888647841517423,1.81225076047209,0.190960561650766
0.294158363243207,2.14404466483541,0.548926748034314
0.158785440356444,-2.05854941606409,0.3537612995639
-0.340162712092064,-1.97121929907986,-0.0266065760418155
-2.06663926075979,0.044441462735491,-0.360179666649703
-1.23803617999514,1.79412301024198,0.572104151036735
-1.98916538940685,-0.351371167218055,-0.198803134160616
2.74028022503697,0.53527221297064,0.97814360104035
1.83806377891691,1.04049584603987,0.460102138018499
-2.54939351674912,-0.118947069004261,0.894117153111335
2.30262642501755,-2.77329013841926,-0.796520245484253
2.15079516941331,-0.706472676833139,-0.676820027868247
3.15683362475018,0.140123465520194,0.987126421997771
-1.65163153688707,-1.48529537758651,0.627344877253573
-0.810886446118408,3.70446650449979,-0.610290976414269
2.64964602622044,2.32993073202612,0.849031289392961
-3.90463091308345,-0.620109375899632,-0.301186502510516
1.78674991016748,3.20441160034856,-0.743364449639186
-0.763871453153186,1.87154022972919,0.205894667876839
-3.42954834972779,0.177619781136491,0.900843089612039
-1.22126745102243,-1.61994203696612,0.237940968474628
-3.05134414038971,-1.53419267434623,-0.909672872314237
-1.73371866866574,1.12323389147044,0.356689597781806
0.716890930507223,1.95500332206228,-0.397272604771448
-0.673141082397904,2.08221869339899,0.584105284316401
-0.882406559420473,2.3890642425343,0.89141675256761
-1.19628528904322,3.65345390075763,-0.535833619789951
-1.46040623423508,3.43135965826631,-0.684288800753094
1.47681757717276,2.12533843664316,-0.911210890653397
3.27441962472972,-0.100070543522959,-0.961172447787327
1.41615956414078,-2.05072858485597,-0.861467280220919
1.80662271957664,1.12433686966506,0.489353084570643
2.99219785952063,-2.30571642472757,0.628871481171234
1.60387273506073,3.04596997093306,-0.896801858433794
2.54587923032708,1.87946967738563,-0.986381112455289
-2.26646292474878,2.4552508306654,-0.939909576284463
1.48620551792787,-1.37221867327829,-0.212401746771662
-0.378971598963202,2.00451240918219,0.280075174684415
2.62244661666601,3.01665327927031,-0.0750879915907508
-1.19247944703426,-3.11404331001422,0.942375378869094
-2.0083818072434,-0.416082178074434,0.315364744352137
-1.9004205664066,-1.13710765120878,-0.619034102311288
0.121489655611034,2.21525186304812,-0.624006377259046
2.07074228968162,-0.781655519445505,-0.617410935722934
1.86326783912881,0.839296946552966,0.291968195688999
-0.125159400819068,2.73971558078145,0.966297733376121
1.28616058229845,2.55241279913221,0.989888132003229
2.85186878413326,-1.97875748876273,0.882071996614857
-2.1840717588845,1.67894402150144,-0.969477080806596
0.526790969659728,-3.96375675082422,-0.0527207084811376
-0.752122926842743,2.46384783522958,-0.905703897001504
3.22707705441682,1.58776409576928,-0.802591492525115
-0.886521436850406,2.19182304782198,-0.771952585794445
-0.850916062216981,2.24608164609563,-0.80139309506497
1.9599600981033,-0.436349089360323,0.125806862104109
0.143432952029717,-1.99799607142996,-0.0791573576947982
-1.95984073562466,-3.47602466214732,-0.137843626105098
2.03981168644652,0.503487665115967,0.438012394519451
-2.65426974933155,0.0722691824937081,-0.938695795881477
-2.2414793646226,0.437827786913691,-0.697935637659006
1.24117163497356,3.69451598478674,-0.441158243776929
-2.11395941897502,0.602255627196146,-0.597425500224166
-3.88773153456955,0.22981059148896,0.447032203564223
-1.73315822471499,-1.00352061714323,-0.0737185553420282
1.46838349116033,-2.28633053252358,-0.959194171787188
2.98263745691891,-2.01383053038907,-0.800869699321626
2.89557478511477,-0.58843816515525,-0.99897619421275
1.06657734872892,1.91739722028324,0.592028267612026
1.9915612675626,-1.8601574569007,0.961490239582856
-1.39240243888057,-3.50180422099219,0.639877656780817
3.59628122174913,0.324476332737725,0.791715812804296
-3.53879553792849,1.01226995756173,0.732535550555928
0.575886735738642,-2.2855391862704,-0.765845854898395
-0.24271459661309,3.48538868139012,0.869558748072862
0.402059796109522,-2.89240232300575,0.996811926014314
0.452665298920687,2.04923631056222,0.433063406427209
-2.93926411681073,2.16504944962124,-0.759440271012922
1.66928570082294,-2.42900826023443,-0.998610555912656
0.873862888983233,1.91642894819756,0.448587745813449
-3.10137749594587,0.713264912114097,0.98323549981779
1.39158354130691,3.12284361399327,-0.908047229780306
2.96702894505444,-2.39144744484205,-0.585307845932848
-0.849996861066033,2.39441267781502,-0.888337192657974
2.5656897206668,-2.40327610338469,-0.856910153887797
3.98387009727179,0.290859271736434,0.104986084594907
1.94022583659458,-0.529937890748119,-0.149879427053502
-0.652002424931243,-3.0431564731331,-0.993683473922688
3.97450106976585,-0.363876801944451,-0.132945977053829
-2.40016481561417,-1.06771410337883,0.927806514179979
2.12400024740336,-0.213700641983631,-0.501295141883824
1.61720893587035,-2.26873685106966,0.976862573653806
1.43855171506103,2.04110176117294,0.864346817991303
-0.347882668065436,-2.30474664523809,-0.743130787018475
3.03312786606892,-0.43888978623968,-0.997903672375956
1.55318425845068,-1.73091353393152,-0.738371624615
-1.64487091538682,-1.15506232605014,-0.14048882675474
-0.295197600637849,3.41168159143174,0.90546129499725
0.613151449298925,-3.6726329741562,0.690361615394036
1.24303628788496,1.70949098456505,0.463007842379536
-1.92734113686103,0.603416911106011,0.19698245000706
-2.3635972695005,0.532921490707156,-0.816695794701051
-2.60056039616045,-1.11213812823468,0.98516421338084
-1.15746403096981,1.98465662841937,0.711700641427774
-2.29131806227349,0.394871478957436,-0.737903682266451
1.5753101943983,1.25510954642691,0.167778669397398
1.32848419125813,-3.45968781883132,-0.708228771967407
2.23656011798061,0.823448791024589,0.787222948011727
3.25831086262739,-0.528608201886878,-0.953652089420914
-0.839375316949776,2.88600509376057,-0.999984371107339
-1.98320474944697,3.14373320810026,-0.697063403648011
-1.70681623926324,3.39898208154652,-0.595359999973826
-1.67023185260635,-1.49754426235285,0.653741213483541
-1.11285997746734,-1.81494807405188,0.491221735824854
0.342337763515438,-2.50466022184833,0.881570375402595
-0.18049662538014,3.99515277811023,-0.039285684170402
0.178352130393365,-3.62462167902644,-0.777399636777745
-3.86927750198048,1.01254321652087,0.0293568137386468
-1.43895986930885,-3.07199770207164,0.919832544383111
0.218640143910198,2.99563209972733,0.999993518642863
1.08747055715401,-1.68793475994643,-0.125554975674212
-3.92374615907164,-0.621540172932211,0.232197589649773
2.46018516051129,3.05631223033271,0.383689461927854
2.39784947233894,1.66830700343181,0.996883959911963
1.6882260110855,-1.51799968340075,-0.683806924183867
-1.7152258021874,-1.30521463210046,-0.535337677026695
-3.02629399990599,-2.52056759770178,-0.345301960621233
-0.703555435283641,-3.93746419107644,-0.0186105043511363
-2.64334795948186,-0.35521342215911,0.942964955427318
2.49784698105039,-0.158945543782804,0.867692664790819
0.204866910748694,2.02331394263177,0.257265364312437
-0.36958886111734,1.9664040790799,0.0408585151438834
0.115684088576823,2.11508260996212,0.471705623095396
-0.731627650689339,3.88111999341168,0.313835532658015
-2.39027247160738,-3.17175288177496,0.236726350208319
2.66644145182402,-1.30303365352127,-0.999481282045336
-1.88627201520659,2.68352394121846,0.959958958133407
-1.08341676445684,-2.93146757937041,-0.992123061604357
1.98536493005221,-0.259697195800157,-0.0674572952138999
-2.17606181909418,-0.0588929951722134,-0.567836471771887
-1.44266085758462,1.83389553675679,0.745355752020073
2.00703121845621,1.1535987213864,-0.72849012497236
-0.714372468650034,1.92393404704374,-0.319100980978719
1.07056505676095,2.08758911502946,-0.756572264156863
-2.45996592433974,0.721536339862404,0.899752962678021
1.92728187981412,-0.914473029807523,0.498710596731235
================================================
FILE: doc_includes/overview.htm
================================================
Plex in Java
================================================
FILE: doc_includes/overview_plex3.htm
================================================
Plex in Java
1. Introduction
2. Installing Plex in Matlab
3. Installing Plex in R
4. Running Plex standalone
5. Using Plex
6. Extending Plex
7. Plex Design considerations
7.1 Basic Data Types
7.2 Design Considerations
7.3 Design Choices
7.4 Algorithms
1. Introduction
Plex is a set of library routines for computing persistent homology on
finite simplicial complexes generated from metric space data. The original
version of Plex was a collection of matlab scripts. The current version,
version 3, is a rewrite in Java improve performance and portability. It is
less than .5 M, is as portable as Java itself, includes a simple
self-contained GUI (provided by
adapting Beanshell), and can easily
be "installed" to work with Matlab.
It is important to note that this Java code was written using features from
Java 5.0 (also known as 1.5, I guess to confuse people), so you should have a
Java runtime that is of sufficiently recent vintage. You can find out if there
is a Java launcher (or Java interpreter, if you prefer) readily available on a
Linux box by invoking
% which java
at the command shell. And if you
know where your Java launcher is, you can check on the version of Java that is
available from the command line by invoking
% java -version
Java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_08-b03, mixed mode)
You can check the Java VM being used by matlab by executing, in the matlab
command window,
>> version -java
ans =
Java 1.5.0_04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
Anything with a version number greater than 1.5 should be fine.
At the moment most people use the library in matlab, but we are working on
a port to the R environment, and
that will be documented here when done. It is also possible to execute Plex
directly with the Java launcher (formerly known as the Java interpreter),
and we will explain how to do that below, too.
2. Installing Plex in Matlab
To install Plex in matlab, you make sure that the plex.jar you
downloaded is in a convenient place, and then add it to the Java class path
in matlab. You should also import the package to save yourself some
typing. Specifically, suppose that the path to your home directory name is
/my/path/mydir (if your login is bob, then your
home directory path might be something like /home/bob). The
precise installation steps are to download plex.jar to the
director /my/path/mydir, and add the following lines to your
matlab startup.m file:
javaaddpath('/my/path/mydir/plex.jar');
import edu.stanford.math.plex.*;
NOTE:
You may need to increase the maximum Java heap size at some point, and if you
do, you should create a file named java.opts and in your MATLAB
startup directory -- that is, the same directory that contains the
startup.m file. In this file, include a line specifying a value
for the -Xmx which sets the maximum heap size allowed for the Java
VM. (It doesn't force the heap to grow this large, it simply sets the limit on
how large the heap is allowed to grow.) For example, to increase the JVM memory
allocation limit to 128 megabytes, put the line
-Xmx128m
in your java.opts file.
The matlab documentation discourages you from setting the the -Xmx
option to more than 66% of the physical RAM on your machine, but
if the reason that you are running matlab is to run plex, then you should set
the max memory size as large as you need it to be. Using a 64-bit
Java 1.5 VM, I can grow the heap to at least 5 gigabytes, and what I have in my
java.opt file in that case is -Xmx16000m, and on
a version 1.6 Java VM with -d64, the heap size can be huge;
for this VM I use the settings -d64 -Xmx200000M -Xms4000M,
since I have 16G of memory on my machine. Setting the max heap size to be
either absurdly large, or larger than it will actually grow on in practice,
means that I know that it if I run out of memory, it's because I really
can't get any more.
The, after restarting matlab, you should be able to do execute the following in
the matlab command window:
>> Simplex.makePoint(1, 2)
ans =
<(2) 1>
At that point, you are ready to use the code. Until we get a more formal system
in place, I will keep the latest stable version of plex.jar on my
home directory.
NOTE: At the moment I'm not sure
whether or not there is anything special that you need to do to get the Java VM
in matlab to use the JIT (Just In Time compiler) on the Plex code. Having the
bytecodes processed by the JIT will make a significant difference in the
performance of the routines.
3. Installing Plex in R
Not yet supported.
4. Running Plex standalone
Naturally you must have a Java VM (aka JVM) installed in order to run
it. However, since JVM's exist for most hardware platforms, and are commonly
used by web browsers, it is very unlikely that you don't have one installed
already. If you don't, though you can get the latest Sun release
here.
We provide a simple "top-level-loop" for standalone use. You can execute
this by running java -cp plex.jar JPlex in a command window,
shell, etc. (Your Java VM installation will have to include the Swing classes, but this
is standard, so there should be no problem.)
There are a number keyword arguments to Java that you may want to
employ, and if you are planning run larger examples you should read the
documentation
for the Java interpreter on -Xmx, -Xms,
-d64 and -Xbatch. Again, recall that Plex only
works in Java 5.0 or later.
You can put the plex.jar file anywhere, but making a copy in
your home directory or in some subdirectory thereof, seems prudent, and the
file is small enough that this should be no problem. At the same time, you
should make a subdirectory of your home directory named plex,
and create an empty file in your home directory named .bshrc.
The GUI window that comes up is a slightly modified version
of Beanshell. The most visible difference
between the Matlab and standalone interpreters is that Beanshell wraps "<>"
around the results that it prints, so that the number 187
would print as <187> in standalone Plex.
When starting up, Beanshell loads the file .bshrc from your
home directory, if there is such a file. You can put various
initializations in that file, such as commands to change the default
actions for input logging, which is the only non-trivial change we made to
Beanshell. (The trivial changes, which the author, Pat Niemeyer, kindly
allowed us to make, were to put the Beanshell jar contents in with the plex
library, and to change some banners and menu options.)
The initial window contains a single "workspace", with an interpreter that you
can type to; the prompt is plex>. If you wish Plex to record the
input you type to a given workspace, you can enable input logging for that
workspace by left-clicking the File menu for the workspace and selecting
Enable logging. You can also arrange for input logging to be on by
default by adding the line setLogging(true); to your
.bshrc file.
You can also turn logging on or off within a workspace by
typing log(true); or log(false); to the
window. The log files are, by default, written to the
subdirectory plex of your home directory, but you can change
that. However, logging will fail if you don't have a plex
subdirectory in your home directory and you left the defaults as is. You
can arrange for input logging to go to a different directory,
say /Users/myhome/whereIwantlogfiles by default by adding the
line setLogging("/Users/myhome/whereIwantlogfiles"); to
your .bshrc file. Resetting the default log directory doesn't
affect the default flag setting, so if you also want logging on by default,
you have to set that, too. Finally, you can change the path of a logfile
for a specific workspace by invoking the
command log("/my/current/log"); in the workspace window.
The default name of a logfile is the first unused name of the
form log_xy.txt, where x and y are
decimal digits. In other words, the first logfile that gets created
is log_00.txt. If you leave more than 100 logfiles in your log
directory, the names get created using a Java library routine for making
temporary files, and the names become more complicated, but still begin
with log and end with .txt.
Finally, you can determine the current status of input logging by selecting the
Logging status item in the File menu, or by by invoking the
command log(); in the workspace window. In either case a message
is printed describing the status for both input logging in the current
workspace and the default values for all workspaces. (Specifically,
log(); returns a status string, and since return values are
printed by default, this String gets printed, unless you disable printing of
return values. The Logging status menu item actually inserts the string
in the Workspace window, so this works even when return value printing is
disabled.)
5. Using Plex
Currently Plex supports building simplicial streams, which is the name given
to simplicial complexes sorted by filtration index and dimension. All such
streams are subclasses of the abstract class SimplexStream. Plex
also provides a class called Persistence which has methods for
computing the persistence intervals for a SimplexStream. Because
the matlab command window doesn't allow the use of the Java new
operator, there are static methods in the Plex class for the
creation of most of the higher level Plex classes. Here is a the result of a
toy session in matlab using the Plex code:
>> p = Plex.Persistence()
p =
edu.stanford.math.plex.Persistence@11eea7f0
>> tor = Plex.Torus(20, 2)
tor =
edu.stanford.math.plex.Torus@1ae2b9e5
>> rc = Plex.RipsStream(0.053096, 0.530956, 3, tor)
rc =
edu.stanford.math.plex.RipsStream@675ee9e3
>> rc.size()
ans =
4000
>> res = Plex.FilterInfinite(p.computeIntervals(rc))
res =
BN{1, 2, 1}
At least the results are correct, but more exposition here wouldn't hurt.
6. Extending Plex
The obvious way to extend Plex is to write some more Java code and add that
code to the classpath. You should look at the Matlab or Beanshell
documentation to see how to do this. It can be done either at startup or
dynamically, and is quite easy in either case.
7. Plex Design considerations
Plex is a library designed to compute persistent homology over finite fields
for finite metric spaces. The code centers around a clever, but fairly obscure,
algorithm for computing what are called "persistence intervals". The algorithm
(in this section an unspecified "algorithm" means this particular one) is
intimately connected with the structure of finitely generated modules over a
principal ideal domain (aka PID) and something called Smith normal form for
matrices over PID's. The persistence algorithm (as it is called) is complex and
subtle enough that it couldn't be readily replaced, and since it is
surprisingly efficient both in space and time, it seems very unlikely to be
supplanted. (The algorithm and the associated mathematics is described in some
detail in: A. Zomorodian and G. Carlsson, "Computing persistent homology,"
Discrete and Computational Geometry, 33 (2), pp. 247-274.
Rather than repeat the information in the paper above, the contents of the
paper will be assumed, and the persistent algorithm will be presented as
described. That is, no attempt will be made here to prove that the algorithm
works, although we will give a few alternative descriptions of elements of the
algorithm to provide some intuition. While it might not be obvious that this is
the case, the computation of the persistent homology over a finite field is
equivalent to reducing the various boundary matrices to Smith normal form, and
in turn, because of the specific structure of the boundary matrices, it is
enough to use column operations on these matrices to reduce them to column
echelon form, provided we have properly ordered the rows and columns of the
matrix before starting -- specifically, to have the rows and columns of the
matrix be in increasing persistence order (e.g., to have all simplices of a
given degree appear in an order so that the filtration indices are
non-decreasing.
Another critical point in the matrix reduction, and one which allows for a very
efficient representation of the columns of the matrix, is that the polynomials
in the boundary matrix are, in fact, monomials, and the degree of the ij-th
entry is the difference between filtration_index(simplex(j)) and
filtration_index(simplex(i)), and this property is preserved by the row and
column operations used in reducing to Smith normal form (and hence by the
subset of operations used to reduce to column echelon form). This means that
columns in the matrix may be stored as an array of field elements, and in fact,
by an array of type char if we desired (as long as the base field
is Zp for some p smaller than 256. The
last important "theoretical optimization" used in the algorithm is that it is
possible to ignore all of the rows in the boundary matrix of dimension
d that correspond to pivot columns in dimension
d-1. (This last point is Lemma 4.2 in the paper
referred to above.
It is critical in making a scalable version of this algorithm is the
realization that the boundary matrix is quite sparse, which means that we
certainly want to represent the columns of the boundary matrix from dimension
d to d-1 as something other than an array whose
length is equal to number of simplices of dimension d-1.
7.1 Basic Data Types
The most basic of the data types is the Simplex. In Plex these are
a (smallish) subset of some set of points (aka vertices), and for
convenience we always take these points to be integers in the range from
1 to N, inclusive (for N the cardinality
of the finite set -- for small finite metric spaces, the indices can range over
all the points, for larger sets, they range over a particular subset known as
landmarks.). In addition to being able to get the vertices for a
simplex, we must also be able to compute its boundary. This immediately leads
us to a basic design question: Do we want to have simplices be unique, or will
we allow multiple instances of Simplex with the same vertex set to be
equivalent? There is an additional attribute for simplices, which is the
filtration index or findex. Intuitively this index corresponds
to an index into an array of increasing "times of creation", but the only
essential point is that the findex of a simplex is at least as
large as the findex of each of its faces. There is an obvious
ordering on simplices, given by ordering first on the dimension, next on the
findex, and finally lexicographically on the indices. This
ordering is something that will be used fairly often, so it should be fast.
Another type we require in the Chain. As we mentioned above, all
of the column operations on the boundary matrices can be computed in terms of
simplicial chains, and the sparsity of the boundary matrix suggests that these
chains should be implemented as an association between simplices and
coefficients, rather than as an array where the i-th entry is the
coefficient of the i-th simplex (for some enumeration of
simplices). Since we expect to have lots of simplices and for most chains to
have comparatively few non-zero entries, having a pair of arrays of equal
length , one for coefficients and and one for simplices, seems to be about as
simple as is possible. If we arrange the entries in the chain so that the
simplex vector is sorted, then chain operations become linear in the size of
the chains, which is as fast as they can be.
The final basic data structure we call a SimplexStream. There is
some flexibility in the order in which the persistence algorithm needs to
process the elements of a given simplicial complex. Any ordering must process
all of the faces of a simplex before the simplex itself, and within a given
dimension, the order must be non-decreasing for findex values. The
order that we choose in our implementation is to sort simplices first by
findex, and then by dimension. (It might seem odd that a matrix
column reduction can process all of the dimensions at once, but the reason this
is possible is that ONLY column operations are done, no simplex is ever
processed until all of its faces have been processed, and the algorithm only
does reductions using columns of a given dimension. In other words, we could
sort the simplices lexicographically first by dimension and then by
findex and the algorithm would do the same calculations in an
equivalent order.)
Any instance of SimplexStream must return the simplices in some
order compatible with this requirement. For each of the general mechanisms I
came up with, I was able to prove that it was not possible to make a mechanism
to generate the simplices in a suitable order without generating at least all
of the elements of a given dimension. (The proofs were pretty simple, but I
don't recall any details, since once I failed a few times I just expunged the
entire idea.) So any Plex implementation of SimplexStream
generates all of the simplices of the complex and stores them. There also turn
out to be other reasons why having all of the simplices present during the
persistence calculation is necessary, so there is probably no real benefit to
being able to generate them one at a time, even if it were possible.
7.2 Design Considerations
For the types of simplicial complexes that we study with Plex, the number of
simplices grows geometrically with N. Therefore, even for large
metric spaces, we can't construct simplicial complexes where the index set is
large. This offers one opportunity for compression -- restrict N
to a size that limits the number of bits required to represent it, and for
large metric spaces, use a "landmark array" of size N of indices
to make the smaller, contiguous "vertex indices" into points in the metric
space.
The boundary operation on simplices is the first set in the basic
algorithm, and deciding how to handle this is probably the key design decision
for the implementation. The options are whether the boundary value is
built-in (or at least cached), or not. By built-in we mean that there is
a slot in the simplex that points to a chain or array of faces (or something
analogous). The advantage of this is that the boundary operation is fast, and
the disadvantage is that construction of simplices is more complicated, and the
simplices themselves are larger and more intertwined (the latter makes it much
more difficult for the garbage collector to reclaim storage, and the former
means that it is even more critical that this happen). The key question here
seems to be whether or not it is better to have a unique simplex for a given
vertex set (aka "interned" simplices), or whether simplices should be given "by
value" (that is, two distinct instances of Simplex are interchangeable if they
were created using the same vertex set). The best answer is matter of code
simplicity and performance. Since it will surely be simpler to use by-value
simplices, if it is much faster to construct the simplicial complex this way,
and this doesn't hurt the performance of the persistence algorithm, then we
should use them.
Affiliated issue are the matters of the findex, and what is called
in the paper the "mark" and entries in T[]. If simplices are
by-value, then having a slot holding the filtration index seems less
problematic, at least if complex (i.e., SimplexStream) construction is very
fast. The reason is that we can simply dispose of the entire stream and start
over again (the GC will have little trouble reclaiming the space --
accidentally holding on to a Simplex instance prevents reclaiming only a few
bytes).
Since T[] is indexed by the simplices, what this really implies is
a mapping between simplices and the chains that are their reduced columns in
the boundary matrix. If the simplices in the chain returned by the "remove
pivot rows" subroutine are actually the same instances as will be found in the
non-empty boundary chains after the removal of unmarked terms in subsequent
calls to removePivotRows(), then we can simply store the T[] chain
for the simplex in the simplex itself. This means that having interned
simplices, at least for the duration of the algorithm, can speed up access to
the chains in T[]. However, since not all simplices have
T[] entries, this can consume more space. For data sets that I've
looked at, which may be far from representative, it appears that having
T[] be separate from the simplices doesn't save large percentage
of the space.
Finally, if the simplices are by-value, it seems impossible to avoid having
(for instance) a separate hashtable in which to store the values of marked
simplices, since there are no "details" about the faces of a simplex stored
with the simplex. If the simplices are interned, however, it seems most
efficient to have a flag in the object to indicate whether or not it is marked.
(If we have a separate T[], the flag can be in the entries for
that.)
7.3 Design Choices
In the end the choice was made to have simplices be by-value. Since we aren't
interested in very large dimensional cases, we have specific implementations
for Simplex for dimensions 0-7. (If we need still higher
dimensions implementing them in the same manner is trivial.) All concrete
implementations of Simplex pack integer values in one or more long integer
slots. At one time we used 16-bit values, but we discovered enough
cases where we needed on the order of a million points, and most of the large
calculations use very low dimensional homology, so it seemed best and simplest
to increase the size of spaces to the limit of positive int in
Java, which is 16 bits. Since the values are stored in
increasing order, the patterns are unique, so equality testing, comparison, and
computing the dimension and vertex set are all very fast. (We make the base
class, Simplex, be abstract, and the all of the implementation
classes are final subclasses of this base class, which speeds up
method invocations on code written against instances of the base class.) The
base class includes slots for findex and the T[]
chain values (we'll explain below why this works). Because the dimensions are
small and have fixed limits, we also have open-coded versions of the
boundary() method, where this method returns an array
[face0,face1,...], rather than the usual chain.
Also, the implementations that we provide for SimplexStream all
store the simplices in an array of stacks indexed by dimension and filtration
index, which means that the construction methods that are implemented take a
the maximum dimension argument, and must somehow determine a bound on the
possible values of findex. These choices allow things to scale
enough that constructing Rips stream objects with tens of millions of simplices
is quite fast (e.g, 36M simplices, took 13.17 seconds on my machine).
7.4 Algorithms
The reason that we can have simplices by by-value when being constructed, but
be unique during critical parts of the algorithm is that we use a specially
designed hashtable, an instance of SimplexTable, to store
simplices that are "marked" by the algorithm. The average number of probes to
insert or find a simplex is less than 1.5 (reprobes just go to the
next index in the array), and the hashing algorithm only uses the values of the
long slots that encode the vertices, so this step is quite
fast. Since we store a simplex in the table to mark it, and we have check every
entry in the boundary() array and delete those that are unmarked,
what we actually do is this:
Simplex[] b = sigma.boundary();
if (b == null)
return null;
for (int i = 0; i < b.length; i++)
// If the entry isn't marked, we clear it, and if the entry is
// marked, we replace it with the Simplex that came from the
// stream, which has the findex properly set. This means that
// we don't have to recompute or find the filtration indices
// for the faces, and all of the simplices created by the
// boundary() method die immediately.
b[i] = marked.get(b[i]);
Chain d = Chain.fromBoundaryChain.fromBoundary(b,p);
As the comment points out, we get to have our cake and eat it, too. The step
of running the simplices through the marked table allows them to
be interned for purposes of the algorithm, so we automatically get to retain
any state that was stored in them earlier, and can use the simplices as
repositories for any per-simplex state needed by the algorithm. Notice also
that all of the new objects allocated during the removePivotRows()
call are dead almost immediately, which allows for very efficient reclamation
of that memory. In fact, the only objects that don't survive the call to
removePivotRows() are the chains that "get stored in
T[]", and which live for the duration of the algorithm.
================================================
FILE: doc_includes/update_mime_types.sh
================================================
#!/bin/sh
svn propset svn:mime-type text/html -R *.html
svn propset svn:mime-type text/html -R */*.html
svn propset svn:mime-type text/html -R */*/*.html
svn propset svn:mime-type text/html -R */*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*.html
svn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*/*.html
================================================
FILE: reports/javaplex_tutorial/cleanup.sh
================================================
#!/bin/bash
rm javaplex_tutorial.aux
rm javaplex_tutorial.blg
rm javaplex_tutorial.log
rm javaplex_tutorial.out
rm javaplex_tutorial.bbl
rm javaplex_tutorial.toc
rm javaplex_tutorial.pdf
================================================
FILE: reports/javaplex_tutorial/javaplex_tutorial.aux
================================================
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{Javaplex}
\@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction}}{2}{section.1}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.1}{Javaplex}}{2}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.2}{License}}{2}{subsection.1.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.3}{Installation for Matlab}}{2}{subsection.1.3}}
\citation{Armstrong}
\citation{ComputationalTopology}
\citation{TopologicalPersistence}
\citation{Hatcher}
\citation{ComputingPersistent}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.4}{Accompanying files}}{3}{subsection.1.4}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Math review}}{3}{section.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.1}{Simplicial complexes}}{3}{subsection.2.1}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.2}{Homology}}{3}{subsection.2.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.3}{Filtered simplicial complexes}}{3}{subsection.2.3}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.4}{Persistent homology}}{3}{subsection.2.4}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Explicit simplex streams}}{4}{section.3}}
\newlabel{S:explicitStream}{{3}{4}{Explicit simplex streams}{section.3}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.1}{Computing homology}}{4}{subsection.3.1}}
\citation{Hatcher}
\newlabel{S:computingPersistentHomology}{{3.2}{6}{Computing persistent homology}{subsection.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.2}{Computing persistent homology}}{6}{subsection.3.2}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Point cloud data}}{10}{section.4}}
\newlabel{SS:euclidean-metric}{{4.1}{10}{Euclidean metric spaces}{subsection.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.1}{Euclidean metric spaces}}{10}{subsection.4.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The house point cloud}}{10}{figure.1}}
\newlabel{fig:housePointCloud}{{1}{10}{The house point cloud}{figure.1}{}}
\newlabel{SS:explicit-metric}{{4.2}{11}{Explicit metric spaces}{subsection.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.2}{Explicit metric spaces}}{11}{subsection.4.2}}
\newlabel{Ex:flatTorus}{{5}{12}{}{exercise.5}{}}
\newlabel{Ex:flatKlein}{{6}{12}{}{exercise.6}{}}
\newlabel{Ex:quotProjPlane}{{7}{12}{}{exercise.7}{}}
\citation{WitnessComplexes}
\@writefile{toc}{\contentsline {section}{\tocsection {}{5}{Streams from point cloud data}}{13}{section.5}}
\newlabel{S:sfpc}{{5}{13}{Streams from point cloud data}{section.5}{}}
\newlabel{SS:VietorisRips}{{5.1}{13}{Vietoris--Rips streams}{subsection.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.1}{Vietoris--Rips streams}}{13}{subsection.5.1}}
\citation{Range}
\citation{KleinBottle}
\newlabel{SS:landmarks}{{5.2}{17}{Landmark selection}{subsection.5.2}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.2}{Landmark selection}}{17}{subsection.5.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.3}{Witness streams}}{19}{subsection.5.3}}
\newlabel{Ex:witnessHouse}{{17}{20}{}{exercise.17}{}}
\citation{WitnessComplexes}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{5.4}{Lazy witness streams}}{21}{subsection.5.4}}
\citation{Range}
\citation{Mumford}
\citation{Range}
\citation{Range}
\newlabel{Ex:flatTorusLazy}{{21}{23}{}{exercise.21}{}}
\newlabel{Ex:flatKleinLazy}{{22}{23}{}{exercise.22}{}}
\newlabel{Ex:quotProjPlaneLazy}{{23}{23}{}{exercise.23}{}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{6}{Examples with real data}}{23}{section.6}}
\newlabel{S:real}{{6}{23}{Examples with real data}{section.6}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.1}{Range image patches}}{23}{subsection.6.1}}
\citation{Range,Mumford}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Betti intervals for the lazy witness complex built from $X^5(300,30)$}}{25}{figure.2}}
\newlabel{fig:rangeBetti}{{2}{25}{Betti intervals for the lazy witness complex built from $X^5(300,30)$}{figure.2}{}}
\citation{adams2015nudged}
\citation{VanHaterenVanDerSchaaf}
\citation{Mumford}
\citation{KleinBottle}
\citation{KleinBottle}
\citation{KleinBottle}
\citation{KleinBottle}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X^5(300,30)$}}}{26}{subfigure.3.2}}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Range primary circle}}}{26}{subfigure.3.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.2}{Optical image patches}}{26}{subsection.6.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{28}{figure.3}}
\newlabel{fig:rangeBetti}{{3}{28}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.3}{}}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X(300,30)$}}}{29}{subfigure.4.2}}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Optical primary circle}}}{29}{subfigure.4.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Betti intervals for the lazy witness complex built from $X(15,30)$}}{30}{figure.4}}
\newlabel{fig:rangeBetti}{{4}{30}{Betti intervals for the lazy witness complex built from $X(15,30)$}{figure.4}{}}
\citation{brown2008algorithmic}
\citation{martin2010topology}
\citation{martin2011non}
\citation{martin2011non}
\citation{zomorodian2012advances}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Projection of $X(15,30)$}}}{31}{subfigure.5.2}}
\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Three circle model}}}{31}{subfigure.5.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.3}{Cyclo-octane molecule conformations}}{31}{subsection.6.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white).}}{32}{figure.5}}
\newlabel{fig:cyclo}{{5}{32}{The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white)}{figure.5}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{33}{figure.6}}
\newlabel{fig:rangeBetti}{{6}{33}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.6}{}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{7}{Remarks}}{33}{section.7}}
\newlabel{SS:java-heap-size}{{7.1}{33}{Java heap size}{subsection.7.1}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.1}{Java heap size}}{33}{subsection.7.1}}
\citation{brown2008algorithmic}
\citation{martin2010topology}
\citation{martin2011non}
\newlabel{SS:matlabFunctions}{{7.2}{34}{Matlab functions with Javaplex commands}{subsection.7.2}{}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.2}{Matlab functions with Javaplex commands}}{34}{subsection.7.2}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.3}{Displaying the simplices in a stream}}{34}{subsection.7.3}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.4}{Displaying the boundary matrix of a homology computation}}{34}{subsection.7.4}}
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{7.5}{Computing the bottleneck distance}}{34}{subsection.7.5}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{8}{Acknowledgements}}{34}{section.8}}
\@writefile{toc}{\contentsline {section}{Appendices}{34}{section*.2}}
\@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{A}{Dense core subsets}}{34}{appendix.A}}
\newlabel{A:core}{{A}{34}{Dense core subsets}{appendix.A}{}}
\citation{KleinBottle}
\citation{WitnessComplexes}
\citation{Hatcher}
\@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{B}{Exercise solutions}}{36}{appendix.B}}
\newlabel{A:solutions}{{B}{36}{Exercise solutions}{appendix.B}{}}
\citation{ChazalDeSilvaOudot2013}
\citation{Adamaszek2013,AAFPP-J,AA-VRS1,AAM}
\bibstyle{abbrvnat}
\bibdata{javaplex_tutorial}
\bibcite{Adamaszek2013}{{1}{2013}{{Adamaszek}}{{}}}
\bibcite{AA-VRS1}{{2}{2017}{{Adamaszek and Adams}}{{}}}
\bibcite{AAFPP-J}{{3}{2016}{{Adamaszek et~al.}}{{Adamaszek, Adams, Frick, Peterson, and Previte-Johnson}}}
\bibcite{AAM}{{4}{2017}{{Adamaszek et~al.}}{{Adamaszek, Adams, and Motta}}}
\bibcite{Range}{{5}{2009}{{Adams and Carlsson}}{{}}}
\bibcite{adams2015nudged}{{6}{2015}{{Adams et~al.}}{{Adams, Atanasov, and Carlsson}}}
\bibcite{Armstrong}{{7}{1983}{{Armstrong}}{{}}}
\bibcite{brown2008algorithmic}{{8}{2008}{{Brown et~al.}}{{Brown, Martin, Pollock, Coutsias, and Watson}}}
\bibcite{KleinBottle}{{9}{2008}{{Carlsson et~al.}}{{Carlsson, Ishkhanov, de~Silva, and Zomorodian}}}
\bibcite{ChazalDeSilvaOudot2013}{{10}{2013}{{Chazal et~al.}}{{Chazal, de~Silva, and Oudot}}}
\bibcite{WitnessComplexes}{{11}{2004}{{de~Silva and Carlsson}}{{}}}
\bibcite{ComputationalTopology}{{12}{2010}{{Edelsbrunner and Harer}}{{}}}
\bibcite{TopologicalPersistence}{{13}{2002}{{Edelsbrunner et~al.}}{{Edelsbrunner, Letscher, and Zomorodian}}}
\bibcite{Hatcher}{{14}{2002}{{Hatcher}}{{}}}
\bibcite{Mumford}{{15}{2003}{{Lee et~al.}}{{Lee, Pedersen, and Mumford}}}
\bibcite{martin2011non}{{16}{2011}{{Martin and Watson}}{{}}}
\bibcite{martin2010topology}{{17}{2010}{{Martin et~al.}}{{Martin, Thompson, Coutsias, and Watson}}}
\bibcite{Javaplex}{{18}{2014}{{Tausz et~al.}}{{Tausz, Vejdemo-Johansson, and Adams}}}
\bibcite{VanHaterenVanDerSchaaf}{{19}{1998}{{van Hateren and van~der Schaaf}}{{}}}
\bibcite{zomorodian2012advances}{{20}{2012}{{Zomorodian}}{{}}}
\bibcite{ComputingPersistent}{{21}{2005}{{Zomorodian and Carlsson}}{{}}}
\newlabel{tocindent-1}{0pt}
\newlabel{tocindent0}{58.61125pt}
\newlabel{tocindent1}{66.11127pt}
\newlabel{tocindent2}{29.38873pt}
\newlabel{tocindent3}{0pt}
\@writefile{toc}{\contentsline {section}{\tocsection {Appendix}{}{References}}{41}{section*.3}}
================================================
FILE: reports/javaplex_tutorial/javaplex_tutorial.bbl
================================================
\begin{thebibliography}{21}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
\providecommand{\doi}[1]{doi: #1}\else
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
\bibitem[Adamaszek(2013)]{Adamaszek2013}
M.~Adamaszek.
\newblock Clique complexes and graph powers.
\newblock \emph{Israel Journal of Mathematics}, 196\penalty0 (1):\penalty0
295--319, 2013.
\bibitem[Adamaszek and Adams(2017)]{AA-VRS1}
M.~Adamaszek and H.~Adams.
\newblock The {V}ietoris--{R}ips complexes of a circle.
\newblock \emph{Pacific Journal of Mathematics}, 290\penalty0 (1):\penalty0
1--40, 2017.
\bibitem[Adamaszek et~al.(2016)Adamaszek, Adams, Frick, Peterson, and
Previte-Johnson]{AAFPP-J}
M.~Adamaszek, H.~Adams, F.~Frick, C.~Peterson, and C.~Previte-Johnson.
\newblock Nerve complexes of circular arcs.
\newblock \emph{Discrete \& Computational Geometry}, 56:\penalty0 251--273,
2016.
\bibitem[Adamaszek et~al.(2017)Adamaszek, Adams, and Motta]{AAM}
M.~Adamaszek, H.~Adams, and F.~Motta.
\newblock Random cyclic dynamical systems.
\newblock \emph{Advances in Applied Mathematics}, 83:\penalty0 1--23, 2017.
\bibitem[Adams and Carlsson(2009)]{Range}
H.~Adams and G.~Carlsson.
\newblock On the nonlinear statistics of range image patches.
\newblock \emph{SIAM J.\ Imag.\ Sci.}, 2:\penalty0 110--117, 2009.
\bibitem[Adams et~al.(2015)Adams, Atanasov, and Carlsson]{adams2015nudged}
H.~Adams, A.~Atanasov, and G.~Carlsson.
\newblock Nudged elastic band in topological data analysis.
\newblock \emph{Topological methods in nonlinear analysis}, 45\penalty0
(1):\penalty0 247--272, 2015.
\bibitem[Armstrong(1983)]{Armstrong}
M.~A. Armstrong.
\newblock \emph{Basic Topology}.
\newblock Springer, New York, Berlin, 1983.
\bibitem[Brown et~al.(2008)Brown, Martin, Pollock, Coutsias, and
Watson]{brown2008algorithmic}
M.~W. Brown, S.~Martin, S.~N. Pollock, E.~A. Coutsias, and J.~P. Watson.
\newblock Algorithmic dimensionality reduction for molecular structure
analysis.
\newblock \emph{Journal of Chemical Physics}, 129:\penalty0 064118, 2008.
\bibitem[Carlsson et~al.(2008)Carlsson, Ishkhanov, de~Silva, and
Zomorodian]{KleinBottle}
G.~Carlsson, T.~Ishkhanov, V.~de~Silva, and A.~Zomorodian.
\newblock On the local behavior of spaces of natural images.
\newblock \emph{Int.\ J.\ Comput.\ Vision}, 76:\penalty0 1--12, 2008.
\bibitem[Chazal et~al.(2013)Chazal, de~Silva, and
Oudot]{ChazalDeSilvaOudot2013}
F.~Chazal, V.~de~Silva, and S.~Oudot.
\newblock Persistence stability for geometric complexes.
\newblock \emph{Geometriae Dedicata}, pages 1--22, 2013.
\bibitem[de~Silva and Carlsson(2004)]{WitnessComplexes}
V.~de~Silva and G.~Carlsson.
\newblock Topological estimation using witness complexes.
\newblock In \emph{Eurographics Symposium on Point-Based Graphics}, June 2004.
\bibitem[Edelsbrunner and Harer(2010)]{ComputationalTopology}
H.~Edelsbrunner and J.~Harer.
\newblock \emph{Computational Topology: An Introduction}.
\newblock American Mathematical Society, Providence, 2010.
\bibitem[Edelsbrunner et~al.(2002)Edelsbrunner, Letscher, and
Zomorodian]{TopologicalPersistence}
H.~Edelsbrunner, D.~Letscher, and A.~Zomorodian.
\newblock Topological persistence and simplification.
\newblock \emph{Discrete Comput.\ Geom.}, 28:\penalty0 511--533, 2002.
\bibitem[Hatcher(2002)]{Hatcher}
A.~Hatcher.
\newblock \emph{Algebraic Topology}.
\newblock Cambridge University Press, Cambridge, 2002.
\bibitem[Lee et~al.(2003)Lee, Pedersen, and Mumford]{Mumford}
A.~B. Lee, K.~S. Pedersen, and D.~Mumford.
\newblock The nonlinear statistics of high-contrast patches in natural images.
\newblock \emph{Int.\ J.\ Comput.\ Vision}, 54:\penalty0 83--103, 2003.
\bibitem[Martin and Watson(2011)]{martin2011non}
S.~Martin and J.~P. Watson.
\newblock Non-manifold surface reconstruction from high-dimensional point cloud
data.
\newblock \emph{Computational Geometry}, 44:\penalty0 427--441, 2011.
\bibitem[Martin et~al.(2010)Martin, Thompson, Coutsias, and
Watson]{martin2010topology}
S.~Martin, A.~Thompson, E.~A. Coutsias, and J.~P. Watson.
\newblock Topology of cyclo-octane energy landscape.
\newblock \emph{Journal of Chemical Physics}, 132:\penalty0 234115, 2010.
\bibitem[Tausz et~al.(2014)Tausz, Vejdemo-Johansson, and Adams]{Javaplex}
A.~Tausz, M.~Vejdemo-Johansson, and H.~Adams.
\newblock Java{P}lex: {A} research software package for persistent
(co)homology.
\newblock In H.~Hong and C.~Yap, editors, \emph{Proceedings of ICMS 2014},
Lecture Notes in Computer Science 8592, pages 129--136, 2014.
\newblock Software available at
\url{http://appliedtopology.github.io/javaplex/}.
\bibitem[van Hateren and van~der Schaaf(1998)]{VanHaterenVanDerSchaaf}
J.~H. van Hateren and A.~van~der Schaaf.
\newblock Independent component filters of natural images compared with simple
cells in primary visual cortex.
\newblock \emph{Proc.\ R.\ Soc.\ Lond.\ B}, 265:\penalty0 359--366, 1998.
\bibitem[Zomorodian(2012)]{zomorodian2012advances}
A.~Zomorodian.
\newblock \emph{Advances in Applied and Computational Topology}.
\newblock American Mathematical Society, 2012.
\bibitem[Zomorodian and Carlsson(2005)]{ComputingPersistent}
A.~Zomorodian and G.~Carlsson.
\newblock Computing persistent homology.
\newblock \emph{Discrete Comput.\ Geom.}, 33:\penalty0 249--274, 2005.
\end{thebibliography}
================================================
FILE: reports/javaplex_tutorial/javaplex_tutorial.bib
================================================
@article{Adamaszek2013,
title={Clique complexes and graph powers},
author={Adamaszek, Micha{\l}},
journal={Israel Journal of Mathematics},
volume={196},
number={1},
pages={295--319},
year={2013}
}
@article{AAFPP-J,
title={Nerve complexes of circular arcs},
author={Adamaszek, Micha{\l} and Adams, Henry and Frick, Florian and Peterson, Chris and Previte-Johnson, Corrine},
journal={Discrete \& Computational Geometry},
volume={56},
pages={251--273},
year={2016}
}
@article{AA-VRS1,
title={The {V}ietoris--{R}ips complexes of a circle},
author={Adamaszek, Micha{\l} and Adams, Henry},
journal={Pacific Journal of Mathematics},
volume={290},
number={1},
pages={1--40},
year={2017}
}
@article{AAM,
title={Random cyclic dynamical systems},
author={Adamaszek, Micha{\l} and Adams, Henry and Motta, Francis},
journal={Advances in Applied Mathematics},
volume={83},
pages={1--23},
year={2017}
}
@article{adams2015nudged,
title={Nudged elastic band in topological data analysis},
author={Adams, Henry and Atanasov, Atanas and Carlsson, Gunnar},
journal={Topological methods in nonlinear analysis},
volume={45},
number={1},
pages={247--272},
year={2015}
}
@article{Range,
author = "H.~Adams and G.~Carlsson",
title = "On the nonlinear statistics of range image patches",
journal = "SIAM J.\ Imag.\ Sci.",
volume = "2",
year = "2009",
pages = "110--117",
}
@book{Armstrong,
author = "M.~A.~Armstrong",
title = "Basic Topology",
publisher = "Springer",
address = "New York, Berlin",
year = "1983",
}
@article{KleinBottle,
author = "G.~Carlsson and T.~Ishkhanov and V.~de Silva and A.~Zomorodian",
title = "On the local behavior of spaces of natural images",
journal = "Int.\ J.\ Comput.\ Vision",
volume = "76",
year = "2008",
pages = "1--12",
}
@article{ChazalDeSilvaOudot2013,
title={Persistence stability for geometric complexes},
author={Chazal, Fr{\'e}d{\'e}ric and de~Silva, Vin and Oudot, Steve},
journal={Geometriae Dedicata},
pages={1--22},
year={2013}
}
@inproceedings{WitnessComplexes,
author = "V.~de Silva and G.~Carlsson",
title = "Topological estimation using witness complexes",
booktitle = "Eurographics Symposium on Point-Based Graphics",
month = "June",
year = "2004",
}
@book{ComputationalTopology,
author = "H.~Edelsbrunner and J.~Harer",
title = "Computational Topology: An Introduction",
publisher = "American Mathematical Society",
address = "Providence",
year = "2010",
}
@article{TopologicalPersistence,
author = "H.~Edelsbrunner and D.~Letscher and A.~Zomorodian",
title = "Topological persistence and simplification",
journal = "Discrete Comput.\ Geom.",
volume = "28",
year = "2002",
pages = "511--533",
}
@book{Hatcher,
author = "A.~Hatcher",
title = "Algebraic Topology",
publisher = "Cambridge University Press",
address = "Cambridge",
year = "2002",
}
@article{Mumford,
author = "A.~B.~Lee and K.~S.~Pedersen and D.~Mumford",
title = "The nonlinear statistics of high-contrast patches in natural images",
journal = "Int.\ J.\ Comput.\ Vision",
volume = "54",
year = "2003",
pages = "83--103",
}
@inproceedings{Javaplex,
author = "A.~Tausz and M.~Vejdemo-Johansson and H.~Adams",
title = "Java{P}lex: {A} research software package for persistent (co)homology",
booktitle = "Proceedings of ICMS 2014",
editor = "H.~Hong and C.~Yap",
series = "Lecture Notes in Computer Science 8592",
year = "2014",
pages = "129-136",
note = "Software available at \url{http://appliedtopology.github.io/javaplex/}"
}
@article{VanHaterenVanDerSchaaf,
author ="J.~H.~van Hateren and A.~van der Schaaf",
title ="Independent component filters of natural images compared with simple cells in primary visual cortex",
journal ="Proc.\ R.\ Soc.\ Lond.\ B",
volume ="265",
pages ="359--366",
year ="1998",
}
@article{ComputingPersistent,
author = "A.~Zomorodian and G.~Carlsson",
title = "Computing persistent homology",
journal = "Discrete Comput.\ Geom.",
volume = "33",
year = "2005",
pages = "249--274",
}
@article{martin2010topology,
title={Topology of cyclo-octane energy landscape},
author={S.~Martin and A.~Thompson and E.~A.~Coutsias and J.~P.~Watson},
journal={Journal of Chemical Physics},
volume={132},
pages={234115},
year={2010}
}
@article{martin2011non,
title={Non-manifold surface reconstruction from high-dimensional point cloud data},
author={S.~Martin and J.~P.~Watson},
journal={Computational Geometry},
volume={44},
pages={427--441},
year={2011}
}
@article{brown2008algorithmic,
title={Algorithmic dimensionality reduction for molecular structure analysis},
author={M.~W.~Brown and S.~Martin and S.~N.~Pollock and E.~A.~Coutsias and J.~P.~Watson},
journal={Journal of Chemical Physics},
volume={129},
pages={064118},
year={2008}
}
@book{zomorodian2012advances,
title={Advances in Applied and Computational Topology},
author={A.~Zomorodian},
year={2012},
publisher={American Mathematical Society}
}
================================================
FILE: reports/javaplex_tutorial/javaplex_tutorial.blg
================================================
This is BibTeX, Version 0.99d (TeX Live 2017)
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
The top-level auxiliary file: javaplex_tutorial.aux
The style file: abbrvnat.bst
Database file #1: javaplex_tutorial.bib
You've used 21 entries,
2773 wiz_defined-function locations,
738 strings with 7740 characters,
and the built_in function-call counts, 9700 in all, are:
= -- 861
> -- 549
< -- 13
+ -- 185
- -- 164
* -- 779
:= -- 1500
add.period$ -- 64
call.type$ -- 21
change.case$ -- 113
chr.to.int$ -- 21
cite$ -- 42
duplicate$ -- 450
empty$ -- 810
format.name$ -- 199
if$ -- 2023
int.to.chr$ -- 1
int.to.str$ -- 1
missing$ -- 25
newline$ -- 114
num.names$ -- 86
pop$ -- 223
preamble$ -- 1
purify$ -- 96
quote$ -- 0
skip$ -- 337
stack$ -- 0
substring$ -- 395
swap$ -- 38
text.length$ -- 2
text.prefix$ -- 0
top$ -- 0
type$ -- 211
warning$ -- 0
while$ -- 95
width$ -- 0
write$ -- 281
================================================
FILE: reports/javaplex_tutorial/javaplex_tutorial.log
================================================
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex 2017.5.23) 15 JUL 2018 19:49
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**javaplex_tutorial.tex
(./javaplex_tutorial.tex
LaTeX2e <2017-04-15>
Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amscls/amsart.cls
Document Class: amsart 2015/03/04 v2.20.2
\linespacing=\dimen102
\normalparindent=\dimen103
\normaltopskip=\skip41
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2016/11/05 v2.16a AMS math features
\@mathmargin=\skip42
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2000/06/29 v2.01 AMS text
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks14
\ex@=\dimen104
))
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen105
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2016/03/08 v2.02 operator names
)
\inf@bad=\count79
LaTeX Info: Redefining \frac on input line 213.
\uproot@=\count80
\leftroot@=\count81
LaTeX Info: Redefining \overline on input line 375.
\classnum@=\count82
\DOTSCASE@=\count83
LaTeX Info: Redefining \ldots on input line 472.
LaTeX Info: Redefining \dots on input line 475.
LaTeX Info: Redefining \cdots on input line 596.
\Mathstrutbox@=\box26
\strutbox@=\box27
\big@size=\dimen106
LaTeX Font Info: Redeclaring font encoding OML on input line 712.
LaTeX Font Info: Redeclaring font encoding OMS on input line 713.
\macc@depth=\count84
\c@MaxMatrixCols=\count85
\dotsspace@=\muskip10
\c@parentequation=\count86
\dspbrk@lvl=\count87
\tag@help=\toks15
\row@=\count88
\column@=\count89
\maxfields@=\count90
\andhelp@=\toks16
\eqnshift@=\dimen107
\alignsep@=\dimen108
\tagshift@=\dimen109
\tagwidth@=\dimen110
\totwidth@=\dimen111
\lineht@=\dimen112
\@envbody=\toks17
\multlinegap=\skip43
\multlinetaggap=\skip44
\mathdisplay@stack=\toks18
LaTeX Info: Redefining \[ on input line 2817.
LaTeX Info: Redefining \] on input line 2818.
)
LaTeX Font Info: Try loading font information for U+msa on input line 388.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
)
\copyins=\insert199
\abstractbox=\box28
\listisep=\skip45
\c@part=\count91
\c@section=\count92
\c@subsection=\count93
\c@subsubsection=\count94
\c@paragraph=\count95
\c@subparagraph=\count96
\c@figure=\count97
\c@table=\count98
\abovecaptionskip=\skip46
\belowcaptionskip=\skip47
\captionindent=\dimen113
\thm@style=\toks19
\thm@bodyfont=\toks20
\thm@headfont=\toks21
\thm@notefont=\toks22
\thm@headpunct=\toks23
\thm@preskip=\skip48
\thm@postskip=\skip49
\thm@headsep=\skip50
\dth@everypar=\toks24
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/preprint/fullpage.sty
Package: fullpage 1999/02/23 1.1 (PWD)
\FP@margin=\skip51
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/latexsym.sty
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
\symlasy=\mathgroup6
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
(Font) U/lasy/m/n --> U/lasy/b/n on input line 52.
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/pb-diagram/pb-diagram.sty
\dgARROWLENGTH=\skip52
\dgTEXTARROWLENGTH=\skip53
\dgHORIZPAD=\skip54
\dgVERTPAD=\skip55
\dgLABELOFFSET=\skip56
\dgARROWPARTS=\count99
\dgDOTSPACING=\skip57
\dgDOTSIZE=\skip58
\dgMAXSQUARE=\count100
\dgMINDBLSQ=\count101
\dgCOLUMNWIDTH=\skip59
\dg@HORIZ=\count102
\dg@VERT=\count103
\dg@XLPAD=\count104
\dg@YBPAD=\count105
\dg@XRPAD=\count106
\dg@YTPAD=\count107
\dg@X=\count108
\dg@Y=\count109
\dg@XGRID=\count110
\dg@YGRID=\count111
\dg@SIZE=\count112
\dg@USERSIZE=\count113
\dg@DX=\count114
\dg@DY=\count115
\dg@XLBL=\count116
\dg@YLBL=\count117
\dg@XOFFSET=\count118
\dg@YOFFSET=\count119
\dg@LBLOFF=\count120
\dg@XLBLOFF=\count121
\dg@YLBLOFF=\count122
\dg@LBLPOS=\count123
\dg@XTEMP=\count124
\dg@YTEMP=\count125
\dg@ZTEMP=\count126
\dg@XNODE=\count127
\dg@YNODE=\count128
\dg@XEND=\count129
\dg@YEND=\count130
\dg@WEND=\count131
\dg@HEND=\count132
\dg@COUNT=\count133
\dg@NODEBOX=\box29
\dg@LABONEBOX=\box30
\dg@LABTWOBOX=\box31
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/euscript.sty
Package: euscript 2009/06/22 v3.00 Euler Script fonts
LaTeX Font Info: Overwriting math alphabet `\EuScript' in version `bold'
(Font) U/eus/m/n --> U/eus/b/n on input line 33.
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks25
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2017/04/14 v1.1b Standard LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 99.
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/infwarerr.sty
Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
)
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
)
\Gread@gobject=\count134
))
\Gin@req@height=\dimen114
\Gin@req@width=\dimen115
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.sty
Package: subfigure 2002/03/15 v2.1.5 subfigure package
\subfigtopskip=\skip60
\subfigcapskip=\skip61
\subfigcaptopadj=\dimen116
\subfigbottomskip=\skip62
\subfigcapmargin=\dimen117
\subfiglabelskip=\skip63
\c@subfigure=\count135
\c@lofdepth=\count136
\c@subtable=\count137
\c@lotdepth=\count138
****************************************
* Local config file subfigure.cfg used *
****************************************
(/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.cfg)
\subfig@top=\skip64
\subfig@bottom=\skip65
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/placeins/placeins.sty
Package: placeins 2005/04/18 v 2.2
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/wrapfig/wrapfig.sty
\wrapoverhang=\dimen118
\WF@size=\dimen119
\c@WF@wrappedlines=\count139
\WF@box=\box32
\WF@everypar=\toks26
Package: wrapfig 2003/01/31 v 3.6
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hyperref.sty
Package: hyperref 2017/03/14 v6.85a Hypertext links for LaTeX
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
Package hobsub Info: Skipping package `infwarerr' (already loaded).
Package hobsub Info: Skipping package `ltxcmds' (already loaded).
Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
Package ifluatex Info: LuaTeX not detected.
Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
Package ifvtex Info: VTeX not detected.
Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
Package etexcmds Info: Could not find \expanded.
(etexcmds) That can mean that you are not using pdfTeX 1.50 or
(etexcmds) that some package has redefined \expanded.
(etexcmds) In the latter case, load this package earlier.
Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
Package: pdftexcmds 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO
)
Package pdftexcmds Info: LuaTeX not detected.
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
)
Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
)
Package hobsub Info: Skipping package `hobsub' (already loaded).
Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
Package: xcolor-patch 2016/05/16 xcolor patch
Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
Package atveryend Info: \enddocument detected (standard20110627).
Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
)
(/usr/local/texlive/2017/texmf-dist/tex/generic/ifxetex/ifxetex.sty
Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/auxhook.sty
Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/kvoptions.sty
Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
)
\@linkdim=\dimen120
\Hy@linkcounter=\count140
\Hy@pagecounter=\count141
(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2017/03/14 v6.85a Hyperref: PDFDocEncoding definition (HO)
)
\Hy@SavedSpaceFactor=\count142
(/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/hyperref.cfg
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
)
Package hyperref Info: Hyper figures OFF on input line 4498.
Package hyperref Info: Link nesting OFF on input line 4503.
Package hyperref Info: Hyper index ON on input line 4506.
Package hyperref Info: Plain pages OFF on input line 4513.
Package hyperref Info: Backreferencing OFF on input line 4518.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4751.
\c@Hy@tempcnt=\count143
(/usr/local/texlive/2017/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip11
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
LaTeX Info: Redefining \url on input line 5104.
\XeTeXLinkMargin=\dimen121
\Fld@menulength=\count144
\Field@Width=\dimen122
\Fld@charsize=\dimen123
Package hyperref Info: Hyper figures OFF on input line 6358.
Package hyperref Info: Link nesting OFF on input line 6363.
Package hyperref Info: Hyper index ON on input line 6366.
Package hyperref Info: backreferencing OFF on input line 6373.
Package hyperref Info: Link coloring OFF on input line 6378.
Package hyperref Info: Link coloring with OCG OFF on input line 6383.
Package hyperref Info: PDF/A mode OFF on input line 6388.
LaTeX Info: Redefining \ref on input line 6428.
LaTeX Info: Redefining \pageref on input line 6432.
\Hy@abspage=\count145
\c@Item=\count146
\c@Hfootnote=\count147
)
Package hyperref Message: Driver (autodetected): hpdftex.
(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hpdftex.def
File: hpdftex.def 2017/03/14 v6.85a Hyperref driver for pdfTeX
\Fld@listcount=\count148
\c@bookmark@seq@number=\count149
(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
82.
)
\Hy@SectionHShift=\skip66
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/appendix/appendix.sty
Package: appendix 2009/09/02 v1.2b extra appendix facilities
\c@@pps=\count150
\c@@ppsavesec=\count151
\c@@ppsaveapp=\count152
)
(/usr/local/texlive/2017/texmf-dist/tex/latex/natbib/natbib.sty
Package: natbib 2010/09/13 8.31b (PWD, AO)
\bibhang=\skip67
\bibsep=\skip68
LaTeX Info: Redefining \cite on input line 694.
\c@NAT@ctr=\count153
)
\c@exercise=\count154
\c@exerciseSol=\count155
LaTeX Warning: Unused global option(s):
[amscd,amssymb,verbatim].
(./javaplex_tutorial.aux
LaTeX Warning: Label `fig:rangeBetti' multiply defined.
LaTeX Warning: Label `fig:rangeBetti' multiply defined.
LaTeX Warning: Label `fig:rangeBetti' multiply defined.
)
\openout1 = `javaplex_tutorial.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 33.
LaTeX Font Info: ... okay on input line 33.
LaTeX Font Info: Try loading font information for U+msa on input line 33.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Try loading font information for U+msb on input line 33.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
LaTeX Font Info: Try loading font information for U+lasy on input line 33.
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/ulasy.fd
File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
)
(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count156
\scratchdimen=\dimen124
\scratchbox=\box33
\nofMPsegments=\count157
\nofMParguments=\count158
\everyMPshowfont=\toks27
\MPscratchCnt=\count159
\MPscratchDim=\dimen125
\MPnumerator=\count160
\makeMPintoPDFobject=\count161
\everyMPtoPDFconversion=\toks28
) (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf
(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/grfext.sty
Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)
)
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
38.
Package grfext Info: Graphics extension search list:
(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
G,.JBIG2,.JB2,.eps]
(grfext) \AppendGraphicsExtensions on input line 456.
(/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
\AtBeginShipoutBox=\box34
Package hyperref Info: Link coloring OFF on input line 33.
(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
)
\c@section@level=\count162
)
LaTeX Info: Redefining \ref on input line 33.
LaTeX Info: Redefining \pageref on input line 33.
LaTeX Info: Redefining \nameref on input line 33.
(./javaplex_tutorial.out) (./javaplex_tutorial.out)
\@outlinefile=\write3
\openout3 = `javaplex_tutorial.out'.
(./javaplex_tutorial.toc)
\tf@toc=\write4
\openout4 = `javaplex_tutorial.toc'.
Underfull \vbox (badness 1502) has occurred while \output is active []
[1{/usr/local/texlive/2017/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
Overfull \hbox (6.01897pt too wide) in paragraph at lines 116--116
[]\OT1/cmtt/m/n/10 ans = Java 1.5.0_13 with Apple Inc. Java Hotspot(TM) Clie
nt VM mixed mode, sharing[]
[]
Overfull \hbox (2.38226pt too wide) in paragraph at lines 120--121
[]\OT1/cmr/m/n/10 To in-stall Javaplex for Mat-lab, go to the lat-est re-lease
at []$\OT1/cmtt/m/n/10 https : / / github . com / appliedtopology / javaplex /
[]
Overfull \hbox (8.64397pt too wide) in paragraph at lines 120--121
\OT1/cmr/m/n/10 like \OT1/cmtt/m/n/10 matlab-examples-4.2.3.zip\OT1/cmr/m/n/10
. Ex-tract the zip file. The re-sult-ing folder should be called \OT1/cmtt/m/n/
10 matlab[]examples\OT1/cmr/m/n/10 ;
[]
[2] [3]
File: s1.pdf Graphic file (type pdf)