SpecialMatrices.jl icon indicating copy to clipboard operation
SpecialMatrices.jl copied to clipboard

Streamline Strang to be simply SymTridiagonal

Open JeffFessler opened this issue 3 years ago • 2 comments

The previous version of Strang was not type stable because it returned (typically) SymTridiagonal but Diagonal in the case n=1. It is simpler just to always use SymTridiagonal and rely on all the work in LinearAlgebra for that type.

This is a major breaking change because it eliminates the (unnecessary) Strang type. Here Strang is simply a convenience constructor for a particular SymTridiagonal. So it will require a major version bump if there is agreement to do this streamlining.

Edit: actually, Strang matrices are a subtype of SymTridiagonal that is also Toeplitz. Using SymTridiagonal alone does not exploit the Toeplitz nature. This needs further thought and some benchmarking to see if exploiting the special structure gives faster * than SymTridiagonal provides.

JeffFessler avatar Aug 31 '21 01:08 JeffFessler

Codecov Report

Merging #51 (6c8035f) into master (bb13de9) will increase coverage by 0.39%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #51      +/-   ##
==========================================
+ Coverage   74.74%   75.13%   +0.39%     
==========================================
  Files           8        8              
  Lines         194      185       -9     
==========================================
- Hits          145      139       -6     
+ Misses         49       46       -3     
Impacted Files Coverage Δ
src/strang.jl 100.00% <100.00%> (+23.07%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update bb13de9...6c8035f. Read the comment docs.

codecov[bot] avatar Aug 31 '21 01:08 codecov[bot]

Pull Request Test Coverage Report for Build 1184370518

  • 4 of 4 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+4.001%) to 75.135%

Totals Coverage Status
Change from base Build 1184340319: 4.001%
Covered Lines: 139
Relevant Lines: 185

💛 - Coveralls

coveralls avatar Aug 31 '21 18:08 coveralls

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@bb13de9). Click here to learn what that means. Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             master       #51   +/-   ##
==========================================
  Coverage          ?   100.00%           
==========================================
  Files             ?         8           
  Lines             ?       224           
  Branches          ?         0           
==========================================
  Hits              ?       224           
  Misses            ?         0           
  Partials          ?         0           

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

codecov[bot] avatar Jan 02 '23 00:01 codecov[bot]