InterpolationRules: Return coefficients by const reference
Previously they were returned by value, but I do not remember any actual reason for that. Return by const reference leads to a measurable speed increase when computing the derivatives of projection-based FE onto the sphere. It also fixed some undefined behavior in that code, which took const-references of the returned temporaries. Returning the coefficients by const reference is more difficult for product manifolds, because previously the interpolation rules stored the coefficients separately for each factor space. With this patch, these rules now store the coefficients twice: once in the old separate format, and once as needed for returning them by reference. Interpolation rules are not meant to exist in large numbers, and therefore I do not think that this extra space consumption matters.
Loading
Please register or sign in to comment