13#include <unsupported/Eigen/Splines>
18template <
typename Scalar>
30 int row()
const noexcept;
31 int col()
const noexcept;
42 Eigen::Spline<real_t, 1> imag_spline);
43 Scalar
val(
double omega)
const;
44 int row()
const noexcept;
45 int col()
const noexcept;
50 Eigen::Spline<real_t, 1> real_spline;
51 Eigen::Spline<real_t, 1> imag_spline;
54 using Entry = std::variant<ConstantEntry, OmegaDependentEntry>;
60 const std::vector<double> &omegas);
61 const std::vector<Entry> &
get_entries(
int kappa1,
int kappa2)
const;
64 std::map<std::pair<int, int>, std::vector<Entry>> entries_map;
ConstantEntry(int row, int col, Scalar val)
Scalar val(double omega) const
OmegaDependentEntry(int row, int col, Eigen::Spline< real_t, 1 > real_spline, Eigen::Spline< real_t, 1 > imag_spline)
typename traits::NumTraits< Scalar >::real_t real_t
const std::vector< Entry > & get_entries(int kappa1, int kappa2) const
std::variant< ConstantEntry, OmegaDependentEntry > Entry
std::complex< real_t > complex_t
void set_entries(int kappa1, int kappa2, const Eigen::MatrixX< Scalar > &tensor_in_cartesian_coordinates)
Matrix< Type, Dynamic, Dynamic > MatrixX
Helper struct to extract types from a numerical type.