NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ increment_timestep_matrix_pseudo()

template<typename T , class Matrix >
void cntr::increment_timestep_matrix_pseudo ( int  tstp,
matrix< T > &  G,
std::complex< T >  alpha,
std::vector< Matrix > &  data 
)

Definition at line 1094 of file cntr_herm_pseudo_impl.hpp.

References get_timestep_pseudo(), and set_timestep_pseudo().

1094  {
1095  int i,l,m,sg,dim,ntau=G.ntau(),nmax=(tstp<0 ? ntau+1 : ntau+2*tstp+3);
1096  std::complex<T> *data1;
1097  assert((int)data.size()>=nmax);
1098  dim=G.size1();
1099  sg=dim*dim;
1100  data1=new std::complex<T> [nmax*sg];
1101  get_timestep_pseudo(tstp,G,data1);
1102  if(alpha.real()==1 && alpha.imag()==0) for(i=0;i<nmax;i++) for(l=0;l<dim;l++) for(m=0;m<dim;m++) data1[i*sg+l*dim+m] += data[i](l,m);
1103  else for(i=0;i<nmax;i++) for(l=0;l<dim;l++) for(m=0;m<dim;m++) data1[i*sg+l*dim+m] += alpha*data[i](l,m);
1104  set_timestep_pseudo(tstp,G,data1);
1105  delete [] data1;
1106 }
void set_timestep_pseudo(int tstp, GG &G, std::complex< double > *timestep)
void get_timestep_pseudo(int tstp, GG &G, std::complex< double > *timestep)
+ Here is the call graph for this function: