JuliaGeometry / JuliaGeometry/GeometricalPredicates.jl
Limitation 1.0<=x<=2.0
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 57
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
I understand the reasoning for the 1.0<=x<=2.0 limitation given the BigInt-fallback for exact calculation. There are potential alternatives, e.g. expansion arithmetic (https://www.cs.cmu.edu/afs/cs/project/quake/public/code/predicates.c) with Float64, which would at least work for numbers in a reasonable range (roughly n-th root of the largest representable number, where n is the degree of the polynomial in the predicate), or expansion arithmetic with BigFloat which should work for arbitrary inputs.
This would come at the slight performance cost of losing the static filters with only the absolute error bound. I'd expect that to be around ~2-5% based on tests in C++. I'd be willing to prepare a PR but since this is non-negligible work, I wanted to ask first whether this compromise, loss of purely static filtering to overcome the limitation of a fixed coordinate range, is compatible with the goals of this library.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the current BigInt fallback and the library goals, then compare them with the expansion-arithmetic approach described in the issue and the linked predicates.c reference. Evaluate the proposed loss of purely static filtering against broader coordinate support and the expected performance cost; done requires an agreed direction before implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100