Skip to content

Conversation

@kayween
Copy link
Collaborator

@kayween kayween commented Dec 14, 2025

This PR would fix #118.

In general, many operations in BlockDiagLinearOperator assume that base_linear_op is a linear operator. Thus, it's better to convert it into a linear operator in the constructor.

Added test cases to cover the change.

Copilot AI review requested due to automatic review settings December 14, 2025 21:38
@kayween kayween requested a review from Balandat December 14, 2025 21:39
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes issue #118 by ensuring that tensor inputs to BlockDiagLinearOperator are properly converted to DenseLinearOperator instances before being processed. This is necessary because the parent class BlockLinearOperator calls LinearOperator-specific methods like _permute_batch() on base_linear_op when block_dim != -3, which would fail for raw tensors.

Key Changes:

  • Added tensor-to-LinearOperator conversion in BlockDiagLinearOperator.__init__()
  • Added test class TestBlockDiagLinearOperatorFromTensor to validate tensor initialization
  • Minor style improvement removing unnecessary parentheses in tuple unpacking

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
linear_operator/operators/block_diag_linear_operator.py Added import of DenseLinearOperator and conversion logic in constructor to wrap tensor inputs before passing to parent class
test/operators/test_block_diag_linear_operator.py Added _initialize_from_tensor flag and new test class to verify tensor initialization works correctly, plus minor style fix

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Collaborator

@Balandat Balandat left a comment

Choose a reason for hiding this comment

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

thanks, lgtm

@Balandat Balandat merged commit 2101877 into cornellius-gp:main Dec 15, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] BlockDiagLinearOperator calls nonexistent PyTorch method

2 participants