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

Repo name change #147

Merged
merged 3 commits into from
Jan 6, 2021
Merged

Repo name change #147

merged 3 commits into from
Jan 6, 2021

Conversation

edaub
Copy link
Collaborator

@edaub edaub commented Jan 6, 2021

Changes urls needed to re-name the repo to mogp-emulator. Documentation still uses mogp_emulator as the package name, but for consistency between pip, github, and readthedocs we are using mogp-emulator in all URL-based names. Addresses #100 and #146.

Changes are mostly to README.md, setup.py, and the documentation pages to update installation instructions and links to other project URLs.

This was linked to issues Jan 6, 2021
@edaub edaub changed the title updated urls and pip installation instructions Repo name change Jan 6, 2021
@edaub edaub merged commit 533a556 into devel Jan 6, 2021
@edaub edaub deleted the fix/repo_rename branch January 6, 2021 17:07
edaub added a commit that referenced this pull request Jan 7, 2021
* 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 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>

* bugfix to catch situation where kernel distance returns NaN

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

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

* Feature/excaliburdemo (#133)

* code to create example plots in excalibur workshop talk

* updated docs to include excalibur workshop demo

* increment version number

* Repo name change (#147)

* updated urls and pip installation instructions

* updated numpy version needed for travis

* increment version number for merge

* fixed setup file for master update

Co-authored-by: Oliver Strickson <ostrickson@turing.ac.uk>
Co-authored-by: Oliver Strickson <ots22@users.noreply.github.com>
edaub added a commit that referenced this pull request Aug 16, 2021
* Method to update hyperparameters (GPU)

* Extend tests of GaussianProcess to cover GaussianProcessGPU too

Sometimes this means relying on the fallback-to-CPU behaviour of the latter class,
which is okay.

* Simple (inefficient) implementation of batch prediction

* Add initial GaussianProcessGPU docs

* Fix to test (GaussianProcess)

* Update state to include inv covariance matrix (GaussianProcessGPU)

* Add GPU kernel for computing diagonal elements of the covariance matrix (GaussianProcessGPU)

* Add batch prediction and predictive variance (GPU)

* 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

* Exceptions for GaussianProcessGPU; refactor tests

 - Distinguish unimplemented functionality from GPU/library
   unavailability
 - Handle these situations when running tests more carefully (allowing
   that the test environment may not have GPUs available, but warn)
 - Split large `test_GaussianProcess_predict` test
 - Forward unspecified args/kwargs to super().predict on fallback

* Expose batch and variance predictions in python interface (GPU)

* GaussianProcessGPU.predict docstring

* Bugfix: no transpose in cublas dgemm call

* Handle exception caused by unavailable GPU in remaining tests

* Handle one UnavailableError (GPU)

* Add failing variance test (GPU)

* Single variance prediction (GPU)

* Enable batched variance

* Batched variance (GPU)

* Only use batched predictions (GPU)

* Add some matrix utilities

* Calculate Cholesky factors/invQ (GPU)

* Bugfix: targets on device

* Constructing GP on-device doesn't set invQ

The main consequence of this is that `GaussianProcessGPU._set_params`
must call `update_theta` in all cases.

Some tests fail at the moment, that involve taking derivatives, or pickling.

* Fix test failures related to pickling and adaptive nugget

* Remove invQ/invQt arguments to GP constructor and update_theta

* Tweak to parameter setting (GPU)

* WIP: logdet GPU

* WIP: logdet GPU

* 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)

* WIP: deriv GPU

* 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

* GPU implementation of dloglik_dtheta (untested)

* Add strided_range.hpp

* 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 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>

* bugfix to catch situation where kernel distance returns NaN

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

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

* Feature/excaliburdemo (#133)

* code to create example plots in excalibur workshop talk

* updated docs to include excalibur workshop demo

* increment version number

* Comment out work-in-progress dloglik_dtheta

* Bugfix: copy hyperparameters to device correctly

* Add some tests of basic functionality of the GPU library (from C++)

* WIP add gp_gpu.cu with first draft of pybind11 wrapper for DenseGP_GPU class

* Use Eigen matrices in DenseGP interface

 - the pybind wrapper will pass numpy ndarrays to these correctly

* Don't pass theta to DenseGP constructor (unused); predict_batch determines Nbatch from argument

* add remaining DenseGP_GPU methods to gp_gpu.cu pybind interface

* modify Makefile to build libgpgpu.so using the pybind11 bindings

* 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 in…
edaub added a commit that referenced this pull request Feb 10, 2022
* 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)

* added additional requirements fi…
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)

*…
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.

Re-name repository Put package on PyPi
1 participant