This function constructs a kernel object to represent properties of a Gaussian process node.

## Usage

```
kernel(
length,
scale = 1,
nugget = 1e-06,
name = "sexp",
prior_name = "ga",
prior_coef = NULL,
bounds = NULL,
nugget_est = FALSE,
scale_est = FALSE,
input_dim = NULL,
connect = NULL
)
```

## Arguments

- length
a vector of lengthscales. The length of the vector equals to:

either one if the lengthscales in the kernel function are assumed same across input dimensions; or

the total number of input dimensions, which is the sum of the number of feeding GP nodes in the last layer (defined by the argument

`input_dim`

) and the number of connected global input dimensions (defined by the argument`connect`

), if the lengthscales in the kernel function are assumed different across input dimensions.

- scale
the variance of a GP node. Defaults to

`1`

.- nugget
the nugget term of a GP node. Defaults to

`1e-6`

.- name
kernel function to be used. Either

`"sexp"`

for squared exponential kernel or`"matern2.5"`

for Matérn-2.5 kernel. Defaults to`"sexp"`

.- prior_name
prior options for the lengthscales and nugget term: gamma prior (

`"ga"`

), inverse gamma prior (`"inv_ga"`

), or jointly robust prior (`"ref"`

) for the lengthscales and nugget term. Set`NULL`

to disable the prior. Defaults to`"ga"`

.- prior_coef
a vector that contains the coefficients for different priors:

for the gamma prior, it is a vector of two values specifying the shape and rate parameters of the gamma distribution. Set to

`NULL`

for the default value`c(1.6,0.3)`

.for the inverse gamma prior, it is a vector of two values specifying the shape and scale parameters of the inverse gamma distribution. Set to

`NULL`

for the default value`c(1.6,0.3)`

.for the jointly robust prior, it is a vector of a single value specifying the

`a`

parameter in the prior. Set to`NULL`

for the default value`c(0.2)`

. See the reference below for the jointly robust prior.

Defaults to

`NULL`

.- bounds
a vector of length two that gives the lower bound (the first element of the vector) and the upper bound (the second element of the vector) of all lengthscales of the GP node. Defaults to

`NULL`

where no bounds are specified for the lengthscales.- nugget_est
set to

`TRUE`

to estimate the nugget term or to`FALSE`

to fix the nugget term as specified by the argument`nugget`

. If set to`TRUE`

, the value set to the argument`nugget`

is used as the initial value. Defaults to`FALSE`

.- scale_est
set to

`TRUE`

to estimate the variance (i.e., scale) or to`FALSE`

to fix the variance (i.e., scale) as specified by the argument`scale`

. Defaults to`FALSE`

.- input_dim
a vector that contains either

the indices of GP nodes in the feeding layer whose outputs feed into this GP node; or

the indices of global input dimensions that are linked to the outputs of some feeding emulators, if this GP node is in the first layer of a GP or DGP, which will be used for the linked emulation.

When set to

`NULL`

,all outputs from the GP nodes in the feeding layer feed into this GP node; or

all global input dimensions feed into this GP node.

Defaults to

`NULL`

.- connect
a vector that contains the indices of dimensions in the global input connecting to this GP node as additional input dimensions. When set to

`NULL`

, no global input connection is implemented. Defaults to`NULL`

. When this GP node is in the first layer of a GP or DGP emulator, which will consequently be used for linked emulation,`connect`

gives the indices of global input dimensions that are not connected to some feeding emulators. In such a case, set`input_dim`

to a vector of indices of the remaining input dimensions that are connected to the feeding emulators.

## Details

See further examples and tutorials at https://mingdeyu.github.io/dgpsi-R/.