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 ---