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

Speedtest and Inversion python bindings for Arrays #20

Merged
merged 11 commits into from
Jul 17, 2020
Merged

Speedtest and Inversion python bindings for Arrays #20

merged 11 commits into from
Jul 17, 2020

Conversation

oxt3479
Copy link
Contributor

@oxt3479 oxt3479 commented Jul 3, 2020

This pull would add:

1: Optional speed tests (in Python 3*) that can be performed by configuring -DPYTHON=ON and -DSPEED=ON when running cmake configuration. (Only needs to be done once as it is a toggle.)
* These tests only build for Python 3 because Python 3 has more accurate options for time measurement.

2: New python bindings permitting calls to .inverse(), invert(), gjInverse(), and gjInvert() on M22xArray, M33xArray, M44xArray matrix objects. Tests demonstrate that this improves speed dramatically (over x20 faster) as it avoids some Pythonic overhead.

Bindings like this can be added to other Matrix functions, but whether that is imperative has not yet been decided.

  • Please, comment any impressions on this and whether these would be useful for operations like shear, scale, rotations etc.
  • Bindings may help make tests more exhaustive later but this could also be done directly in C++.

A feature for running these tests against a 'baseline' can be added in the future as well.

Copy link
Member

@cary-ilm cary-ilm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM as a first pass at the very least.

@oxt3479 oxt3479 merged commit 40da365 into AcademySoftwareFoundation:master Jul 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants