Repository: JuliaLinearAlgebra/GenericLinearAlgebra.jl
Pull request #74 (2021-03-26 16:41:10)

move CI to GitHub Actions

codecov[bot]: # [Codecov](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=h1) Report
> Merging [#74](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=desc) (abef42d) into [master](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/commit/74e818349c735f5640e704c1f54599e338d1091d?el=desc) (74e8183) will **increase** coverage by `0.11%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/graphs/tree.svg?width=650&height=150&src=pr&token=eO37qmAboR)](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master      #74      +/-   ##
==========================================
+ Coverage   72.53%   72.65%   +0.11%     
==========================================
  Files          11       11              
  Lines        1453     1375      -78     
==========================================
- Hits         1054      999      -55     
+ Misses        399      376      -23     
```


| [Impacted Files](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/rectfullpacked.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL3JlY3RmdWxscGFja2VkLmps) | `87.14% <0.00%> (-1.75%)` | :arrow_down: |
| [src/householder.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL2hvdXNlaG9sZGVyLmps) | `78.31% <0.00%> (-1.45%)` | :arrow_down: |
| [src/tridiag.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL3RyaWRpYWcuamw=) | `83.33% <0.00%> (-1.29%)` | :arrow_down: |
| [src/svd.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL3N2ZC5qbA==) | `79.68% <0.00%> (-0.17%)` | :arrow_down: |
| [src/qr.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL3FyLmps) | `98.03% <0.00%> (-0.04%)` | :arrow_down: |
| [src/lapack.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL2xhcGFjay5qbA==) | `52.08% <0.00%> (+0.09%)` | :arrow_up: |
| [src/eigenSelfAdjoint.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL2VpZ2VuU2VsZkFkam9pbnQuamw=) | `92.28% <0.00%> (+0.29%)` | :arrow_up: |
| [src/eigenGeneral.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL2VpZ2VuR2VuZXJhbC5qbA==) | `66.66% <0.00%> (+0.39%)` | :arrow_up: |
| [src/juliaBLAS.jl](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74/diff?src=pr&el=tree#diff-c3JjL2p1bGlhQkxBUy5qbA==) | `24.24% <0.00%> (+1.54%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=footer). Last update [74e8183...abef42d](https://codecov.io/gh/JuliaLinearAlgebra/GenericLinearAlgebra.jl/pull/74?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

simonbyrne: Ah, Travis is also used for Documenter. Unfortunately that will require permissions to set up.

Patch:
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
new file mode 100644
index 0000000..caf93a7
--- /dev/null
+++ b/.github/workflows/CI.yml
@@ -0,0 +1,48 @@
+name: CI
+on:
+  - push
+  - pull_request
+jobs:
+  test:
+    name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - version: 'nightly'
+            os: ubuntu-latest
+            arch: x64
+          - version: '1'
+            os: ubuntu-latest
+            arch: x64
+          - version: '1.3'
+            os: ubuntu-latest
+            arch: x64
+          - version: '1'
+            os: windows-latest
+            arch: x64
+          - version: '1'
+            os: macos-latest
+            arch: x64
+    steps:
+      - uses: actions/checkout@v2
+      - uses: julia-actions/setup-julia@v1
+        with:
+          version: ${{ matrix.version }}
+          arch: ${{ matrix.arch }}
+      - uses: actions/cache@v1
+        env:
+          cache-name: cache-artifacts
+        with:
+          path: ~/.julia/artifacts
+          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
+          restore-keys: |
+            ${{ runner.os }}-test-${{ env.cache-name }}-
+            ${{ runner.os }}-test-
+            ${{ runner.os }}-
+      - uses: julia-actions/julia-runtest@v1
+      - uses: julia-actions/julia-processcoverage@v1
+      - uses: codecov/codecov-action@v1
+        with:
+          file: lcov.info
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 998992d..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-language: julia
-
-os:
-  - linux
-
-julia:
-  - 1
-  - nightly
-
-matrix:
-  allow_failures:
-  - julia: nightly
-
-after_success:
-  - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Coveralls.submit(process_folder()); Codecov.submit(process_folder())';
-
-jobs:
-  include:
-    - stage: "Documentation"
-      julia: 1.0
-      os: linux
-      script:
-        - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd()));
-                                               Pkg.instantiate()'
-        - julia --project=docs/ docs/make.jl
-      after_success: skip
diff --git a/src/svd.jl b/src/svd.jl
index 68944df..4d09e6a 100644
--- a/src/svd.jl
+++ b/src/svd.jl
@@ -552,11 +552,15 @@ function LinearAlgebra.svd!(A::StridedMatrix{T};
 
     # Form the matrices U and Vᴴ by combining the singular vector matrices of the bidiagonal SVD with the Householder reflectors from the bidiagonal factorization.
     if istriu(_B)
-        U  = BF.leftQ*F.U
+        U  = Matrix{T}(I, m, full ? m : n)
+        U[1:n,1:n] = F.U
+        lmul!(BF.leftQ, U)
         Vᴴ = F.Vt*BF.rightQ'
     else
         U  = BF.leftQ*F.V
-        Vᴴ = (BF.rightQ*F.U)'
+        Vᴴ = Matrix{T}(I, full ? n : m, n)
+        Vᴴ[1:m,1:m] = F.U'
+        rmul!(Vᴴ, BF.rightQ')
     end
 
     s = F.S


Test patch:
diff --git a/test/svd.jl b/test/svd.jl
index 1ff00c3..2dec80e 100644
--- a/test/svd.jl
+++ b/test/svd.jl
@@ -44,6 +44,11 @@ using Test, GenericLinearAlgebra, LinearAlgebra, Quaternions
         Fbig = svd(Abig)
         @test abs.(F.U'Float64.(Fbig.U)) ≈ I
         @test abs.(F.V'Float64.(Fbig.V)) ≈ I
+
+        F    = svd(A, full=true)
+        Fbig = svd(Abig, full=true)
+        @test abs.(F.U'Float64.(Fbig.U)) ≈ I
+        @test abs.(F.V'Float64.(Fbig.V)) ≈ I
     end
 
     @testset "Issue 54" begin
@@ -53,4 +58,5 @@ using Test, GenericLinearAlgebra, LinearAlgebra, Quaternions
         U, S, V = svd(A)
         @test A ≈ U*Diagonal(S)*V'
     end
+
 end