Skip to content

Conversation

@corybrunson
Copy link
Member

This PR changes the value_t type and ratio parameter from float to double.

Benchmark comparisons on small and medium data sets incurred no consistent cost to storage or runtime.

Coordinated with this ripserq PR.

@corybrunson
Copy link
Member Author

@StrongKs @SeanHersh @resetdisconnect could you check that this branch installs and works on your machines? Feel free to experiment with the benchmark script but be cautious with the larger o3 data sets.

@corybrunson
Copy link
Member Author

This change requires a unit test, and in designing one i observed something strange. With v1.0.0 installed, the following code detects differences only for digits < 8; whereas, with the double branch loaded, it detects differences for all values of digits as well as with just d <- dist(a)—though, notably, with digits = 14 or = 15, only the second death time is detectably different.

# equilateral triangle
a <- rbind(
  c(0,0),
  c(sqrt(3)/2,.5),
  c(sqrt(3)/2,-.5)
)
d <- dist(round(a, digits = 15))
p <- as.data.frame(vietoris_rips(d))
p$death[1:2] == 1
p$death[1:2] - 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants