summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-01-29 19:54:26 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-01-29 19:54:26 +0100
commit1373211465c34015ee900e097aa87fbffb401187 (patch)
tree8ffa1f9296097c91627c05874fcf4559cac45de7 /src/core/sequence.c
parentdf3657b2a99ef20da99ac3c6c02f43cc23e70fca (diff)
Trying out ACSL, continuing implementation.
Diffstat (limited to 'src/core/sequence.c')
-rw-r--r--src/core/sequence.c103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/core/sequence.c b/src/core/sequence.c
deleted file mode 100644
index d7ff9d0..0000000
--- a/src/core/sequence.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-#include "../core/index.h"
-
-#include "sequence.h"
-
-/*
- * Bypass rendundant ZoO_START_OF_SEQUENCE_ID at the start of a sequence.
- */
-/* ensures (*sequence_offset <= sequence_length) */
-static void bypass_redundant_sos
-(
- const ZoO_index sequence [const restrict],
- const ZoO_index sequence_length,
- ZoO_index sequence_offset [const restrict static 1]
-)
-{
- ZoO_index i;
-
- *sequence_offset = 0;
-
- for (i = 0; i < sequence_length; ++i)
- {
- if (sequence[i] != ZoO_START_OF_SEQUENCE_ID)
- {
- return;
- }
- else if (sequence[i] == ZoO_START_OF_SEQUENCE_ID)
- {
- *sequence_offset = i;
- }
- }
-}
-
-
-/* See "sequence.h" */
-int ZoO_sequence_cmp
-(
- const ZoO_index sequence_a [const],
- ZoO_index sequence_a_length,
- const ZoO_index sequence_b [const],
- ZoO_index sequence_b_length
-)
-{
- ZoO_index min_length, a, b;
- ZoO_index a_offset, b_offset;
- ZoO_index i;
-
- bypass_redundant_sos(sequence_a, sequence_a_length, &a_offset);
- bypass_redundant_sos(sequence_b, sequence_b_length, &b_offset);
-
- /*@ requires (*a_offset <= sequence_a_length) @*/
- sequence_a_length -= a_offset;
- /*@ requires (*b_offset <= sequence_b_length) @*/
- sequence_b_length -= b_offset;
-
- if (sequence_a_length < sequence_b_length)
- {
- min_length = sequence_a_length;
- }
- else
- {
- min_length = sequence_b_length;
- }
-
- /*@ ensures (min_length <= sequence_a_length) @*/
- /*@ ensures (min_length <= sequence_b_length) @*/
-
- for (i = 0; i < min_length; ++i)
- {
- /*@ requires ((i + a_offset) < sequence_a_length) @*/
- a = sequence_a[i + a_offset];
- /*@ requires ((i + b_offset) < sequence_b_length) @*/
- b = sequence_b[i + b_offset];
-
- if (a < b)
- {
- return -1;
- }
- else if (b > a)
- {
- return 1;
- }
- else if ((a == ZoO_END_OF_SEQUENCE_ID) && (b == ZoO_END_OF_SEQUENCE_ID))
- {
- return 0;
- }
- }
-
- if (sequence_a_length > sequence_b_length)
- {
- return 1;
- }
- else if (sequence_a_length < sequence_b_length)
- {
- return -1;
- }
- else
- {
- return 0;
- }
-}