/home/kcamus/qaas_runs/169-443-9681/intel/AMG/build/AMG/AMG/seq_mv/csr_matvec.c: 243 - 404
--------------------------------------------------------------------------------

243: #pragma omp parallel private(i,jj,tempx)
244: #endif
245:       {
246:       HYPRE_Int iBegin = hypre_CSRMatrixGetLoadBalancedPartitionBegin(A);
247:       HYPRE_Int iEnd = hypre_CSRMatrixGetLoadBalancedPartitionEnd(A);
248:       hypre_assert(iBegin <= iEnd);
249:       hypre_assert(iBegin >= 0 && iBegin <= num_rows);
250:       hypre_assert(iEnd >= 0 && iEnd <= num_rows);
251: 
252:       if (0 == temp)
253:       {
254:          if (1 == alpha) // JSP: a common path
255:          {
256:             for (i = iBegin; i < iEnd; i++)
257:             {
258:                tempx = 0.0;
259:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
260:                {
261:                   tempx += A_data[jj] * x_data[A_j[jj]];
262:                }
263:                y_data[i] = tempx;
264:             }
265:          } // y = A*x
266:          else if (-1 == alpha)
267:          {
268:             for (i = iBegin; i < iEnd; i++)
269:             {
270:                tempx = 0.0;
271:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
272:                {
273:                   tempx -= A_data[jj] * x_data[A_j[jj]];
274:                }
275:                y_data[i] = tempx;
276:             }
277:          } // y = -A*x
278:          else
279:          {
280:             for (i = iBegin; i < iEnd; i++)
281:             {
282:                tempx = 0.0;
283:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
284:                {
285:                   tempx += A_data[jj] * x_data[A_j[jj]];
286:                }
287:                y_data[i] = alpha*tempx;
288:             }
289:          } // y = alpha*A*x
290:       } // temp == 0
291:       else if (-1 == temp) // beta == -alpha
292:       {
293:          if (1 == alpha) // JSP: a common path
294:          {
295:             for (i = iBegin; i < iEnd; i++)
296:             {
297:                tempx = -b_data[i];
298:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
299:                {
300:                   tempx += A_data[jj] * x_data[A_j[jj]];
301:                }
302:                y_data[i] = tempx;
303:             }
304:          } // y = A*x - y
305:          else if (-1 == alpha) // JSP: a common path
306:          {
307:             for (i = iBegin; i < iEnd; i++)
308:             {
309:                tempx = b_data[i];
310:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
311:                {
312:                   tempx -= A_data[jj] * x_data[A_j[jj]];
313:                }
314:                y_data[i] = tempx;
315:             }
316:          } // y = -A*x + y
317:          else
318:          {
319:             for (i = iBegin; i < iEnd; i++)
320:             {
321:                tempx = -b_data[i];
322:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
323:                {
324:                   tempx += A_data[jj] * x_data[A_j[jj]];
325:                }
326:                y_data[i] = alpha*tempx;
327:             }
328:          } // y = alpha*(A*x - y)
329:       } // temp == -1
330:       else if (1 == temp)
331:       {
332:          if (1 == alpha) // JSP: a common path
333:          {
334:             for (i = iBegin; i < iEnd; i++)
335:             {
336:                tempx = b_data[i];
337:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
338:                {
339:                   tempx += A_data[jj] * x_data[A_j[jj]];
340:                }
341:                y_data[i] = tempx;
342:             }
343:          } // y = A*x + y
344:          else if (-1 == alpha)
345:          {
346:             for (i = iBegin; i < iEnd; i++)
347:             {
348:                tempx = -b_data[i];
349:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
350:                {
351:                   tempx -= A_data[jj] * x_data[A_j[jj]];
352:                }
353:                y_data[i] = tempx;
354:             }
355:          } // y = -A*x - y
356:          else
357:          {
358:             for (i = iBegin; i < iEnd; i++)
359:             {
360:                tempx = b_data[i];
361:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
362:                {
363:                   tempx += A_data[jj] * x_data[A_j[jj]];
364:                }
365:                y_data[i] = alpha*tempx;
[...]
371:          if (1 == alpha) // JSP: a common path
372:          {
373:             for (i = iBegin; i < iEnd; i++)
374:             {
375:                tempx = b_data[i]*temp;
376:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
377:                {
378:                   tempx += A_data[jj] * x_data[A_j[jj]];
379:                }
380:                y_data[i] = tempx;
381:             }
382:          } // y = A*x + temp*y
383:          else if (-1 == alpha)
384:          {
385:             for (i = iBegin; i < iEnd; i++)
386:             {
387:                tempx = -b_data[i]*temp;
388:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
389:                {
390:                   tempx -= A_data[jj] * x_data[A_j[jj]];
391:                }
392:                y_data[i] = tempx;
393:             }
394:          } // y = -A*x - temp*y
395:          else
396:          {
397:             for (i = iBegin; i < iEnd; i++)
398:             {
399:                tempx = b_data[i]*temp;
400:                for (jj = A_i[i]; jj < A_i[i+1]; jj++)
401:                {
402:                   tempx += A_data[jj] * x_data[A_j[jj]];
403:                }
404:                y_data[i] = alpha*tempx;
