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

v0.11.8 could be breaking for downstream packages #160

Closed
simsurace opened this issue May 6, 2022 · 2 comments
Closed

v0.11.8 could be breaking for downstream packages #160

simsurace opened this issue May 6, 2022 · 2 comments

Comments

@simsurace
Copy link

Some code in ApproximateGPs broke silently, see JuliaGaussianProcesses/ApproximateGPs.jl#131.

@devmotion
Copy link
Member

The changes in 0.11.8 (v0.11.7...v0.11.8) are non-breaking. This is also confirmed by a simple example such as

julia> using LinearAlgebra
                                                                                                                                                                                                                                            
julia> chol_lower(a::Cholesky) = a.uplo === 'L' ? a.L : a.U'                                                                                                                                                                                

julia> chol_upper(a::Cholesky) = a.uplo === 'U' ? a.U : a.L'                                                                                                                    
                                                                                                                                                                                                                                            
julia> function chol_lower_new(a::Cholesky)                                                                                                                                                                                                 
           return a.uplo === 'L' ? LowerTriangular(a.factors) : LowerTriangular(a.factors')               
       end                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                            
julia> function chol_upper_new(a::Cholesky)                                                                                                                                                                                                 
           return a.uplo === 'U' ? UpperTriangular(a.factors) : UpperTriangular(a.factors')
       end

julia> A = (a = randn(5, 5); a * a' + I);

julia> CL = Cholesky(LowerTriangular(A));

julia> CU = Cholesky(UpperTriangular(A));

julia> CL.uplo
'L': ASCII/Unicode U+004C (category Lu: Letter, uppercase)

julia> CU.uplo
'U': ASCII/Unicode U+0055 (category Lu: Letter, uppercase)

julia> chol_lower(CL) == chol_lower_new(CL)
true

julia> chol_lower(CU) == chol_lower_new(CU)
true

julia> chol_upper(CL) == chol_upper_new(CL)
true

julia> chol_upper(CU) == chol_upper_new(CU)
true

It seems ApproximateGPs relies on some internals and/or this is an issue with AD systems.

@simsurace
Copy link
Author

Thanks for checking!

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

No branches or pull requests

2 participants