You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the peeling machine is a vector of pointers to functions which gets called with arguments.
for(std::size_t i = 0; i < peeling_functions_.size(); ++i) {
(*peeling_functions_[i])(work, family_members_[i], mat);
}
We should evaluate whether this is the most efficient strategy. Options include
Vector of function pointers (current configuration)
Vector of std::function objects to type erase the underlying function/functor/etc (more flexible option)
Vector of functor objects with virtual operator()() and family_members_[i] stored internally
Storing mat[i] instead of family members, but this would require a different peeling machine foreach mat we want to use.
Our current option should be the fastest, if we were not passing variables to it. However, it might be faster to wrap some of the options inside functors with virtual operators or type erasure.
The text was updated successfully, but these errors were encountered:
Currently the peeling machine is a vector of pointers to functions which gets called with arguments.
We should evaluate whether this is the most efficient strategy. Options include
std::function
objects to type erase the underlying function/functor/etc (more flexible option)operator()()
and family_members_[i] stored internallymat[i]
instead of family members, but this would require a different peeling machine foreach mat we want to use.Our current option should be the fastest, if we were not passing variables to it. However, it might be faster to wrap some of the options inside functors with virtual operators or type erasure.
The text was updated successfully, but these errors were encountered: