Hi,
The function generate_spline_matrix in fouriertransform.C in the dmft
folder shows the comments as follows:
// A is the matrix whose inverse defines spline_matrix
//
// 6 6
// 1 4 1
// 1 4 1
// A = ...
//
// 1 4 1
// -2 0 0 2
However, the following codes,
dense_matrix A =
4*dt/6.*boost::numeric::ublas::identity_matrix<double>(Np1);
for (int i=1; i<Np1-1; i++) {
A(i,i-1) = dt/6.;
A(i,i+1) = dt/6.;
}
A(0,0) = 1.;
A(0, Np1-1) = 1.;
A(Np1-1, 0) = -2.*dt/6.;
A(Np1-1, 1) = -1.*dt/6.;
A(Np1-1, Np1-2) = 1*dt/6.;
A(Np1-1, Np1-1) = 2*dt/6.;
the red lines will make the matrix looks like
// 6 6
// 1 4 1
// 1 4 1
// A = ...
//
// 1 4 1
// -2 *-1* *1* 2
Is the comment correct or the code correct? Any reference for this
algorithm?
Thank you,
Kuang-Shing Chen