def _generate_tensor_contraction_standard(terms, parameters, g_set):
    """
    Generate code for computation of tensor contraction using full
    tensor contraction.
    """
    iadd = format['iadd']
    assign = format['assign']
    element_tensor = format['element tensor']
    geometry_tensor = format['geometry tensor']
    zero = format['float'](0)
    inner_product = format['inner product']
    incremental = False
    epsilon = parameters['epsilon']
    A0, GK, optimized_contraction = terms[0]
    primary_indices = A0.primary_multi_index.indices
    gk_tensor = []
    for j, (A0, GK, optimized_contraction) in enumerate(terms):
        gk_tensor_j = []
        for a in A0.secondary_multi_index.indices:
            gk_tensor_j.append((geometry_tensor(j, a), a))
        gk_tensor.append((gk_tensor_j, j))
    lines = []
    for k, i in enumerate(primary_indices):
        name = element_tensor(k)
        coefficients = []
        entries = []
        for gka, j in gk_tensor:
            A0, GK, optimized_contraction = terms[j]
            for gk, a in gka:
                a0 = A0.A0[tuple(i + a)]
                if abs(a0) < epsilon:
                    continue
                coefficients.append(a0)
                entries.append(gk)
                g_set.add(gk)
        value = inner_product(coefficients, entries)
        value = value or zero
        if incremental:
            lines.append(iadd(name, value))
        else:
            lines.append(assign(name, value))
    return '\n'.join(lines)
