rivetTDA / rivet

RIVET is a tool for Topological Data Analysis, in particular two-parameter persistent homology.
GNU General Public License v3.0
73 stars 24 forks source link

Crashes with 'Point' or 'Bifiltration' Input #82

Closed mlesnick closed 7 years ago

mlesnick commented 7 years ago

Originally reported by: M L (GitHub: mlesnick)


The portion of the email thread below describes the first noted occurrences of this issue.

In brief, sample1.txt and sample4.txt cause crashes. Later occurrences of what are thought to be the same crash are noted in the comments.


Looking at the dataset sample sampleN.txt , N\in {1,...5} I notice that a distinguishing characteristic of the ones that break this version of RIVET (N={1,4}) is the presence of zeros in the coordinates. Mike

On Thu, Jan 26, 2017 at 1:45 PM, Keller, Bryn bryn.keller@intel.com wrote: I saw this error recently. It occurred for me when the grades of appearance were all floating point values very close to zero. I haven’t attempted to debug, I just regenerated the input file with all the grades multiplied by 1000 or something, which was enough in my case.

From: vengencemage@gmail.com on behalf of Alexander Yu ajy@princeton.edu Date: Wednesday, January 25, 2017 at 6:36 PM To: Bryn Keller bryn.keller@intel.com Cc: Matthew Wright mlwright84@gmail.com, Michael Lesnick lesnick@gmail.com Subject: Re: testing code

Hi,

Okay thanks. I think I have it working. I am testing on small examples such as sample1.txt but I am getting these errors. Have you encountered this kind of problem before?

./RIVET

Reading from console

"STAGE"

"P"

"ROGRESS 30"

"FILE TYPE: points"

"FILE TYPE DESCRIPTION: point-cloud data"

"RAW DATA: 1"

console: READING FILE:/Users/AlexYu/Desktop/rivet/data/sample1.txt

console: STAGE

console: PROGRESS 30

console: STAGE

console:

console: BIFILTRATION:

console: Number of simplices of dimension 0 : 5

console: Number of simplices of dimension 1 : 7

console: COMPUTING xi_0, xi_1, AND xi_2 FOR HOMOLOGY DIMENSION 0 :

console: Assertion failed: (size_type(idx - index_bases[0]) < extents[0]), function access, file /usr/local/include/boost/multi_array/base.hpp, line 136.

libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Arrangement was not delivered

Abort trap: 6

mlesnick commented 7 years ago

Original comment by M L (GitHub: mlesnick):


resolved in commit 3fde9b6

mlesnick commented 7 years ago

Original comment by M L (GitHub: mlesnick):


Moved the H3N2 crash previously mentioned here into a separate issue, as I am pretty sure now that it is a different bug.

mlesnick commented 7 years ago

Original comment by M L (GitHub: mlesnick):


We also saw a similar crash today with a single point:

bifiltration

x-axis label

y-axis label

0 1 1

but not when a second point was added.

mlesnick commented 7 years ago

Original comment by Bryn Keller (GitHub: xoltar):


Also occurs for this unit triangle, even if no zeros in the file:

#!c++

points
2
1.5
irrelevant
1 1 1
2 1 1
1 2 1
mlesnick commented 7 years ago

Original comment by Matthew Wright (GitHub: mlwright84):


This is strange; sample1 and sample4 used to work. I will look into the betti code and try to find what is causing this boost::multi_array error.