TRIQS/triqs_Nevanlinna 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
kernel_factory.hpp
1#ifndef TRIQS_NEVANLINNA_KERNEL_FACTORY_HPP
2#define TRIQS_NEVANLINNA_KERNEL_FACTORY_HPP
3
4#include "Nevanlinna_parameters_t.hpp"
5#include "kernel.hpp"
6#include "Nevanlinna_kernel.hpp"
7#include "Caratheodory_kernel.hpp"
8
9namespace triqs_Nevanlinna {
10 class kernel_factory {
11 public:
12 static std::unique_ptr<kernel> get_kernel(Nevanlinna_parameters_t const &p) {
13 switch (p.kernel) {
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");
17 }
18 }
19 };
20
21} // namespace triqs_Nevanlinna
22#endif //TRIQS_NEVANLINNA_KERNEL_FACTORY_HPP