Skip to content

Adding GPs with linear observations#67

Draft
DuncanBlch wants to merge 3 commits into
evandieren:mainfrom
DuncanBlch:linear-operator-gp
Draft

Adding GPs with linear observations#67
DuncanBlch wants to merge 3 commits into
evandieren:mainfrom
DuncanBlch:linear-operator-gp

Conversation

@DuncanBlch

@DuncanBlch DuncanBlch commented Apr 27, 2026

Copy link
Copy Markdown

This pull request extends the AbstractBayesOpt package by introducing support for linear operator Gaussian processes and related utilities. The main changes add new surrogate model types, operators, and utility functions, as well as updating exports and test imports to reflect these additions.

Additions for Linear Operator Gaussian Processes:

  • Added LinearOperatorGP as a new surrogate model, and exported it along with its associated operators: IdentityOperator, PartialDerivative, and LaplacianOperator. (src/AbstractBayesOpt.jl)
  • Exported new types for linear operator kernels and means: LinearOperatorKernel and LinearOperatorMean. (src/AbstractBayesOpt.jl)

Surrogate utilities:

  • Moved the _prep_input utility functions to standardize input formatting for different types, improving compatibility with operator-based surrogates. (src/surrogates/surrogates_utils.jl)

Exports and test updates:

  • Updated exports in AbstractBayesOpt.jl to include new surrogates, operators, and utility functions. (src/AbstractBayesOpt.jl),
  • Updated test/runtests.jl to import the new internal utility and constructor functions for testing. (test/runtests.jl)

TODO before ready for review

  • Working on the test set for 100% coverage
  • Write tutorials and documentation related to LinearOperatorGPs
  • Check equivalence to StandardGP and GradientGP
  • Profiling the functions added

@codecov

codecov Bot commented Apr 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.15966% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 84.92%. Comparing base (673e168) to head (fa52490).

Files with missing lines Patch % Lines
src/surrogates/LinearOperatorGP.jl 99.09% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #67      +/-   ##
==========================================
+ Coverage   81.00%   84.92%   +3.92%     
==========================================
  Files          13       14       +1     
  Lines         558      670     +112     
==========================================
+ Hits          452      569     +117     
+ Misses        106      101       -5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@evandieren

Copy link
Copy Markdown
Owner

This library could be useful to this PR: FunctionalGPs.jl (cc @timweiland, @marvinpfoertner ). We will push an updated version of this code in the following weeks (cc @DuncanBlch) once the semester project is concluded.

Happy to discuss how these compare and if we can use FunctionalGPs.jl into AbstractBayesOpt.jl directly.

@timweiland

Copy link
Copy Markdown

Let me know if you end up trying out FunctionalGPs.jl and you need any help / any new features :)

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.

4 participants