summaryrefslogtreecommitdiff
path: root/assignment.c
diff options
context:
space:
mode:
Diffstat (limited to 'assignment.c')
-rw-r--r--assignment.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/assignment.c b/assignment.c
index 29f79c8..70bdb2a 100644
--- a/assignment.c
+++ b/assignment.c
@@ -12,6 +12,40 @@
** ASSIGNMENT ALGORITHM **
*************************/
+/*
+** DEFINES
+*/
+
+#define ASSIGNROWS 101L
+#define ASSIGNCOLS 101L
+
+/*
+** TYPEDEFS
+*/
+typedef struct {
+ union {
+ long *p;
+ long (*ap)[ASSIGNROWS][ASSIGNCOLS];
+ } ptrs;
+} longptr;
+
+/*
+** PROTOTYPES
+*/
+static unsigned long DoAssignIteration(long *arraybase,
+ unsigned long numarrays);
+static void LoadAssignArrayWithRand(long *arraybase,
+ unsigned long numarrays);
+static void LoadAssign(long arraybase[][ASSIGNCOLS]);
+static void CopyToAssign(long arrayfrom[][ASSIGNCOLS],
+ long arrayto[][ASSIGNCOLS]);
+static void Assignment(long arraybase[][ASSIGNCOLS]);
+static void calc_minimum_costs(long tableau[][ASSIGNCOLS]);
+static int first_assignments(long tableau[][ASSIGNCOLS],
+ short assignedtableau[][ASSIGNCOLS]);
+static void second_assignments(long tableau[][ASSIGNCOLS],
+ short assignedtableau[][ASSIGNCOLS]);
+
/*************
** DoAssign **
**************