| ceed-vector.c (b0976d5a9cd61a1a55d5329148196ea026561ed6) | ceed-vector.c (567d69a22da0f47f75e26def20768fbc471a4d2c) |
|---|---|
| 1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3// 4// SPDX-License-Identifier: BSD-2-Clause 5// 6// This file is part of CEED: http://github.com/ceed 7 8#include <ceed-impl.h> --- 561 unchanged lines hidden (view full) --- 570 571 // Return early for empty vector 572 if (n_x == 0) return CEED_ERROR_SUCCESS; 573 574 // Backend implementation 575 if (x->Scale) return x->Scale(x, alpha); 576 577 // Default implementation | 1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3// 4// SPDX-License-Identifier: BSD-2-Clause 5// 6// This file is part of CEED: http://github.com/ceed 7 8#include <ceed-impl.h> --- 561 unchanged lines hidden (view full) --- 570 571 // Return early for empty vector 572 if (n_x == 0) return CEED_ERROR_SUCCESS; 573 574 // Backend implementation 575 if (x->Scale) return x->Scale(x, alpha); 576 577 // Default implementation |
| 578 CeedCall(CeedVectorGetArrayWrite(x, CEED_MEM_HOST, &x_array)); | 578 CeedCall(CeedVectorGetArray(x, CEED_MEM_HOST, &x_array)); |
| 579 assert(x_array); 580 for (CeedSize i = 0; i < n_x; i++) x_array[i] *= alpha; 581 CeedCall(CeedVectorRestoreArray(x, &x_array)); 582 583 return CEED_ERROR_SUCCESS; 584} 585 586/** --- 35 unchanged lines hidden (view full) --- 622 623 // Backend implementation 624 if (y->AXPY) { 625 CeedCall(y->AXPY(y, alpha, x)); 626 return CEED_ERROR_SUCCESS; 627 } 628 629 // Default implementation | 579 assert(x_array); 580 for (CeedSize i = 0; i < n_x; i++) x_array[i] *= alpha; 581 CeedCall(CeedVectorRestoreArray(x, &x_array)); 582 583 return CEED_ERROR_SUCCESS; 584} 585 586/** --- 35 unchanged lines hidden (view full) --- 622 623 // Backend implementation 624 if (y->AXPY) { 625 CeedCall(y->AXPY(y, alpha, x)); 626 return CEED_ERROR_SUCCESS; 627 } 628 629 // Default implementation |
| 630 CeedCall(CeedVectorGetArrayWrite(y, CEED_MEM_HOST, &y_array)); | 630 CeedCall(CeedVectorGetArray(y, CEED_MEM_HOST, &y_array)); |
| 631 CeedCall(CeedVectorGetArrayRead(x, CEED_MEM_HOST, &x_array)); 632 633 assert(x_array); 634 assert(y_array); 635 636 for (CeedSize i = 0; i < n_y; i++) y_array[i] += alpha * x_array[i]; 637 638 CeedCall(CeedVectorRestoreArray(y, &y_array)); --- 165 unchanged lines hidden (view full) --- 804 if (vec->Reciprocal) { 805 CeedCall(vec->Reciprocal(vec)); 806 return CEED_ERROR_SUCCESS; 807 } 808 809 CeedSize len; 810 CeedCall(CeedVectorGetLength(vec, &len)); 811 CeedScalar *array; | 631 CeedCall(CeedVectorGetArrayRead(x, CEED_MEM_HOST, &x_array)); 632 633 assert(x_array); 634 assert(y_array); 635 636 for (CeedSize i = 0; i < n_y; i++) y_array[i] += alpha * x_array[i]; 637 638 CeedCall(CeedVectorRestoreArray(y, &y_array)); --- 165 unchanged lines hidden (view full) --- 804 if (vec->Reciprocal) { 805 CeedCall(vec->Reciprocal(vec)); 806 return CEED_ERROR_SUCCESS; 807 } 808 809 CeedSize len; 810 CeedCall(CeedVectorGetLength(vec, &len)); 811 CeedScalar *array; |
| 812 CeedCall(CeedVectorGetArrayWrite(vec, CEED_MEM_HOST, &array)); | 812 CeedCall(CeedVectorGetArray(vec, CEED_MEM_HOST, &array)); |
| 813 for (CeedSize i = 0; i < len; i++) { 814 if (fabs(array[i]) > CEED_EPSILON) array[i] = 1. / array[i]; 815 } 816 817 CeedCall(CeedVectorRestoreArray(vec, &array)); 818 return CEED_ERROR_SUCCESS; 819} 820 --- 110 unchanged lines hidden --- | 813 for (CeedSize i = 0; i < len; i++) { 814 if (fabs(array[i]) > CEED_EPSILON) array[i] = 1. / array[i]; 815 } 816 817 CeedCall(CeedVectorRestoreArray(vec, &array)); 818 return CEED_ERROR_SUCCESS; 819} 820 --- 110 unchanged lines hidden --- |