sheaf
2a21980ffc
Fix issues in withTangent & strictlyParallel function
2024-04-29 19:35:53 +02:00
sheaf
ac9deb968a
Clean up benchmarking component
2024-04-22 22:11:07 +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
2289468a84
Fixes and restructuring
2024-02-28 17:20:34 +01:00
sheaf
6b658acedd
Restructure project & update bounds
2024-02-17 13:58:40 +01:00
sheaf
96aa38b3c3
improve rotations in interval arithmetic
...
Computing a rotation in interval arithmetic can lose tightness.
Instead of computing
a cos phi + b sin phi
which doesn't account for the difference in phase in the two sinusoids,
it is better to use
sqrt (a² + b²) * cos ( phi - atan2(a,b) )
which correctly estimates the maximum amplitude of the sum to be
sqrt(a²+b²) instead of abs(a) + abs(b).
This seems to worsen the performance of the interval Newton method
at the moment, possibly due to the complexity of the new formula,
which involves computing atan(b/a). Further investigation is needed.
2023-05-14 21:38:25 +02:00
sheaf
7db3cbef33
more work into observability
2023-03-13 22:09:15 +01:00
sheaf
52420a1169
experiment: FMA backend for interval arithmetic
...
also includes the start of a way to observe which equations
are being solved, which should help with improving the performance of
the interval Newton method
2023-03-12 19:15:58 +01:00
sheaf
cd6b7368f8
Update cabal.project for GHC 9.6
2023-02-09 17:53:25 +01:00
sheaf
8ac22b4738
some optimisations
2023-01-29 04:03:36 +01:00
sheaf
4174d9b5b6
rejigging
2023-01-28 01:26:47 +01:00
sheaf
236055b4ca
do the interval brush stroking at degree 3
2023-01-21 15:24:08 +01:00
sheaf
25d738b252
more WIP with TH now
2023-01-20 16:34:04 +01:00
sheaf
c7cd6c2a1c
WIP on monomial bases
2023-01-16 02:31:31 +01:00
sheaf
684550a795
implement intervallic brushes
2023-01-13 23:10:06 +01:00
sheaf
09c1bdd948
continue interval arithmetic integration
2023-01-13 15:23:33 +01:00
sheaf
a4e9c1cf32
preparation for interval arithmetic
2023-01-13 06:32:34 +01:00
sheaf
8fc5e6c9b8
compute brush strokes using the envelope equation
2023-01-11 15:26:12 +01:00
sheaf
671dae5474
use R2 instead of Point2D & Vector2D
2023-01-09 04:27:08 +01:00
sheaf
22820b328d
more cabal file cleanups
2023-01-09 02:54:42 +01:00
sheaf
cca4558985
put all colours into a separate CSS file
2023-01-08 21:12:00 +01:00
sheaf
5bd4e7f4cf
framework for brush differentiation
2023-01-08 17:16:14 +01:00
sheaf
4e5c848883
kill off brush EDSL
2022-12-11 02:33:34 +01:00
sheaf
066a4e653f
more GHC 9.4 build fixes
2022-12-04 17:25:44 +01:00
sheaf
bcd38ed791
clean up build steps & instructions
2022-12-04 15:52:29 +01:00
sheaf
c80fdac30a
switch to using eigen instead of hmatrix
2022-06-17 16:21:52 +02:00
sheaf
4e15380c7e
use diagrams to parse MetaFont paths
2022-02-13 17:30:54 +01:00
sheaf
64e45f126b
Refactor module hierarchy, use internal records
2022-02-11 22:05:13 +01:00
sheaf
5ff935b4b2
update render & select for new brush manipulation
2021-05-24 17:37:26 +02:00
sheaf
7431e8ba67
compute roots of envelope equation
2021-05-15 23:27:21 +02:00
sheaf
c64a4140c4
fix orientation of brush joins
2021-05-10 23:51:05 +02:00
sheaf
b46dc2a140
start reworking brush stroking
2021-05-10 18:02:42 +02:00
sheaf
1b0382f3b0
Switch to GTK4
2021-04-21 15:08:33 +00:00
sheaf
b32499cc68
GHC 9.0 compatibility
2021-02-23 13:16:26 +01:00
sheaf
ab3a12c983
use assertions instead of errors, minor linting
2020-11-15 06:28:48 +01:00
sheaf
1e4bb4bddc
implement a basic brush store
...
* each stroke stores the brushes it uses by reference,
so that one can interactively edit brushes
and see the strokes be updated in real-time
* when writing to a file, we retrive the brush code
from the reference, and include that information statically
2020-11-14 23:32:23 +01:00
sheaf
393ef6f06e
Implement programmable brush framework
2020-11-12 17:34:46 +00:00
sheaf
58ca70c1bd
optimise root-finding functions
...
* use PrimArray to represent polynomials
* add some strictness annotations
* turn on some optimisation flags
* use quadratic formula for quadratic polynomials
2020-09-19 00:43:07 +02:00
sheaf
7e8c2e10d1
add document history & undo/redo
2020-09-10 18:59:14 +02:00
sheaf
0a978b7c59
add hover indicator for points and guides
2020-09-09 01:23:25 +02:00
sheaf
dc6602bb79
refactor ruler subdivision handling
2020-09-08 22:20:46 +02:00
sheaf
a459467ed0
add parallelism for brush outline computation
...
* also enable varying the fitting parameters (UI todo)
2020-09-07 17:38:22 +02:00
sheaf
d501fcb76a
add ruler ticks
...
* also includes some improvements to Cairo pixel alignment
2020-09-07 15:44:08 +02:00
sheaf
3660cb8dce
subdivide paths by double-clicking on them
...
* still WIP:
- path mode: does not correctly interpolate brushes
- brush mode: does not propagate subdivision to other brushes
2020-09-06 04:43:28 +02:00
sheaf
031d72a69b
create/move/delete guides: drag from ruler area
2020-09-06 00:40:56 +02:00
sheaf
264fa8dff0
dynamic file tab close button behaviour
2020-09-04 22:51:47 +02:00
sheaf
341a8ed0ca
closing documents / removing file tabs
2020-09-03 05:57:08 +02:00
sheaf
5f3bbc891a
add saving/loading
2020-09-03 00:53:08 +02:00
sheaf
db4115c634
hook up menu to actions, + some refactors
2020-09-02 22:49:50 +02:00
sheaf
7033578e20
refactor: separation of event handling and actions
2020-09-02 04:52:08 +02:00