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
Specialize EvaluatorTensorProduct<evaluate_evenodd> for non-templated execution #14237
Conversation
inline void | ||
even_odd_apply(const int n_rows_in, |
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.
I made this to free function, since ...
static void | ||
apply(const Number2 *DEAL_II_RESTRICT shape_data, |
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.
... the "old" apply function is static, which does not work for the non-templated case, where we pass in the bounds via the constructor.
{ | ||
for (int i1 = 0; i1 < n_blocks1; ++i1) | ||
{ | ||
Number xp[mid > 0 ? mid : 1], xm[mid > 0 ? mid : 1]; |
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.
Does this work? This would create a variable-sized array, which is (IIRC) a GNU extension.
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.
You are right. I am a bit surprised that I did not get a warning. I have pushed a fix.
fdfae7c
to
8e6e6eb
Compare
/rebuild |
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.
This looks good. As far as I can see, this should not have any effect on the code generation for the case n_rows > 0
, so I am looking forward to see this confirmed in the performance tests.
Specialize EvaluatorTensorProduct<evaluate_evenodd> for non-templated execution
No description provided.