51 // LatticeFunction<dcomplex,dim> temp(nRefined, pfhatRefined.basisVectors);
52 // Eigen::Vector<double, Eigen::Dynamic> center = pfRefined.unitCell.rowwise().sum()/2;
53 // Exponential exp_function(center);
54 // LatticeFunction<dcomplex, dim> exp_factor(nRefined, pfhatRefined.basisVectors, exp_function);
55 // temp.values = exp_factor.values * pfhatRefined.values;
56 // pfhatRefined.values = temp.values;
58 Eigen::array<Eigen::DenseIndex, dim> strides;
60 for (int i = 0; i < dim; i++)
61 strides[i] = factor(i);
63 pfhat.values = pfhatRefined.values.stride(strides);
75 return exp(2*std::numbers::pi*std::complex<double>(0,1)*vec.dot(
x));
79 template<
typename T,
typename Scalar>
85 template<
typename T,
typename Scalar>