Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance minutiae #94

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

JamesTheAwesomeDude
Copy link
Contributor

From the original paper:

The compactness of the recommended solutions is due to the use of nested
equations to compute elliptic terms and of only three trigonometric function:
sine, cosine, and arc tangent. Nesting reduces the number of operations involving
storage and retrieval of intermediate results (particularly when programming)
in assembly language), reduces the length of the program and the time of execution,
and minimizes the possibility of underflow.

I'm marking this PR as a draft, pending benchmarking verification that these changes are actually relevant given the introspective ability of today's compilers, but I strongly suspect it's at least probable that it will make a difference and take full advantage of the design that these equations have had since the start.

From the original paper:

    The compactness of the recommended solutions is due to the use of nested
equations to compute elliptic terms and of only three trigonometric functions:
sine, cosine, and arc tangent.  Nesting reduces the number of operations involving
storage and retrieval of intermediate results (particularly when programming)
in assembly language), reduces the length of the program and the time of execution,
and minimizes the possibility of underflow.

TODO: benchmarking and performance analysis to validate that this change
is appropriately taken advantage of by modern engines such as V8 and
Spidermonkey
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant