NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ left_multiply()

template<typename T >
void cntr::herm_matrix< T >::left_multiply ( int  tstp,
function< T > &  ft,
weight = 1.0 
)

Left-multiplies the herm_matrix with contour function. Preferred interface.

Purpose

Performs the operation \(C(t,t^\prime) \rightarrow w F(t)C(t,t^\prime)\), where \(C(t,t^\prime)\) is the herm_matrix, \(F(t)\) is a contour function and \(w\) is a real weight. The operation is performed at given time step tstp.

Parameters
tstp

[int] The time step at which \(F(t)\) and \(C(t,t^\prime)\) are multiplied.

ft

[function] The contour function.

weight

[T] The weight as above.

Definition at line 2903 of file cntr_herm_matrix_impl.hpp.

2903  {
2904  switch (size1_) {
2905  case 1:
2906  left_multiply_(tstp, ft, weight, std::integral_constant<int, 1>{});
2907  break;
2908  case 2:
2909  left_multiply_(tstp, ft, weight, std::integral_constant<int, 2>{});
2910  break;
2911  case 3:
2912  left_multiply_(tstp, ft, weight, std::integral_constant<int, 3>{});
2913  break;
2914  case 4:
2915  left_multiply_(tstp, ft, weight, std::integral_constant<int, 4>{});
2916  break;
2917  case 5:
2918  left_multiply_(tstp, ft, weight, std::integral_constant<int, 5>{});
2919  break;
2920  case 8:
2921  left_multiply_(tstp, ft, weight, std::integral_constant<int, 8>{});
2922  break;
2923  default:
2924  left_multiply_(tstp, ft, weight, std::integral_constant<int, LARGESIZE>{});
2925  break;
2926  }
2927 }