sheaf
e176676e45
WIP on brush repo (does not compile)
2024-10-08 20:53:52 +02:00
sheaf
b5b29f124a
Farey sum for curve subdivision
2024-09-28 15:45:07 +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
3d36b39541
fix brush rotation widget
2024-09-28 11:17:33 +02:00
sheaf
a41c6235ae
anchor position is not static
2024-09-28 03:12:23 +02:00
sheaf
66490b87aa
fix draw anchor curve indexing
2024-09-28 01:32:03 +02:00
sheaf
264e04555b
add header to warning dialog
2024-09-28 00:38:32 +02:00
sheaf
23cc439ff2
update list model upon undo/redo
2024-09-27 23:53:33 +02:00
sheaf
1ca6d9ccf5
add back hie.yaml
2024-09-27 23:38:44 +02:00
sheaf
24f182feec
add stroke layer view
2024-09-27 23:36:33 +02:00
sheaf
0eb0724dde
Refactors in preparation for stroke hierarchy
2024-09-27 17:21:24 +02:00
sheaf
8b3705b8d1
Set GDK_SCALE = 2 by default
2024-09-08 17:04:41 +02:00
sheaf
e2e4ae6bfe
UI: use GTK Window instead of MessageDialog
2024-09-07 11:28:07 +02:00
sheaf
fc2f25cfa6
UI: use GTK4 FileDialog API
2024-09-06 18:48:04 +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
7bb28f8c96
brush widget UI: don't allow 0 width or height
2024-05-28 10:36:26 +02:00
sheaf
56939ce01a
GTK 4.14 compatibility
2024-05-28 10:24:47 +02:00
sheaf
300fbf92c0
fixes to brush widget UI
2024-05-25 17:04:08 +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
1ec2af6dcc
WIP: add brush widget UI
2024-05-21 19:40:22 +02:00
sheaf
2a21980ffc
Fix issues in withTangent & strictlyParallel function
2024-04-29 19:35:53 +02:00
sheaf
63b9703faf
UI tweaks
2024-04-25 21:53: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