-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.txt
63 lines (57 loc) · 3.09 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
This file is part of Adaptive Plot, a library for intelligently
plotting functions from the MIT Scheme REPL.
Copyright (C) 2013 Alexey Radul
Adaptive Plot is free software: you can redistribute it and/or
modify it under the terms of the GNU Affero General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
Adaptive Plot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public
License along with Adaptive Plot. If not, see
<http://www.gnu.org/licenses/>.
Minor improvements:
- call plot-sync-window! at least every 100ms so you always see an
up-to-date line drawing
- make the autorefinement functions (e.g., plot-zoom-x!) accept
adverbs to pass to plot-refine! ?
- allow the plot object to remember adverbs (e.g. given to new-plot or
added with a new (plot-modify! plot . adverbs))?
- allow new-plot to accept an alist of points already computed from f before
(e.g., by a previous plot whose plot object you did not want to save)
- add a merge-plots or plot-merge-points function for adding previously
computed points from the same function to a plot in progress
- Proper y-range clipping might be implementable by adjusting the
relevant-points abstraction and its segment-producing clients to
produce cuts in the segment stream when a point in the x-range falls
outside the y-range. This affects segment splitting too.
- add a function to query a plot about how good it things its linear
approximation is? Actually computing this from the known points
would be n log n, so maybe it should be memoized in some nice way.
- Add a ./script/plot commandline tool that takes an expression in x
and plots it? Not clear how useful this is.
More testing:
- A reasonable end-to-end test would be rebuilding the examples that
appear in the documentation and comparing the pictures to what they
should be. A keen eye would be needed to detect subtle regressions
in plot quality.
- Test code coverage of the documented interface functions, to the
extent possible.
- Might be good to test zooming (checking that more points appear
where needed).
Even more things to test:
- Is there a sensible way to test y-range clipping?
- Could test that the number of points generated is linear in the number
of geometric features (under constant relative resolution)
- Could test that the running time is n log n in the number of points
- plot (x-uniformly n) should produce n+1 points
- and they should be uniformly spaced!
- Why does it make n+2? Is there a fencepost error somewhere?
- plot (adaptively-with n) should produce n points (on a fresh plot
as well as on an existing plot) for n >= 12.
- plot 'adaptively-to-with stops at either the adaptive or the count,
whichever is binding.
- Autorefinement should query the function relatively little
- as compared with uniform refinement for the same discrepancy