mjdominus/spark forked from holman/spark

Commits on Nov 16, 2011
1. committed Nov 16, 2011
Commits on Nov 15, 2011
1. gwern committed with Nov 15, 2011
2. committed Nov 15, 2011
3. `plus tests`
committed Nov 15, 2011
4. committed Nov 15, 2011
5. ```Use rational arithmetic throughout to avoid shelling out to bc, which
is slow and apparently nonportable.  Instead of dealing with decimal
numbers like 4.35, we convert 4.35 to 435 / 100 and deal with the
integers 435 and 100.

It is ridiculous, but it is a lot faster.

All the tests pass now.```
committed Nov 15, 2011
6. committed Nov 15, 2011
7. ```Since 5.5 is the minimal input value, it should be at the baseline,
and should have the shortest possible tick, not the second-shortest.```
committed Nov 15, 2011
8. ```The input data were 1,5,22,13,5

Say 1 maps to a bar of height 0 and 22 to a bar of height 6.
Then the linear mapping has that x :-> (x-1) * 2/7.

So 13 :-> 24/7 = 3.43.  The test data had it displayed as a bar of
height 4, and I changed it to a bar of height 3.```
committed Nov 15, 2011
9. committed Nov 15, 2011
10. committed Nov 15, 2011
11. committed Nov 15, 2011
12. committed Nov 15, 2011
13. `also use division instead of looping with trial multiplication`
committed Nov 15, 2011
14. holman committed Nov 15, 2011
15. holman committed Nov 15, 2011
16. `…spark into patricklucas-allow_spaced_input`
holman committed Nov 15, 2011
17. holman committed Nov 15, 2011
18. ```Instead of interpreting input "1 3 2 6 8" as "13268", treat spaces
as commas then condense.```
patricklucas committed Nov 15, 2011
19. `Minimizes this branches overall change.`
patricklucas committed Nov 15, 2011
20. ```This allows input like "1, 2, 4, 7, 9" which is sometimes useful
with longer lists.```
patricklucas committed Nov 15, 2011
21. ```…fc67

obvious shell cleanups```
holman committed Nov 15, 2011
22. ```This shaves a few lines from the print_ticks function. We
use "printf" instead of "echo -n" as the former is more
portable (although we are hopelessly tied to bash due to the
use of arrays, anyway, so either would be fine).```
peff committed Nov 15, 2011
23. ```This is way faster than invoking bc repeatedly.

Before:

\$ DATA=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
\$ time spark.old \$DATA >/dev/null
real    0m1.018s
user    0m0.020s
sys     0m0.060s

After:

\$ time spark \$DATA >/dev/null
real    0m0.089s
user    0m0.000s
sys     0m0.008s

Or to make it more clear:

\$ elapsed_ms() {
/usr/bin/time -f %e "\$@" 2>&1 >/dev/null |
perl -lpe '\$_ *= 1000'
}
\$ spark "\$(elapsed_ms spark.old \$DATA),\$(elapsed_ms spark \$DATA)"
▇▁```
peff committed Nov 15, 2011
24. ```We just reassign the data to itself in the loop, and then
peff committed Nov 15, 2011
25. holman committed Nov 15, 2011
26. `Add simple roundup tests.`
holman committed Nov 15, 2011
27. benburkert committed Nov 15, 2011
28. `This should be a bit quicker (and portable).`
JeffAbrahamson committed with holman Nov 15, 2011
29. holman committed Nov 15, 2011
30. holman committed Nov 15, 2011
31. `Missing "`
holman committed Nov 15, 2011
32. Tom Bell committed Nov 15, 2011
33. holman committed Nov 15, 2011
34. `Added U+2584 to get smother ticks.`
holman committed Nov 15, 2011