Commit graph

18 commits

Author SHA1 Message Date
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