summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-04-22 21:33:47 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-04-22 21:33:47 +0200
commit1d32728b9712702c9bca90d6dac370ff5fe2c214 (patch)
tree25755963d66e842490eb4d4be8094b7674a85ae0 /src/sequence/sequence.c
Initial Commit
Diffstat (limited to 'src/sequence/sequence.c')
-rw-r--r--src/sequence/sequence.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/sequence/sequence.c b/src/sequence/sequence.c
new file mode 100644
index 0000000..c9c30f1
--- /dev/null
+++ b/src/sequence/sequence.c
@@ -0,0 +1,50 @@
+#include <stdlib.h>
+#include <string.h>
+
+#include "../core/index.h"
+
+#include "sequence.h"
+
+/* See "sequence.h" */
+/*@
+ requires
+ (
+ \valid(sequence_a+ (0 .. sequence_a_length))
+ || (sequence_a_length == 0)
+ );
+
+ requires
+ (
+ \valid(sequence_b+ (0 .. sequence_b_length))
+ || (sequence_b_length == 0)
+ );
+
+ assigns \result;
+@*/
+int JH_sequence_cmp
+(
+ const JH_index sequence_a [const restrict static 1],
+ const JH_index sequence_b [const restrict static 1],
+ const JH_index length
+)
+{
+ JH_index i, a, b;
+
+ for (i = 0; i < length; ++i)
+ {
+ a = sequence_a[i];
+ b = sequence_b[i];
+
+ if (a < b)
+ {
+ return -1;
+ }
+ else if (a > b)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+