+
+/**
+ * Shifts the indexes stored in the comparator by a constant offset. If the
+ * index becomes too large, it will "wrap around".
+ *
+ * \param c The comparator to modify.
+ * \param sw The offset by which to shift the indexes.
+ * \param inputs_num The number of lines / inputs of the comparator network.
+ * This number is used to wrap large indexes around.
+ */
+void sn_comparator_shift (sn_comparator_t *c, int sw, int inputs_num);
+
+/**
+ * Swaps two line indexes by replacing all occurrences of one index with
+ * another index and vice versa. If the comparator does not touch either line,
+ * this is a no-op.
+ *
+ * \param c The comparator to modify.
+ * \param con0 Index of the first line.
+ * \param con1 Index of the second line.
+ */