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

less bound checks and only need to check half the elements on symmetric. #108

Closed

Conversation

gilescope
Copy link

@gilescope gilescope commented Jun 20, 2022

(Also given how small kronecker_delta is we should hint to rustc that it should be inlined.)


Before we can merge this PR, please make sure that all the following items have been checked off:

  • Linked to an issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Added one line describing your change in CHANGELOG.md and added the appropriate changelog label to the PR.
  • Re-reviewed Files changed in the GitHub PR explorer.
  • Checked that changes and commits conform to the standards outlined in CONTRIBUTING.md.

@bhgomes bhgomes added P-low Priority: Low A-performance Area: Performance-related Issues and PRs labels Jul 6, 2022
@bhgomes bhgomes marked this pull request as draft July 8, 2022 19:53
Comment on lines +148 to +151
// Check the lower triangle against the upper triangle
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate().skip(i + 1) {
if !F::eq(&inner_element, &self.0[j][i]) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// Check the lower triangle against the upper triangle
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate().skip(i + 1) {
if !F::eq(&inner_element, &self.0[j][i]) {
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate().skip(i + 1) {
if inner_element != &self.0[j][i] {

Comment on lines +130 to +132
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate() {
if !F::eq(&inner_element, &kronecker_delta(i, j)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate() {
if !F::eq(&inner_element, &kronecker_delta(i, j)) {
for (i, element) in self.0.iter().enumerate() {
for (j, inner_element) in element.iter().enumerate() {
if inner_element != &kronecker_delta(i, j) {

@bhgomes
Copy link
Contributor

bhgomes commented Aug 23, 2022

Moved to #212.

@bhgomes bhgomes closed this Aug 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-performance Area: Performance-related Issues and PRs P-low Priority: Low
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants