sig
  type t
  val create :
    Interfaces.Specs.Eval.Input.t array -> Interfaces.Specs.Eval.Inputs.t
  val get_n_points : Interfaces.Specs.Eval.Inputs.t -> int
  val choose_subset :
    Interfaces.Specs.Eval.Inputs.t ->
    Gpr_utils.Int_vec.t -> Interfaces.Specs.Eval.Inputs.t
  val create_inducing :
    Interfaces.Specs.Kernel.t ->
    Interfaces.Specs.Eval.Inputs.t -> Interfaces.Specs.Eval.Inducing.t
  val create_default_kernel_params :
    Interfaces.Specs.Eval.Inputs.t ->
    n_inducing:int -> Interfaces.Specs.Kernel.params
  val calc_upper :
    Interfaces.Specs.Kernel.t ->
    Interfaces.Specs.Eval.Inputs.t -> Lacaml.D.mat
  val calc_diag :
    Interfaces.Specs.Kernel.t ->
    Interfaces.Specs.Eval.Inputs.t -> Lacaml.D.vec
  val calc_cross :
    Interfaces.Specs.Kernel.t ->
    inputs:Interfaces.Specs.Eval.Inputs.t ->
    inducing:Interfaces.Specs.Eval.Inducing.t -> Lacaml.D.mat
  val weighted_eval :
    Interfaces.Specs.Kernel.t ->
    inputs:Interfaces.Specs.Eval.Inputs.t ->
    inducing:Interfaces.Specs.Eval.Inducing.t ->
    coeffs:Lacaml.D.vec -> Lacaml.D.vec
end