https://mooseframework.inl.gov
MaternHalfIntCovariance.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 #ifdef MOOSE_LIBTORCH_ENABLED
10 
11 #pragma once
12 
13 #include "CovarianceFunctionBase.h"
14 
16 {
17 public:
20 
22  void computeCovarianceMatrix(torch::Tensor & K,
23  const torch::Tensor & x,
24  const torch::Tensor & xp,
25  const bool is_self_covariance) const override;
26 
27  static void maternHalfIntFunction(torch::Tensor & K,
28  const torch::Tensor & x,
29  const torch::Tensor & xp,
30  const torch::Tensor & length_factor,
31  const torch::Tensor & sigma_f_squared,
32  const torch::Tensor & sigma_n_squared,
33  const torch::Tensor & p,
34  const bool is_self_covariance);
35 
37  bool computedKdhyper(torch::Tensor & dKdhp,
38  const torch::Tensor & x,
39  const std::string & hyper_param_name,
40  unsigned int ind) const override;
41 
43  static void computedKdlf(torch::Tensor & K,
44  const torch::Tensor & x,
45  const torch::Tensor & length_factor,
46  const torch::Tensor & sigma_f_squared,
47  const torch::Tensor & p,
48  const int ind);
49 
50 private:
52  const torch::Tensor & _length_factor;
53 
55  const torch::Tensor & _sigma_f_squared;
56 
58  const torch::Tensor & _sigma_n_squared;
59 
61  const torch::Tensor & _p;
62 };
63 
64 #endif
const torch::Tensor & _sigma_f_squared
signal variance (^2)
static const std::string K
Definition: NS.h:174
const InputParameters & parameters() const
Base class for covariance functions that are used in Gaussian Processes.
const std::vector< double > x
static InputParameters validParams()
const torch::Tensor & _length_factor
lengh factor () for the kernel, in vector form for multiple parameters
const torch::Tensor & _p
non-negative p factor for use in Matern half-int. = p+(1/2) in terms of general Matern ...
static void maternHalfIntFunction(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &xp, const torch::Tensor &length_factor, const torch::Tensor &sigma_f_squared, const torch::Tensor &sigma_n_squared, const torch::Tensor &p, const bool is_self_covariance)
static void computedKdlf(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &length_factor, const torch::Tensor &sigma_f_squared, const torch::Tensor &p, const int ind)
Computes dK/dlf for individual length factors.
const Real p
const torch::Tensor & _sigma_n_squared
noise variance (^2)
MaternHalfIntCovariance(const InputParameters &parameters)
bool computedKdhyper(torch::Tensor &dKdhp, const torch::Tensor &x, const std::string &hyper_param_name, unsigned int ind) const override
Redirect dK/dhp for hyperparameter "hp".
void computeCovarianceMatrix(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &xp, const bool is_self_covariance) const override
Generates the Covariance Matrix given two points in the parameter space.