summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-01-18 19:09:16 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-01-18 19:09:16 +0100
commit0d49fb74eadcf933f696420cd182077927680d26 (patch)
tree9220d260ce878f369138da12dae0300cf9ade5c9 /src/knowledge/knowledge.h
parent24afb3e60bafd98e6a83dcb41ee6a7f7d41e76bc (diff)
Done with 'core', starting to work on 'knowledge'.
Diffstat (limited to 'src/knowledge/knowledge.h')
-rw-r--r--src/knowledge/knowledge.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/knowledge/knowledge.h b/src/knowledge/knowledge.h
new file mode 100644
index 0000000..51d94c4
--- /dev/null
+++ b/src/knowledge/knowledge.h
@@ -0,0 +1,110 @@
+#ifndef _ZoO_KNOWLEDGE_KNOWLEDGE_H_
+#define _ZoO_KNOWLEDGE_KNOWLEDGE_H_
+
+#include "../core/char_types.h"
+#include "../core/index_types.h"
+
+#include "knowledge_types.h"
+
+void ZoO_knowledge_initialize (struct ZoO_knowledge k [const restrict static 1]);
+
+void ZoO_knowledge_finalize (struct ZoO_knowledge k [const restrict static 1]);
+
+/*
+ * When returning 0:
+ * {word} was added to {k}, or was already there.
+ * {*result} indicates where {word} is in {k->words}.
+ *
+ * When returning -1:
+ * Something went wrong when adding the occurrence of {word} to {k}.
+ * {k} remains semantically unchanged.
+ * {*result} may or may not have been altered.
+ */
+int ZoO_knowledge_learn_word
+(
+ struct ZoO_knowledge k [const static 1],
+ const ZoO_char word [const restrict static 1],
+ const ZoO_index word_length,
+ ZoO_index result [const restrict static 1]
+);
+
+int ZoO_knowledge_learn_sequence
+(
+ struct ZoO_knowledge k [const restrict static 1],
+ const ZoO_index sequence [const restrict static 1],
+ const ZoO_index sequence_length,
+ const ZoO_index markov_order
+);
+
+int ZoO_knowledge_learn_markov_sequence
+(
+ struct ZoO_knowledge k [const restrict static 1],
+ const ZoO_index sequence [const restrict static 1],
+ const ZoO_index sequence_length,
+ const ZoO_index markov_order
+);
+
+int ZoO_knowledge_get_following_sequences_ref
+(
+ const struct ZoO_knowledge k [const static 1],
+ const ZoO_index initial_word,
+ const ZoO_index * restrict following_sequences_ref [const restrict static 1],
+ const ZoO_index * restrict following_sequences_weights [const restrict static 1],
+ ZoO_index following_sequences_weights_sum [const static 1]
+);
+
+int ZoO_knowledge_get_sequence
+(
+ const struct ZoO_knowledge k [const static 1],
+ const ZoO_index sequences_ref,
+ const ZoO_index * restrict sequence [const restrict static 1]
+);
+
+int ZoO_knowledge_get_word
+(
+ const struct ZoO_knowledge k [const static 1],
+ const ZoO_index word_ref,
+ const ZoO_char * word [const restrict static 1],
+ size_t word_size [const restrict static 1]
+);
+
+/*
+ * When returning 0:
+ * {word} is in {k}.
+ * {word} is located at {k->words[*result]}.
+ *
+ * When returning -1:
+ * {word} is not in {k}.
+ * {*result} is where {word} was expected to be found in
+ * {k->sorted_indices}.
+ */
+int ZoO_knowledge_find_word_id
+(
+ const struct ZoO_knowledge k [const restrict static 1],
+ const ZoO_char word [const restrict static 1],
+ const size_t word_size,
+ ZoO_index result [const restrict static 1]
+);
+
+int ZoO_knowledge_find_preceding_words
+(
+ const struct ZoO_knowledge k [const static 1],
+ const ZoO_index sequence [const restrict],
+ const ZoO_index markov_order,
+ const ZoO_index * restrict preceding_words [const restrict static 1],
+ const ZoO_index * restrict preceding_words_weights [const restrict static 1],
+ ZoO_index preceding_words_weights_sum [const restrict static 1]
+);
+
+int ZoO_knowledge_find_following_words
+(
+ const struct ZoO_knowledge k [const static 1],
+ const ZoO_index sequence [const restrict],
+ const ZoO_index sequence_length,
+ const ZoO_index markov_order,
+ const ZoO_index * restrict following_words [const restrict static 1],
+ const ZoO_index * restrict following_words_weights [const restrict static 1],
+ ZoO_index following_words_weights_sum [const restrict static 1]
+);
+
+#endif