/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/Numerics/OhmmsPETE/OhmmsMatrix.h: 77 - 236
--------------------------------------------------------------------------------

77:   inline size_type rows() const { return D1; }
[...]
217:   inline Type_t* operator[](size_type i) { return X.data() + i * D2; }
[...]
236:     return X[i * D2 + j];
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/Platforms/CPU/SIMD/inner_product.hpp: 53 - 54
--------------------------------------------------------------------------------

53:   std::memcpy(target, source, sizeof(T) * n);
54: }
/cluster/comp/gcc/13.2.0/include/c++/13.2.0/bits/stl_algo.h: 731 - 757
--------------------------------------------------------------------------------

731:     { return std::copy(__first, __first + __n, __result); }
[...]
757:       if (__n2 <= 0)
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/QMCWaveFunctions/DeterminantHelper.h: 23 - 23
--------------------------------------------------------------------------------

23:   return T((sign_v > 0) ? 0.0 : M_PI);
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/Numerics/OhmmsPETE/OhmmsVector.h: 223 - 249
--------------------------------------------------------------------------------

223:     return X[i];
[...]
248:   inline pointer data() { return X; }
249:   inline const_pointer data() const { return X; }
/cluster/comp/gcc/13.2.0/include/c++/13.2.0/bits/stl_vector.h: 1126 - 1126
--------------------------------------------------------------------------------

1126: 	return *(this->_M_impl._M_start + __n);
/cluster/comp/gcc/13.2.0/include/c++/13.2.0/bits/stl_algobase.h: 398 - 437
--------------------------------------------------------------------------------

398: 	{ *__to = *__from; }
[...]
436: 	  if (__builtin_expect(_Num > 1, true))
437: 	    __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/Platforms/CPU/BLAS.hpp: 187 - 447
--------------------------------------------------------------------------------

187:     dgemv(trans_in, n, m, alpha, amat, lda, x, incx, beta, y, incy);
[...]
249:     dgemm(Atrans, Btrans, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
250:   }
[...]
447:     dger(&m, &n, &alpha, x, &incx, y, &incy, a, &lda);
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/Utilities/OpenMP.h: 38 - 38
--------------------------------------------------------------------------------

38: #pragma omp parallel
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/QMCWaveFunctions/DelayedUpdate.h: 128 - 230
--------------------------------------------------------------------------------

128:     const int norb     = Ainv.rows();
129:     const int lda_Binv = Binv.cols();
130:     std::copy_n(Ainv[rowchanged], norb, V[delay_count]);
131:     std::copy_n(psiV.data(), norb, U[delay_count]);
132:     delay_list[delay_count] = rowchanged;
133:     // the new Binv is [[X Y] [Z x]]
134:     BLAS::gemv('T', norb, delay_count + 1, cminusone, V.data(), norb, psiV.data(), 1, czero, p.data(), 1);
135:     // x
136:     T y = -p[delay_count];
137:     for (int i = 0; i < delay_count; i++)
138:       y += Binv[delay_count][i] * p[i];
139:     Binv[delay_count][delay_count] = y = T(1) / y;
140:     // Y
141:     BLAS::gemv('T', delay_count, delay_count, y, Binv.data(), lda_Binv, p.data(), 1, czero, Binv.data() + delay_count,
142:                lda_Binv);
143:     // X
144:     BLAS::ger(delay_count, delay_count, cminusone, Binv[delay_count], 1, Binv.data() + delay_count, lda_Binv,
145:               Binv.data(), lda_Binv);
146:     // Z
147:     for (int i = 0; i < delay_count; i++)
148:       Binv[delay_count][i] *= -y;
149:     delay_count++;
[...]
160:     if (delay_count == 0)
161:       return;
162:     // update the inverse matrix
163:     const T cone(1);
164:     const T czero(0);
165:     const int norb = Ainv.rows();
166:     if (delay_count == 1)
167:     {
168:       // this is a special case invoking the Fahy's variant of Sherman-Morrison update.
169:       // Only use the first norb elements of tempMat as a temporal array
170:       BLAS::gemv('T', norb, norb, cone, Ainv.data(), norb, U[0], 1, czero, temp.data(), 1);
171:       temp[delay_list[0]] -= cone;
172:       BLAS::ger(norb, norb, -Binv[0][0], V[0], 1, temp.data(), 1, Ainv.data(), norb);
[...]
180:       if (use_serial || BlasThreadingEnv::NestedThreadingSupported())
181:       {
182:         // threading depends on BLAS
183:         BlasThreadingEnv knob(use_serial ? 1 : num_threads_nested);
184:         BLAS::gemm('T', 'N', delay_count, norb, norb, cone, U.data(), norb, Ainv.data(), norb, czero, tempMat.data(),
185:                    lda_Binv);
186:         for (int i = 0; i < delay_count; i++)
187:           tempMat(delay_list[i], i) -= cone;
188:         BLAS::gemm('N', 'N', norb, delay_count, delay_count, cone, V.data(), norb, Binv.data(), lda_Binv, czero,
189:                    U.data(), norb);
190:         BLAS::gemm('N', 'N', norb, norb, delay_count, -cone, U.data(), norb, tempMat.data(), lda_Binv, cone,
191:                    Ainv.data(), norb);
192:       }
193:       else
194:       {
195:         // manually threaded version of the above GEMM calls
196: #pragma omp parallel
[...]
230:     delay_count = 0;
/beegfs/hackathon/users/eoseret/qaas_runs/170-855-3059/intel/miniqmc/build/miniqmc/src/QMCWaveFunctions/DiracDeterminantRef.cpp: 123 - 139
--------------------------------------------------------------------------------

123: void DiracDeterminantRef<DU_TYPE>::acceptMove(ParticleSet& P, int iat)
124: {
125:   const int WorkingIndex = iat - FirstIndex;
126:   PhaseValue += evaluatePhase(curRatio);
127:   LogValue += std::log(std::abs(curRatio));
128:   UpdateTimer->start();
129:   updateEng.acceptRow(psiM, WorkingIndex, psiV);
130:   // invRow becomes invalid after accepting a move
131:   invRow_id = -1;
132:   if (UpdateMode == ORB_PBYP_PARTIAL)
133:   {
134:     simd::copy(dpsiM[WorkingIndex], dpsiV.data(), NumOrbitals);
135:     simd::copy(d2psiM[WorkingIndex], d2psiV.data(), NumOrbitals);
136:   }
137:   UpdateTimer->stop();
138:   curRatio = 1.0;
139: }
/cluster/comp/gcc/13.2.0/include/c++/13.2.0/bits/std_abs.h: 72 - 72
--------------------------------------------------------------------------------

72:   { return __builtin_fabs(__x); }
