Fix method ambiguity in Gaussian complete_compressor #127
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #126
Description
This PR resolves the method ambiguity issue in the
complete_compressor
function when using theGaussian
compressor withVector
andMatrix
inputs.Changes Made
complete_compressor(ingredients::Gaussian, v::Vector{T})
to handle vectors by reshaping them into column matrices before dispatching.complete_compressor(ingredients::Gaussian, A::AbstractMatrix)
that usesinvoke
to call theAbstractArray
method, preventing recursion and ambiguity.Motivation and Context
Previously, calling
complete_compressor(::Gaussian, ::Matrix{Float64})
was ambiguous because it matched two methods:complete_compressor(ingredients::Gaussian, A::AbstractArray)
complete_compressor(compressor::Compressor, A::AbstractMatrix)
This caused
StackOverflowError
andMethodError
.The fix ensures clear dispatch and stable behavior for Gaussian compressors when used with both
Vector
andMatrix
inputs.Testing
Types of Changes
Checklist
Code and Comments
Testing