summaryrefslogtreecommitdiff
path: root/src/schedule/ScheduleSorter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/schedule/ScheduleSorter.c')
-rw-r--r--src/schedule/ScheduleSorter.c163
1 files changed, 126 insertions, 37 deletions
diff --git a/src/schedule/ScheduleSorter.c b/src/schedule/ScheduleSorter.c
index 4f77689f..a3332742 100644
--- a/src/schedule/ScheduleSorter.c
+++ b/src/schedule/ScheduleSorter.c
@@ -10,12 +10,14 @@
#include <stdio.h>
#include <stdlib.h>
+#include "Schedule.h"
+
static char *rcsid = "$Header$";
static void ScheduleSwap(int size, signed char **array, int *order, int row, int column);
/*@@
- @routine ScheduleSort
+ @routine CCTKi_ScheduleSort
@date Mon Aug 30 11:44:35 1999
@author Tom Goodale
@desc
@@ -29,7 +31,7 @@ static void ScheduleSwap(int size, signed char **array, int *order, int row, int
@@*/
-int ScheduleSort(int size, signed char **array, int *order)
+int CCTKi_ScheduleSort(int size, signed char **array, int *order)
{
int iter;
int row, column;
@@ -70,33 +72,20 @@ int ScheduleSort(int size, signed char **array, int *order)
return retval;
}
-static void ScheduleSwap(int size, signed char **array, int *order, int row, int column)
-{
- signed char *tmp;
- signed char tmp_char;
- int tmp_int;
- int this_row;
-
- /* Swap the rows */
- tmp = array[row];
- array[row] = array[column];
- array[column] = tmp;
-
- /* Swap the columns */
- for(this_row = 0; this_row < size; this_row++)
- {
- tmp_char = array[this_row][column];
- array[this_row][column] = array[this_row][row];
- array[this_row][row]=tmp_char;
- }
-
- /* Swap routine orders */
- tmp_int = order[column];
- order[column]=order[row];
- order[row] = tmp_int;
-
-}
+ /*@@
+ @routine CCTKi_ScheduleAddRow
+ @date Wed Sep 15 22:28:09 1999
+ @author Tom Goodale
+ @desc
+ Adds a row to the scheduling array, and fills in the corresponding column entries.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+@@*/
int CCTKi_ScheduleAddRow(int size,
signed char **array,
int *order,
@@ -107,7 +96,6 @@ int CCTKi_ScheduleAddRow(int size,
int row;
int column;
- int i;
retval = 0;
@@ -128,7 +116,21 @@ int CCTKi_ScheduleAddRow(int size,
return retval;
}
-signed char **ScheduleCreateArray(int size)
+ /*@@
+ @routine CCTKi_ScheduleCreateArray
+ @date Wed Sep 15 22:28:50 1999
+ @author Tom Goodale
+ @desc
+ Creates a scheduling array.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+signed char **CCTKi_ScheduleCreateArray(int size)
{
int i, j;
signed char **array;
@@ -147,7 +149,7 @@ signed char **ScheduleCreateArray(int size)
if(i < size)
{
/* Free already allocated memory */
- for(i-1; i >=0; i--)
+ for(i--; i >=0; i--)
{
free(array[i]);
}
@@ -171,7 +173,21 @@ signed char **ScheduleCreateArray(int size)
return array;
}
-void ScheduleDestroyArray(int size, signed char **array)
+ /*@@
+ @routine CCTKi_ScheduleDestroyArray
+ @date Wed Sep 15 22:29:10 1999
+ @author Tom Goodale
+ @desc
+ Destroys a scheduling array.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+void CCTKi_ScheduleDestroyArray(int size, signed char **array)
{
int i;
@@ -181,7 +197,21 @@ void ScheduleDestroyArray(int size, signed char **array)
}
}
-int *ScheduleCreateIVec(int size)
+ /*@@
+ @routine CCTKi_ScheduleCreateIVec
+ @date Wed Sep 15 22:29:57 1999
+ @author Tom Goodale
+ @desc
+ Creates a vector of integers.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+int *CCTKi_ScheduleCreateIVec(int size)
{
int i;
int *vector;
@@ -199,11 +229,70 @@ int *ScheduleCreateIVec(int size)
return vector;
}
-void ScheduleDestroyIVec(int size, int *vector)
+ /*@@
+ @routine CCTKi_ScheduleDestroyIVec
+ @date Wed Sep 15 22:29:29 1999
+ @author Tom Goodale
+ @desc
+ Destroys a vector of integers.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+void CCTKi_ScheduleDestroyIVec(int size, int *vector)
{
free(vector);
}
+ /*@@
+ @routine ScheduleSwap
+ @date Wed Sep 15 22:26:50 1999
+ @author Tom Goodale
+ @desc
+ Swaps two rows and columns in the scheduling array.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+static void ScheduleSwap(int size, signed char **array, int *order, int row, int column)
+{
+ signed char *tmp;
+ signed char tmp_char;
+ int tmp_int;
+ int this_row;
+
+ /* Swap the rows */
+ tmp = array[row];
+ array[row] = array[column];
+ array[column] = tmp;
+
+ /* Swap the columns */
+ for(this_row = 0; this_row < size; this_row++)
+ {
+ tmp_char = array[this_row][column];
+ array[this_row][column] = array[this_row][row];
+ array[this_row][row]=tmp_char;
+ }
+
+ /* Swap routine orders */
+ tmp_int = order[column];
+ order[column]=order[row];
+ order[row] = tmp_int;
+
+}
+
+/********************************************************************
+ ********************************************************************
+ ********************************************************************/
+
#ifdef TEST_SORTER
int main(int argc, char *argv[])
{
@@ -244,9 +333,9 @@ int main(int argc, char *argv[])
size = 5;
}
- order = ScheduleCreateIVec(size);
+ order = CCTKi_ScheduleCreateIVec(size);
- array = ScheduleCreateArray(size);
+ array = CCTKi_ScheduleCreateArray(size);
for(i=0; i < size; i++)
{
@@ -296,7 +385,7 @@ int main(int argc, char *argv[])
printf("Sorting array...\n");
- errcode = ScheduleSort(size, array, order);
+ errcode = CCTKi_ScheduleSort(size, array, order);
if(errcode)
{