Fix compilation error (#929)

This PR fixes a compilation error that arises in PETSc when hypre is used
This commit is contained in:
Victor A. P. Magri 2023-06-17 22:21:37 -04:00 committed by GitHub
parent 18b98805ba
commit a39cecc555
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 12 deletions

View File

@ -3710,7 +3710,7 @@ HYPRE_Int hypre_ILUMinHeapRemoveIIIi( HYPRE_Int *heap, HYPRE_Int *I1,
HYPRE_Int hypre_ILUMinHeapRemoveIRIi( HYPRE_Int *heap, HYPRE_Real *I1,
HYPRE_Int *Ii1, HYPRE_Int len );
HYPRE_Int hypre_ILUMaxrHeapRemoveRabsI( HYPRE_Real *heap, HYPRE_Int *I1, HYPRE_Int len );
HYPRE_Int hypre_ILUMaxQSplitRabsI( HYPRE_Real *array, HYPRE_Int *I, HYPRE_Int left,
HYPRE_Int hypre_ILUMaxQSplitRabsI( HYPRE_Real *arrayR, HYPRE_Int *arrayI, HYPRE_Int left,
HYPRE_Int bound, HYPRE_Int right );
HYPRE_Int hypre_ILUMaxRabs( HYPRE_Real *array_data, HYPRE_Int *array_j, HYPRE_Int start,
HYPRE_Int end, HYPRE_Int nLU, HYPRE_Int *rperm, HYPRE_Real *value,

View File

@ -1452,15 +1452,16 @@ hypre_ILUMaxrHeapRemoveRabsI(HYPRE_Real *heap, HYPRE_Int *I1, HYPRE_Int len)
*
* Split based on quick sort algorithm (avoid sorting the entire array)
* find the largest k elements out of original array
* array: input array for compare
* I: integer array bind with array
*
* arrayR: input array for compare
* arrayI: integer array bind with array
* k: largest k elements
* len: length of the array
*--------------------------------------------------------------------------*/
HYPRE_Int
hypre_ILUMaxQSplitRabsI(HYPRE_Real *array,
HYPRE_Int *I,
hypre_ILUMaxQSplitRabsI(HYPRE_Real *arrayR,
HYPRE_Int *arrayI,
HYPRE_Int left,
HYPRE_Int bound,
HYPRE_Int right)
@ -1472,21 +1473,21 @@ hypre_ILUMaxQSplitRabsI(HYPRE_Real *array,
return hypre_error_flag;
}
hypre_swap2(I, array, left, (left + right) / 2);
hypre_swap2(arrayI, arrayR, left, (left + right) / 2);
last = left;
for (i = left + 1 ; i <= right ; i ++)
{
if (hypre_abs(array[i]) > hypre_abs(array[left]))
if (hypre_abs(arrayR[i]) > hypre_abs(arrayR[left]))
{
hypre_swap2(I, array, ++last, i);
hypre_swap2(arrayI, arrayR, ++last, i);
}
}
hypre_swap2(I, array, left, last);
hypre_ILUMaxQSplitRabsI(array, I, left, bound, last - 1);
hypre_swap2(arrayI, arrayR, left, last);
hypre_ILUMaxQSplitRabsI(arrayR, arrayI, left, bound, last - 1);
if (bound > last)
{
hypre_ILUMaxQSplitRabsI(array, I, last + 1, bound, right);
hypre_ILUMaxQSplitRabsI(arrayR, arrayI, last + 1, bound, right);
}
return hypre_error_flag;

View File

@ -2325,7 +2325,7 @@ HYPRE_Int hypre_ILUMinHeapRemoveIIIi( HYPRE_Int *heap, HYPRE_Int *I1,
HYPRE_Int hypre_ILUMinHeapRemoveIRIi( HYPRE_Int *heap, HYPRE_Real *I1,
HYPRE_Int *Ii1, HYPRE_Int len );
HYPRE_Int hypre_ILUMaxrHeapRemoveRabsI( HYPRE_Real *heap, HYPRE_Int *I1, HYPRE_Int len );
HYPRE_Int hypre_ILUMaxQSplitRabsI( HYPRE_Real *array, HYPRE_Int *I, HYPRE_Int left,
HYPRE_Int hypre_ILUMaxQSplitRabsI( HYPRE_Real *arrayR, HYPRE_Int *arrayI, HYPRE_Int left,
HYPRE_Int bound, HYPRE_Int right );
HYPRE_Int hypre_ILUMaxRabs( HYPRE_Real *array_data, HYPRE_Int *array_j, HYPRE_Int start,
HYPRE_Int end, HYPRE_Int nLU, HYPRE_Int *rperm, HYPRE_Real *value,