sheaf
197adec8d0
handle brush corners
2024-11-02 10:57:04 +01:00
sheaf
7a82470db9
fixup curve drag code
2024-11-02 10:53:54 +01:00
sheaf
fea6667114
hacky fix to cusp computation timeout
2024-10-12 16:48:48 +02:00
sheaf
1a8f4b5f5d
improvements to brush params when changing brush
2024-10-12 15:41:52 +02:00
sheaf
f7a4b02e90
fix stroke cache issues
2024-09-28 13:07:56 +02:00
sheaf
3886dca483
improvements to draw anchor
2024-09-28 12:10:36 +02:00
sheaf
0eb0724dde
Refactors in preparation for stroke hierarchy
2024-09-27 17:21:24 +02:00
sheaf
bb9b381cb5
workaround for TH linking bugs
2024-09-06 13:08:40 +02:00
sheaf
9ff25a25aa
cleanups
2024-08-29 01:46:50 +02:00
sheaf
2bae92dc5e
more SIMD experiments
2024-08-29 00:26:19 +02:00
sheaf
ed8720555f
improve D to use Nat for domain
2024-08-05 17:49:04 +02:00
sheaf
5f98165276
WIP: SIMD experiments
2024-08-01 21:36:44 +02:00
sheaf
e64ce375d2
housekeeping
2024-07-29 13:39:13 +02:00
sheaf
77a36e1f0b
add more info to cusps benchmark output
2024-05-25 12:41:10 +02:00
sheaf
af66b3b5ac
update bounds for GHC 9.10
2024-05-23 11:17:36 +02:00
sheaf
91ac61e3cd
WIP: add Walter's LP approach to interval Newton
2024-05-23 11:04:17 +02:00
sheaf
2a21980ffc
Fix issues in withTangent & strictlyParallel function
2024-04-29 19:35:53 +02:00
sheaf
c89fba7fd2
Improve specialisation + add degree computation
2024-04-25 21:53:27 +02:00
sheaf
6450859e3c
Bench with & without box(1)-consistency algorithm
2024-04-24 02:04:13 +02:00
sheaf
17df43c5d7
Commentary in tearDropBrushFn
2024-04-24 01:47:01 +02:00
sheaf
32ce7c38bb
Add some commentary to Gauss-Seidel function
2024-04-24 01:30:24 +02:00
sheaf
a59f1695fb
Sprinkle in a bit of unicode
2024-04-24 01:03:46 +02:00
sheaf
edba0416aa
Add complete interval-union Gauss–Seidel step method
2024-04-24 00:13:06 +02:00
sheaf
ac9deb968a
Clean up benchmarking component
2024-04-22 22:11:07 +02:00
sheaf
0c54de8b1c
Update Eigen to expose unsafeCoeff
2024-04-22 20:12:31 +02:00
sheaf
d797abc5e4
Modularise root isolation algorithms
...
Different root isolation algorithms now live in separate modules,
and are all instances of the RootIsolationAlgorithm typeclass.
This separates the algorithmic code from the top-level driver code
in Math.Root.Isolation.
2024-04-22 20:06:03 +02:00
sheaf
b1df0d04e6
Always run Gauss-Seidel at tiny sizes to rule out fake solutions
2024-04-22 01:52:29 +02:00
sheaf
0e59d85143
Use 'n choose k' to choose Gauss-Seidel dimensions
2024-04-21 21:15:07 +02:00
sheaf
0e6b9a822b
Documentation in root isolation module
2024-04-21 20:35:35 +02:00
sheaf
8009983b37
Slight refactor of bisection dimension choosing logic
2024-04-21 20:10:37 +02:00
sheaf
ced714987e
Implement adaptive shaving algorithm
2024-04-21 18:09:21 +02:00
sheaf
01fdd9a126
Improve robustness of quadratic equation solver
...
Based on ideas from the paper
"The Ins and Outs of Solving Quadratic Equations with Floating-Point Arithmetic"
(Frédéric Goualard, 2023)
Could still be improved further, but I think this is acceptable for now.
2024-04-21 14:19:37 +02:00
sheaf
1338d7ddbe
Improve intervallic rotation computations
...
This commit bakes in a certain kind of representation for brush strokes:
c(t,s) = p(t) + R(theta(t)) b(t,s)
This representation allows us to cancel out some rotation terms when
computing the envelope equation, improving the efficiency of the
cusp-finding methods.
2024-04-20 18:28:41 +02:00
sheaf
2b167f594a
Make it easier to switch between 2 and 3-dim
...
This commit makes it easier to switch between the 2-dim and 3-dim
formulations of the cusp-finding problem. This is still work in progress,
trying to improve the performance of the cusp-finding algorithms.
2024-04-18 21:33:55 +02:00
sheaf
0160081e80
Further modularisation of root isolation code
...
The code is now generic over the dimension. There is a slight performance
loss that I need to investigate; perhaps some things are not getting
specialised? Maybe it is better to be more explicit about staging and
splice in the functions with fixed dimensions.
2024-04-18 20:14:19 +02:00
sheaf
131753da82
Split off root-isolation algorithms into Math.Root.Isolation
2024-04-17 20:41:21 +02:00
sheaf
bd468fcf82
start modularising cusp finding code
2024-04-05 17:48:53 +02:00
sheaf
55470d1f0e
make cusp-finding algorithm choice more configurable
2024-04-03 18:46:08 +02:00
sheaf
a183475985
Cusp finding: implement bound consistency improvement
2024-03-14 21:50:34 +01:00
sheaf
61671dc280
Implement box(1) consistency check for cusp finding
2024-03-13 18:00:37 +01:00
sheaf
60ebf7886f
Split up succFP etc into separate module
2024-03-11 14:09:54 +01:00
sheaf
34c129d72a
Add tests and fix MonomialBasis D3A3 instance
2024-03-08 15:35:39 +01:00
sheaf
cebfeb0b7a
Fix some more issues with interval recip
2024-03-06 16:07:21 +01:00
sheaf
2289468a84
Fixes and restructuring
2024-02-28 17:20:34 +01:00
sheaf
26cfdada8f
Fix extendedRecip (negative infinity)
2024-02-24 19:37:34 +01:00
sheaf
d1b3765335
Split out benchmark for cusp finding
2024-02-23 17:03:28 +01:00
sheaf
b70f7ba133
Add mechanisms to log envelope equation data
2024-02-19 16:46:09 +01:00
sheaf
6b658acedd
Restructure project & update bounds
2024-02-17 13:58:40 +01:00