-
Notifications
You must be signed in to change notification settings - Fork 40
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
Projection base implementation derivatives performance/encapsulation … #185
Conversation
…improvements (better use of temporaries)
Thanks @pmaciel for cleanup and possibly resulting performance improvements. What caused you to tackle this? |
@@ -49,8 +45,7 @@ class ProjectionImpl : public util::Object { | |||
static const ProjectionImpl* create(const eckit::Parametrisation& p); | |||
static const ProjectionImpl* create(const std::string& type, const eckit::Parametrisation& p); | |||
|
|||
ProjectionImpl() = default; | |||
virtual ~ProjectionImpl() = default; // destructor should be virtual |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there no need for a virtual destructor?
Good question; these are just a set of changes I had here when porting the bounding box calculation to eckit::geo (it is a requirement for earthkit.maps). the changes are only a cleanup/minor performace regarding avoiding so many temporaries of KPoint, and precompute recurring divisions -- which the bisection methods relies on. Functionality should be absolutely identical, so I'm surprised by the FPE issue being triggered (good catch, I have to cover for that for sure). What's the platform/compiler combination for this triggering? |
…es; MercatorProjection fix on handling extrema
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #185 +/- ##
===========================================
- Coverage 80.07% 80.06% -0.01%
===========================================
Files 859 798 -61
Lines 63684 61943 -1741
===========================================
- Hits 50995 49596 -1399
+ Misses 12689 12347 -342 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks seems to have fixed it!
* release/0.37.0: (23 commits) Update Changelog Version 0.37.0 Projection base implementation derivatives performance/encapsulation … (#185) atlas_io is an adaptor library when eckit_codec is available (#181) Fix build for configuration setting ATLAS_BITS_LOCAL=64 (#184) Revert "Avoid linker warnings on macOS about 'ld: warning: could not create compact unwind for ...'" Cosmetic: readability braces Initialize std::array values to zero because valgrind complains, even though c++ standard mandates it should be default-initialized to zero Fix bug in TraceT caused by typo where the title was wrong Avoid linker warnings on macOS about 'ld: warning: could not create compact unwind for ...' Use new LocalConfiguration baseclass functions in util::Config and util::Metadata instead of eckit::Value backdoor Removed leftover code missed in PR #175 Update `SphericalVector` to work with StructuredColumns as source functionspace. (#175) Bugfix for regional grids with ny > nx Refactoring of interpolation::method::SphericalVector and implementation of adjoint methods. (#168) Added test with empty integer sequence. Added arrayForEachDim method. Add docs build workflow Github Actions: Fix macOS MPI slots Fix for elements that might have unassigned partition via parallel Delaunay meshgenerator ...
Projection base implementation derivatives performance/encapsulation improvements (better use of temporaries). This comes from the eckit::geo library.
Mesh adds a missing header atlas/runtime/Exception.h