Lines Matching refs:work_vectors
151 CeedCall(CeedCalloc(1, &ceed->work_vectors)); in CeedWorkVectorsCreate()
165 if (!ceed->work_vectors) return CEED_ERROR_SUCCESS; in CeedWorkVectorsDestroy()
166 for (CeedSize i = 0; i < ceed->work_vectors->num_vecs; i++) { in CeedWorkVectorsDestroy()
167 …CeedCheck(!ceed->work_vectors->is_in_use[i], ceed, CEED_ERROR_ACCESS, "Work vector %" CeedSize_FMT… in CeedWorkVectorsDestroy()
171 CeedCall(CeedVectorDestroy(&ceed->work_vectors->vecs[i])); in CeedWorkVectorsDestroy()
175 CeedCall(CeedFree(&ceed->work_vectors->is_in_use)); in CeedWorkVectorsDestroy()
176 CeedCall(CeedFree(&ceed->work_vectors->vecs)); in CeedWorkVectorsDestroy()
177 CeedCall(CeedFree(&ceed->work_vectors)); in CeedWorkVectorsDestroy()
819 if (ceed->work_vectors) { in CeedGetWorkVectorMemoryUsage()
820 for (CeedInt i = 0; i < ceed->work_vectors->num_vecs; i++) { in CeedGetWorkVectorMemoryUsage()
822 CeedCall(CeedVectorGetLength(ceed->work_vectors->vecs[i], &vec_len)); in CeedGetWorkVectorMemoryUsage()
826 …ors memory usage: %" CeedInt_FMT " vectors, %g MB\n", ceed->resource, ceed->work_vectors->num_vecs, in CeedGetWorkVectorMemoryUsage()
852 if (!ceed->work_vectors) return CEED_ERROR_SUCCESS; in CeedClearWorkVectors()
853 for (CeedInt i = 0; i < ceed->work_vectors->num_vecs; i++) { in CeedClearWorkVectors()
854 if (ceed->work_vectors->is_in_use[i]) continue; in CeedClearWorkVectors()
856 CeedCall(CeedVectorGetLength(ceed->work_vectors->vecs[i], &vec_len)); in CeedClearWorkVectors()
861 CeedCall(CeedVectorDestroy(&ceed->work_vectors->vecs[i])); in CeedClearWorkVectors()
864 ceed->work_vectors->num_vecs--; in CeedClearWorkVectors()
865 if (ceed->work_vectors->num_vecs > 0) { in CeedClearWorkVectors()
866 …ceed->work_vectors->vecs[i] = ceed->work_vectors->vecs[ceed->work_… in CeedClearWorkVectors()
867 …ceed->work_vectors->is_in_use[i] = ceed->work_vectors->is_in_use[ceed->… in CeedClearWorkVectors()
868 ceed->work_vectors->is_in_use[ceed->work_vectors->num_vecs] = false; in CeedClearWorkVectors()
903 if (!ceed->work_vectors) CeedCall(CeedWorkVectorsCreate(ceed)); in CeedGetWorkVector()
906 for (i = 0; i < ceed->work_vectors->num_vecs; i++) { in CeedGetWorkVector()
907 if (!ceed->work_vectors->is_in_use[i]) { in CeedGetWorkVector()
910 CeedCall(CeedVectorGetLength(ceed->work_vectors->vecs[i], &work_len)); in CeedGetWorkVector()
915 if (i == ceed->work_vectors->num_vecs) { in CeedGetWorkVector()
916 if (ceed->work_vectors->max_vecs == 0) { in CeedGetWorkVector()
917 ceed->work_vectors->max_vecs = 1; in CeedGetWorkVector()
918 CeedCall(CeedCalloc(ceed->work_vectors->max_vecs, &ceed->work_vectors->vecs)); in CeedGetWorkVector()
919 CeedCall(CeedCalloc(ceed->work_vectors->max_vecs, &ceed->work_vectors->is_in_use)); in CeedGetWorkVector()
920 } else if (ceed->work_vectors->max_vecs == i) { in CeedGetWorkVector()
921 ceed->work_vectors->max_vecs *= 2; in CeedGetWorkVector()
922 CeedCall(CeedRealloc(ceed->work_vectors->max_vecs, &ceed->work_vectors->vecs)); in CeedGetWorkVector()
923 CeedCall(CeedRealloc(ceed->work_vectors->max_vecs, &ceed->work_vectors->is_in_use)); in CeedGetWorkVector()
925 ceed->work_vectors->num_vecs++; in CeedGetWorkVector()
926 CeedCallBackend(CeedVectorCreate(ceed, len, &ceed->work_vectors->vecs[i])); in CeedGetWorkVector()
932 ceed->work_vectors->is_in_use[i] = true; in CeedGetWorkVector()
934 CeedCall(CeedVectorReferenceCopy(ceed->work_vectors->vecs[i], vec)); in CeedGetWorkVector()
961 for (CeedInt i = 0; i < ceed->work_vectors->num_vecs; i++) { in CeedRestoreWorkVector()
962 if (*vec == ceed->work_vectors->vecs[i]) { in CeedRestoreWorkVector()
963 …CeedCheck(ceed->work_vectors->is_in_use[i], ceed, CEED_ERROR_ACCESS, "Work vector %" CeedSize_FMT … in CeedRestoreWorkVector()
965 ceed->work_vectors->is_in_use[i] = false; in CeedRestoreWorkVector()