Commit 60adaa24 authored by Stan Moore's avatar Stan Moore
Browse files

Remove redundant computation

parent 2be0fd61
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -1006,11 +1006,9 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
  db_i[0] += -r0inv;
  db_r[1] += r0inv;

  ulist_r[0] = 1.0;
  dulist_r(0,0) = 0.0;
  dulist_r(0,1) = 0.0;
  dulist_r(0,2) = 0.0;
  ulist_i[0] = 0.0;
  dulist_i(0,0) = 0.0;
  dulist_i(0,1) = 0.0;
  dulist_i(0,2) = 0.0;
@@ -1022,11 +1020,9 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
        [&] (const int& mb) {
    //for (int mb = 0; 2*mb <= j; mb++) {
      const int jju_index = jju+mb+mb*j;
      ulist_r[jju_index] = 0.0;
      dulist_r(jju_index,0) = 0.0;
      dulist_r(jju_index,1) = 0.0;
      dulist_r(jju_index,2) = 0.0;
      ulist_i[jju_index] = 0.0;
      dulist_i(jju_index,0) = 0.0;
      dulist_i(jju_index,1) = 0.0;
      dulist_i(jju_index,2) = 0.0;
@@ -1035,13 +1031,6 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
        const int jju_index = jju+mb+mb*j+ma;
        const int jjup_index = jjup+mb*j+ma;
        rootpq = rootpqarray(j - ma,j - mb);
        ulist_r[jju_index] += rootpq *
                               (a_r *  ulist_r(jjup_index) +
                                a_i *  ulist_i(jjup_index));
        ulist_i[jju_index] += rootpq *
                               (a_r *  ulist_i(jjup_index) -
                                a_i *  ulist_r(jjup_index));

        for (int k = 0; k < 3; k++) {
          dulist_r(jju_index,k) +=
            rootpq * (da_r[k] * ulist_r[jjup_index] +
@@ -1056,13 +1045,6 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
        }

        rootpq = rootpqarray(ma + 1,j - mb);
        ulist_r[jju_index+1] =
          -rootpq * (b_r *  ulist_r[jjup_index] +
                     b_i *  ulist_i[jjup_index]);
        ulist_i[jju_index+1] =
          -rootpq * (b_r *  ulist_i[jjup_index] -
                     b_i *  ulist_r[jjup_index]);

        for (int k = 0; k < 3; k++) {
          dulist_r(jju_index+1,k) =
            -rootpq * (db_r[k] * ulist_r[jjup_index] +
@@ -1092,15 +1074,11 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
        const int jju_index = jju+mb*(j+1)+ma;
        const int jjup_index = jjup-mb*(j+1)-ma;
        if (mapar == 1) {
          ulist_r[jjup_index] = ulist_r[jju_index];
          ulist_i[jjup_index] = -ulist_i[jju_index];
          for (int k = 0; k < 3; k++) {
            dulist_r(jjup_index,k) = dulist_r(jju_index,k);
            dulist_i(jjup_index,k) = -dulist_i(jju_index,k);
          }
        } else {
          ulist_r[jjup_index] = -ulist_r[jju_index];
          ulist_i[jjup_index] = ulist_i[jju_index];
          for (int k = 0; k < 3; k++) {
            dulist_r(jjup_index,k) = -dulist_r(jju_index,k);
            dulist_i(jjup_index,k) = dulist_i(jju_index,k);
+0 −22
Original line number Diff line number Diff line
@@ -1038,11 +1038,9 @@ void SNA::compute_duarray(double x, double y, double z,
  db_i[0] += -r0inv;
  db_r[1] += r0inv;

  ulist_r[0] = 1.0;
  dulist_r[0][0] = 0.0;
  dulist_r[0][1] = 0.0;
  dulist_r[0][2] = 0.0;
  ulist_i[0] = 0.0;
  dulist_i[0][0] = 0.0;
  dulist_i[0][1] = 0.0;
  dulist_i[0][2] = 0.0;
@@ -1051,24 +1049,15 @@ void SNA::compute_duarray(double x, double y, double z,
    int jju = idxu_block[j];
    int jjup = idxu_block[j-1];
    for (int mb = 0; 2*mb <= j; mb++) {
      ulist_r[jju] = 0.0;
      dulist_r[jju][0] = 0.0;
      dulist_r[jju][1] = 0.0;
      dulist_r[jju][2] = 0.0;
      ulist_i[jju] = 0.0;
      dulist_i[jju][0] = 0.0;
      dulist_i[jju][1] = 0.0;
      dulist_i[jju][2] = 0.0;

      for (int ma = 0; ma < j; ma++) {
        rootpq = rootpqarray[j - ma][j - mb];
        ulist_r[jju] += rootpq *
                               (a_r *  ulist_r[jjup] +
                                a_i *  ulist_i[jjup]);
        ulist_i[jju] += rootpq *
                               (a_r *  ulist_i[jjup] -
                                a_i *  ulist_r[jjup]);

        for (int k = 0; k < 3; k++) {
          dulist_r[jju][k] +=
            rootpq * (da_r[k] * ulist_r[jjup] +
@@ -1083,13 +1072,6 @@ void SNA::compute_duarray(double x, double y, double z,
        }

        rootpq = rootpqarray[ma + 1][j - mb];
        ulist_r[jju+1] =
          -rootpq * (b_r *  ulist_r[jjup] +
                     b_i *  ulist_i[jjup]);
        ulist_i[jju+1] =
          -rootpq * (b_r *  ulist_i[jjup] -
                     b_i *  ulist_r[jjup]);

        for (int k = 0; k < 3; k++) {
          dulist_r[jju+1][k] =
            -rootpq * (db_r[k] * ulist_r[jjup] +
@@ -1118,15 +1100,11 @@ void SNA::compute_duarray(double x, double y, double z,
      int mapar = mbpar;
      for (int ma = 0; ma <= j; ma++) {
        if (mapar == 1) {
          ulist_r[jjup] = ulist_r[jju];
          ulist_i[jjup] = -ulist_i[jju];
          for (int k = 0; k < 3; k++) {
            dulist_r[jjup][k] = dulist_r[jju][k];
            dulist_i[jjup][k] = -dulist_i[jju][k];
          }
        } else {
          ulist_r[jjup] = -ulist_r[jju];
          ulist_i[jjup] = ulist_i[jju];
          for (int k = 0; k < 3; k++) {
            dulist_r[jjup][k] = -dulist_r[jju][k];
            dulist_i[jjup][k] = dulist_i[jju][k];