2271                                                        {
 2272 
 2274 
 2276 
 2279                       false);
 2282                       false);
 2283 
 2284    
 2285    double *f0_phi_ii = &*
f0PhiII.data().begin();
 
 2286    double *diff_f0_phi_ii = &*
diffF0PhiII.data().begin();
 
 2287    auto t_f0_phi_ii = getFTensor1FromPtr<3>(f0_phi_ii);
 2288    auto t_diff_f0_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f0_phi_ii);
 2290                                                n0f0_idx, n1f0_idx, 
n, t_grad_n,
 
 2291                                                t_f0_phi_ii, &t_diff_f0_phi_ii);
 2292 
 2293    
 2294    double *f1_phi_ii = &*
f1PhiII.data().begin();
 
 2295    double *diff_f1_phi_ii = &*
diffF1PhiII.data().begin();
 
 2296    auto t_f1_phi_ii = getFTensor1FromPtr<3>(f1_phi_ii);
 2297    auto t_diff_f1_phi_ii = getFTensor2FromPtr<3, DIM>(diff_f1_phi_ii);
 2299                                                n0f1_idx, n1f1_idx, 
n, t_grad_n,
 
 2300                                                t_f1_phi_ii, &t_diff_f1_phi_ii);
 2301 
 2306    t_grad_n0f0_p_n1f0(
i) = t_grad_n0f0(
i) + t_grad_n1f0(
i);
 
 2307 
 2312    t_grad_n0f1_p_n1f1(
i) = t_grad_n0f1(
i) + t_grad_n1f1(
i);
 
 2313 
 2314    iFiF0.resize(p + 1, 
false);
 
 2317    double *ifif0 = &*
iFiF0.data().begin();
 
 2318    double *diff_ifif0 = &*
diffIFiF0.data().begin();
 
 2319    iFiF1.resize(p + 1, 
false);
 
 2322    double *ifif1 = &*
iFiF1.data().begin();
 
 2323    double *diff_ifif1 = &*
diffIFiF1.data().begin();
 
 2324 
 2325    for (int gg = 0; gg != nb_integration_pts; ++gg) {
 2326 
 2327      const int shift_n = (DIM + 1) * gg;
 2328      const double n0f0 = 
n[shift_n + n0f0_idx];
 
 2329      const double n1f0 = 
n[shift_n + n1f0_idx];
 
 2330      const double n2f0 = 
n[shift_n + n2f0_idx];
 
 2331      const double n0f1 = 
n[shift_n + n0f1_idx];
 
 2332      const double n1f1 = 
n[shift_n + n1f1_idx];
 
 2333      const double n2f1 = 
n[shift_n + n2f1_idx];
 
 2334 
 2337 
 2338      int kk = 0;
 2339      for (int oo = 2; oo <= p; ++oo) {
 2340 
 2341        auto t_f0_phi_ii = getFTensor1FromPtr<3>(&f0_phi_ii[phi_shift]);
 2342        auto t_diff_f0_phi_ii =
 2343            getFTensor2FromPtr<3, DIM>(&diff_f0_phi_ii[diff_phi_shift]);
 2344        auto t_f1_phi_ii = getFTensor1FromPtr<3>(&f1_phi_ii[phi_shift]);
 2345        auto t_diff_f1_phi_ii =
 2346            getFTensor2FromPtr<3, DIM>(&diff_f1_phi_ii[diff_phi_shift]);
 2347 
 2348        for (int ii = 0; ii <= oo - 2; ii++) {
 2349 
 2350          int jj = oo - 2 - ii;
 2351 
 2352          
 2354              jj + 1, 2 * ii + 1, n2f0, n0f0 + n1f0, &t_grad_n2f0(0),
 2355              &t_grad_n0f0_p_n1f0(0), ifif0, diff_ifif0, 3);
 2357              diff_ifif0[0 + jj], diff_ifif0[(jj + 1) + jj],
 2358              diff_ifif0[2 * (jj + 1) + jj]);
 2359 
 2360          t_phi(
i) = ifif0[jj] * t_f0_phi_ii(
i);
 
 2361          t_diff_phi(
i, 
j) = ifif0[jj] * t_diff_f0_phi_ii(
i, 
j) +
 
 2362                             t_diff_ifif0(
j) * t_f0_phi_ii(
i);
 
 2363 
 2364          ++t_phi;
 2365          ++t_diff_phi;
 2366          ++t_f0_phi_ii;
 2367          ++t_diff_f0_phi_ii;
 2368          ++kk;
 2369 
 2370          
 2372              jj + 1, 2 * ii + 1, n2f1, n0f1 + n1f1, &t_grad_n2f1(0),
 2373              &t_grad_n0f1_p_n1f1(0), ifif1, diff_ifif1, 3);
 2375              diff_ifif1[0 + jj], diff_ifif1[(jj + 1) + jj],
 2376              diff_ifif1[2 * (jj + 1) + jj]);
 2377          t_phi(
i) = ifif1[jj] * t_f1_phi_ii(
i);
 
 2378          t_diff_phi(
i, 
j) = ifif1[jj] * t_diff_f1_phi_ii(
i, 
j) +
 
 2379                             t_diff_ifif1(
j) * t_f1_phi_ii(
i);
 
 2380          ++t_phi;
 2381          ++t_diff_phi;
 2382          ++t_f1_phi_ii;
 2383          ++t_diff_f1_phi_ii;
 2384          ++kk;
 2385        }
 2386      }
 2389                "Wrong number of base functions");
 2390    }
 2392  }
@ MOFEM_DATA_INCONSISTENCY
#define NBFACETRI_DEMKOWICZ_HCURL(P)