Behdad Esfahbod
b305ef49be
Another micro-optimization
2016-07-28 16:31:30 -07:00
Behdad Esfahbod
40ebe85d9e
Move special-cases of split_cubic_into_n() into it
...
Surprisingly this doesn't seem to slow down, but also slightly
speed up.
2016-07-28 16:25:58 -07:00
Behdad Esfahbod
ede89847a7
Apply review changes from https://github.com/googlei18n/cu2qu/pull/37
2016-07-28 16:12:00 -07:00
Behdad Esfahbod
223450e8d7
Break out of conversion loop early if a curve fails to convert
...
Makes the compatible-conversion about 40% faster.
2016-07-28 14:41:33 -07:00
Behdad Esfahbod
54104319f9
Another theoretical optimization
2016-07-28 13:57:17 -07:00
Behdad Esfahbod
de9b9ba3e1
Reduce code duplication
2016-07-28 13:51:11 -07:00
Behdad Esfahbod
77c913ba61
Add keyword-argument hack for 2/3 as well
2016-07-28 13:44:41 -07:00
James Godfrey-Kittle
d87bbe25fd
Typo
2016-07-28 12:51:08 -07:00
James Godfrey-Kittle
c0b6ed92e3
Update/add some rudimentary comments
2016-07-28 12:32:29 -07:00
James Godfrey-Kittle
f7b9ebba06
Move error classes, dot function to top of file
2016-07-28 12:12:22 -07:00
James Godfrey-Kittle
5db64c55aa
More vertical whitespace
...
Style guide says two blank lines between top level functions.
2016-07-28 12:09:52 -07:00
James Godfrey-Kittle
152baa88a5
No lines over 80 characters
...
This meant going back on my horizontal whitespace around operators
stance, but in this case I think it looks better to reduce whitespace
than to break up the line.
2016-07-28 12:07:44 -07:00
James Godfrey-Kittle
65befad036
Update some comments
2016-07-28 12:03:53 -07:00
James Godfrey-Kittle
8dc57da4ae
Remove unnecessary parentheses
2016-07-28 12:00:13 -07:00
James Godfrey-Kittle
e5cf42545b
Variable names
...
In some cases these changes were made for clarity, in some cases more
just for consistency. Anyways we should now have mostly consistent and
reasonably clear variable names everywhere.
2016-07-28 11:56:14 -07:00
James Godfrey-Kittle
3225b1e249
No camelcase
...
I guess this was done for consistency with names in FontTools, but I
gotta say it was bugging me that some functions in this module used
underscores and some used camelcase. Style guide says underscores.
2016-07-28 11:41:42 -07:00
James Godfrey-Kittle
ccb1a73edd
Factor before variable when no whitespace
...
This is just a consistency thing; see code above change.
2016-07-28 11:37:08 -07:00
James Godfrey-Kittle
746873233b
More whitespace around binary operators
...
This is very subjective, but my preference is more whitespace.
Generally the only place I didn't put in whitespace was for
multiplication within statements that also contained additions,
without parentheses.
2016-07-28 11:35:32 -07:00
James Godfrey-Kittle
847d12180b
Get rid of unnecessary decimal points
...
We import division from __future__, so float division happens by
default.
2016-07-28 11:21:47 -07:00
James Godfrey-Kittle
d864619c8b
Typo
2016-07-27 16:52:19 -07:00
James Godfrey-Kittle
4d72a44d35
Remove unused code
2016-07-27 16:52:09 -07:00
James Godfrey-Kittle
a91108185f
Correct single-segment approximation return
2016-07-27 16:51:45 -07:00
James Godfrey-Kittle
039e35b212
No error returned from API, update tests
2016-07-27 13:21:47 -07:00
Behdad Esfahbod
9a2d4b810a
Reduce more work
2016-07-26 16:00:49 -04:00
Behdad Esfahbod
f6daaae2f8
Port dot() product to native complex operations
...
For reference:
http://www.solitaryroad.com/c606.html
2016-07-26 15:43:38 -04:00
Behdad Esfahbod
efb25578a1
Minor
2016-07-25 04:16:02 -04:00
Behdad Esfahbod
0b91ec8024
Remove unuse exception
2016-07-25 04:14:34 -04:00
Behdad Esfahbod
13cd5c3b09
Some more micro-optimization
2016-07-25 04:08:37 -04:00
Behdad Esfahbod
b9dcbb5668
Do some less work!
2016-07-25 04:00:44 -04:00
Behdad Esfahbod
021d8c107d
Remove unused code
2016-07-25 03:57:33 -04:00
Behdad Esfahbod
59e8ce6e84
Inline cubic_cubic_fit()
...
Results in a few percents speedup.
2016-07-25 03:53:23 -04:00
Behdad Esfahbod
3aa4c1e1e4
Remove unused error code
2016-07-25 03:38:13 -04:00
Behdad Esfahbod
612aa2af87
Return results in tuples, not complex points
2016-07-25 03:35:40 -04:00
Behdad Esfahbod
1cc3c5eae8
Inline _splitCubicIntoN()
2016-07-25 03:14:02 -04:00
Behdad Esfahbod
40bba687ab
Replace splitCubicAtT() with splitCubicIntoN()
...
Another 6% speedup.
2016-07-25 03:13:01 -04:00
Behdad Esfahbod
64af3ad4a8
Inline cubic_quadratic_fit()
...
Another 5%.
2016-07-25 03:04:51 -04:00
Behdad Esfahbod
abc18236af
Inline splitCubicIntoTwo()
...
Saves another 5%.
2016-07-25 02:12:15 -04:00
Behdad Esfahbod
c50d498ea5
Hand-code splitCubicIntoThree()
2016-07-24 14:10:41 -04:00
Behdad Esfahbod
8a13ef1edf
Use splitCubicIntoTwo() more
...
Shaves another 5%.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
dff2cd8669
Add splitCubicIntoTwo()
...
Speeds up another 15% or so.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
12629a715b
Whitespace
2016-07-23 17:11:45 -07:00
Behdad Esfahbod
f63a31dd99
Do less work.
2016-07-23 17:11:28 -07:00
Behdad Esfahbod
d3f566ba54
Use complex numbers to implement points
...
Shows a 30% speedup for me.
2016-07-22 23:40:44 -07:00
Behdad Esfahbod
46f8416fff
Remove more unused code
2016-07-22 23:11:13 -07:00
Behdad Esfahbod
bd52b4d510
Remove unused code
2016-07-22 15:52:00 -07:00
Behdad Esfahbod
49c2d886a0
Use exact error
...
To me, this looks about 40% faster.
WIP though. API needs to change to take out error output argument.
Further optimization is possible by merging loops.
2016-07-22 02:21:41 -07:00
Behdad Esfahbod
185216bbfe
Remove unused return values
2016-07-22 01:13:12 -07:00
Behdad Esfahbod
2d5e57e973
Make it twice faster by inlining lerp and expanding bezier equations
2016-07-22 00:49:19 -07:00
jamesgk
3c3c579ab1
Assert # error tolerances matches # fonts/curves
2015-12-10 12:50:53 -08:00
jamesgk
b568c934d0
Remove max_n parameter
...
This is probably not useful as a parameter, so instead we hardcode the
value into the main module.
2015-12-08 12:44:29 -08:00