13 #ifndef QMCPLUSPLUS_CONTRACTION_HELPER_HPP 14 #define QMCPLUSPLUS_CONTRACTION_HELPER_HPP 45 inline T
SymTrace(T h00, T h01, T h02, T h11, T h12, T h22,
const T gg[6])
47 return h00 * gg[0] + h01 * gg[1] + h02 * gg[2] + h11 * gg[3] + h12 * gg[4] + h22 * gg[5];
54 T
v_m_v(T h00, T h01, T h02, T h11, T h12, T h22, T g1x, T g1y, T g1z, T g2x, T g2y, T g2z)
56 return g1x * g2x * h00 + g1x * g2y * h01 + g1x * g2z * h02 + g1y * g2x * h01 + g1y * g2y * h11 + g1y * g2z * h12 +
57 g1z * g2x * h02 + g1z * g2y * h12 + g1z * g2z * h22;
89 return h000 * (g1x * g2x * g3x) + h001 * (g1x * g2x * g3y + g1x * g2y * g3x + g1y * g2x * g3x) +
90 h002 * (g1x * g2x * g3z + g1x * g2z * g3x + g1z * g2x * g3x) +
91 h011 * (g1x * g2y * g3y + g1y * g2x * g3y + g1y * g2y * g3x) +
93 (g1x * g2y * g3z + g1x * g2z * g3y + g1y * g2x * g3z + g1y * g2z * g3x + g1z * g2x * g3y + g1z * g2y * g3x) +
94 h022 * (g1x * g2z * g3z + g1z * g2x * g3z + g1z * g2z * g3x) + h111 * (g1y * g2y * g3y) +
95 h112 * (g1y * g2y * g3z + g1y * g2z * g3y + g1z * g2y * g3y) +
96 h122 * (g1y * g2z * g3z + g1z * g2y * g3z + g1z * g2z * g3y) + h222 * (g1z * g2z * g3z);
T SymTrace(T h00, T h01, T h02, T h11, T h12, T h22, const T gg[6])
compute Trace(H*G)
helper functions for EinsplineSetBuilder
T v_m_v(T h00, T h01, T h02, T h11, T h12, T h22, T g1x, T g1y, T g1z, T g2x, T g2y, T g2z)
compute vector[3]^T x matrix[3][3] x vector[3]
T t3_contract(T h000, T h001, T h002, T h011, T h012, T h022, T h111, T h112, T h122, T h222, T g1x, T g1y, T g1z, T g2x, T g2y, T g2z, T g3x, T g3y, T g3z)
Coordinate transform for a 3rd rank symmetric tensor representing coordinate derivatives (hence t3_co...