1#ifndef TRIQS_NEVANLINNA_KERNEL_FACTORY_HPP
2#define TRIQS_NEVANLINNA_KERNEL_FACTORY_HPP
4#include "Nevanlinna_parameters_t.hpp"
6#include "Nevanlinna_kernel.hpp"
7#include "Caratheodory_kernel.hpp"
9namespace triqs_Nevanlinna {
10 class kernel_factory {
12 static std::unique_ptr<kernel> get_kernel(Nevanlinna_parameters_t
const &p) {
14 case (NEVANLINNA):
return std::make_unique<Nevanlinna_kernel>(p.precision);
break;
15 case (CARATHEODORY):
return std::make_unique<Caratheodory_kernel>(p.precision);
break;
16 default:
throw unimplemented_kernel_error(
"Kernel is not implemented");