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.6.0 #213

Merged
merged 358 commits into from
Feb 10, 2022
Merged

V0.6.0 #213

merged 358 commits into from
Feb 10, 2022

Conversation

edaub
Copy link
Collaborator

@edaub edaub commented Feb 4, 2022

New release with major improvements in CPU and GPU versions of the GP class.

Changes in CPU version:

  • Mean functions are implemented using patsy to form design matrices.
  • Default Prior distributions chosen for correlation lengths and nugget (if fitted).
  • When fitting, starting point of optimization is a draw from the prior.
  • New parameters class and coordinate transformation objects to make parameter meanings more transparent.
  • Mean priors are now multivariate normal distributions.
  • Mean functions are fit analytically.
  • Additional kernels include Squared Exponential/Matern 5/2 with a single correlation length, and the product form of the Matern 5/2 kernel.

Changes in GPU Version:

  • Multi-Output GPs fit in parallel.

Other changes:

  • Additional demo examples and documentation improvements.

nbarlowATI and others added 30 commits December 14, 2020 11:38
…ProcessGPU_old, and add new (WIP) GaussianProcessGPU class using the pybind11 bindings
* updated urls and pip installation instructions

* updated numpy version needed for travis

* increment version number for merge
* Merge updated devel branch into master (#12)

* Fixed tsunami benchmarks to use numpy for loading data and added more detailed readme file

* added files for sphinx documentation and made some docstring corrections for autodoc compatability

* fixed minor formatting issues in readme headings

* added files needed for Travis CI

* fixed tests to be slightly more tolerant with numerical comparisons

* removed python 3.7 from Travis and decreased tolerance on minimization algorithms in GP unit tests

* additional increase in tolerance for GP unit tests for minimization

* added version number in setup.py file that is automatically found in package and docs

* need to install package in travis to get version number to load

* implemented fix to correctly compute kernel derivatives with respect to inputs

* added unit tests for input derivatives of kernel

* added docstrings for new kernel functions

* incremented version number for bug fix

* reformatted kernel tests to shorten lines and a few other things

* V0.2.0rc (#64)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* modified version for release v0.2.0

* Adjust the paper references in DimensionReduction.py

* Update paper reference in documentation

* V0.3.0rc (#125)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

* added additional requirements files for optional packages, testing packages, and documentation

* incremented version number

* Fix/absoluteimports (#98)

* fconverted to absolute imports for clarity and to fix issue with docs building

* added missing init file in linalg package

* corrected travis file to use requirements files

* incremented version number for merge

* Fix/pdfdocs (#99)

* fixed latex typos in threads section of toolkit

* corrected tex rendering in proc section of toolkit

* fixed tex formatting in examples section of toolkit

* fixed latex formatting in disc section of toolkit

* modified docs pages to fix latex build in alt section of toolkit

* incremented version number for merge into devel

* forcing pytest version in travis file to fix conflicting dependency

* moved pytest requirement to requirements file

* Feature/refactor readme (#106)

* added contributing guidelines and fixed typo in code of conduct

* refactored index page on docs, moved implementation docs to separate directory to avoid clutter

* added demo pages to documentation

* moved benchmarks to a separate benchmark directory from the unit tests

* added symlinks from benchmarks to test directory in case those are used somewhere

* added some additional link targets to facilitate links between pages

* fixed some doc errors in benchmarks

* refactored readme and intro doc pages

* removed lfs storage file .gitattributes

* fixed link issue in README

* reworked intro sections and added workflow figure

* added blurb on pip installation to installation docs page

* incremented version number for merge

* Fix/windows mogp (#107)

* default to single process when running on windows

* made multi output tests only use a single processor for consistency

* incremented version number

* Feature/tutorial (#116)

* added tutorial code and projectile simulator code to demos

* finished implementing tutorial code

* wrote tutorial up through validation section

* slight edits to docs organization and index page

* finished writing tutorial and added image showing output

* fixed a few typos and made a few corrections to tutorial

* increment version number for merge

* clarified requirement for scipy version 1.4 in tutorial

* Fix/gp interface (#117)

* fixed issue with empty list in GP init function and added support for string version of kernels

* updated docstrings in GP class to match new options

* incremented versin number for merge

* updated GP docstrings to fix some issues

* fixed prior and kernel initiation in MOGP class

* fixed up docstring with Oliver's suggestion

* Fix/predictnugget (#120)

* included predictions in nugget with a corresponding unit test

* incremented version number for merge

* modified MOGP class to include nugget flag

* MultiOutputGP Optimization start points (#121)

* modified fitting routine to accept different start points for each emulator

* increment version number

* minor tweak to fitting function wrapper

* trying to fix occasional runtime errors in mogp fitting tests

* Fix/demo updates (#124)

* rewrote GP demo to use new interface and use priors to improve emulator

* moved convenience function for printing into projectile

* modified tutorial to use printing function

* modified MICE demo to match new interface

* modified benchmarks to use new interface

* tidied a few things in MICE demo

* removed link to nonexistent file

* updated setup.py for merge

* updated version number for update to master

* fix/test fitting (#127)

* fixed minor issue in mogp fitting tests where tests did not fail correctly

* updated version number for merge to devel

* Fix markdown link to Contributor Covenant

* Fix gpu and fpga label links

Co-authored-by: Oliver Strickson <ostrickson@turing.ac.uk>
Co-authored-by: Oliver Strickson <ots22@users.noreply.github.com>

* Fix/kerneldist (#130)

* bugfix to catch situation where kernel distance returns NaN

* following confirmed bug fix, incremented version number for master update

* V0.4.0 (#148)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

* added additional requirements files for optional packages, testing packages, and documentation

* incremented version number

* Fix/absoluteimports (#98)

* fconverted to absolute imports for clarity and to fix issue with docs building

* added missing init file in linalg package

* corrected travis file to use requirements files

* incremented version number for merge

* Fix/pdfdocs (#99)

* fixed latex typos in threads section of toolkit

* corrected tex rendering in proc section of toolkit

* fixed tex formatting in examples section of toolkit

* fixed latex formatting in disc section of toolkit

* modified docs pages to fix latex build in alt section of toolkit

* incremented version number for merge into devel

* forcing pytest version in travis file to fix conflicting dependency

* moved pytest requirement to requirements file

* Feature/refactor readme (#106)

* added contributing guidelines and fixed typo in code of conduct

* refactored index page on docs, moved implementation docs to separate directory to avoid clutter

* added demo pages to documentation

* moved benchmarks to a separate benchmark directory from the unit tests

* added symlinks from benchmarks to test directory in case those are used somewhere

* added some additional link targets to facilitate links between pages

* fixed some doc errors in benchmarks

* refactored readme and intro doc pages

* removed lfs storage file .gitattributes

* fixed link issue in README

* reworked intro sections and added workflow figure

* added blurb on pip installation to installation docs page

* incremented version number for merge

* Fix/windows mogp (#107)

* default to single process when running on windows

* made multi output tests only use a single processor for consistency

* incremented version number

* Feature/tutorial (#116)

* added tutorial code and projectile simulator code to demos

* finished implementing tutorial code

* wrote tutorial up through validation section

* slight edits to docs organization and index page

* finished writing tutorial and added image showing output

* fixed a few typos and made a few corrections to tutorial

* increment version number for merge

* clarified requirement for scipy version 1.4 in tutorial

* Fix/gp interface (#117)

* fixed issue with empty list in GP init function and added support for string version of kernels

* updated docstrings in GP class to match new options

* incremented versin number for merge

* updated GP docstrings to fix some issues

* fixed prior and kernel initiation in MOGP class

* fixed up docstring with Oliver's suggestion

* Fix/predictnugget (#120)

* included predictions in nugget with a corresponding unit test

* incremented version number for merge

* modified MOGP class to include nugget flag

* MultiOutputGP Optimization start points (#121)

* modified fitting routine to accept different start points for each emulator

* increment version number

* minor tweak to fitting function wrapper

* trying to fix occasional runtime errors in mogp fitting tests

* Fix/demo updates (#124)

* rewrote GP demo to use new interface and use priors to improve emulator

* moved convenience function for printing into projectile

* modified tutorial to use printing function

* modified MICE demo to match new interface

* modified benchmarks to use new interface

* tidied a few things in MICE demo

* removed link to nonexistent file

* updated setup.py for merge

* fix/test fitting (#127)

* fixed minor issue in mogp fitting tests where tests did not fail correctly

* updated version number for merge to devel

* reset version number to start work on next release (#129)

* Fix/kerneldist (#131)

* Merge updated devel branch into master (#12)

* Fixed tsunami benchmarks to use numpy for loading data and added more detailed readme file

* added files for sphinx documentation and made some docstring corrections for autodoc compatability

* fixed minor formatting issues in readme headings

* added files needed for Travis CI

* fixed tests to be slightly more tolerant with numerical comparisons

* removed python 3.7 from Travis and decreased tolerance on minimization algorithms in GP unit tests

* additional increase in tolerance for GP unit tests for minimization

* added version number in setup.py file that is automatically found in package and docs

* need to install package in travis to get version number to load

* implemented fix to correctly compute kernel derivatives with respect to inputs

* added unit tests for input derivatives of kernel

* added docstrings for new kernel functions

* incremented version number for bug fix

* reformatted kernel tests to shorten lines and a few other things

* V0.2.0rc (#64)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* modified version for release v0.2.0

* Adjust the paper references in DimensionReduction.py

* Update paper reference in documentation

* V0.3.0rc (#125)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

* added additional requirements files for optional packages, testing packages, and documentation

* incremented version number

* Fix/absoluteimports (#98)

* fconverted to absolute imports for clarity and to fix issue with docs building

* added missing init file in linalg package

* corrected travis file to use requirements files

* incremented version number for merge

* Fix/pdfdocs (#99)

* fixed latex typos in threads section of toolkit

* corrected tex rendering in proc section of toolkit

* fixed tex formatting in examples section of toolkit

* fixed latex formatting in disc section of toolkit

* modified …
* added history matching demo code

* tweaked history matching demo to be more consistent

* added demo for dimension reduction

* updated docs to include new demos

* incremented version number for merge
…redict functions depending on whether 'unc' is set
…rtions on numerical results of multiple outputs
nbarlowATI and others added 27 commits September 22, 2021 11:11
…lators/indices, add accessor method for n, remove commented-out code. This is still too fragile though - too easy for Python garbage collection to call C++ destructors when we don't want it to. Need to rethink.
…on to deal with the case that library is in 'lib64' dir rather than the 'lib' dir that is in LD_LIBRARY_PATH
…own if _any_ emulator was not fit (and was also not translated by pybind11 when using openmp) - instead use Python logic to overwrite not-fit indices with NaN in predict result (or raise ValueError if allow_not_fit is False)
* basic implementation of parameters object with tests

* updated parameters object to allow data to be none

* modified GP class to use GPParams class, plust additional unit tests and fixes

* fixed up parameter changes in SequentialDesign

* fixed MOGP class and fitting routines plus tests for new params class

* tweaked transformations to be correct and added docstrings

* added params class to API docs

* fixed typo in GPParams.set_data to correct assertion

* factored out transforms to enable easier change and re-use

* updated tutorial to use params class

* converted list implementation of priors into a class

* added solver for default correlation priors and lognormal prior distribution

* refactored prior application code

* added class method to create default priors

* changed default prior behavior to use default priors

* got default priors working and tested out

* updated GP class to use design matrices

* updated fitting tests to conform to new gp interface

* fixed history matching tests to conform to gp class changes

* fixed an issue with mice design and disabled an outdated test

* fixed mogp docstring to avoid mention of mean function details

* removed mean function from the data array in the params object

* implemented mean priors and refactored other clasess in priors to accommodate

* refactored priors class for fitting changes and added backup default prior solver

* added weak priors class and refactored parameter transformations to clean up code

* fixed up GP and MOGP classes to use new prior class

* improved clarity of priors interface to MOGP class

* re-worked kernel code to remove covariance and avoid unneeded square roots

* added uniform kernels

* updated base kernel in GP-based classes

* fixed GP class to handle new kernel interface

* corrected error in LHD implementation to remove deprecated function

* implemented product form of kernel

* fixed a few remaining issues with kernel refactor

* added methods to get number of parameters

* fixed priors to handle different numbers of correlation lengths

* re-worked parameters to be able to fully specify how things are fit

* changed nugget setting to only throw errors when changing forbidden values

* integrated new priors and params into GP class

* fixed up MOGP class for new params/priors

* fixed fitting to handle updated GP classes

* skipped over MICEFastGP tests as they don't work with the new interface

* reworked cholesky routines to give unfiorm interface

* fixed up tests and hessian to handle new linalg functions

* updated documentation pages to reflect new classes

* fixed problem in RTD build by fixing minimum sphinx version

* renamed inverse choleskly class

* changed logdet function in ChoInv class

* edits based on code review

* bumped version number for merge into devel
* basic implementation of parameters object with tests

* updated parameters object to allow data to be none

* modified GP class to use GPParams class, plust additional unit tests and fixes

* fixed up parameter changes in SequentialDesign

* fixed MOGP class and fitting routines plus tests for new params class

* tweaked transformations to be correct and added docstrings

* added params class to API docs

* fixed typo in GPParams.set_data to correct assertion

* factored out transforms to enable easier change and re-use

* updated tutorial to use params class

* converted list implementation of priors into a class

* added solver for default correlation priors and lognormal prior distribution

* refactored prior application code

* added class method to create default priors

* changed default prior behavior to use default priors

* got default priors working and tested out

* updated GP class to use design matrices

* updated fitting tests to conform to new gp interface

* fixed history matching tests to conform to gp class changes

* fixed an issue with mice design and disabled an outdated test

* fixed mogp docstring to avoid mention of mean function details

* removed mean function from the data array in the params object

* implemented mean priors and refactored other clasess in priors to accommodate

* refactored priors class for fitting changes and added backup default prior solver

* added weak priors class and refactored parameter transformations to clean up code

* fixed up GP and MOGP classes to use new prior class

* improved clarity of priors interface to MOGP class

* re-worked kernel code to remove covariance and avoid unneeded square roots

* added uniform kernels

* updated base kernel in GP-based classes

* fixed GP class to handle new kernel interface

* corrected error in LHD implementation to remove deprecated function

* implemented product form of kernel

* fixed a few remaining issues with kernel refactor

* added methods to get number of parameters

* fixed priors to handle different numbers of correlation lengths

* re-worked parameters to be able to fully specify how things are fit

* changed nugget setting to only throw errors when changing forbidden values

* integrated new priors and params into GP class

* fixed up MOGP class for new params/priors

* fixed fitting to handle updated GP classes

* skipped over MICEFastGP tests as they don't work with the new interface

* reworked cholesky routines to give unfiorm interface

* fixed up tests and hessian to handle new linalg functions

* updated documentation pages to reflect new classes

* fixed problem in RTD build by fixing minimum sphinx version

* renamed inverse choleskly class

* changed logdet function in ChoInv class

* added additional linear algebra functions

* added method for multiplying design matrix by prior mean in MeanPriors

* renamed logdet_cov in MeanPriors for consistency

* fixed issues with linalg routines

* implemented analytical mean functions and derivatives

* removed hessian computation

* updated some docstrings in GP class

* updated more docstrings

* updated Kernel docstrings

* wrote docstrings for linalg routines

* added docstrings to priors module

* bumped version number for merge

* restored kernel file to devel version with some docstring modifications

* removed fitting covariance flag from GPParams

* removed fitting covariance from priors

* removed fit covariance flag from GPParams

* added GP demos for different kernels

* corrected docstring in GPParams init method

* removed n_data from implementation and used n_params consistently throughout
@edaub edaub merged commit 9d57721 into main Feb 10, 2022
edaub added a commit that referenced this pull request Feb 18, 2022
* V0.6.0 (#213)

* Modify setup.py to compile cuda code and produce libgpgpu library

* Merge devel branch into feature/gpu branch

* resolve merge conflicts in GaussianProcess.py (taking all changes from devel)

* Move old GaussianProcessGPU implementation (using ctypes) to GaussianProcessGPU_old, and add new (WIP) GaussianProcessGPU class using the pybind11 bindings

* only try to compile cuda code if we find nvcc executable

* Repo name change (#147)

* updated urls and pip installation instructions

* updated numpy version needed for travis

* increment version number for merge

* V0.5.0dev0 (#149)

* Merge updated devel branch into master (#12)

* Fixed tsunami benchmarks to use numpy for loading data and added more detailed readme file

* added files for sphinx documentation and made some docstring corrections for autodoc compatability

* fixed minor formatting issues in readme headings

* added files needed for Travis CI

* fixed tests to be slightly more tolerant with numerical comparisons

* removed python 3.7 from Travis and decreased tolerance on minimization algorithms in GP unit tests

* additional increase in tolerance for GP unit tests for minimization

* added version number in setup.py file that is automatically found in package and docs

* need to install package in travis to get version number to load

* implemented fix to correctly compute kernel derivatives with respect to inputs

* added unit tests for input derivatives of kernel

* added docstrings for new kernel functions

* incremented version number for bug fix

* reformatted kernel tests to shorten lines and a few other things

* V0.2.0rc (#64)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* modified version for release v0.2.0

* Adjust the paper references in DimensionReduction.py

* Update paper reference in documentation

* V0.3.0rc (#125)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

* added additional requirements files for optional packages, testing packages, and documentation

* incremented version number

* Fix/absoluteimports (#98)

* fconverted to absolute imports for clarity and to fix issue with docs building

* added missing init file in linalg package

* corrected travis file to use requirements files

* incremented version number for merge

* Fix/pdfdocs (#99)

* fixed latex typos in threads section of toolkit

* corrected tex rendering in proc section of toolkit

* fixed tex formatting in examples section of toolkit

* fixed latex formatting in disc section of toolkit

* modified docs pages to fix latex build in alt section of toolkit

* incremented version number for merge into devel

* forcing pytest version in travis file to fix conflicting dependency

* moved pytest requirement to requirements file

* Feature/refactor readme (#106)

* added contributing guidelines and fixed typo in code of conduct

* refactored index page on docs, moved implementation docs to separate directory to avoid clutter

* added demo pages to documentation

* moved benchmarks to a separate benchmark directory from the unit tests

* added symlinks from benchmarks to test directory in case those are used somewhere

* added some additional link targets to facilitate links between pages

* fixed some doc errors in benchmarks

* refactored readme and intro doc pages

* removed lfs storage file .gitattributes

* fixed link issue in README

* reworked intro sections and added workflow figure

* added blurb on pip installation to installation docs page

* incremented version number for merge

* Fix/windows mogp (#107)

* default to single process when running on windows

* made multi output tests only use a single processor for consistency

* incremented version number

* Feature/tutorial (#116)

* added tutorial code and projectile simulator code to demos

* finished implementing tutorial code

* wrote tutorial up through validation section

* slight edits to docs organization and index page

* finished writing tutorial and added image showing output

* fixed a few typos and made a few corrections to tutorial

* increment version number for merge

* clarified requirement for scipy version 1.4 in tutorial

* Fix/gp interface (#117)

* fixed issue with empty list in GP init function and added support for string version of kernels

* updated docstrings in GP class to match new options

* incremented versin number for merge

* updated GP docstrings to fix some issues

* fixed prior and kernel initiation in MOGP class

* fixed up docstring with Oliver's suggestion

* Fix/predictnugget (#120)

* included predictions in nugget with a corresponding unit test

* incremented version number for merge

* modified MOGP class to include nugget flag

* MultiOutputGP Optimization start points (#121)

* modified fitting routine to accept different start points for each emulator

* increment version number

* minor tweak to fitting function wrapper

* trying to fix occasional runtime errors in mogp fitting tests

* Fix/demo updates (#124)

* rewrote GP demo to use new interface and use priors to improve emulator

* moved convenience function for printing into projectile

* modified tutorial to use printing function

* modified MICE demo to match new interface

* modified benchmarks to use new interface

* tidied a few things in MICE demo

* removed link to nonexistent file

* updated setup.py for merge

* updated version number for update to master

* fix/test fitting (#127)

* fixed minor issue in mogp fitting tests where tests did not fail correctly

* updated version number for merge to devel

* Fix markdown link to Contributor Covenant

* Fix gpu and fpga label links

Co-authored-by: Oliver Strickson <ostrickson@turing.ac.uk>
Co-authored-by: Oliver Strickson <ots22@users.noreply.github.com>

* Fix/kerneldist (#130)

* bugfix to catch situation where kernel distance returns NaN

* following confirmed bug fix, incremented version number for master update

* V0.4.0 (#148)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

* added additional requirements files for optional packages, testing packages, and documentation

* incremented version number

* Fix/absoluteimports (#98)

* fconverted to absolute imports for clarity and to fix issue with docs building

* added missing init file in linalg package

* corrected travis file to use requirements files

* incremented version number for merge

* Fix/pdfdocs (#99)

* fixed latex typos in threads section of toolkit

* corrected tex rendering in proc section of toolkit

* fixed tex formatting in examples section of toolkit

* fixed latex formatting in disc section of toolkit

* modified docs pages to fix latex build in alt section of toolkit

* incremented version number for merge into devel

* forcing pytest version in travis file to fix conflicting dependency

* moved pytest requirement to requirements file

* Feature/refactor readme (#106)

* added contributing guidelines and fixed typo in code of conduct

* refactored index page on docs, moved implementation docs to separate directory to avoid clutter

* added demo pages to documentation

* moved benchmarks to a separate benchmark directory from the unit tests

* added symlinks from benchmarks to test directory in case those are used somewhere

* added some additional link targets to facilitate links between pages

* fixed some doc errors in benchmarks

* refactored readme and intro doc pages

* removed lfs storage file .gitattributes

* fixed link issue in README

* reworked intro sections and added workflow figure

* added blurb on pip installation to installation docs page

* incremented version number for merge

* Fix/windows mogp (#107)

* default to single process when running on windows

* made multi output tests only use a single processor for consistency

* incremented version number

* Feature/tutorial (#116)

* added tutorial code and projectile simulator code to demos

* finished implementing tutorial code

* wrote tutorial up through validation section

* slight edits to docs organization and index page

* finished writing tutorial and added image showing output

* fixed a few typos and made a few corrections to tutorial

* increment version number for merge

* clarified requirement for scipy version 1.4 in tutorial

* Fix/gp interface (#117)

* fixed issue with empty list in GP init function and added support for string version of kernels

* updated docstrings in GP class to match new options

* incremented versin number for merge

* updated GP docstrings to fix some issues

* fixed prior and kernel initiation in MOGP class

* fixed up docstring with Oliver's suggestion

* Fix/predictnugget (#120)

* included predictions in nugget with a corresponding unit test

* incremented version number for merge

* modified MOGP class to include nugget flag

* MultiOutputGP Optimization start points (#121)

* modified fitting routine to accept different start points for each emulator

* increment version number

* minor tweak to fitting function wrapper

* trying to fix occasional runtime errors in mogp fitting tests

* Fix/demo updates (#124)

* rewrote GP demo to use new interface and use priors to improve emulator

* moved convenience function for printing into projectile

* modified tutorial to use printing function

* modified MICE demo to match new interface

* modified benchmarks to use new interface

* tidied a few things in MICE demo

* removed link to nonexistent file

* updated setup.py for merge

* fix/test fitting (#127)

* fixed minor issue in mogp fitting tests where tests did not fail correctly

* updated version number for merge to devel

* reset version number to start work on next release (#129)

* Fix/kerneldist (#131)

* Merge updated devel branch into master (#12)

* Fixed tsunami benchmarks to use numpy for loading data and added more detailed readme file

* added files for sphinx documentation and made some docstring corrections for autodoc compatability

* fixed minor formatting issues in readme headings

* added files needed for Travis CI

* fixed tests to be slightly more tolerant with numerical comparisons

* removed python 3.7 from Travis and decreased tolerance on minimization algorithms in GP unit tests

* additional increase in tolerance for GP unit tests for minimization

* added version number in setup.py file that is automatically found in package and docs

* need to install package in travis to get version number to load

* implemented fix to correctly compute kernel derivatives with respect to inputs

* added unit tests for input derivatives of kernel

* added docstrings for new kernel functions

* incremented version number for bug fix

* reformatted kernel tests to shorten lines and a few other things

* V0.2.0rc (#64)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* modified version for release v0.2.0

* Adjust the paper references in DimensionReduction.py

* Update paper reference in documentation

* V0.3.0rc (#125)

* Add dimension reduction functionality (python impl. of gKDR)

* Tweaks to dimension reduction test

* Add documentation for DimensionReduction

* Add/fix some tests for DimensionReduction

* Fix test (DimensionReduction)

* Docstring -> raw string to fix invalid escape sequence warning

* Add sanity checks for parameters passed to DimensionReduction

* Fix assertion in DimensionReduction constructor

* Fix assertion in DimensionReduction constructor

* Test: optimize structural dimension

* First attempt at tuning the structural dimension (kdr)

* Make GaussianProcess objects callable (for prediction)

* Add 'train_model' interface to GaussianProcess

* DimensionReduction tweak to example

* Introduce X_scale/Y_scale parameters in gKDR kernel (DimensionReduction)

* Fix whitespace

* DimensionReduction: use specialized Hermitian eigensolver

* Tune parameters (structural dimension and kernel lengthscales) within gKDR

- rename tune_structural_dimension -> tune_parameters
- documentation
- improved optimization routine

* Improved tests for parameter tuning (gKDR)

* Tweak to test (DimensionReduction)

* Whitespace cleanup

* Correct naming of variable (DimensionReduction)

* Factor out internal loss function from gKDR.tune_parameters

* Use a smaller test example to reduce test runtime

* MCMC (#33)

* added separate functions to calculated squared exponential kernel

* added matern 5/2 covariance function

* put kernel computations into a separate function and removed conjugate gradient based unit test that always gave problems

* moved kernel functions and tests to separate files

* added function to compute gradient of the squared exponential kernel

* changed GP class to use derivative function

* added derivatives for matern 5/2 kernel

* quick and dirty modification to GP in order to use kernel functions

* cleaned up distance calculation to use standardized euclidean distance

* modified fast GP in MICE code to use kernel interface

* made correction to meaning of nugget parameter for MICE candidate GP to be relative to current variance

* fixed minor issues in MICE design to allow for zero samples and ensuring that parameter values are correctly set

* updated MICE benchmark details

* cosmetic tweaks to MICE benchmark

* full hessian implementation in kernel functions

* refactored kernel functions into objects

* implemented Hessian computation into GP class

* Documented base kernel class

* Documented derived kernel classes

* added documentation pages for kernels

* corrected documentation to include newly implemented classes and fixed some old bugs

* renamed run_init_design to be consistent with other methods that use *_initial_design

* made minor change in MICEFastGP documentation

* broke up prediction methods into single and multiple parameter sets, plus some other changes needed to accomodate them

* added routine to compute local covariance matrix from hessian

* implemented approximate normal hyperparameter sampling

* added utility functions for MCMC sampling

* fully implemented basic MCMC sampler

* working MCMC implementation with full set of tests

* fixed a few bugs in GP and MCMC implmentation

* fixed bug in variance prediction where roundoff error can cause negative variance

* added docstrings for MCMC routines

* added documentation for MCMC-related methods and code additions

* created benchmark for MCMC sampling and added documentation pages for it

* added information on MCMC benchmark to readme

* added additional pages to documentation for MCMC sampling

* removed renamed mcmc benchmark file

* fixed MCMC docstring in GP class

* Fix whitespace in Makefile

* Forward kwargs (gKDR._compute_loss); correct number of cross-validation folds

* Add benchmark for gKDR

* Wrap long lines in docstrings

* Versioning (#38)

* added code needed for versioning to devel branch

* forgot to modify setup.py file

* corrected line accidentally deleted from __init__.py

* added prerelease number to devel branch to track commits on devel

* corrected comments in conf.py to reflect full release numbering

* added simple demos for GP and MICE (#46)

* added simple demos for GP and MICE

* incremented prerelease number for merge

* History Matching (#39)

* initial commit of history matching class and benchmark with minor tweaks

* broke benchmark and sanity checks into two files for history matching

* reindented code to use 4 spaces

* added unit tests and some bug fixes for HistoryMatching

* added tests for implausability plus some other checks and bug fixes in HistoryMatching

* fixed misspelling of implausibility

* changed file name for benchmark in makefile

* fixed documentation in HistoryMatching class to be consistent with others

* improved documentation, cleaned up code, added a few unit tests for HistoryMatching

* fixed some docstring formatting and base rst file for HistoryMatching

* full implementation of history matching with unit tests and documentation

* simplified model discrepancy based on discussion with Danny

* fixes to history matching file and tests

* fixed some comparisons with None in SequentialDesign

* broke up long test for Hessian into parts

* incremented prerelease for history match merge

* Feature/mucmtoolkit (#54)

* added toolkit with converted pages and images

* incremented version number

* Feature/mucmtoolkit (#55)

* fixed bug in documentation to display methods

* version number change for corrected PR

* merge input derivative bugfix into devel (#61)

* Fix/cachefactmat (#62)

* corrected GP class to cache factorized matrix rather than inverse plus cleaned up a few unneeded internal variables

* incremented prerelease version number

* missed a line that should have been deleted

* added test to confirm that variance predictions are stable

* fixed solve routines to use cho_solve in scipy

* Fix/toolkitcorr (#63)

* toolkit proofreading and corrections

* continuing updates of toolkit pages

* edits to toolkit pages

* finished corrections up through meta section

* updated toolkit threads section

* updates to proc section of toolkit

* incremented prerelease version number

* reset version to 0.3.0dev0 be consistent with master update (#70)

* Feature/meanfunc (#74)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* updated pre-release version for merge to devel

* Feature/formula (#77)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* updated version number for merge into devel

* Feature/GPrefactor (#81)

* initial working implementation of mean function with tests

* implemented polynomial mean function

* added finite difference tests to mean function unit tests

* made finite difference spacing a fixture

* changed fixed mean to use a function rather than lambda for derivative

* implemented mean function (note only unit tests assume zero mean, will write new ones during refactor of interface)

* fixed bugs in mean function implementation

* implemented additional mean function capabilities and wrote tests

* added docstrings to base mean function class

* documented mean sum class

* documented mean product class

* documented mean composite class

* documented fixed mean class

* added documentation and a few other checks to the fixed mean function implementations

* added documentation for coefficient class

* added documentation for polynomial mean class

* added module docstring and test for indexing error in composite mean

* added documentation page for mean function

* implemented power mean function

* fixed bugs in mean power and wrote unit tests

* basic working formula parser on linear terms

* wrote tokenizer function

* modified tokenizer to correct exponentiation and wrote expression parser

* removed unneeded function

* appear to have working formula parser

* fixed issue with square bracket parsing

* added class method and moved some things around

* added some unit tests for formula parsing

* implemented tests for tokenizing, parsing, and evaluating functions

* full set of unit tests for formulas and additional method in mean function to create from a formula

* changed base name and created functional interface for formula plus string methods

* added docstrings and renamed some functions

* added documentation for formulas and modified the mean function page a bit

* added patsy to install for testing and updated python version to 3.7

* replaced GP class with new version and unit tests

* refactored some GP methods to use property decorator

* initial implementation of MLE fitting function

* fixed dimension reduction tests to use new GP interface

* fixed history matching to work with new GP interface

* fixed mice code to handle new GP interface

* remove multi output GP as planned part of refactor

* wrote unit test for MLE fitting function

* added code to GP class to allow for priors

* put bare bones MOGP class back into repository

* changed code to use log posterior and wrote fitting routine in parallel for MOGP

* initial implementation of normal and inverse gamma priors

* added gamma distribution to priors and put in second derivatives

* fixed scale parameter in gamma distribution to be consistent with scipy definition

* fixed other tests and classes to use new MAP function and added unit test for single GP MAP routine

* correctly passed uncertainty/derivative flags to multiouput predict method

* added some bare bones tests for MultiOutputGP

* added tests for prior classes

* added unit tests and put in extra checks on nugget prior

* put more tests on priors into GP class

* fixed mean function in MOGP to accept strings

* added test for multiplt output fitting

* made some functions in formula module private

* added brief docstrings for Priors and added priors to documentation

* cleaned up some GP documentation

* improved docstring and made nugget parameter more configurable for MOGP

* improvde fitting documentation

* put better math in prior docstrings

* fixed bug in prior inputs to MOGP

* fixed docstring issue needing raw string

* wrote R example using GP fitting and prediction

* updated prerelease version number for merge

* Fix/powermeanderiv (#83)

* fixed bugs in computation of PowerMean derivatives plus unit tests to verify

* incremented version number for merge into devel

* added code of conduct to project documentation (#86)

* added code of conduct to project documentation

* updated prerelease number for merge into devel

* Feature/requirements (#92)

*…
@edaub edaub deleted the v0.6.0 branch February 18, 2022 14:57
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.

3 participants