1 Introduction  
2 Gaussian Process Regression  
3 Strategies for Constraints  
4 Bound Constraints  
4.1 Transformed Output and Likelihood  
4.2 Discrete Constraints using Truncated Gaussian Distributions  
4.3 Constrained Maximum Likelihood Optimization to Enforce Nonnegativity Constraints  
4.4 Splines  
5 Monotonicity Constraints  
5.1 Constrained Likelihood with Derivative Information  
5.2 Monotonicity using Truncated Gaussian Distributions  
5.3 Monotonic Splines  
5.4 Convexity  
6 Differential Equation Constraints  
6.1 Block Covariance Kernel  
6.2 Transformed Covariance Kernel  
6.3 Empirical Mean and Covariance  
6.4 Specialized Kernel Construction  
7 Boundary Condition Constraints  
7.1 Spectral Expansion Approach  
7.2 Implementation  
7.3 Extensions  
8 Computational Considerations  
8.1 The Truncated Multivariate Normal Distribution  
8.2 Constrained Maximum Likelihood Estimation for Splines  
8.3 Scalable Inference  
9 Conclusion