| 8 | namespace py = pybind11; |
| 9 | |
| 10 | class KernelInterface { |
| 11 | public: |
| 12 | KernelInterface (py::object kernel_spec) : kernel_spec_(kernel_spec) { |
| 13 | kernel_ = george::parse_kernel_spec(kernel_spec_); |
| 14 | }; |
| 15 | ~KernelInterface () { |
| 16 | delete kernel_; |
| 17 | }; |
| 18 | size_t ndim () const { return kernel_->get_ndim(); }; |
| 19 | size_t size () const { return kernel_->size(); }; |
| 20 | double value (const double* x1, const double* x2) const { return kernel_->value(x1, x2); }; |
| 21 | void gradient (const double* x1, const double* x2, const unsigned* which, double* grad) const { |
| 22 | return kernel_->gradient(x1, x2, which, grad); |
| 23 | }; |
| 24 | void x1_gradient (const double* x1, const double* x2, double* grad) const { |
| 25 | return kernel_->x1_gradient(x1, x2, grad); |
| 26 | }; |
| 27 | void x2_gradient (const double* x1, const double* x2, double* grad) const { |
| 28 | return kernel_->x2_gradient(x1, x2, grad); |
| 29 | }; |
| 30 | py::object kernel_spec () const { return kernel_spec_; }; |
| 31 | |
| 32 | private: |
| 33 | py::object kernel_spec_; |
| 34 | george::kernels::Kernel* kernel_; |
| 35 | }; |
| 36 | |
| 37 | |
| 38 | PYBIND11_MODULE(kernel_interface, m) { |
no outgoing calls
no test coverage detected