| ceed-elemrestriction.c (b17517ee98e70bbde11768f0b2de0644e9c68f9a) | ceed-elemrestriction.c (b04eb3d9dcd03054fbe981a83f15e207a4bc97bc) |
|---|---|
| 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> --- 395 unchanged lines hidden (view full) --- 404 @return An error code: 0 - success, otherwise - failure 405 406 @ref User 407**/ 408int CeedElemRestrictionCreateStrided(Ceed ceed, CeedInt num_elem, CeedInt elem_size, CeedInt num_comp, CeedSize l_size, const CeedInt strides[3], 409 CeedElemRestriction *rstr) { 410 if (!ceed->ElemRestrictionCreate) { 411 Ceed delegate; | 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> --- 395 unchanged lines hidden (view full) --- 404 @return An error code: 0 - success, otherwise - failure 405 406 @ref User 407**/ 408int CeedElemRestrictionCreateStrided(Ceed ceed, CeedInt num_elem, CeedInt elem_size, CeedInt num_comp, CeedSize l_size, const CeedInt strides[3], 409 CeedElemRestriction *rstr) { 410 if (!ceed->ElemRestrictionCreate) { 411 Ceed delegate; |
| 412 |
|
| 412 CeedCall(CeedGetObjectDelegate(ceed, &delegate, "ElemRestriction")); 413 CeedCheck(delegate, ceed, CEED_ERROR_UNSUPPORTED, "Backend does not support ElemRestrictionCreateStrided"); 414 CeedCall(CeedElemRestrictionCreateStrided(delegate, num_elem, elem_size, num_comp, l_size, strides, rstr)); 415 return CEED_ERROR_SUCCESS; 416 } 417 418 CeedCheck(elem_size > 0, ceed, CEED_ERROR_DIMENSION, "Element size must be at least 1"); 419 CeedCheck(num_comp > 0, ceed, CEED_ERROR_DIMENSION, "ElemRestriction must have at least 1 component"); --- 224 unchanged lines hidden (view full) --- 644 645 @return An error code: 0 - success, otherwise - failure 646 647 @ref User 648**/ 649int CeedElemRestrictionApplyUnsigned(CeedElemRestriction rstr, CeedTransposeMode t_mode, CeedVector u, CeedVector ru, CeedRequest *request) { 650 CeedInt m, n; 651 | 413 CeedCall(CeedGetObjectDelegate(ceed, &delegate, "ElemRestriction")); 414 CeedCheck(delegate, ceed, CEED_ERROR_UNSUPPORTED, "Backend does not support ElemRestrictionCreateStrided"); 415 CeedCall(CeedElemRestrictionCreateStrided(delegate, num_elem, elem_size, num_comp, l_size, strides, rstr)); 416 return CEED_ERROR_SUCCESS; 417 } 418 419 CeedCheck(elem_size > 0, ceed, CEED_ERROR_DIMENSION, "Element size must be at least 1"); 420 CeedCheck(num_comp > 0, ceed, CEED_ERROR_DIMENSION, "ElemRestriction must have at least 1 component"); --- 224 unchanged lines hidden (view full) --- 645 646 @return An error code: 0 - success, otherwise - failure 647 648 @ref User 649**/ 650int CeedElemRestrictionApplyUnsigned(CeedElemRestriction rstr, CeedTransposeMode t_mode, CeedVector u, CeedVector ru, CeedRequest *request) { 651 CeedInt m, n; 652 |
| 652 CeedCheck(rstr->ApplyUnsigned, rstr->ceed, CEED_ERROR_UNSUPPORTED, "Backend does not implement ElemRestrictionApplyUnsigned"); | 653 CeedCheck(rstr->ApplyUnsigned, rstr->ceed, CEED_ERROR_UNSUPPORTED, "Backend does not support ElemRestrictionApplyUnsigned"); |
| 653 654 if (t_mode == CEED_NOTRANSPOSE) { 655 m = rstr->num_blk * rstr->blk_size * rstr->elem_size * rstr->num_comp; 656 n = rstr->l_size; 657 } else { 658 m = rstr->l_size; 659 n = rstr->num_blk * rstr->blk_size * rstr->elem_size * rstr->num_comp; 660 } --- 243 unchanged lines hidden --- | 654 655 if (t_mode == CEED_NOTRANSPOSE) { 656 m = rstr->num_blk * rstr->blk_size * rstr->elem_size * rstr->num_comp; 657 n = rstr->l_size; 658 } else { 659 m = rstr->l_size; 660 n = rstr->num_blk * rstr->blk_size * rstr->elem_size * rstr->num_comp; 661 } --- 243 unchanged lines hidden --- |